From e5c9788832373a622555fdc799c402fc0b3f5a01 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 17 六月 2024 08:10:48 +0800
Subject: [PATCH] #

---
 src/main/resources/mapper/WrkMastMapper.xml            |    3 +
 src/main/java/com/zy/service/impl/MainServiceImpl.java |  126 ++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/core/MainProcess.java             |    8 ++
 src/main/resources/application.yml                     |   25 ++++++--
 src/main/java/com/zy/mapper/WrkMastMapper.java         |    6 ++
 5 files changed, 160 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 6de32db..dacaa9a 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -70,7 +70,7 @@
                     // 鍫嗗灈鏈哄紓甯镐俊鎭褰�
                     mainService.recCrnErr(7);
                     // 鍏ュ簱  ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
-//                    mainService.storeEmptyPlt(8);
+                    mainService.storeEmptyPlt(8);
                     // 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
                     mainService.ledExecute(9);
                     // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
@@ -78,6 +78,12 @@
 
                     mainService.outOfDevp(11);
 
+                    // 鐢熸垚106鍑哄簱浠诲姟
+                    mainService.generateOutbound();
+
+                    // 鐢熸垚106鍒�105杞Щ浠诲姟
+                    mainService.autoMoveLoc();
+
 //                    if (i>10){
 //                        //绌烘墭鐩樿嚜鍔ㄥ嚭搴�
 //                        mainService.autoEmptyOut();
diff --git a/src/main/java/com/zy/mapper/WrkMastMapper.java b/src/main/java/com/zy/mapper/WrkMastMapper.java
index cddcc58..3454d25 100644
--- a/src/main/java/com/zy/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/mapper/WrkMastMapper.java
@@ -112,4 +112,10 @@
     WrkMast selectPickStep2(@Param("barcode")String barcode);
 
     WrkMast selectByWrkNo(@Param("wrkNo")Integer wrkNo);
+
+    /**
+     * 鑾峰彇涓�鏉″埌104绔欑偣鐨勫嚭搴撲换鍔�
+     * @return 宸ヤ綔涓绘。
+     */
+    WrkMast selectBy104();
 }
diff --git a/src/main/java/com/zy/service/impl/MainServiceImpl.java b/src/main/java/com/zy/service/impl/MainServiceImpl.java
index feb3c7f..3562bc7 100644
--- a/src/main/java/com/zy/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/service/impl/MainServiceImpl.java
@@ -693,6 +693,9 @@
 
                         // 鏇存柊宸ヤ綔妗g姸鎬佷负14澶辫触
                         wrkMast.setWrkSts(14L);
+                        if (wrkMast.getStaNo() == 104 && wrkMast.getWrkSts() == 12L) {
+                            wrkMast.setWrkSts(16L);
+                        }
                         wrkMast.setCrnEndTime(new Date());
                         if (wrkMastMapper.updateById(wrkMast) != 0) {
                             // 澶嶄綅鍫嗗灈鏈�
@@ -1101,6 +1104,9 @@
                     if (wrkMastMapper.selectWorking(slave.getId()) != null) {
                         break;
 //                        return;
+                    }
+                    if(crnStn.getStaNo() == 105) {
+                        continue;
                     }
 
                     News.warnNoLog(""+mark+" - 2"+" - 12"+" - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}",wrkMast.getWrkNo().shortValue()
@@ -2992,4 +2998,124 @@
         }
     }
 
+    /**
+     * 鍒ゆ柇106绔欑偣鐘舵�侊紝鏈夌墿+鏈変换鍔″彿锛屽垯鐢熸垚绉诲簱浠诲姟
+     */
+    public synchronized void generateOutbound() {
+        WrkMast wrkMast = wrkMastMapper.selectBy104();
+        if (wrkMast == null) {
+            return;
+        }
+        BasCrnp basCrnp = basCrnpService.selectById(1);
+        if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
+            return;
+        }
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, 1);
+        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+        if (crnProtocol == null) {
+            return;
+        }
+        // 鍫嗗灈鏈烘帶鍒惰繃婊�
+        if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+            return;
+        }
+
+        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+        if (wrkMastMapper.selectWorking(1) != null) {
+            return;
+        }
+
+        LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
+        // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
+        CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setCrnNo(1); // 鍫嗗灈鏈虹紪鍙�
+        crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+//                    crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+        crnCommand.setSourcePosX(sourceSta.getRow1().shortValue());     // 婧愬簱浣嶆帓
+        crnCommand.setSourcePosY(sourceSta.getBay1().shortValue());     // 婧愬簱浣嶅垪
+        crnCommand.setSourcePosZ(sourceSta.getLev1().shortValue());     // 婧愬簱浣嶅眰
+        crnCommand.setDestinationPosX((short) 3);     // 鐩爣搴撲綅鎺�
+        crnCommand.setDestinationPosY((short) 3);     // 鐩爣搴撲綅鍒�
+        crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+        crnCommand.setTraySize(sourceSta.getLocType1() == 2);     //搴撲綅绫诲瀷
+        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+            News.error("鍒�106绔欑偣鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+        } else {
+            // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+            Date now = new Date();
+            wrkMast.setWrkSts(12L);
+            wrkMast.setCrnStrTime(now);
+            wrkMast.setModiTime(now);
+            if (wrkMastMapper.updateById(wrkMast) == 0) {
+                News.error("鍒�106绔欑偣淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+            }
+        }
+
+    }
+
+    public synchronized void autoMoveLoc() {
+        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_sts", 16L));
+
+        // 鍒ゆ柇婧愮珯鐐规儏鍐� 鏈変换鍔″彿锛屾湁鐗╋紝鑷姩
+        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+        StaProtocol staProtocol106 = devpThread.getStation().get(106);
+        StaProtocol staProtocol105 = devpThread.getStation().get(105);
+        if (staProtocol106 == null) {
+            return;
+        } else {
+            staProtocol106 = staProtocol106.clone();
+        }
+        if (staProtocol105 == null) {
+            return;
+        } else {
+            staProtocol105 = staProtocol105.clone();
+        }
+
+
+        // 鍒ゆ柇鍑哄簱绔欑偣鎯呭喌
+
+
+        // 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
+        CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, 2);
+        CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+        if (crnProtocol == null) {
+            return;
+        }
+        BasCrnp basCrnp = basCrnpService.selectById(2);
+        if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
+            return;
+        }
+
+        // 鍫嗗灈鏈烘帶鍒惰繃婊�
+        if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+            return;
+        }
+
+        // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+        if (wrkMastMapper.selectWorking(2) != null) {
+            return;
+        }
+        // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
+        CrnCommand crnCommand = new CrnCommand();
+        crnCommand.setCrnNo(2); // 鍫嗗灈鏈虹紪鍙�
+        crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
+        crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
+        crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡:  搴撲綅绉昏浆
+        crnCommand.setSourcePosX((short) 6);     // 婧愬簱浣嶆帓
+        crnCommand.setSourcePosY((short) 3);     // 婧愬簱浣嶅垪
+        crnCommand.setSourcePosZ((short) 1);     // 婧愬簱浣嶅眰
+        crnCommand.setDestinationPosX((short) 7);     // 鐩爣搴撲綅鎺�
+        crnCommand.setDestinationPosY((short) 28);     // 鐩爣搴撲綅鍒�
+        crnCommand.setDestinationPosZ((short) 1);     // 鐩爣搴撲綅灞�
+        crnCommand.setTraySize(true);     //搴撲綅绫诲瀷
+        if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
+            News.error("106绉诲簱2鍙峰爢鍨涙満鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+        }
+//        else {
+//            wrkMast.setCrnNo(2);
+//            wrkMastMapper.updateById(wrkMast);
+//        }
+        News.infoNoLog("106绉诲簱2鍙峰爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙戯細搴撲綅绉昏浆瀹屾垚");
+    }
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fd12676..72a73cb 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -81,6 +81,12 @@
       row: 3
       bay: 31
       lev: 6
+    crnOutStn[2]:
+      devpPlcId: ${wcs-slave.devp[0].id}
+      staNo: 106
+      row: 3
+      bay: 3
+      lev: 1
   # 鍫嗗灈鏈�2
   crn[1]:
     id: 2
@@ -121,7 +127,7 @@
       devpPlcId: ${wcs-slave.devp[0].id}
       staNo: 105
       row: 7
-      bay: 28
+      bay: 27
       lev: 1
 
   # 杈撻�佺嚎1
@@ -143,12 +149,17 @@
       barcode: ${wcs-slave.barcode[1].id}
       backSta: 102
       led: ${wcs-slave.led[1].id}
-#    # 绌烘澘鍏ュ簱鍙�
-#    emptyInSta[0]:
-#      staNo: 101
-#      barcode: ${wcs-slave.barcode[0].id}
-#      backSta: 100
-#      led: ${wcs-slave.led[0].id}
+    # 绌烘澘鍏ュ簱鍙�1
+    emptyInSta[0]:
+      staNo: 101
+      barcode: ${wcs-slave.barcode[0].id}
+      backSta: 100
+      led: ${wcs-slave.led[0].id}
+    emptyInSta[1]:
+      staNo: 103
+      barcode: ${wcs-slave.barcode[1].id}
+      backSta: 102
+      led: ${wcs-slave.led[1].id}
     # 鍑哄簱鍙�1
     outSta[0]:
       staNo: 100
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 6ce2d79..70e92ba 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -192,4 +192,7 @@
         select * from asr_wrk_mast
         where wrk_no = #{wrkNo}
     </select>
+    <select id="selectBy104" resultType="com.zy.entity.WrkMast">
+        select top 1 * from asr_wrk_mast awm where awm.sta_no = 104 and awm.wrk_sts = 11 order by awm.appe_time
+    </select>
 </mapper>

--
Gitblit v1.9.1