|
@@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.lang.Validator;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
+import cn.hutool.crypto.SecureUtil;
|
|
|
import cn.hutool.json.JSONArray;
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
@@ -72,6 +73,8 @@ public class NoticeInfoListiner {
|
|
|
|
|
|
@Value("${third.incidentUrl}")
|
|
|
private String incidentUrl;
|
|
|
+ @Value("${third.incidentDetailUrl}")
|
|
|
+ private String incidentDetailUrl;
|
|
|
@Value("${third.resourceUrl}")
|
|
|
private String resourceUrl;
|
|
|
|
|
@@ -95,7 +98,8 @@ public class NoticeInfoListiner {
|
|
|
String type = msg.substring(1, 2);
|
|
|
String title = "未知";
|
|
|
String synopsis = "未知";
|
|
|
- String text = "未知";
|
|
|
+ String msText = "";
|
|
|
+ String content = "";
|
|
|
String messageUser = "";
|
|
|
String incidentId;
|
|
|
String url = "";
|
|
@@ -111,8 +115,7 @@ public class NoticeInfoListiner {
|
|
|
IncidentVo incidentVo = incidentService.queryById(msg.substring(2));
|
|
|
title = StrUtil.concat(true, "应急事件:", incidentVo.getName());
|
|
|
synopsis = "请查看派发应急事件消息";
|
|
|
- text = getDetail(incidentVo);
|
|
|
- text = text.replace("#task", "");
|
|
|
+ content = getDetail(incidentVo).toString();
|
|
|
incidentProcess.setDes("事件派发主办单位");
|
|
|
incidentProcess.setIncidentStatus(2);
|
|
|
incidentProcess.setIncidentId(msg.substring(2));
|
|
@@ -126,9 +129,7 @@ public class NoticeInfoListiner {
|
|
|
IncidentVo incidentVo = incidentService.queryById(incidentTaskVo.getIncidentId());
|
|
|
title = StrUtil.concat(true, "应急事件:", incidentVo.getName());
|
|
|
synopsis = incidentTaskVo.getTaskName();
|
|
|
- text = getDetail(incidentVo);
|
|
|
- String taskName = "<tr><td style=\"color: darkgray;width: 20%;vertical-align: top;\">处置指令</td><td style=\"text-align:left;\">#taskName</td></tr>".replace("#taskName", incidentTaskVo.getTaskName());
|
|
|
- text = text.replace("#task", taskName).replace("#chemcials", incidentTaskVo.getChemicalsHtml());
|
|
|
+ content = getDetail(incidentVo).toString();
|
|
|
|
|
|
url = incidentUrl.replace("#incidentId", incidentId).replace("#taskId", incidentTaskVo.getId());
|
|
|
incidentProcess.setDes("发送处置方案:" + incidentTaskVo.getTaskName());
|
|
@@ -137,10 +138,10 @@ public class NoticeInfoListiner {
|
|
|
messageUser = incidentTaskVo.getExprJson();
|
|
|
if ("3".equals(messageType)) {
|
|
|
title = "应急资源维护";
|
|
|
- text = incidentTaskVo.getTaskName();
|
|
|
+ msText = incidentTaskVo.getTaskName();
|
|
|
url = resourceUrl.replace("#taskId", incidentTaskVo.getId());
|
|
|
} else if ("2".equals(messageType)) {
|
|
|
- text = incidentTaskVo.getTaskName();
|
|
|
+ msText = incidentTaskVo.getTaskName();
|
|
|
}
|
|
|
incidentProcess.setTaskId(incidentTaskVo.getId());
|
|
|
}
|
|
@@ -160,11 +161,14 @@ public class NoticeInfoListiner {
|
|
|
if (sendFlag) {
|
|
|
if ("1".equals(messageType)) {
|
|
|
// 普通消息
|
|
|
- messagePushBo.setMsTitle(title);
|
|
|
+ messagePushBo.setTitle(title);
|
|
|
messagePushBo.setMsSynopsis(synopsis);
|
|
|
- messagePushBo.setMsText(text);
|
|
|
- messagePushBo.setMsNo(incidentProcess.getId());
|
|
|
+ messagePushBo.setContent(content);
|
|
|
+// messagePushBo.setSenderId();
|
|
|
+ messagePushBo.setUrl(incidentDetailUrl.replace("#incidentId", incidentProcess.getIncidentId()));
|
|
|
+ messagePushBo.setUuId(incidentProcess.getId());
|
|
|
messagePushBo.setMessageReadInfoList(messagePushUsers);
|
|
|
+ messagePushBo.setVerify(SecureUtil.md5(StrUtil.concat(true, messagePushBo.getAppId(), messagePushBo.getSendTime(), messagePushBo.getContent())));
|
|
|
log.info("发送普通消息 => {}", messagePushBo);
|
|
|
if (!"dev".equals(env)) {
|
|
|
JSONObject jsonObject = feignNoticeInfoService.messagePush(messagePushBo);
|
|
@@ -173,39 +177,39 @@ public class NoticeInfoListiner {
|
|
|
} else if ("2".equals(messageType) || "3".equals(messageType)) {
|
|
|
// 应急处置待办
|
|
|
BacklogMessagePushBo backlogMessagePushBo = new BacklogMessagePushBo();
|
|
|
- backlogMessagePushBo.setUuid(incidentProcess.getId());
|
|
|
+ backlogMessagePushBo.setUuId(incidentProcess.getId());
|
|
|
backlogMessagePushBo.setTitle(title);
|
|
|
- backlogMessagePushBo.setSubhead(synopsis);
|
|
|
- backlogMessagePushBo.setText(text);
|
|
|
+ backlogMessagePushBo.setContent(msText);
|
|
|
+ backlogMessagePushBo.setVerify(SecureUtil.md5(StrUtil.concat(true, backlogMessagePushBo.getAppId(), backlogMessagePushBo.getSendTime(), backlogMessagePushBo.getContent())));
|
|
|
backlogMessagePushBo.setUrl(url);
|
|
|
- backlogMessagePushBo.setUrgency("5");
|
|
|
List<String> userIds = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
|
|
|
- backlogMessagePushBo.setUserId(userIds);
|
|
|
+ backlogMessagePushBo.setReceiverId(userIds);
|
|
|
log.info("待办消息发送 => {}", backlogMessagePushBo);
|
|
|
if (!"dev".equals(env)) {
|
|
|
Object o = feignBacklogInfoService.backlogMessagePush(backlogMessagePushBo);
|
|
|
log.info("发送待办消息结果:{}", o);
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- // 查询发送用户的手机号
|
|
|
- List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
|
|
|
- List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
|
|
|
- // 组装短信内容
|
|
|
- List<SmsOutbox> smsOutboxes = new ArrayList<>();
|
|
|
- for (SysUser sysUser : list) {
|
|
|
- if (StrUtil.isNotBlank(sysUser.getPhonenumber()) && Validator.isMobile(sysUser.getPhonenumber())) {
|
|
|
- SmsOutbox smsOutbox = new SmsOutbox();
|
|
|
- smsOutbox.setDestaddr(sysUser.getPhonenumber());
|
|
|
- smsOutbox.setMessagecontent("有新的应急事件或应急方案,请登录APP注意查看!");
|
|
|
- smsOutbox.setRequesttime(new Date());
|
|
|
- smsOutboxes.add(smsOutbox);
|
|
|
+ // 查询发送用户的手机号(由于消息接口有发送了短信,则只在待办消息时发短信)
|
|
|
+ List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
|
|
|
+ List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
|
|
|
+ // 组装短信内容
|
|
|
+ List<SmsOutbox> smsOutboxes = new ArrayList<>();
|
|
|
+ for (SysUser sysUser : list) {
|
|
|
+ if (StrUtil.isNotBlank(sysUser.getPhonenumber()) && Validator.isMobile(sysUser.getPhonenumber())) {
|
|
|
+ SmsOutbox smsOutbox = new SmsOutbox();
|
|
|
+ smsOutbox.setDestaddr(sysUser.getPhonenumber());
|
|
|
+ smsOutbox.setMessagecontent("有新的应急事件或应急方案,请登录APP注意查看!");
|
|
|
+ smsOutbox.setRequesttime(new Date());
|
|
|
+ smsOutboxes.add(smsOutbox);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!"dev".equals(env)) {
|
|
|
+ smsOutboxService.saveBatch(smsOutboxes);
|
|
|
+ log.debug("发送短信 => {}", smsOutboxes);
|
|
|
}
|
|
|
}
|
|
|
- if (!"dev".equals(env)) {
|
|
|
- smsOutboxService.saveBatch(smsOutboxes);
|
|
|
- log.debug("发送短信 => {}", smsOutboxes);
|
|
|
- }
|
|
|
+
|
|
|
}
|
|
|
});
|
|
|
}
|
|
@@ -216,7 +220,7 @@ public class NoticeInfoListiner {
|
|
|
* @param incidentVo
|
|
|
* @return
|
|
|
*/
|
|
|
- private String getDetail(IncidentVo incidentVo) {
|
|
|
+ private JSONArray getDetail(IncidentVo incidentVo) {
|
|
|
// 翻译事件类型、事件等级、事件来源、上报人员、上报单位
|
|
|
String type = "";
|
|
|
String level = "";
|
|
@@ -241,19 +245,37 @@ public class NoticeInfoListiner {
|
|
|
if (sysDept != null) {
|
|
|
incidentVo.setCreateDept(sysDept.getDeptName());
|
|
|
}
|
|
|
- String htmlContent = "<table style=\"font-size: 3vw;\"><tr><td style=\"color: darkgray;width: 20%;vertical-align: top;\">事件类型</td><td style=\"text-align:left;\">#typeText</td></tr><tr><td style=\"color: darkgray;width: 20%;vertical-align: " +
|
|
|
- "top;\">事件等级</td><td style=\"text-align:left;\">#levelText</td></tr><tr><td style=\"color: darkgray;width: 20%;vertical-align: top;\">事件时间</td><td style=\"text-align:left;\">#createTime</td></tr><tr><td style=\"color: darkgray;width: " +
|
|
|
- "20%;vertical-align: top;\">事件地点</td><td style=\"text-align:left;\">#addr</td></tr><tr><td style=\"color: darkgray;width: 20%;vertical-align: top;\">事件来源</td><td style=\"text-align:left;\">#source</td></tr><tr><td style=\"color: " +
|
|
|
- "darkgray;width: 20%;vertical-align: top;\">上报人员</td><td style=\"text-align:left;\">#createBy</td></tr><tr><td style=\"color: darkgray;width: 20%;vertical-align: top;\">联系电话</td><td style=\"text-align:left;\">#expr1</td></tr><tr><td " +
|
|
|
- "style=\"color: darkgray;width: 20%;vertical-align: top;\">上报单位</td><td style=\"text-align:left;\">#createDept</td></tr>#task#chemcials</table>";
|
|
|
- return htmlContent.replace("#typeText", incidentVo.getTypeText())
|
|
|
- .replace("#levelText", incidentVo.getLevelText())
|
|
|
- .replace("#createTime", DateUtil.formatDateTime(incidentVo.getCreateTime()))
|
|
|
- .replace("#addr", incidentVo.getAddr())
|
|
|
- .replace("#source", incidentVo.getSource())
|
|
|
- .replace("#createBy", incidentVo.getCreateBy())
|
|
|
- .replace("#expr1", incidentVo.getExpr1())
|
|
|
- .replace("#createDept", incidentVo.getCreateDept());
|
|
|
+ JSONArray array = new JSONArray();
|
|
|
+ JSONObject time = new JSONObject();
|
|
|
+// jsonObject.set("key", "事件类型");
|
|
|
+// jsonObject.set("val", incidentVo.getTypeText());
|
|
|
+// array.add(jsonObject);
|
|
|
+// jsonObject.set("key", "事件等级");
|
|
|
+// jsonObject.set("val", incidentVo.getLevelText());
|
|
|
+// array.add(jsonObject);
|
|
|
+ time.set("key", "事件时间");
|
|
|
+ time.set("val", DateUtil.formatDateTime(incidentVo.getCreateTime()));
|
|
|
+ array.add(time);
|
|
|
+ JSONObject address = new JSONObject();
|
|
|
+ address.set("key", "事件地点");
|
|
|
+ address.set("val", incidentVo.getAddr());
|
|
|
+ array.add(address);
|
|
|
+ JSONObject incSource = new JSONObject();
|
|
|
+ incSource.set("key", "事件来源");
|
|
|
+ incSource.set("val", incidentVo.getSource());
|
|
|
+ array.add(incSource);
|
|
|
+ JSONObject userName = new JSONObject();
|
|
|
+ userName.set("key", "上报人员");
|
|
|
+ userName.set("val", incidentVo.getCreateBy());
|
|
|
+ array.add(userName);
|
|
|
+// jsonObject.set("key", "联系电话");
|
|
|
+// jsonObject.set("val", incidentVo.getExpr1());
|
|
|
+// array.add(jsonObject);
|
|
|
+// jsonObject.set("key", "上报单位");
|
|
|
+// jsonObject.set("val", incidentVo.getCreateDept());
|
|
|
+// array.add(jsonObject);
|
|
|
+
|
|
|
+ return array;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -291,21 +313,27 @@ public class NoticeInfoListiner {
|
|
|
IncidentVo incidentVo = incidentService.queryById(incidentId);
|
|
|
title = StrUtil.concat(true, "应急事件:", incidentVo.getName());
|
|
|
synopsis = "系统给您派发了应急事件,请查看";
|
|
|
- text = StrUtil.concat(true, incidentVo.getAddr(), "发生应急事件,请关注消息,做好应急准备");
|
|
|
+// text = StrUtil.concat(true, incidentVo.getAddr(), "发生应急事件,请关注消息,做好应急准备");
|
|
|
+ text = getDetail(incidentVo).toString();
|
|
|
|
|
|
// 普通消息
|
|
|
- messagePushBo.setMsTitle(title);
|
|
|
+ messagePushBo.setTitle(title);
|
|
|
messagePushBo.setMsSynopsis(synopsis);
|
|
|
- messagePushBo.setMsText(text);
|
|
|
- messagePushBo.setMsNo(incidentProcess.getId());
|
|
|
+ messagePushBo.setContent(text);
|
|
|
+ messagePushBo.setUrl(incidentDetailUrl.replace("#incidentId", incidentProcess.getIncidentId()));
|
|
|
+ messagePushBo.setUuId(incidentProcess.getId());
|
|
|
messagePushBo.setMessageReadInfoList(messagePushUsers);
|
|
|
+ messagePushBo.setVerify(SecureUtil.md5(StrUtil.concat(true, messagePushBo.getAppId(), messagePushBo.getSendTime(), messagePushBo.getContent())));
|
|
|
+// messagePushBo.setContent(content);
|
|
|
+// messagePushBo.setSenderId();
|
|
|
+
|
|
|
log.info("发送普通消息 => {}", messagePushBo);
|
|
|
if (!"dev".equals(env)) {
|
|
|
JSONObject jsonObject = feignNoticeInfoService.messagePush(messagePushBo);
|
|
|
log.info("发送普通消息结果:{}", jsonObject);
|
|
|
}
|
|
|
|
|
|
- // 查询发送用户的手机号
|
|
|
+ /*// 查询发送用户的手机号
|
|
|
List<String> collect = messagePushUsers.stream().map(MessagePushUser::getUserId).collect(Collectors.toList());
|
|
|
List<SysUser> list = sysUserService.list(Wrappers.<SysUser>lambdaQuery().in(SysUser::getUserId, collect));
|
|
|
// 组装短信内容
|
|
@@ -322,7 +350,7 @@ public class NoticeInfoListiner {
|
|
|
if (!"dev".equals(env)) {
|
|
|
smsOutboxService.saveBatch(smsOutboxes);
|
|
|
log.debug("发送短信 => {}", smsOutboxes);
|
|
|
- }
|
|
|
+ }*/
|
|
|
});
|
|
|
}
|
|
|
|
|
@@ -387,4 +415,15 @@ public class NoticeInfoListiner {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ public static void main(String[] args) {
|
|
|
+ MessagePushBo messagePushBo = new MessagePushBo();
|
|
|
+ List<MessagePushUser> list = new ArrayList<>();
|
|
|
+ MessagePushUser messagePushUser = new MessagePushUser();
|
|
|
+ messagePushUser.setUserId("231");
|
|
|
+ messagePushUser.setReadState("1");
|
|
|
+ list.add(messagePushUser);
|
|
|
+ messagePushBo.setMessageReadInfoList(list);
|
|
|
+ System.out.println(messagePushBo);
|
|
|
+ }
|
|
|
+
|
|
|
}
|