From e246d51d8a38b0a9d4ac6204e4b953d973929f71 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期三, 01 二月 2023 12:54:23 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  142 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 135 insertions(+), 7 deletions(-)

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 a8d56f2..2f671c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -105,7 +105,7 @@
             // 閬嶅巻鍏ュ簱鍙�
             for (DevpSlave.Sta inSta : devp.getInSta()) {
                 // 鑾峰彇鍏ュ簱绔欎俊鎭�
-                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                 StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
                 if (staProtocol == null) {
                     continue;
@@ -113,6 +113,25 @@
                     staProtocol = staProtocol.clone();
                 }
                 Short workNo = staProtocol.getWorkNo();
+
+                //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+                if ( inSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                    staProtocol.setWorkNo((short) 9999);
+                    staProtocol.setStaNo((short)100);
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    continue;
+                }
+                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                    staProtocol.setWorkNo((short) 9999);
+                    staProtocol.setStaNo((short)200);
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    continue;
+                }
+
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && staProtocol.isInEnable()
@@ -311,6 +330,20 @@
                             if (basDevps1.size()!=0){
                                 continue;
                             }
+                            List<WrkMast> wrkMasts1 = wrkMastMapper.selectWrkStsAndIoType(103);
+                            if (wrkMasts1.size()!=0){
+                                boolean flag = false;
+                                for (WrkMast wrkMast1:wrkMasts1){
+                                    if (!wrkMast1.getWrkNo().equals(wrkMast.getWrkNo())){
+                                        flag = true;
+                                        break;
+                                    }
+                                }
+                                if (flag)  {
+                                    News.error("MainServiceImpl  324琛�"+"104绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+                                    continue;
+                                }
+                            }
                             break;
                         case 204:
                         case 208:
@@ -318,6 +351,20 @@
                             List<BasDevp> basDevps2 = basDevpMapper.getLoading(203);
                             if (basDevps2.size()!=0){
                                 continue;
+                            }
+                            List<WrkMast> wrkMasts2 = wrkMastMapper.selectWrkStsAndIoType(203);
+                            if (wrkMasts2.size()!=0){
+                                boolean flag = false;
+                                for (WrkMast wrkMast1:wrkMasts2){
+                                    if (!wrkMast1.getWrkNo().equals(wrkMast.getWrkNo())){
+                                        flag = true;
+                                        break;
+                                    }
+                                }
+                                if (flag)  {
+                                    News.error("MainServiceImpl  346琛�"+"204绔欑偣瀛樺湪璐х墿锛屾崱鏂欑洏鐐硅揣鐗╂殏鏃朵笉閲嶆柊鍏ュ簱锛侊紒锛�");
+                                    continue;
+                                }
                             }
                             break;
                         default:
@@ -998,11 +1045,14 @@
                 continue;
             }
 
-            if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
-                Integer sour = wrkMast.getStaNo();
-                List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType(sour);
-                if (wrkMasts.size() > 0){
-                    continue;
+            if (wrkMast.getCrnNo().equals(2)){
+                if (wrkMast.getWrkSts() == 11 && (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107)){
+                    Integer sour = wrkMast.getSourceStaNo();
+                    List<WrkMast> wrkMasts = wrkMastMapper.selectWrkStsAndIoType0(sour);
+                    if (wrkMasts.size() > 0){
+                        News.error("MainServiceImpl  1028琛�"+"瀛樺湪鎹℃枡銆佺洏鐐规湭鍏ュ簱璐х墿锛�2鍙峰爢鍨涙満鏆傛椂绂佹鍑哄簱锛侊紒锛�");
+                        continue;
+                    }
                 }
             }
 
@@ -3172,13 +3222,32 @@
             // 閬嶅巻绌烘澘鍏ュ簱鍙�
             for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
                 // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
-                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                 StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
                 if (staProtocol == null) {
                     continue;
                 } else {
                     staProtocol = staProtocol.clone();
                 }
+
+                //20230201. 2鍙峰爢鍨涙満鏈夊嚭搴撲换鍔℃椂锛岀姝㈡柊鏉垮叆搴�
+                if ( emptyInSta.getStaNo()==103 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) {
+                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                    staProtocol.setWorkNo((short) 9999);
+                    staProtocol.setStaNo((short)100);
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    continue;
+                }
+                if ( emptyInSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
+                    //鏈夊嚭搴撲换鍔★紝閫�搴撳埌鍏ュ簱鍙�
+                    staProtocol.setWorkNo((short) 9999);
+                    staProtocol.setStaNo((short)200);
+                    devpThread.setPakMk(staProtocol.getSiteId(), false);
+                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                    continue;
+                }
+
                 // 绔欑偣鏉′欢鍒ゆ柇
                 if (staProtocol.isAutoing()
                         && staProtocol.isLoading()
@@ -3832,4 +3901,63 @@
         }
     }
 
+    /**
+     * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
+     */
+    public synchronized void ioConvert() {
+        try {
+            // 鏍规嵁杈撻�佺嚎plc閬嶅巻
+            for (DevpSlave devp : slaveProperties.getDevp()) {
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+
+                for (DevpSlave.Sta inSta : devp.getInSta()) {
+                    Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204;
+                    WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo);
+                    switch (inSta.getStaNo()) {
+                        case 103://1F
+                            if (pakout != null) {
+                                if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+//                                    devpThread.ioModeOf1F = 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.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) {
+//                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf1F = IoModeType.PAKOUT_MODE;
+//                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf1F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                        case 203://2F
+                            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.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
+//                                        // 鍑哄簱妯″紡
+                                        devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
+//                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                    }
+                }
+
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
 }

--
Gitblit v1.9.1