fangpy пре 8 месеци
родитељ
комит
c1460ce1f8

+ 7 - 4
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsServiceImpl.java

@@ -779,7 +779,7 @@ public class ApsServiceImpl implements ApsService {
             }
             String[] sbIds = canchoosedeviceid.split(",");
             for (String equIds : sbIds) {
-                if(equIds.equals("0001be252874536843730b100051")){
+                if(equIds.equals("0001be252874536843730b100017")){
                     System.out.println(equIds);
                 }
                 AspCheckItemsDo checkItemsD = eqMaps.get(equIds);
@@ -966,14 +966,17 @@ public class ApsServiceImpl implements ApsService {
                             }
                         }
                         // 设备日历不可用时间段
+                        Date finalApsPlanStartDate = apsPlanStartDate;
                         List<ApsEquipmentCalendarDo> equipmentCalendarDos = apsEquipmentCalendarService.list(
-                                new LambdaQueryWrapper<ApsEquipmentCalendarDo>().ge(ApsEquipmentCalendarDo::getSdendtime, apsPlanStartDate)
-                                        .eq(ApsEquipmentCalendarDo::getProcessdeviceid, equipment.getBsEquipmentId()));
+                                new LambdaQueryWrapper<ApsEquipmentCalendarDo>().eq(ApsEquipmentCalendarDo::getProcessdeviceid, equipment.getBsEquipmentId())
+                                        .and(i->i.ge(ApsEquipmentCalendarDo::getSdendtime, finalApsPlanStartDate).or().isNull(ApsEquipmentCalendarDo::getSdendtime)));
                         if (equipmentCalendarDos != null && equipmentCalendarDos.size() > 0) {
                             for (ApsEquipmentCalendarDo equipmentCalendarDo : equipmentCalendarDos) {
                                 EquipmentRunTime er = new EquipmentRunTime();
                                 er.setStartRunTime(equipmentCalendarDo.getSdstarttime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
-                                er.setEndRunTime(equipmentCalendarDo.getSdendtime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
+                                if(equipmentCalendarDo.getSdendtime() != null){
+                                    er.setEndRunTime(equipmentCalendarDo.getSdendtime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
+                                }
                                 er.setOccupyType("maintenance");
                                 equipmentRunTimes.add(er);
                             }