fix: 子流程結束把主流程結束BUG
This commit is contained in:
+18
@@ -36,6 +36,9 @@ import org.apache.commons.lang3.StringUtils;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
import static com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author liJiaRao
|
* @author liJiaRao
|
||||||
@@ -44,6 +47,7 @@ import java.util.*;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Component("myGlobalEventListener")
|
@Component("myGlobalEventListener")
|
||||||
public class MyGlobalEventListener implements ActivitiEventListener {
|
public class MyGlobalEventListener implements ActivitiEventListener {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEvent(ActivitiEvent event) {
|
public void onEvent(ActivitiEvent event) {
|
||||||
//log.info("========================MyGlobalEventListener========================");
|
//log.info("========================MyGlobalEventListener========================");
|
||||||
@@ -375,12 +379,26 @@ public class MyGlobalEventListener implements ActivitiEventListener {
|
|||||||
DateBetween between = date.between(createTime);
|
DateBetween between = date.between(createTime);
|
||||||
|
|
||||||
// 更新流程总表信息为已完成
|
// 更新流程总表信息为已完成
|
||||||
|
// 复杂流程的子流程不需要更新流程状态
|
||||||
|
AtomicBoolean updateStatusFlag = new AtomicBoolean(true);
|
||||||
|
List<String> childProcessDefinitionIdList = Arrays.asList(
|
||||||
|
STANDARD_COMPLIANCE_CHECK_DISTRIBUTE,
|
||||||
|
STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
|
||||||
|
childProcessDefinitionIdList.forEach(s -> {
|
||||||
|
if (processDefinitionId.contains(s)) {
|
||||||
|
updateStatusFlag.set(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (updateStatusFlag.get()) {
|
||||||
LambdaUpdateWrapper<ProcessAll> wrapper = new LambdaUpdateWrapper<>();
|
LambdaUpdateWrapper<ProcessAll> wrapper = new LambdaUpdateWrapper<>();
|
||||||
wrapper.eq(ProcessAll::getProcessInstanceId, processInstanceId);
|
wrapper.eq(ProcessAll::getProcessInstanceId, processInstanceId);
|
||||||
wrapper.set(ProcessAll::getPrcStatus, ProcessStatusEnum.COMPLETED.getValue());
|
wrapper.set(ProcessAll::getPrcStatus, ProcessStatusEnum.COMPLETED.getValue());
|
||||||
wrapper.set(ProcessAll::getEndTime, date);
|
wrapper.set(ProcessAll::getEndTime, date);
|
||||||
wrapper.set(ProcessAll::getOverTime, between.toString());
|
wrapper.set(ProcessAll::getOverTime, between.toString());
|
||||||
processAllService.update(wrapper);
|
processAllService.update(wrapper);
|
||||||
|
}
|
||||||
|
|
||||||
//如果有父id,判断所有子流程是否都完成,如果都完成,那么父流程的任务开始流转
|
//如果有父id,判断所有子流程是否都完成,如果都完成,那么父流程的任务开始流转
|
||||||
String parentTaskId = (String) execution.getVariable(ActivitiCommon.PARENT_TASK_ID);
|
String parentTaskId = (String) execution.getVariable(ActivitiCommon.PARENT_TASK_ID);
|
||||||
if (StringUtils.isNotBlank(parentTaskId)) {
|
if (StringUtils.isNotBlank(parentTaskId)) {
|
||||||
|
|||||||
+4
-8
@@ -54,9 +54,9 @@ import java.io.InputStream;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE;
|
import static com.jero.modules.activiti.common.ActivitiCommon.*;
|
||||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
|
||||||
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
|
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
|
||||||
|
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.UNALLOCATED_QUANTITY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ThinkBook
|
* @author ThinkBook
|
||||||
@@ -159,6 +159,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
save(standardInfo);
|
save(standardInfo);
|
||||||
// 给流程中设置主表流程变量Id
|
// 给流程中设置主表流程变量Id
|
||||||
runtimeService.setVariable(processInstanceId, CHECK_ID, standardInfo.getId());
|
runtimeService.setVariable(processInstanceId, CHECK_ID, standardInfo.getId());
|
||||||
|
runtimeService.setVariable(processInstanceId, MAIN_INSTANCE_ID, processInstanceId);
|
||||||
// 子表设置流程实例Id
|
// 子表设置流程实例Id
|
||||||
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
|
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
|
||||||
detailInfoList.forEach(detail -> {
|
detailInfoList.forEach(detail -> {
|
||||||
@@ -398,13 +399,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
processSccVO.setDetailInfoList(detailList);
|
processSccVO.setDetailInfoList(detailList);
|
||||||
break;
|
break;
|
||||||
case DESIGNER_ENGINEER_EVALUATION:
|
case DESIGNER_ENGINEER_EVALUATION:
|
||||||
this.setDesignerEngineerEvaluationHandleData(processSccVO, taskId);
|
|
||||||
break;
|
|
||||||
case MAIN_CHECK_USER_APPROVAL:
|
case MAIN_CHECK_USER_APPROVAL:
|
||||||
detailList = detailList.stream()
|
this.setDesignerEngineerEvaluationHandleData(processSccVO, taskId);
|
||||||
.filter(detail -> processInstanceId.equals(detail.getProcessInstanceId()))
|
|
||||||
.collect(Collectors.toList());
|
|
||||||
processSccVO.setDetailInfoList(detailList);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
result.setBusinessInfoDTO(processSccVO);
|
result.setBusinessInfoDTO(processSccVO);
|
||||||
|
|||||||
Reference in New Issue
Block a user