From 1ebd040037b185d041693bb9116082c2ce69c286 Mon Sep 17 00:00:00 2001
From: zhanzhiqin <895896009@qq.com>
Date: 星期五, 04 三月 2022 14:09:23 +0800
Subject: [PATCH] IP音柱绑定解绑

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java           |   13 ++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java |    2 
 dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java         |   16 +++
 dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml                         |   47 ++++++++++-
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java                  |    4 
 dao/src/main/resources/mapper/BroadcastV2TaskTerminalMapper.xml                           |   38 ---------
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java               |    2 
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleLightemitService.java         |    4 
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java            |    9 +
 ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java   |   42 +++++++++-
 dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastV2TaskTerminalMapper.java           |   13 ---
 11 files changed, 115 insertions(+), 75 deletions(-)

diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java
index 4a54201..18e2dd2 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastTerminalV2EntityMapper.java
@@ -1,13 +1,27 @@
 package com.sandu.ximon.dao.mapper;
 
+
+
+import com.sandu.common.domain.BaseMapper;
+import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
 import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * @Entity com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity
  */
+@Mapper
 public interface BroadcastTerminalV2EntityMapper extends BaseMapper<BroadcastTerminalV2Entity> {
+    List<BroadcastTerminalV2Entity> listAll(@Param("terminalName") String name);
+//
+    @Insert("insert into broadcast_v2_terminal (id,terminal_name,streetlight_id,exist) values (#{id},#{terminalName},#{streetlightId},#{exist})")
+    int insert(BroadcastTerminalV2Entity b);
 
+    List<BroadcastTerminalV2EntityBo> getBroadcastTerminalList(String keyword, Long clientId, int bindingState);
 }
 
 
diff --git a/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastV2TaskTerminalMapper.java b/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastV2TaskTerminalMapper.java
index d68a631..ba517c6 100644
--- a/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastV2TaskTerminalMapper.java
+++ b/dao/src/main/java/com/sandu/ximon/dao/mapper/BroadcastV2TaskTerminalMapper.java
@@ -1,14 +1,8 @@
 package com.sandu.ximon.dao.mapper;
 
-import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
-import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
 import com.sandu.ximon.dao.domain.BroadcastV2TaskTerminal;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import org.apache.ibatis.annotations.Insert;
 import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 /**
  * @Entity com.sandu.ximon.dao.domain.BroadcastV2TaskTerminal
@@ -21,13 +15,6 @@
 
     // boolean insertTaskTerminal(@Param("list") List<BroadcastV2TaskTerminal> list);
     boolean insertTask(Integer taskId,Integer terminalId);
-
-    List<BroadcastTerminalV2Entity> listAll(@Param("terminalName") String name);
-
-    @Insert("insert into broadcast_v2_terminal (id,terminal_name,streetlight_id,exist) values (#{id},#{terminalName},#{streetlightId},#{exist})")
-    void insert(BroadcastTerminalV2Entity b);
-
-    List<BroadcastTerminalV2EntityBo> getBroadcastTerminalList(String keyword, Long clientId, int bindingState);
 
 }
 
diff --git a/dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml b/dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml
index 602fcc3..d2be7a9 100644
--- a/dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml
+++ b/dao/src/main/resources/mapper/BroadcastTerminalV2EntityMapper.xml
@@ -5,15 +5,52 @@
 <mapper namespace="com.sandu.ximon.dao.mapper.BroadcastTerminalV2EntityMapper">
 
     <resultMap id="BaseResultMap" type="com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity">
-            <id property="id" column="id" jdbcType="INTEGER"/>
-            <result property="terminalName" column="terminal_name" jdbcType="VARCHAR"/>
-            <result property="streetlightId" column="streetlight_id" jdbcType="BIGINT"/>
-            <result property="bindStates" column="bind_states" jdbcType="INTEGER"/>
-            <result property="exist" column="exist" jdbcType="INTEGER"/>
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="terminalName" column="terminal_name" jdbcType="VARCHAR"/>
+        <result property="streetlightId" column="streetlight_id" jdbcType="BIGINT"/>
+        <result property="bindStates" column="bind_states" jdbcType="INTEGER"/>
+        <result property="exist" column="exist" jdbcType="INTEGER"/>
     </resultMap>
 
     <sql id="Base_Column_List">
         id,terminal_name,streetlight_id,
         bind_states,exist
     </sql>
+    <select id="listAll" resultType="com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity">
+        SELECT
+        a.*, b.pole_name
+        FROM
+        broadcast_v2_terminal a
+        LEFT JOIN pole b ON a.streetlight_id = b.id
+        WHERE
+        1 = 1
+        <if test="terminalName != null and terminalName != ''">
+            AND a.terminal_name like '%${terminalName}%'
+        </if>
+    </select>
+
+    <select id="getBroadcastTerminalList" resultType="com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo">
+
+        SELECT
+        t1.*, t2.pole_id,
+        t3.pole_name
+        FROM
+        broadcast_v2_terminal t1
+        LEFT JOIN pole_binding t2 ON t1.id = t2.device_code
+        AND t2.device_type = 5
+        LEFT JOIN pole t3 ON t3.id = t2.pole_id
+        <where>
+            <if test="keyword != null and keyword != ''">
+                AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+                OR t1.terminal_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
+            </if>
+            <if test="clientId != null">
+                AND t3.client_id = #{clientId}
+            </if>
+            <if test="bindingState != 2">
+                AND t1.bind_states = #{bindingState}
+            </if>
+        </where>
+    </select>
+
 </mapper>
diff --git a/dao/src/main/resources/mapper/BroadcastV2TaskTerminalMapper.xml b/dao/src/main/resources/mapper/BroadcastV2TaskTerminalMapper.xml
index 9444fcd..2bfc6d1 100644
--- a/dao/src/main/resources/mapper/BroadcastV2TaskTerminalMapper.xml
+++ b/dao/src/main/resources/mapper/BroadcastV2TaskTerminalMapper.xml
@@ -47,42 +47,4 @@
     </delete>
 
 
-
-
-    <select id="listAll" resultType="com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity">
-        SELECT
-        a.*, b.pole_name
-        FROM
-        broadcast_v2_terminal a
-        LEFT JOIN pole b ON a.streetlight_id = b.id
-        WHERE
-        1 = 1
-        <if test="terminalName != null and terminalName != ''">
-            AND a.terminal_name like '%${terminalName}%'
-        </if>
-    </select>
-
-    <select id="getBroadcastTerminalList" resultType="com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo">
-        SELECT
-        t1.*, t2.pole_id,
-        t3.pole_name
-        FROM
-        broadcast_v2_terminal t1
-        LEFT JOIN pole_binding t2 ON t1.id = t2.device_code
-        AND t2.device_type = 5
-        LEFT JOIN pole t3 ON t3.id = t2.pole_id
-        <where>
-            <if test="keyword != null and keyword != ''">
-                AND t3.pole_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
-                OR t1.terminal_name LIKE CONCAT(CONCAT('%', #{keyword}), '%')
-            </if>
-            <if test="clientId != null">
-                AND t3.client_id = #{clientId}
-            </if>
-            <if test="bindingState != 2">
-                AND t1.bind_states = #{bindingState}
-            </if>
-        </where>
-    </select>
-
 </mapper>
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
index d6cf828..0489617 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -14,6 +14,7 @@
 import com.sandu.ximon.admin.param.PoleBindingParam;
 import com.sandu.ximon.admin.param.PoleParam;
 import com.sandu.ximon.admin.service.AirEquipmentService;
+import com.sandu.ximon.admin.service.BroadcastTerminalV2Service;
 import com.sandu.ximon.admin.service.MonitorService;
 import com.sandu.ximon.admin.service.PoleService;
 import com.sandu.ximon.dao.domain.Pole;
@@ -38,6 +39,7 @@
 
     private final PoleService poleService;
     private MonitorService monitorService;
+    private BroadcastTerminalV2Service broadcastTerminalV2Service;
     private AirEquipmentService airEquipmentService;
 
     @PostMapping("/add")
@@ -97,6 +99,7 @@
     }
 
 //TODO  璁惧鐨勭粦瀹氳В缁戦兘瑕佸崟鐙噸鏂板鐞�
+
     /**
      * 鐏潌缁戝畾璁惧
      */
@@ -117,6 +120,7 @@
                 case 4:
                     break;
                 case 5:
+                    broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue());
                     break;
                 case 6:
                     break;
@@ -141,8 +145,8 @@
      * 鐏潌缁戝畾璁惧
      */
     @PostMapping("/unBind/{poleId}")
-    public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody  @Validated PoleBindingParam param) {
-        boolean result = poleService.unBindPole(param.getDeviceCode());
+    public ResponseVO<Object> unBindPole(@PathVariable Long poleId, @RequestBody @Validated PoleBindingParam param) {
+        boolean result = poleService.unBindPole(poleId, param.getDeviceCode());
         if (result) {
             //璁惧绫诲瀷锛�0璺伅锛�1led灞忓箷锛�2鍏呯數妗╋紝3澶ф皵鐩戞祴锛�4姘磋川鐩戞祴锛�5ip闊虫煴锛�6lcd骞垮憡鏈猴紝7鎽勫儚澶达紝8鏉嗕綋鍊炬祴锛�9涓�閿晳鍔�
             switch (param.getDeviceType()) {
@@ -157,6 +161,7 @@
                 case 4:
                     break;
                 case 5:
+                    broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue());
                     break;
                 case 6:
                     break;
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java
index 53a458b..13c4d57 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/BroadcastTerminalV2Service.java
@@ -1,6 +1,7 @@
 package com.sandu.ximon.admin.service;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.pagehelper.PageHelper;
 import com.sandu.common.object.BaseConditionVO;
 import com.sandu.common.service.impl.BaseServiceImpl;
@@ -11,6 +12,8 @@
 import com.sandu.ximon.dao.bo.BroadcastTerminalV2EntityBo;
 import com.sandu.ximon.dao.domain.BroadcastTerminalV2Entity;
 import com.sandu.ximon.dao.domain.BroadcastV2TaskTerminal;
+import com.sandu.ximon.dao.domain.Monitor;
+import com.sandu.ximon.dao.mapper.BroadcastTerminalV2EntityMapper;
 import com.sandu.ximon.dao.mapper.BroadcastV2TaskTerminalMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -19,21 +22,24 @@
 import java.util.List;
 
 @Service
-public class BroadcastTerminalV2Service extends BaseServiceImpl<BroadcastV2TaskTerminalMapper, BroadcastV2TaskTerminal> {
+public class BroadcastTerminalV2Service extends BaseServiceImpl<BroadcastTerminalV2EntityMapper, BroadcastTerminalV2Entity> {
     //    private final BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalDao;
 //    @Autowired
 //    private SysUserRoleService sysUserRoleService;
 //    @Autowired
 //    private SysUserCompanyService sysUserCompanyService;
+//    @Autowired
+//    private BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalMapper;
     @Autowired
-    private BroadcastV2TaskTerminalMapper broadcastV2TaskTerminalMapper;
+    private BroadcastTerminalV2EntityMapper broadcastTerminalV2EntityMapper;
 
     /**
      * 鍚屾缁堢
      */
     public void synchTerminal() {
-        List<BroadcastTerminalV2Entity> server = broadcastV2TaskTerminalMapper.listAll("");
+        List<BroadcastTerminalV2Entity> server = broadcastTerminalV2EntityMapper.listAll("");
         List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
+        System.out.println(list);
         list.stream().forEach(item -> {
             //  闊虫煴鏈嶅姟鍣ㄧ粓绔疘D
             Integer id = item.getId();
@@ -52,7 +58,8 @@
                 b.setTerminalName(item.getName());
                 b.setStreetlightId(0L);
                 b.setExist(1);
-                broadcastV2TaskTerminalMapper.insert(b);
+//                save(b);
+                broadcastTerminalV2EntityMapper.insert(b);
             }
         });
     }
@@ -74,9 +81,9 @@
         if (broadcastTerminalV2Param.getBindingState() == null || 2 == broadcastTerminalV2Param.getBindingState()) {
             //鍏ㄩ儴
             int bindingState = 2;
-            broadcastTerminalV2EntityBos = broadcastV2TaskTerminalMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, bindingState);
+            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, bindingState);
         } else {
-            broadcastTerminalV2EntityBos = broadcastV2TaskTerminalMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, broadcastTerminalV2Param.getBindingState());
+            broadcastTerminalV2EntityBos = broadcastTerminalV2EntityMapper.getBroadcastTerminalList(broadcastTerminalV2Param.getKeyword(), clientId, broadcastTerminalV2Param.getBindingState());
         }
 
         List<TerminalVO> list = TerminalAPIUtils.getTerminalList();
@@ -110,6 +117,29 @@
     }
 
     /**
+     * 淇敼璁惧缁戝畾鐘舵��
+     *
+     * @param flag true涓虹粦瀹�  false 涓鸿В缁�
+     */
+    public void updateBingdingState(boolean flag, int deviceCode) {
+        if (flag) {//缁戝畾
+            BroadcastTerminalV2Entity broadcastTerminalV2Entity = getOne(Wrappers.lambdaQuery(BroadcastTerminalV2Entity.class).eq(BroadcastTerminalV2Entity::getId, deviceCode));
+            if (broadcastTerminalV2Entity == null) {
+                return;
+            }
+            broadcastTerminalV2Entity.setBindStates(1);
+            updateById(broadcastTerminalV2Entity);
+        } else {//瑙g粦
+            BroadcastTerminalV2Entity broadcastTerminalV2Entity = getOne(Wrappers.lambdaQuery(BroadcastTerminalV2Entity.class).eq(BroadcastTerminalV2Entity::getId, deviceCode));
+            if (broadcastTerminalV2Entity == null) {
+                return;
+            }
+            broadcastTerminalV2Entity.setBindStates(0);
+            updateById(broadcastTerminalV2Entity);
+        }
+    }
+
+    /**
      * 淇敼缁堢
      * @param params
      * @return 0:鎴愬姛 1:鍚嶇О涓嶈兘涓虹┖
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
index 706f23f..ebca42b 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -85,7 +85,7 @@
         }
 
         //鍒犻櫎鎽勫儚澶磋澶囧墠闇�瑕佸厛瑙g粦
-        poleBindingService.unBindPole(monitor.getDeviceSerial());
+        poleBindingService.unBindPole(null, monitor.getDeviceSerial());
         return removeById(Id);
     }
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
index 3fc0a04..acef4b0 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleBindingService.java
@@ -50,16 +50,21 @@
      *
      * @param deviceCode
      */
-    public boolean unBindPole(String deviceCode) {
+    public boolean unBindPole(Long poleId, String deviceCode) {
         if (deviceCode == null) {
             throw new BusinessException("璁惧缂栧彿涓嶈兘涓虹┖");
         }
-
-        PoleBinding one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode));
+        PoleBinding one;
+        //鐩存帴鍒犻櫎璁惧涓嶉渶瑕佺伅鏉咺D
+        if (poleId == null) {
+            one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode));
+        } else {
+            one = getOne(Wrappers.lambdaQuery(PoleBinding.class).eq(PoleBinding::getDeviceCode, deviceCode).eq(PoleBinding::getPoleId, poleId));
+        }
         if (one != null) {
             return removeById(one.getId());
         } else {
-            throw new BusinessException("璁惧涓嶅瓨鍦ㄧ粦瀹氭儏鍐�");
+            throw new BusinessException("璁惧涓嶅瓨鍦ㄧ粦瀹氭儏鍐垫垨鐏潌ID涓嶆纭�");
         }
     }
 }
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 fc94add..bb365cd 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
@@ -231,7 +231,7 @@
 
         if (b && poleLightemit.getStreetlightId() != null) {
             //鍏堝垹闄ょ粦瀹氬叧绯�
-            poleBindingService.unBindPole(poleLightemit.getLightemitControlCode());
+            poleBindingService.unBindPole(null, poleLightemit.getLightemitControlCode());
             //鍐嶇粦瀹�
             PoleBindingParam poleBindingParam = new PoleBindingParam();
             poleBindingParam.setDeviceCode(poleLightemit.getLightemitControlCode());
@@ -251,7 +251,7 @@
             for (PoleLightemitEntity poleLightemitEntitie : poleLightemitEntities) {
                 if (poleLightemitEntitie.getLightemitControlCode() != null) {
                     //鍒犻櫎缁戝畾鍏崇郴//鍏堝垹闄ょ粦瀹氬叧绯�
-                    poleBindingService.unBindPole(poleLightemitEntitie.getLightemitControlCode());
+                    poleBindingService.unBindPole(null, poleLightemitEntitie.getLightemitControlCode());
                 }
             }
         }
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
index b64c155..f77a6ec 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -161,8 +161,8 @@
      *
      * @return 鏄惁鎴愬姛
      */
-    public boolean unBindPole(String deviceCode) {
-        return poleBindingService.unBindPole(deviceCode);
+    public boolean unBindPole(Long poleId, String deviceCode) {
+        return poleBindingService.unBindPole(poleId, deviceCode);
     }
 
 
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
index e08ac9e..80ad2e7 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
@@ -57,7 +57,7 @@
             throw new BusinessException("鎵句笉鍒版按璐ㄨ澶�");
         }
         //鍒犻櫎鎽勬按璐ㄨ澶囧墠闇�瑕佸厛瑙g粦
-        poleBindingService.unBindPole(waterQualityEquipment.getWaterQualityEquipmentCode());
+        poleBindingService.unBindPole(null, waterQualityEquipment.getWaterQualityEquipmentCode());
 
         return removeById(Id);
     }

--
Gitblit v1.9.3