Commit 66247ea0705b14b7c80daed60b52434068a25a06
1 parent
d0ac4752
Exists in
dev
1:点火通知
Showing
5 changed files
with
146 additions
and
7 deletions
Show diff stats
zr-cloud/zr-modules/zr-schsf/src/main/java/com/chinagas/modules/schsf/domain/notice/McIgnitionTemplate.java
0 → 100644
... | ... | @@ -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 | 1 | package com.chinagas.modules.schsf.mapper; |
2 | 2 | |
3 | 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 | 7 | import java.util.List; |
6 | 8 | |
... | ... | @@ -62,4 +64,5 @@ public interface McIgnitionMapper |
62 | 64 | |
63 | 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 | 2 | |
3 | 3 | import com.chinagas.modules.schsf.domain.McIgnition; |
4 | 4 | import com.chinagas.modules.schsf.domain.McVisit; |
5 | +import com.chinagas.modules.schsf.domain.dto.NodeUsersDto; | |
5 | 6 | import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; |
6 | 7 | |
7 | 8 | import java.util.List; |
... | ... | @@ -78,4 +79,14 @@ public interface IMcIgnitionService |
78 | 79 | int updateMcIgnitionMaintenance(McIgnitionMaintenanceVo mcIgnitionMaintenanceVo) throws CloneNotSupportedException; |
79 | 80 | |
80 | 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 | 1 | package com.chinagas.modules.schsf.service.impl; |
2 | 2 | |
3 | +import cn.hutool.core.bean.BeanUtil; | |
3 | 4 | import com.alibaba.fastjson2.JSON; |
5 | +import com.chinagas.common.core.exceptions.ServiceException; | |
4 | 6 | import com.chinagas.common.core.utils.DateUtils; |
5 | 7 | import com.chinagas.common.core.utils.StringUtils; |
6 | 8 | import com.chinagas.common.datascope.annotation.DataScope; |
7 | 9 | import com.chinagas.common.security.utils.SecurityUtils; |
8 | 10 | import com.chinagas.modules.schsf.domain.McIgnition; |
9 | 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 | 14 | import com.chinagas.modules.schsf.domain.vo.McIgnitionMaintenanceVo; |
11 | 15 | import com.chinagas.modules.schsf.enums.IgnitionStatusEnums; |
12 | 16 | import com.chinagas.modules.schsf.enums.YesNoEnums; |
13 | 17 | import com.chinagas.modules.schsf.mapper.McIgnitionMapper; |
18 | +import com.chinagas.modules.schsf.service.DingtalkService; | |
14 | 19 | import com.chinagas.modules.schsf.service.IMcIgnitionService; |
15 | 20 | import com.chinagas.modules.schsf.service.IMcOperationLogService; |
21 | +import lombok.extern.slf4j.Slf4j; | |
16 | 22 | import org.springframework.beans.factory.annotation.Autowired; |
17 | 23 | import org.springframework.stereotype.Service; |
18 | 24 | import org.springframework.transaction.annotation.Transactional; |
19 | 25 | |
20 | 26 | import java.time.LocalDateTime; |
27 | +import java.util.Collections; | |
21 | 28 | import java.util.List; |
29 | +import java.util.stream.Collectors; | |
22 | 30 | |
23 | 31 | /** |
24 | 32 | * 点火维护Service业务层处理 |
... | ... | @@ -26,6 +34,7 @@ import java.util.List; |
26 | 34 | * @author cw |
27 | 35 | * @date 2024-05-22 |
28 | 36 | */ |
37 | +@Slf4j | |
29 | 38 | @Transactional |
30 | 39 | @Service |
31 | 40 | public class McIgnitionServiceImpl implements IMcIgnitionService { |
... | ... | @@ -33,6 +42,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
33 | 42 | private McIgnitionMapper mcIgnitionMapper; |
34 | 43 | @Autowired |
35 | 44 | private IMcOperationLogService iMcOperationLogService; |
45 | + @Autowired | |
46 | + private DingtalkService dingtalkService; | |
36 | 47 | |
37 | 48 | /** |
38 | 49 | * 根据mcVisit插入mcIgnition |
... | ... | @@ -51,8 +62,6 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
51 | 62 | String userAccount = SecurityUtils.getUsername(); |
52 | 63 | String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); |
53 | 64 | |
54 | - | |
55 | - | |
56 | 65 | McIgnition mcIgnition = new McIgnition(); |
57 | 66 | mcIgnition.setRegionName(mcVisit.getRegionName()); |
58 | 67 | mcIgnition.setGroupName(mcVisit.getGroupName()); |
... | ... | @@ -90,6 +99,9 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
90 | 99 | //1:添加记录 |
91 | 100 | iMcOperationLogService.insertMcOperationLog("mc_ignition", mcIgnition.getId(), "schsf:mcVisit:ticket_submitAuditTwo", |
92 | 101 | "发起", "1", "导入基础数据-户数", null, JSON.toJSONString(mcIgnition)); |
102 | + if (i > 0) { | |
103 | + this.sendMcIgnitionNotification(mcIgnition.getId()); | |
104 | + } | |
93 | 105 | return i; |
94 | 106 | } |
95 | 107 | |
... | ... | @@ -164,6 +176,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
164 | 176 | |
165 | 177 | /** |
166 | 178 | * 点火维护 |
179 | + * | |
167 | 180 | * @param mcIgnition |
168 | 181 | * @return |
169 | 182 | */ |
... | ... | @@ -175,7 +188,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
175 | 188 | String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); |
176 | 189 | //老数据 |
177 | 190 | McIgnition mcIgnition_old = mcIgnitionMapper.selectMcIgnitionById(mcIgnitionMaintenanceVo.getId()); |
178 | - if (mcIgnition_old==null){ | |
191 | + if (mcIgnition_old == null) { | |
179 | 192 | throw new RuntimeException("被审核信息不存在!"); |
180 | 193 | } |
181 | 194 | //新数据 |
... | ... | @@ -185,8 +198,8 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
185 | 198 | mcIgnition_new.setnIgnRsn(mcIgnitionMaintenanceVo.getnIgnRsn()); |
186 | 199 | mcIgnition_new.setUpdateBy(userId.toString()); |
187 | 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 | 203 | mcIgnition_new.setCnfPersonId(userId); |
191 | 204 | mcIgnition_new.setCnfPersonAccount(userAccount); |
192 | 205 | mcIgnition_new.setCnfPersonName(userName); |
... | ... | @@ -200,6 +213,7 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
200 | 213 | |
201 | 214 | /** |
202 | 215 | * 作废 |
216 | + * | |
203 | 217 | * @param visitId |
204 | 218 | */ |
205 | 219 | @Override |
... | ... | @@ -209,10 +223,10 @@ public class McIgnitionServiceImpl implements IMcIgnitionService { |
209 | 223 | String userAccount = SecurityUtils.getUsername(); |
210 | 224 | String userName = SecurityUtils.getLoginUser().getSysUser().getNickName(); |
211 | 225 | |
212 | - McIgnition mcIgnition= new McIgnition(); | |
226 | + McIgnition mcIgnition = new McIgnition(); | |
213 | 227 | mcIgnition.setVisitId(visitId); |
214 | 228 | List<McIgnition> mcIgnitions = mcIgnitionMapper.selectMcIgnitionList(mcIgnition); |
215 | - if (mcIgnitions !=null && mcIgnitions.size()>0){ | |
229 | + if (mcIgnitions != null && mcIgnitions.size() > 0) { | |
216 | 230 | for (McIgnition mcIgnition_old : mcIgnitions) { |
217 | 231 | //新数据 |
218 | 232 | McIgnition mcIgnition_new = mcIgnition_old.clone(); |
... | ... | @@ -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 "-//mybatis.org//DTD Mapper 3.0//EN" |
220 | 220 | and t.vlg_or_cmty = #{vlgOrCmty} |
221 | 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 | 269 | </mapper> | ... | ... |