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 2456dc37..411fabe4 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 @@ -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 private HistoryService historyService; @Resource private SendMessageAPI sendMessageAPI; + @Resource + private ProcessDraftService processDraftService; public ProcessAll getByProcessInstanceId(String processInstanceId){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -75,6 +80,12 @@ public class ProcessAllService extends ServiceImpl public void forcedWithdrawal(String processInstanceId) { //获得流程总表 ProcessAll processAll = getByProcessInstanceId(processInstanceId); + //删除所有草稿 + LambdaUpdateWrapper 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 }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,"强制撤回"); //删除流程总表