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 c93e76c..a663ee7 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 @@ -658,6 +658,14 @@ public class MesWorkOrderService implements IMesWorkOrderService { String shiftCode = productionRecord.getShiftCode(); String workCenterCode = productionRecord.getWorkCenterCode(); + //查询工作中心 + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(organizeCode); + DdlPreparedPack.getStringEqualPack(workCenterCode, "workCenterCode", ddlPackBean); + MesWorkCenter mesWorkCenter = mesWorkCenterRDao.getByProperty(ddlPackBean); + if (Objects.isNull(mesWorkCenter)) { + MesPcnException.throwMesBusiException("产线【%s】不存在",workCenterCode); + } + List shiftList = mesShiftService.queryMesShift(organizeCode, workCenterCode); // 如果当前班次是早班 if (CollectionUtils.isEmpty(shiftList)) { @@ -680,9 +688,11 @@ public class MesWorkOrderService implements IMesWorkOrderService { workOrders = oldMesWorkOrders.stream().filter(workOrder -> beginDate.getTime() >= transfer(workOrder.getPlanStartTime()).getTime() && beginDate.getTime() <= transfer(workOrder.getPlanEndTime()).getTime()).collect(Collectors.toList()); + MesWorkOrder bestWorkOrder = getBestWorkOrder(productionRecord, workOrders, mesWorkCenter); + String date = productionRecord.getLotNo(); // 如果找不到需要找 当天的其它班次 - if (CollectionUtils.isEmpty(workOrders)) { + if (CollectionUtils.isEmpty(workOrders) || bestWorkOrder == null) { // 如果开始时间大于结束时间,说明跨天了,跨天说明是晚班,需要找, 如果是晚班, 则找早中班的工单 if (currentShift.getStartTime().compareTo(currentShift.getEndTime()) > 0) { // 如果比0点大,需要找日期前一天的班次的工单号,如果是0点前,date =lotNO 如果是0点后,则找lot的前一天 @@ -783,11 +793,16 @@ public class MesWorkOrderService implements IMesWorkOrderService { DdlPreparedPack.getInPackList( statusList,"reportStatus",ddlPackBean); DdlPreparedPack.getIsNull("workOrderNo",ddlPackBean); String workCenterCodes = configService.getCfgValue(organizeCode, "MES_PCN_REPORT_CENTER"); - //String workCenterCodes ="B19CK01A"; + if (!StringUtils.isEmpty(workCenterCodes)) { List centerList = Arrays.asList(workCenterCodes.split(",")); DdlPreparedPack.getNotInPack(centerList, "workCenterCode", ddlPackBean); } + /*String workCenterCodes ="C06CK01B"; + if (!StringUtils.isEmpty(workCenterCodes)) { + List centerList = Arrays.asList(workCenterCodes.split(",")); + DdlPreparedPack.getInPack(centerList, "workCenterCode", ddlPackBean); + }*/ DdlPreparedPack.getOrderByPack(new Object[]{CommonEnumUtil.ASC_OR_DESC.ASC.getValue()}, new String[]{"modifyDatetime"}, ddlPackBean); List mesProductionRecordList = productionRecordRao.findByHqlTopWhere(ddlPackBean, 1000); List recordList = new ArrayList<>();