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..154ac3b 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,17 @@ 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("非排序加工单加工记录中没有数据,无需处理"); - return; + //查询非排序工单 有工单 + 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("非排序有加工单加工记录中没有数据,无需处理"); } - 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()); + //查询非排序工单 有工单 + 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("非排序无加工单加工记录中没有数据,无需处理"); + } + //处理无工单加工记录 if(!CollectionUtils.isEmpty(recordNoReportNotHasOrderNoList)){ for (MesProductionRecord mesProductionRecord : recordNoReportNotHasOrderNoList) { @@ -1474,7 +1476,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()));