feat: 企标制修订发消息

This commit is contained in:
2024-01-29 09:04:30 +08:00
parent d31e354cdd
commit c9e62d7968
5 changed files with 146 additions and 1 deletions
@@ -39,6 +39,14 @@ public interface ISysUserDepartService extends IService<SysUserDepart> {
*/
List<SysUser> queryUserByDepId(String depId);
/**
* 根据部门id查询用户信息
* @param depIds
* @return
*/
List<SysUser> queryUserByDepIds(String depIds);
/**
* 根据部门code,查询当前部门和下级部门的用户信息
*/
@@ -94,6 +94,31 @@ public class SysUserDepartServiceImpl extends ServiceImpl<SysUserDepartMapper, S
return new ArrayList<>();
}
/**
* 根据部门id查询用户信息
*/
@Override
public List<SysUser> queryUserByDepIds(String depIds) {
LambdaQueryWrapper<SysUserDepart> queryUDep = new LambdaQueryWrapper<>();
queryUDep.in(SysUserDepart::getDepId, Arrays.asList(depIds.split(",")));
List<String> userIdList = new ArrayList<>();
List<SysUserDepart> uDepList = this.list(queryUDep);
if(uDepList != null && !uDepList.isEmpty()) {
for(SysUserDepart uDep : uDepList) {
userIdList.add(uDep.getUserId());
}
List<SysUser> userList = sysUserService.listByIds(userIdList);
//update-begin-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
for (SysUser sysUser : userList) {
sysUser.setSalt("");
sysUser.setPassword("");
}
//update-end-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息
return userList;
}
return new ArrayList<>();
}
/**
* 根据部门code,查询当前部门和下级部门的 用户信息
*/
@@ -0,0 +1,41 @@
package com.jero.modules.activiti.process.esRevision.entity;
import lombok.Getter;
/**
* @author: Mzaxd
* @Date: 2024/1/28 17:36
*/
public enum HandleAdviceEnum {
/**
* 1:采纳
*/
AGREE("同意", "1"),
/**
* 2:部分采纳
*/
PART_DISAGREE("部分采纳", "2"),
/**
* 3:不采纳
*/
DISAGREE("不采纳", "3"),
;
private String name;
private String value;
HandleAdviceEnum(String name, String value) {
}
public String getName() {
return name;
}
public String getValue() {
return value;
}
}
@@ -1,10 +1,14 @@
package com.jero.modules.activiti.process.esRevision.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.api.vo.SendMessageAPI;
import com.jero.common.aspect.TranslationAspect;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
@@ -18,6 +22,7 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType;
import com.jero.modules.activiti.process.esRevision.entity.EsRevisionAdvice;
import com.jero.modules.activiti.process.esRevision.entity.HandleAdviceEnum;
import com.jero.modules.activiti.process.esRevision.entity.OperateTypeEnum;
import com.jero.modules.activiti.process.esRevision.entity.vo.InspectContentVO;
import com.jero.modules.activiti.process.esRevision.entity.vo.OtherDraftUserVO;
@@ -32,9 +37,12 @@ import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserDepartService;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
@@ -87,6 +95,13 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Resource
private TranslationAspect translationAspect;
@Resource
private ISysUserDepartService sysUserDepartService;
@Resource
private SendMessageAPI sendMessageAPI;
@Override
public void startProcess(ESRevisionDataVO revisionData) {
// 执行流程发起前的操作
@@ -510,6 +525,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
// 更改保存征求意见记录
advices = data.getAdvices();
adviceService.saveOrUpdateBatch(advices);
// 给所有意见提出人发送意见反馈消息
this.sendMessageToAdviceUser(data, processInstanceId);
break;
case MAIN_DRAFT_USER_UPLOAD:
// 设置后续节点的办理人
@@ -557,6 +574,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
curUserId = UserUtils.getUserId();
data.setMainDraftUser(curUserId);
saveOrUpdate(data);
// 给授权部门的所有人员发送消息
this.sendMessageToAuthDeptUser(processInstanceId);
// TODO 在线编辑 插入签章
break;
}
@@ -614,7 +633,58 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
processHandleService.saveToDraft(processInfoVO);
}
private void sendMessageToAuthDeptUser(String processInstanceId) {
// 根据流程实例ID找到json数据
ProcessEsRevision revision = getOne(new LambdaQueryWrapper<ProcessEsRevision>()
.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId));
String businessJson = revision.getBusinessJson();
// 找到authDept字段
JSONObject jsonObject = JSON.parseObject(businessJson);
String authDept = jsonObject.getString("auth_dept");
String standardNumber = jsonObject.getString("standard_number");
String standardName = jsonObject.getString("standard_name");
// 根据部门找到所有人员
List<String> userIdList = new ArrayList<>();
List<SysUser> sysUsers = sysUserDepartService.queryUserByDepIds(authDept);
sysUsers.forEach(sysUser -> userIdList.add(sysUser.getId()));
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_STANDARD_RELEASE);
sendMessageDTO.setToUserId(String.join(",", userIdList));
Map<String, String> sendMap = new HashMap<>();
sendMap.put("standardNumber", standardNumber);
sendMap.put("standardName", standardName);
sendMessageDTO.setMap(sendMap);
sendMessageAPI.sendMessage(sendMessageDTO);
}
private void sendMessageToAdviceUser(ProcessEsRevision revision, String processInstanceId) {
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
List<EsRevisionAdvice> advices = revision.getAdvices();
// 发送消息
for (EsRevisionAdvice advice : advices) {
// 采纳的不发消息
if (HandleAdviceEnum.AGREE.getValue().equals(advice.getHandleAdvice())) {
continue;
}
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_ADVICE);
sendMessageDTO.setToUserId(advice.getCreateUserId());
Map<String, String> sendMap = new HashMap<>();
sendMap.put("prcNum", processAll.getPrcNum());
sendMap.put("prcName", processAll.getPrcName());
sendMap.put("clauseNum", advice.getClauseNum());
sendMap.put("clauseName", advice.getClauseName());
if (HandleAdviceEnum.DISAGREE.getValue().equals(advice.getHandleAdvice())) {
sendMap.put("result", "未被采纳");
} else {
sendMap.put("result", "被部分采纳");
}
sendMap.put("reason", advice.getReason());
sendMessageDTO.setMap(sendMap);
sendMessageAPI.sendMessage(sendMessageDTO);
}
}
}
@@ -25,6 +25,7 @@ public class MessageTemplateCodeCommon {
public static final String URGING = "urging"; // 催办
public static final String ES_INIT_CHANGE_NEW_MAIN_DRAFT_LEADER_END = "es_init_change_new_main_draft_leader_end"; // 【企标立项变更】新起草部门主管级领导确认选择会签人员
public static final String ES_INIT_CHANGE_MAIN_DRAFT_USER_COPY = "es_init_change_main_draft_user_copy"; // 【企标立项变更】抄送主起草人
public static final String ES_REVISION_STANDARD_RELEASE = "es_revision_standard_release"; // 【企标修订】标准发布
public static final String ES_REVISION_ADVICE = "es_revision_advice"; // 【企标修订】征求意见
}