fangpy 1 سال پیش
والد
کامیت
28ed47aeb7

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

@@ -234,6 +234,9 @@ public class ApsServiceImpl implements ApsService {
         if (StringUtils.isNotBlank(operationDo.getCanchoosedeviceid())) {
             String[] sbIds = operationDo.getCanchoosedeviceid().split(",");
             for (String equIds : sbIds) {
+                if(equIds.equals("0001be252874536843730b100052")){
+                    System.out.println(equIds);
+                }
                 AspCheckItemsDo checkItemsD = eqMaps.get(equIds);
                 if (checkItemsD != null) {
                     optionalEquipments.add(equIds);
@@ -259,28 +262,33 @@ public class ApsServiceImpl implements ApsService {
                         List<ApsProcessOperationProcessEquDo> processEqus = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
                                 .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                 .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
-                                .ge(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
+                                .ge(ApsProcessOperationProcessEquDo::getPlanenddate, productionScheduleVo.getApsPlanStartDate())
                                 .orderByAsc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                         );
                         // 查询当前设备最后一个生产任务、连续生产需要考虑使用
                         List<ApsProcessOperationProcessEquDo> lastpros = processOperationProcessEquService.list(new LambdaQueryWrapper<ApsProcessOperationProcessEquDo>()
                                 .eq(ApsProcessOperationProcessEquDo::getProcessdeviceid, equIds)
                                 .notIn(ApsProcessOperationProcessEquDo::getBlankid, blankids)
-                                .gt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
+                                .lt(ApsProcessOperationProcessEquDo::getPlanstartdate, productionScheduleVo.getApsPlanStartDate())
                                 .orderByDesc(ApsProcessOperationProcessEquDo::getPlanstartdate)
                         );
                         if (lastpros != null && lastpros.size() > 0) {
                             ApsProcessOperationProcessEquDo lastpro = lastpros.get(0);
-                            ApsProcessOperationDo lastop = apsProcessOperationService.getById(lastpro.getProcessid());
-                            // 输出物料
-                            List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
-                                    .eq(ApsProcessOperationOutMaterDo::getMainid, lastpro.getProcessid()));
-                            equipment.setLastProcessType(lastop.getProcess());
-                            equipment.setLastProcessEndTime(lastpro.getPlanenddate());
-                            equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
-                            // 合金+输入物料+宽度+厚度+输出物料厚度
-                            equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
-                            equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
+                            if(processEqus != null && processEqus.size()>0){
+                                List<ApsProcessOperationProcessEquDo> hasLasts = processEqus.stream().filter(v -> v.getId().equals(lastpro.getId())).collect(Collectors.toList());
+                                if(hasLasts == null || hasLasts.size() == 0){
+                                    ApsProcessOperationDo lastop = apsProcessOperationService.getById(lastpro.getProcessid());
+                                    // 输出物料
+                                    List<ApsProcessOperationOutMaterDo> outMaterDos = apsProcessOperationOutMaterService.list(new LambdaQueryWrapper<ApsProcessOperationOutMaterDo>()
+                                            .eq(ApsProcessOperationOutMaterDo::getMainid, lastpro.getProcessid()));
+                                    equipment.setLastProcessType(lastop.getProcess());
+                                    equipment.setLastProcessEndTime(lastpro.getPlanenddate());
+                                    equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
+                                    // 合金+输入物料+宽度+厚度+输出物料厚度
+                                    equipment.setLastSeriesProduceMark(lastop.getMetal() + "^_^" + lastop.getProducttype() + "^_^" + lastop.getProwidth() + "^_^" + lastop.getThickness() + "^_^" + outMaterDos.get(0).getThickness());
+                                    equipment.setLastProcessCutfinishmin(lastop.getCutfinishmin() == null ? null : lastop.getCutfinishmin().intValue());
+                                }
+                            }
                         }
                         // 查询相关工序作业
                         Set<String> processIds = new HashSet<>();
@@ -466,6 +474,7 @@ public class ApsServiceImpl implements ApsService {
                 }
                 // 合金
                 processes.setVolumeMetal(operationDo.getMetal());
+                processes.setVolumeMetalstate(operationDo.getMetalstate());
                 // 连续生产标识设置
                 // 合金+输入物料+宽度+输入物料厚度+输出物料厚度(取第一个冷轧工序使用)
                 processes.setSeriesProduceMark(operationDo.getMetal() + "^_^" + operationDo.getProducttype() + "^_^" + operationDo.getProwidth() + "^_^" + operationDo.getThickness() + "^_^" + outMaterDos.get(0).getThickness());

+ 11 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/EquipmentRunTime.java

@@ -33,6 +33,13 @@ public class EquipmentRunTime {
      * 工序
      */
     private String processType;
+    /**
+     * 合金
+     */
+    private String volumeMetal;
+
+    // 合金状态
+    private String volumeMetalstate;
 
     /**
      * 上机准备时间(单位:分钟)
@@ -51,6 +58,10 @@ public class EquipmentRunTime {
      * 总卷重
      */
     private BigDecimal totalSinglerollweight;
+    /**
+     * 厚度
+     */
+    private BigDecimal totalThickness;
 
     /**
      * 是否锁定标识,排程中的是false

+ 21 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/vo/ProductionProcesses.java

@@ -105,6 +105,8 @@ public class ProductionProcesses{
      * 单卷宽度
      */
     private BigDecimal volumeWidth;
+    // 单卷厚度
+    private BigDecimal volumeThickness;
 
     /**
      * 单卷重
@@ -194,6 +196,9 @@ public class ProductionProcesses{
      */
     private String volumeMetal;
 
+    // 合金状态
+    private String volumeMetalstate;
+
     public String getEquipmentType() {
         return equipmentType;
     }
@@ -484,4 +489,20 @@ public class ProductionProcesses{
     public void setSinglerollweight(BigDecimal singlerollweight) {
         this.singlerollweight = singlerollweight;
     }
+
+    public String getVolumeMetalstate() {
+        return volumeMetalstate;
+    }
+
+    public void setVolumeMetalstate(String volumeMetalstate) {
+        this.volumeMetalstate = volumeMetalstate;
+    }
+
+    public BigDecimal getVolumeThickness() {
+        return volumeThickness;
+    }
+
+    public void setVolumeThickness(BigDecimal volumeThickness) {
+        this.volumeThickness = volumeThickness;
+    }
 }