Commit 66247ea0705b14b7c80daed60b52434068a25a06

Authored by 陈威
1 parent d0ac4752
Exists in dev

1:点火通知

zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java 0 → 100644
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
  1 +package com.chinagas.modules.schsf.domain.notice;
  2 +
  3 +import com.chinagas.modules.schsf.domain.McIgnition;
  4 +
  5 +import java.time.LocalDateTime;
  6 +import java.time.format.DateTimeFormatter;
  7 +
  8 +public class McIgnitionTemplate {
  9 + private McIgnition mcIgnition;
  10 +
  11 + public McIgnitionTemplate(McIgnition mcIgnition) {
  12 + this.mcIgnition = mcIgnition;
  13 + }
  14 +
  15 + public String getNoticemarkdown() {
  16 + return "###### 市场化收费-点火通知 \n " +
  17 + "用户信息:" + mcIgnition.getUserName()+"(" +mcIgnition.getUserPhone()+ ") \n " +
  18 + "村/小区:" + mcIgnition.getVlgOrCmty() + " \n " +
  19 + "当前状态:" + mcIgnition.getStatusName() + "(客服) \n " +
  20 + "维护操作:点击链接进入维护页面:[https://schsf.chinagasholdings.com](https://schsf.chinagasholdings.com) \n " +
  21 + "---" +
  22 + " \n " +
  23 + "通知日期: " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm")) + " \n " +
  24 + "温馨提醒: 请按时完成维护,保障业务顺畅。 \n ";
  25 + }
  26 +
  27 +}
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/mapper/McIgnitionMapper.java
1 package com.chinagas.modules.schsf.mapper; 1 package com.chinagas.modules.schsf.mapper;
2 2
3 import com.chinagas.modules.schsf.domain.McIgnition; 3 import com.chinagas.modules.schsf.domain.McIgnition;
  4 +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto;
  5 +import org.apache.ibatis.annotations.Param;
4 6
5 import java.util.List; 7 import java.util.List;
6 8
@@ -62,4 +64,5 @@ public interface McIgnitionMapper @@ -62,4 +64,5 @@ public interface McIgnitionMapper
62 64
63 List<McIgnition> selectMcIgnitionParamList(McIgnition mcIgnition); 65 List<McIgnition> selectMcIgnitionParamList(McIgnition mcIgnition);
64 66
  67 + List<NodeUsersDto> selectMcIgnitionNodeUserList(@Param("id")String id, @Param("nodeType") String nodeType);
65 } 68 }
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/IMcIgnitionService.java
@@ -2,6 +2,7 @@ package com.chinagas.modules.schsf.service; @@ -2,6 +2,7 @@ package com.chinagas.modules.schsf.service;
2 2
3 import com.chinagas.modules.schsf.domain.McIgnition; 3 import com.chinagas.modules.schsf.domain.McIgnition;
4 import com.chinagas.modules.schsf.domain.McVisit; 4 import com.chinagas.modules.schsf.domain.McVisit;
  5 +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto;
5 import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; 6 import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo;
6 7
7 import java.util.List; 8 import java.util.List;
@@ -78,4 +79,14 @@ public interface IMcIgnitionService @@ -78,4 +79,14 @@ public interface IMcIgnitionService
78 int updateMcIgnitionMaintenance(McIgnitionMaintenanceVo mcIgnitionMaintenanceVo) throws CloneNotSupportedException; 79 int updateMcIgnitionMaintenance(McIgnitionMaintenanceVo mcIgnitionMaintenanceVo) throws CloneNotSupportedException;
79 80
80 void updateMcIgnitionCancel(Long visitId) throws CloneNotSupportedException; 81 void updateMcIgnitionCancel(Long visitId) throws CloneNotSupportedException;
  82 +
  83 + /**
  84 + * 节点处理人
  85 + *
  86 + * @param id
  87 + * @return
  88 + */
  89 + List<NodeUsersDto> selectMcIgnitionNodeUserList(Long id);
  90 +
  91 +
81 } 92 }
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/service/impl/McIgnitionServiceImpl.java
1 package com.chinagas.modules.schsf.service.impl; 1 package com.chinagas.modules.schsf.service.impl;
2 2
  3 +import cn.hutool.core.bean.BeanUtil;
3 import com.alibaba.fastjson2.JSON; 4 import com.alibaba.fastjson2.JSON;
  5 +import com.chinagas.common.core.exceptions.ServiceException;
4 import com.chinagas.common.core.utils.DateUtils; 6 import com.chinagas.common.core.utils.DateUtils;
5 import com.chinagas.common.core.utils.StringUtils; 7 import com.chinagas.common.core.utils.StringUtils;
6 import com.chinagas.common.datascope.annotation.DataScope; 8 import com.chinagas.common.datascope.annotation.DataScope;
7 import com.chinagas.common.security.utils.SecurityUtils; 9 import com.chinagas.common.security.utils.SecurityUtils;
8 import com.chinagas.modules.schsf.domain.McIgnition; 10 import com.chinagas.modules.schsf.domain.McIgnition;
9 import com.chinagas.modules.schsf.domain.McVisit; 11 import com.chinagas.modules.schsf.domain.McVisit;
  12 +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto;
  13 +import com.chinagas.modules.schsf.domain.notice.McIgnitionTemplate;
10 import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; 14 import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo;
11 import com.chinagas.modules.schsf.enums.IgnitionStatusEnums; 15 import com.chinagas.modules.schsf.enums.IgnitionStatusEnums;
12 import com.chinagas.modules.schsf.enums.YesNoEnums; 16 import com.chinagas.modules.schsf.enums.YesNoEnums;
13 import com.chinagas.modules.schsf.mapper.McIgnitionMapper; 17 import com.chinagas.modules.schsf.mapper.McIgnitionMapper;
  18 +import com.chinagas.modules.schsf.service.DingtalkService;
14 import com.chinagas.modules.schsf.service.IMcIgnitionService; 19 import com.chinagas.modules.schsf.service.IMcIgnitionService;
15 import com.chinagas.modules.schsf.service.IMcOperationLogService; 20 import com.chinagas.modules.schsf.service.IMcOperationLogService;
  21 +import lombok.extern.slf4j.Slf4j;
16 import org.springframework.beans.factory.annotation.Autowired; 22 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.stereotype.Service; 23 import org.springframework.stereotype.Service;
18 import org.springframework.transaction.annotation.Transactional; 24 import org.springframework.transaction.annotation.Transactional;
19 25
20 import java.time.LocalDateTime; 26 import java.time.LocalDateTime;
  27 +import java.util.Collections;
21 import java.util.List; 28 import java.util.List;
  29 +import java.util.stream.Collectors;
22 30
23 /** 31 /**
24 * 点火维护Service业务层处理 32 * 点火维护Service业务层处理
@@ -26,6 +34,7 @@ import java.util.List; @@ -26,6 +34,7 @@ import java.util.List;
26 * @author cw 34 * @author cw
27 * @date 2024-05-22 35 * @date 2024-05-22
28 */ 36 */
  37 +@Slf4j
29 @Transactional 38 @Transactional
30 @Service 39 @Service
31 public class McIgnitionServiceImpl implements IMcIgnitionService { 40 public class McIgnitionServiceImpl implements IMcIgnitionService {
@@ -33,6 +42,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -33,6 +42,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
33 private McIgnitionMapper mcIgnitionMapper; 42 private McIgnitionMapper mcIgnitionMapper;
34 @Autowired 43 @Autowired
35 private IMcOperationLogService iMcOperationLogService; 44 private IMcOperationLogService iMcOperationLogService;
  45 + @Autowired
  46 + private DingtalkService dingtalkService;
36 47
37 /** 48 /**
38 * 根据mcVisit插入mcIgnition 49 * 根据mcVisit插入mcIgnition
@@ -51,8 +62,6 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -51,8 +62,6 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
51 String userAccount = SecurityUtils.getUsername(); 62 String userAccount = SecurityUtils.getUsername();
52 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); 63 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
53 64
54 -  
55 -  
56 McIgnition mcIgnition = new McIgnition(); 65 McIgnition mcIgnition = new McIgnition();
57 mcIgnition.setRegionName(mcVisit.getRegionName()); 66 mcIgnition.setRegionName(mcVisit.getRegionName());
58 mcIgnition.setGroupName(mcVisit.getGroupName()); 67 mcIgnition.setGroupName(mcVisit.getGroupName());
@@ -90,6 +99,9 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -90,6 +99,9 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
90 //1:添加记录 99 //1:添加记录
91 iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition.getId(), "schsf:mcVisit:ticket_submitAuditTwo", 100 iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition.getId(), "schsf:mcVisit:ticket_submitAuditTwo",
92 "发起", "1", "导入基础数据-户数", null, JSON.toJSONString(mcIgnition)); 101 "发起", "1", "导入基础数据-户数", null, JSON.toJSONString(mcIgnition));
  102 + if (i > 0) {
  103 + this.sendMcIgnitionNotification(mcIgnition.getId());
  104 + }
93 return i; 105 return i;
94 } 106 }
95 107
@@ -164,6 +176,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -164,6 +176,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
164 176
165 /** 177 /**
166 * 点火维护 178 * 点火维护
  179 + *
167 * @param mcIgnition 180 * @param mcIgnition
168 * @return 181 * @return
169 */ 182 */
@@ -175,7 +188,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -175,7 +188,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
175 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); 188 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
176 //老数据 189 //老数据
177 McIgnition mcIgnition_old = mcIgnitionMapper.selectMcIgnitionById(mcIgnitionMaintenanceVo.getId()); 190 McIgnition mcIgnition_old = mcIgnitionMapper.selectMcIgnitionById(mcIgnitionMaintenanceVo.getId());
178 - if (mcIgnition_old==null){ 191 + if (mcIgnition_old == null) {
179 throw new RuntimeException("被审核信息不存在!"); 192 throw new RuntimeException("被审核信息不存在!");
180 } 193 }
181 //新数据 194 //新数据
@@ -185,8 +198,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -185,8 +198,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
185 mcIgnition_new.setnIgnRsn(mcIgnitionMaintenanceVo.getnIgnRsn()); 198 mcIgnition_new.setnIgnRsn(mcIgnitionMaintenanceVo.getnIgnRsn());
186 mcIgnition_new.setUpdateBy(userId.toString()); 199 mcIgnition_new.setUpdateBy(userId.toString());
187 mcIgnition_new.setUpdateTime(time); 200 mcIgnition_new.setUpdateTime(time);
188 - mcIgnition_new.setStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getCode():IgnitionStatusEnums.MAINTENANCE_NO.getCode());  
189 - mcIgnition_new.setStatusName(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y")?IgnitionStatusEnums.MAINTENANCE_YES.getInfo():IgnitionStatusEnums.MAINTENANCE_NO.getInfo()); 201 + mcIgnition_new.setStatusCode(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y") ? IgnitionStatusEnums.MAINTENANCE_YES.getCode() : IgnitionStatusEnums.MAINTENANCE_NO.getCode());
  202 + mcIgnition_new.setStatusName(mcIgnitionMaintenanceVo.getIgnCnfStatusCode().equals("Y") ? IgnitionStatusEnums.MAINTENANCE_YES.getInfo() : IgnitionStatusEnums.MAINTENANCE_NO.getInfo());
190 mcIgnition_new.setCnfPersonId(userId); 203 mcIgnition_new.setCnfPersonId(userId);
191 mcIgnition_new.setCnfPersonAccount(userAccount); 204 mcIgnition_new.setCnfPersonAccount(userAccount);
192 mcIgnition_new.setCnfPersonName(userName); 205 mcIgnition_new.setCnfPersonName(userName);
@@ -200,6 +213,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -200,6 +213,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
200 213
201 /** 214 /**
202 * 作废 215 * 作废
  216 + *
203 * @param visitId 217 * @param visitId
204 */ 218 */
205 @Override 219 @Override
@@ -209,10 +223,10 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -209,10 +223,10 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
209 String userAccount = SecurityUtils.getUsername(); 223 String userAccount = SecurityUtils.getUsername();
210 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); 224 String userName = SecurityUtils.getLoginUser().getSysUser().getNickName();
211 225
212 - McIgnition mcIgnition= new McIgnition(); 226 + McIgnition mcIgnition = new McIgnition();
213 mcIgnition.setVisitId(visitId); 227 mcIgnition.setVisitId(visitId);
214 List<McIgnition> mcIgnitions = mcIgnitionMapper.selectMcIgnitionList(mcIgnition); 228 List<McIgnition> mcIgnitions = mcIgnitionMapper.selectMcIgnitionList(mcIgnition);
215 - if (mcIgnitions !=null && mcIgnitions.size()>0){ 229 + if (mcIgnitions != null && mcIgnitions.size() > 0) {
216 for (McIgnition mcIgnition_old : mcIgnitions) { 230 for (McIgnition mcIgnition_old : mcIgnitions) {
217 //新数据 231 //新数据
218 McIgnition mcIgnition_new = mcIgnition_old.clone(); 232 McIgnition mcIgnition_new = mcIgnition_old.clone();
@@ -227,4 +241,42 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { @@ -227,4 +241,42 @@ public class McIgnitionServiceImpl implements IMcIgnitionService {
227 } 241 }
228 } 242 }
229 } 243 }
  244 +
  245 + /**
  246 + * 点火节点处理人
  247 + *
  248 + * @param id
  249 + * @return
  250 + */
  251 + @Override
  252 + public List<NodeUsersDto> selectMcIgnitionNodeUserList(Long id) {
  253 + McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id);
  254 + if (mcIgnition == null) {
  255 + throw new ServiceException("点火信息不存在!");
  256 + }
  257 + //待维护
  258 + if (mcIgnition.getStatusCode().equals(IgnitionStatusEnums.MAINTENANCE.getCode())) {
  259 + return mcIgnitionMapper.selectMcIgnitionNodeUserList(String.valueOf(id), "schsf:mcIgnition:maintenance");
  260 + }
  261 + return Collections.emptyList();
  262 + }
  263 +
  264 + /**
  265 + * 发送钉钉通知
  266 + *
  267 + * @param id
  268 + */
  269 + private void sendMcIgnitionNotification(Long id) {
  270 + McIgnition mcIgnition = mcIgnitionMapper.selectMcIgnitionById(id);
  271 + log.info("点火维护-钉钉通知,点火信息对象:{}", mcIgnition);
  272 + if (BeanUtil.isEmpty(mcIgnition)) {
  273 + throw new ServiceException("未查询到记录");
  274 + }
  275 + //发送通知
  276 + List<NodeUsersDto> mcVisitNodeUsersDtos = this.selectMcIgnitionNodeUserList(id);
  277 + if (mcVisitNodeUsersDtos != null) {
  278 + List<String> userIds = mcVisitNodeUsersDtos.stream().filter(mcVisitNodeUsersDto -> StringUtils.isNotEmpty(mcVisitNodeUsersDto.getDingTalkUserId())).map(NodeUsersDto::getDingTalkUserId).collect(Collectors.toList());
  279 + dingtalkService.sendMarketFeeNotification(userIds, "市场化收费-点火维护", new McIgnitionTemplate(mcIgnition).getNoticemarkdown());
  280 + }
  281 + }
230 } 282 }
zr-cloud/zr-modules/zr-schsf/src/main/resources/mapper/McIgnitionMapper.xml
@@ -220,4 +220,50 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot; @@ -220,4 +220,50 @@ PUBLIC &quot;-//mybatis.org//DTD Mapper 3.0//EN&quot;
220 and t.vlg_or_cmty = #{vlgOrCmty} 220 and t.vlg_or_cmty = #{vlgOrCmty}
221 </select> 221 </select>
222 222
  223 + <select id="selectMcIgnitionNodeUserList" resultType="com.chinagas.modules.schsf.domain.dto.NodeUsersDto" parameterType="String">
  224 + SELECT DISTINCT us.user_name,us.nick_name,un.user_id,un.ding_talk_union_id,un.ding_talk_user_id
  225 + FROM sys_menu menu
  226 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  227 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  228 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  229 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  230 + LEFT JOIN sys_user_unite un on un.user_id=us.user_id
  231 + WHERE menu.perms=#{nodeType,jdbcType=VARCHAR}
  232 + and role.data_scope='1'
  233 + UNION
  234 + SELECT DISTINCT us.user_name,us.nick_name,un.user_id,un.ding_talk_union_id,un.ding_talk_user_id
  235 + FROM sys_menu menu
  236 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  237 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  238 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  239 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  240 + INNER JOIN sys_user_dept userDept on userDept.user_id=us.user_id and userDept.dept_id in ( SELECT ignition.company_code FROM mc_ignition ignition WHERE ignition.id= #{id})
  241 + LEFT JOIN sys_user_unite un on un.user_id=us.user_id
  242 + WHERE menu.perms=#{nodeType,jdbcType=VARCHAR}
  243 + and role.data_scope='3'
  244 + UNION
  245 + SELECT DISTINCT us.user_name,us.nick_name,un.user_id,un.ding_talk_union_id,un.ding_talk_user_id
  246 + FROM sys_menu menu
  247 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  248 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  249 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id
  250 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  251 + INNER JOIN sys_user_dept userDept on userDept.user_id=us.user_id
  252 + INNER JOIN sys_dept dept on dept.dept_id =userDept.dept_id
  253 + INNER JOIN sys_dept dept2 on dept2.dept_id in (SELECT a.dept_id FROM sys_dept a WHERE a.dept_id = dept.dept_id or find_in_set( dept.parent_id , ancestors ) )
  254 + and dept2.dept_id = (SELECT ignition.company_code FROM mc_ignition ignition WHERE ignition.id= #{id} )
  255 + LEFT JOIN sys_user_unite un on un.user_id=us.user_id
  256 + WHERE menu.perms= #{nodeType,jdbcType=VARCHAR}
  257 + and role.data_scope='4'
  258 + UNION
  259 + SELECT DISTINCT us.user_name,us.nick_name,un.user_id,un.ding_talk_union_id,un.ding_talk_user_id
  260 + FROM sys_menu menu
  261 + INNER JOIN sys_role_menu roleMenu on roleMenu.menu_id=menu.menu_id
  262 + INNER JOIN sys_role role on role.role_id= roleMenu.role_id
  263 + INNER JOIN sys_user_role userRole on userRole.role_id = role.role_id and userRole.user_id = (SELECT ignition.create_by FROM mc_ignition ignition WHERE ignition.id= #{id} )
  264 + INNER JOIN sys_user us on us.user_id = userRole.user_id
  265 + LEFT JOIN sys_user_unite un on un.user_id=us.user_id
  266 + WHERE menu.perms=#{nodeType,jdbcType=VARCHAR}
  267 + and role.data_scope='5'
  268 + </select>
223 </mapper> 269 </mapper>