From 1d33818195ae739de03988b2252e1013394391dc Mon Sep 17 00:00:00 2001
From: mrzhssss <pro6@qq.com>
Date: 星期日, 19 二月 2023 12:37:07 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  203 ++++++++++++++++++++++++++++----------------------
 1 files changed, 113 insertions(+), 90 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 5336b62..a66e8af 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -122,13 +122,12 @@
                 if (!Cools.isEmpty(barcode) && (staProtocol.getWorkNo() != 9998 || staProtocol.getWorkNo() != 9996)) {
                     log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
                     if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) {
+                        String errorMsg = "15绔欐壂鐮佸け璐ワ紝宸查��鍥�14绔�";
                         staProtocol.setWorkNo((short) 9998);
                         staProtocol.setStaNo((short) 14);
                         devpThread.setPakMk(staProtocol.getSiteId(), false);
-                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                         // led 寮傚父鏄剧ず
                         if (ledThread != null) {
-                            String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
                             News.error(methodName +  ":鎵爜澶辫触锛岃閲嶈瘯");
                             MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg));
                         }
@@ -137,16 +136,6 @@
                 } else {
                     continue;
                 }
-
-                // 鑾峰彇鍏ュ簱绔欎俊鎭�
-//                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
-
-
-                // 鍏ュ嚭搴撴ā寮忓垽鏂�
-//                if ( inSta.getStaNo()==203 && devpThread.ioModeOf2F != IoModeType.PAKIN_MODE) { continue; }
-//                if (inSta.getStaNo() == 203 && devpThread.ioModeOf2F == IoModeType.PAKOUT_MODE) {
-//                    continue;
-//                }
 
                 // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
                 if (staProtocol.isAutoing()
@@ -173,6 +162,10 @@
                     WrkMast wrkMast = wrkMastMapper.selectPakInStep1(inSta.getStaNo(), barcode);
                     if (wrkMast != null) {
                         News.error(methodName + ":宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={}", wrkMast.getWrkNo());
+                        if (ledThread != null) {
+                            News.error(methodName +  ":鎵爜澶辫触锛岃閲嶈瘯");
+                            MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, "宸ヤ綔妗d腑宸插瓨鍦ㄨ绔欑姸鎬佷负锛� 2.璁惧涓婅蛋 锛夌殑鏁版嵁,宸ヤ綔鍙�={"+ wrkMast.getWrkNo() + "}, 璇锋墜鍔ㄥ彇娑堝凡瀛樺湪宸ヤ綔妗�"));
+                        }
                         continue;
                     }
 
@@ -213,10 +206,7 @@
                                 throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
                             }
 
-                            if (ledThread != null) {
-                                String successMsg = "鍏ュ簱宸ヤ綔妗�--宸ヤ綔鍙�:" + dto.getWorkNo() + " 鐩爣搴撲綅:" + dto.getLocNo();
-                                MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(7, successMsg));
-                            }
+
                         } else {
                             staProtocol.setWorkNo((short) 9998);
                             staProtocol.setStaNo((short) 14);
@@ -1498,15 +1488,15 @@
      * 鍑哄簱  ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
      */
     public synchronized void ledExecute() {
-        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
+//        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
 
         for (LedSlave led : slaveProperties.getLed()) {
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
-            // 鍛戒护闆嗗悎
-            List<LedCommand> commands = new ArrayList<>();
-            // 宸ヤ綔妗i泦鍚�
-            List<WrkMast> wrkMasts = new ArrayList<>();
+//            // 鍛戒护闆嗗悎
+//            List<LedCommand> commands = new ArrayList<>();
+//            // 宸ヤ綔妗i泦鍚�
+//            List<WrkMast> wrkMasts = new ArrayList<>();
             for (Integer staNo : led.getStaArr()) {
                 // 鑾峰彇鍙夎溅绔欑偣
                 StaProtocol staProtocol = devpThread.getStation().get(staNo);
@@ -1517,90 +1507,123 @@
                 }
                 // 鑾峰彇宸ヤ綔妗f暟鎹�
                 WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
-//                if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
                 if (null == wrkMast) {
                     continue;
                 }
-                wrkMasts.add(wrkMast);
-                // 缁勮鍛戒护
+                ArrayList<MatDto> matDtos = new ArrayList<>();
+                Wrapper<WrkDetl> detlWrapper = new EntityWrapper<WrkDetl>()
+                        .eq("wrk_no", wrkMast.getWrkNo());
                 LedCommand ledCommand = new LedCommand();
                 ledCommand.setWorkNo(wrkMast.getWrkNo());
+                ledCommand.setStaNo(wrkMast.getStaNo());
+                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
+                ledCommand.setLocNo(wrkMast.getLocNo());
+                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
                 ledCommand.setIoType(wrkMast.getIoType());
-                // 鍑哄簱妯″紡
-                switch (wrkMast.getIoType()) {
-                    case -1:
-                        ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
-                        break;
+                ledCommand.setTitle(wrkMast.getIoType$());
+
+                switch (wrkMast.getIoType()){
                     case 10:
-                        ledCommand.setTitle("绌烘澘鍏ュ簱");
-                        break;
-                    case 10-1:
-                        ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
-                        break;
-                    case 103:
-                        ledCommand.setTitle("鎷f枡鍑哄簱");
-                        break;
-                    case 104:
-                        ledCommand.setTitle("骞舵澘鍑哄簱");
-                        break;
-                    case 107:
-                        ledCommand.setTitle("鐩樼偣鍑哄簱");
-                        break;
                     case 110:
-                        ledCommand.setTitle("绌烘澘鍑哄簱");
                         ledCommand.setEmptyMk(true);
                         break;
                     default:
-                        News.error(methodName + ":浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+                        ledCommand.setBarcode(wrkMast.getBarcode());
+                        List<WrkDetl> wrkDetls = wrkDetlService.selectList(detlWrapper);
+                        for (WrkDetl wrkDetl : wrkDetls) {
+                            MatDto matDto = new MatDto();
+                            matDto.setMaknx(wrkDetl.getMaktx());
+                            matDto.setMatNo(wrkDetl.getMatnr());
+                            matDto.setCount(wrkDetl.getAnfme());
+                            matDtos.add(matDto);
+                        }
                         break;
+
+
                 }
-                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
-                ledCommand.setLocNo(wrkMast.getLocNo());
-                ledCommand.setStaNo(wrkMast.getStaNo());
-//                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
-                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
-                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
-                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
-                }
-                commands.add(ledCommand);
-            }
-            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
-            // 鑾峰彇LED绾跨▼
-            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
-            // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
-//            if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
-//                continue;
+                ledCommand.setMatDtos(matDtos);
+                MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, ledCommand.toString()));
+
+//                wrkMasts.add(wrkMast);
+//                // 缁勮鍛戒护
+//                LedCommand ledCommand = new LedCommand();
+//                ledCommand.setWorkNo(wrkMast.getWrkNo());
+//                ledCommand.setIoType(wrkMast.getIoType());
+//                // 鍑哄簱妯″紡
+//                switch (wrkMast.getIoType()) {
+//                    case -1:
+//                        ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+//                        break;
+//                    case 10:
+//                        ledCommand.setTitle("绌烘澘鍏ュ簱");
+//                        break;
+//                    case 10-1:
+//                        ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
+//                        break;
+//                    case 103:
+//                        ledCommand.setTitle("鎷f枡鍑哄簱");
+//                        break;
+//                    case 104:
+//                        ledCommand.setTitle("骞舵澘鍑哄簱");
+//                        break;
+//                    case 107:
+//                        ledCommand.setTitle("鐩樼偣鍑哄簱");
+//                        break;
+//                    case 110:
+//                        ledCommand.setTitle("绌烘澘鍑哄簱");
+//                        ledCommand.setEmptyMk(true);
+//                        break;
+//                    default:
+//                        News.error(methodName + ":浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+//                        break;
+//                }
+//                ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
+//                ledCommand.setLocNo(wrkMast.getLocNo());
+//                ledCommand.setStaNo(wrkMast.getStaNo());
+////                ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
+//                if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
+//                    List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
+//                    wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme())));
+//                }
+//                commands.add(ledCommand);
 //            }
-            // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
-            if (!commands.isEmpty()) {
-                String errMsg = "";
-                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
-                    News.error(methodName + ":{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                    continue;
-                } else {
-                    ledThread.setLedMk(false);
-                }
-
-
+//            Set<Integer> workNos = wrkMasts.stream().map(WrkMast::getWrkNo).collect(Collectors.toSet());
+//            // 鑾峰彇LED绾跨▼
+//            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+//            // 鐩稿悓宸ヤ綔鍙烽泦鍚堝垯杩囨护
+////            if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
+////                continue;
+////            }
+//            // 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
+//            if (!commands.isEmpty()) {
+//                String errMsg = "";
+//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
+//                    News.error(methodName + ":{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+//                    continue;
+//                } else {
+//                    ledThread.setLedMk(false);
+//                }
+//
+//
             }
-
-            try {
-                // 淇敼涓绘。led鏍囪
-                for (WrkMast wrkMast : wrkMasts) {
-                    wrkMast.setOveMk("Y");
-                    wrkMast.setModiTime(new Date());
-                    if (wrkMastMapper.updateById(wrkMast) == 0) {
-                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
-                    }
-                }
-
-                // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
-                ledThread.setWorkNos(workNos);
-
-            } catch (Exception e) {
-                e.printStackTrace();
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            }
+//
+//            try {
+//                // 淇敼涓绘。led鏍囪
+//                for (WrkMast wrkMast : wrkMasts) {
+//                    wrkMast.setOveMk("Y");
+//                    wrkMast.setModiTime(new Date());
+//                    if (wrkMastMapper.updateById(wrkMast) == 0) {
+//                        throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
+//                    }
+//                }
+//
+//                // 鏇存柊绾跨▼褰撳墠宸ヤ綔鍙烽泦鍚�
+//                ledThread.setWorkNos(workNos);
+//
+//            } catch (Exception e) {
+//                e.printStackTrace();
+//                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+//            }
 
         }
     }

--
Gitblit v1.9.1