From 692a6f59e4c8550320c9652a6043ced582b8a74f Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 12 Dec 2024 17:29:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=9B=E5=BC=82=E5=B8=B8?= =?UTF-8?q?=EF=BC=8C=E4=BD=86=E6=8A=A5=E5=B7=A5=E6=95=B0=E9=87=8F=E4=BE=9D?= =?UTF-8?q?=E7=84=B6=E5=A2=9E=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesWorkOrderService.java | 40 ++++++++++++++-------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java index cbd476c..b13ab76 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java @@ -512,15 +512,12 @@ public class MesWorkOrderService implements IMesWorkOrderService { LOGGER.error(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode())); throw new ImppBusiException(String.format("产线【%s】不存在", productionRecord.getWorkCenterCode())); } - MesWorkOrder mesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter); - if (mesWorkOrder == null) { + MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter); + if (oldMesWorkOrder == null) { LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn())); return; //throw new ImppBusiException(String.format("未找到匹配的加工单")); } - // 2024-12-12 报工失败,但set值依然被update了 - MesWorkOrder oldMesWorkOrder = new MesWorkOrder(); - BeanUtils.copyProperties(mesWorkOrder, oldMesWorkOrder); //获取生产版本 MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion()); @@ -545,24 +542,22 @@ public class MesWorkOrderService implements IMesWorkOrderService { Map propertyMap = new HashMap<>(); LOGGER.info("工单【{}]】报工原数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty()); - oldMesWorkOrder.setReportedQty(MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty())); - propertyMap.put("reportedQty", oldMesWorkOrder.getReportedQty()); + double reportQty = MathOperation.add(MesPcnExtConstWords.ONE, oldMesWorkOrder.getReportedQty()); + propertyMap.put("reportedQty", reportQty); if (StringUtils.isEmpty(productionRecord.getWorkOrderNo())) { - oldMesWorkOrder.setCompleteQty(oldMesWorkOrder.getReportedQty()); double unCompleteQty = MathOperation.sub(oldMesWorkOrder.getQty(), oldMesWorkOrder.getReportedQty()); - oldMesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); - propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, oldMesWorkOrder.getCompleteQty()); - propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, oldMesWorkOrder.getUnCompleteQty()); + propertyMap.put(MesPcnExtConstWords.COMPLETE_QTY, reportQty); + propertyMap.put(MesPcnExtConstWords.UN_COMPLETE_QTY, unCompleteQty); } if (StringUtil.isEmpty(productionRecord.getWorkOrderNo())) { //更新工单状态 if (oldMesWorkOrder.getReportedQty() >= oldMesWorkOrder.getQty()) { - oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); + propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); + } else { - oldMesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.PROCESS.getValue()); + propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, oldMesWorkOrder.getWorkOrderStatus()); } - propertyMap.put(MesPcnExtConstWords.WORK_ORDER_STATUS, oldMesWorkOrder.getWorkOrderStatus()); } //保存数据 @@ -585,7 +580,19 @@ public class MesWorkOrderService implements IMesWorkOrderService { LOGGER.info("汇报类型不存在"); return; } - + oldMesWorkOrder.setCompleteQty(reportQty); + if (propertyMap.containsKey("reportedQty")){ + oldMesWorkOrder.setReportedQty(reportQty); + } + if (propertyMap.containsKey(MesPcnExtConstWords.COMPLETE_QTY)){ + oldMesWorkOrder.setCompleteQty(Double.valueOf(propertyMap.get(MesPcnExtConstWords.COMPLETE_QTY).toString())); + } + if (propertyMap.containsKey(MesPcnExtConstWords.UN_COMPLETE_QTY)){ + oldMesWorkOrder.setUnCompleteQty(Double.valueOf(propertyMap.get(MesPcnExtConstWords.UN_COMPLETE_QTY).toString())); + } + if (propertyMap.containsKey(MesPcnExtConstWords.WORK_ORDER_STATUS)){ + oldMesWorkOrder.setWorkOrderStatus(Integer.valueOf(propertyMap.get(MesPcnExtConstWords.WORK_ORDER_STATUS).toString())); + } LOGGER.info("工单【{}】报工后数量【{}】", oldMesWorkOrder.getWorkOrderNo(), oldMesWorkOrder.getReportedQty()); ConvertBean.serviceModelUpdate(oldMesWorkOrder, userName); oldMesWorkOrder.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); @@ -609,6 +616,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { propertyValue[index] = innerEntry.getValue(); index ++; } + + + workOrderRepository.updateByProperties(new String[]{MesPcnExtConstWords.ID, MesPcnExtConstWords.ORGANIZE_CODE}, new Object[]{oldMesWorkOrder.getId(), oldMesWorkOrder.getOrganizeCode()}, propertyName, propertyValue); LOGGER.info("修改工单数量完成,工单号【{}】", oldMesWorkOrder.getWorkOrderNo());