update 强制撤回通用逻辑
update 保存草稿时如果有draftId就删掉之前草稿
This commit is contained in:
+4
@@ -351,6 +351,10 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
|
|||||||
updateApprovalRecord(processInfoVO);
|
updateApprovalRecord(processInfoVO);
|
||||||
|
|
||||||
// 删除自己的草稿
|
// 删除自己的草稿
|
||||||
|
String draftId = processInfoVO.getDraftId();
|
||||||
|
if (StringUtils.isNotBlank(draftId)){
|
||||||
|
processDraftService.removeById(draftId);
|
||||||
|
}
|
||||||
deleteMyDraft(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType());
|
deleteMyDraft(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType());
|
||||||
// 根据是否有taskId区分保存来源(待办、草稿)
|
// 根据是否有taskId区分保存来源(待办、草稿)
|
||||||
BasicTaskInfoDTO basicTaskInfoDTO1 = processInfoVO.getBasicTaskInfoDTO();
|
BasicTaskInfoDTO basicTaskInfoDTO1 = processInfoVO.getBasicTaskInfoDTO();
|
||||||
|
|||||||
+13
-5
@@ -1,5 +1,6 @@
|
|||||||
package com.jero.modules.activiti.service;
|
package com.jero.modules.activiti.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollStreamUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
@@ -37,6 +38,8 @@ import java.util.stream.Collectors;
|
|||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.jero.modules.activiti.mapper.ProcessAllMapper;
|
import com.jero.modules.activiti.mapper.ProcessAllMapper;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*@author liJiaRao
|
*@author liJiaRao
|
||||||
@@ -76,22 +79,27 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
|||||||
public IPage<ProcessAll> getSentList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
|
public IPage<ProcessAll> getSentList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
|
||||||
return processAllMapper.getSentList(page,queryWrapper);
|
return processAllMapper.getSentList(page,queryWrapper);
|
||||||
}
|
}
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void forcedWithdrawal(String processInstanceId) {
|
public void forcedWithdrawal(String processInstanceId) {
|
||||||
//获得流程总表
|
//获得流程总表
|
||||||
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
|
||||||
//删除所有草稿
|
//删除流程中所有草稿(除了初始草稿)
|
||||||
LambdaUpdateWrapper<ProcessDraft> processDraftUpdateWrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<ProcessDraft> processDraftUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||||
processDraftUpdateWrapper.eq(ProcessDraft::getProcessInstanceId, processInstanceId);
|
processDraftUpdateWrapper.eq(ProcessDraft::getProcessInstanceId, processInstanceId);
|
||||||
processDraftUpdateWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE);
|
processDraftUpdateWrapper.ne(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE);
|
||||||
processDraftService.remove(processDraftUpdateWrapper);
|
List<ProcessDraft> drafts = processDraftService.list(processDraftUpdateWrapper);
|
||||||
|
List<String> draftIds = CollStreamUtil.toList(drafts, ProcessDraft::getId);
|
||||||
|
processDraftService.removeByIds(draftIds);
|
||||||
processDraftUpdateWrapper.clear();
|
processDraftUpdateWrapper.clear();
|
||||||
//业务表修改为草稿
|
//业务表修改为草稿
|
||||||
Integer prcType = processAll.getPrcType();
|
Integer prcType = processAll.getPrcType();
|
||||||
WorkCenterService classByValue = null;
|
WorkCenterService classByValue = null;
|
||||||
try {
|
try {
|
||||||
classByValue = (WorkCenterService) Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance();
|
Object o = Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance();
|
||||||
classByValue.changeToDraft(processAll);
|
if (o instanceof WorkCenterService){
|
||||||
|
classByValue = (WorkCenterService) o;
|
||||||
|
classByValue.changeToDraft(processAll);
|
||||||
|
}
|
||||||
}catch (Exception e) {
|
}catch (Exception e) {
|
||||||
log.error(e.getMessage(),e);
|
log.error(e.getMessage(),e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user