From f92e7a801cb5e59bd2391641eccad67036513b8a Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 15 四月 2022 15:00:14 +0800
Subject: [PATCH] fix

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java |  103 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 83 insertions(+), 20 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
index aaa77c5..bb903df 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java
@@ -1,12 +1,14 @@
 package com.sandu.ximon.admin.service;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.google.gson.Gson;
 import com.sandu.common.execption.BusinessException;
 import com.sandu.common.service.impl.BaseServiceImpl;
 import com.sandu.ximon.admin.config.NginxConfigBean;
 import com.sandu.ximon.admin.config.RealtimeServerBean;
 import com.sandu.ximon.admin.entity.*;
+import com.sandu.ximon.admin.param.PoleBindingParam;
 import com.sandu.ximon.admin.utils.Constant;
 import com.sandu.ximon.admin.utils.FileUtil;
 import com.sandu.ximon.admin.utils.HtmlTemplateUtils;
@@ -27,11 +29,15 @@
 import java.io.IOException;
 import java.util.*;
 
-
+/**
+ * 鐔欒璁惧
+ */
 @Service
 @EnableCaching
 public class PoleLightemitService extends BaseServiceImpl<PoleLightemitEntityMapper, PoleLightemitEntity> {
 
+    @Autowired
+    private PoleBindingService poleBindingService;
     //    @Autowired
 //    PoleStreetlightLightemitService poleStreetlightLightemitService;
 
@@ -180,49 +186,97 @@
     }
 */
 
-/*    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
-
-        for(PoleLightemitEntity poleLightemitEntity : list){
+    public List<PoleLightemitEntity> ledOnline(List<PoleLightemitEntity> list) {
+        List<PoleLightemitEntity> onLineList = new ArrayList<>();
+        for (PoleLightemitEntity poleLightemitEntity : list) {
             poleLightemitEntity.setIsOpen(lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode()).contains("true"));
+            if (poleLightemitEntity.getIsOpen()) {
+                onLineList.add(poleLightemitEntity);
+            }
         }
-    }*/
+        return onLineList;
+    }
+
+
+    public void ledOnlineCheck(List<PoleLightemitEntity> list) {
+        for (PoleLightemitEntity poleLightemitEntity : list) {
+            poleLightemitEntity.setIsOpen(lightemitUtils.getIsScreenOpen(poleLightemitEntity.getLightemitControlCode()).contains("true"));
+
+        }
+    }
+
+
+    /**
+     * 鏌ヨ鍗曚釜LED
+     * @param lightControlCode
+     * @return
+     */
+    public PoleLightemitEntity getLedByLightControlCode(String lightControlCode) {
+        PoleLightemitEntity xiXun = getOne(Wrappers.lambdaQuery(PoleLightemitEntity.class).eq(PoleLightemitEntity::getLightemitControlCode, lightControlCode));
+        if(xiXun==null){
+            return null;
+        }
+        String isScreenOpen = lightemitUtils.getIsScreenOpen(xiXun.getLightemitControlCode());
+        if(isScreenOpen.contains("true")){
+            xiXun.setIsOpen(true);
+        }
+        xiXun.setIsOpen(false);
+        return xiXun;
+    }
 
 
     public void savePoleLightemit(PoleLightemitEntity poleLightemit) {
         boolean save = this.save(poleLightemit);
         // 缁戝畾鐏潌
 
-        if(save&&poleLightemit.getStreetlightId()!=null){
-            System.out.println("-------------");
+        if (save && poleLightemit.getStreetlightId() != null) {
+            PoleBindingParam poleBindingParam = new PoleBindingParam();
+            poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
+            poleBindingParam.setDeviceType(1);
+            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
+            poleBindingService.bindPole(poleLightemit.getStreetlightId(), poleBindingParam);
         }
-      //  poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+        //  poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
     }
 
 
-    public void updatePoleLightemit(Long ledId,PoleLightemitEntity poleLightemit) {
+    public void updatePoleLightemit(Long ledId, PoleLightemitEntity poleLightemit) {
         PoleLightemitEntity byId = getById(ledId);
-        if(byId==null){
+        if (byId == null) {
             throw new BusinessException("鏈壘鍒癓ED灞�");
         }
         poleLightemit.setLightemitId(ledId);
         boolean b = this.updateById(poleLightemit);
         // 缁戝畾鐏潌
 
-        if(b&&poleLightemit.getStreetlightId()!=null){
-            System.out.println("-------------");
+        if (b && poleLightemit.getStreetlightId() != null) {
+            //鍏堝垹闄ょ粦瀹氬叧绯�
+            poleBindingService.unBindPole(null, poleLightemit.getLightemitControlCode());
+            //鍐嶇粦瀹�
+            PoleBindingParam poleBindingParam = new PoleBindingParam();
+            poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
+            poleBindingParam.setDeviceType(1);
+            poleBindingParam.setDeviceName(poleLightemit.getLightemitName());
+            poleBindingService.bindPole(poleLightemit.getStreetlightId(), poleBindingParam);
         }
-       // poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
+        // poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
     }
 
     public boolean deletePoleLightemit(List<Long> ledIds) {
+
+        List<PoleLightemitEntity> poleLightemitEntities = listByIds(ledIds);
+
+        // 鍒犻櫎璁惧缁戝畾
+        if (poleLightemitEntities != null && poleLightemitEntities.size() != 0) {
+            for (PoleLightemitEntity poleLightemitEntitie : poleLightemitEntities) {
+                if (poleLightemitEntitie.getLightemitControlCode() != null) {
+                    //鍒犻櫎缁戝畾鍏崇郴//鍏堝垹闄ょ粦瀹氬叧绯�
+                    poleBindingService.unBindPole(poleLightemitEntitie.getLightemitControlCode());
+                }
+            }
+        }
+        //鍒犻櫎璁惧
         boolean b = removeByIds(ledIds);
-
-        // 缁戝畾鐏潌
-
-//        if(b&&byId.getStreetlightId()!=null){
-//            //鍒犻櫎缁戝畾鍏崇郴
-//            System.out.println("-------------");
-//        }
         return b;
         // poleStreetlightLightemitService.saveStreetlightLightemit(poleLightemit.getLightemitId(),poleLightemit.getStreetlightId());
     }
@@ -512,6 +566,15 @@
     public void setVolume(String lightemitControlCode, Integer volume) {
         lightemitUtils.setVoiume(lightemitControlCode, volume);
     }
+       /*
+    鏍规嵁led灞忕紪鐮佽缃煶閲�
+     */
+
+    @Async("taskExecutor")
+    public void setBrightness(String lightemitControlCode, Integer brightness) {
+        lightemitUtils.setBrightness(lightemitControlCode, brightness);
+    }
+
 
 
 //    public List<PoleLightemitEntity> listOfStreetlight(String streetlightId) {

--
Gitblit v1.9.3