From db479403cb04f33586584844d9cbdde513201712 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期四, 18 七月 2024 15:42:19 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  100 +++++++++++++++++++++++++++++++++
 src/main/java/com/zy/core/MainProcess.java                  |    2 
 src/main/java/com/zy/asrs/entity/BasJar.java                |   13 ++++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   46 +-------------
 4 files changed, 120 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/BasJar.java b/src/main/java/com/zy/asrs/entity/BasJar.java
index 6c9e7de..e4a5fb9 100644
--- a/src/main/java/com/zy/asrs/entity/BasJar.java
+++ b/src/main/java/com/zy/asrs/entity/BasJar.java
@@ -191,5 +191,18 @@
 //            null    // 鍙抽棬鍙叧(checkBox)
 //    );
 
+    public Integer getEntStaNo$(){
+        if (this.jarNo==1){
+            return 612;
+        } else if (this.jarNo==2){
+            return 615;
+        } else if (this.jarNo==3){
+            return 619;
+        } else if (this.jarNo==4){
+            return 622;
+        } else {
+            return 0;
+        }
+    }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 1174b53..b38bf97 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -8016,5 +8016,105 @@
         }
         return false;
     }
+    /**
+     * 鍏朵粬  ===>> 607鍒嗛厤纭寲缃�
+     */
+    public synchronized void stackingCompletionDriveTray() {
+        Integer staNo1 = jarGetStartStaNo(607);
+        if (staNo1!=0){
+            SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+            StaProtocol staProtocol607 = devpThread.getStation().get(607);
+            staProtocol607.setStaNo(staNo1);
+            boolean result2 = MessageQueue.offer(SlaveType.Devp, 2, new Task(5, staProtocol607));
+        }
+    }
+    public synchronized Integer jarGetStartStaNo(Integer staNo) {
+        try {
+            int[] jarNos=new int[]{1,2,3,4};//(607鍒嗛厤纭寲缃�)
+            ArrayList<Integer> staNos = new ArrayList<Integer>() {{
+                add(607);add(608);add(609);add(610);add(611);add(612);
+                add(613);add(614);add(615);add(616);add(617);add(618);
+                add(619);add(620);add(621);add(622);
+            }};
+            ArrayList<Integer> jarNoList = new ArrayList<>();
+            ArrayList<Integer> jarNoListNow = new ArrayList<>();
+            for (int jarNo : jarNos) {
+                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
+                    add(0);
+                    add(1);
+                    add(2);
+                    add(3);
+                    add(4);
+                }});
+                if (basJarMastList.isEmpty()){
+                    continue;
+                }
+                if (basJarMastList.size()>0 && basJarMastList.size()<7){
+                    jarNoList.add(jarNo);
+                }
+            }
+            jarNoList.add(4);
+            jarNoList.add(2);
+            jarNoList.add(3);
+            jarNoList.add(1);
+            for (int jarNo : jarNoList) {
+                if (jarNoListNow.contains(jarNo)){
+                    continue;
+                }
+                // 鑾峰彇纭寲缃愪俊鎭�
+                JarThread jarThread = (JarThread) SlaveConnection.get(SlaveType.Jar, jarNo);
+                JarProtocol jarProtocol = jarThread.getJarProtocol();
+                if (jarProtocol == null) {
+                    continue;
+                }
+                if (jarProtocol.modeType != JarModeType.AUTO){
+                    continue;
+                }
+                if (jarProtocol.statusType .equals(JarStatusType.SOS)){
+                    continue;
+                }
+                if (jarProtocol.getJarTemperature()>50){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧娓╁害杩囬珮锛岀瓑寰呴檷娓�....锛侊紒锛�",jarProtocol.getJarNo());
+                    continue;
+                }
+
+                BasJar basJar = basJarMapper.selectById(jarProtocol.getJarNo());
+                if (Cools.isEmpty(basJar)){
+                    log.error("{}鍙风~鍖栫綈鏌ヨ璁惧妗f鏃犱俊鎭紒锛侊紒",jarProtocol.getJarNo());
+                    continue;
+                }
+                List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarNo, new ArrayList<Integer>() {{
+                    add(0);
+                    add(1);
+                    add(2);
+                    add(3);
+                    add(4);
+                }});
+                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 2);
+                Integer count = basJarMastList.size();
+                Integer staNoEnd = 0;
+                ArrayList<Integer> wrkNoList = new ArrayList<>();
+
+                for (Integer staNoEnt : staNos){
+                    StaProtocol staProtocolEnt = devpThread.getStation().get(staNoEnt);
+                    if (staProtocolEnt != null && staProtocolEnt.getWorkNo()!=0 && !wrkNoList.contains(staProtocolEnt.getWorkNo())){
+                        if (staProtocolEnt.getStaNo().equals(basJar.getEntStaNo$())){
+                            count++;
+                            staNoEnd = staProtocolEnt.getWorkNo();
+                            wrkNoList.add(staProtocolEnt.getWorkNo());
+                        }
+                    }
+                }
+                if (count<7){
+                    return staNoEnd;
+                }
+            }
+        }catch (Exception e){
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.error("鍏朵粬  ===>> 鍒嗛厤纭寲缃愯繘鍏ヤ笅涓�姝�"+e);
+        }
+        return 0;
+    }
 
 }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 84155f8..84e6168 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -69,6 +69,8 @@
                     mainService.generateStoreWrkFileSingle(); // 缁勬墭  鍙屽伐浣嶅崟浼�   灏忔枡绠�
                     mainService.generateStoreWrkFileLarge(); // 缁勬墭  鍙屽伐浣嶅崟浼�   澶ф枡绠�
 //                    mainService.generateStoreWrkFile0(); // WMS鍏ュ簱
+                    mainService.stackingCompletionDriveTray();//鍒嗛厤纭寲缃�
+
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
                     mainService.crnStnToOutStn();
                     // 鍑哄簱  ===>>  鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯  宸ヤ綅2
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index afbcd87..49bce81 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -466,26 +466,8 @@
         Integer siteId = staProtocol.getSiteId();
         Integer index =0;
         switch (siteId){
-            case 118:
+            case 607:
                 index=0;
-                break;
-            case 119:
-                index=1;
-                break;
-            case 120:
-                index=2;
-                break;
-            case 121:
-                index=3;
-                break;
-            case 131:
-                index=4;
-                break;
-            case 135:
-                index=5;
-                break;
-            case 147:
-                index=6;
                 break;
             default:
                 return;
@@ -495,7 +477,7 @@
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100.600." + index, true);    // 浠诲姟瀹屾垚
+            write = siemensS7Net.Write("DB100.1872", 1);    // 浠诲姟瀹屾垚
             if(write.IsSuccess){
                 writeCount=6;
             }else {
@@ -524,26 +506,8 @@
         Integer siteId = staProtocol.getSiteId();
         Integer index =0;
         switch (siteId){
-            case 118:
+            case 607:
                 index=0;
-                break;
-            case 119:
-                index=1;
-                break;
-            case 120:
-                index=2;
-                break;
-            case 121:
-                index=3;
-                break;
-            case 131:
-                index=4;
-                break;
-            case 135:
-                index=5;
-                break;
-            case 147:
-                index=6;
                 break;
             default:
                 return;
@@ -553,10 +517,10 @@
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100.600." + index, false);    // 浠诲姟瀹屾垚澶嶄綅
+            write = siemensS7Net.Write("DB100.1872", 0);    // 浠诲姟瀹屾垚澶嶄綅
             if(write.IsSuccess){
                 writeCount=6;
-            }else {
+            } else {
                 writeCount++;
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
             }

--
Gitblit v1.9.1