|
@@ -48,8 +48,10 @@ import java.sql.Timestamp;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.Collection;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -172,27 +174,32 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
|
|
|
if (flag && bo.getStatus() == 3) {
|
|
|
// 第一次派发(只派发给主办人员)
|
|
|
// 待处置状态
|
|
|
- if (StrUtil.isBlank(bo.getMadinDept())) {
|
|
|
- throw new ServiceException("请选择主办单位!");
|
|
|
- }
|
|
|
if (StrUtil.isBlank(bo.getMadinTaskUser())) {
|
|
|
throw new ServiceException("请选择主办单位处置人员!");
|
|
|
}
|
|
|
|
|
|
- // 冗余主办
|
|
|
- SysDept sysDept = sysDeptService.selectDeptById(bo.getMadinDept());
|
|
|
- if (sysDept != null) {
|
|
|
- update.setMadinDeptText(sysDept.getDeptName());
|
|
|
- }
|
|
|
+ List<MessagePushUser> madinTaskUserList = JSONUtil.toList(bo.getMadinTaskUser(), MessagePushUser.class);
|
|
|
|
|
|
- // 组装人员数据
|
|
|
- // 主办单位处置人员
|
|
|
- for (MessagePushUser messagePushUser : JSONUtil.toList(bo.getMadinTaskUser(), MessagePushUser.class)) {
|
|
|
- IncidentUser save = new IncidentUser();
|
|
|
- save.setIncidentId(bo.getId());
|
|
|
- save.setUserId(messagePushUser.getUserId());
|
|
|
- save.setSource("2");
|
|
|
- saveJsonArray.add(save);
|
|
|
+ if (madinTaskUserList != null && madinTaskUserList.size() > 0) {
|
|
|
+ // 通过主办人员分析出主办单位
|
|
|
+ SysDept sysDept = sysDeptService.selectDeptById(madinTaskUserList.get(0).getDeptId());
|
|
|
+ if (sysDept != null) {
|
|
|
+ SysDept orgDept = sysDeptService.getOrgDept(sysDept);
|
|
|
+ if (orgDept != null) {
|
|
|
+ update.setMadinDept(orgDept.getDeptId());
|
|
|
+ update.setMadinDeptText(orgDept.getDeptName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 组装人员数据
|
|
|
+ // 主办单位处置人员
|
|
|
+ for (MessagePushUser messagePushUser : madinTaskUserList) {
|
|
|
+ IncidentUser save = new IncidentUser();
|
|
|
+ save.setIncidentId(bo.getId());
|
|
|
+ save.setUserId(messagePushUser.getUserId());
|
|
|
+ save.setSource("2");
|
|
|
+ saveJsonArray.add(save);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 主办单位通知人员
|
|
@@ -208,10 +215,11 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
|
|
|
|
|
|
} else if (!flag
|
|
|
&& bo.getStatus() == 3
|
|
|
- && (!StrUtil.equals(bo.getAssistDept(), beforeInfo.getAssistDept())
|
|
|
+ && (
|
|
|
+// !StrUtil.equals(bo.getAssistDept(), beforeInfo.getAssistDept())
|
|
|
// || !StrUtil.equals(bo.getCommander(), beforeInfo.getCommander())
|
|
|
- || !StrUtil.equals(bo.getAssistTaskUser(), beforeInfo.getAssistTaskUser())
|
|
|
- || !StrUtil.equals(bo.getAssistDeptUser(), beforeInfo.getAssistDeptUser()))) {
|
|
|
+ !StrUtil.equals(bo.getAssistTaskUser(), beforeInfo.getAssistTaskUser())
|
|
|
+ || !StrUtil.equals(bo.getAssistDeptUser(), beforeInfo.getAssistDeptUser()))) {
|
|
|
// 协办部门派发或再次对协办修改
|
|
|
// 重新冗余协办部门、总指挥
|
|
|
/*if (StrUtil.isBlank(bo.getCommander())) {
|
|
@@ -223,20 +231,7 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
|
|
|
update.setCommanderText(commanderText.getNickName());
|
|
|
}
|
|
|
}
|
|
|
- if (StrUtil.isBlank(bo.getAssistDept())) {
|
|
|
- update.setAssistDeptText("");
|
|
|
- } else {
|
|
|
- // 增加了协办单位后,协办的处置人员非空
|
|
|
- if (StrUtil.isBlank(bo.getAssistTaskUser())) {
|
|
|
- throw new ServiceException("请选择协办单位处置人员!");
|
|
|
- }
|
|
|
- if (!StrUtil.equals(beforeInfo.getAssistDept(), bo.getAssistDept())) {
|
|
|
- List<SysDept> sysDepts = sysDeptService.listByIds(Arrays.asList(bo.getAssistDept().split(",")));
|
|
|
- if (sysDepts != null && sysDepts.size() > 0) {
|
|
|
- update.setAssistDeptText(sysDepts.stream().map(SysDept::getDeptName).collect(Collectors.joining(",")));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
// 分析变更的派发对象
|
|
|
// 变更的总指挥(目前需求:总指挥不能变更)
|
|
|
String oldCommander = beforeInfo.getCommander();
|
|
@@ -279,6 +274,24 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
|
|
|
saveJsonArray.add(save);
|
|
|
}
|
|
|
|
|
|
+ // 通过协办处置人员查询相关的协办部门
|
|
|
+ if (addAssistTaskUser.size() > 0) {
|
|
|
+ Set<String> assistTaskDept = new HashSet<>();
|
|
|
+ Set<String> assistTaskDeptText = new HashSet<>();
|
|
|
+ for (MessagePushUser messagePushUser : newAssistTaskUser) {
|
|
|
+ SysDept sysDept = sysDeptService.selectDeptById(messagePushUser.getDeptId());
|
|
|
+ if (sysDept != null) {
|
|
|
+ SysDept orgDept = sysDeptService.getOrgDept(sysDept);
|
|
|
+ if (orgDept != null) {
|
|
|
+ assistTaskDept.add(orgDept.getDeptId());
|
|
|
+ assistTaskDeptText.add(orgDept.getDeptName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ update.setAssistDept(String.join(",", assistTaskDept));
|
|
|
+ update.setAssistDeptText(String.join(",", assistTaskDeptText));
|
|
|
+ }
|
|
|
+
|
|
|
// 变更的协办通知人员
|
|
|
List<MessagePushUser> oldAssistDeptUser = JSONUtil.toList(StrUtil.blankToDefault(beforeInfo.getAssistDeptUser(), "[]"), MessagePushUser.class);
|
|
|
List<MessagePushUser> newAssistDeptUser = JSONUtil.toList(StrUtil.blankToDefault(bo.getAssistDeptUser(), "[]"), MessagePushUser.class);
|
|
@@ -343,6 +356,7 @@ public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Inciden
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
// 更新事件信息
|
|
|
boolean b = updateById(update);
|
|
|
|