From d9d1d00d83dc37fe630fcb21130832d6353a0f60 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <xltys1995>
Date: 星期三, 23 三月 2022 15:39:22 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   79 +++++++++++++++-----------
 src/main/java/com/zy/core/thread/MelsecCrnThread.java       |    1 
 src/main/java/com/zy/core/MainProcess.java                  |   12 ++-
 src/main/java/com/zy/core/model/protocol/CrnProtocol.java   |    2 
 src/main/java/com/zy/core/thread/SiemensDevpThread.java     |   36 ++++++------
 src/main/resources/application.yml                          |    2 
 6 files changed, 76 insertions(+), 56 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 b9ee6f4..07a235f 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -89,6 +89,8 @@
     private BasCrnErrorMapper basCrnErrorMapper;
     @Value("${wms.url}")
     private String wmsUrl;
+    @Value("${crnBackHp.enable}")
+    private boolean crnBackHp;
 
     /**
      * 缁勬墭
@@ -549,48 +551,56 @@
             }
             // 搴撲綅绉昏浆
             this.locToLoc(crn, crnProtocol);
+
+            if (crnBackHp) {
+
+                //鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+                this.crnRebackHp(crnProtocol);
+
+            }
         }
     }
 
     /**
      * 鍥炲師鐐癸紝鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
      */
-    public void crnRebackHp(){
-        for (CrnSlave crn : slaveProperties.getCrn()) {
-            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
-            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
-            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
-            if (crnProtocol == null) {
-                continue;
-            }
-            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
-            if (basCrnp == null) {
-                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
-                continue;
-            }
+    public synchronized void crnRebackHp(CrnProtocol crnProtocol){
+//        for (CrnSlave crn : slaveProperties.getCrn()) {
+//            // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+//            CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
+//            CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+//            if (crnProtocol == null) {
+//                continue;
+//            }
+//            BasCrnp basCrnp = basCrnpService.selectById(crn.getId());
+//            if (basCrnp == null) {
+//                log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId());
+//                continue;
+//            }
             if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) {
                 if(crnProtocol.getBay() ==1 && crnProtocol.getLevel()==1){
-                    continue;
+                    return;
                 }
 
-                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
-                if (wrkMastMapper.selectWorking(crn.getId()) != null) {
-                    continue;
+                // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�3,12
+                if (wrkMastMapper.selectWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
                 }
 
-                //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护
-                if (wrkMastMapper.selectCrnWorking(crn.getId()) != null) {
-                    continue;
+                //鍫嗗灈鏈烘湁鎵ц涓换鍔★紝杩囨护3,4,11,12
+                if (wrkMastMapper.selectCrnWorking(crnProtocol.getCrnNo()) != null) {
+                    return;
                 }
 
-                //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�
-                if (wrkMastMapper.selectDevWorking(crn.getId()) == null) {
-                    continue;
-                }
 
+                //杈撻�佺嚎娌℃湁鍏ュ簱浠诲姟锛岃繃婊�2
+                if (wrkMastMapper.selectDevWorking(crnProtocol.getCrnNo()) == null) {
+                    return;
+                }
+//                log.info("鍫嗗灈鏈哄彫鍥炲師鐐�==>>" + crn.getId() + "鍙峰爢鍨涙満鏈夊叆搴撲换鍔�,鍙洖鍘熺偣");
                 // 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
                 CrnCommand crnCommand = new CrnCommand();
-                crnCommand.setCrnNo(crn.getId()); // 鍫嗗灈鏈虹紪鍙�
+                crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
                 crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
                 crnCommand.setAckFinish((short) 0);  // 浠诲姟瀹屾垚纭浣�
                 crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡:  鍥炲師鐐�
@@ -600,11 +610,11 @@
                 crnCommand.setDestinationPosX((short) 0);     // 鐩爣搴撲綅鎺�
                 crnCommand.setDestinationPosY((short) 0);     // 鐩爣搴撲綅鍒�
                 crnCommand.setDestinationPosZ((short) 0);     // 鐩爣搴撲綅灞�
-                if (!MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, crnCommand))) {
-                    log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crn.getId(), JSON.toJSON(crnCommand));
+                if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) {
+                    log.error("鍫嗗灈鏈哄洖鍘熺偣鍛戒护涓嬪彂澶辫触锛屽爢鍨涙満鍙�={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand));
                 }
             }
-        }
+//        }
     }
 
     /**
@@ -1448,14 +1458,17 @@
             if (Utils.isDeepLoc(slaveProperties, row)) {
                 loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
 
-                if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())){
-                    String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
-                    LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
-                    if(!shallowLoc1.getLocSts().equals("O")){
-                        loc = null;
+                if (loc !=null) {
+                    if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())){
+                        String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
+                        LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
+                        if(!shallowLoc1.getLocSts().equals("O")){
+                            loc = null;
+                        }
                     }
                 }
 
+
                 if (null != loc) { break; }
             }
         }
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index fb1f99a..d12d9a3 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -25,6 +25,7 @@
     private Thread thread;
     @Value("${crnBackHp.enable}")
     private boolean crnBackHp;
+    private boolean look = true;
 
     /**
      * =====>>  寮�濮嬪伐浣�
@@ -68,10 +69,13 @@
                     // 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
                     mainService.ledReset();
 
-                    if (crnBackHp) {
-                        //鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
-                        mainService.crnRebackHp();
-                    }
+//                    if (crnBackHp) {
+//                        if (look) {
+//                            //鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃澶囧瓨鍦ㄥ叆搴撲换鍔℃椂鍙洖鍘熺偣
+//                            mainService.crnRebackHp();
+//                        }
+//                    }
+//                    look  = !look;
 
                 } catch (Exception e) {
                     e.printStackTrace();
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 147eef5..b56dcb0 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -13,6 +13,8 @@
 @Data
 public class CrnProtocol {
 
+    private Integer crnNo;
+
     /**
      * 1 = 鎵嬪姩妯″紡
      * 2 = 鑷姩妯″紡
diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 5d4b037..3df19a6 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -161,6 +161,7 @@
             if (result.IsSuccess) {
                 if (null == crnProtocol) {
                     crnProtocol = new CrnProtocol();
+                    crnProtocol.setCrnNo(slave.getId());
                 }
                 crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
                 crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 9c10f69..9645650 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -231,24 +231,24 @@
                 log.error("鏇存柊鏁版嵁搴撴暟鎹け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot());
             }
 
-            //鍑哄簱鍒�182绔欏爢鍨涙満浠诲姟鏁版嵁鍙戦�佺粰PLC
-            try{
-                WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
-                if(null != wrkMastService){
-                    int count = wrkMastService.getOutToStn182(182);
-                    if(count != PRE_COUNT){
-                        OperateResult write = siemensS7Net.Write("DB300.2",(short)count);
-                        if (write.IsSuccess) {
-                            PRE_COUNT = count;
-                        } else {
-                            log.error("鏇存柊鍫嗗灈鏈哄嚭搴撳埌182绔欎换鍔℃暟閲忛敊璇�,浠诲姟鏁伴噺==>>" + count);
-                        }
-                    }
-                }
-            }catch (Exception e) {
-                e.printStackTrace();
-                log.error("鏇存柊鍫嗗灈鏈哄嚭搴撳埌182绔欎换鍔℃暟閲忓け璐�");
-            }
+//            //鍑哄簱鍒�182绔欏爢鍨涙満浠诲姟鏁版嵁鍙戦�佺粰PLC
+//            try{
+//                WrkMastService wrkMastService = SpringUtils.getBean(WrkMastService.class);
+//                if(null != wrkMastService){
+//                    int count = wrkMastService.getOutToStn182(182);
+//                    if(count != PRE_COUNT){
+//                        OperateResult write = siemensS7Net.Write("DB300.2",(short)count);
+//                        if (write.IsSuccess) {
+//                            PRE_COUNT = count;
+//                        } else {
+//                            log.error("鏇存柊鍫嗗灈鏈哄嚭搴撳埌182绔欎换鍔℃暟閲忛敊璇�,浠诲姟鏁伴噺==>>" + count);
+//                        }
+//                    }
+//                }
+//            }catch (Exception e) {
+//                e.printStackTrace();
+//                log.error("鏇存柊鍫嗗灈鏈哄嚭搴撳埌182绔欎换鍔℃暟閲忓け璐�");
+//            }
 
         } else {
             OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戣鍙栬緭閫佺嚎plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()));
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 281d5b3..4010ccf 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -43,7 +43,7 @@
 
 #鍫嗗灈鏈烘病鏈夋墽琛屼腑浠诲姟锛岃緭閫佹湁鍏ュ簱浠诲姟锛屽彨鍥炲師鐐�
 crnBackHp:
-  enable: true
+  enable: false
 
 # 涓嬩綅鏈洪厤缃�
 wcs-slave:

--
Gitblit v1.9.1