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 5ed14da..bab1738 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 @@ -675,18 +675,26 @@ public class MesWorkOrderService implements IMesWorkOrderService { MesShift currentShift = shifts.stream().filter(mesShift -> Objects.equals(mesShift.getShiftCode(), shiftCode)).findFirst().orElse(null); - String beginTime =productionRecord.getLotNo() + " " + currentShift.getStartTime(); - Date beginDate = transfer(beginTime); - - /*MesWorkOrder found = null; - for (MesWorkOrder oldMesWorkOrder : oldMesWorkOrders) { - if (beginDate.getTime() >= transfer(oldMesWorkOrder.getPlanStartTime()).getTime() && beginDate.getTime() < transfer(oldMesWorkOrder.getPlanEndTime()).getTime()) { - found = oldMesWorkOrder; - break; + + 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<>(); + for (MesWorkOrder oldMesWorkOrder : oldMesWorkOrders) { + if (Objects.equals(oldMesWorkOrder.getShiftCode(), productionRecord.getShiftCode()) && Objects.equals(oldMesWorkOrder.getProduceTime(), orderDate)) { + list.add(oldMesWorkOrder); + } } - }*/ + workOrders = list; - 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); @@ -798,7 +806,7 @@ public class MesWorkOrderService implements IMesWorkOrderService { List centerList = Arrays.asList(workCenterCodes.split(",")); DdlPreparedPack.getNotInPack(centerList, "workCenterCode", ddlPackBean); } - /*String workCenterCodes ="C06CK01B"; + /*String workCenterCodes ="B19CK01A"; if (!StringUtils.isEmpty(workCenterCodes)) { List centerList = Arrays.asList(workCenterCodes.split(",")); DdlPreparedPack.getInPack(centerList, "workCenterCode", ddlPackBean);