diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 888afc8..766c6c5 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -121,6 +121,9 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private MesWorkOrderToSapRepository mesWorkOrderToSapRepository; + @Autowired + private MesPrintQueueRepository printQueueRepository; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -408,7 +411,7 @@ public class MesWorkOrderService extends BaseMesService implements DdlPreparedPack.getStringEqualPack(item.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); if(Objects.isNull(mesPartProdGroup)){ - MesException.throwMesBusiException("生产线组【%s】信息不存在",item.getPartProdGroupCode()); + MesException.throwMesBusiException("零件生产组【%s】信息不存在",item.getPartProdGroupCode()); } } @@ -419,11 +422,36 @@ public class MesWorkOrderService extends BaseMesService implements if(!Objects.isNull(bomList)){ saveMesWorkOrderToWms.addAll(mesWorkOrderToWmsService.saveMesWorkOrderToWms(item, bomList)); } + + // 创建工单打印队列 + insertPrintQueue(item, mesPartProdGroup); + } else { item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.CREATE.getValue()); } } + private MesPrintQueue insertPrintQueue(MesWorkOrder workOrder, MesPartProdGroup mesPartProdGroup) { + + if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) return null; + + if (mesPartProdGroup == null) { + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(workOrder.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(workOrder.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); + mesPartProdGroup = mesPartProdGroupRDao.getByProperty(ddlPackBean); + if(Objects.isNull(mesPartProdGroup)){ + MesException.throwMesBusiException("生产线组【%s】信息不存在",workOrder.getPartProdGroupCode()); + } + } + + MesPrintQueue printQueue = new MesPrintQueue(); + BeanUtils.copyProperties(workOrder, printQueue, MesExtConstWords.ID); + printQueue.setPrintQueueType(MesExtEnumUtil.PRINT_QUEUE_TYPE.WORK_ORDER.getValue()); + printQueue.setPartProdGroupCode(mesPartProdGroup.getPartProdGroupCode()); + printQueue.setPrintStatus(MesExtEnumUtil.PRINT_STATUS.UNPRINT.getValue()); + return printQueueRepository.save(printQueue); + } + private MesPartProdGroup getMesPartProdGroup(MesWorkOrder item) { MesPartProdGroupDetail mesPartProdGroupDetail = new MesPartProdGroupDetail(); mesPartProdGroupDetail.setWorkCenterCode(item.getWorkCenterCode()); @@ -556,6 +584,10 @@ public class MesWorkOrderService extends BaseMesService implements MesWorkOrderLog workOrderLog = new MesWorkOrderLog(); BeanUtils.copyProperties(item, workOrderLog, "id"); mesWorkOrderLogList.add(workOrderLog); + + // 如果工单为发布状态则新增打印队列 + insertPrintQueue(copyMesWorkOrder, null); + continue; } else if (item.getWorkOrderType() == MesExtEnumUtil.ORDER_TYPE.BTO.getValue()) { Long produceSeq = 0L;