add 对接oa
This commit is contained in:
+101
-33
@@ -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());
|
||||
|
||||
+13
-10
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user