diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java index 9a372192..3e52c3bf 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/PushWorkflowIntegrationAPI.java @@ -20,4 +20,6 @@ public interface PushWorkflowIntegrationAPI { void sendTodoTask(List hiworkTodoAddList); void sendActivityComplete(List processInstanceId); + + void sendDeleteTask(List todoAddList); } diff --git a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java index 618edf15..251dfd63 100644 --- a/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java +++ b/laws-base/laws-base-core/src/main/java/com/jero/common/api/dto/message/HiworkTodoAdd.java @@ -21,4 +21,6 @@ public class HiworkTodoAdd { private String recordId; @ApiModelProperty(value = "流程定义id") private String processDefinitionId; + @ApiModelProperty(value = "3结束,6删除,其他是待办已办") + private String type; } diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java index bc9e63a9..563c716b 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/hiwork/service/impl/HiworkTodoServiceImpl.java @@ -76,6 +76,8 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { private static final String PROCESS_TYPE = "srms"; + private static final String TODO_TYPE_3 = "3"; + private static final String TODO_TYPE_6 = "6"; /** * @Author: liao @@ -92,7 +94,7 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { throw new JeroBootException(ResultCommon.EMPTY_COMMON, "hiworkTodoAddList"); } try { - List hiworkTodoList = getHiworkTodos(hiworkTodoAddList,false); + List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList)); log.info("统一待办推送url" + ip + todoUrl); // 远程调用 @@ -113,7 +115,10 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { return; } try { - List hiworkTodoList = getHiworkTodos(hiworkTodoAddList, true); + for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) { + hiworkTodoAdd.setType(TODO_TYPE_3); + } + List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); log.info("统一待办推送入参" + JSON.toJSONString(hiworkTodoList)); log.info("统一待办推送url" + ip + todoUrl); // 远程调用 @@ -128,12 +133,37 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { } } + @Override + public void sendDeleteTask(List hiworkTodoAddList) { + if(!isWorkflow){ + return; + } + try { + for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) { + hiworkTodoAdd.setType(TODO_TYPE_6); + } + List hiworkTodoList = getHiworkTodos(hiworkTodoAddList); + log.info("统一待办删除推送入参" + JSON.toJSONString(hiworkTodoList)); + log.info("统一待办推送url" + ip + todoUrl); + // 远程调用 + JSONObject json = restTemplate.postForObject(ip + todoUrl,hiworkTodoList, JSONObject.class); + if(!Objects.isNull(json) && json.containsKey("success") && Objects.equals("true",json.getString("success"))){ + log.info("统一待办删除推送成功"); + }else{ + log.info("统一待办删除推送失败{}",json); + } + }catch (Exception e){ + log.error("统一待办删除推送异常",e); + } + } + @NotNull - private List getHiworkTodos(List hiworkTodoAddList, boolean b) { + private List getHiworkTodos(List hiworkTodoAddList) { List hiworkTodoList = new ArrayList<>(); for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) { String recordId = hiworkTodoAdd.getRecordId(); String processDefinitionId = hiworkTodoAdd.getProcessDefinitionId(); + String type = hiworkTodoAdd.getType(); ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getById(recordId); if(Objects.isNull(processApprovalRecord)){ continue; @@ -222,8 +252,10 @@ public class HiworkTodoServiceImpl implements PushWorkflowIntegrationAPI { }else { hiworkTodo.setMultiInstance(1); } - if (b){ - hiworkTodo.setIsTodo(String.valueOf(3)); + if (TODO_TYPE_3.equals(type)){ + hiworkTodo.setIsTodo(TODO_TYPE_3); + }else if (TODO_TYPE_6.equals(type)){ + hiworkTodo.setIsTodo(TODO_TYPE_6); }else { hiworkTodo.setIsTodo(String.valueOf(finishFlag)); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 6556ae7f..a12ec9fc 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -8,6 +8,8 @@ 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.dto.message.HiworkTodoAdd; import com.jero.common.api.dto.message.SendMessageDTO; import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.SendMessageAPI; @@ -80,6 +82,8 @@ public class ProcessAllService extends ServiceImpl @Resource private EnterpriseStandardPlanService espService; + @Resource + private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI; private static final List INSPECT_PROCESS = Arrays.asList( ProcessTypeEnum.FB_ENTRY_CHANGE.getValue(), @@ -252,6 +256,22 @@ public class ProcessAllService extends ServiceImpl this.revisionForcedWithdrawalProcess(processInstanceId); } //todo 同步删除操作到统一待办 + //查询所有待办任务 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId); + wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.INCOMPLETE.getValue()); + List approvalRecordList = approvalRecordService.list(wrapper); + + List 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); + } + + pushWorkflowIntegrationAPI.sendDeleteTask(todoAddList); } private void revisionForcedWithdrawalProcess(String processInstanceId) {