From a6297bcc875d6486ab2bb1453f571d0813593ccd Mon Sep 17 00:00:00 2001
From: whycq <913841844@qq.com>
Date: 星期日, 21 五月 2023 12:04:20 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  137 +++++++++++++++++++--------------------------
 1 files changed, 58 insertions(+), 79 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 079cd36..bdf7814 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -121,11 +121,11 @@
                     }
                 } else {
                     // led 寮傚父鏄剧ず
-                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-                    if (ledThread != null) {
-                        String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
-                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
-                    }
+//                    LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+//                    if (ledThread != null) {
+//                        String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+//                        MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+//                    }
                     continue;
                 }
 
@@ -147,23 +147,30 @@
                 }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
-                if (staProtocol.isAutoing() && staProtocol.isLoading()
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
                         && staProtocol.isInEnable()
-                        && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990)
-                        && staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
+                        && !staProtocol.isEmptyMk()
+                        && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990)
+                        && staProtocol.isPakMk()) {
 
-//                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
-//                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
-//                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
-//                        staProtocol.setWorkNo((short)9999);
-//                        staProtocol.setStaNo((short)172);
-//                        devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                        if (!result) {
-//                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                        }
-//                        continue;
-//                    }
+                    if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
+                        //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
+                        if (ledThread != null) {
+                            String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
+                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
+                        }
+                        staProtocol.setWorkNo((short)9999);
+                        staProtocol.setStaNo((short)(staProtocol.getStaNo()-1));
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
+                        }
+                        continue;
+                    }
 
                     // 鍒ゆ柇閲嶅宸ヤ綔妗�
                     WrkMast wrkMast = new WrkMast();
@@ -175,17 +182,8 @@
                         }
                     }
 
-//                    // 鑾峰彇鍏ュ簱閫氱煡妗�
-//                    List<WaitPakin> waitPakins = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).eq("io_status", "N"));
-//                    if (waitPakins.isEmpty()) {
-//                        log.error("鏃犳鍏ュ簱鏉$爜鏁版嵁銆傛潯鐮佸彿={}", barcode);
-//                        continue;
-//                    }
-
                     try {
-
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-
                         SearchLocParam param = new SearchLocParam();
                         param.setBarcode(barcode);
                         param.setIoType(1);
@@ -199,8 +197,7 @@
                                 .build()
                                 .doPost();
                         JSONObject jsonObject = JSON.parseObject(response);
-//                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
-//                        Integer code = jsonObject.getInteger("code");
+                        LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed());
                         if (jsonObject.getInteger("code").equals(200)) {
                             StartupDto dto = jsonObject.getObject("data", StartupDto.class);
 
@@ -208,6 +205,7 @@
                             staProtocol.setWorkNo(dto.getWorkNo().shortValue());
                             staProtocol.setStaNo(dto.getStaNo().shortValue());
                             devpThread.setPakMk(staProtocol.getSiteId(), false);
+                            ledThread.errorReset();
                             boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                             if (!result) {
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -215,40 +213,6 @@
                         } else {
                             log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                         }
-//                        if (jsonObject.getInteger("code").equals(200)) {
-//                            StartupDto dto = jsonObject.getObject("data", StartupDto.class);
-//
-//                            barcodeThread.setBarcode("");
-//                            staProtocol.setWorkNo(dto.getWorkNo().shortValue());
-//                            staProtocol.setStaNo(dto.getStaNo().shortValue());
-//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-//
-//                            ledThread.errorReset();
-//
-//                            boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//                            if (!result) {
-//                                throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
-//                            }
-//                        } else if(code == 500){
-//                            if (ledThread != null) {
-//                                String errorMsg = jsonObject.getString("msg");
-//                                if (!Cools.isEmpty(errorMsg)) {
-//                                    MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
-//                                }
-//                            }
-//                            log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
-//                        } else if (code == 700) {
-//                            staProtocol.setWorkNo((short) 9995);
-//                            staProtocol.setStaNo(inSta.getBackSta().shortValue());
-//                            devpThread.setPakMk(staProtocol.getSiteId(), false);
-//                            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-//
-//                            // led 寮傚父鏄剧ず
-//                            if (ledThread != null) {
-//                                String errorMsg = barcode + "鎵樼洏璇嗗埆寮傚父锛岃鍏堣繘琛岀粍鎵橈紒";
-//                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
-//                            }
-//                        }
 
 
 //                        // 妫�绱㈠簱浣�
@@ -392,18 +356,16 @@
             for (DevpSlave.Sta pickSta : devp.getPickSta()) {
                 // 鑾峰彇鏉$爜鎵弿浠俊鎭�
                 BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, pickSta.getBarcode());
-
                 if (barcodeThread == null) {
                     continue;
                 }
                 String barcode = barcodeThread.getBarcode();
 
-
-
                 if (!Cools.isEmpty(barcode)) {
                     log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode);
-                } else {
-                    continue;
+                    if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        continue;
+                    }
                 }
 
                 // 鑾峰彇鎷f枡鍏ュ簱绔欎俊鎭�
@@ -416,20 +378,37 @@
                 }
 
 
-                if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) {
+                if (staProtocol.isAutoing()
+                        && staProtocol.isLoading()
+                        && staProtocol.isInEnable()
+                        && staProtocol.isPakMk()
+                        && staProtocol.getWorkNo() == 9991) {
 //                    WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode);
-                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
                     LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
+                    if (barcode.equals("") || barcode.equals("99999999")) {
+                        Integer led = pickSta.getLed();
+                        if (ledThread != null) {
+                            String errorMsg = "鎵爜寮傚父锛岃閲嶆柊鍏ュ簱锛�";
+                            MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
+                        }
+//                        // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+                        staProtocol.setWorkNo((short)9999);
+                        staProtocol.setStaNo((short)(staProtocol.getStaNo()-1));
+                        devpThread.setPakMk(staProtocol.getSiteId(), false);
+                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+                        if (!result) {
+                            log.error("鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
+                        }
+                        continue;
+                    }
+
+                    WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue());
+                    ledThread.errorReset();
                     if (wrkMast == null) {
                         wrkMast = wrkMastMapper.selectPickStep(barcode);
                     }
                     if (wrkMast == null) {
                         // 鏃犳嫞鏂欐暟鎹�
-
-                        if (ledThread != null) {
-                            String errorMsg = "鏆傛棤鎷f枡淇℃伅锛侊紒锛�";
-                            MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(3, errorMsg));
-                        }
                         continue;
                     }
                     if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107)
@@ -1340,7 +1319,6 @@
                 if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
                         && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() >= 9990
                         && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) {
-
                     try {
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
 
@@ -1486,6 +1464,7 @@
                 }
                 ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
+                ledCommand.setBarcode(wrkMast.getBarcode());
                 if (wrkMast.getIoType() != 110) {
                     List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
                     wrkDetls.forEach(wrkDetl -> {
@@ -1561,7 +1540,7 @@
             // led鏄剧ず榛樿鍐呭
             if (reset) {
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
-                    News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触1565锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
                 }
             }
         }

--
Gitblit v1.9.1