From b48b565791673171bd5077092911cc3cc6db7a38 Mon Sep 17 00:00:00 2001
From: tqs <56479841@qq.com>
Date: 星期日, 29 一月 2023 17:18:56 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  107 ++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 81 insertions(+), 26 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 ff7a0fa..53fae38 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -94,7 +94,7 @@
      * 缁勬墭
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
      */
-    public void generateStoreWrkFile() {
+    public synchronized void generateStoreWrkFile() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍏ュ簱鍙�
@@ -125,8 +125,10 @@
 
                 // 鍏ュ嚭搴撴ā寮忓垽鏂�
 //                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { continue; }
-                if ( inSta.getStaNo()==402 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) { continue; }
+                if ( inSta.getStaNo()==101 && devpThread.ioModeOf1F == IoModeType.PAKOUT_MODE) { continue; }
+                if ( inSta.getStaNo()==103 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) { continue; }
+                if ( inSta.getStaNo()==105 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) { continue; }
+                if ( inSta.getStaNo()==107 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) { continue; }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing() && staProtocol.isLoading()
@@ -176,7 +178,9 @@
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
-                        if (jsonObject.getInteger("code").equals(200)) {
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        Integer code = jsonObject.getInteger("code");
+                        if (code == 200) {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
                             barcodeThread.setBarcode("");
@@ -188,6 +192,19 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
                         } else {
+                            staProtocol.setWorkNo((short) 9999);
+                            staProtocol.setStaNo((short)(inSta.getStaNo()-1));
+                            devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+
+                            if(!Cools.isEmpty(ledThread)){
+                                String errorMsg =  jsonObject.getString("msg");
+                                if(!Cools.isEmpty(errorMsg)){
+                                    LedCommand ledCommand = new LedCommand();
+                                    ledCommand.setTitle(errorMsg);
+                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(9, ledCommand));
+                                }
+                            }
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
 
@@ -266,7 +283,7 @@
      * wms鍏ュ簱
      * 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 1 ==>> 2
      */
-    public void generateStoreWrkFile0() {
+    public synchronized void generateStoreWrkFile0() {
         // 鏍规嵁杈撻�佺嚎plc閬嶅巻
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍏ュ簱鍙�
@@ -330,14 +347,14 @@
                    continue;
                }
                String barcode = barcodeThread.getBarcode();
-               if(!Cools.isEmpty(barcode)) {
-                   log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                   if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-                       continue;
-                   }
-               } else {
-                   continue;
-               }
+//               if(!Cools.isEmpty(barcode)) {
+//                   log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
+//                   if("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+//                       continue;
+//                   }
+//               } else {
+//                   continue;
+//               }
 
                 // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
                 SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
@@ -614,7 +631,7 @@
     /**
      * 鍏ュ簱  ===>>  鍫嗗灈鏈虹珯鍒板簱浣�
      */
-    public void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){
+    public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol){
         for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
             boolean flag = false;
             // 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
@@ -747,7 +764,7 @@
      * 鍑哄簱  ===>>  搴撲綅鍒板爢鍨涙満绔�
      * 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
      */
-    public void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
+    public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol){
         for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
             // 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
 //            WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
@@ -779,8 +796,10 @@
 
             // 鍏ュ嚭搴撴ā寮忓垽鏂�
             //if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-                if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {continue;}
-                if (wrkMast.getStaNo() == 402 && devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {continue;}
+                if (wrkMast.getStaNo() == 101 && devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) {continue;}
+                if (wrkMast.getStaNo() == 103 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {continue;}
+                if (wrkMast.getStaNo() == 105 && devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {continue;}
+                if (wrkMast.getStaNo() == 107 && devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {continue;}
 
                 // 鏌ヨ绔欑偣璇︾粏淇℃伅
                 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
@@ -837,7 +856,7 @@
                             log.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(),shallowLocNo);
                             continue;
                         } else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")){
-                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
+                            WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
                             if (null != waitWrkMast && waitWrkMast.getWrkSts()==4) {
                                 continue;
                             }
@@ -1000,7 +1019,7 @@
     /**
      * 搴撲綅绉昏浆
      */
-    public void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
+    public synchronized void locToLoc(CrnSlave slave, CrnProtocol crnProtocol){
         // 鑾峰彇宸ヤ綔妗d俊鎭�
         WrkMast wrkMast = wrkMastMapper.selectLocMove(slave.getId());
         if (null == wrkMast) {
@@ -1612,7 +1631,7 @@
      * 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
      * tip锛氬悓姝�
      */
-    private void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc){
+    private synchronized void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc){
         try {
             List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
             LocMast loc = null;
@@ -1878,7 +1897,7 @@
     /**
      * 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁�
      */
-    public void ioConvert() {
+    public synchronized void ioConvert() {
         try {
             // 鏍规嵁杈撻�佺嚎plc閬嶅巻
             for (DevpSlave devp : slaveProperties.getDevp()) {
@@ -1890,15 +1909,33 @@
                     }
                     WrkMast pakout = wrkMastMapper.selectWorkingPakout(inSta.getStaNo());
                     switch (inSta.getStaNo()) {
-                        case 203://1F
+                        case 101://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 103://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.getStation().get(inSta.getStaNo()+1).getWorkNo()==0) {
+                                            && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading()
+                                            && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) {
                                         // 鍑哄簱妯″紡
                                         devpThread.ioModeOf2F = IoModeType.PAKOUT_MODE;
                                     }
@@ -1908,7 +1945,25 @@
                                 devpThread.ioModeOf2F = IoModeType.PAKIN_MODE;
                             }
                             break;
-                        case 402://1F
+                        case 105://1F
+                            if (pakout != null) {
+                                if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) {
+                                    // 鍑哄簱鍒囨崲涓�
+                                    devpThread.ioModeOf3F = 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.ioModeOf3F = IoModeType.PAKOUT_MODE;
+                                    }
+                                }
+                            } else {
+                                // 鍏ュ簱妯″紡
+                                devpThread.ioModeOf3F = IoModeType.PAKIN_MODE;
+                            }
+                            break;
+                        case 107://1F
                             if (pakout != null) {
                                 if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) {
                                     // 鍑哄簱鍒囨崲涓�
@@ -1938,7 +1993,7 @@
 
     }
 
-    public void outOfDevp() {
+    public synchronized void outOfDevp() {
         List<WrkMast> wrkMasts = wrkMastMapper.selectPick();
         for (WrkMast wrkMast : wrkMasts) {
             if (basDevpService.selectCount(new EntityWrapper<BasDevp>().eq("wrk_no", wrkMast.getWrkNo())) == 0) {

--
Gitblit v1.9.1