update 强制撤回后发送hiwork删除

This commit is contained in:
lijiarao
2024-04-19 13:43:52 +08:00
parent 75a25d3143
commit 51cfda36b1
4 changed files with 61 additions and 5 deletions
@@ -20,4 +20,6 @@ public interface PushWorkflowIntegrationAPI {
void sendTodoTask(List<HiworkTodoAdd> hiworkTodoAddList);
void sendActivityComplete(List<HiworkTodoAdd> processInstanceId);
void sendDeleteTask(List<HiworkTodoAdd> todoAddList);
}
@@ -21,4 +21,6 @@ public class HiworkTodoAdd {
private String recordId;
@ApiModelProperty(value = "流程定义id")
private String processDefinitionId;
@ApiModelProperty(value = "3结束,6删除,其他是待办已办")
private String type;
}
@@ -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<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList,false);
List<HiworkTodo> 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<HiworkTodo> hiworkTodoList = getHiworkTodos(hiworkTodoAddList, true);
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
hiworkTodoAdd.setType(TODO_TYPE_3);
}
List<HiworkTodo> 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<HiworkTodoAdd> hiworkTodoAddList) {
if(!isWorkflow){
return;
}
try {
for (HiworkTodoAdd hiworkTodoAdd : hiworkTodoAddList) {
hiworkTodoAdd.setType(TODO_TYPE_6);
}
List<HiworkTodo> 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<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList, boolean b) {
private List<HiworkTodo> getHiworkTodos(List<HiworkTodoAdd> hiworkTodoAddList) {
List<HiworkTodo> 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));
}
@@ -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<ProcessAllMapper, ProcessAll>
@Resource
private EnterpriseStandardPlanService espService;
@Resource
private PushWorkflowIntegrationAPI pushWorkflowIntegrationAPI;
private static final List<Integer> INSPECT_PROCESS = Arrays.asList(
ProcessTypeEnum.FB_ENTRY_CHANGE.getValue(),
@@ -252,6 +256,22 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
this.revisionForcedWithdrawalProcess(processInstanceId);
}
//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<>();
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) {