From 15c86109d595c154856c2d44fd6716753db27ee1 Mon Sep 17 00:00:00 2001 From: jun Date: Sat, 18 Jan 2025 15:33:03 +0800 Subject: [PATCH 1/4] =?UTF-8?q?44896=20=E7=94=9F=E4=BA=A7=E6=B1=87?= =?UTF-8?q?=E6=8A=A5=E8=BE=B9=E7=AB=AF=E5=90=8C=E6=AD=A5=E4=BA=91=E7=AB=AF?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 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 d4162e0..3738057 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 @@ -677,10 +677,10 @@ public class MesWorkOrderService implements IMesWorkOrderService { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(productionRecord.getId(), "id", packBean); - DdlPreparedPack.getStringEqualPack(productionRecord.getModifyDatetime(), "modifyDatetime", packBean); +// DdlPreparedPack.getStringEqualPack(productionRecord.getModifyDatetime(), "modifyDatetime", packBean); - productionRecordRao.updateByProperties(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus"}, - new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()}, packBean); + productionRecordRao.updateByPropertiesNoSync(new String[]{"modifyUser", "modifyDatetime", "workOrderNo", "reportStatus","systemSyncStatus","systemSyncDatetime"}, + new Object[]{userName, DateUtil.format(new Date(), MesPcnExtConstWords.DATE_FORMAT_SSS), oldMesWorkOrder.getWorkOrderNo(), MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue(),CommonEnumUtil.FALSE,""}, packBean); LOGGER.info("条码【{}】报工成功,报工工单【{}】", productionRecord.getProductSn(), oldMesWorkOrder.getWorkOrderNo()); From 6d4ed9fe6984be8c7522653c21473db683736bb7 Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Mon, 20 Jan 2025 13:37:38 +0800 Subject: [PATCH 2/4] =?UTF-8?q?44887=20=E7=A6=BB=E7=BA=BF=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=9B=9E=E4=BC=A0=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/job/MesWorkOrderOfflineRestoreDispatchService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreDispatchService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreDispatchService.java index 32140d4..52f513b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreDispatchService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/job/MesWorkOrderOfflineRestoreDispatchService.java @@ -220,6 +220,7 @@ public class MesWorkOrderOfflineRestoreDispatchService implements IMesWorkOrderO productionRecord.setFid(UUID.randomUUID().toString()); productionRecord.setOneMouldMoreId(UUID.randomUUID().toString()); productionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); + productionRecord.setOrganizeCode(organizeCode); ConvertBean.serviceModelInitialize(productionRecord, MesPcnExtConstWords.JOB); } else { productionRecord = productionRecordRepository.getByProperty( From 548ba84f0835e98f7e58eeb7136facc0fb79320d Mon Sep 17 00:00:00 2001 From: "jhforever.wang@estsh.com" Date: Wed, 22 Jan 2025 21:01:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=2044937=20PCN=EF=BC=9A=E6=89=B9=E9=87=8F?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=8A=A5=E5=B7=A5=E9=A1=B5=E9=9D=A2=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=E6=96=B9=E5=BC=8F=E6=8C=89=E7=85=A7=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E5=8D=87=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d3e3b6d..81dc463 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 @@ -172,7 +172,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { DdlPackBean packBean = getDdlPackBean(workOrder); - DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue(),CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"workOrderSeq","createDatetime"}, packBean); + DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{MesPcnExtConstWords.WORK_ORDER_NO}, packBean); pager = PagerHelper.getPager(pager, workOrderRepository.findByHqlWhereCount(packBean)); List resultList = workOrderRepository.findByHqlWherePage(packBean, pager); From 4e543f517f3ebdc479cef910650aa8dad2068a6e Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Sat, 25 Jan 2025 10:40:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?44863=20PCN-=E9=9B=B6=E4=BB=B6=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E7=BB=84=E5=A2=9E=E5=8A=A0=E2=80=9C=E7=A6=81=E7=94=A8?= =?UTF-8?q?Bom=E7=89=88=E6=9C=AC=E5=8F=B7=E2=80=9D=E5=BC=80=E5=85=B3?= =?UTF-8?q?=E6=9C=80=E7=BB=88=E7=A1=AE=E8=AE=A4=E7=89=88=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../busi/MesProductionRecordService.java | 2 + .../serviceimpl/busi/MesWorkOrderService.java | 68 +++++++++++++++++++--- 2 files changed, 63 insertions(+), 7 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java index 847d0d2..d30f36e 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesProductionRecordService.java @@ -20,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -256,6 +257,7 @@ public class MesProductionRecordService implements IMesProductionRecordService { record.setSystemSyncStatus(CommonEnumUtil.FALSE); record.setSystemSyncDatetime(MesPcnExtConstWords.EMPTY); ConvertBean.serviceModelUpdate(record,userName); + record.setModifyDatetime((new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")).format(new Date())); }); productionRecordRepository.saveAll(recordList); } 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 81dc463..13cf4af 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 @@ -135,6 +135,9 @@ public class MesWorkOrderService implements IMesWorkOrderService { @Autowired private IMesProdRuleSortCfgDao mesProdRuleSortCfgDao; + @Autowired + private MesPartProdGroupRepository mesPartProdGroupRao; + @Override public MesWorkOrder queryMesWorkOrder(MesWorkOrder workOrder) { @@ -220,9 +223,26 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesPcnException.throwMesBusiException("产线【%s】不存在", mesWorkOrderDb.getWorkCenterCode()); } //获取生产版本 - MesProductVersion mesProductVersion = getMesProductVersion(mesWorkOrderDb); + MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(), mesWorkOrderDb.getPartNo(), mesWorkOrderDb.getProductVersion()); + String bomVersion = mesProductVersion.getAlternativePartList(); + String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode(); + // partProdGroupCode 不为空,查询的数据不为空,查询数据中的获取bom方式不为空且枚举是 基于默认BOM ,才bomversion = null 否则都是通过生产版本找bom + if (!StringUtil.isEmpty(partProdGroupCode)) { + DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean); + List mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1); + + // 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举,枚举是基于默认BOM 则直接找 + if (!mesPartProdGroupList.isEmpty()) { + MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0); + if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) { + log.info("基于默认BOM获取BOM"); + bomVersion = ""; + } + } + } //物料+生产版本获取bom信息 - List mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); + List mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion); LOGGER.info("产线:{} 零件:{}更新工单", mesWorkOrderDb.getWorkCenterCode(), mesWorkOrderDb.getPartNo()); //更新工单 @@ -535,10 +555,27 @@ public class MesWorkOrderService implements IMesWorkOrderService { return; //throw new ImppBusiException(String.format("未找到匹配的加工单")); } - //获取生产版本 - MesProductVersion mesProductVersion = getProductVersion(organizeCode, productionRecord.getPartNo(), oldMesWorkOrder.getProductVersion()); - //查询物料信息 + //获取生产版本 + MesProductVersion mesProductVersion = getProductVersion(oldMesWorkOrder.getOrganizeCode(), oldMesWorkOrder.getPartNo(), oldMesWorkOrder.getProductVersion()); + String bomVersion = mesProductVersion.getAlternativePartList(); + String partProdGroupCode = oldMesWorkOrder.getPartProdGroupCode(); + // partProdGroupCode 不为空,查询的数据不为空,查询数据中的获取bom方式不为空且枚举是 基于默认BOM ,才bomversion = null 否则都是通过生产版本找bom + if (!StringUtil.isEmpty(partProdGroupCode)) { + DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(oldMesWorkOrder.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean); + List mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1); + + // 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举,枚举是基于默认BOM 则直接找 + if (!mesPartProdGroupList.isEmpty()) { + MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0); + if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) { + log.info("基于默认BOM获取BOM"); + bomVersion = ""; + } + } + } + //查询物料信息 DdlPackBean ddlPackBeanPart = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(productionRecord.getPartNo(), "partNo", ddlPackBeanPart); MesPart mesPart = mesPartRDao.getByProperty(ddlPackBeanPart); @@ -546,7 +583,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { throw new ImppBusiException(String.format("物料【%s】信息不存在", productionRecord.getPartNo())); } - List mesBoms = findBomList(organizeCode, mesPart, mesProductVersion.getAlternativePartList()); + List mesBoms = findBomList(organizeCode, mesPart, bomVersion); if (CollectionUtils.isEmpty(mesBoms)) { @@ -1020,8 +1057,25 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesWorkCenter mesWorkCenter = getMesWorkCenter(mesWorkOrderDb); //获取生产版本 MesProductVersion mesProductVersion = getProductVersion(mesWorkOrderDb.getOrganizeCode(),mesWorkOrderDb.getPartNo(),mesWorkOrderDb.getProductVersion()); + String bomVersion = mesProductVersion.getAlternativePartList(); + String partProdGroupCode = mesWorkOrderDb.getPartProdGroupCode(); + // partProdGroupCode 不为空,查询的数据不为空,查询数据中的获取bom方式不为空且枚举是 基于默认BOM ,才bomversion = null 否则都是通过生产版本找bom + if (!StringUtil.isEmpty(partProdGroupCode)) { + DdlPackBean partProdBean = DdlPackBean.getDdlPackBean(mesWorkOrderDb.getOrganizeCode()); + DdlPreparedPack.getStringEqualPack(partProdGroupCode, "partProdGroupCode", partProdBean); + List mesPartProdGroupList = mesPartProdGroupRao.findByHqlTopWhere(partProdBean, 1); + + // 没有零件生产组用默认找生产版本、有的话找获取bom方式枚举,枚举是基于默认BOM 则直接找 + if (!mesPartProdGroupList.isEmpty()) { + MesPartProdGroup mesPartProdGroup = mesPartProdGroupList.get(0); + if (mesPartProdGroup.getEnableBomVersion() != null && mesPartProdGroup.getEnableBomVersion() == MesExtEnumUtil.ENABLE_BOM_VERSION.ENABLE_BOM_VERSION_2.getValue()) { + log.info("基于默认BOM获取BOM"); + bomVersion = ""; + } + } + } //物料+生产版本获取bom信息 - List mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, mesProductVersion.getAlternativePartList()); + List mesBoms = findBomList(mesPart.getOrganizeCode(), mesPart, bomVersion); mesWorkOrderDb.setReportedQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrderDb.getReportedQty())); //更新工单状态 double unCompleteQty = MathOperation.sub(mesWorkOrderDb.getQty(), mesWorkOrderDb.getReportedQty());