fix(标准变更流程): 79949
This commit is contained in:
+25
@@ -12,6 +12,7 @@ import com.jero.common.constant.enums.YesOrNoEnum;
|
|||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.util.UUIDUtils;
|
import com.jero.common.util.UUIDUtils;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
|
import com.jero.modules.activiti.enums.ProcessStatusEnum;
|
||||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
||||||
@@ -178,6 +179,8 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
|||||||
if (StringUtils.isNotBlank(draftId)) {
|
if (StringUtils.isNotBlank(draftId)) {
|
||||||
processDraftService.removeById(draftId);
|
processDraftService.removeById(draftId);
|
||||||
}
|
}
|
||||||
|
// 同一个标准编号不能同时有多个进行中的标准变更流程
|
||||||
|
verify(processInfoVO.getBusinessId());
|
||||||
processHandleService.startProcess(processInfoVO);
|
processHandleService.startProcess(processInfoVO);
|
||||||
|
|
||||||
// 保存草稿用于强制撤销
|
// 保存草稿用于强制撤销
|
||||||
@@ -187,6 +190,28 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
|
|||||||
saveToDraft(processInfoVO);
|
saveToDraft(processInfoVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void verify(String businessId) {
|
||||||
|
ProcessFbEntryChange businessData = getById(businessId);
|
||||||
|
String businessJson = businessData.getBusinessJson();
|
||||||
|
Map<String, Object> map = JSON.parseObject(businessJson, Map.class);
|
||||||
|
if ("2".equals(businessData.getOperateType())) {
|
||||||
|
List<ProcessFbEntryChange> list = list(
|
||||||
|
new LambdaQueryWrapper<ProcessFbEntryChange>()
|
||||||
|
.ne(ProcessFbEntryChange::getId, businessId)
|
||||||
|
.eq(ProcessFbEntryChange::getStandardNumber, map.get(FieldCommon.STANDARD_NUMBER))
|
||||||
|
.eq(ProcessFbEntryChange::getOperateType, "2"));
|
||||||
|
if (!list.isEmpty()){
|
||||||
|
int count = processAllService.count(
|
||||||
|
new LambdaQueryWrapper<ProcessAll>()
|
||||||
|
.in(ProcessAll::getProjectId, list.stream().map(ProcessFbEntryChange::getId).collect(Collectors.toList()))
|
||||||
|
.eq(ProcessAll::getPrcStatus, ProcessStatusEnum.INCOMPLETE.getValue()));
|
||||||
|
if (count > 0){
|
||||||
|
throw new JeroBootException("标准编号已在标准变更流程进行中,不可重复发起!");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void duplicateCheck(String businessId) {
|
private void duplicateCheck(String businessId) {
|
||||||
ProcessFbEntryChange businessData = getById(businessId);
|
ProcessFbEntryChange businessData = getById(businessId);
|
||||||
String businessJson = businessData.getBusinessJson();
|
String businessJson = businessData.getBusinessJson();
|
||||||
|
|||||||
Reference in New Issue
Block a user