From 298adfe254be9a5976a28dfd63f915842886d588 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 17 一月 2024 14:23:31 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/model/DevpSlave.java              |    1 
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  147 ++++++++++++++++++++++++++++++++++++++++++++----
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |    1 
 src/main/resources/mapper/WrkMastMapper.xml                 |    4 +
 src/main/java/com/zy/core/MainProcess.java                  |    4 +
 src/main/resources/application.yml                          |   12 ++++
 6 files changed, 156 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 6320ce1..ec1f13c 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -257,6 +257,7 @@
      * 鏌ユ壘鏄惁瀛樺湪鎷嗗灈鍗曟瀹屾垚鐨勫伐浣滄。
      */
     WrkMast selectWrkMastUnstackingOne202(@Param("sourceStaNo")Integer sourceStaNo);
+    WrkMast selectWrkMastUnstackingOne202Two(@Param("sourceStaNo")Integer sourceStaNo);
 
     WrkMast selectWrkMastLabelingOne54();
 
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 101bb26..7859cd6 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -492,17 +492,17 @@
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
 
                     if (wrkMast == null) {
-                        WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
-                        if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
-                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L);
-                            if (Cools.isEmpty(wrkMastSta)){
-                                WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
-                                wrkMastSta1.setType(2);
-                                wrkMastSta1.setWrkType(1);
-                                wrkMastStaMapper.insert(wrkMastSta1);
-                            }
-                            continue;
-                        }
+//                        WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
+//                        if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
+//                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L);
+//                            if (Cools.isEmpty(wrkMastSta)){
+//                                WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
+//                                wrkMastSta1.setType(2);
+//                                wrkMastSta1.setWrkType(1);
+//                                wrkMastStaMapper.insert(wrkMastSta1);
+//                            }
+//                            continue;
+//                        }
 //                        log.error("绔欑偣鍙�"+staProtocol.getSiteId()+"鏈煡璇㈠埌宸ヤ綔妗f锛�");
                         // 鏃犳嫞鏂欐暟鎹�
                         continue;
@@ -580,6 +580,46 @@
 
             }
 
+        }
+    }
+
+    /**
+     * 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱  鎷嗗灈浣嶇疆
+     */
+    public synchronized void storeEmptyPlt4() {
+        for (DevpSlave devp : slaveProperties.getDevp()) {
+            // 閬嶅巻鍙犵洏鍏ュ簱鍙�
+            for (DevpSlave.Sta pickSta : devp.getEmptyInSta2()) {
+
+                // 鑾峰彇鍏ュ簱绔欎俊鎭�
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+                BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
+                if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
+                    continue;
+                }
+
+                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) {
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep4(staProtocol.getSiteId(),"3");
+                    if (wrkMast == null) {
+                        WrkMast wrkMast1 = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"3");
+                        if (Cools.isEmpty(wrkMast1) && staProtocol.isEmptyMk()){
+                            WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 19999L);
+                            if (Cools.isEmpty(wrkMastSta)){
+                                WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
+                                wrkMastSta1.setType(2);
+                                wrkMastSta1.setWrkType(1);
+                                wrkMastStaMapper.insert(wrkMastSta1);
+                            }
+                        }
+                    }
+                }
+            }
         }
     }
 
@@ -3992,7 +4032,10 @@
             int[] staNos=new int[]{131,135};//(2涓叆搴撶珯鐐癸紝1妤�2涓嚭搴撶爜鍨涚珯,鏍规嵁鐜板満淇敼)
             for (int staNo : staNos){
                 BasDevp basDevp = basDevpService.selectById(staNo);
-                if (basDevp.getWrkNo()!=0){
+                if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
+                    continue;
+                }
+                if (basDevp.getWrkNo()!=0 && (basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999)){
                     continue;
                 }
                 WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
@@ -4116,7 +4159,7 @@
             int[] staNos=new int[]{144};//(1妤�1涓创鏍囦綅,鏍规嵁鐜板満淇敼)
             for (int staNo : staNos){
                 BasDevp basDevp = basDevpService.selectById(staNo);
-                if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>19999) && basDevp.getWrkNo()!=32222){
+                if ((basDevp.getWrkNo()<9900 || basDevp.getWrkNo()>9999) && basDevp.getWrkNo()!=32222){
                     continue;
                 }
                 WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne202(staNo);
@@ -4170,6 +4213,84 @@
     }
 
     /**
+     * 鍏朵粬  ===>> 鎷嗗灈瀹屾垚缁х画涓嬩竴姝�  杩愯閫斾腑鑷姩閬胯绌烘澘
+     */
+    public synchronized void stackingCompletionDriveTray4() {
+        try {
+            int[] staNos=new int[]{134};//(134鏈変换鍔★紝135绌洪棽锛屽垯閬胯)
+            for (int staNo : staNos){
+                BasDevp basDevp = basDevpService.selectById(staNo);
+                BasDevp basDevp135 = basDevpService.selectById(135);
+                if (basDevp.getWrkNo()==0 || (basDevp.getWrkNo()<10000 && basDevp.getWrkNo()>9899) ){
+                    continue;
+                }
+                if (basDevp135.getReportSign()!=0){
+                    continue;
+                }
+                WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131);
+                if (Cools.isEmpty(wrkMast131)){
+                    continue;
+                }
+                // 鑾峰彇绔欑偣淇℃伅
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                StaProtocol staProtocol135 = devpThread.getStation().get(135);
+                if (staProtocol135 == null) {
+                    continue;
+                } else {
+                    staProtocol135 = staProtocol135.clone();
+                }
+                if (staProtocol135.getWorkNo()<9900 || staProtocol135.getWorkNo()>9999 || staProtocol135.getWorkNo()==0
+                        || !staProtocol135.isLoading() || !staProtocol135.isAutoing()){
+                    continue;
+                }
+                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+                if (staProtocol == null) {
+                    continue;
+                } else {
+                    staProtocol = staProtocol.clone();
+                }
+
+                if (!staProtocol.isLoading()){
+                    continue;
+                }
+//                if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){
+//                    log.info("绔欑偣宸ヤ綔鍙�={} 涓庤创鏍囧伐浣滃彿={} 涓嶄竴鑷达紝寮傚父锛�",staProtocol.getWorkNo(),wrkMast131.getWrkNo().shortValue());
+//                }
+                // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
+                        && basDevp.getReportSign()==0
+                ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
+                    if (true){
+                        return;
+                    }
+
+                    //浠诲姟瀹屾垚
+                    boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135));
+                    try{
+                        Thread.sleep(100);
+                    }catch (Exception e){ }
+                    basDevp135.setReportSign(2);
+                    basDevpService.updateById(basDevp135);
+                    staProtocol135.setWorkNo(32222);
+                    staProtocol135.setStaNo(144);
+                    devpThread.setPakMk(staProtocol135.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135));
+                    if (!result) {
+                        throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触==>椹卞姩鐮佸灈浣嶆墭鐩樺墠杩涘け璐ワ紒");
+                    }
+                    boolean result2 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(4, staProtocol135));
+
+                }
+            }
+        }catch (Exception e){
+//            e.printStackTrace();
+//            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            log.error("鍏朵粬  ===>> 璐存爣瀹屾垚椹卞姩鎵樼洏杩涘叆涓嬩竴姝�"+e);
+        }
+    }
+
+    /**
      *  瀹屾垚灏忚溅浠诲姟
      */
     public synchronized void rgvCompleteWrkMastSta() {
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 491999c..39e9169 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -107,6 +107,8 @@
                     mainService.storeEmptyPlt2();
                     // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満绌烘澘鍏ュ簱
                     mainService.storeEmptyPlt3();
+                    // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱鎷嗙洏鍖�   1妤兼媶鍨涗綅缃�  绌烘澘鍙犵洏
+                    mainService.storeEmptyPlt4();
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
                     mainService.ledExecute();
                     // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
@@ -136,6 +138,8 @@
                     mainService.stackingCompletionDriveTray();
                     //鎷嗗灈瀹屾垚缁х画涓嬩竴姝�
                     mainService.stackingCompletionDriveTray2();
+                    //鎷嗗灈瀹屾垚缁х画涓嬩竴姝�  杩愯閫斾腑鑷姩閬胯绌烘澘
+                    mainService.stackingCompletionDriveTray4();
                     //鎷嗗灈瀹屾垚鎵樼洏缁х画涓嬩竴姝�
                     mainService.stackingCompletionDriveTrayOk2();
                     //璐存爣瀹屾垚缁х画涓嬩竴姝�
diff --git a/src/main/java/com/zy/core/model/DevpSlave.java b/src/main/java/com/zy/core/model/DevpSlave.java
index 450e05d..0cfa480 100644
--- a/src/main/java/com/zy/core/model/DevpSlave.java
+++ b/src/main/java/com/zy/core/model/DevpSlave.java
@@ -24,6 +24,7 @@
     private List<Sta> inWmsSta = new ArrayList<>();
 
     private List<Sta> emptyInSta = new ArrayList<>();
+    private List<Sta> emptyInSta2 = new ArrayList<>();
 
     private List<Sta> outSta = new ArrayList<>();
 
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 130f8cd..7e5742b 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -348,6 +348,18 @@
     # 绌烘澘鍏ュ簱鍙�1
     emptyInSta[0]:
       staNo: 122
+    # 鎷嗗灈鍙犵洏鍙�1
+    emptyInSta2[0]:
+      staNo: 118
+    # 鎷嗗灈鍙犵洏鍙�2
+    emptyInSta2[1]:
+      staNo: 119
+    # 鎷嗗灈鍙犵洏鍙�3
+    emptyInSta2[2]:
+      staNo: 120
+    # 鎷嗗灈鍙犵洏鍙�4
+    emptyInSta2[3]:
+      staNo: 121
     # 鍑哄簱鍙�1
     outSta[0]:
       staNo: 122
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index fac4623..6e031e3 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -347,6 +347,10 @@
         SELECT top 1 * FROM dbo.asr_wrk_mast Where 1=1 and io_type=202 and wrk_sts =51 and source_sta_no = #{sourceStaNo}
     </select>
 
+    <select id="selectWrkMastUnstackingOne202Two" resultMap="BaseResultMap">
+        SELECT top 1 * FROM dbo.asr_wrk_mast Where 1=1 and io_type=202 and wrk_sts =52 and source_sta_no = #{sourceStaNo}
+    </select>
+
     <select id="selectWrkMastLabelingOne54" resultMap="BaseResultMap">
         SELECT top 1 * FROM dbo.asr_wrk_mast Where 1=1 and io_type=202 and wrk_sts =54
     </select>

--
Gitblit v1.9.1