IncidentServiceImpl.java 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440
  1. package com.ruoyi.zhdd.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.collection.CollUtil;
  4. import cn.hutool.core.convert.Convert;
  5. import cn.hutool.core.util.StrUtil;
  6. import cn.hutool.json.JSONArray;
  7. import cn.hutool.json.JSONObject;
  8. import cn.hutool.json.JSONUtil;
  9. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  10. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  11. import com.ruoyi.common.constant.Constants;
  12. import com.ruoyi.common.core.domain.entity.SysDept;
  13. import com.ruoyi.common.core.mybatisplus.core.ServicePlusImpl;
  14. import com.ruoyi.common.core.page.PagePlus;
  15. import com.ruoyi.common.core.page.TableDataInfo;
  16. import com.ruoyi.common.exception.ServiceException;
  17. import com.ruoyi.common.utils.PageUtils;
  18. import com.ruoyi.common.utils.RedisUtils;
  19. import com.ruoyi.common.utils.StringUtils;
  20. import com.ruoyi.system.service.ISysDeptService;
  21. import com.ruoyi.system.service.ISysUserService;
  22. import com.ruoyi.zhdd.domain.Incident;
  23. import com.ruoyi.zhdd.domain.IncidentProcess;
  24. import com.ruoyi.zhdd.domain.IncidentTask;
  25. import com.ruoyi.zhdd.domain.IncidentUser;
  26. import com.ruoyi.zhdd.domain.Plan;
  27. import com.ruoyi.zhdd.domain.bo.BacklogMessageUpdateBo;
  28. import com.ruoyi.zhdd.domain.bo.IncidentBo;
  29. import com.ruoyi.zhdd.domain.bo.IncidentTasksBo;
  30. import com.ruoyi.zhdd.domain.bo.MessagePushUser;
  31. import com.ruoyi.zhdd.domain.vo.IncidentVo;
  32. import com.ruoyi.zhdd.domain.vo.PlanTaskVo;
  33. import com.ruoyi.zhdd.domain.vo.PlanVo;
  34. import com.ruoyi.zhdd.feign.FeignBacklogInfoService;
  35. import com.ruoyi.zhdd.mapper.IncidentMapper;
  36. import com.ruoyi.zhdd.service.IIncidentProcessService;
  37. import com.ruoyi.zhdd.service.IIncidentService;
  38. import com.ruoyi.zhdd.service.IIncidentTaskService;
  39. import com.ruoyi.zhdd.service.IPlanService;
  40. import com.ruoyi.zhdd.service.IPlanTaskService;
  41. import lombok.extern.slf4j.Slf4j;
  42. import org.springframework.beans.factory.annotation.Autowired;
  43. import org.springframework.stereotype.Service;
  44. import org.springframework.transaction.annotation.Transactional;
  45. import java.sql.Timestamp;
  46. import java.util.ArrayList;
  47. import java.util.Arrays;
  48. import java.util.Collection;
  49. import java.util.HashSet;
  50. import java.util.List;
  51. import java.util.Map;
  52. import java.util.Set;
  53. import java.util.stream.Collectors;
  54. /**
  55. * 事件基础Service业务层处理
  56. *
  57. * @author xitong
  58. * @date 2021-09-28
  59. */
  60. @Service
  61. @Slf4j
  62. public class IncidentServiceImpl extends ServicePlusImpl<IncidentMapper, Incident, IncidentVo> implements IIncidentService {
  63. @Autowired
  64. private IIncidentProcessService incidentProcessService;
  65. @Autowired
  66. private ISysUserService sysUserService;
  67. @Autowired
  68. private ISysDeptService sysDeptService;
  69. @Autowired
  70. private IIncidentTaskService incidentTaskService;
  71. @Autowired
  72. private FeignBacklogInfoService feignBacklogInfoService;
  73. @Autowired
  74. private IPlanService iPlanService;
  75. @Autowired
  76. private IPlanTaskService planTaskService;
  77. @Override
  78. public IncidentVo queryById(String id) {
  79. return getVoById(id);
  80. }
  81. @Override
  82. public TableDataInfo<IncidentVo> queryPageList(IncidentBo bo) {
  83. PagePlus<Incident, IncidentVo> result = pageVo(PageUtils.buildPagePlus(), buildQueryWrapper(bo));
  84. return PageUtils.buildDataInfo(result);
  85. }
  86. @Override
  87. public List<IncidentVo> queryList(IncidentBo bo) {
  88. return listVo(buildQueryWrapper(bo));
  89. }
  90. private LambdaQueryWrapper<Incident> buildQueryWrapper(IncidentBo bo) {
  91. Map<String, Object> params = bo.getParams();
  92. LambdaQueryWrapper<Incident> lqw = Wrappers.lambdaQuery();
  93. lqw.eq(bo.getType() != null, Incident::getType, bo.getType());
  94. lqw.eq(bo.getLevel() != null, Incident::getLevel, bo.getLevel());
  95. lqw.eq(StringUtils.isNotBlank(bo.getAddr()), Incident::getAddr, bo.getAddr());
  96. lqw.eq(StringUtils.isNotBlank(bo.getLocations()), Incident::getLocations, bo.getLocations());
  97. lqw.eq(StringUtils.isNotBlank(bo.getCreateDept()), Incident::getCreateDept, bo.getCreateDept());
  98. lqw.eq(StringUtils.isNotBlank(bo.getSource()), Incident::getSource, bo.getSource());
  99. lqw.eq(StringUtils.isNotBlank(bo.getDes()), Incident::getDes, bo.getDes());
  100. lqw.eq(StringUtils.isNotBlank(bo.getPic()), Incident::getPic, bo.getPic());
  101. lqw.eq(StringUtils.isNotBlank(bo.getVideo()), Incident::getVideo, bo.getVideo());
  102. lqw.eq(StringUtils.isNotBlank(bo.getExpr1()), Incident::getExpr1, bo.getExpr1());
  103. lqw.eq(StringUtils.isNotBlank(bo.getExpr2()), Incident::getExpr2, bo.getExpr2());
  104. lqw.eq(StringUtils.isNotBlank(bo.getExprJson()), Incident::getExprJson, bo.getExprJson());
  105. lqw.like(StringUtils.isNotBlank(bo.getName()), Incident::getName, bo.getName());
  106. lqw.eq(bo.getStatus() != null, Incident::getStatus, bo.getStatus());
  107. if (StrUtil.isNotBlank(bo.getStatuss())) {
  108. lqw.in(Incident::getStatus, Arrays.stream(bo.getStatuss().split(",")).map(Integer::parseInt).collect(Collectors.toList()));
  109. }
  110. lqw.eq(bo.getMadinDept() != null, Incident::getMadinDept, bo.getMadinDept());
  111. lqw.eq(StringUtils.isNotBlank(bo.getAssistDept()), Incident::getAssistDept, bo.getAssistDept());
  112. if (params.get("beginTime") != null && params.get("endTime") != null) {
  113. lqw.between(Incident::getCreateTime, Timestamp.valueOf(Convert.toStr(params.get("beginTime")) + " 00:00:00"), Timestamp.valueOf(Convert.toStr(params.get("endTime")) + " 23:59:59"));
  114. }
  115. lqw.in(bo.getLevels() != null && bo.getLevels().size() > 0, Incident::getLevel, bo.getLevels());
  116. if (bo.getIds() != null && bo.getIds().size() > 0) {
  117. lqw.in(Incident::getId, bo.getIds());
  118. }
  119. lqw.orderByDesc(Incident::getCreateTime);
  120. return lqw;
  121. }
  122. @Override
  123. public String insertByBo(IncidentBo bo) {
  124. Incident add = BeanUtil.toBean(bo, Incident.class);
  125. add.setExprJson(JSONUtil.toJsonStr(bo.getMessagePushUsers()));
  126. boolean save = save(add);
  127. JSONObject jsonObject = new JSONObject();
  128. jsonObject.set("des", "事件接报");
  129. jsonObject.set("incidentId", add.getId());
  130. jsonObject.set("incidentStatus", 2);
  131. RedisUtils.publish(Constants.PROCESS_RECORD, jsonObject, msg -> {
  132. log.info("事件处置详情消息 => " + msg);
  133. });
  134. return add.getId();
  135. }
  136. @Override
  137. @Transactional(rollbackFor = Exception.class)
  138. public Boolean updateByBo(IncidentBo bo) {
  139. bo.setCreateBy(null);
  140. bo.setCreateDept(null);
  141. bo.setAssistDept(StrUtil.nullToEmpty(bo.getAssistDept()));
  142. bo.setAssistTaskUser(StrUtil.nullToEmpty(bo.getAssistTaskUser()));
  143. // bo.setAssistDeptUser(StrUtil.nullToEmpty(bo.getAssistDeptUser()));
  144. // 是否为状态变更
  145. boolean flag;
  146. // 查询变更前信息
  147. IncidentVo beforeInfo = getVoById(bo.getId());
  148. log.info("事件变更前信息:{}", beforeInfo);
  149. log.info("事件变更后信息:{}", bo);
  150. if (beforeInfo != null) {
  151. flag = !(beforeInfo.getStatus().equals(bo.getStatus()));
  152. } else {
  153. throw new ServiceException("事件不存在!");
  154. }
  155. Incident update = BeanUtil.toBean(bo, Incident.class);
  156. // 待删除事件用户关系的array
  157. JSONArray removeJsonArray = new JSONArray();
  158. // 待新增事件用户关系的array
  159. JSONArray saveJsonArray = new JSONArray();
  160. // 待发送消息的jsonObject
  161. JSONObject sendJsonObject = new JSONObject();
  162. if (flag && bo.getStatus() == 3) {
  163. // 第一次派发(只派发给主办人员)
  164. // 待处置状态
  165. if (StrUtil.isBlank(bo.getMadinTaskUser())) {
  166. throw new ServiceException("请选择主办单位处置人员!");
  167. }
  168. List<MessagePushUser> madinTaskUserList = JSONUtil.toList(bo.getMadinTaskUser(), MessagePushUser.class);
  169. if (madinTaskUserList != null && madinTaskUserList.size() > 0) {
  170. // 通过主办人员分析出主办单位
  171. SysDept sysDept = sysDeptService.selectDeptById(madinTaskUserList.get(0).getDeptId());
  172. if (sysDept != null) {
  173. SysDept orgDept = sysDeptService.getOrgDept(sysDept);
  174. if (orgDept != null) {
  175. update.setMadinDept(orgDept.getDeptId());
  176. update.setMadinDeptText(orgDept.getDeptName());
  177. }
  178. }
  179. // 组装人员数据
  180. // 主办单位处置人员
  181. for (MessagePushUser messagePushUser : madinTaskUserList) {
  182. IncidentUser save = new IncidentUser();
  183. save.setIncidentId(bo.getId());
  184. save.setUserId(messagePushUser.getUserId());
  185. save.setSource("2");
  186. saveJsonArray.add(save);
  187. }
  188. }
  189. // 主办单位通知人员
  190. if (StrUtil.isNotBlank(bo.getMadinDeptUser())) {
  191. for (MessagePushUser messagePushUser : JSONUtil.toList(bo.getMadinDeptUser(), MessagePushUser.class)) {
  192. IncidentUser save = new IncidentUser();
  193. save.setIncidentId(bo.getId());
  194. save.setUserId(messagePushUser.getUserId());
  195. save.setSource("6");
  196. saveJsonArray.add(save);
  197. }
  198. }
  199. } else if (!flag
  200. && bo.getStatus() == 3
  201. && (
  202. // !StrUtil.equals(bo.getAssistDept(), beforeInfo.getAssistDept())
  203. !StrUtil.equals(bo.getCommanderUser(), beforeInfo.getCommanderUser())
  204. || !StrUtil.equals(bo.getAssistTaskUser(), beforeInfo.getAssistTaskUser())
  205. /*|| !StrUtil.equals(bo.getAssistDeptUser(), beforeInfo.getAssistDeptUser())*/)) {
  206. // 协办部门派发或再次对协办修改
  207. // 重新冗余协办部门、总指挥
  208. /*if (StrUtil.isBlank(bo.getCommander())) {
  209. throw new ServiceException("请选择总指挥!");
  210. }*/
  211. if (StrUtil.isNotBlank(bo.getCommanderUser())) {
  212. List<MessagePushUser> commandUser = JSONUtil.toList(StrUtil.blankToDefault(bo.getCommanderUser(), "[]"), MessagePushUser.class);
  213. if (commandUser.size() > 0) {
  214. bo.setCommander(commandUser.get(0).getUserId());
  215. update.setCommanderText(commandUser.get(0).getNickName());
  216. update.setCommander(bo.getCommander());
  217. }
  218. }
  219. // 分析变更的派发对象
  220. // 变更的总指挥(目前需求:总指挥不能变更)
  221. String oldCommander = beforeInfo.getCommander();
  222. String newCommander = bo.getCommander();
  223. List<MessagePushUser> oldCommanderUser = JSONUtil.toList(StrUtil.blankToDefault(beforeInfo.getCommanderUser(), "[]"), MessagePushUser.class);
  224. List<MessagePushUser> newCommanderUser = JSONUtil.toList(StrUtil.blankToDefault(bo.getCommanderUser(), "[]"), MessagePushUser.class);
  225. List<MessagePushUser> addCommanderUser = CollUtil.subtractToList(newCommanderUser, oldCommanderUser);
  226. /*if (StrUtil.isNotBlank(oldCommander) && !StrUtil.equals(oldCommander, newCommander)) {
  227. // 删除关系
  228. IncidentUser remove = new IncidentUser();
  229. remove.setIncidentId(bo.getId());
  230. remove.setUserId(oldCommander);
  231. remove.setSource("5");
  232. removeJsonArray.add(remove);
  233. }*/
  234. // 将总指挥加入到关系
  235. if (StrUtil.isNotBlank(newCommander) && !StrUtil.equals(oldCommander, newCommander)) {
  236. IncidentUser save = new IncidentUser();
  237. save.setIncidentId(bo.getId());
  238. save.setUserId(newCommander);
  239. save.setSource("5");
  240. saveJsonArray.add(save);
  241. }
  242. // 变更的协办处置人员
  243. List<MessagePushUser> oldAssistTaskUser = JSONUtil.toList(StrUtil.blankToDefault(beforeInfo.getAssistTaskUser(), "[]"), MessagePushUser.class);
  244. List<MessagePushUser> newAssistTaskUser = JSONUtil.toList(StrUtil.blankToDefault(bo.getAssistTaskUser(), "[]"), MessagePushUser.class);
  245. List<MessagePushUser> removeAssistTaskUser = CollUtil.subtractToList(oldAssistTaskUser, newAssistTaskUser);
  246. List<MessagePushUser> addAssistTaskUser = CollUtil.subtractToList(newAssistTaskUser, oldAssistTaskUser);
  247. for (MessagePushUser messagePushUser : removeAssistTaskUser) {
  248. // 删除关系
  249. IncidentUser remove = new IncidentUser();
  250. remove.setIncidentId(bo.getId());
  251. remove.setUserId(messagePushUser.getUserId());
  252. remove.setSource("4");
  253. removeJsonArray.add(remove);
  254. }
  255. for (MessagePushUser messagePushUser : addAssistTaskUser) {
  256. IncidentUser save = new IncidentUser();
  257. save.setIncidentId(bo.getId());
  258. save.setUserId(messagePushUser.getUserId());
  259. save.setSource("4");
  260. saveJsonArray.add(save);
  261. }
  262. // 通过协办处置人员查询相关的协办部门
  263. if (addAssistTaskUser.size() > 0) {
  264. Set<String> assistTaskDept = new HashSet<>();
  265. Set<String> assistTaskDeptText = new HashSet<>();
  266. for (MessagePushUser messagePushUser : newAssistTaskUser) {
  267. SysDept sysDept = sysDeptService.selectDeptById(messagePushUser.getDeptId());
  268. if (sysDept != null) {
  269. SysDept orgDept = sysDeptService.getOrgDept(sysDept);
  270. if (orgDept != null) {
  271. assistTaskDept.add(orgDept.getDeptId());
  272. assistTaskDeptText.add(orgDept.getDeptName());
  273. }
  274. }
  275. }
  276. update.setAssistDept(String.join(",", assistTaskDept));
  277. update.setAssistDeptText(String.join(",", assistTaskDeptText));
  278. }
  279. // 变更的协办通知人员
  280. /*List<MessagePushUser> oldAssistDeptUser = JSONUtil.toList(StrUtil.blankToDefault(beforeInfo.getAssistDeptUser(), "[]"), MessagePushUser.class);
  281. List<MessagePushUser> newAssistDeptUser = JSONUtil.toList(StrUtil.blankToDefault(bo.getAssistDeptUser(), "[]"), MessagePushUser.class);
  282. List<MessagePushUser> removeAssistDeptUser = CollUtil.subtractToList(oldAssistDeptUser, newAssistDeptUser);
  283. List<MessagePushUser> addAssistDeptUser = CollUtil.subtractToList(newAssistDeptUser, oldAssistDeptUser);
  284. for (MessagePushUser messagePushUser : removeAssistDeptUser) {
  285. // 删除关系
  286. IncidentUser remove = new IncidentUser();
  287. remove.setIncidentId(bo.getId());
  288. remove.setUserId(messagePushUser.getUserId());
  289. remove.setSource("6");
  290. removeJsonArray.add(remove);
  291. }
  292. for (MessagePushUser messagePushUser : addAssistDeptUser) {
  293. IncidentUser save = new IncidentUser();
  294. save.setIncidentId(bo.getId());
  295. save.setUserId(messagePushUser.getUserId());
  296. save.setSource("6");
  297. saveJsonArray.add(save);
  298. }*/
  299. if (addCommanderUser.size() > 0 || addAssistTaskUser.size() > 0) {
  300. Set<MessagePushUser> sendUser = CollUtil.unionDistinct(addCommanderUser, addAssistTaskUser);
  301. List<MessagePushUser> taskUser = JSONUtil.toList(StrUtil.blankToDefault(update.getAssistTaskUser(), "[]"), MessagePushUser.class);
  302. String taskUserCollect = taskUser.stream().map(MessagePushUser::getNickName).collect(Collectors.joining(","));
  303. // 生成一条指令并发送
  304. IncidentTasksBo task = new IncidentTasksBo();
  305. task.setIncidentId(bo.getId());
  306. task.setTaskName(String.format("成立指挥机构:总指挥【%s】,协办部门【%s】,协办人员【%s】",
  307. StrUtil.blankToDefault(update.getCommanderText(), "无"),
  308. StrUtil.blankToDefault(update.getAssistDeptText(), "无"),
  309. StrUtil.blankToDefault(taskUserCollect, "无")));
  310. task.setSendFlag("1");
  311. task.setMessagePushUsers(new ArrayList<>(sendUser));
  312. task.setTaskSend("1");
  313. incidentTaskService.insertByBo(task);
  314. sendJsonObject.set("des", "发送总指挥及协办部门");
  315. sendJsonObject.set("incidentStatus", bo.getStatus());
  316. sendJsonObject.set("incidentId", bo.getId());
  317. sendJsonObject.set("messagePushUsers", sendUser);
  318. sendJsonObject.set("taskId", task.getId());
  319. RedisUtils.publish(Constants.NOTICE_PUSH_SINGLE, sendJsonObject);
  320. }
  321. } else if (flag && bo.getStatus() == 4) {
  322. // 将待办变成已办
  323. // 查询待办的处置方案
  324. List<IncidentTask> taskList = incidentTaskService.list(Wrappers.<IncidentTask>lambdaQuery()
  325. .in(IncidentTask::getSendFlag, "2", "3")
  326. .eq(IncidentTask::getTaskSend, "1")
  327. .eq(IncidentTask::getBackLogFlag, "0"));
  328. if (taskList != null && taskList.size() > 0) {
  329. List<String> TaskIds = taskList.stream().map(IncidentTask::getId).collect(Collectors.toList());
  330. // 更新task中状态
  331. incidentTaskService.update(Wrappers.<IncidentTask>lambdaUpdate()
  332. .set(IncidentTask::getBackLogFlag, "1")
  333. .in(IncidentTask::getSendFlag, "2", "3")
  334. .eq(IncidentTask::getTaskSend, "1")
  335. .eq(IncidentTask::getBackLogFlag, "0"));
  336. // 去日志中找到相应的日志,更改待办变为已办
  337. List<IncidentProcess> processList = incidentProcessService.list(Wrappers.<IncidentProcess>lambdaQuery()
  338. .in(IncidentProcess::getTaskId, TaskIds)
  339. .in(IncidentProcess::getStatus, 2, 3));
  340. // 组装需要调用已办接口的数据
  341. if (processList != null && processList.size() > 0) {
  342. List<BacklogMessageUpdateBo> list = new ArrayList<>();
  343. for (IncidentProcess incidentProcess : processList) {
  344. BacklogMessageUpdateBo messageUpdateBo = new BacklogMessageUpdateBo();
  345. messageUpdateBo.setUuid(incidentProcess.getId());
  346. incidentProcess.setDes(incidentProcess.getDes().replace("【待办】", "【已办】"));
  347. list.add(messageUpdateBo);
  348. }
  349. Object o = feignBacklogInfoService.backlogMessageUpdate(list);
  350. log.info("消息待办办结返回结果:{}", o);
  351. incidentProcessService.updateBatchById(processList);
  352. }
  353. }
  354. }
  355. // 更新事件信息
  356. boolean b = updateById(update);
  357. if (removeJsonArray.size() > 0) {
  358. log.info("需要移除的用户事件关系:{}", removeJsonArray);
  359. RedisUtils.publish(Constants.INCIDENT_USER_DELETE, removeJsonArray);
  360. }
  361. if (saveJsonArray.size() > 0) {
  362. log.info("需要新增的用户事件关系:{}", saveJsonArray);
  363. RedisUtils.publish(Constants.INCIDENT_USER_BATCH, saveJsonArray);
  364. }
  365. if (flag) {
  366. if (bo.getStatus() == 3) {
  367. // 第一次派发给主办部门时
  368. RedisUtils.publish(Constants.NOTICE_PUSH, 1 + "A" + update.getId());
  369. return b;
  370. }
  371. // 事件状态的变更,将发送到处置日志中
  372. sendJsonObject.set("incidentId", update.getId());
  373. sendJsonObject.set("incidentStatus", update.getStatus());
  374. RedisUtils.publish(Constants.PROCESS_RECORD, sendJsonObject);
  375. }
  376. return b;
  377. }
  378. @Override
  379. public Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid) {
  380. if (isValid) {
  381. //TODO 做一些业务上的校验,判断是否需要校验
  382. }
  383. return removeByIds(ids);
  384. }
  385. @Override
  386. @Transactional(rollbackFor = Exception.class)
  387. public void savePlanAndCreate(IncidentBo bo) {
  388. Incident update = BeanUtil.toBean(bo, Incident.class);
  389. boolean b = updateById(update);
  390. if (b) {
  391. // 根据预案生成处置方案
  392. List<PlanVo> voOne = iPlanService.listVo(Wrappers.<Plan>lambdaQuery().eq(Plan::getType, bo.getType()).eq(Plan::getCreateDept, bo.getPlanDept()));
  393. if (voOne != null && voOne.size() > 0) {
  394. Map<Integer, List<PlanTaskVo>> integerListMap = planTaskService.queryPlanTaskByPlanId(voOne.get(0).getId());
  395. if (integerListMap != null) {
  396. List<PlanTaskVo> planTaskVos = integerListMap.get(bo.getLevel());
  397. if (planTaskVos != null) {
  398. for (PlanTaskVo planTaskVo : planTaskVos) {
  399. IncidentTasksBo task = new IncidentTasksBo();
  400. task.setIncidentId(bo.getId());
  401. task.setTaskName(planTaskVo.getTaskName() + ":" + planTaskVo.getTaskDes());
  402. task.setSendFlag("2");
  403. incidentTaskService.insertByBo(task);
  404. }
  405. }
  406. }
  407. }
  408. }
  409. }
  410. }