update 强制撤回通用逻辑

This commit is contained in:
lijiarao
2024-01-11 10:58:46 +08:00
parent b38cc89976
commit 07e6e2a489
@@ -13,6 +13,9 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.vo.DelegateTaskParam;
import com.jero.modules.activiti.vo.ResolveTaskParam;
import com.jero.common.api.vo.ResultCommon;
@@ -53,6 +56,8 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
private HistoryService historyService;
@Resource
private SendMessageAPI sendMessageAPI;
@Resource
private ProcessDraftService processDraftService;
public ProcessAll getByProcessInstanceId(String processInstanceId){
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
@@ -75,6 +80,12 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
public void forcedWithdrawal(String processInstanceId) {
//获得流程总表
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
//删除所有草稿
LambdaUpdateWrapper<ProcessDraft> processDraftUpdateWrapper = new LambdaUpdateWrapper<>();
processDraftUpdateWrapper.eq(ProcessDraft::getProcessInstanceId, processInstanceId);
processDraftUpdateWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE);
processDraftService.remove(processDraftUpdateWrapper);
processDraftUpdateWrapper.clear();
//业务表修改为草稿
Integer prcType = processAll.getPrcType();
WorkCenterService classByValue = null;
@@ -84,6 +95,10 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
}catch (Exception e) {
log.error(e.getMessage(),e);
}
//修改提前储存的原始草稿状态
processDraftUpdateWrapper.eq(ProcessDraft::getProcessInstanceId, processInstanceId);
processDraftUpdateWrapper.set(ProcessDraft::getSaveSource, null);
processDraftService.update(processDraftUpdateWrapper);
//activiti撤销
runtimeService.deleteProcessInstance(processInstanceId,"强制撤回");
//删除流程总表