Commit 0738be4989c0c0631e29a40b9f520ea3d1305219

Authored by 陈星宇
1 parent f496bb1c

fix: 告警联系人回显组织为name

@@ -3,6 +3,7 @@ package org.thingsboard.server.controller.yunteng; @@ -3,6 +3,7 @@ package org.thingsboard.server.controller.yunteng;
3 import io.swagger.annotations.Api; 3 import io.swagger.annotations.Api;
4 import io.swagger.annotations.ApiOperation; 4 import io.swagger.annotations.ApiOperation;
5 import lombok.RequiredArgsConstructor; 5 import lombok.RequiredArgsConstructor;
  6 +import org.apache.commons.lang3.StringUtils;
6 import org.springframework.http.HttpStatus; 7 import org.springframework.http.HttpStatus;
7 import org.springframework.http.ResponseEntity; 8 import org.springframework.http.ResponseEntity;
8 import org.springframework.validation.annotation.Validated; 9 import org.springframework.validation.annotation.Validated;
@@ -67,15 +68,16 @@ public class YtAlarmContactController extends BaseController { @@ -67,15 +68,16 @@ public class YtAlarmContactController extends BaseController {
67 @RequestParam(PAGE) int page, 68 @RequestParam(PAGE) int page,
68 @RequestParam(value = "username", required = false) String username, 69 @RequestParam(value = "username", required = false) String username,
69 @RequestParam(value = "organizationId", required = false) String organizationId, 70 @RequestParam(value = "organizationId", required = false) String organizationId,
70 - @RequestParam(value = CREATE_TIME, required = false) String createtime) { 71 + @RequestParam(value = CREATE_TIME, required = false) String createtime) throws ThingsboardException {
71 HashMap<String, Object> queryMap = new HashMap<>(); 72 HashMap<String, Object> queryMap = new HashMap<>();
72 queryMap.put(PAGE_SIZE, pageSize); 73 queryMap.put(PAGE_SIZE, pageSize);
73 queryMap.put(PAGE, page); 74 queryMap.put(PAGE, page);
74 queryMap.put("username",username); 75 queryMap.put("username",username);
75 - queryMap.put("organizationId",organizationId); 76 + if(!StringUtils.isEmpty(organizationId)){
  77 + queryMap.put("organizationId", organizationId);
  78 + }
76 queryMap.put(CREATE_TIME, createtime); 79 queryMap.put(CREATE_TIME, createtime);
77 -  
78 - return alarmService.page(queryMap); 80 + return alarmService.page(getCurrentUser().getCurrentTenantId(),queryMap);
79 } 81 }
80 82
81 @ApiOperation(value = "删除") 83 @ApiOperation(value = "删除")
@@ -46,5 +46,8 @@ public class AlarmContactDTO extends TenantDTO { @@ -46,5 +46,8 @@ public class AlarmContactDTO extends TenantDTO {
46 @ApiModelProperty(value = "添加人") 46 @ApiModelProperty(value = "添加人")
47 private String addPeople; 47 private String addPeople;
48 48
  49 + @ApiModelProperty(value="组织对象")
  50 + private OrganizationDTO organizationDTO;
  51 +
49 52
50 } 53 }
@@ -7,15 +7,19 @@ import lombok.RequiredArgsConstructor; @@ -7,15 +7,19 @@ import lombok.RequiredArgsConstructor;
7 import org.apache.commons.lang3.StringUtils; 7 import org.apache.commons.lang3.StringUtils;
8 import org.springframework.stereotype.Service; 8 import org.springframework.stereotype.Service;
9 import org.springframework.transaction.annotation.Transactional; 9 import org.springframework.transaction.annotation.Transactional;
  10 +import org.thingsboard.server.common.data.yunteng.constant.FastIotConstants;
10 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException; 11 import org.thingsboard.server.common.data.yunteng.core.exception.YtDataValidationException;
11 import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO; 12 import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO;
  13 +import org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO;
12 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils; 14 import org.thingsboard.server.common.data.yunteng.utils.ReflectUtils;
13 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData; 15 import org.thingsboard.server.common.data.yunteng.utils.tools.YtPageData;
14 import org.thingsboard.server.dao.yunteng.entities.AlarmContact; 16 import org.thingsboard.server.dao.yunteng.entities.AlarmContact;
15 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper; 17 import org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper;
  18 +import org.thingsboard.server.dao.yunteng.mapper.OrganizationMapper;
16 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService; 19 import org.thingsboard.server.dao.yunteng.service.AbstractBaseService;
17 import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService; 20 import org.thingsboard.server.dao.yunteng.service.YtAlarmContactService;
18 21
  22 +import java.util.ArrayList;
19 import java.util.List; 23 import java.util.List;
20 import java.util.Map; 24 import java.util.Map;
21 import java.util.Set; 25 import java.util.Set;
@@ -28,6 +32,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -28,6 +32,7 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
28 /** mapper注入 自带方法加入,继承的baseMapper */ 32 /** mapper注入 自带方法加入,继承的baseMapper */
29 private final AlarmContactMapper alarmContactMapper; 33 private final AlarmContactMapper alarmContactMapper;
30 34
  35 + private final OrganizationMapper ytOrganizationMapper;
31 /** 36 /**
32 * 查询全部的告警联系人 37 * 查询全部的告警联系人
33 * 38 *
@@ -121,29 +126,30 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM @@ -121,29 +126,30 @@ public class YtAlarmContactServiceImpl extends AbstractBaseService<AlarmContactM
121 } 126 }
122 } 127 }
123 128
124 -  
125 -  
126 /** 129 /**
127 * @param queryMap 查询集合 130 * @param queryMap 查询集合
128 * @return PageData 131 * @return PageData
129 */ 132 */
130 @Override 133 @Override
131 @Transactional 134 @Transactional
132 - public YtPageData<AlarmContactDTO> page(Map<String, Object> queryMap) { 135 + public YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap) {
133 // 查询分页,加入条模糊条件查询 136 // 查询分页,加入条模糊条件查询
134 - IPage<AlarmContact> iPage =  
135 - alarmContactMapper.selectPage(  
136 - getPage(queryMap, "create_time", false),  
137 - new QueryWrapper<AlarmContact>()  
138 - .lambda()  
139 - .like(  
140 - StringUtils.isNoneBlank((String) queryMap.get("username")),  
141 - AlarmContact::getUsername,  
142 - queryMap.get("username"))  
143 - .eq(  
144 - StringUtils.isNoneBlank((String) queryMap.get("organizationId")),  
145 - AlarmContact::getOrganizationId,  
146 - queryMap.get("organizationId")));  
147 - return getPageData(iPage, AlarmContactDTO.class); 137 + queryMap.put("tenantId", tenantId);
  138 + String organizationId= (String) queryMap.get("organizationId");
  139 + //传入的组织id不为空
  140 + if (!StringUtils.isEmpty(organizationId)){
  141 + List<String> organizationIds= new ArrayList<>();
  142 + organizationIds.add(organizationId);
  143 + //查询该组织的所有子类
  144 + List<OrganizationDTO> organizationDTOS=ytOrganizationMapper.findOrganizationTreeList(tenantId,organizationIds);
  145 + List<String> queryOrganizationIds = new ArrayList<>();
  146 + organizationDTOS.forEach(item->{
  147 + queryOrganizationIds.add(item.getId());
  148 + });
  149 + queryMap.put("organizationIds",queryOrganizationIds);
  150 + }
  151 + IPage<AlarmContact> page= getPage(queryMap, FastIotConstants.DefaultOrder.CREATE_TIME,false);
  152 + IPage<AlarmContactDTO> pageDto= baseMapper.getAlarmPage(page,queryMap);
  153 + return getPageData(pageDto, AlarmContactDTO.class);
148 } 154 }
149 } 155 }
1 package org.thingsboard.server.dao.yunteng.mapper; 1 package org.thingsboard.server.dao.yunteng.mapper;
2 2
3 import com.baomidou.mybatisplus.core.mapper.BaseMapper; 3 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  4 +import com.baomidou.mybatisplus.core.metadata.IPage;
4 import org.apache.ibatis.annotations.Mapper; 5 import org.apache.ibatis.annotations.Mapper;
  6 +import org.apache.ibatis.annotations.Param;
  7 +import org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO;
5 import org.thingsboard.server.dao.yunteng.entities.AlarmContact; 8 import org.thingsboard.server.dao.yunteng.entities.AlarmContact;
6 9
  10 +import java.util.Map;
  11 +
7 /** @Description 告警联系人持久化数据层 @Author cxy @Date 2021/11/2 11:52 */ 12 /** @Description 告警联系人持久化数据层 @Author cxy @Date 2021/11/2 11:52 */
8 @Mapper 13 @Mapper
9 -public interface AlarmContactMapper extends BaseMapper<AlarmContact> {} 14 +public interface AlarmContactMapper extends BaseMapper<AlarmContact> {
  15 +
  16 + IPage<AlarmContactDTO> getAlarmPage(
  17 + IPage<?> page, @Param("queryMap") Map<String, Object> queryMap);
  18 +
  19 +}
@@ -53,6 +53,6 @@ public interface YtAlarmContactService { @@ -53,6 +53,6 @@ public interface YtAlarmContactService {
53 * @param queryMap 查询集合 53 * @param queryMap 查询集合
54 * @return PageData 54 * @return PageData
55 */ 55 */
56 - YtPageData<AlarmContactDTO> page(Map<String, Object> queryMap); 56 + YtPageData<AlarmContactDTO> page(String tenantId,Map<String, Object> queryMap);
57 57
58 } 58 }
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 3
4 -<mapper namespace="com.codeez.mapper.AlarmContactMapper">  
5 - <resultMap id="alarmContactMap" type="org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO" > 4 +<mapper namespace="org.thingsboard.server.dao.yunteng.mapper.AlarmContactMapper">
  5 + <resultMap id="alarmContactMap" type="org.thingsboard.server.common.data.yunteng.dto.AlarmContactDTO">
6 <result property="id" column="id"/> 6 <result property="id" column="id"/>
7 <result property="username" column="username"/> 7 <result property="username" column="username"/>
8 <result property="organizationId" column="organization_id"/> 8 <result property="organizationId" column="organization_id"/>
@@ -15,7 +15,35 @@ @@ -15,7 +15,35 @@
15 <result property="updateTime" column="update_time"/> 15 <result property="updateTime" column="update_time"/>
16 <result property="createTime" column="create_time"/> 16 <result property="createTime" column="create_time"/>
17 <result property="creator" column="creator"/> 17 <result property="creator" column="creator"/>
18 - 18 + <result property="tenantId" column="tenant_id"/>
  19 + <result property="updater" column="updater"/>
  20 + <association property="organizationDTO"
  21 + javaType="org.thingsboard.server.common.data.yunteng.dto.OrganizationDTO">
  22 + <result property="name" column="organization_name"/>
  23 + </association>
19 </resultMap> 24 </resultMap>
20 - 25 + <sql id="columns">
  26 + a.id,a.username,a.organization_id,a.phone,a.email,a.wechat,a.dingtalk,a.remark,a.add_people,a.update_time,
  27 + a.create_time,a.creator,a.tenant_id,a.updater,io.name AS organization_name
  28 + </sql>
  29 + <select id="getAlarmPage" resultMap="alarmContactMap">
  30 + SELECT
  31 + <include refid="columns"/>
  32 + FROM iotfs_alarm_contact a
  33 + LEFT JOIN iotfs_organization io ON io.id = a.organization_id
  34 + <where>
  35 + <if test="queryMap.tenantId !=null and queryMap.tenantId !=''">
  36 + AND a.tenant_id = #{queryMap.tenantId}
  37 + </if>
  38 + <if test="queryMap.name !=null and queryMap.name !=''">
  39 + AND a.username LIKE concat('%',#{queryMap.username}::TEXT,'%')
  40 + </if>
  41 + <if test="queryMap.organizationIds !=null">
  42 + AND a.organization_id IN
  43 + <foreach collection="queryMap.organizationIds" item="organizationId" open="(" separator="," close=")">
  44 + #{organizationId}
  45 + </foreach>
  46 + </if>
  47 + </where>
  48 + </select>
21 </mapper> 49 </mapper>