From d22bd9ecdd9b4e8aa73040f5b6a10f65ed2f1d1f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com>
Date: Wed, 5 Jun 2024 15:56:28 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=8F=90=E9=AB=98=E8=AE=BE=E5=A4=87=E4=BA=A7?=
 =?UTF-8?q?=E8=83=BD=202.=E4=BC=98=E5=8C=96=E6=8E=92=E4=BA=A7=E7=AE=97?=
 =?UTF-8?q?=E6=B3=95=E7=BB=93=E6=9E=9C=E8=AE=B0=E5=BD=95=E9=80=BB=E8=BE=91?=
 =?UTF-8?q?=E5=8F=8A=E6=97=A5=E5=BF=97=E8=BE=93=E5=85=A5=E5=87=BA=203.?=
 =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=87=AA=E7=94=B1=E8=BE=B9=E5=A4=84=E7=90=86?=
 =?UTF-8?q?=E5=B7=A5=E5=BA=8F=E5=8F=8A=E8=AE=BE=E5=A4=87=E5=AE=9A=E4=B9=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../java/com/dsic/gj_erp/pc/Constant.java     | 36 ++++++++++---------
 .../java/com/dsic/gj_erp/pc/DataFactory.java  | 10 ++++++
 .../pc/dto/gx/工序21自由边处理.java    | 33 +++++++++++++++++
 .../pc/dto/sb/设备21自由边处理.java    | 11 ++++++
 .../dsic/gj_erp/pc/dto/套料图工序.java   | 10 +++---
 5 files changed, 78 insertions(+), 22 deletions(-)
 create mode 100644 src/main/java/com/dsic/gj_erp/pc/dto/gx/工序21自由边处理.java
 create mode 100644 src/main/java/com/dsic/gj_erp/pc/dto/sb/设备21自由边处理.java

diff --git a/src/main/java/com/dsic/gj_erp/pc/Constant.java b/src/main/java/com/dsic/gj_erp/pc/Constant.java
index 4cab553..519ee2a 100644
--- a/src/main/java/com/dsic/gj_erp/pc/Constant.java
+++ b/src/main/java/com/dsic/gj_erp/pc/Constant.java
@@ -29,27 +29,29 @@ public interface Constant {
     @Getter
     @AllArgsConstructor
     enum 设备产能{
-        上料01(工序.上料,"上料01","",0,0,200.0,200.0,400),
-        抛丸01(工序.抛丸,"抛丸01","",0,0,240.0,286.0,526.0),
-        理料01(工序.理料,"理料01","",0,0,240.0,286.0,526.0),
-        划线01(工序.划线,"划线01","",0,0,240.0,286.0,526.0),
+        上料01(工序.上料,"上料01","",0,0,500.0,400.0,400),
+        抛丸01(工序.抛丸,"抛丸01","",0,0,480.0,286.0,526.0),
+        理料01(工序.理料,"理料01","",0,0,480.0,286.0,526.0),
+        划线01(工序.划线,"划线01","",0,0,480.0,286.0,526.0),
 
-        龙门01(工序.切割,"龙门01","",2.4,3.6,19.6,15.6,25.2),
-        火焰01(工序.切割,"火焰01","",0.3,11.15,2.0,0,2.0),
+        龙门01(工序.切割,"龙门01","",2.4,3.6,40,15.6,25.2),
+        火焰01(工序.切割,"火焰01","",0.3,11.15,40.0,0,2.0),
         数控01(工序.切割,"数控01","",1.5,3.0,0,8.5,8.5),
-        火焰03(工序.切割, "火焰03", "", 0.3, 11.5, 12.0, 0, 2.0),
+        火焰03(工序.切割, "火焰03", "", 0.3, 11.5, 40.0, 0, 2.0),
         数控03(工序.切割, "数控03", "", 2.0, 4.2, 0, 14.0, 14.0),
-        龙门03(工序.切割, "龙门03", "", 1.6, 3.2, 17.2, 11.2, 18.4),
+        龙门03(工序.切割, "龙门03", "", 1.6, 3.2, 40.0, 11.2, 18.4),
 
-        火焰02(工序.切割, "火焰02", "", 0.3, 11.5, 13.9, 0, 3.9),
+        火焰02(工序.切割, "火焰02", "", 0.3, 11.5, 40.0, 0, 3.9),
         数控02(工序.切割, "数控02", "", 1.4, 3.0, 0, 18.2, 18.2),
-        龙门02(工序.切割, "龙门02", "", 2.0, 3.0, 20.0, 13.0, 13.0),
+        龙门02(工序.切割, "龙门02", "", 2.0, 3.0, 40.0, 13.0, 13.0),
 
-        坡口01(工序.坡口, "坡口01", "", 2.0, 3.0, 50.0, 13.0, 13.0),
-        型材01(工序.型材面板, "型材01", "", 2.0, 3.0, 50.0, 13.0, 13.0),
-        曲加工01(工序.曲型, "曲加工01", "", 2.0, 3.0, 10.0, 13.0, 13.0),
-        打磨01(工序.打磨, "打磨01", "", 2.0, 3.0, 10.0, 13.0, 13.0),
-        未知01(工序.NULL, "未知01", "", 2.0, 3.0, 10.0, 13.0, 13.0),
+        坡口01(工序.坡口, "坡口01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
+        型材01(工序.型材面板, "型材01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
+        曲加工01(工序.曲型, "曲加工01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
+        打磨01(工序.打磨, "打磨01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
+
+        自由边处理01(工序.自由边处理, "自由边处理01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
+        未知01(工序.NULL, "未知01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
         ;
         public 工序 _工序;
         public String 设备编号;
@@ -69,14 +71,14 @@ public interface Constant {
         理料("21"),
         划线("01"),
         切割("03,04,05,06"),
-        //        一跨龙门切割("03"),一跨数控切割("04"),二跨数控切割("04"),三跨数控切割("04"),三跨平铁切割("05"),手工切割("06"),
+        //一跨龙门切割("03"),一跨数控切割("04"),二跨数控切割("04"),三跨数控切割("04"),三跨平铁切割("05"),手工切割("06"),
         坡口("08"),
         型材面板("17"),
         自由边处理("14,15"),
         曲型("18"),
         打磨("13,16"),
         号料("02"),
-        //        平铁打磨("13"),手工打磨("16"),
+        //平铁打磨("13"),手工打磨("16"),
         倒棱("09"),
         切端头("11"),
         预配盘(""),
diff --git a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java
index d26e833..f22a771 100644
--- a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java
+++ b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java
@@ -24,6 +24,7 @@ import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
 import com.dsic.gj_erp.service.jcsj.EmSbjbbService;
 import com.dsic.gj_erp.service.jhgk.DmSygdxqService;
 import com.google.common.collect.ImmutableMap;
+import lombok.extern.slf4j.Slf4j;
 
 import java.io.FileOutputStream;
 import java.io.OutputStream;
@@ -38,6 +39,7 @@ import static com.dsic.gj_erp.pc.Constant.工序CD;
 import static com.dsic.gj_erp.pc.Manager.排产;
 import static com.dsic.gj_erp.pc.Manager.*;
 
+@Slf4j
 public class DataFactory {
 
     public static void 排产2() {
@@ -76,6 +78,9 @@ public class DataFactory {
             }
         });
         清理冗余数据(list);
+        if (Manager.排产结果.size()>0){
+            log.info("排产异常--{}个未完整排产,{}",Manager.排产结果.size(),Manager.排产结果);
+        }
     }
 
     private static void 清理冗余数据(List<钢料需求> list){
@@ -348,6 +353,11 @@ public class DataFactory {
                         .put(Constant.设备产能.打磨01.设备编号, new 设备09打磨(Constant.设备产能.打磨01))
                         .build();
                 return new 工序09打磨(_设备);
+            case 自由边处理:
+                _设备=ImmutableMap.<String, 设备>builder()
+                        .put(Constant.设备产能.自由边处理01.设备编号, new 设备21自由边处理(Constant.设备产能.自由边处理01))
+                        .build();
+                return new 工序21自由边处理(_设备);
 //            case 预配盘:
 //                return new 工序01上料(_工序,_设备);
 //            case 光电结束:
diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/gx/工序21自由边处理.java b/src/main/java/com/dsic/gj_erp/pc/dto/gx/工序21自由边处理.java
new file mode 100644
index 0000000..deadfdb
--- /dev/null
+++ b/src/main/java/com/dsic/gj_erp/pc/dto/gx/工序21自由边处理.java
@@ -0,0 +1,33 @@
+package com.dsic.gj_erp.pc.dto.gx;
+
+import com.dsic.gj_erp.pc.Constant;
+import com.dsic.gj_erp.pc.dto.工序产能;
+import com.dsic.gj_erp.pc.dto.设备;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Map;
+
+@Getter
+@Setter
+public class 工序21自由边处理 extends 工序产能 {
+    public 工序21自由边处理(Map<String, 设备> _设备) {
+        super(Constant.工序.自由边处理,_设备);
+    }
+
+    @Override
+    public void 计算工作量() {
+        this.产能=0;
+        if (this.白班时长>0){
+            this.产能+=this.白班时长*Constant.设备产能.型材01.get白班设备产能()/7.0;
+        }
+        if (this.二班时长>0){
+            this.产能+=this.二班时长*Constant.设备产能.型材01.get二班设备产能()/7.0;
+        }
+    }
+
+    @Override
+    public void 占用资源(double 所需产能) {
+        super.占用资源(所需产能);
+    }
+}
diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/sb/设备21自由边处理.java b/src/main/java/com/dsic/gj_erp/pc/dto/sb/设备21自由边处理.java
new file mode 100644
index 0000000..8e66bf4
--- /dev/null
+++ b/src/main/java/com/dsic/gj_erp/pc/dto/sb/设备21自由边处理.java
@@ -0,0 +1,11 @@
+package com.dsic.gj_erp.pc.dto.sb;
+
+import com.dsic.gj_erp.pc.Constant;
+import com.dsic.gj_erp.pc.dto.设备;
+
+public class 设备21自由边处理 extends 设备 {
+
+    public 设备21自由边处理(Constant.设备产能 _设备产能) {
+        super(_设备产能);
+    }
+}
diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java
index e76ef30..39e61a6 100644
--- a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java
+++ b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java
@@ -50,13 +50,13 @@ public abstract class 套料图工序 implements 套料图工序接口 {
                         this.bom.get已排工序().add(0,_工序);
                     }
                 });
-
-                if (bom.get已排工序().size()==0) {
-                    Manager.排产结果.add(this.bom);
-                    atomicBoolean.set(true);
-                }
             }
         });
+        //排产失败相关记录
+        if (bom.get已排工序().size()!=this.工序.size()) {
+            Manager.排产结果.add(this.bom);
+            atomicBoolean.set(true);
+        }
     }
 
     protected boolean 占用资源(Constant.工序 _工序,double 需求数量){