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 e5e23ef..8fe8408 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 @@ -222,8 +222,16 @@ public class MesWorkOrderService extends BaseMesService implements } } + boolean isSavePrintQueue = false; + //更新状态 if (result.getWorkOrderStatus().intValue() != bean.getWorkOrderStatus().intValue()) { + + // 发布时创建工单打印队列 + if (!Objects.equals(bean.getWorkOrderStatus(), result.getWorkOrderStatus()) && bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { + isSavePrintQueue = true; + } + result.setWorkOrderStatus(bean.getWorkOrderStatus()); if (result.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.CREATE.getValue() && bean.getWorkOrderStatus() == MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { @@ -235,7 +243,10 @@ public class MesWorkOrderService extends BaseMesService implements mesWorkOrderToWmsService.insertBatch(mesWorkOrderToWmsService.saveMesWorkOrderToWms(result, bomList)); } } + updateMesWorkOrder(result,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.UPDATE,0); + if (isSavePrintQueue) insertPrintQueue(result, null); + return result; } @@ -456,6 +467,8 @@ public class MesWorkOrderService extends BaseMesService implements if (workOrder.getWorkOrderType() != MesExtEnumUtil.ORDER_TYPE.SORT.getValue()) return null; + if (workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) return null; + if (mesPartProdGroup == null) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(workOrder.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(workOrder.getPartProdGroupCode(), "partProdGroupCode", ddlPackBean); @@ -1175,8 +1188,12 @@ public class MesWorkOrderService extends BaseMesService implements return; } - insertPrintQueue(workOrder, null); + if (workOrder.getWorkOrderStatus() != MesExtEnumUtil.ORDER_STATUS.RELEASE.getValue()) { + log.info("doSaveWorkOrderPrintQueue --- 工单:{} 不为{},无需新增打印队列", workOrder.getWorkOrderNo(), MesExtEnumUtil.ORDER_STATUS.RELEASE.getDescription()); + return; + } + insertPrintQueue(workOrder, null); } diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java index 3929865..e5195d6 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/print/strategy/AssemblyVisualListPrintStrategy.java @@ -37,8 +37,8 @@ public class AssemblyVisualListPrintStrategy implements IPrintTemplateStrategySe // 客户车型配置信息 MesCustomerCarModel customerCarModel = modelMap.containsKey("mesCustomerCarModel") ? (MesCustomerCarModel) modelMap.get("mesCustomerCarModel") : null; // 工单装配件信息 - List workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List) modelMap.get("mesWorkOrderAssemblyList") : null; - workOrderAssemblyList = workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList()); + List workOrderAssemblyList = modelMap.containsKey("mesWorkOrderAssemblyList") ? (List) modelMap.get("mesWorkOrderAssemblyList") : new ArrayList<>(); + workOrderAssemblyList = CollectionUtils.isEmpty(workOrderAssemblyList) ? new ArrayList<>() : workOrderAssemblyList.stream().filter(o -> o.getDisplaySeq() != null && o.getDisplaySeq() != 0).collect(Collectors.toList()); if (!CollectionUtils.isEmpty(workOrderAssemblyList)) workOrderAssemblyList.sort(Comparator.comparing(MesWorkOrderAssembly::getDisplaySeq)); // 返回的结果集合 List> printDataMapList = new ArrayList<>();