From 5673649ce4ca9252425f1604cef3f96014db41b6 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 31 Mar 2025 15:34:06 +0800 Subject: [PATCH 01/10] =?UTF-8?q?45843=201=20=E6=97=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E6=8A=A5=E5=B7=A5JOB=E9=92=88=E5=AF=B9=E5=A4=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E5=9C=BA=E6=99=AF=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8SAP=20=E4=B8=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE0001=E8=BF=9B=E8=A1=8C=E8=A1=A5=E6=8A=A5=E5=B7=A5=202?= =?UTF-8?q?=20=E6=97=A0=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=A7=E7=BA=BF=E7=89=A9=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AA=E4=BA=8B=E5=8A=A1=E5=8E=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ext/mes/pcn/api/busi/IMesWorkOrderService.java | 2 +- .../schedulejob/MesReportWorkByPreDayJob.java | 50 ++++++++++------------ .../serviceimpl/busi/MesWorkOrderService.java | 36 ++++++++-------- 3 files changed, 43 insertions(+), 45 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java index 664facd..ff6731e 100644 --- a/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java +++ b/modules/i3plus-ext-mes-pcn-api/src/main/java/cn/estsh/i3plus/ext/mes/pcn/api/busi/IMesWorkOrderService.java @@ -38,7 +38,7 @@ public interface IMesWorkOrderService { List getPreDayReportMesProductionRecord(String organizeCode , List mesShiftList, String workCenterCode); @ApiOperation("新增工单") - List insertMesWorkOrder(List mesProductionRecordList,List mesShiftList,String organizeCode, String userName ); + MesWorkOrder insertMesWorkOrder(List mesProductionRecordList,List mesShiftList,String organizeCode, String userName ); @ApiOperation(value = "根据前一天待报工记录数插入工单并报工JOB(工单报工)") void doPcnJobProductReport(List mesProductionRecordList,List mesShiftList,String organizeCode, String userName, MesWorkOrder mesWorkOrder); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java index cd1f37d..7f9d298 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/schedulejob/MesReportWorkByPreDayJob.java @@ -28,10 +28,7 @@ import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -81,19 +78,22 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob { if (CollectionUtils.isEmpty(mesProductionRecordList)) { continue; } - try { - LOGGER.info("产线:{}报工mesProductionRecordList:{}", workCenterCode, mesProductionRecordList.size()); - //3.插入生产工单表 - List mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName); - if (CollectionUtils.isEmpty(mesWorkOrders)) { - continue; - } - LOGGER.info("产线:{}报工mesWorkOrders:{}", workCenterCode, mesWorkOrders.size()); - //4.根据产线+物料产生的工单报工 - for (MesWorkOrder mesWorkOrder : mesWorkOrders) { + Map> recordMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + "=" + sn.getPartNo())); + for (Map.Entry> entry : recordMap.entrySet()) { + String k = entry.getKey(); + List v = entry.getValue(); + try { + LOGGER.info("产线=-零件号:{},:{},报工mesProductionRecordList:{}",k, v.size()); + //3.插入生产工单表,根据产线和零件号会创建又给工单 + MesWorkOrder mesWorkOrder = workOrderService.insertMesWorkOrder(v, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName); + if (mesWorkOrder == null) { + continue; + } + LOGGER.info("产线:{}报工mesWorkOrder:{}", workCenterCode, mesWorkOrder.getWorkOrderNo()); + //4.根据产线+物料产生的工单报工 List mesProductionRecords = new ArrayList<>(); try { - mesProductionRecords = mesProductionRecordList.stream().filter( + mesProductionRecords = v.stream().filter( w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode()) && w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList()); workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, wmsJobParamModel.getOrganizeCode(), userName, mesWorkOrder); @@ -101,11 +101,7 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob { for (MesProductionRecord mesProductionRecord : mesProductionRecords) { if (StringUtil.isEmpty(mesProductionRecord.getWorkOrderNo())) { - List collect = mesWorkOrders.stream().filter(w -> w.getWorkCenterCode().equalsIgnoreCase(mesProductionRecord.getWorkCenterCode()) - && w.getPartNo().equalsIgnoreCase(mesProductionRecord.getPartNo())).collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(collect)) { - mesProductionRecord.setWorkOrderNo(collect.get(0).getWorkOrderNo()); - } + mesProductionRecord.setWorkOrderNo(mesWorkOrder.getWorkOrderNo()); } mesProductionRecord.setReportStatus(MesExtEnumUtil.REPORT_STATUS.REPORT_STATUS_20.getValue()); mesProductionRecord.setSystemSyncStatus(CommonEnumUtil.TRUE_OR_FALSE.FALSE.getValue()); @@ -122,13 +118,13 @@ public class MesReportWorkByPreDayJob extends BaseMesScheduleJob { productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg); } } - } - } catch (ImppBusiException e) { - List snList = mesProductionRecordList.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()); - String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg() : e.getErrorDetail(); - LOGGER.info("条码:{}报工失败,{}", snList, errorMsg); - for (MesProductionRecord mesProductionRecord : mesProductionRecordList) { - productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg); + } catch (ImppBusiException e) { + List snList = v.stream().map(MesProductionRecord::getProductSn).collect(Collectors.toList()); + String errorMsg = StringUtil.isEmpty(e.getErrorDetail()) ? e.getErrorMsg() : e.getErrorDetail(); + LOGGER.info("条码:{}报工失败,{}", snList, errorMsg); + for (MesProductionRecord mesProductionRecord : v) { + productionRecordService.updateProductionRecord(mesProductionRecord.getOrganizeCode(), userName, mesProductionRecord.getId(), errorMsg); + } } } } 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 6417a72..a60409a 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 @@ -1292,15 +1292,12 @@ public class MesWorkOrderService implements IMesWorkOrderService { } @Override - public List insertMesWorkOrder(List mesProductionRecordList, List mesShiftList, String organizeCode, String userName) { - List mesWorkOrderList = new ArrayList<>(); - Map> mesProductionRecordListMap = mesProductionRecordList.stream().collect(Collectors.groupingBy(sn -> sn.getWorkCenterCode() + "=" + sn.getPartNo())); - for (Map.Entry> stringListEntry : mesProductionRecordListMap.entrySet()) { - List value = stringListEntry.getValue(); - MesProductionRecord mesProductionRecord = value.get(0); - String[] split = stringListEntry.getKey().split("="); - String workCenterCode = split[0]; - String partNo = split[1]; + public MesWorkOrder insertMesWorkOrder(List mesProductionRecordList, List mesShiftList, String organizeCode, String userName) { + + MesProductionRecord mesProductionRecord = mesProductionRecordList.get(0); + + String workCenterCode = mesProductionRecord.getWorkCenterCode(); + String partNo = mesProductionRecord.getPartNo(); //查询工作中心 DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); @@ -1344,7 +1341,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { item.setProduceTime(TimeTool.getToday()); item.setProductTime(item.getProduceTime()); item.setUnCompleteQty(0d); - item.setQty(value.stream().mapToDouble(MesProductionRecord::getQty).sum()); + item.setQty(mesProductionRecordList.stream().mapToDouble(MesProductionRecord::getQty).sum()); item.setCompleteQty(item.getQty()); item.setReportedQty(item.getQty()); item.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); @@ -1362,13 +1359,13 @@ public class MesWorkOrderService implements IMesWorkOrderService { //校验物料生产版本是否存在 MesProductVersion mesProductVersion = checkMesProductVersion(item); if (Objects.isNull(mesProductVersion)) { - continue; + return null; } item.setProductVersion(mesProductVersion.getProductVersion()); //获取bom信息 List bomList = findMesBomByPartNoAndBomVersion(item.getPartNo(), item.getOrganizeCode(), mesProductVersion.getAlternativePartList()); if (org.springframework.util.CollectionUtils.isEmpty(bomList)) { - continue; + return null; } } @@ -1377,21 +1374,26 @@ public class MesWorkOrderService implements IMesWorkOrderService { ConvertBean.serviceModelInitialize(item, userName); MesWorkOrder mesWorkOrder = workOrderRepository.insert(item); saveMesWorkOrderLog(mesWorkOrder,MesExtEnumUtil.WORK_ORDER_LOG_TYPE.INSERT.getValue(),item.getQty()); - mesWorkOrderList.add(mesWorkOrder); - } - return mesWorkOrderList; + return mesWorkOrder; } private MesProductVersion checkMesProductVersion(MesWorkOrder item) { DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(item.getOrganizeCode()); DdlPreparedPack.getStringEqualPack(item.getPartNo(), "partNo", ddlPackBean); DdlPreparedPack.getStringEqualPack(item.getErpWorkCenter(), "workCenterCode", ddlPackBean); - MesProductVersion mesProductVersion = mesProductVersionRDao.getByProperty(ddlPackBean); - if (Objects.isNull(mesProductVersion)) { + List mesProductVersions = mesProductVersionRDao.findByHqlWhere(ddlPackBean); + if (CollectionUtils.isEmpty(mesProductVersions)) { LOGGER.info("物料{}产线{}生产版本{}信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion() ); MesPcnException.throwMesBusiException("物料【%s】产线【%s】生产版本【%s】信息不存在", item.getPartNo(), item.getWorkCenterCode(), item.getProductVersion()); } + MesProductVersion mesProductVersion = null; + List mesProductOneVersions = mesProductVersions.stream().filter(productVersion -> Objects.equals(productVersion.getProductVersion(),"0001")).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(mesProductOneVersions)) { + mesProductVersion = mesProductOneVersions.get(0); + } else { + mesProductVersion = mesProductVersions.get(0); + } return mesProductVersion; } From 282e8a6b99d5db1e2572cf43c5ca535443b4b902 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 31 Mar 2025 16:16:14 +0800 Subject: [PATCH 02/10] =?UTF-8?q?45843=201=20=E6=97=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E6=8A=A5=E5=B7=A5JOB=E9=92=88=E5=AF=B9=E5=A4=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E5=9C=BA=E6=99=AF=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8SAP=20=E4=B8=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE0001=E8=BF=9B=E8=A1=8C=E8=A1=A5=E6=8A=A5=E5=B7=A5=202?= =?UTF-8?q?=20=E6=97=A0=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=A7=E7=BA=BF=E7=89=A9=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AA=E4=BA=8B=E5=8A=A1=E5=8E=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/controller/busi/TestController.java | 43 +--------------------- 1 file changed, 1 insertion(+), 42 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java index de57c5d..226d67d 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/TestController.java @@ -54,48 +54,7 @@ public class TestController { @GetMapping("/reportWorkByPreDayJob") @ApiOperation(value = "查询设备交互") public ResultBean queryReworkTaskByPager(String organizeCode) { - try { - //遍历系统参数指定的产线获取对应班次,找到早班的开始时间, - String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_WORK_CENTER_NO"); - List workCenterCodeList = Arrays.asList(workCenterCodes.split(",")); - String userName = "REPORT_PRE_DAY_JOB"; - DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); - List mesShiftListAll = mesShiftRepository.findByHqlWhere(packBean); - for (String workCenterCode : workCenterCodeList) { - List mesShiftList = mesShiftListAll.stream().filter(s -> s.getWorkCenterCode().equalsIgnoreCase(workCenterCode)).collect(Collectors.toList()); - //1.获取生产加工记录production_record表中,report_status为待汇报状态的工单 - List mesProductionRecordList = workOrderService.getPreDayReportMesProductionRecord(organizeCode, mesShiftList, workCenterCode); - if (CollectionUtils.isEmpty(mesProductionRecordList)) { - continue; - } - - //3.插入生产工单表 - List mesWorkOrders = workOrderService.insertMesWorkOrder(mesProductionRecordList, mesShiftList, organizeCode, userName); - if (CollectionUtils.isEmpty(mesWorkOrders)) { - continue; - - } - //4.根据产线+物料产生的工单报工 - - for (MesWorkOrder mesWorkOrder : mesWorkOrders) { - List mesProductionRecords = mesProductionRecordList.stream().filter( - w -> w.getWorkCenterCode().equalsIgnoreCase(mesWorkOrder.getWorkCenterCode()) - && w.getPartNo().equalsIgnoreCase(mesWorkOrder.getPartNo())).collect(Collectors.toList()); - workOrderService.doPcnJobProductReport(mesProductionRecords, mesShiftList, organizeCode, userName, mesWorkOrder); - } - for (MesProductionRecord mesProductionRecord : mesProductionRecordList) { - mesProductionRecord.setReportStatus(20); - ConvertBean.serviceModelUpdate(mesProductionRecord, userName); - } - productionRecordRao.saveAll(mesProductionRecordList); - - } - return ResultBean.success("查询成功").setResultList(null); - } catch (ImppBusiException imppException) { - return ResultBean.fail(imppException); - } catch (Exception e) { - return ImppExceptionBuilder.newInstance().buildExceptionResult(e); - } + return null; } @GetMapping("/reportOrder") From f70b94e327773e0d40b409f2a1ac9d86f33f1924 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 31 Mar 2025 17:11:36 +0800 Subject: [PATCH 03/10] =?UTF-8?q?45843=201=20=E6=97=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E6=8A=A5=E5=B7=A5JOB=E9=92=88=E5=AF=B9=E5=A4=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E5=9C=BA=E6=99=AF=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8SAP=20=E4=B8=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE0001=E8=BF=9B=E8=A1=8C=E8=A1=A5=E6=8A=A5=E5=B7=A5=202?= =?UTF-8?q?=20=E6=97=A0=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=A7=E7=BA=BF=E7=89=A9=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AA=E4=BA=8B=E5=8A=A1=E5=8E=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesWorkOrderService.java | 46 ++++++++++++++++++++-- 1 file changed, 43 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 a60409a..d00ec76 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 @@ -818,19 +818,36 @@ public class MesWorkOrderService implements IMesWorkOrderService { throw new ImppBusiException(String.format("班次信息未维护,产线=%s",workCenterCode)); } List shifts = shiftList.stream().filter(mesShift -> Objects.equals(mesShift.getWorkCenterCode(), workCenterCode)).collect(Collectors.toList()); + // 获取产品加工记录对应时间的班次 + + Integer hours = transfer(productionRecord.getCompleteDateTime()).getHours(); + + Date currentDate = TimeTool.stringParseToDate(productionRecord.getCompleteDateTime()); + String lotNo = productionRecord.getLotNo(); + // 基于加工时间判断具体的班次 + MesShift currentShift = shiftList.stream().filter(shift -> { + String startTime = lotNo + " " + shift.getStartTime(); + String endTime = lotNo + " " + shift.getEndTime(); + if (Objects.equals(shift.getShiftCode(), "20")) { + endTime = getDateTime(lotNo, 2) + " " + shift.getEndTime(); + } + Date startDate = DateUtil.parse(startTime); + Date endDate = DateUtil.parse(endTime); + return currentDate.getTime() > startDate.getTime() && currentDate.getTime() < endDate.getTime(); + }).findFirst().orElse(null); + - MesShift currentShift = shifts.stream().filter(mesShift -> Objects.equals(mesShift.getShiftCode(), shiftCode)).findFirst().orElse(null); String orderDate = productionRecord.getLotNo(); if (currentShift.getStartTime().compareTo(currentShift.getEndTime()) > 0) { // 如果比0点大,需要找日期前一天的班次的工单号,如果是0点前,date =lotNO 如果是0点后,则找lot的前一天 - int hours = transfer(productionRecord.getCompleteDateTime()).getHours(); if (hours < 12) { orderDate = getDate(productionRecord.getLotNo(), 1); } else { orderDate = getDate(productionRecord.getLotNo(), 0); } + } List list = new ArrayList<>(); @@ -856,7 +873,6 @@ public class MesWorkOrderService implements IMesWorkOrderService { // 如果开始时间大于结束时间,说明跨天了,跨天说明是晚班,需要找, 如果是晚班, 则找早中班的工单 if (currentShift.getStartTime().compareTo(currentShift.getEndTime()) > 0) { // 如果比0点大,需要找日期前一天的班次的工单号,如果是0点前,date =lotNO 如果是0点后,则找lot的前一天 - int hours = transfer(productionRecord.getCompleteDateTime()).getHours(); if (hours < 12) { date = getDate(productionRecord.getLotNo(), 1); } else { @@ -1754,4 +1770,28 @@ public class MesWorkOrderService implements IMesWorkOrderService { move.setWorkCenter(workCenterCode); return move; } + /** + * flag = 1 减少 1天, = 2 加一天 + * + * @param lotNo + * @param flag + * @return + */ + public String getDateTime(String lotNo, int flag) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Date d = null; + try { + d = df.parse(lotNo); + } catch (ParseException e) { + e.printStackTrace(); + } + Calendar cal = Calendar.getInstance(); + cal.setTime(d); + if (flag == 1) { + cal.add(Calendar.DATE, -1); //减1天 + } else if (flag == 2) { + cal.add(Calendar.DATE, 1); //加1天 + } + return df.format(cal.getTime()).substring(0, 10); + } } From 40ad390f91464e388b552babf8a22f37afff216b Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Mon, 31 Mar 2025 18:43:58 +0800 Subject: [PATCH 04/10] =?UTF-8?q?45843=201=20=E6=97=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E6=8A=A5=E5=B7=A5JOB=E9=92=88=E5=AF=B9=E5=A4=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E5=9C=BA=E6=99=AF=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8SAP=20=E4=B8=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE0001=E8=BF=9B=E8=A1=8C=E8=A1=A5=E6=8A=A5=E5=B7=A5=202?= =?UTF-8?q?=20=E6=97=A0=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=A7=E7=BA=BF=E7=89=A9=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AA=E4=BA=8B=E5=8A=A1=E5=8E=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/busi/MesWorkOrderService.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 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 d00ec76..e02babc 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 @@ -828,17 +828,21 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesShift currentShift = shiftList.stream().filter(shift -> { String startTime = lotNo + " " + shift.getStartTime(); String endTime = lotNo + " " + shift.getEndTime(); - if (Objects.equals(shift.getShiftCode(), "20")) { - endTime = getDateTime(lotNo, 2) + " " + shift.getEndTime(); + // 如果是晚班,12点前,结束时间要加一天,如果是12点后,开始时间要减一天 + if (Objects.equals(shift.getShiftCode(),"20")) { + if (hours < 12) { + startTime = getDateTime(lotNo, 1) + " " + shift.getStartTime(); + } else { + endTime = getDateTime(lotNo, 2) + " " + shift.getEndTime(); + } } Date startDate = DateUtil.parse(startTime); Date endDate = DateUtil.parse(endTime); - return currentDate.getTime() > startDate.getTime() && currentDate.getTime() < endDate.getTime(); + return currentDate.getTime() >= startDate.getTime() && currentDate.getTime() <= endDate.getTime(); }).findFirst().orElse(null); - String orderDate = productionRecord.getLotNo(); if (currentShift.getStartTime().compareTo(currentShift.getEndTime()) > 0) { // 如果比0点大,需要找日期前一天的班次的工单号,如果是0点前,date =lotNO 如果是0点后,则找lot的前一天 From 541ce42f2125112205173829b13f959378266f39 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Thu, 3 Apr 2025 10:01:36 +0800 Subject: [PATCH 05/10] =?UTF-8?q?45858=20=20=09=20MES=EF=BC=9A=E7=94=B5?= =?UTF-8?q?=E5=AD=90=E5=8C=96=E6=A3=80=E9=AA=8C=E5=88=9D=E5=88=A4=E5=92=8C?= =?UTF-8?q?=E7=BB=88=E5=88=A4=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.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/base/MesReworkTaskServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java index fd9e154..b55028c 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/base/MesReworkTaskServiceImpl.java @@ -301,7 +301,7 @@ public class MesReworkTaskServiceImpl implements IMesReworkTaskService { MesPartInspection mesPartInspection = null; if (!StringUtils.isEmpty(mesReworkTask.getId())){ DdlPackBean packBean = DdlPackBean.getDdlPackBean(mesReworkTask.getOrganizeCode()); - DdlPreparedPack.getNumEqualPack(mesReworkTask.getId(), "reworkTaskId", packBean); + DdlPreparedPack.getNumEqualPack(mesReworkTask.getPartInspectionId(), "id", packBean); mesPartInspection = mesPartInspectionRepository.getByProperty(packBean); if (!Objects.isNull(mesPartInspection)){ if(!CollectionUtils.isEmpty(requestModel.getAssemblyModelList())){ From 121c55a82fee26e36265ceacccef09d043b6262a Mon Sep 17 00:00:00 2001 From: jason Date: Fri, 4 Apr 2025 19:22:41 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=BE=99=E5=85=B4?= =?UTF-8?q?=E5=8F=91=E8=BF=90=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/busi/MesSortShippingCheckController.java | 2 +- .../serviceimpl/busi/MesShippingLoadingCheckService.java | 2 +- .../apiservice/serviceimpl/busi/MesSortShippingCheckService.java | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java index b70880c..4ccab69 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/busi/MesSortShippingCheckController.java @@ -77,7 +77,7 @@ public class MesSortShippingCheckController { MesSortShippingCheckModel model = sortShippingCheckService.doShippingOrderNoQuery(shippingOrderManagement); long end = System.currentTimeMillis(); scanLogUtil.info("扫描发运单执行结束", end - start); - return ResultBean.success(model.getMsg()).setResultObject(model); + return ResultBean.success(model != null ? model.getMsg() : "").setResultObject(model); } catch (ImppBusiException imppException) { scanLogUtil.error(imppException.getErrorMsg()); return ResultBean.fail(imppException); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 569108d..070bd81 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -210,7 +210,7 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //根据扫描的装车单找到是否先装车配置 //若配置为否,则查询装车单中所有的发运单是否都进行【排序发运校验】完成,若【排序发运校验】没完成,则提示,先进行排序发运校验。 - if (!Objects.equals(loadingList.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { + if (!Objects.equals(shippingGroup.getIsFirstInstall(), MesCommonConstant.TRUE_INTEGER)) { DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(loadingListDetail.getShippingId(),"id",packBean); MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index 94771c8..f7b69d9 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -136,17 +136,18 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService @Override public MesSortShippingCheckModel doShippingOrderNoQuery(MesShippingOrderManagement shippingOrderManagement) { + //返回数据组装 + MesSortShippingCheckModel model = new MesSortShippingCheckModel(); //校验发运单 MesShippingOrderManagement orderManagement = getMesShippingOrderManagement(shippingOrderManagement); if(Objects.isNull(orderManagement)){ - return null; + model.setMsg(String.format("发运单【%s】已跳过,请扫描下一个发运单",shippingOrderManagement.getShippingCode())); + return model; } //校验发运单扫描顺序 checkShippingOrderSeq(shippingOrderManagement, orderManagement); //根据扫描的发运单找到是否装车配置,若是,则根据发运单查询是否生成装车单,若没生成装车单则提示此发运单配置是否装车为是,但没生成装车单,请检查数据! checkLoadingList(shippingOrderManagement, orderManagement); - //返回数据组装 - MesSortShippingCheckModel model = new MesSortShippingCheckModel(); if (!StringUtils.isEmpty(orderManagement.getCheckSeqCode())) { model.setIsScanLocationCode(true); } @@ -752,7 +753,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService if (!CollectionUtils.isEmpty(mesJisShippings)) { shippingList.addAll(mesJisShippings); } - } else { + } else if (Objects.equals(shippingGroup.getIsFirstInstall(), CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue())){ //查询装车单明细 DdlPackBean orderManagementPackBean = DdlPackBean.getDdlPackBean(organizeCode); DdlPreparedPack.getNumEqualPack(orderManagement.getLoadingListId(),"pid",orderManagementPackBean); From 9135368cc85a3e2c205a64ab33063de6f4b10569 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Tue, 8 Apr 2025 09:31:03 +0800 Subject: [PATCH 07/10] =?UTF-8?q?45843=201=20=E6=97=A0=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A1=A5=E6=8A=A5=E5=B7=A5JOB=E9=92=88=E5=AF=B9=E5=A4=9A?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E5=9C=BA=E6=99=AF=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E4=BD=BF=E7=94=A8SAP=20=E4=B8=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE0001=E8=BF=9B=E8=A1=8C=E8=A1=A5=E6=8A=A5=E5=B7=A5=202?= =?UTF-8?q?=20=E6=97=A0=E5=B7=A5=E5=8D=95=E6=8A=A5=E5=B7=A5=EF=BC=8C?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E4=BA=A7=E7=BA=BF=E7=89=A9=E6=96=99=E5=8F=B7?= =?UTF-8?q?=E4=B8=BA=E4=B8=80=E4=B8=AA=E4=BA=8B=E5=8A=A1=E5=8E=BB=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E7=94=9F=E4=BA=A7=E7=89=88=E6=9C=AC=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/controller/base/MesWhiteController.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java index 1b0ae92..49442ae 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/controller/base/MesWhiteController.java @@ -5,6 +5,7 @@ import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.MesConfigService; import cn.estsh.i3plus.ext.mes.pcn.apiservice.serviceimpl.busi.MesProduceSnExtService; import cn.estsh.impp.framework.boot.util.ResultBean; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import jodd.util.Base64; import lombok.extern.slf4j.Slf4j; @@ -43,7 +44,7 @@ public class MesWhiteController { @PostMapping("/picture") public ResultBean savePicture(@RequestBody MesPictureModel model){ - log.info("castle-保存图片开始"); + log.info("castle-保存图片开始 model={}", JSONObject.toJSONString(model)); String localUrl = mesConfigService.getCfgValue(model.getOrganizeCode(), "LOCAL_PICTURE_ABS_URL"); String fileName = localUrl+model.getFileName(); File file = new File(fileName); @@ -60,10 +61,14 @@ public class MesWhiteController { if (!StringUtils.isBlank(model.getRemoteUserName()) && !StringUtils.isBlank(model.getRemoteNginxUrl()) ){ // 构建scp命令 log.info("castle-保存图片开始-scp命令"); - String scpCommand = String.format("scp -P %s %s %s@%s:%s", model.getRemotePort() ,fileName, model.getRemoteUserName(), model.getRemoteNginxUrl(), localUrl); + String scpCommand = String.format("scp %s %s@%s:%s" ,fileName, model.getRemoteUserName(), model.getRemoteNginxUrl(), localUrl); + log.info("castle-保存图片开始-scp命令开始={}",scpCommand); + try { Runtime.getRuntime().exec(scpCommand); - } catch (IOException e) { + log.info("castle-保存图片开始-scp命令结束={}",scpCommand); + + } catch (Exception e) { log.error("调用scp命令失败,请手动同步图片:{}",fileName); } } From 2be53f46ac2a40563edaedb18108ed453eb95400 Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 8 Apr 2025 09:50:41 +0800 Subject: [PATCH 08/10] =?UTF-8?q?46139=20CN=EF=BC=9A=E5=8F=91=E8=BF=90?= =?UTF-8?q?=E5=8D=95=E7=9A=84=E7=8A=B6=E6=80=81=E5=A2=9E=E5=8A=A0=E2=80=9C?= =?UTF-8?q?=E5=B7=B2=E8=A3=85=E8=BD=A6=E2=80=9D=E6=9E=9A=E4=B8=BE=EF=BC=88?= =?UTF-8?q?50=EF=BC=89=EF=BC=8C=E5=AE=8C=E6=88=90=E8=A3=85=E8=BD=A6?= =?UTF-8?q?=E9=98=B2=E9=94=99=E6=A0=A1=E9=AA=8C=E5=90=8E=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E4=B8=BA=E2=80=9C=E5=B7=B2=E8=A3=85=E8=BD=A6=E2=80=9D=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/busi/MesShippingLoadingCheckService.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java index 0ec30de..e20ec8b 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesShippingLoadingCheckService.java @@ -228,15 +228,25 @@ public class MesShippingLoadingCheckService implements IMesShippingLoadingCheckS //装车单明细 List vehiclesOrderDetailList = model.getDetailList(); vehiclesOrderDetailList.forEach(k -> { -// if(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.SHIPPINGED.getValue() == k.getStatus()){ -// k.setStatus(MesExtEnumUtil.LOADING_ORDER_DETAIL_SHIPPING_STATUS.PUBLISHED.getValue()); // todo 不改变为发运状态 -// } k.setSystemSyncStatus(CommonEnumUtil.FALSE); ConvertBean.serviceModelUpdate(k, userInfo); }); vehiclesOrderDetailRepository.saveAll(vehiclesOrderDetailList); } + + List shippingOrderList = new ArrayList<>(); + model.getDetailList().forEach(k -> { + DdlPackBean packBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getNumEqualPack(k.getShippingId(),"id",packBean); + MesShippingOrderManagement orderManagement = shippingOrderManagementRepository.getByProperty(packBean); + if (orderManagement != null) { + orderManagement.setStatus(MesExtEnumUtil.SHIPPING_ORDER_STATUS.LOADING.getValue()); + shippingOrderList.add(orderManagement); + } + }); + shippingOrderManagementRepository.saveAll(shippingOrderList); + update(loadingList); } return model; From 4bcdf788f8f1e54344983fe2ff7217194b2a9f3e Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 8 Apr 2025 16:37:15 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=90=E9=83=BD?= =?UTF-8?q?=E5=8F=91=E8=BF=90Vin=E5=8F=B7=E5=88=A4=E6=96=AD=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java index 0ec6f2f..03ccb47 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/shippingscan/strategy/MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl.java @@ -85,8 +85,8 @@ public class MesShippingCheckVolvoRackNoAndPartNoStrategyServiceImpl implements boolean scanFlg = false; for (MesShippingOrderManagementDetail detail : model.getDetailList()) { if (detail.getPartNo().equals(produceSn.getPartNo()) && StringUtils.isEmpty(detail.getBarcode()) && !Objects.equals(detail.getIsScanFlg(), MesCommonConstant.TRUE_INTEGER)) { - if (Objects.equals(detail.getVin(), workOrder.getVinCode())) { - throw new ImppBusiException(String.format("产品条码明细【%s】与发运单明细不匹配,请重新扫描!", model.getSn())); + if (!Objects.equals(detail.getVin(), workOrder.getVinCode())) { + throw new ImppBusiException(String.format("产品条码【%s】对应工单Vince号与发运单明细的Vin号不匹配,请重新扫描!", model.getSn())); } checkDetailScanSeq(orderManagement, detail, workOrder); //校验发运明细 From 189277924000a91ec92a554c65584139175be2da Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 8 Apr 2025 17:50:24 +0800 Subject: [PATCH 10/10] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=88=90=E9=83=BD?= =?UTF-8?q?=E5=8F=91=E8=BF=90=E6=89=AB=E4=BD=8D=E7=BD=AE=E7=A0=81=E6=9D=A1?= =?UTF-8?q?=E7=A0=81=E5=88=A4=E6=96=AD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.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/MesSortShippingCheckService.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java index f7b69d9..f7e5cfd 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/serviceimpl/busi/MesSortShippingCheckService.java @@ -585,7 +585,7 @@ public class MesSortShippingCheckService implements IMesSortShippingCheckService // throw new ImppBusiException(String.format("【%s】此条码已经扫描过,请检查数据!", model.getSn())); // } DdlPackBean packBean = DdlPackBean.getDdlPackBean(org); - DdlPreparedPack.getStringEqualPack(model.getSn(), "productSn", packBean); + DdlPreparedPack.getStringEqualPack(model.getSn(), "custSn", packBean); DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.DESC.getValue()}, new String[]{"createDatetime"}, packBean); MesProduceSn produceSn = produceSnRepository.getByProperty(packBean);