法规技术评估跳转路由

This commit is contained in:
CD
2022-11-04 14:33:12 +08:00
parent f4ff9764b5
commit ffda1d0f8d
5 changed files with 193 additions and 51 deletions
@@ -19,10 +19,7 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -104,13 +101,18 @@ public class LawsTechnologyEvaluationRemindJob implements Job {
}).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(actiProcInstIds)){
List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
if(CollectionUtils.isNotEmpty(userIdList)){
JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userIdList",userIdList);
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
//List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
for (String actiProcInstId : actiProcInstIds.split(",")) {
Map<String, String> map = this.workFlowFeignClient.getTaskInfo(actiProcInstId);
if (!map.isEmpty()) {
JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userId",map.get("userId"));
sendJsonObject.put("taskId",map.get("taskId"));
sendJsonObject.put("taskDefKey",map.get("taskDefKey"));
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
}
}
}
} else if (endTime.equals(now)){
@@ -124,13 +126,18 @@ public class LawsTechnologyEvaluationRemindJob implements Job {
}).map(LawsTechnologyEvaluationFlowDetailEO::getActiProcInstId).distinct().collect(Collectors.joining(","));
if(StringUtils.isNotEmpty(actiProcInstIds)){
List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
if(CollectionUtils.isNotEmpty(userIdList)){
JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userIdList",userIdList);
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
//List<String> userIdList = this.workFlowFeignClient.getTaskAssigneeListByPrcIds(actiProcInstIds);
for (String actiProcInstId : actiProcInstIds.split(",")) {
Map<String, String> map = this.workFlowFeignClient.getTaskInfo(actiProcInstId);
if (!map.isEmpty()) {
JSONObject sendJsonObject = new JSONObject();
sendJsonObject.put("msgType", MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue());
sendJsonObject.put("lawsTechnologyEvaluationId",lawsTechnologyEvaluationEO.getId());
sendJsonObject.put("userId",map.get("userId"));
sendJsonObject.put("taskId",map.get("taskId"));
sendJsonObject.put("taskDefKey",map.get("taskDefKey"));
this.lawsTechnologyEvaluationEOService.workFlowSendMsg(sendJsonObject);
}
}
}
}
@@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface LawsTechnologyEvaluationFlowDetailEOMapper extends BaseMapper<LawsTechnologyEvaluationFlowDetailEO> {
LawsTechnologyEvaluationFlowDetailEO queryByEvaluationId(@Param("lawsTechnologyEvaluationId") String lawsTechnologyEvaluationId);
LawsTechnologyEvaluationFlowDetailEO queryByEvaluationId(@Param("lawsTechnologyEvaluationId") String lawsTechnologyEvaluationId,
@Param("evaluator") String evaluator);
}
@@ -17,7 +17,7 @@
<select id="queryByEvaluationId" resultMap="LawsTechnologyEvaluationFlowDetailEOResultMap">
select * from laws_technology_evaluation_flow_detail where laws_technology_evaluation_id = #{lawsTechnologyEvaluationId}
select * from laws_technology_evaluation_flow_detail where laws_technology_evaluation_id = #{lawsTechnologyEvaluationId} and evaluator_id = #{evaluator}
</select>
@@ -623,17 +623,18 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
//String serialNumber = jsonObject.getString("serialNumber"); //文档库编号
List<String> userIdList = new ArrayList<>();
String taskId = jsonObject.getString("taskId");
//飞书跳转链接
String hrefFeishu = "";
//String msgContentEN = "";
//String msgTitle = "";
String initiator = "";
String lawsTechnologyEvaluationId = jsonObject.getString("lawsTechnologyEvaluationId");
LawsTechnologyEvaluationEO lawsTechnologyEvaluationEO = queryById(lawsTechnologyEvaluationId);
//LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId);
//String number = flowDetailEO.getPrcNum();
//String name = flowDetailEO.getPrcName();
String endTime = new SimpleDateFormat("yyyy-MM-dd").format(lawsTechnologyEvaluationEO.getEndTime());
//英文标题
BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(lawsTechnologyEvaluationEO.getStandId());
@@ -643,7 +644,7 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
String enContentUpper = "";
String enContentLower = "";
if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_START_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId"));
//userIdList.add(jsonObject.getString("evaluationId"));
//String endTime = jsonObject.getString("endTime"); //截止日期
//您收到GB 7258 的法规技术评估流程任务,请及时查看处理。
//msgContentEN = "You recieved the Regulatory and technical assessment of "+serialNumber+" . The due date is "+endTime+". Please check and address it in a timely manner.";
@@ -663,28 +664,83 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator +
"\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=pgrqr&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType,MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_ENALUATOR_SUBMIT_MSG.getValue())){
String currentUserId = jsonObject.getString("currentUserId"); //当前操作用户id
SysUser currentUser = this.sysUserService.getBaseMapper().selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getId, currentUserId));
userIdList.add(jsonObject.getString("initiatorUserId"));
//userIdList.add(jsonObject.getString("initiatorUserId"));
//XXX(人员账号)已提交GB 7258 的法规意见收集流程,请及时查看审核。
//msgContentEN = currentUser.getUsername() + " has submitted the collection process of Regulatory and technical assessment of "+serialNumber+", Please check and address it in time.";
//msgTitle = "You have a Regulatory and technical assessment task to complete";
initiator = currentUser.getUsername();
cnContentUpper = "您好,"+ currentUser.getUsername() +"已提交评估结果,请审核";
cnContentUpper = "您好,"+ initiator +"已提交评估结果,请审核";
cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\n标题: " + lawsTechnologyEvaluationEO.getTitle() +
"\n发起人: " + initiator +
"\n截止时间: " + endTime;
enContentUpper = "Hello! "+ currentUser.getUsername() +" has submitted the assessment result. Please review it";
enContentUpper = "Hello! "+ initiator +" has submitted the assessment result. Please review it";
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator +
"\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=fqrsc&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_ACCEPTED_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId"));
//userIdList.add(jsonObject.getString("evaluationId"));
//您提交的GB 7258 的法规技术评估流程已通过。
//msgContentEN = "The regulatory and technical assessment process for "+serialNumber+" you submitted has passed.";
//msgTitle = "You have a Regulatory and technical assessment task completed";
@@ -701,8 +757,33 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator +
"\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluationId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=fqrsc&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=true";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluationId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
}else if(StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_AUDIT_REJECTED_MSG.getValue())){
userIdList.add(jsonObject.getString("evaluationId"));
//userIdList.add(jsonObject.getString("evaluationId"));
//您提交的GB 7258 的法规技术评估流程已被退回,请及时查看处理。
//msgContentEN = "The regulatory and technical assessment process of "+serialNumber+" you submitted has been returned, Please check and address it in time.";
//msgTitle = "You have a Regulatory and technical assessment task to complete";
@@ -719,6 +800,30 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + initiator +
"\nDue Date: " + endTime;
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey=pgrqr&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("evaluators"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_THREE_DAYS_BEFORE_MSG.getValue())) {
cnContentUpper = "您好,该任务将于3天后到期,请及时查看处理,谢谢!";
cnContentLower = "编号:" + lawsTechnologyEvaluationEO.getSerialNumber() +
@@ -728,7 +833,29 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
userIdList = (List<String>) jsonObject.get("userIdList");
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey="+ jsonObject.getString("taskDefKey") +"&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_TODAY_MSG.getValue())) {
cnContentUpper = "您好,该任务将于今天到期,请尽快查看处理,谢谢!";
@@ -739,7 +866,29 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
enContentLower = "Regulation No :" + lawsTechnologyEvaluationEO.getSerialNumber() +
"\nTitle: " + bussDocumentLibraryEO.getTitleEn() +
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
userIdList = (List<String>) jsonObject.get("userIdList");
LawsTechnologyEvaluationFlowDetailEO flowDetailEO = flowDetailEOMapper.queryByEvaluationId(lawsTechnologyEvaluationId,jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(flowDetailEO)) {
hrefFeishu = backUrl + "/evaluationProcess?taskDefinitionKey="+ jsonObject.getString("taskDefKey") +"&taskIds="+ taskId +"&prcType=6&prcNum="+ flowDetailEO.getPrcNum() +"&prcId="+ flowDetailEO.getActiProcInstId() +"&router=%2FregulatoryAssessmentTasks&isDisabled=false";
String[] thirdId = new String[1];
SysUser sysUser = sysUserService.getById(jsonObject.getString("userId"));
if (ObjectUtils.isNotEmpty(sysUser)) {
thirdId[0] = sysUser.getThirdId();
}
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdId, feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
}
} /*else if (StringUtils.equals(msgType, MsgTypeEnum.LAWS_TECHNOLOGY_EVALUATION_EXPIRE_REMIND_MSG.getValue())) {
userIdList = (List<String>) jsonObject.get("userIdList");
@@ -750,26 +899,6 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
initiator = MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName();
} */
List<String> thirdIdList = new ArrayList<>();
List<SysUser> sysUsers = sysUserService.listByIds(userIdList);
if (ObjectUtils.isNotEmpty(sysUsers)) {
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
}
//飞书跳转链接
String hrefFeishu = backUrl + JumpLinkEnum.FGPG_TODO_CENTER_LINK.getLink();
try {
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
feishuMsgVo.setTitle(title);
feishuMsgVo.setCnContentUpper(cnContentUpper);
feishuMsgVo.setCnContentLower(cnContentLower);
feishuMsgVo.setEnContentUpper(enContentUpper);
feishuMsgVo.setEnContentLower(enContentLower);
feishuMsgVo.setUrl(hrefFeishu);
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
} catch (IOException e) {
log.error("飞书消息推送失败");
}
//系统内部跳转链接
//String href = "<a href='" + JumpLinkEnum.TASK_AFFIRM_LINK.getLink() + "'>" + " View details" + "</a>";
//String contentInfo = msgContentEN + " " + href;
@@ -198,4 +198,9 @@ public interface WorkFlowFeignClient {
*/
@RequestMapping(value = "/bat-wkflow/datas/bus-process-new/dispostHistoryBusProcessNewData",method = RequestMethod.GET)
Result dispostHistoryBusProcessNewData();
@RequestMapping(value = "/bat-wkflow/task/getTaskInfo",method = RequestMethod.GET)
Map<String, String> getTaskInfo(@RequestParam("actiProcInstId") String actiProcInstId);
}