From b353cecfa4181d281243df5a70d1de5cc373e35d Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期二, 06 九月 2022 15:51:44 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java |  116 +++++++++++++++++++++++++--------------------------------
 1 files changed, 51 insertions(+), 65 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
index ba24393..b4bdff6 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -126,7 +126,8 @@
                     .in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, "0002"));
             oldLightTaskStatusAndPoles.addAll(list);
         } else {
-            oldLightTaskStatusAndPoles = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, param.getLightAddress()));
+            oldLightTaskStatusAndPoles = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class)
+                    .in(LightTaskPoleRelation::getPoleId, poleIdList).eq(LightTaskPoleRelation::getLightAddress, param.getLightAddress()));
         }
 
         /**
@@ -141,14 +142,6 @@
             throw new BusinessException("浠诲姟涓瓨鍦ㄥ凡鏈変换鍔$殑鍗曠伅," + "浠诲姟id涓簕" + taskIds + "}, "
                     + "鐏潌id涓簕" + poleIds + "}");
         }
-//        //璁板綍杩欎簺鐏潌鍘熷厛鐨刬d
-//        List<Long> oldList = oldLightTaskStatusAndPoles.stream().map(LightTaskPoleRelation::getPoleId).collect(Collectors.toList());
-
-        //鍒ゆ柇param.getPoleIdList()涓槸鍚︽湁鏃х殑鐏潌ID    (鐩存帴涓嬪彂)
-//        List<Long> newPoleIdList = param.getPoleIdList().stream().filter(poleId -> !oldList.contains(poleId)).collect(Collectors.toList());
-        //鍒ゆ柇param.getPoleIdList()涓槸鍚︽湁鏂扮殑鐏潌ID    (瑕嗙洊鎿嶄綔)
-//        List<Long> oldPoleIdList = param.getPoleIdList().stream().filter(poleId -> oldList.contains(poleId)).collect(Collectors.toList());
-        //鏂板涓嶅瓨鍦ㄥ叧鐏搷浣�
 
 
         List<LightTaskPoleRelation> newPoleMap = new ArrayList<>();
@@ -158,29 +151,6 @@
 
         }
 
-//        List<LightTaskPoleRelation> oldPoleFail = new ArrayList<>();
-//        List<LightTaskPoleRelation> oldPoleSuccess = new ArrayList<>();
-//        if (!oldPoleIdList.isEmpty()) {
-//            //瑕嗙洊鎿嶄綔鐏潌
-//            Map<String, List<LightTaskPoleRelation>> oldPoleMap = sendControllerFrame(oldPoleIdList, newLightTask.getFramePayload(), param.getLightAddress());
-//            oldPoleFail = oldPoleMap.getOrDefault("fail", new ArrayList<>());
-//            oldPoleSuccess = oldPoleMap.getOrDefault("success", new ArrayList<>());
-//        }
-//        //瑕嗙洊鎴愬姛 娣诲姞鏂扮殑浠诲姟鍏崇郴
-//        if (!oldPoleSuccess.isEmpty()) {
-//            oldPoleSuccess.forEach(success -> {
-//                success.setTaskId(newLightTask.getTaskId());
-//            });
-//        }
-
-        //鍒ゆ柇鏃х伅鏉嗚鐩栨搷浣滄槸鍚﹀瓨鍦ㄥけ璐�  濡傛灉瀛樺湪澶辫触锛屽垯淇濆瓨鏃х殑浠诲姟鍏崇郴
-//        List<LightTaskPoleRelation> failOldLightTaskStatusAndPoles = new ArrayList<>();
-//        if (!oldPoleFail.isEmpty()) {
-//            //鑾峰彇澶辫触鐨勭伅鏉唅d
-//            List<Long> failPoleIdList = oldPoleFail.stream().map(LightTaskPoleRelation::getPoleId).collect(Collectors.toList());
-//            //浠巓ldLightTaskStatusAndPoles鑾峰彇澶辫触鐨勭伅鏉嗗師鍏堢殑浠诲姟缁戝畾鍏崇郴.
-//            failOldLightTaskStatusAndPoles = oldLightTaskStatusAndPoles.stream().filter(lightTaskPoleRelation -> failPoleIdList.contains(lightTaskPoleRelation.getPoleId())).collect(Collectors.toList());
-//        }
 
         /**
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍寮�濮�
@@ -196,18 +166,6 @@
         all.addAll(newPoleMap);
         int num = (int) newPoleMap.stream().filter(lightTaskPoleRelation -> lightTaskPoleRelation.getIssueStatus() != 0).count();
 
-//        all.addAll(oldPoleSuccess)
-        //鏃х伅鏉嗕笅鍙戝け璐ヤ笉闇�瑕佷繚瀛樹俊绠$郴
-
-//        //鍒犻櫎鏃х伅鏉嗕腑瑕嗙洊鎴愬姛鐨勪换鍔d
-//        List<Long> oldSuccessPoleId = new ArrayList<>();
-//        for (LightTaskPoleRelation bean : oldPoleSuccess) {
-//            oldSuccessPoleId.add(bean.getPoleId());
-//        }
-////        if (!oldSuccessPoleId.isEmpty()) {
-////            lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, oldSuccessPoleId).eq(LightTaskPoleRelation::getLightAddress, "0001"));
-////            lightTaskPoleRelationService.remove(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, oldSuccessPoleId).eq(LightTaskPoleRelation::getLightAddress, "0002"));
-////        }
 
         //淇濆瓨鏂扮伅鏉嗕互鍙婃棫鐏潌瑕嗙洊鎴愬姛鐨勪换鍔″叧绯�
         if (!all.isEmpty()) {
@@ -290,7 +248,7 @@
         } else {
             if (CollectionUtil.isNotEmpty(oldPoleIdList)) {
                 oldRelation = lightTaskPoleRelationService.list(Wrappers.lambdaQuery(LightTaskPoleRelation.class).in(LightTaskPoleRelation::getPoleId, oldPoleIdList)
-                        .eq(LightTaskPoleRelation::getLightAddress, param.getLightAddress()));
+                        .ne(LightTaskPoleRelation::getTaskId, taskId).eq(LightTaskPoleRelation::getLightAddress, param.getLightAddress()));
             }
         }
 
@@ -313,7 +271,7 @@
         List<LightTaskPoleRelation> newPoleFail = new ArrayList<>();
         if (CollectionUtil.isNotEmpty(newPoleIdList)) {
             //鏂扮伅鏉嗕笅鍙戞柊浠诲姟
-            Map<String, List<LightTaskPoleRelation>> newPoleMap = sendControllerFrame(newPoleIdList, lightTask.getFramePayload(), param.getLightAddress());
+            Map<String, List<LightTaskPoleRelation>> newPoleMap = sendControllerFrame(newPoleIdList, newLightTask.getFramePayload(), param.getLightAddress());
 
             //newPoleAll闆嗗悎鍚庨潰鐢ㄤ簬瀛樺偍鍏崇郴琛�
             newPoleAll = newPoleMap.getOrDefault("all", new ArrayList<>());
@@ -321,21 +279,23 @@
             newPoleFail = newPoleMap.getOrDefault("fail", new ArrayList<>());
         }
 
-//        List<LightTaskPoleRelation> oldPoleFail = new ArrayList<>();
-//        List<LightTaskPoleRelation> oldPoleSuccess = new ArrayList<>();
-//        if (CollectionUtil.isNotEmpty(oldPoleIdList)) {
-//            //瑕嗙洊鎿嶄綔鐏潌
-//            Map<String, List<LightTaskPoleRelation>> oldPoleMap = sendControllerFrame(oldPoleIdList, lightTask.getFramePayload(), param.getLightAddress());
-//            oldPoleFail = oldPoleMap.getOrDefault("fail", new ArrayList<>());
-//            oldPoleSuccess = oldPoleMap.getOrDefault("success", new ArrayList<>());
-//        }
+        List<LightTaskPoleRelation> oldPoleFail = new ArrayList<>();
+        List<LightTaskPoleRelation> oldPoleSuccess = new ArrayList<>();
+        if (CollectionUtil.isNotEmpty(oldPoleIdList)) {
+            //瑕嗙洊鎿嶄綔鐏潌
+            Map<String, List<LightTaskPoleRelation>> oldPoleMap = sendControllerFrame(oldPoleIdList, newLightTask.getFramePayload(), param.getLightAddress());
+            oldPoleFail = oldPoleMap.getOrDefault("fail", new ArrayList<>());
+            oldPoleSuccess = oldPoleMap.getOrDefault("success", new ArrayList<>());
+        }
+
 
         List<LightTaskPoleRelation> closePoleFail = new ArrayList<>();
         List<LightTaskPoleRelation> closePoleSuccess = new ArrayList<>();
-        if (CollectionUtil.isNotEmpty(closeLight)) {
+        System.out.println(closeLight + "closeLight");
+        if (CollectionUtil.isNotEmpty(closeLight) && closeLight != null && closeLight.get(0) != null) {
             //鍏崇伅鍐呭抚
-            String framePayloadClose = "7f0000007f173b00";
-            //瑕嗙洊鎿嶄綔鐏潌
+            String framePayloadClose = "7F0000007F173B00";
+            //鍏崇伅鎿嶄綔鐏潌
             Map<String, List<LightTaskPoleRelation>> closePoleMap = sendControllerFrame(closeLight, framePayloadClose, param.getLightAddress());
             closePoleFail = closePoleMap.getOrDefault("fail", new ArrayList<>());
             closePoleSuccess = closePoleMap.getOrDefault("success", new ArrayList<>());
@@ -372,6 +332,14 @@
         for (LightTaskPoleRelation bean : newPoleSuccess) {
             bean.setTaskId(newLightTask.getTaskId());
         }
+        //鎴愬姛鐢ㄦ柊鐨勪换鍔D
+        for (LightTaskPoleRelation bean : oldPoleSuccess) {
+            bean.setTaskId(newLightTask.getTaskId());
+        }
+        //澶辫触鐢ㄦ棫鐨勪换鍔D
+        for (LightTaskPoleRelation bean : oldPoleFail) {
+            bean.setTaskId(lightTask.getTaskId());
+        }
 
         //澶辫触鐢ㄦ棫鐨勪换鍔D
         for (LightTaskPoleRelation bean : closePoleFail) {
@@ -380,7 +348,10 @@
 
         List<LightTaskPoleRelation> all = new ArrayList<>();
         all.addAll(newPoleSuccess);
-//        all.addAll(closePoleFail);
+        all.addAll(oldPoleFail);
+        all.addAll(oldPoleSuccess);
+        all.addAll(oldPoleFail);
+        all.addAll(closePoleFail);
 
 
         List<Long> allPoleId = new ArrayList<>();
@@ -388,6 +359,9 @@
             allPoleId.add(bean.getPoleId());
         }
         for (LightTaskPoleRelation bean : closePoleSuccess) {
+            allPoleId.add(bean.getPoleId());
+        }
+        for (LightTaskPoleRelation bean : oldPoleSuccess) {
             allPoleId.add(bean.getPoleId());
         }
 
@@ -410,11 +384,11 @@
          * 涓嬪彂璺伅浠诲姟鏃ュ織璁板綍缁撴潫
          */
 
-        if (newPoleFail.isEmpty() && closePoleFail.isEmpty()) {
+        if (newPoleFail.isEmpty() && closePoleFail.isEmpty() && oldPoleFail.isEmpty()) {
             return "缂栬緫鎴愬姛";
-        } else if (newPoleSuccess.isEmpty() && closePoleSuccess.isEmpty()) {
+        } else if (newPoleSuccess.isEmpty() && closePoleSuccess.isEmpty() && oldPoleSuccess.isEmpty()) {
             throw new BusinessException("缂栬緫澶辫触,璇锋鏌ュ師鏈夎澶囧拰缂栬緫鍚庣殑璁惧鏄惁鍦ㄧ嚎!");
-        } else if (!closePoleFail.isEmpty() && !newPoleSuccess.isEmpty()) {
+        } else if (!closePoleFail.isEmpty() && !newPoleSuccess.isEmpty() && !oldPoleFail.isEmpty()) {
             return "鍘熶换鍔′腑瀛樺湪涓嬪彂寮傚父锛屽師浠诲姟淇濈暀锛屽垱寤烘柊浠诲姟杩涜淇濆瓨";
         } else if (!newPoleFail.isEmpty() && !newPoleSuccess.isEmpty()) {
             return "鏂颁换鍔′腑瀛樺湪涓嬪彂寮傚父锛屽拷鐣ュ紓甯告搷浣滅殑鐏潌";
@@ -433,10 +407,11 @@
      */
     public A5LightTimerRespInnerFrame sendTimeRRpc(String framePayload, String deviceCode, String lightAddress) {
         IRequestFrame requestFrame = FrameBuilder.builderA5().innerFrame(new A5LightTimerReqInnerFrame(framePayload, lightAddress)).orderType(A5OrderEnum.REQUEST_LIGHT_DATA.getCode()).build();
+        System.out.println(requestFrame + "          --------requestFrame");
+
         WrapResponseCommonFrame<A5LightTimerRespInnerFrame> responseCommonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceCode, requestFrame, A5LightTimerRespInnerFrame.class);
-
+        System.out.println(responseCommonFrame + "         -----------responseCommonFrame");
         StoreOperationRecordsUtils.storeInnerFrameData(deviceCode, "鍗曠伅甯�-鎺х伅", requestFrame, responseCommonFrame);
-
         return Optional.ofNullable(responseCommonFrame).map(WrapResponseCommonFrame::getResponseInnerFrame).orElse(null);
     }
 
@@ -563,7 +538,7 @@
         for (Pole pole : poles) {
             if (pole.getDeviceCode() == null || pole.getDeviceCode().equals("")) {
                 removeById(lightTask.getTaskId());
-                throw new BusinessException("鐏潌涓嶅瓨鍦╩ac,涓嶈兘涓嬪彂浠诲姟   璇锋鏌ョ伅鏉嗘槸鍚﹀瓨鍦ㄥ崟鐏�");
+                throw new BusinessException("缂栬緫鐨勭伅鏉嗘垨鍘熸湁浠诲姟鐨勭伅鏉嗕笉瀛樺湪mac,涓嶈兘涓嬪彂浠诲姟   璇锋鏌ョ伅鏉嗘槸鍚﹀瓨鍦ㄥ崟鐏�");
             }
             LightTaskPoleRelation lightTaskPoleRelation = new LightTaskPoleRelation();
             lightTaskPoleRelation.setPoleId(pole.getId());
@@ -639,6 +614,8 @@
      * @return
      */
     private Map<String, List<LightTaskPoleRelation>> sendControllerFrame(List<Long> poleIdList, String framePayload, String lightAddress) {
+
+        System.out.println("framePayload:" + framePayload);
         List<LightTaskPoleRelation> lightTaskPoleRelationList = new ArrayList<>();
         //鎴愬姛
         List<LightTaskPoleRelation> success = new ArrayList<>();
@@ -654,7 +631,7 @@
 
         for (Pole pole : poles) {
             if (pole.getDeviceCode() == null || pole.getDeviceCode().equals("")) {
-                throw new BusinessException("鐏潌涓嶅瓨鍦╩ac,涓嶈兘涓嬪彂浠诲姟   璇锋鏌ョ伅鏉嗘槸鍚﹀瓨鍦ㄥ崟鐏�");
+                throw new BusinessException("缂栬緫鐨勭伅鏉嗘垨鍘熸湁浠诲姟鐨勭伅鏉嗕笉瀛樺湪mac,涓嶈兘涓嬪彂浠诲姟   璇锋鏌ョ伅鏉嗘槸鍚﹀瓨鍦ㄥ崟鐏�");
             }
             LightTaskPoleRelation lightTaskPoleRelation = new LightTaskPoleRelation();
             lightTaskPoleRelation.setPoleId(pole.getId());
@@ -731,6 +708,7 @@
         map.put("success", success);
         map.put("fail", fail);
         map.put("all", lightTaskPoleRelationList);
+        log.error("鍙戦�佹帶鍒跺櫒甯х粨鏋滐細{}", map);
         return map;
     }
 
@@ -924,4 +902,12 @@
 
         }
     }
+
+    public boolean clearLightTask(List<Long> poleIds) {
+        Map<String, List<LightTaskPoleRelation>> ffff = sendControllerFrame(poleIds, "", "FFFF");
+        ffff.get("success").forEach(lightTaskPoleRelation -> {
+            lightTaskPoleRelationService.remove(Wrappers.lambdaUpdate(LightTaskPoleRelation.class).eq(LightTaskPoleRelation::getPoleId, lightTaskPoleRelation.getPoleId()).eq(LightTaskPoleRelation::getTaskId, lightTaskPoleRelation.getTaskId()));
+        });
+        return true;
+    }
 }

--
Gitblit v1.9.3