Ver código fonte

退火炉合并bug修改

fangpy 5 meses atrás
pai
commit
0e09dba6a4

+ 75 - 0
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/domain/ProductionProcesses.java

@@ -400,6 +400,33 @@ public class ProductionProcesses implements Serializable {
     // 小卷成退工序所属组
     private String groupname;
 
+    /**
+     * 最小单卷宽度
+     */
+    private BigDecimal minVolumeWidth;
+    /**
+     * 最大单卷宽度
+     */
+    private BigDecimal maxVolumeWidth;
+
+    /**
+     * 最小单卷重量
+     */
+    private BigDecimal minSinglerollweight;
+    /**
+     * 最大单卷重量
+     */
+    private BigDecimal maxSinglerollweight;
+
+    /**
+     * 最小单卷厚度
+     */
+    private BigDecimal minThickness;
+    /**
+     * 最大单卷厚度
+     */
+    private BigDecimal maxThickness;
+
     public String getEquipmentType() {
         return equipmentType;
     }
@@ -1098,6 +1125,54 @@ public class ProductionProcesses implements Serializable {
         this.groupname = groupname;
     }
 
+    public BigDecimal getMinVolumeWidth() {
+        return minVolumeWidth;
+    }
+
+    public void setMinVolumeWidth(BigDecimal minVolumeWidth) {
+        this.minVolumeWidth = minVolumeWidth;
+    }
+
+    public BigDecimal getMaxVolumeWidth() {
+        return maxVolumeWidth;
+    }
+
+    public void setMaxVolumeWidth(BigDecimal maxVolumeWidth) {
+        this.maxVolumeWidth = maxVolumeWidth;
+    }
+
+    public BigDecimal getMinSinglerollweight() {
+        return minSinglerollweight;
+    }
+
+    public void setMinSinglerollweight(BigDecimal minSinglerollweight) {
+        this.minSinglerollweight = minSinglerollweight;
+    }
+
+    public BigDecimal getMaxSinglerollweight() {
+        return maxSinglerollweight;
+    }
+
+    public void setMaxSinglerollweight(BigDecimal maxSinglerollweight) {
+        this.maxSinglerollweight = maxSinglerollweight;
+    }
+
+    public BigDecimal getMinThickness() {
+        return minThickness;
+    }
+
+    public void setMinThickness(BigDecimal minThickness) {
+        this.minThickness = minThickness;
+    }
+
+    public BigDecimal getMaxThickness() {
+        return maxThickness;
+    }
+
+    public void setMaxThickness(BigDecimal maxThickness) {
+        this.maxThickness = maxThickness;
+    }
+
     public String getSeriSort(){
         String sortStr = this.getId();
         if(this.getStartTime() != null){

+ 85 - 5
rw-aps-server/src/main/java/com/rongwei/rwapsserver/aps/score/ApsConstraintProvider.java

@@ -1657,6 +1657,12 @@ public class ApsConstraintProvider implements ConstraintProvider {
                 pp.setBsProcessesId(Arrays.asList(new String[]{"haspcprocess"}));
                 pp.setTotalVolumeWidth(equipmentRunTime.getTotalVolumeWidth());
                 pp.setTotalSinglerollweight(equipmentRunTime.getTotalSinglerollweight());
+                pp.setMaxVolumeWidth(equipmentRunTime.getMaxVolumeWidth());
+                pp.setMinVolumeWidth(equipmentRunTime.getMinVolumeWidth());
+                pp.setMaxSinglerollweight(equipmentRunTime.getMaxSinglerollweight());
+                pp.setMinSinglerollweight(equipmentRunTime.getMinSinglerollweight());
+                pp.setMaxThickness(equipmentRunTime.getMaxThickness());
+                pp.setMinThickness(equipmentRunTime.getMinThickness());
                 pp.setVolumeThickness(equipmentRunTime.getTotalThickness());
                 pp.setConflictRoptions(new HashMap<>());
                 pp.setOpeProducePcNum(equipmentRunTime.getPcNum());
@@ -1805,7 +1811,31 @@ public class ApsConstraintProvider implements ConstraintProvider {
                 processTypeSet.add(productionProcesses.getProcessType());
                 metalstateSet.add(productionProcesses.getVolumeMetalstate());
                 // 宽度
-                if(productionProcesses.getVolumeWidth() != null){
+                // 最大宽度
+                BigDecimal maxVolumeWidth1 = productionProcesses.getMaxVolumeWidth();
+                if(maxVolumeWidth1 == null){
+                    maxVolumeWidth1 = productionProcesses.getVolumeWidth();
+                }
+                if(maxVolumeWidth == null){
+                    maxVolumeWidth = maxVolumeWidth1;
+                }else{
+                    if(maxVolumeWidth1.compareTo(maxVolumeWidth)>0){
+                        maxVolumeWidth = maxVolumeWidth1;
+                    }
+                }
+                // 最小宽度
+                BigDecimal minVolumeWidth1 = productionProcesses.getMinVolumeWidth();
+                if(minVolumeWidth1 == null){
+                    minVolumeWidth1 = productionProcesses.getVolumeWidth();
+                }
+                if(minVolumeWidth == null){
+                    minVolumeWidth = minVolumeWidth1;
+                }else{
+                    if(minVolumeWidth1.compareTo(minVolumeWidth)<0){
+                        minVolumeWidth = minVolumeWidth1;
+                    }
+                }
+                /*if(productionProcesses.getVolumeWidth() != null){
                     if(maxVolumeWidth == null){
                         maxVolumeWidth = productionProcesses.getVolumeWidth();
                     }else{
@@ -1820,9 +1850,34 @@ public class ApsConstraintProvider implements ConstraintProvider {
                             minVolumeWidth = productionProcesses.getVolumeWidth();
                         }
                     }
-                }
+                }*/
                 // 厚度
+                // 最大厚度
+                BigDecimal maxThickness = productionProcesses.getMaxThickness();
+                if(maxThickness == null){
+                    maxThickness = productionProcesses.getVolumeThickness();
+                }
                 if(maxVolumeThickness == null){
+                    maxVolumeThickness = maxThickness;
+                }else{
+                    if(maxThickness.compareTo(maxVolumeThickness)>0){
+                        maxVolumeThickness = maxThickness;
+                    }
+                }
+                //最小厚度
+                BigDecimal minThickness = productionProcesses.getMinThickness();
+                if(minThickness == null){
+                    minThickness = productionProcesses.getVolumeThickness();
+                }
+                if(minVolumeThickness == null){
+                    minVolumeThickness = minThickness;
+                }else{
+                    if(minThickness.compareTo(minVolumeThickness)<0){
+                        minVolumeThickness = minThickness;
+                    }
+                }
+
+                /*if(maxVolumeThickness == null){
                     maxVolumeThickness = productionProcesses.getVolumeThickness();
                 }else{
                     if(productionProcesses.getVolumeThickness().compareTo(maxVolumeThickness)>0){
@@ -1835,9 +1890,34 @@ public class ApsConstraintProvider implements ConstraintProvider {
                     if(productionProcesses.getVolumeThickness().compareTo(minVolumeThickness)<0){
                         minVolumeThickness = productionProcesses.getVolumeThickness();
                     }
-                }
+                }*/
                 // 重量
-                if(productionProcesses.getSinglerollweight() != null){
+                // 最大重量
+                BigDecimal maxSinglerollweight1 = productionProcesses.getMaxSinglerollweight();
+                if(maxSinglerollweight1 == null){
+                    maxSinglerollweight1 = productionProcesses.getSinglerollweight();
+                }
+                if(maxSinglerollweight == null){
+                    maxSinglerollweight = maxSinglerollweight1;
+                }else{
+                    if(maxSinglerollweight1.compareTo(maxSinglerollweight)>0){
+                        maxSinglerollweight = maxSinglerollweight1;
+                    }
+                }
+                // 最小重量
+                BigDecimal minSinglerollweight1 = productionProcesses.getMinSinglerollweight();
+                if(minSinglerollweight1 == null){
+                    minSinglerollweight1 = productionProcesses.getSinglerollweight();
+                }
+                if(minSinglerollweight == null){
+                    minSinglerollweight = minSinglerollweight1;
+                }else{
+                    if(minSinglerollweight1.compareTo(minSinglerollweight)<0){
+                        minSinglerollweight = minSinglerollweight1;
+                    }
+                }
+
+                /*if(productionProcesses.getSinglerollweight() != null){
                     if(maxSinglerollweight == null){
                         maxSinglerollweight = productionProcesses.getSinglerollweight();
                     }else{
@@ -1852,7 +1932,7 @@ public class ApsConstraintProvider implements ConstraintProvider {
                             minSinglerollweight = productionProcesses.getSinglerollweight();
                         }
                     }
-                }
+                }*/
             }
             // 校验退火实际装炉卷数是否大于最大装炉卷数
             if(minZljs == 0){