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; private String processDefinitionId;
@ApiModelProperty(value = "3结束,6删除,其他是待办已办") @ApiModelProperty(value = "3结束,6删除,其他是待办已办")
private String type; private String type;
@ApiModelProperty(value = "转办时用")
private String toUserId;
} }
@@ -192,7 +192,12 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI {
// 是否显示(0否,1是) // 是否显示(0否,1是)
hiworkTodo.setIsShow(String.valueOf(processNode.getIsView())); 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); SysUser sysUser = sysUserService.getById(userId);
String noticeTitle = processApprovalRecord.getTaskName() + "(" + sysUser.getRealname() + " " + date + ")"; 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.activiti.engine.impl.persistence.entity.TaskEntity;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* @author liJiaRao * @author liJiaRao
@@ -173,14 +170,40 @@ public class MyGlobalEventListener implements ActivitiEventListener {
} }
private void taskAssigned(ActivitiEvent event) { private void taskAssigned(ActivitiEvent event) {
//log.info("===================任务分配事件==================="); log.info("===================任务分配事件===================");
//ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event; ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
//TaskEntity taskEntity = (TaskEntity) activitiEntityEvent.getEntity(); TaskEntity delegateTask = (TaskEntity) activitiEntityEvent.getEntity();
//log.info("id = " + id); String taskId = delegateTask.getId();
//log.info("name = " + name); String assignee = delegateTask.getAssignee();
//log.info("taskEntity.getAssignee() = " + taskEntity.getAssignee()); String processDefinitionId = delegateTask.getProcessDefinitionId();
//log.info("taskEntity.getIdentityLinks() = " + taskEntity.getIdentityLinks());
//log.info("taskEntity.getVariables() = " + taskEntity.getVariables()); 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) { private void taskComplete(ActivitiEvent event) {
@@ -248,18 +248,8 @@ public class ActFlowCommonService {
/** /**
* 转办 * 转办
*/ */
public void transfer(String taskId, String userId) { public void transfer(String taskId, String toUserId) {
//获取审批(未完成的任务id是之前的) processHandleService.transfer(taskId, toUserId);
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);
} }
/** /**
@@ -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.IEsInspectRectifyFlowService;
import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInspectRectifyService; import com.jero.modules.activiti.process.esinspectrectify.service.IProcessEsInspectRectifyService;
import com.jero.modules.activiti.process.esinspectrectify.vo.EsInspectRectifyFlowVO; 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.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -109,6 +110,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override @Override
public void flowStart(EsInspectFlowVO esInspectFlowVO) { public void flowStart(EsInspectFlowVO esInspectFlowVO) {
// 流程信息 // 流程信息
@@ -525,14 +528,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, taskId)
.set(ProcessApprovalRecord::getTransferBy, loginUser.getId())
.set(ProcessApprovalRecord::getUserId, userId));
// 转办
taskService.setAssignee(taskId, userId);
} }
public boolean isLastNode(String processInstanceId) { 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.service.IProcessEsInspectDelayApplyService;
import com.jero.modules.activiti.process.esinspectdelayapply.vo.EsInspectDelayApplyFlowVO; import com.jero.modules.activiti.process.esinspectdelayapply.vo.EsInspectDelayApplyFlowVO;
import com.jero.modules.activiti.process.esinspectdelayapply.vo.ProcessEsInspectDelayApplyVO; 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.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -89,7 +90,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override @Override
public void flowStart(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) { public void flowStart(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) {
// 流程信息 // 流程信息
@@ -350,14 +352,6 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
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);
} }
} }
@@ -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.IProcessEsInspectPlanOpinionService;
import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService; import com.jero.modules.activiti.process.esinspectplan.service.IProcessEsInspectPlanService;
import com.jero.modules.activiti.process.esinspectplan.vo.EsInspectPlanFlowVO; 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.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -115,6 +116,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
private static final String COUNTERSIGN = "countersign"; private static final String COUNTERSIGN = "countersign";
private static final String COUNTERSIGN_TAG = "countersignTag"; private static final String COUNTERSIGN_TAG = "countersignTag";
@@ -557,15 +560,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
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);
} }
@Override @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.EsInspectRectifyFlowVO;
import com.jero.modules.activiti.process.esinspectrectify.vo.ProcessEsInspectRectifyVO; import com.jero.modules.activiti.process.esinspectrectify.vo.ProcessEsInspectRectifyVO;
import com.jero.modules.activiti.process.esinspectrectify.vo.UserInfo; 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.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -87,6 +88,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
private static final String RESPONSIBLE = "responsible"; private static final String RESPONSIBLE = "responsible";
@@ -447,15 +450,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
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);
} }
private Map<String, Object> listToString(Map<String, Object> map) { 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.service.IProcessEsPermissionApplyService;
import com.jero.modules.activiti.process.espermissionapply.vo.EsPermissionApplyFlowVO; import com.jero.modules.activiti.process.espermissionapply.vo.EsPermissionApplyFlowVO;
import com.jero.modules.activiti.process.espermissionapply.vo.ProcessEsPermissionApplyVO; 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.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService; import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService; import com.jero.modules.activiti.service.ProcessNodeLinkService;
@@ -77,6 +78,8 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Resource @Resource
private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService; private EnterpriseStandardAuthUserService enterpriseStandardAuthUserService;
@@ -288,15 +291,7 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
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);
} }
public boolean isLastNode(String processInstanceId) { public boolean isLastNode(String processInstanceId) {
@@ -272,11 +272,12 @@ public class ProcessHandleServiceImpl implements IProcessHandleService {
// 删除自己的草稿 // 删除自己的草稿
deleteMyDraft(taskId, processApprovalRecord.getProjectId(), null); deleteMyDraft(taskId, processApprovalRecord.getProjectId(), null);
taskService.setAssignee(taskId, toUserId);
String userId = processApprovalRecord.getUserId(); String userId = processApprovalRecord.getUserId();
processApprovalRecord.setTransferBy(CurrentUserUtil.getId()); // 转办人 processApprovalRecord.setTransferBy(CurrentUserUtil.getId()); // 转办人
processApprovalRecord.setUserId(toUserId); // 任务处理人 processApprovalRecord.setUserId(toUserId); // 任务处理人
processApprovalRecordService.updateById(processApprovalRecord); processApprovalRecordService.updateById(processApprovalRecord);
taskService.setAssignee(taskId, toUserId);
WorkCenterService classByValue = null; WorkCenterService classByValue = null;
try { try {
Object o = Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance(); 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.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType; import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ProcessDraftService; 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.common.ProcessMeetingManageCommon;
import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManage; import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManage;
import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManagePersonnel; import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManagePersonnel;
@@ -89,6 +90,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
RuntimeService runtimeService = processEngine.getRuntimeService(); RuntimeService runtimeService = processEngine.getRuntimeService();
@Resource @Resource
private TaskService taskService; private TaskService taskService;
@Resource
private IProcessHandleService processHandleService;
@Override @Override
public void flowStart(MeetingManageFlowVO meetingManageFlowVO) { public void flowStart(MeetingManageFlowVO meetingManageFlowVO) {
@@ -339,15 +342,7 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
@Override @Override
public void flowTransfer(String taskId, String userId) { public void flowTransfer(String taskId, String userId) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); processHandleService.transfer(taskId, userId);
// 更新流程审批信息
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);
} }
private Map<String, Object> listToString(Map<String, Object> map) { private Map<String, Object> listToString(Map<String, Object> map) {