From d49054b5399e4ad8bb21f2e287ec71436ddbcca6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期五, 26 三月 2021 08:45:23 +0800
Subject: [PATCH] Merge branch 'htwcs' of https://gitee.com/luxiaotao1123/zy-wcs into htwcs

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  120 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 83 insertions(+), 37 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 ab93fd7..439f416 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -58,9 +58,6 @@
 public class MainServiceImpl {
 
     @Autowired
-    private RowLastnoService rowLastnoService;
-
-    @Autowired
     private CommonService commonService;
     @Autowired
     private SlaveProperties slaveProperties;
@@ -118,7 +115,7 @@
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
+                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                         && staProtocol.isPakMk() && !Cools.isEmpty(barcode)) {
 
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
@@ -224,7 +221,7 @@
                 }
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
-                        && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0
+                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
                         && staProtocol.isPakMk()) {
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
@@ -283,23 +280,24 @@
                         || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo()) ) {
                         continue;
                     }
-                    int stnNo = 0;
+
                     // 鎷c�佺洏銆佸苟 浣滀笟绔欒浆鎹�
-                    if (wrkMast.getStaNo() == 109) {
-                        stnNo = 127;
-                    } else if (wrkMast.getStaNo() == 113) {
-                        stnNo = 128;
-                    } else {
-                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
-                    }
+//                    int stnNo = 0;
+//                    if (wrkMast.getStaNo() == 109) {
+//                        stnNo = 127;
+//                    } else if (wrkMast.getStaNo() == 113) {
+//                        stnNo = 128;
+//                    } else {
+//                        log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo());
+//                    }
                     // 鑾峰彇鐩爣绔�
                     Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                             .eq("type_no", wrkMast.getIoType() - 50)
-                            .eq("stn_no", stnNo) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                            .eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
                             .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
                     StaDesc staDesc = staDescService.selectOne(wrapper);
                     if (Cools.isEmpty(staDesc)) {
-                        log.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), stnNo, wrkMast.getCrnNo());
+                        log.error("鍏ュ簱璺緞涓嶅瓨鍦紒type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo());
                         continue;
                     }
 
@@ -511,6 +509,11 @@
                 continue;
             }
 
+            // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+            if (wrkMastMapper.selectWorking(slave.getId()) != null) {
+                return;
+            }
+
             // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
             CrnCommand crnCommand = new CrnCommand();
             crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
@@ -527,13 +530,13 @@
                 log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
             } else {
                 // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
-                Date now = new Date();
-                wrkMast.setWrkSts(3L);
-                wrkMast.setCrnStrTime(now);
-                wrkMast.setModiTime(now);
-                if (wrkMastMapper.updateById(wrkMast) == 0) {
-                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                }
+//                Date now = new Date();
+//                wrkMast.setWrkSts(3L);
+//                wrkMast.setCrnStrTime(now);
+//                wrkMast.setModiTime(now);
+//                if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                    log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//                }
             }
         }
     }
@@ -633,13 +636,13 @@
                     log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 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) {
-                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-                    }
+//                    Date now = new Date();
+//                    wrkMast.setWrkSts(12L);
+//                    wrkMast.setCrnStrTime(now);
+//                    wrkMast.setModiTime(now);
+//                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//                    }
                 }
             }
         }
@@ -702,13 +705,13 @@
             log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", 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) {
-                log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
-            }
+//            Date now = new Date();
+//            wrkMast.setWrkSts(12L);
+//            wrkMast.setCrnStrTime(now);
+//            wrkMast.setModiTime(now);
+//            if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                log.error("銆愬簱浣嶇Щ杞�� 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+//            }
         }
 
     }
@@ -1071,7 +1074,7 @@
             // 鑾峰彇led绾跨▼
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getDevpPlcId());
             // led鏄剧ず榛樿鍐呭
-            if (!ledThread.isResetStatus() && reset) {
+            if (reset) {
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
                     log.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 }
@@ -1331,5 +1334,48 @@
         }
     }
 
+    /**
+     * 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
+     */
+    public synchronized void crnIoWrkMast(){
+        for (CrnSlave crn : slaveProperties.getCrn()) {
+            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+            if (crnProtocol == null) {
+                continue;
+            }
+            // 鍫嗗灈鏈烘鍦ㄨ繍琛�
+            if (crnProtocol.getStatusType() != CrnStatusType.IDLE && crnProtocol.getTaskNo() != 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
+                // 鑾峰彇宸ヤ綔妗�
+                WrkMast wrkMast = wrkMastMapper.selectById(crnProtocol.getTaskNo());
+                if (wrkMast == null) { continue; }
+                // 鍏ュ簱
+                if (wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 2) {
+                    // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+                    Date now = new Date();
+                    wrkMast.setWrkSts(3L);
+                    wrkMast.setCrnStrTime(now);
+                    wrkMast.setModiTime(now);
+                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+                        log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                    }
+                }
+                // 鍑哄簱銆佺Щ搴�
+                if (wrkMast.getWrkSts() == 11) {
+                    // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
+                    Date now = new Date();
+                    wrkMast.setWrkSts(12L);
+                    wrkMast.setCrnStrTime(now);
+                    wrkMast.setModiTime(now);
+                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+                        log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+                    }
+                }
+            }
+
+        }
+    }
+
 
 }

--
Gitblit v1.9.1