fix(标准法规入库/变更流程): 强制撤销
This commit is contained in:
+7
@@ -76,6 +76,13 @@ public interface IProcessHandleService {
|
||||
**/
|
||||
void saveToDraft(ProcessInfoVO processInfoVO);
|
||||
|
||||
/**
|
||||
* @Author: yjz
|
||||
* @Date: 2023/11/3 10:29
|
||||
* @Description: 保存为草稿
|
||||
**/
|
||||
void saveToDraft2(ProcessInfoVO processInfoVO);
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/3 11:13
|
||||
|
||||
+21
-38
@@ -10,9 +10,7 @@ import com.jero.common.constant.enums.YesOrNoEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||
@@ -31,7 +29,6 @@ import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
|
||||
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.tag.entity.LawsTag;
|
||||
import com.jero.modules.tag.enums.TableNameEnum;
|
||||
@@ -147,6 +144,12 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
basicProcessInfoDTO.setProcessName(getProcessNameByBusinessId(processInfoVO.getBusinessId())); // 流程名称
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_ENTRY_CHANGE.getValue()); // 流程类型
|
||||
processHandleService.startProcess(processInfoVO);
|
||||
|
||||
// 保存草稿用于强制撤销
|
||||
processInfoVO.setSaveSource("3");
|
||||
processInfoVO.getBasicTaskInfoDTO().setTaskId(null);
|
||||
processInfoVO.setInfoJsonStr(processInfoVO.getInfoJsonStr().replaceFirst("\\{", "{\"revocation\": true,"));
|
||||
saveToDraft(processInfoVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -323,7 +326,6 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
businessInfoDTO.setOperateType((String) businessMap.get("operateType"));
|
||||
if (StringUtils.isBlank(businessInfoDTO.getId())) { // 如果是发起时保存
|
||||
businessInfoDTO.setId(UUIDUtils.randomUUID20());
|
||||
processInfoVO.getBasicProcessInfoDTO().setProcessName(getProcessNameByBusinessId(processInfoVO.getBusinessId()));
|
||||
save(businessInfoDTO);
|
||||
} else { // 如果是审批时保存
|
||||
businessInfoDTO.setBusinessJson(JSON.toJSONString(businessInfoDTO.getBusinessMap()));
|
||||
@@ -334,7 +336,7 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.FB_ENTRY_CHANGE.getValue()); // 流程类型
|
||||
|
||||
processHandleService.saveToDraft(processInfoVO);
|
||||
processHandleService.saveToDraft2(processInfoVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -346,9 +348,7 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
public ProcessInfoVO<ProcessFbEntryChange> queryProcessInfoVO(String draftId, String processInstanceId, String taskId, String projectId) {
|
||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId, projectId);
|
||||
ProcessFbEntryChange processFbEntryChange = getById(projectId);
|
||||
// 翻译
|
||||
toDict(processFbEntryChange);
|
||||
Map<String, Object> map = JSON.parseObject(processFbEntryChange.getBusinessJson(), Map.class);
|
||||
|
||||
|
||||
// 处理字典翻译
|
||||
//List<LawsTag> fieldList = lawsCommonMapper.getFieldList(TableNameEnum.getTableName(processFbEntryChange.getSource()));
|
||||
@@ -358,8 +358,15 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
//Map<String, Object> stringObjectMap = lawsCommonService.processResultMap(map, fieldList);
|
||||
|
||||
//processFbEntryChange.setBusinessMap(stringObjectMap);
|
||||
processFbEntryChange.setBusinessMap(map);
|
||||
processInfoVO.setBusinessInfoDTO(processFbEntryChange);
|
||||
if (!Objects.isNull(processFbEntryChange)){
|
||||
// 翻译
|
||||
toDict(processFbEntryChange);
|
||||
Map<String, Object> map = JSON.parseObject(processFbEntryChange.getBusinessJson(), Map.class);
|
||||
processFbEntryChange.setBusinessMap(map);
|
||||
processInfoVO.setBusinessInfoDTO(processFbEntryChange);
|
||||
}else {
|
||||
processInfoVO.setBusinessInfoDTO(new ProcessFbEntryChange());
|
||||
}
|
||||
return processInfoVO;
|
||||
}
|
||||
|
||||
@@ -379,34 +386,10 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
||||
|
||||
@Override
|
||||
public void changeToDraft(ProcessAll processAll) {
|
||||
// 删除自己的草稿
|
||||
IProcessHandleService processHandleService = SpringContextUtil.getBean(IProcessHandleService.class);
|
||||
processHandleService.deleteMyDraft(processAll.getTaskId(), processAll.getProjectId(), processAll.getPrcType());
|
||||
String projectId = UUIDUtils.randomUUID20();
|
||||
|
||||
// 查询第一个节点处理人
|
||||
ProcessApprovalRecordService processApprovalRecordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processAll.getProcessInstanceId())
|
||||
.orderByAsc(ProcessApprovalRecord::getCreateTime)
|
||||
.last("limit 1"));
|
||||
|
||||
// 处理业务表信息
|
||||
// 删除业务表数据
|
||||
IProcessFbEntryChangeService processFbEntryChangeService = SpringContextUtil.getBean(IProcessFbEntryChangeService.class);
|
||||
ProcessFbEntryChange processFbEntryChange = processFbEntryChangeService.getById(processAll.getProjectId());
|
||||
processFbEntryChange.setId(projectId);
|
||||
processFbEntryChange.setCreateTime(new Date());
|
||||
ISysUserService sysUserService = SpringContextUtil.getBean(ISysUserService.class);
|
||||
SysUser sysUser = sysUserService.getById(processApprovalRecord.getOriginUserId());
|
||||
processFbEntryChange.setCreateBy(sysUser.getUsername());
|
||||
processFbEntryChangeService.save(processFbEntryChange);
|
||||
|
||||
ProcessDraft processDraft = new ProcessDraft();
|
||||
processDraft.setProjectId(projectId); // 业务id
|
||||
processDraft.setPrcType(processAll.getPrcType()); // 流程类型
|
||||
processDraft.setUserId(processApprovalRecord.getOriginUserId()); // 用户id
|
||||
// 保存草稿
|
||||
ProcessDraftService processDraftService = SpringContextUtil.getBean(ProcessDraftService.class);
|
||||
processDraftService.save(processDraft);
|
||||
processFbEntryChangeService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbEntryChange>()
|
||||
.eq(ProcessFbEntryChange::getId, processAll.getProjectId()));
|
||||
}
|
||||
}
|
||||
|
||||
+13
-29
@@ -15,8 +15,6 @@ import com.jero.modules.activiti.entity.ProcessNode;
|
||||
import com.jero.modules.activiti.entity.ProcessNodeLink;
|
||||
import com.jero.modules.activiti.enums.CommitFlagEnum;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationNodeSort;
|
||||
import com.jero.modules.activiti.process.fb.common.ConsultationTaskKey;
|
||||
import com.jero.modules.activiti.process.fb.common.FbCommon;
|
||||
@@ -977,34 +975,20 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
|
||||
|
||||
@Override
|
||||
public void changeToDraft(ProcessAll processAll) {
|
||||
// 删除自己的草稿
|
||||
IProcessHandleService processHandleService = SpringContextUtil.getBean(IProcessHandleService.class);
|
||||
processHandleService.deleteMyDraft(processAll.getTaskId(), processAll.getProjectId(), processAll.getPrcType());
|
||||
String projectId = UUIDUtils.randomUUID20();
|
||||
|
||||
// 查询第一个节点处理人
|
||||
ProcessApprovalRecordService processApprovalRecordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processAll.getProcessInstanceId())
|
||||
.orderByAsc(ProcessApprovalRecord::getCreateTime)
|
||||
.last("limit 1"));
|
||||
|
||||
// 处理业务表信息
|
||||
// 删除业务表数据
|
||||
IProcessFbStandardPurchaseService processFbStandardPurchaseService = SpringContextUtil.getBean(IProcessFbStandardPurchaseService.class);
|
||||
ProcessFbStandardPurchase processFbStandardPurchase = processFbStandardPurchaseService.getById(processAll.getProjectId());
|
||||
processFbStandardPurchase.setId(projectId);
|
||||
processFbStandardPurchase.setCreateTime(new Date());
|
||||
ISysUserService sysUserService = SpringContextUtil.getBean(ISysUserService.class);
|
||||
SysUser sysUser = sysUserService.getById(processApprovalRecord.getOriginUserId());
|
||||
processFbStandardPurchase.setCreateBy(sysUser.getUsername());
|
||||
processFbStandardPurchaseService.save(processFbStandardPurchase);
|
||||
processFbStandardPurchaseService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbStandardPurchase>()
|
||||
.eq(ProcessFbStandardPurchase::getId, processAll.getProjectId()));
|
||||
|
||||
ProcessDraft processDraft = new ProcessDraft();
|
||||
processDraft.setProjectId(projectId); // 业务id
|
||||
processDraft.setPrcType(processAll.getPrcType()); // 流程类型
|
||||
processDraft.setUserId(processApprovalRecord.getOriginUserId()); // 用户id
|
||||
// 保存草稿
|
||||
ProcessDraftService processDraftService = SpringContextUtil.getBean(ProcessDraftService.class);
|
||||
processDraftService.save(processDraft);
|
||||
IProcessFbConsultationListService processFbConsultationListService = SpringContextUtil.getBean(IProcessFbConsultationListService.class);
|
||||
processFbConsultationListService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbConsultationList>()
|
||||
.eq(ProcessFbConsultationList::getBusinessId, processAll.getProjectId()));
|
||||
|
||||
IProcessFbConsultationUserLinkService processFbConsultationUserLinkService = SpringContextUtil.getBean(IProcessFbConsultationUserLinkService.class);
|
||||
processFbConsultationUserLinkService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbConsultationUserLink>()
|
||||
.eq(ProcessFbConsultationUserLink::getBusinessId, processAll.getProjectId()));
|
||||
}
|
||||
}
|
||||
|
||||
+4
-35
@@ -7,10 +7,7 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.entity.ProcessFbStandardPurchase;
|
||||
@@ -18,12 +15,9 @@ import com.jero.modules.activiti.process.fb.mapper.ProcessFbStandardPurchaseMapp
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessFbStandardPurchaseService;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.WorkCenterService;
|
||||
import com.jero.modules.activiti.util.SpringContextUtil;
|
||||
import com.jero.modules.laws.common.util.CurrentUserUtil;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -35,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -202,34 +195,10 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
|
||||
|
||||
@Override
|
||||
public void changeToDraft(ProcessAll processAll) {
|
||||
// 删除自己的草稿
|
||||
IProcessHandleService processHandleService = SpringContextUtil.getBean(IProcessHandleService.class);
|
||||
processHandleService.deleteMyDraft(processAll.getTaskId(), processAll.getProjectId(), processAll.getPrcType());
|
||||
String projectId = UUIDUtils.randomUUID20();
|
||||
|
||||
// 查询第一个节点处理人
|
||||
ProcessApprovalRecordService processApprovalRecordService = SpringContextUtil.getBean(ProcessApprovalRecordService.class);
|
||||
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getOne(new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processAll.getProcessInstanceId())
|
||||
.orderByAsc(ProcessApprovalRecord::getCreateTime)
|
||||
.last("limit 1"));
|
||||
|
||||
// 处理业务表信息
|
||||
// 删除业务表数据
|
||||
IProcessFbStandardPurchaseService processFbStandardPurchaseService = SpringContextUtil.getBean(IProcessFbStandardPurchaseService.class);
|
||||
ProcessFbStandardPurchase processFbStandardPurchase = processFbStandardPurchaseService.getById(processAll.getProjectId());
|
||||
processFbStandardPurchase.setId(projectId);
|
||||
processFbStandardPurchase.setCreateTime(new Date());
|
||||
ISysUserService sysUserService = SpringContextUtil.getBean(ISysUserService.class);
|
||||
SysUser sysUser = sysUserService.getById(processApprovalRecord.getOriginUserId());
|
||||
processFbStandardPurchase.setCreateBy(sysUser.getUsername());
|
||||
processFbStandardPurchaseService.save(processFbStandardPurchase);
|
||||
|
||||
ProcessDraft processDraft = new ProcessDraft();
|
||||
processDraft.setProjectId(projectId); // 业务id
|
||||
processDraft.setPrcType(processAll.getPrcType()); // 流程类型
|
||||
processDraft.setUserId(processApprovalRecord.getOriginUserId()); // 用户id
|
||||
// 保存草稿
|
||||
ProcessDraftService processDraftService = SpringContextUtil.getBean(ProcessDraftService.class);
|
||||
processDraftService.save(processDraft);
|
||||
processFbStandardPurchaseService.remove(
|
||||
new LambdaQueryWrapper<ProcessFbStandardPurchase>()
|
||||
.eq(ProcessFbStandardPurchase::getBusinessId, processAll.getProjectId()));
|
||||
}
|
||||
}
|
||||
|
||||
+46
@@ -517,6 +517,52 @@ public class ProcessHandleServiceImpl implements IProcessHandleService{
|
||||
return processInfoVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveToDraft2(ProcessInfoVO processInfoVO) {
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
|
||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = null;
|
||||
String handleText = null;
|
||||
String handleFile = null;
|
||||
if (basicTaskInfoDTO != null){
|
||||
taskId = basicTaskInfoDTO.getTaskId();
|
||||
handleText = basicTaskInfoDTO.getHandleText();
|
||||
handleFile = basicTaskInfoDTO.getHandleFile();
|
||||
}else {
|
||||
processInfoVO.setBasicTaskInfoDTO(new BasicTaskInfoDTO());
|
||||
}
|
||||
|
||||
// 保存
|
||||
updateProcessAll(processInfoVO);
|
||||
updateApprovalRecord(processInfoVO);
|
||||
|
||||
// 删除自己的草稿
|
||||
String draftId = processInfoVO.getDraftId();
|
||||
if (StringUtils.isNotBlank(draftId)){
|
||||
processDraftService.removeById(draftId);
|
||||
}
|
||||
deleteMyDraft(taskId, processInfoVO.getBusinessId(), basicProcessInfoDTO.getProcessType());
|
||||
// 根据是否有taskId区分保存来源(待办、草稿)
|
||||
BasicTaskInfoDTO basicTaskInfoDTO1 = processInfoVO.getBasicTaskInfoDTO();
|
||||
// 非发起节点不保存到草稿
|
||||
if (StringUtils.isBlank(basicTaskInfoDTO1.getTaskId())){
|
||||
ProcessDraft processDraft = new ProcessDraft();
|
||||
processDraft.setProjectId(processInfoVO.getBusinessId()); // 业务id
|
||||
processDraft.setProcessInstanceId(basicProcessInfoDTO.getProcessInstanceId()); // 流程实例id
|
||||
processDraft.setPrcName(basicProcessInfoDTO.getProcessName()); // 流程名称
|
||||
processDraft.setPrcType(basicProcessInfoDTO.getProcessType()); // 流程类型
|
||||
processDraft.setProcessDueDate(basicProcessInfoDTO.getProcessDueDate()); // 流程信息-截止日期
|
||||
processDraft.setProcessDescription(basicProcessInfoDTO.getProcessDescription()); // 流程信息-流程说明
|
||||
processDraft.setTaskId(taskId); // 任务id
|
||||
processDraft.setHandleText(handleText); // 流程审批信息-备注
|
||||
processDraft.setHandleFile(handleFile); // 流程审批信息-附件
|
||||
processDraft.setUserId(CurrentUserUtil.getId()); // 用户id
|
||||
processDraft.setInfoJsonStr(processInfoVO.getInfoJsonStr());//草稿信息json字符串
|
||||
processDraft.setSaveSource(processInfoVO.getSaveSource());//来源(启动流程时有用,用于保存初始业务信息用于强制驳回)
|
||||
processDraftService.save(processDraft);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @Author: liao
|
||||
* @Date: 2023/11/8 11:16
|
||||
|
||||
Reference in New Issue
Block a user