From 2bd0f5e053cfe4dd90d6a5123474c9b41bcee94e Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期六, 11 十一月 2023 17:10:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/tzskwcs_3' into tzskwcs_3

---
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java |  135 ++++++++++++++++++++++++++++++++------------
 1 files changed, 98 insertions(+), 37 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 f8b2e5d..052cbf3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -634,7 +634,7 @@
      */
     public synchronized void initRealtimeBasMap() {
         for (int i = 1; i <= 10; i++) {//鎬诲叡鍥涘眰妤�
-            Object data = redisUtil.get("realtimeBasMap_" + i);
+            Object data = redisUtil.get(RedisKeyType.MAP.key + i);
             if (data == null) {//redis鍦板浘鏁版嵁涓虹┖锛屼粠鏁版嵁搴撲腑鑾峰彇
                 BasMap basMap = basMapService.selectLatestMap(i);
                 if (basMap == null) {
@@ -656,7 +656,7 @@
                 }
 
                 //灏嗘暟鎹簱鍦板浘鏁版嵁瀛樺叆redis
-                redisUtil.set("realtimeBasMap_" + i, JSON.toJSONString(basMap));
+                redisUtil.set(RedisKeyType.MAP.key + i, JSON.toJSONString(basMap));
             }
         }
     }
@@ -667,7 +667,7 @@
     public synchronized void restartTaskFromRedis() {
         HashMap<Object, Object> map = redisUtil.getRedis();
         for (Object key : map.keySet()) {
-            if (key.toString().contains("lift_wrk_no_")) {//鎻愬崌鏈轰换鍔�
+            if (key.toString().contains(RedisKeyType.LIFT.key)) {//鎻愬崌鏈轰换鍔�
                 LiftRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), LiftRedisCommand.class);
                 if (redisCommand == null) {
                     continue;
@@ -690,7 +690,7 @@
                 liftProtocol.setTaskNo(redisCommand.getWrkNo());//灏嗘彁鍗囨満绾跨▼鍒嗛厤浠诲姟鍙�
                 liftProtocol.setProtocolStatus(LiftProtocolStatusType.WORKING);//宸ヤ綔鐘舵��
 
-            }else if(key.toString().contains("shuttle_wrk_no_")){//鍥涘悜绌挎杞︿换鍔�
+            }else if(key.toString().contains(RedisKeyType.SHUTTLE.key)){//鍥涘悜绌挎杞︿换鍔�
                 ShuttleRedisCommand redisCommand = JSON.parseObject(map.get(key).toString(), ShuttleRedisCommand.class);
                 if (redisCommand == null) {
                     continue;
@@ -1213,7 +1213,7 @@
 
             //鑾峰彇鎻愬崌鏈哄懡浠�
             NyLiftCommand liftCommand = NyLiftUtils.getLiftCommand(liftProtocol.getLiftNo().intValue(), NyLiftTaskModelType.MOVE_TRAY.id, startSta, targetSta, wrkMast.getWrkNo());
-            if (wrkMast.getIoType() == 53) {
+            if (wrkMast.getIoType() == 53 || wrkMast.getIoType() == 57) {
                 //鎷f枡鍐嶅洖搴擄紝閲嶆柊鍒嗛厤璁惧宸ヤ綔鍙�
                 Random random = new Random();
                 int deviceWrk = Math.abs((liftCommand.getTaskNo().intValue() + random.nextInt(9999)));//鑾峰彇璁惧宸ヤ綔鍙�
@@ -2384,8 +2384,64 @@
                 ledCommand.setLocNo(wrkMast.getLocNo());
                 ledCommand.setStaNo(wrkMast.getStaNo());
                 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(),wrkDetl.getSpecs())));
+                    //for (WrkDetl wrkDetl : wrkDetls) {
+                    //    LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                    //
+                    //    locDetls.forEach(locDetl1 -> {
+                    //        //宸ヤ綔妗d腑瀛樺湪璇ョ墿鏂欏垯璺宠繃
+                    //        String suppCode = "";
+                    //
+                    //        if (wrkDetl.getMatnr().equals(locDetl1.getMatnr())) {
+                    //            Double anfme = 0D;
+                    //            if (locDetl != null) {
+                    //                anfme = locDetl.getAnfme();
+                    //            }
+                    //            if (wrkDetl.getSuppCode() != null) {
+                    //                suppCode = wrkDetl.getSuppCode();
+                    //            }
+                    //            ledCommand.getMatDtos()
+                    //                    .add(new MatDto(wrkDetl.getMatnr()
+                    //                            , wrkDetl.getMaktx()
+                    //                            , wrkDetl.getAnfme()
+                    //                            , (wrkDetl.getAnfme()-anfme)
+                    //                            , wrkDetl.getSpecs()
+                    //                            , suppCode));
+                    //        } else {
+                    //            if (locDetl1.getSuppCode() != null) {
+                    //                suppCode = locDetl1.getSuppCode();
+                    //            }
+                    //            ledCommand.getMatDtos()
+                    //                    .add(new MatDto(locDetl1.getMatnr()
+                    //                            , locDetl1.getMaktx()
+                    //                            , 0D
+                    //                            , locDetl1.getAnfme()
+                    //                            , locDetl1.getSpecs()
+                    //                            , suppCode));
+                    //        }
+                    //    });
+                    //    //LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("zpallet", wrkDetl.getZpallet()).eq("matnr", wrkDetl.getMatnr()));
+                    //}
+                    List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", wrkMast.getSourceLocNo()));
+                    locDetls.forEach(locDetl -> {
+                        Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>().eq("matnr", locDetl.getMatnr()).eq("wrk_no",wrkMast.getWrkNo());
+                        Utils.wapperSetCondition(wrapper,"batch",locDetl.getBatch());
+                        Utils.wapperSetCondition(wrapper,"three_code",locDetl.getThreeCode());
+                        Utils.wapperSetCondition(wrapper,"dead_time",locDetl.getDeadTime());
+                        WrkDetl detl = wrkDetlService.selectOne(wrapper);
+                        if (Cools.isEmpty(detl)) {
+                            String suppCode = "";
+                            if (locDetl.getSuppCode() != null) {
+                                suppCode = locDetl.getSuppCode();
+                            }
+                            ledCommand.getMatDtos().add(new MatDto(locDetl.getMatnr(), locDetl.getMaktx(), 0D, locDetl.getAnfme(), locDetl.getSpecs(), suppCode));
+                        } else {
+                            String suppCode = "";
+                            if (detl.getSuppCode() != null) {
+                                suppCode = detl.getSuppCode();
+                            }
+                            ledCommand.getMatDtos().add(new MatDto(detl.getMatnr(), detl.getMaktx(), detl.getAnfme(), (locDetl.getAnfme() - detl.getAnfme()), detl.getSpecs(), suppCode));
+                        }
+                    });
                 }
                 commands.add(ledCommand);
             }
@@ -2431,35 +2487,36 @@
      * 鍏朵粬  ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
      */
     public void ledReset() {
-        for (LedSlave led : slaveProperties.getLed()) {
-
-            // 鑾峰彇杈撻�佺嚎plc绾跨▼
-            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
-            // 鍛戒护闆嗗悎
-            boolean reset = true;
-            for (Integer staNo : led.getStaArr()) {
-                // 鑾峰彇鍙夎溅绔欑偣
-                StaProtocol staProtocol = devpThread.getStation().get(staNo);
-                if (staProtocol == null) {
-                    continue;
-                }
-                if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
-                    reset = false;
-                    break;
-                }
-            }
-            // 鑾峰彇led绾跨▼
-            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
-            // led鏄剧ず榛樿鍐呭
-            if (reset && !ledThread.isLedMk()) {
-                ledThread.setLedMk(true);
-                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
-                    News.error(" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-                } else {
-
-                }
-            }
-        }
+//        for (LedSlave led : slaveProperties.getLed()) {
+//
+//            // 鑾峰彇杈撻�佺嚎plc绾跨▼
+//            DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
+//            // 鍛戒护闆嗗悎
+//            boolean reset = true;
+//            for (Integer staNo : led.getStaArr()) {
+//                // 鑾峰彇鍙夎溅绔欑偣
+//                StaProtocol staProtocol = devpThread.getStation().get(staNo);
+//                if (staProtocol == null) {
+//                    continue;
+//                }
+//                if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) {
+//                    reset = false;
+//                    break;
+//                }
+//            }
+//            // 鑾峰彇led绾跨▼
+//            LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
+//            // led鏄剧ず榛樿鍐呭
+//            if (reset && !ledThread.isLedMk()) {
+//                ledThread.setLedMk(true);
+//                if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) {
+//                    News.error(" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+//                } else {
+//                    News.error("{}鍙稬ED鍛戒护涓嬪彂鎴愬姛锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+//                    ledThread.setLedMk(false);
+//                }
+//            }
+//        }
         for (LedSlave led : slaveProperties.getLed()) {
             // 鑾峰彇杈撻�佺嚎plc绾跨▼
             DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId());
@@ -2478,9 +2535,13 @@
             LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId());
             // led鏄剧ず榛樿鍐呭
             if (reset && !ledThread.isLedMk()) {
-                ledThread.setLedMk(true);
+                ledThread.setLedMk(false);
                 if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(2, new ArrayList<>()))) {
                     News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                }else {
+//                    News.error("{}鍙稬ED鍛戒护涓嬪彂鎴愬姛锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
+                    MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()));
+                    ledThread.setLedMk(false);
                 }
             }
         }

--
Gitblit v1.9.1