From 242a3558a7602cabc2e01d32b4b35f08705eefb6 Mon Sep 17 00:00:00 2001 From: "xiangwei.zhang" <752558143@qq.com> Date: Wed, 12 Mar 2025 21:05:41 +0800 Subject: [PATCH] =?UTF-8?q?45558=20PCN=EF=BC=9A=E6=8E=92=E5=BA=8F=E6=8A=A5?= =?UTF-8?q?=E5=B7=A5job=E9=92=88=E5=AF=B9=E9=9D=9E=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E6=97=B6=E6=9C=89=E5=B7=A5=E5=8D=95=E5=92=8C?= =?UTF-8?q?=E6=97=A0=E5=B7=A5=E5=8D=95=E9=9C=80=E8=A6=81=E5=88=86=E5=BC=80?= =?UTF-8?q?=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/dao/IMesProductionRecordDao.java | 2 +- .../daoimpl/MesProductionRecordImpl.java | 7 ++++++- .../serviceimpl/busi/MesWorkOrderService.java | 22 +++++++++++++--------- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesProductionRecordDao.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesProductionRecordDao.java index 9d4e76b..c338bca 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesProductionRecordDao.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/dao/IMesProductionRecordDao.java @@ -15,5 +15,5 @@ import java.util.List; public interface IMesProductionRecordDao { @ApiOperation("查询汇报的加工记录") - List findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List workCenterList); + List findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List workCenterList, boolean isHasOrder); } diff --git a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesProductionRecordImpl.java b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesProductionRecordImpl.java index e8d2775..a8cac44 100644 --- a/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesProductionRecordImpl.java +++ b/modules/i3plus-ext-mes-pcn-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/pcn/apiservice/daoimpl/MesProductionRecordImpl.java @@ -32,7 +32,7 @@ public class MesProductionRecordImpl implements IMesProductionRecordDao { private EntityManager entityManager; @Override - public List findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List workCenterList) { + public List findMesProductionRecordNoReport(String organizeCode, Integer workOrderType, Integer pageSize, List workCenterList, boolean isHasOrder) { StringBuilder hql = new StringBuilder(); hql.append(" select record from MesProductionRecord record left join MesWorkCenter center on record.workCenterCode = center.workCenterCode where 1=1"); hql.append(" and record.organizeCode = :organizeCode and record.isValid = :isValid and record.isDeleted = :isDeleted "); @@ -44,6 +44,11 @@ public class MesProductionRecordImpl implements IMesProductionRecordDao { if(MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue() == workOrderType){ hql.append(" order by record.reportStatus asc,record.modifyDatetime asc "); }else{ + if (isHasOrder) { + hql.append(" and record.workOrderNo !='' and record.workOrderNo is not null "); + } else { + hql.append(" and (record.workOrderNo = '' or record.workOrderNo is null) "); + } hql.append(" order by record.modifyDatetime asc "); } Query hqlQuery = entityManager.createQuery(hql.toString(), MesProductionRecord.class); 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 4522235..abeb417 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 @@ -552,8 +552,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesWorkOrder oldMesWorkOrder = getBestWorkOrder(productionRecord, oldMesWorkOrderList, mesWorkCenter); if (oldMesWorkOrder == null) { LOGGER.error(String.format("未找到匹配的加工单, 条码=%s", productionRecord.getCustSn())); - return; - //throw new ImppBusiException(String.format("未找到匹配的加工单")); + throw new ImppBusiException(String.format("未找到匹配的加工单")); } //获取生产版本 @@ -1243,14 +1242,19 @@ public class MesWorkOrderService implements IMesWorkOrderService { @Override public void doMesWorkOrderNoSortReport(String organizeCode, Integer pageSize, String userName) { String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER"); - //查询所有非排序工单 - List recordNoReportList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null); - if (CollectionUtils.isEmpty(recordNoReportList)) { - LOGGER.error("非排序加工单加工记录中没有数据,无需处理"); + //查询非排序工单 有工单 + List recordNoReportHasOrderNoList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null, true); + if (CollectionUtils.isEmpty(recordNoReportHasOrderNoList)) { + LOGGER.error("非排序有加工单加工记录中没有数据,无需处理"); + return; + } + //查询非排序工单 有工单 + List recordNoReportNotHasOrderNoList = mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.NOSORT.getValue(), pageSize, !StringUtils.isEmpty(workCenterCodes) ? Arrays.asList(workCenterCodes.split(",")) : null, false); + if (CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)) { + LOGGER.error("非排序无加工单加工记录中没有数据,无需处理"); return; } - List recordNoReportNotHasOrderNoList = recordNoReportList.stream().filter(item -> StringUtils.isEmpty(item.getWorkOrderNo())).collect(Collectors.toList()); - List recordNoReportHasOrderNoList = recordNoReportList.stream().filter(item -> !StringUtils.isEmpty(item.getWorkOrderNo())).collect(Collectors.toList()); + //处理无工单加工记录 if(!CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)){ for (MesProductionRecord mesProductionRecord : recordNoReportNotHasOrderNoList) { @@ -1474,7 +1478,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { } public MesWorkOrderSortReportModel initMesWorkOrderSortReportModel(String organizeCode, Integer pageSize, String userName) { - MesWorkOrderSortReportModel model = new MesWorkOrderSortReportModel(organizeCode, userName, mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue(), pageSize,null)); + MesWorkOrderSortReportModel model = new MesWorkOrderSortReportModel(organizeCode, userName, mesProductionRecordDao.findMesProductionRecordNoReport(organizeCode, MesExtEnumUtil.WORK_CENTER_TYPE.SORT.getValue(), pageSize,null,true)); model.setMesWorkOrderList(workOrderExtService.getWorkOrderList(organizeCode, model.getWorkOrderList())); model.setMesMoveRuleList(mesMoveRuleService.findMesMoveRuleByPartProdGroupCode(model.getPartProdGroupCodeList(), organizeCode,MesExtEnumUtil.MOVE_RULE_GROUP_TYPE.MOVE_RULE_GROUP_TYPE_20.getValue())); model.setMesWorkOrderPartList(findMesWorkOrderPartByOrderNo(organizeCode, model.getWorkOrderList()));