Commit 528e6788 authored by xinglei's avatar xinglei

*)增加隐患消息

parent f9f8ccb1
package com.yeejoin.amos.boot.biz.common.service; package com.yeejoin.amos.boot.biz.common.service;
import java.util.List;
import java.util.Map; import java.util.Map;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
...@@ -59,6 +60,12 @@ public interface IWorkflowExcuteService{ ...@@ -59,6 +60,12 @@ public interface IWorkflowExcuteService{
* @throws Exception * @throws Exception
*/ */
public Object getCurrentUserAllTaskList(String key, ReginParams userInfo) throws Exception; public Object getCurrentUserAllTaskList(String key, ReginParams userInfo) throws Exception;
/**
* 根据流程id获取下一节点操作人员userId集合
* @param procressId
* @return
* @throws Exception
*/
public List<String> getUserIdsByWorkflow(String procressId, String checkLeaderId) throws Exception;
} }
...@@ -16,11 +16,8 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil; ...@@ -16,11 +16,8 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.*;
import java.util.HashMap; import java.util.stream.Collectors;
import java.util.Map;
import java.util.Random;
import java.util.Set;
@Service @Service
public class WorkflowExcuteServiceImpl implements IWorkflowExcuteService { public class WorkflowExcuteServiceImpl implements IWorkflowExcuteService {
...@@ -267,4 +264,27 @@ public class WorkflowExcuteServiceImpl implements IWorkflowExcuteService { ...@@ -267,4 +264,27 @@ public class WorkflowExcuteServiceImpl implements IWorkflowExcuteService {
return allTaskResultList; return allTaskResultList;
} }
/**
* 根据工作流获取下一审核人角色下的所有用户ID
* @return
*/
@Override
public List<String> getUserIdsByWorkflow(String procressId, String checkLeaderId) throws Exception {
List<String> userIds = new ArrayList<>();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
JSONArray taskDetailArray = teskObject.getJSONArray(WorkFlowEnum.DATA.getCode());
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
JSONArray informerList = detail.getJSONArray(WorkFlowEnum.INFORMERLIST.getCode());
if (informerList.size() > 0) {
userIds = informerList.stream().map(item -> {
JSONObject jsonItem = (JSONObject) item;
return jsonItem.getString("userId");
}).collect(Collectors.toList());
} else {
userIds.add(checkLeaderId);
}
}
return userIds;
}
} }
...@@ -18,4 +18,9 @@ public class DangerExecuteSubmitDto extends ExecuteSubmitDto { ...@@ -18,4 +18,9 @@ public class DangerExecuteSubmitDto extends ExecuteSubmitDto {
private Long dangerId; private Long dangerId;
private LatentDangerExecuteTypeEnum executeTypeEnum; private LatentDangerExecuteTypeEnum executeTypeEnum;
/**
* 检查组长userId
*/
private String checkLeaderId;
} }
...@@ -287,6 +287,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD ...@@ -287,6 +287,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
latentDanger.setCurrentFlowRecordId(inputRecord.getId()); latentDanger.setCurrentFlowRecordId(inputRecord.getId());
latentDanger.setInstanceId(instance.getString("id")); latentDanger.setInstanceId(instance.getString("id"));
latentDangerMapper.updateById(latentDanger); latentDangerMapper.updateById(latentDanger);
asyncTask.sendDangerMsg(RequestContext.cloneRequestContext(), latentDanger, onSiteConfirmRole);
} }
// TODO 使用远程调用替换 // TODO 使用远程调用替换
...@@ -1213,6 +1214,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD ...@@ -1213,6 +1214,7 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
// 4、在执行完节点后需要将检查组长id设置为下个节点执行人 // 4、在执行完节点后需要将检查组长id设置为下个节点执行人
Object resultObj = workflowExecuteService.setTaskAssign(latentDanger.getInstanceId(), checkLeaderId); Object resultObj = workflowExecuteService.setTaskAssign(latentDanger.getInstanceId(), checkLeaderId);
executeSubmitDto.setCheckLeaderId(userModel.getUserId());
if (!(Boolean) resultObj) { if (!(Boolean) resultObj) {
executeSubmitDto.setIsOk(false); executeSubmitDto.setIsOk(false);
...@@ -2078,6 +2080,8 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD ...@@ -2078,6 +2080,8 @@ public class LatentDangerServiceImpl extends BaseService<LatentDangerBo, LatentD
if (!executeSubmitDto.getIsOk()) { if (!executeSubmitDto.getIsOk()) {
throw new Exception(executeSubmitDto.getMsg()); throw new Exception(executeSubmitDto.getMsg());
} }
List<String> userIds = workflowExecuteService.getUserIdsByWorkflow(latentDanger.getInstanceId(), executeSubmitDto.getCheckLeaderId());
asyncTask.sendDangerSubmitMsg(RequestContext.cloneRequestContext(), latentDanger, userIds);
return executeSubmitDto; return executeSubmitDto;
} }
......
...@@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONArray; ...@@ -4,12 +4,16 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.MessageModel; import com.yeejoin.amos.feign.systemctl.model.MessageModel;
import com.yeejoin.amos.latentdanger.business.param.JPushTypeEnum; import com.yeejoin.amos.latentdanger.business.param.JPushTypeEnum;
import com.yeejoin.amos.latentdanger.business.param.PushMsgParam; import com.yeejoin.amos.latentdanger.business.param.PushMsgParam;
import com.yeejoin.amos.latentdanger.business.util.Toke; import com.yeejoin.amos.latentdanger.business.util.Toke;
import com.yeejoin.amos.latentdanger.common.enums.MsgSubscribeEnum; import com.yeejoin.amos.latentdanger.common.enums.MsgSubscribeEnum;
import com.yeejoin.amos.latentdanger.dao.entity.LatentDanger;
import com.yeejoin.amos.latentdanger.dao.entity.Msg; import com.yeejoin.amos.latentdanger.dao.entity.Msg;
import com.yeejoin.amos.latentdanger.feign.RemoteSecurityService; import com.yeejoin.amos.latentdanger.feign.RemoteSecurityService;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -17,12 +21,16 @@ import org.slf4j.LoggerFactory; ...@@ -17,12 +21,16 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.context.RequestContextModel;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.Date; import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
/** /**
* 异步执行任务 * 异步执行任务
...@@ -33,6 +41,7 @@ import java.util.Set; ...@@ -33,6 +41,7 @@ import java.util.Set;
public class AsyncTask { public class AsyncTask {
private static final String TAB = "\r\n"; private static final String TAB = "\r\n";
private final Logger log = LoggerFactory.getLogger(AsyncTask.class); private final Logger log = LoggerFactory.getLogger(AsyncTask.class);
private final String msgType = "danger";
// @Autowired // @Autowired
// private IMsgDao iMsgDao; // private IMsgDao iMsgDao;
// @Autowired // @Autowired
...@@ -146,4 +155,58 @@ public class AsyncTask { ...@@ -146,4 +155,58 @@ public class AsyncTask {
// messageService.pushMsg(toke.getToke(), toke.getProduct(), toke.getAppKey(), pushMsgParam); // messageService.pushMsg(toke.getToke(), toke.getProduct(), toke.getAppKey(), pushMsgParam);
} }
} }
/**
* 提交隐患发送消息至检查组员被检查单位确认隐患
*/
@Async
public void sendDangerMsg(RequestContextModel requestContextModel, LatentDanger latentDanger, String roleName){
RequestContext.setToken(requestContextModel.getToken());
RequestContext.setProduct(requestContextModel.getProduct());
RequestContext.setAppKey(requestContextModel.getAppKey());
MessageModel model = new MessageModel();
model.setTitle(latentDanger.getDangerName());
String body = String.format("隐患名称:%s;隐患级别:%s;治理方式:%s",
latentDanger.getDangerName(), latentDanger.getDangerLevelName(), latentDanger.getReformTypeName());
model.setBody(body);
model.setIsSendApp(true);
model.setMsgType(msgType);
try {
List<RoleModel> result = Privilege.roleClient.queryRoleList(roleName, null).getResult();
if (result.size() > 0) {
List<AgencyUserModel> userModels = Privilege.agencyUserClient.queryByRoleId(String.valueOf(result.get(0).getSequenceNbr()), null).getResult();
List<String> userIds = userModels.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
model.setRecivers(userIds);
}
model.setRelationId(String.valueOf(latentDanger.getId()));
Systemctl.messageClient.create(model);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 确认隐患发送消息
*/
@Async
public void sendDangerSubmitMsg(RequestContextModel requestContextModel, LatentDanger latentDanger, List<String> userIds){
RequestContext.setToken(requestContextModel.getToken());
RequestContext.setProduct(requestContextModel.getProduct());
RequestContext.setAppKey(requestContextModel.getAppKey());
MessageModel model = new MessageModel();
model.setTitle(latentDanger.getDangerName());
String body = String.format("隐患名称:%s;隐患级别:%s;治理方式:%s",
latentDanger.getDangerName(), latentDanger.getDangerLevelName(), latentDanger.getReformTypeName());
model.setBody(body);
model.setIsSendWeb(true);
model.setIsSendApp(true);
model.setMsgType(msgType);
model.setRecivers(userIds);
try {
model.setRelationId(String.valueOf(latentDanger.getId()));
Systemctl.messageClient.create(model);
} catch (Exception e) {
e.printStackTrace();
}
}
} }
package com.yeejoin.amos.supervision.business.service.impl; package com.yeejoin.amos.supervision.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Joiner; import com.google.common.base.Joiner;
...@@ -29,6 +30,7 @@ import com.yeejoin.amos.supervision.business.vo.CheckAnalysisVo; ...@@ -29,6 +30,7 @@ import com.yeejoin.amos.supervision.business.vo.CheckAnalysisVo;
import com.yeejoin.amos.supervision.business.vo.CheckInfoVo; import com.yeejoin.amos.supervision.business.vo.CheckInfoVo;
import com.yeejoin.amos.supervision.business.vo.CheckVo; import com.yeejoin.amos.supervision.business.vo.CheckVo;
import com.yeejoin.amos.supervision.common.enums.*; import com.yeejoin.amos.supervision.common.enums.*;
import com.yeejoin.amos.supervision.core.async.AsyncTask;
import com.yeejoin.amos.supervision.core.common.dto.DangerDto; import com.yeejoin.amos.supervision.core.common.dto.DangerDto;
import com.yeejoin.amos.supervision.core.common.request.CommonPageable; import com.yeejoin.amos.supervision.core.common.request.CommonPageable;
import com.yeejoin.amos.supervision.core.common.response.*; import com.yeejoin.amos.supervision.core.common.response.*;
...@@ -47,7 +49,9 @@ import org.springframework.data.domain.Page; ...@@ -47,7 +49,9 @@ import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageImpl;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.transaction.Transactional; import javax.transaction.Transactional;
...@@ -97,6 +101,12 @@ public class CheckServiceImpl implements ICheckService { ...@@ -97,6 +101,12 @@ public class CheckServiceImpl implements ICheckService {
IPlanTaskService planTaskService; IPlanTaskService planTaskService;
@Autowired @Autowired
private IPlanService planService;
@Autowired
private AsyncTask asyncTask;
@Autowired
DangerFeignClient DangerFeignClient; DangerFeignClient DangerFeignClient;
@Autowired @Autowired
...@@ -1414,7 +1424,6 @@ public class CheckServiceImpl implements ICheckService { ...@@ -1414,7 +1424,6 @@ public class CheckServiceImpl implements ICheckService {
if (!depName.contains(personIdentity.getCompanyName())) { if (!depName.contains(personIdentity.getCompanyName())) {
check.setDepName(depName + "," + personIdentity.getCompanyName()); check.setDepName(depName + "," + personIdentity.getCompanyName());
} }
} }
List<CheckInputParam> list = recordParam.getCheckItems(); List<CheckInputParam> list = recordParam.getCheckItems();
...@@ -1560,6 +1569,12 @@ public class CheckServiceImpl implements ICheckService { ...@@ -1560,6 +1569,12 @@ public class CheckServiceImpl implements ICheckService {
planTaskDetailMapper.finishTaskDetail(Long.parseLong(detail.get("planTaskDetailId").toString()), recordParam.getPointId(), planTaskDetailMapper.finishTaskDetail(Long.parseLong(detail.get("planTaskDetailId").toString()), recordParam.getPointId(),
recordParam.getPlanTaskId(), mtUserSeq, userName, size, planTaskStatus); recordParam.getPlanTaskId(), mtUserSeq, userName, size, planTaskStatus);
Plan plan = planService.queryPlanById(planTask.getPlanId());
// 计划完成,发送消息
if (PlanStatusEnum.COMPLETED.getValue() == plan.getStatus()){
asyncTask.sendPlanMsgToLeadPeople(RequestContext.cloneRequestContext(), plan);
}
// p_plan_task_detail更新隐患个数 // p_plan_task_detail更新隐患个数
planTaskDetailMapper.updateDanger(Long.parseLong(detail.get("planTaskDetailId").toString())); planTaskDetailMapper.updateDanger(Long.parseLong(detail.get("planTaskDetailId").toString()));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment