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); } 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); } 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> 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> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -15,6 +15,7 @@ import com.sandu.ximon.admin.param.PoleParam; import com.sandu.ximon.admin.param.PoleStatesParam; 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; @@ -39,6 +40,7 @@ private final PoleService poleService; private MonitorService monitorService; private BroadcastTerminalV2Service broadcastTerminalV2Service; private AirEquipmentService airEquipmentService; @PostMapping("/add") @@ -91,6 +93,7 @@ } //TODO 设备的绑定解绑都要单独重新处理 /** * 灯杆绑定设备 */ @@ -111,6 +114,7 @@ case 4: break; case 5: broadcastTerminalV2Service.updateBingdingState(true, Integer.valueOf(param.getDeviceCode()).intValue()); break; case 6: break; @@ -135,8 +139,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()) { @@ -151,6 +155,7 @@ case 4: break; case 5: broadcastTerminalV2Service.updateBingdingState(false, Integer.valueOf(param.getDeviceCode()).intValue()); break; case 6: break; 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 -> { // 音柱服务器终端ID 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 {//解绑 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:名称不能为空 ximon-admin/src/main/java/com/sandu/ximon/admin/service/MonitorService.java
@@ -85,7 +85,7 @@ } //删除摄像头设备前需要先解绑 poleBindingService.unBindPole(monitor.getDeviceSerial()); poleBindingService.unBindPole(null, monitor.getDeviceSerial()); return removeById(Id); } 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; //直接删除设备不需要灯杆ID 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不正确"); } } } 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()); } } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -327,8 +327,8 @@ * * @return 是否成功 */ public boolean unBindPole(String deviceCode) { return poleBindingService.unBindPole(deviceCode); public boolean unBindPole(Long poleId, String deviceCode) { return poleBindingService.unBindPole(poleId, deviceCode); } ximon-admin/src/main/java/com/sandu/ximon/admin/service/WaterQualityEquipmentService.java
@@ -57,7 +57,7 @@ throw new BusinessException("找不到水质设备"); } //删除摄水质设备前需要先解绑 poleBindingService.unBindPole(waterQualityEquipment.getWaterQualityEquipmentCode()); poleBindingService.unBindPole(null, waterQualityEquipment.getWaterQualityEquipmentCode()); return removeById(Id); }