add 对接oa

This commit is contained in:
lijiarao
2024-07-12 15:49:18 +08:00
parent a4d1925ee2
commit 7b2c0dcdcf
17 changed files with 733 additions and 415 deletions
@@ -6,7 +6,9 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import com.jero.common.api.PushWorkflowIntegrationAPI;
import com.jero.common.api.dto.message.UnifiedTodoVO;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.common.ActivitiCommon;
@@ -62,11 +64,15 @@ public class MyGlobalEventListener implements ActivitiEventListener {
case PROCESS_COMPLETED:
this.activityComplete(event);
break;
case ENTITY_DELETED:
this.entityDeleted(event);
break;
default:
//log.info("Event received: " + event.getType());
}
}
/**
* 上面的 onEvent 方法抛出异常的后续处理动作
* false :表示忽略onEvent()方法方法中抛出的异常
@@ -173,13 +179,14 @@ public class MyGlobalEventListener implements ActivitiEventListener {
processAllService.update(updateWrapper);
// 对接统一平台生成待办任务
// 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 pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<UnifiedTodoVO> list = new ArrayList<>();
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
list.add(unifiedTodoVO);
pushWorkflowIntegrationAPI.sendTodoTask(list);
}
private void taskAssigned(ActivitiEvent event) {
@@ -202,24 +209,21 @@ public class MyGlobalEventListener implements ActivitiEventListener {
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.setType("2");
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
list.add(hiworkTodoAdd);
// pushWorkflowIntegrationAPI.sendTodoTask(list);
// 对接统一平台生成办结
// pushWorkflowIntegrationAPI.sendActivityComplete(list);
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<UnifiedTodoVO> list = new ArrayList<>();
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
list.add(unifiedTodoVO);
pushWorkflowIntegrationAPI.sendTodoTask(list);
// 生成被转办人的待办
list.clear();
hiworkTodoAdd.setToUserId(assignee);
hiworkTodoAdd.setType("1");
list.add(hiworkTodoAdd);
// pushWorkflowIntegrationAPI.sendTodoTask(list);
unifiedTodoVO.setToUserId(assignee);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_0);
list.add(unifiedTodoVO);
pushWorkflowIntegrationAPI.sendTodoTask(list);
}
}
@@ -298,18 +302,62 @@ public class MyGlobalEventListener implements ActivitiEventListener {
processAllService.update(updateWrapper);
// 对接统一平台生成完成任务
// 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);
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<UnifiedTodoVO> list = new ArrayList<>();
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
list.add(unifiedTodoVO);
pushWorkflowIntegrationAPI.sendTodoTask(list);
}
private void entityDeleted(ActivitiEvent event) {
log.info("===================任务删除事件===================");
ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
TaskEntity delegateTask;
if (activitiEntityEvent.getEntity() instanceof TaskEntity){
delegateTask = (TaskEntity) activitiEntityEvent.getEntity();
}else {
return;
}
ExecutionEntity execution = delegateTask.getExecution();
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
String taskId = delegateTask.getId();
String assignee = delegateTask.getAssignee();
String processDefinitionId = delegateTask.getProcessDefinitionId();
//更新审批信息为完成
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessApprovalRecord::getTaskId,taskId);
wrapper.ne(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
wrapper.ne(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.WITHDRAWN.getValue());
ProcessApprovalRecord approvalRecord = recordService.getOne(wrapper);
if (approvalRecord == null){
return;
}
Integer finishFlag = approvalRecord.getFinishFlag();
if (FinishFlagEnum.COMPLETE.getValue().equals(finishFlag)){
return;
}
log.info("id = " + delegateTask.getId());
log.info("name = " + delegateTask.getName());
log.info("taskEntity.getAssignee() = " + delegateTask.getAssignee());
log.info("taskEntity.getIdentityLinks() = " + delegateTask.getIdentityLinks());
log.info("execution.getActivityId() = " + execution.getActivityId());
log.info("taskEntity.getVariables() = " + delegateTask.getVariables());
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<UnifiedTodoVO> todoAddList = new ArrayList<>();
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
todoAddList.add(unifiedTodoVO);
pushWorkflowIntegrationAPI.sendTodoTask(todoAddList);
}
private void activityComplete(ActivitiEvent event) {
log.info("===================流程完成事件===================");
ActivitiEntityEventImpl activitiEntityEvent = (ActivitiEntityEventImpl) event;
@@ -319,6 +367,8 @@ public class MyGlobalEventListener implements ActivitiEventListener {
//根据mainInstanceId是否存在判断是否子流程
String mainInstanceId = (String) execution.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
String processInstanceId = mainInstanceId != null ? mainInstanceId : execution.getProcessInstanceId();
String processDefinitionId = execution.getProcessDefinitionId();
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
Date createTime = processAll.getCreateTime();
DateTime date = DateUtil.date();
@@ -339,6 +389,24 @@ public class MyGlobalEventListener implements ActivitiEventListener {
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
taskService.complete(parentTaskId);
}
}else {
//查询所有审批信息
ProcessApprovalRecordService recordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
List<ProcessApprovalRecord> approvalRecordList = recordService.list(wrapper1);
//对接统一平台生成办结
PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI = SpringContextUtil.getBean(PushWorkflowIntegrationAPI.class);
List<UnifiedTodoVO> list = new ArrayList<>();
for (ProcessApprovalRecord approvalRecord : approvalRecordList) {
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
list.add(unifiedTodoVO);
}
pushWorkflowIntegrationAPI.sendTodoTask(list);
}
log.info("id = " + execution.getId());
log.info("name = " + execution.getName());
@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.PushWorkflowIntegrationAPI;
import com.jero.common.api.SendMessageAPI;
import com.jero.common.api.dto.message.HiworkTodoAdd;
import com.jero.common.api.dto.message.UnifiedTodoVO;
import com.jero.common.api.dto.message.SendMessageDTO;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
@@ -73,6 +75,8 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
private EnterpriseStandardPlanService espService;
@Resource
private EnterpriseStandardRecheckPlanService esRecheckService;
@Resource
private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI;
private static final List<Integer> INSPECT_PROCESS = Arrays.asList();
public ProcessAll getByProcessInstanceId(String processInstanceId){
@@ -230,23 +234,22 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
processApprovalRecord.setCreateTime(null);
approvalRecordService.save(processApprovalRecord);
//todo 同步删除操作到统一待办
//查询所有待办任务
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue());
List<ProcessApprovalRecord> approvalRecordList = approvalRecordService.list(wrapper);
List<HiworkTodoAdd> todoAddList = new ArrayList<>();
//同步删除操作到统一待办
List<UnifiedTodoVO> todoAddList = new ArrayList<>();
String processDefinitionId = processAll.getProcessDefinitionId();
for (ProcessApprovalRecord approvalRecord : approvalRecordList) {
HiworkTodoAdd hiworkTodoAdd = new HiworkTodoAdd();
hiworkTodoAdd.setRecordId(approvalRecord.getId());
hiworkTodoAdd.setProcessDefinitionId(processDefinitionId);
todoAddList.add(hiworkTodoAdd);
UnifiedTodoVO unifiedTodoVO = new UnifiedTodoVO();
unifiedTodoVO.setRecordId(approvalRecord.getId());
unifiedTodoVO.setProcessDefinitionId(processDefinitionId);
unifiedTodoVO.setIsRemark(CommonConstant.TODO_TYPE_2);
todoAddList.add(unifiedTodoVO);
}
// pushWorkflowIntegrationAPI.sendDeleteTask(todoAddList);
pushWorkflowIntegrationAPI.sendTodoTask(todoAddList);
}
public void delegateTask(DelegateTaskParam param) {