From 6768e2802d290243ada3e1c1eaf6ccd3060ebbe5 Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 25 Sep 2024 15:09:53 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=A3=85=E9=85=8D=E7=9B=AE=E8=A7=86?= =?UTF-8?q?=E5=8D=95=E9=A2=84=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/api/base/IMesWorkOrderService.java | 4 +++ .../controller/base/MesWorkOrderController.java | 8 +++-- .../serviceimpl/base/MesWorkOrderService.java | 40 ++++++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java index 03a6c0b..9fa5634 100644 --- a/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-api/src/main/java/cn/estsh/i3plus/ext/mes/api/base/IMesWorkOrderService.java @@ -49,6 +49,10 @@ public interface IMesWorkOrderService extends IBaseMesService { @ApiOperation("装配目视单补打") List> doReprintWorkOrder(Long[] ids, String organizeCode, String userName); + @ApiOperation("装配目视单预览") + List> doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode, + String carModelCode, String organizeCode, String userName); + List getPreDayReportMesProductionRecord(String organizeCode , List mesShiftList, String workCenterCode); List getPreDayReportMesProduceSn(String organizeCode ,List mesProductionRecordList ); diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java index 54cecc1..36abcb8 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/base/MesWorkOrderController.java @@ -200,13 +200,14 @@ public class MesWorkOrderController extends BaseMesController { @PostMapping(value = "/work-order-reprint") @ApiOperation(value = "装配目视单补打") - public ResultBean doSaveWorkOrderPrintQueue(@RequestBody Long[] ids) { + public ResultBean doReprintWorkOrder(Long[] ids) { try { ValidatorBean.checkNotNull(ids,"工单不能为空"); - mesWorkOrderService.doReprintWorkOrder(ids, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName()); - return ResultBean.success("装配目视单补打成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); + return ResultBean.success("装配目视单补打成功") + .setResultObject(mesWorkOrderService.doReprintWorkOrder(ids, AuthUtil.getOrganize().getOrganizeCode(), AuthUtil.getSessionUser().getUserName())) + .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); } catch (Exception e) { @@ -214,6 +215,7 @@ public class MesWorkOrderController extends BaseMesController { } } + @PutMapping(value = "/reopen") @ApiOperation(value = "重新打开") public ResultBean doReopen(Long[] ids) { 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 0bd64fe..e5e23ef 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 @@ -142,6 +142,9 @@ public class MesWorkOrderService extends BaseMesService implements @Autowired private IMesPartProdGroupService partProdGroupService; + @Autowired + private IMesPrintedSnLogRepository printedSnLogRepository; + @Override public MesWorkOrder insert(MesWorkOrder bean) { //校验产线与工位的关系 @@ -1180,8 +1183,16 @@ public class MesWorkOrderService extends BaseMesService implements @Override public List> doReprintWorkOrder(Long[] ids, String organizeCode, String userName) { + // 根据id 获取工单数据 List mesWorkOrderList = getMesWorkOrderList(ids, organizeCode); + List> resultMapList = packPrintResultMap(organizeCode, mesWorkOrderList, userName); + + return resultMapList; + + } + + private List> packPrintResultMap(String organizeCode, List mesWorkOrderList, String userName) { // 根据工单号对工单分组 Map workOrderMapByWorkOrderNo = mesWorkOrderList.stream().collect(Collectors.toMap(MesWorkOrder::getWorkOrderNo, Function.identity(), (x, y) -> y)); @@ -1209,6 +1220,9 @@ public class MesWorkOrderService extends BaseMesService implements // 返回结果 List> resultMapList = new ArrayList<>(); + // 条码打印 + List printedSnLogList = new ArrayList<>(); + for (MesWorkOrder mesWorkOrder : mesWorkOrderList) { if (mesWorkOrder == null) { @@ -1262,12 +1276,38 @@ public class MesWorkOrderService extends BaseMesService implements MesException.throwMesBusiException("工单【%s】关联零件生产组【%s】打印模板【%s】策略类【%s】执行异常", mesWorkOrder.getWorkOrderNo(), mesWorkOrder.getPartProdGroupCode(), labelTemplate.getTemplateCode(), labelTemplate.getMethodCode()); } + MesPrintedSnLog printedSnLog = new MesPrintedSnLog(); + printedSnLog.setOrganizeCode(mesWorkOrder.getOrganizeCode()); + printedSnLog.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); + printedSnLog.setCustPartNo(mesWorkOrder.getCustPartNo()); + ConvertBean.serviceModelInitialize(printedSnLog, userName); + printedSnLogList.add(printedSnLog); + resultMapList.addAll(snPrintModel.getPrintContextList()); } + if (!CollectionUtils.isEmpty(printedSnLogList)) printedSnLogRepository.saveAll(printedSnLogList); + return resultMapList; + } + + @Override + public List> doShowWorkOrderPrint(String partNo, String workCenterCode, String partProdGroupCode, + String carModelCode, String organizeCode, String userName) { + + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(partNo, MesExtConstWords.PART_NO, packBean); + DdlPreparedPack.getStringEqualPack(workCenterCode, MesExtConstWords.WORK_CENTER_CODE, packBean); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, MesExtConstWords.PART_PROD_GROUP_CODE, packBean); + DdlPreparedPack.getStringEqualPack(carModelCode, MesExtConstWords.CAR_MODEL_CODE, packBean); + packBean.setOrderByStr(" order by createDatetime desc "); + MesWorkOrder workOrder = workOrderRepository.getByProperty(packBean); + + List workOrderList = new ArrayList<>(); + workOrderList.add(workOrder); + return packPrintResultMap(organizeCode, workOrderList, userName); } private Map getMesCustomerCarModelMap(String organizeCode, List workOrderList) { From ecf2f7d4e44347088e4825cc946134378e110c61 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Wed, 25 Sep 2024 15:10:35 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=AD=A6=E6=B1=89=E5=B7=A5=E5=8D=95--?= =?UTF-8?q?=E6=8F=92=E5=85=A5=E6=89=93=E5=8D=B0=E5=B7=A5=E5=8D=95=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E9=98=9F=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/roundness/MesPackageRoundnessService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java index 89d264d..dde46b3 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/roundness/MesPackageRoundnessService.java @@ -4,6 +4,7 @@ import cn.estsh.i3plus.ext.mes.api.base.IMesCustSoftInfoService; import cn.estsh.i3plus.ext.mes.api.base.strategy.IRoundnessStrategy; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesBomService; import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesPartSapService; +import cn.estsh.i3plus.ext.mes.apiservice.serviceimpl.base.MesWorkOrderService; import cn.estsh.i3plus.mes.api.iservice.busi.ISyncFuncService; import cn.estsh.i3plus.platform.common.convert.ConvertBean; import cn.estsh.i3plus.platform.common.tool.TimeTool; @@ -87,6 +88,9 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { @Autowired private MesQueueOrderRepository queueOrderRao; + @Autowired + private MesWorkOrderService mesWorkOrderService; + @Override public void execute(MesPartProdGroup partProdGroup, List sortInfoList, List details) { try { @@ -456,7 +460,10 @@ public class MesPackageRoundnessService implements IRoundnessStrategy { ConvertBean.saveOrUpdate(mesWorkOrder, "MES-JOB"); mesWorkOrderRao.insert(mesWorkOrder); - + /** + * 插入工单打印队列数据 + */ + mesWorkOrderService.doSaveWorkOrderPrintQueue(mesWorkOrder); if (!assemblyList.isEmpty()) { for (MesWorkOrderAssembly orderAssembly : assemblyList) { orderAssembly.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); From 73d79d988cc221a5c7b2a779d2a210b0ac87b91e Mon Sep 17 00:00:00 2001 From: yxw Date: Wed, 25 Sep 2024 16:01:26 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=8E=92=E5=BA=8F=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=8F=91=E5=B8=83=E6=96=B0=E5=A2=9E=E8=A3=85=E9=85=8D=E7=9B=AE?= =?UTF-8?q?=E8=A7=86=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 19 ++++++++++++++++++- .../strategy/AssemblyVisualListPrintStrategy.java | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) 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<>();