fix: 流程详情状态筛选失效
This commit is contained in:
+4
@@ -67,11 +67,15 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
||||
if (StringUtils.isNotBlank(processApprovalRecord.getFinishFlagSearch())){
|
||||
wrapper.in("finish_flag", Arrays.asList(processApprovalRecord.getFinishFlagSearch().split(",")));
|
||||
}
|
||||
wrapper.eq(processApprovalRecord.getFinishFlag() != null, "finish_flag", processApprovalRecord.getFinishFlag());
|
||||
wrapper.eq("over_due", YesOrNoEnum.NO.getValue());
|
||||
wrapper.eq("process_instance_id", processApprovalRecord.getProcessInstanceId());
|
||||
wrapper.last("ORDER BY IF(ISNULL(create_time), 1, 0) DESC ,create_time DESC, end_time DESC");
|
||||
Page<ProcessApprovalRecord> pageList = this.page(page, wrapper);
|
||||
List<ProcessApprovalRecord> records = pageList.getRecords();
|
||||
if (CollUtil.isEmpty(records)) {
|
||||
return pageList;
|
||||
}
|
||||
List<String> taskIdList = records.stream().map(ProcessApprovalRecord::getTaskId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<ProcessSnapshot> processSnapshotWrapper = new LambdaQueryWrapper<>();
|
||||
processSnapshotWrapper.in(ProcessSnapshot::getTaskId, taskIdList);
|
||||
|
||||
+37
-5
@@ -14,7 +14,10 @@ import com.jero.modules.activiti.mapper.ProcessModelNodeMapper;
|
||||
import com.jero.modules.activiti.mapper.ProcessNodeMapper;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.HistoryService;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.history.HistoricProcessInstance;
|
||||
import org.activiti.engine.history.HistoricVariableInstance;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -48,6 +52,9 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
||||
@Resource
|
||||
private ProcessApprovalRecordService parService;
|
||||
|
||||
@Resource
|
||||
private HistoryService historyService;
|
||||
|
||||
public void copyNodeFromModel(String modelId, String processDefinitionId) {
|
||||
LambdaQueryWrapper<ProcessModelNode> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessModelNode::getNodeType, "userTask");
|
||||
@@ -139,12 +146,37 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
||||
if (StrUtil.isBlank(processInstanceId)) {
|
||||
return;
|
||||
}
|
||||
// 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点
|
||||
String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
Object variable = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
|
||||
boolean finish = false;
|
||||
// 判断流程是否结束
|
||||
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery()
|
||||
.processInstanceId(processInstanceId)
|
||||
.singleResult();
|
||||
if (historicProcessInstance != null) {
|
||||
finish = historicProcessInstance.getEndTime() != null;
|
||||
}
|
||||
|
||||
Object variable = null;
|
||||
if (finish) {
|
||||
// 查询流程变量
|
||||
List<HistoricVariableInstance> variableInstances = historyService.createHistoricVariableInstanceQuery()
|
||||
.processInstanceId(processInstanceId)
|
||||
.list();
|
||||
|
||||
// 将变量转换为Map形式
|
||||
Map<String, Object> variableMap = new HashMap<>();
|
||||
for (HistoricVariableInstance variableInstance : variableInstances) {
|
||||
variableMap.put(variableInstance.getVariableName(), variableInstance.getValue());
|
||||
}
|
||||
variable = variableMap.get(DISTRIBUTE);
|
||||
} else {
|
||||
// 如果没分发 则不显示 主排查人单线审核 主排查人汇总节点
|
||||
String mainInstanceId = (String) runtimeService.getVariable(processInstanceId, ActivitiCommon.MAIN_INSTANCE_ID);
|
||||
variable = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
|
||||
}
|
||||
|
||||
boolean distribute = ObjectUtil.isNotNull(variable) && YesOrNoEnum.YES.getValue().equals(variable.toString());
|
||||
if (!distribute) {
|
||||
processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL)
|
||||
processNodeList.removeIf(v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_APPROVAL)
|
||||
|| v.getXmlNodeId().equals(MAIN_CHECK_USER_COLLECT));
|
||||
}
|
||||
// 判断有没有 主排查人重新分批下发 节点
|
||||
@@ -153,7 +185,7 @@ public class ProcessNodeService extends ServiceImpl<ProcessNodeMapper, ProcessNo
|
||||
parWrapper.eq(ProcessApprovalRecord::getNodeId, MAIN_CHECK_USER_REDISTRIBUTE);
|
||||
List<ProcessApprovalRecord> list = parService.list(parWrapper);
|
||||
if (CollectionUtils.isEmpty(list)) {
|
||||
processNodeList.removeIf( v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
|
||||
processNodeList.removeIf(v -> v.getXmlNodeId().equals(MAIN_CHECK_USER_REDISTRIBUTE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user