From 740b16bc580b06fc86fd497887364cff44115cf6 Mon Sep 17 00:00:00 2001
From: 18516761980 <56479841@qq.com>
Date: 星期三, 10 八月 2022 08:50:34 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   38 ++++++++----
 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java         |    9 ++-
 src/main/resources/mapper/WrkMastMapper.xml                 |   58 +++++++++++++------
 src/main/java/com/zy/core/MainProcess.java                  |    9 +++
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   22 +++++--
 5 files changed, 94 insertions(+), 42 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
index 8a4dc4e..ceaad8d 100644
--- a/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -70,9 +70,9 @@
     @Update("update cust_wait_pakin set io_status='F' where zpallet = #{barcode}")
     int updateWaitPakInStep2(String barcode);
 
-    WrkMast selectWorkingPakin();
-
-    WrkMast selectWorkingPakout();
+//    WrkMast selectWorkingPakin();
+//
+//    WrkMast selectWorkingPakout();
 
     /**
      * 鍫嗗灈鏈烘槸鍚﹀瓨鍦ㄥ嚭搴撲换鍔�
@@ -98,4 +98,7 @@
      * @return
      */
     List<WrkMast> selectPakOutStep11(@Param("crnNo")Integer crnNO, @Param("sourceStaNo")Integer sourceStaNo);
+
+    WrkMast selectWorkingPakin(@Param("sourceStaNo")Integer sourceStaNo);
+    WrkMast selectWorkingPakout(@Param("sourceStaNo")Integer sourceStaNo);
 }
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 5056bba..2b59854 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1861,22 +1861,32 @@
             for (DevpSlave devp : slaveProperties.getDevp()) {
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
 
-                WrkMast pakout = wrkMastMapper.selectWorkingPakout();
-                if (pakout != null) {
-                    if (devpThread.ioMode != IoModeType.PAKOUT_MODE) {
-                        // 鍑哄簱鍒囨崲涓�
-                        devpThread.ioMode = IoModeType.PAKOUT_BOOTING;
-
-                        WrkMast pakin = wrkMastMapper.selectWorkingPakin();
-                        if (pakin == null) {
-                            // 鍑哄簱妯″紡
-                            devpThread.ioMode = IoModeType.PAKOUT_MODE;
-                        }
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    if (inSta.getStaNo() == 2) {
+                        continue;
                     }
-                } else {
-                    // 鍏ュ簱妯″紡
-                    devpThread.ioMode = IoModeType.PAKIN_MODE;
+                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
+                    switch (inSta.getStaNo()) {
+                        case 203://1F
+                            if (pakout != null) {
+                                if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+                                    devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING;
+                                    WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo());
+                                    if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading()
+                                            && !devpThread.getStation().get(inSta.getStaNo()+1).isLoading()) {
+                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                    }
                 }
+
             }
 
         } catch (Exception e) {
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index a7a89ca..b122e50 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -24,6 +24,8 @@
     private MainServiceImpl mainService;
     // 鎵�灞炵嚎绋�
     private Thread thread;
+    // 棰戠巼
+    private int i = 0;
 
     /**
      * =====>>  寮�濮嬪伐浣�
@@ -69,6 +71,13 @@
 
                     mainService.outOfDevp();
 
+                    // 鍏朵粬  ===>> 鍏ュ嚭搴撴ā寮忓垏鎹�
+                    i++;
+                    if (i > 1) {
+                        mainService.ioConvert();
+                        i = 0;
+                    }
+
                 } catch (Exception e) {
                     e.printStackTrace();
                 }
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 25d9512..926e4dd 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -51,7 +51,17 @@
      * 鏉$爜鏁伴噺
      */
     private int barcodeSize = 3;
-    public IoModeType ioMode = IoModeType.NONE;
+
+    /**
+     * 鍏ュ嚭搴撴ā寮�
+     * 0锛氭湭鐭�
+     * 1锛氬叆搴撳惎鍔ㄤ腑
+     * 2.鍏ュ簱妯″紡
+     * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
+     * 4.鍑哄簱妯″紡
+     */
+    public IoModeType ioModeOf2F = IoModeType.NONE;
+//    public IoModeType ioMode = IoModeType.NONE;
 
     public SiemensDevpThread(DevpSlave slave) {
         this.slave = slave;
@@ -114,7 +124,7 @@
      */
     private void read() throws InterruptedException {
 //        // 鏇存柊鍏ュ嚭搴撴ā寮�
-//        updateIoMode();
+        updateIoMode();
         int staNoSize = staNos.size();
         OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) (staNoSize*4));
         if (result.IsSuccess) {
@@ -245,10 +255,10 @@
 
     // 鏇存柊鍏ュ嚭搴撴ā寮�
     private void updateIoMode() throws InterruptedException {
-        if (this.ioMode != IoModeType.NONE) {
-            if (!siemensS7Net.Write("DB200", this.ioMode.id).IsSuccess) {
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎1F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
-                log.error("鍐欏叆杈撻�佺嚎1F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+        if (this.ioModeOf2F != IoModeType.NONE) {
+            if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
         }
     }
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 3276b8a..21de077 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -119,26 +119,26 @@
         select top 1 * from dbo.asr_wrk_mast where 1=1 and (wrk_sts=3 or wrk_sts=12) and crn_no=#{crnNo} order by io_time,wrk_no
     </select>
 
-    <!-- 鍏ュ簱浠诲姟 -->
-    <select id="selectWorkingPakin" resultMap="BaseResultMap">
-        select top 1 * from dbo.asr_wrk_mast where wrk_sts in (2,3,4) and io_type != 11 and source_sta_no = 180 order by io_time,wrk_no
-    </select>
+<!--    &lt;!&ndash; 鍏ュ簱浠诲姟 &ndash;&gt;-->
+<!--    <select id="selectWorkingPakin" resultMap="BaseResultMap">-->
+<!--        select top 1 * from dbo.asr_wrk_mast where wrk_sts in (2,3,4) and io_type != 11 and source_sta_no = 180 order by io_time,wrk_no-->
+<!--    </select>-->
 
-    <!-- 鍑哄簱浠诲姟 -->
-    <select id="selectWorkingPakout" resultMap="BaseResultMap">
-        select top 1 *
-        from dbo.asr_wrk_mast
-        where (wrk_sts in (11,12)
-        or (wrk_sts in (14,15) and wrk_no in
-        (
-        select wrk_no
-        from asr_bas_devp
-        where wrk_no > 0)
-        ))
-        and io_type != 11
-        and source_sta_no = 180
-        order by io_time,wrk_no
-    </select>
+<!--    &lt;!&ndash; 鍑哄簱浠诲姟 &ndash;&gt;-->
+<!--    <select id="selectWorkingPakout" resultMap="BaseResultMap">-->
+<!--        select top 1 *-->
+<!--        from dbo.asr_wrk_mast-->
+<!--        where (wrk_sts in (11,12)-->
+<!--        or (wrk_sts in (14,15) and wrk_no in-->
+<!--        (-->
+<!--        select wrk_no-->
+<!--        from asr_bas_devp-->
+<!--        where wrk_no > 0)-->
+<!--        ))-->
+<!--        and io_type != 11-->
+<!--        and source_sta_no = 180-->
+<!--        order by io_time,wrk_no-->
+<!--    </select>-->
 
     <select id="selectCrnWorking" resultMap="BaseResultMap">
         select top 1 * from dbo.asr_wrk_mast where 1=1 and wrk_sts in (3,4,11,12) and crn_no=#{crnNo} order by io_time,wrk_no
@@ -155,4 +155,24 @@
     <select id="selectPakOutStep11" resultMap="BaseResultMap">
         select * from dbo.asr_wrk_mast where crn_no=#{crnNo} and source_sta_no=#{sourceStaNo} and wrk_sts=11 and io_type>100 order by io_pri desc,io_time,wrk_no asc
     </select>
+
+    <!--                                       鍏ュ嚭搴撴ā寮忕浉鍏�                                      -->
+    <select id="selectWorkingPakin" resultMap="BaseResultMap">
+        select top 1 * from dbo.asr_wrk_mast where wrk_sts in (2,3,4) and io_type != 11 and source_sta_no = #{sourceStaNo} order by io_time,wrk_no
+    </select>
+
+    <select id="selectWorkingPakout" resultMap="BaseResultMap">
+        select top 1 *
+        from dbo.asr_wrk_mast
+        where (wrk_sts in (11,12)
+        or (wrk_sts in (14,15) and wrk_no in
+        (
+        select wrk_no
+        from asr_bas_devp
+        where wrk_no > 0)
+        ))
+        and io_type != 11
+        and source_sta_no = #{sourceStaNo}
+        order by io_time,wrk_no
+    </select>
 </mapper>

--
Gitblit v1.9.1