update 转办时,给hiwork先发送完成消息在发送新待办

This commit is contained in:
lijiarao
2024-05-10 16:53:19 +08:00
parent edf265eab8
commit b1ec1242b0
11 changed files with 72 additions and 80 deletions
@@ -23,4 +23,7 @@ public class HiworkTodoAdd {
private String processDefinitionId;
@ApiModelProperty(value = "3结束,6删除,其他是待办已办")
private String type;
@ApiModelProperty(value = "转办时用")
private String toUserId;
}
@@ -192,7 +192,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
// 是否显示(0否,1是)
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView()));
}
String userId = processApprovalRecord.getUserId();
String userId;
if (hiworkTodoAdd.getToUserId() == null){
userId = processApprovalRecord.getUserId();
}else {
userId = hiworkTodoAdd.getToUserId();
}
SysUser sysUser = sysUserService.getById(userId);
String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")";
@@ -31,10 +31,7 @@ import org.activiti.engine.impl.persistence.entity.ExecutionEntityImpl;
import org.activiti.engine.impl.persistence.entity.TaskEntity;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* @author liJiaRao
@@ -173,14 +170,40 @@ public class MyGlobalEventListener implements ActivitiEventListener {
}
private void taskAssigned(ActivitiEvent event) {
//log.info("===================任务分配事件===================");
//ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
//TaskEntity taskEntity = (TaskEntity) activitiEntityEvent.getEntity();
//log.info("id = " + id);
//log.info("name = " + name);
//log.info("taskEntity.getAssignee() = " + taskEntity.getAssignee());
//log.info("taskEntity.getIdentityLinks() = " + taskEntity.getIdentityLinks());
//log.info("taskEntity.getVariables() = " + taskEntity.getVariables());
log.info("===================任务分配事件===================");
ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
TaskEntity delegateTask = (TaskEntity) activitiEntityEvent.getEntity();
String taskId = delegateTask.getId();
String assignee = delegateTask.getAssignee();
String processDefinitionId = delegateTask.getProcessDefinitionId();
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper);
String userId = approvalRecord.getUserId();
if (!Objects.equals(assignee,userId)) {
log.info(""+userId+"转办给"+assignee);
// 对接统一平台生成完成任务
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<HiworkTodoAdd> list = new ArrayList<>();
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
hiworkTodoAdd.setRecordId(approvalRecord.getId());
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
list.add(hiworkTodoAdd);
pushWorkflowIntegrationAPI.sendTodoTask(list);
// 对接统一平台生成办结
pushWorkflowIntegrationAPI.sendActivityComplete(list);
// 生成被转办人的待办
list.clear();
hiworkTodoAdd.setToUserId(assignee);
list.add(hiworkTodoAdd);
pushWorkflowIntegrationAPI.sendTodoTask(list);
}
}
private void taskComplete(ActivitiEvent event) {
@@ -248,18 +248,8 @@ public class ActFlowCommonService {
/**
* 转办
*/
public void transfer(String taskId, String userId) {
//获取审批(未完成的任务id是之前的)
ProcessApprovalRecord approvalRecord = approvalRecordService.getToDoByTaskId(taskId);
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaUpdateWrapper<ProcessApprovalRecord> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessApprovalRecord::getId, approvalRecord.getId());
updateWrapper.set(ProcessApprovalRecord::getTransferBy, loginUser.getId());
updateWrapper.set(ProcessApprovalRecord::getUserId, userId);
approvalRecordService.update(updateWrapper);
taskService.setAssignee(taskId, userId);
log.info("转办 任务Id:{} 转办用户Id{}", taskId, userId);
public void transfer(String taskId, String toUserId) {
processHandleService.transfer(taskId, toUserId);
}
/**
@@ -27,6 +27,7 @@ import com.jero.modules.activiti.process.esinspectrectify.entity.ProcessEsInspec
import com.jero.modules.activiti.process.esinspectrectify.service.IEsInspectRectifyFlowService;
import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInspectRectifyService;
import com.jero.modules.activiti.process.esinspectrectify.vo.EsInspectRectifyFlowVO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -109,6 +110,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override
public void flowStart(EsInspectFlowVO esInspectFlowVO) {
// 流程信息
@@ -525,14 +528,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
public boolean isLastNode(String processInstanceId) {
@@ -24,6 +24,7 @@ import com.jero.modules.activiti.process.esinspectdelayapply.service.IEsInspectD
import com.jero.modules.activiti.process.esinspectdelayapply.service.IProcessEsInspectDelayApplyService;
import com.jero.modules.activiti.process.esinspectdelayapply.vo.EsInspectDelayApplyFlowVO;
import com.jero.modules.activiti.process.esinspectdelayapply.vo.ProcessEsInspectDelayApplyVO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -89,7 +90,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override
public void flowStart(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) {
// 流程信息
@@ -350,14 +352,6 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, userId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
}
@@ -31,6 +31,7 @@ import com.jero.modules.activiti.process.esinspectplan.service.IEsInspectPlanFlo
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanOpinionService;
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService;
import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -115,6 +116,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
private static final String COUNTERSIGN = "countersign";
private static final String COUNTERSIGN_TAG = "countersignTag";
@@ -557,15 +560,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, userId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
@Override
@@ -26,6 +26,7 @@ import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInsp
import com.jero.modules.activiti.process.esinspectrectify.vo.EsInspectRectifyFlowVO;
import com.jero.modules.activiti.process.esinspectrectify.vo.ProcessEsInspectRectifyVO;
import com.jero.modules.activiti.process.esinspectrectify.vo.UserInfo;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -87,6 +88,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
private static final String RESPONSIBLE = "responsible";
@@ -447,15 +450,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, userId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
private Map<String, Object> listToString(Map<String, Object> map) {
@@ -22,6 +22,7 @@ import com.jero.modules.activiti.process.espermissionapply.service.EsPermissionA
import com.jero.modules.activiti.process.espermissionapply.service.IProcessEsPermissionApplyService;
import com.jero.modules.activiti.process.espermissionapply.vo.EsPermissionApplyFlowVO;
import com.jero.modules.activiti.process.espermissionapply.vo.ProcessEsPermissionApplyVO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -77,6 +78,8 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Resource
private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
@@ -288,15 +291,7 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, userId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
public boolean isLastNode(String processInstanceId) {
@@ -272,11 +272,12 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 删除自己的草稿
deleteMyDraft(taskId, processApprovalRecord.getProjectId(), null);
taskService.setAssignee(taskId, toUserId);
String userId = processApprovalRecord.getUserId();
processApprovalRecord.setTransferBy(CurrentUserUtil.getId()); // 转办人
processApprovalRecord.setUserId(toUserId); // 任务处理人
processApprovalRecordService.updateById(processApprovalRecord);
taskService.setAssignee(taskId, toUserId);
WorkCenterService classByValue = null;
try {
Object o = Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance();
@@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.meetingmanage.common.ProcessMeetingManageCommon;
import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManage;
import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManagePersonnel;
@@ -89,6 +90,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource
private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override
public void flowStart(MeetingManageFlowVO meetingManageFlowVO) {
@@ -339,15 +342,7 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
@Override
public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, userId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
processHandleService.transfer(taskId, userId);
}
private Map<String, Object> listToString(Map<String, Object> map) {