From ea242c8b2c7456b86e2b1196744d89ba6a660bc1 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 17 五月 2023 16:29:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  310 +++++++++++++++++++++++++++------------------------
 1 files changed, 165 insertions(+), 145 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 9c919d3..e4b5bf4 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -104,7 +104,6 @@
         for (DevpSlave devp : slaveProperties.getDevp()) {
             // 閬嶅巻鍏ュ簱鍙�
             for (DevpSlave.Sta inSta : devp.getInSta()) {
-                inSta.setStaNo(102);
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
                 if (barcodeThread == null) {
@@ -2008,171 +2007,184 @@
                         int olsStatus = 0;//testMast琛ㄥ師鏉tatus鏁版嵁鐘舵��
                         int newStatus = 0;//testMast琛ㄥ緟淇敼鐨剆tatus鏁版嵁鐘舵��
                         short newSingle = 0;  //PLC鍦板潃寰呬慨鏀圭殑鏂板��
-                        switch (devpThread.startSignal[i]){//鏍规嵁淇″彿鏌ユ壘testMast琛ㄤ腑瀵瑰簲鐘舵�佹潯浠�,olsStatus锛宯ewStatus鏍规嵁瀹為檯娴佺▼璋冩暣
-                            case 1://鍚姩澶嶆牳淇″彿
-                                olsStatus = 2;
-                                newStatus = 3;
-                                newSingle = 2;//娴嬭瘯澶嶆牳锛屽瘎瀛樺櫒鍦板潃锛�1===>>2
+                        switch (devpThread.startSignal[i][0]){//鏍规嵁淇″彿鏌ユ壘testMast琛ㄤ腑瀵瑰簲鐘舵�佹潯浠�,olsStatus锛宯ewStatus鏍规嵁瀹為檯娴佺▼璋冩暣
+                            case 0://鍒濆鐘舵�侊紝鍏ュ簱
+                                olsStatus = 1;//寰呮祴
+                                newStatus = 1;//寰呮祴
+                                newSingle = 1;//搴撳瓨鏈夎祫鏂欙紝瀵勫瓨鍣ㄥ湴鍧�锛�0===>>1
                                 break;
-                            case 2://瀹屾垚娴嬭瘯淇″彿
-                                olsStatus = 3;
-                                newStatus = 3;
-                                newSingle = 3;//娴嬭瘯瀹屾垚锛屽瘎瀛樺櫒鍦板潃娓呴浂锛�2===>>3
-                            case 4://瀹屾垚娴嬭瘯淇″彿
-                                olsStatus = 3;
-                                newStatus = 4;
-                                newSingle = 0;//娴嬭瘯瀹屾垚锛屽瘎瀛樺櫒鍦板潃娓呴浂锛�4===>>0
+                            case 2://鍚姩澶嶆牳淇″彿
+                                olsStatus = 1;//寰呮祴
+                                newStatus = 2;//澶嶆牳涓�
+                                newSingle = 3;//娴嬭瘯澶嶆牳锛屽瘎瀛樺櫒鍦板潃锛�2===>>3
                                 break;
-                            case 5://鏆傚仠淇″彿
+                            case 3://娴嬭瘯瀹屾垚
+                                olsStatus = 4;//娴嬭瘯瀹屾垚
+                                newStatus = 4;//娴嬭瘯瀹屾垚
+                                newSingle = 4;//娴嬭瘯瀹屾垚锛屽瘎瀛樺櫒鍦板潃锛�3===>>4
+                                break;
+                            case 5://NG娴嬭瘯淇″彿
+                            case 6://瀹屾垚娴嬭瘯淇″彿
+                            case 22://瀹屾垚娴嬭瘯淇″彿
+                                olsStatus = 4;//娴嬭瘯瀹屾垚
+                                newStatus = 5;//宸茬Щ搴�
+                                newSingle = 0;//鍚姩绉诲簱锛屽瘎瀛樺櫒鍦板潃娓呴浂锛�5/6===>>0
+                                break;
+                            case 7://鏆傚仠淇″彿
                                 olsStatus = 99;//plc缁欏嚭鏆傚仠淇″彿
                                 newStatus = 0;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast
-                                newSingle = 6;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�5===>>6
+                                newSingle = 8;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�7===>>8
                                 break;
-                            case 7://绱ф�ュ嚭搴撶‘璁ゅ厖鐢电嚎宸茬粡鎷斿嚭
+                            case 9://绱ф�ュ嚭搴撶‘璁ゅ厖鐢电嚎宸茬粡鎷斿嚭
                                 olsStatus = 99;//plc缁欏嚭鏆傚仠淇″彿
                                 newStatus = 0;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast
-                                newSingle = 6;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�7===>>6
+                                newSingle = 8;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�9===>>8
                                 break;
-                            case 8://瑙i櫎鏆傚仠
-                                olsStatus = 99;
-                                newStatus = 0;
-                                newSingle = 0;//娴嬭瘯澶嶆牳锛屽瘎瀛樺櫒鍦板潃锛�8===>>0
+                            case 10://瑙i櫎鏆傚仠淇″彿
+                                olsStatus = 0;//plc缁欏嚭鏆傚仠淇″彿
+                                newStatus = 1;//WCS鏀跺埌鏆傚仠淇″彿鍚庯紝鏇存柊testMast
+                                newSingle = 0;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�10===>>0/11
                                 break;
-                            case 11://鍏ュ簱鍓嶅垽鏂厖鐢电嚎鏄惁鏀惧ソ
-                                olsStatus = 99;
-                                newStatus = 0;
-                                newSingle = 11;//
+                            case 12://绱ф�ュ嚭搴撶‘璁ゅ厖鐢电嚎宸茬粡鎷斿嚭
+                                newSingle = 11;//鏆傚仠娴嬭瘯锛屽瘎瀛樺櫒鍦板潃锛�12===>>11
                                 break;
-                            case 12://鍏呯數绾挎斁濂�
-                                olsStatus = 99;
-                                newStatus = 0;
-                                newSingle = 0;//娴嬭瘯澶嶆牳锛屽瘎瀛樺櫒鍦板潃锛�12===>>0
+                            case 13://鍏ュ簱鍓嶅垽鏂厖鐢电嚎鏄惁鏀惧ソ
+                                newSingle = 14;//绂佺敤搴撲綅锛屽瘎瀛樺櫒鍦板潃锛�13===>>14
+                                break;
+                            case 15://鍏呯數绾挎斁濂�
+                                newSingle = 0;//澶嶄綅锛屽瘎瀛樺櫒鍦板潃锛�12===>>0
+                                break;
+                            default:
+                                log.error("璇诲彇娴嬭瘯搴撲綅淇″彿鍑洪敊");
                                 break;
                         }
 
                         TestMast testMast = testMastService.selectOne(new EntityWrapper<TestMast>()
                                 .eq("channel",(i+1)).eq("status",olsStatus));//鏌ユ壘鍘熸潵鐨勭姸鎬�
-                        if(null != testMast &&
-                                (devpThread.startSignal[i] == 1 || devpThread.startSignal[i] == 3)){
-                            testMast.setStatus(newStatus);
-                            testMast.setModiTime(new Date());
-                            if(!testMastService.update(testMast,new EntityWrapper<TestMast>()
-                                    .eq("channel",(i+1)).eq("status",olsStatus))){
-                                throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
-                            }
-                            //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                            StaProtocol staProtocol = new StaProtocol();
-                            staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                            staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,1==>2鎴�3==>0,5==>6
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                            if(!result){
-                                log.error("鏇存柊娴嬭瘯淇″彿澶辫触===>>[channel:{},locNo:{},barcode:{}]", i+1, testMast.getLocNo(), testMast.getBarcode());
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
-                            } else {
-                                devpThread.startSignal[i] = newSingle;
-                            }
-                        }else if (null != testMast && devpThread.startSignal[i] == 2){
-                            if (testMast.getStatus()==3){
-                                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                                        .eq("channel",(i+1)));
-                                if (locMast.getLocSts().equals("F") && locMast.getPackStatus()==3){
-                                    //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                                    StaProtocol staProtocol = new StaProtocol();
-                                    staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                                    staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,2==>3
-                                    boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                                    if(!result){
-                                        log.error("鏇存柊娴嬭瘯淇″彿澶辫触===>>[channel:{},locNo:{},barcode:{}]", i+1, testMast.getLocNo(), testMast.getBarcode());
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
-                                    } else {
-                                        devpThread.startSignal[i] = newSingle;
+                        LocMast locMast=null;
+                        boolean sign=false;
+                        switch (devpThread.startSignal[i][0]){
+                            case 0:
+                            case 3:
+                                if (!Cools.isEmpty(testMast)){
+                                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                    if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")){
+                                        sign=true;
                                     }
                                 }
-                            }
-                        }else if (devpThread.startSignal[i] == 5){
-                            SearchLocParam param = new SearchLocParam();
-                            param.setBarcode(i+1+"");
-                            String response = new HttpHandler.Builder()
-                                    .setUri(wmsUrl)
-                                    .setPath("/mobile/test/suspend/auth")
-                                    .setJson(JSON.toJSONString(param))
-                                    .build()
-                                    .doPost();
-                            JSONObject jsonObject = JSON.parseObject(response);
-                            if (jsonObject.getInteger("code").equals(200)) {
-                                //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                                StaProtocol staProtocol = new StaProtocol();
-                                staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                                staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,5==>6
-                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                                if(!result){
-                                    log.error("鏆傚仠娴嬭瘯澶辫触===>>["+i+1+"]鍙烽�氶亾");
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
-                                } else {
-                                    devpThread.startSignal[i] = newSingle;
+                                break;
+                            case 5:
+                            case 6:
+                                if (!Cools.isEmpty(testMast)){
+                                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                    if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F")){
+                                        if (devpThread.startSignal[i][0]==5 && locMast.getPackStatus()==4){
+                                            sign=true;
+                                        }else if (devpThread.startSignal[i][0]==6 && locMast.getPackStatus()==3){
+                                            sign=true;
+                                        }else {
+                                            log.error("娴嬭瘯瀹屾垚绉诲簱鏃舵寜涓嬪畬鎴愭寜閽笌娴嬭瘯缁撴灉涓嶄竴鑷�===>>[channel:{}", i+1);
+                                        }
+                                    }else {
+                                        log.error("娴嬭瘯瀹屾垚绉诲簱鏃舵湭鏌ヨ鍒版祴璇曟。妗�===>>[channel:{}", i+1);
+                                    }
                                 }
-                            } else {
-                                log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/mobile/test/suspend/auth", JSON.toJSONString(param), response);
-                            }
-                        }else if (devpThread.startSignal[i] == 7){
-                            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                                    .eq("channel",(i+1)));
-                            if (locMast.getLocSts().equals("F")){
-                                locMast.setPackStatus(8); //8.绱ф�ュ嚭搴�
-                                locMastService.update(locMast,new EntityWrapper<LocMast>()
-                                        .eq("channel",(i+1)));
-                            }
-                            //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                            StaProtocol staProtocol = new StaProtocol();
-                            staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                            staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,7==>6
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
+                                break;
+                            case 2:
+                                if (!Cools.isEmpty(testMast)){
+                                    testMast.setStatus(newStatus);
+                                    testMast.setModiTime(new Date());
+                                    if(!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("channel",(i+1)).eq("barcode",testMast.getBarcode()))){
+                                        throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+                                    }else {
+                                        sign=true;
+                                    }
+                                }else {
+                                    log.error("鍚姩娴嬭瘯鏃舵湭鏌ヨ鍒版祴璇曟。妗�===>>[channel:{}", i+1);
+                                }
+                                break;
+                            case 7:
+                                SearchLocParam param = new SearchLocParam();
+                                param.setBarcode(i+1+"");
+                                String response = new HttpHandler.Builder()
+                                        .setUri(wmsUrl)
+                                        .setPath("/mobile/test/suspend/auth")
+                                        .setJson(JSON.toJSONString(param))
+                                        .build()
+                                        .doPost();
+                                JSONObject jsonObject = JSON.parseObject(response);
+                                if (jsonObject.getInteger("code").equals(200)) {
+                                    testMast = testMastService.selectOne(new EntityWrapper<TestMast>().eq("channel",(i+1)));
+                                    testMast.setStatus(newStatus);
+                                    testMast.setModiTime(new Date());
+                                    if(!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("channel",(i+1)).eq("barcode",testMast.getBarcode()))){
+                                        log.error("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+                                    }
+                                    sign=true;
+                                } else {
+                                    log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl+"/mobile/test/suspend/auth", JSON.toJSONString(param), response);
+                                }
+                                break;
+                            case 9:
+                            case 12:
+                                locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D")){
+                                    locMast.setPackStatus(8); //8.绱ф�ュ嚭搴�
+                                    if (locMastService.update(locMast,new EntityWrapper<LocMast>().eq("channel",(i+1)))){
+                                        log.info("搴撲綅锛歿}锛岀揣鎬ュ嚭搴擄紒",locMast.getLocNo());
+                                    }
+                                }else {
+                                    log.error("搴撲綅涓嶆槸鍦ㄥ簱鐘舵�侊紝鏃犻渶绱ф�ュ嚭搴擄紒");
+                                }
+                                sign=true;
+                                break;
+                            case 10:
+                                if (!Cools.isEmpty(testMast)){
+                                    locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                    if (!Cools.isEmpty(locMast) && locMast.getLocSts().equals("F") ){
+                                        if ( locMast.getFireStatus().equals(1)){
+                                            newSingle=11;
+                                        }else {
+                                            testMast.setStatus(newStatus);
+                                            testMast.setModiTime(new Date());
+                                            if(!testMastService.update(testMast,new EntityWrapper<TestMast>().eq("channel",(i+1)).eq("barcode",testMast.getBarcode()))){
+                                                throw new CoolException("鏇存柊浜у搧娴嬭瘯鐘舵�佸け璐�");
+                                            }else {
+                                                sign=true;
+                                            }
+                                        }
+                                    }
+                                }
+                                sign=true;
+                                break;
+                            case 13:
+                                locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                if (locMast.getLocSts().equals("O")){
+                                    locMast.setLocSts("X");
+                                    locMastService.update(locMast,new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                }
+                                sign=true;
+                                break;
+                            case 15:
+                                locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                if (locMast.getLocSts().equals("X")){
+                                    locMast.setLocSts("O");
+                                    locMastService.update(locMast,new EntityWrapper<LocMast>().eq("channel",(i+1)));
+                                }
+                                sign=true;
+                                break;
+                            default:
+                                log.error("璇诲彇娴嬭瘯搴撲綅淇″彿鍑洪敊");
+                                continue;
+                        }
+                        if (sign){
+                            boolean result = messageQueueOffer(i,newSingle,SlaveType.Devp, devp.getId());
                             if(!result){
-                                log.error("鏇存柊搴撲綅绱ф�ュ嚭搴撲俊鍙峰け璐�===>>[channel:{},locNo:{},barcode:{}]", i+1, locMast.getLocNo(), locMast.getBarcode());
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
+                                log.error("鏇存柊娴嬭瘯淇″彿澶辫触===>>[channel:{},locNo:{},barcode:{}]", i+1, testMast.getLocNo(), testMast.getBarcode());
                             } else {
-                                devpThread.startSignal[i] = newSingle;
+                                devpThread.startSignal[i][0]  = newSingle;
                             }
-                        }else if (devpThread.startSignal[i] == 8){
-                            //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                            StaProtocol staProtocol = new StaProtocol();
-                            staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                            staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,8==>0
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                            if(!result){
-//                                log.error("鏇存柊搴撲綅绱ф�ュ嚭搴撲俊鍙峰け璐�===>>[channel:{},locNo:{},barcode:{}]", i+1, locMast.getLocNo(), locMast.getBarcode());
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
-                            } else {
-                                devpThread.startSignal[i] = newSingle;
-                            }
-                        }else if (devpThread.startSignal[i] == 11){
-                            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                                    .eq("channel",(i+1)));
-                            if (locMast.getLocSts().equals("O")){
-                                locMast.setLocSts("X");
-                                locMastService.update(locMast,new EntityWrapper<LocMast>()
-                                        .eq("channel",(i+1)));
-                            }
-                        }else if (devpThread.startSignal[i] == 12){
-                            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                                    .eq("channel",(i+1)));
-                            if (locMast.getLocSts().equals("X")){
-                                locMast.setLocSts("O");
-                                locMastService.update(locMast,new EntityWrapper<LocMast>()
-                                        .eq("channel",(i+1)));
-                            }
-                            //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
-                            StaProtocol staProtocol = new StaProtocol();
-                            staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
-                            staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,12==>0
-                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-                            if(!result){
-//                                log.error("鏇存柊搴撲綅绱ф�ュ嚭搴撲俊鍙峰け璐�===>>[channel:{},locNo:{},barcode:{}]", i+1, locMast.getLocNo(), locMast.getBarcode());
-//                                throw new CoolException("鏇存柊娴嬭瘯淇″彿澶辫触===>>" + i);
-                            } else {
-                                devpThread.startSignal[i] = newSingle;
-                            }
-                        }else { }
+                        }
                     }
 
                 }
@@ -2185,6 +2197,14 @@
         }
     }
 
+    public boolean messageQueueOffer(int i ,short newSingle,SlaveType devp,Integer id){
+        //澶嶄綅PLC淇″彿锛屽�熺敤杈撻�佺珯鐐瑰疄浣撶被
+        StaProtocol staProtocol = new StaProtocol();
+        staProtocol.setSiteId(i*2);//瀵勫瓨鍣ㄥ湴鍧�
+        staProtocol.setStaNo(newSingle);//淇敼PLC瀵勫瓨鍣ㄥ湴鍧�鍊�,8==>0
+        return MessageQueue.offer(devp, id, new Task(3, staProtocol));
+    }
+
     /**
      * 灏嗙伀璀︽姤璀︿俊鍙峰啓鍏ュ埌鍫嗗灈鏈篜LC涓�
      */

--
Gitblit v1.9.1