|
@@ -1,24 +1,28 @@
|
|
|
package com.rongwei.sfcommon.sys.service.impl;
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.rongwe.scentity.domian.HiddenDangerTrackDo;
|
|
|
+import com.rongwe.scentity.domian.ThemeCheckDo;
|
|
|
+import com.rongwe.scentity.domian.ThemeCheckWorkparkDo;
|
|
|
+import com.rongwei.rwcommon.base.BaseDo;
|
|
|
import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
|
import com.rongwei.sfcommon.sys.dao.DangerousDao;
|
|
|
import com.rongwei.sfcommon.sys.service.SafeCheckSendNotifyService;
|
|
|
+import com.rongwei.sfcommon.sys.service.ThemeCheckService;
|
|
|
+import com.rongwei.sfcommon.sys.service.ThemeCheckWorkparkService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.DEFAULT_SEPARATOR;
|
|
|
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.DANGEROUS_CONTENT;
|
|
|
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.DANGER_TASKS_CONTENT;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyContent.*;
|
|
|
import static com.rongwei.safecommon.utils.SaveConstans.NotifyTitle.*;
|
|
|
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.DANGEROUS;
|
|
|
-import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.INSPECTIONTASKS;
|
|
|
+import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.*;
|
|
|
|
|
|
/**
|
|
|
* SafeCheckSendNotifyServiceImpl class
|
|
@@ -27,13 +31,88 @@ import static com.rongwei.safecommon.utils.SaveConstans.NotifyType.INSPECTIONTAS
|
|
|
* @since 2023/12/19
|
|
|
*/
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class SafeCheckSendNotifyServiceImpl implements SafeCheckSendNotifyService {
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务整改提现标题
|
|
|
+ */
|
|
|
+ public static final String RECTIFICATION_MAIL_TITLE = "隐患跟踪任务整改提醒";
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务验证提醒标题
|
|
|
+ */
|
|
|
+ public static final String VERIFICATION_MAIL_TITLE = "隐患跟踪任务验证提醒";
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务确认提醒标题
|
|
|
+ */
|
|
|
+ public static final String AFFIRM_MAIL_TITLE = "隐患跟踪任务确认提醒";
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务整改提醒内容
|
|
|
+ */
|
|
|
+ public static final String RECTIFICATION_MAIL_CONTENT = "总编号:%s\n 发现时间:%tF\n 发现人:%s\n 发现项:%s\n限整改期:%tF\n详见智能安全监控平台:http://192.168.0.205:8000";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务验证完成提醒内容
|
|
|
+ */
|
|
|
+ public static final String VERIFICATION_REMIND_MAIL_CONTENT = "%s 已整改完成,请您验证关闭\n详见智能安全监控平台:http://192.168.0.205:8000";
|
|
|
+
|
|
|
+ public static final String VERIFICATION_REMIND_TEMP = "总编号:%s %s\n";
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务验证重新整改内容
|
|
|
+ */
|
|
|
+ public static final String RECTIFICATE_MAIL_CONTENT = "总编号:%s \n 发现时间:%tF \n 发现人:%s \n 发现项:%s \n 限整改期:%tF \n 整改验证未通过,请您重新整改 \n详见智能安全监控平台:http://192.168.0.205:8000";
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务验证完成提醒内容
|
|
|
+ */
|
|
|
+ public static final String VERIFICATION_SYSTEM_CONTENT = "%s 整改确认未通过,请您重新验证\n详见智能安全监控平台:http://192.168.0.205:8000";
|
|
|
+ /**
|
|
|
+ * 隐患跟踪任务验证完成提醒内容
|
|
|
+ */
|
|
|
+ public static final String AFFIRM_REMIND_MAIL_CONTENT = "%s 已验证完成,请您确认关闭\n详见智能安全监控平台:http://192.168.0.205:8000";
|
|
|
|
|
|
@Autowired
|
|
|
private DangerousDao dangerousDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ThemeCheckService themeCheckService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private HiddenDangerTrackServiceImpl hiddenDangerTrackService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ThemeCheckWorkparkService themeCheckWorkparkService;
|
|
|
@Override
|
|
|
public void inspectionTasks() {
|
|
|
-
|
|
|
+ List<ThemeCheckDo> themeCheckList = themeCheckService.getListByCreateTask(0);
|
|
|
+ List<String> themeCheckIdList = themeCheckList.stream().map(ThemeCheckDo::getId).collect(Collectors.toList());
|
|
|
+ List<ThemeCheckWorkparkDo> themeCheckWorkparks = themeCheckWorkparkService.getListBytheneCheckIds(themeCheckIdList);
|
|
|
+ if (themeCheckWorkparks.isEmpty()) {
|
|
|
+ log.error("该检查计划没有检查小组");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 当前检查小组的人员信息
|
|
|
+ HashSet<String> currentCheckUserIds = new HashSet<>();
|
|
|
+ // 发送提醒的map
|
|
|
+ Map<String, HashSet<String>> sendNotifyMap = new HashMap<>();
|
|
|
+ themeCheckList.forEach(themeCheckDo -> {
|
|
|
+ List<ThemeCheckWorkparkDo> checkWorkparkDos = themeCheckWorkparks.stream().filter(info -> Objects.equals(info.getThemecheckid(), themeCheckDo.getId())).collect(Collectors.toList());
|
|
|
+ checkWorkparkDos.forEach(info->{
|
|
|
+ String groupleader = info.getGroupleader();
|
|
|
+ String groupusers = info.getGroupusers();
|
|
|
+ currentCheckUserIds.clear();
|
|
|
+ if (StringUtils.isNotBlank(groupleader)) {
|
|
|
+ currentCheckUserIds.add(groupleader);
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(groupusers)) {
|
|
|
+ currentCheckUserIds.addAll(new HashSet<>(Arrays.asList(groupusers.split(","))));
|
|
|
+ }
|
|
|
+ // 任务名称 计划检查时间 区域
|
|
|
+ sendNotifyMap.put(String.format(INSPECTION_TASKS_CONTENT,themeCheckDo.getCheckname(),themeCheckDo.getPlanstarttime(),
|
|
|
+ themeCheckDo.getPlanstarttime(),info.getChargeorgname(),themeCheckDo.getId()),
|
|
|
+ currentCheckUserIds);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ sendInspectionTasksNotify(sendNotifyMap);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -92,4 +171,185 @@ public class SafeCheckSendNotifyServiceImpl implements SafeCheckSendNotifyServic
|
|
|
}}, k.getId(), INSPECTIONTASKS));
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void rectificationSystem() {
|
|
|
+ List<HiddenDangerTrackDo> hiddenDangerTrackList = hiddenDangerTrackService.list(new LambdaQueryWrapper<HiddenDangerTrackDo>()
|
|
|
+ .eq(BaseDo::getDeleted, 0)
|
|
|
+ .eq(HiddenDangerTrackDo::getStatus, 20)
|
|
|
+ .isNotNull(HiddenDangerTrackDo::getTrackuserid)
|
|
|
+ );
|
|
|
+ rectificationNotify(hiddenDangerTrackList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void verifySystem() {
|
|
|
+ List<HiddenDangerTrackDo> hiddenDangerTrackList = hiddenDangerTrackService.list(new LambdaQueryWrapper<HiddenDangerTrackDo>()
|
|
|
+ .eq(BaseDo::getDeleted, 0)
|
|
|
+ .eq(HiddenDangerTrackDo::getStatus, 30)
|
|
|
+ .isNotNull(HiddenDangerTrackDo::getShopfacilitatorid)
|
|
|
+ );
|
|
|
+ verifyNotify(hiddenDangerTrackList);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void affirmSystem() {
|
|
|
+ List<HiddenDangerTrackDo> hiddenDangerTrackDos = hiddenDangerTrackService.list(new LambdaQueryWrapper<HiddenDangerTrackDo>()
|
|
|
+ .eq(BaseDo::getDeleted, 0)
|
|
|
+ .eq(HiddenDangerTrackDo::getStatus, 40)
|
|
|
+ .isNotNull(HiddenDangerTrackDo::getSafetypromoterid)
|
|
|
+ );
|
|
|
+ affirmNotify(hiddenDangerTrackDos);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R sendBackSystem(Map<String, String> map) {
|
|
|
+ String id = map.getOrDefault("id", "");
|
|
|
+ if (StringUtils.isBlank(id)) {
|
|
|
+ log.error("任务ID为空");
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ HiddenDangerTrackDo hiddenDangerTrackDo = hiddenDangerTrackService.getById(id);
|
|
|
+ if (null == hiddenDangerTrackDo) {
|
|
|
+ log.error("无法通过id:{}获取到任务列表", id);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ //发送人
|
|
|
+ List<String> userId = new ArrayList<>();
|
|
|
+ //发送内容
|
|
|
+ String context = null;
|
|
|
+ //发送标题
|
|
|
+ String title = null;
|
|
|
+ String state = map.getOrDefault("state", "");
|
|
|
+ if (StringUtils.isBlank(state)){
|
|
|
+ log.error("状态为空");
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ //判断发送验证还是整改
|
|
|
+ if ("20".equals(state)){
|
|
|
+ userId = Arrays.asList(hiddenDangerTrackDo.getTrackuserid().split(","));
|
|
|
+ context = String.format(RECTIFICATE_MAIL_CONTENT,hiddenDangerTrackDo.getCode(),
|
|
|
+ hiddenDangerTrackDo.getFindtime(),hiddenDangerTrackDo.getFindusername(),
|
|
|
+ hiddenDangerTrackDo.getHiddendangercontent(),hiddenDangerTrackDo.getRectificationdate());
|
|
|
+ title = RECTIFICATION_MAIL_TITLE;
|
|
|
+
|
|
|
+ } else if ("30".equals(state)) {
|
|
|
+ userId = Arrays.asList(hiddenDangerTrackDo.getShopfacilitatorid().split(","));
|
|
|
+ String verificationRemindTemp = String.format(VERIFICATION_REMIND_TEMP,hiddenDangerTrackDo.getCode(),
|
|
|
+ hiddenDangerTrackDo.getHiddendangercontent());
|
|
|
+ context =String.format(VERIFICATION_SYSTEM_CONTENT,verificationRemindTemp);
|
|
|
+ title = VERIFICATION_MAIL_TITLE;
|
|
|
+ }
|
|
|
+ if (userId.size()==0){
|
|
|
+ log.error("无法找到接收人!");
|
|
|
+ }
|
|
|
+ CXCommonUtils.sendNotify(title,
|
|
|
+ context,null,userId,hiddenDangerTrackDo.getId(),DANGERTASKS);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R submitSystem(Map<String, String> map) {
|
|
|
+ String id = map.getOrDefault("id", "");
|
|
|
+ if (StringUtils.isBlank(id)) {
|
|
|
+ log.error("任务ID为空");
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ HiddenDangerTrackDo hiddenDangerTrackDo = hiddenDangerTrackService.getById(id);
|
|
|
+ if (null == hiddenDangerTrackDo) {
|
|
|
+ log.error("无法通过id:{}获取到任务列表", id);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ //发送人
|
|
|
+ List<String> userId = new ArrayList<>();
|
|
|
+ //发送内容
|
|
|
+ String context = null;
|
|
|
+ //发送标题
|
|
|
+ String title = null;
|
|
|
+ String state = map.getOrDefault("state", "");
|
|
|
+ if (StringUtils.isBlank(state)){
|
|
|
+ log.error("状态为空");
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+ if ("30".equals(state)){
|
|
|
+ userId = Arrays.asList(hiddenDangerTrackDo.getShopfacilitatorid().split(","));
|
|
|
+ title = VERIFICATION_MAIL_TITLE;
|
|
|
+ String format = String.format(VERIFICATION_REMIND_TEMP, hiddenDangerTrackDo.getCode(),
|
|
|
+ hiddenDangerTrackDo.getHiddendangercontent());
|
|
|
+ context = String.format(VERIFICATION_REMIND_MAIL_CONTENT,format);
|
|
|
+ } else if ("40".equals(state)) {
|
|
|
+ userId = Arrays.asList(hiddenDangerTrackDo.getSafetypromoterid().split(","));
|
|
|
+ title = AFFIRM_MAIL_TITLE;
|
|
|
+ String format = String.format(VERIFICATION_REMIND_TEMP, hiddenDangerTrackDo.getCode(),
|
|
|
+ hiddenDangerTrackDo.getHiddendangercontent());
|
|
|
+ context = String.format(AFFIRM_REMIND_MAIL_CONTENT,format);
|
|
|
+ }
|
|
|
+ if (userId.size()==0){
|
|
|
+ log.error("无法找到接收人!");
|
|
|
+ }
|
|
|
+ CXCommonUtils.sendNotify(title,
|
|
|
+ context,null,userId,hiddenDangerTrackDo.getId(),DANGERTASKS);
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐患任务整改提醒
|
|
|
+ *
|
|
|
+ * @param hiddenDangerTrackList
|
|
|
+ * @return
|
|
|
+ * @date 2023/12/20 9:54
|
|
|
+ * @author shangmi
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ public void rectificationNotify(List<HiddenDangerTrackDo> hiddenDangerTrackList){
|
|
|
+ hiddenDangerTrackList.forEach(hiddenDangerTrack -> {
|
|
|
+ List<String> userIds = Arrays.asList(hiddenDangerTrack.getTrackuserid().split(","));
|
|
|
+ CXCommonUtils.sendNotify(RECTIFICATION_MAIL_TITLE,
|
|
|
+ String.format(RECTIFICATION_MAIL_CONTENT,hiddenDangerTrack.getCode(),hiddenDangerTrack.getFindtime(),
|
|
|
+ hiddenDangerTrack.getFindusername(),hiddenDangerTrack.getHiddendangercontent(),
|
|
|
+ hiddenDangerTrack.getRectificationdate()),null,userIds,hiddenDangerTrack.getId(),DANGERTASKS);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐患任务验证提醒
|
|
|
+ *
|
|
|
+ * @param hiddenDangerTrackList
|
|
|
+ * @return
|
|
|
+ * @date 2023/12/20 9:54
|
|
|
+ * @author shangmi
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ public void verifyNotify(List<HiddenDangerTrackDo> hiddenDangerTrackList){
|
|
|
+ hiddenDangerTrackList.forEach(hiddenDangerTrack -> {
|
|
|
+ List<String> userIds = Arrays.asList(hiddenDangerTrack.getShopfacilitatorid().split(","));
|
|
|
+ String format = String.format(VERIFICATION_REMIND_TEMP, hiddenDangerTrack.getCode(), hiddenDangerTrack.getHiddendangercontent());
|
|
|
+ CXCommonUtils.sendNotify(VERIFICATION_MAIL_TITLE,
|
|
|
+ String.format(VERIFICATION_REMIND_MAIL_CONTENT,format),null,userIds,hiddenDangerTrack.getId(),DANGERTASKS);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 隐患任务确认提醒
|
|
|
+ *
|
|
|
+ * @param hiddenDangerTrackList
|
|
|
+ * @return
|
|
|
+ * @date 2023/12/20 9:54
|
|
|
+ * @author shangmi
|
|
|
+ *
|
|
|
+ */
|
|
|
+
|
|
|
+ public void affirmNotify(List<HiddenDangerTrackDo> hiddenDangerTrackList){
|
|
|
+ hiddenDangerTrackList.forEach(hiddenDangerTrack -> {
|
|
|
+ List<String> userIds = Arrays.asList(hiddenDangerTrack.getSafetypromoterid().split(","));
|
|
|
+ String format = String.format(VERIFICATION_REMIND_TEMP, hiddenDangerTrack.getCode(), hiddenDangerTrack.getHiddendangercontent());
|
|
|
+ CXCommonUtils.sendNotify(AFFIRM_MAIL_TITLE,
|
|
|
+ String.format(AFFIRM_REMIND_MAIL_CONTENT,format),null,userIds,hiddenDangerTrack.getId(),DANGERTASKS);
|
|
|
+ });
|
|
|
+
|
|
|
+ }
|
|
|
}
|