From 54e371c10fdb3640b5ac5e4d5ea9ace537f27174 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期一, 28 三月 2022 15:18:39 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |   95 +++++++++++++++++++++++++++++++----------------
 1 files changed, 62 insertions(+), 33 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..d2e614e 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -87,8 +87,11 @@
     private BasErrLogService basErrLogService;
     @Autowired
     private BasCrnErrorMapper basCrnErrorMapper;
+
     @Value("${wms.url}")
     private String wmsUrl;
+    @Value("${crnBackHp.enable}")
+    private boolean crnBackHp;
 
     /**
      * 缁勬墭
@@ -549,48 +552,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 +611,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,13 +1459,16 @@
             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; }
             }
@@ -1705,4 +1719,19 @@
     }
 
 
+
+    public void outOfDevp() {
+        List<WrkMast> wrkMasts = wrkMastMapper.selectPick();
+        for (WrkMast wrkMast : wrkMasts) {
+            if (basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())) == 0) {
+                wrkMast.setCtnNo("Y");
+                if (wrkMastMapper.updateById(wrkMast) == 0) {
+                    log.error("淇敼{}宸ヤ綔妗eけ璐ワ紝ctn_no", wrkMast.getWrkNo());
+                }
+            }
+
+        }
+    }
+
+
 }

--
Gitblit v1.9.1