package org.jeecg.modules.mes.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.mes.entity.MesMaterialTransferRequest; import org.jeecg.modules.mes.entity.MesProductionWorkOrder; import org.jeecg.modules.mes.enums.MaterialTransferPublishStatus; import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus; import org.jeecg.modules.mes.enums.ProductionWorkOrderStatus; import org.jeecg.modules.mes.mapper.MesMaterialTransferRequestMapper; import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService; import org.jeecg.modules.mes.service.IMesProductionWorkOrderService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @Description: 物料拉动申请 * @Author: jeecg-boot * @Date: 2025-07-04 * @Version: V1.0 */ @Service public class MesMaterialTransferRequestServiceImpl extends ServiceImpl implements IMesMaterialTransferRequestService { @Autowired private IMesProductionWorkOrderService productionWorkOrderService; @Override public List queryMaterialTransferRequestByWorkOrderId(String workOrderId) { return baseMapper.queryMaterialTransferRequestByWorkOrderId(workOrderId); } @Override @Transactional(rollbackFor = Exception.class) public boolean addMaterialTransferRequest(MesMaterialTransferRequest request) { MesProductionWorkOrder order = productionWorkOrderService.getById(request.getWorkOrderId()); if(order == null){ throw new JeecgBootException("排产工单不存在"); } if(!ProductionWorkOrderStatus.PUBLISHED.name().equals(order.getWorkOrderStatus())){ throw new JeecgBootException("只有发布状态的排产工单才可申请物料"); } request.setPublishStatus(MaterialTransferPublishStatus.WAIT_PUBLISH.name()); request.setRequestStatus(MaterialTransferRequestStatus.WAIT_REQUEST.name()); request.setDelFlag(CommonConstant.DEL_FLAG_0); this.getBaseMapper().insert(request); return true; } }