fix(89221): 标准解读流程转办问题
This commit is contained in:
@@ -198,4 +198,9 @@ public class ProcessAll {
|
|||||||
@ApiModelProperty(value = "是否是会签节点")
|
@ApiModelProperty(value = "是否是会签节点")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String countersignFlag;
|
private String countersignFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "标准主解读人分发节点是否显示驳回/转办(字典:1:是,0:否)")
|
||||||
|
@Dict(dicCode = "yn")
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String showRejectTransition = "1";
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -93,9 +93,9 @@ public class ProcessStandardInterpret extends BaseEntity {
|
|||||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
|
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
|
||||||
private String approvePersonId;
|
private String approvePersonId;
|
||||||
/**标准主解读人分发节点是否显示驳回(字典:1:是,2:否)*/
|
/**标准主解读人分发节点是否显示驳回(字典:1:是,2:否)*/
|
||||||
@ApiModelProperty(value = "标准主解读人分发节点是否显示驳回(字典:1:是,0:否)")
|
@ApiModelProperty(value = "标准主解读人分发节点是否显示驳回/转办(字典:1:是,0:否)")
|
||||||
@Dict(dicCode = "yn")
|
@Dict(dicCode = "yn")
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private String showReject = "1";
|
private String showRejectTransition = "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+41
-47
@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||||
import com.jero.modules.activiti.entity.ProcessNode;
|
|
||||||
import com.jero.modules.activiti.entity.ProcessNodeLink;
|
|
||||||
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
import com.jero.modules.activiti.enums.FinishFlagEnum;
|
||||||
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
import com.jero.modules.activiti.process.standardinterpret.common.StandardInterpretCommon;
|
||||||
import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretDTO;
|
import com.jero.modules.activiti.process.standardinterpret.dto.StandardInterpretDTO;
|
||||||
@@ -17,20 +15,17 @@ import com.jero.modules.activiti.process.standardinterpret.service.ProcessStanda
|
|||||||
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretClauseSublistService;
|
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretClauseSublistService;
|
||||||
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretService;
|
import com.jero.modules.activiti.process.standardinterpret.service.ProcessStandardInterpretService;
|
||||||
import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService;
|
import com.jero.modules.activiti.process.standardinterpret.service.StandardInterpretFlowService;
|
||||||
import com.jero.modules.activiti.service.*;
|
import com.jero.modules.activiti.service.ProcessAllService;
|
||||||
|
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.activiti.util.SpringContextUtil;
|
||||||
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
import com.jero.modules.activiti.vo.DelegateTaskParam;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.RuntimeService;
|
|
||||||
import org.activiti.engine.TaskService;
|
|
||||||
import org.activiti.engine.task.Task;
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -126,51 +121,50 @@ public class StandardInterpretFlow implements WorkCenterService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 标准主解读人审核(分发)
|
// 标准主解读人审核(分发)
|
||||||
if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(node)
|
if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(node)){
|
||||||
|| StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(node)){
|
|
||||||
// 更新标准主解读人
|
// 更新标准主解读人
|
||||||
ProcessStandardInterpretService processStandardInterpretService =
|
ProcessStandardInterpretService processStandardInterpretService =
|
||||||
SpringContextUtil.getBean(ProcessStandardInterpretService.class);
|
SpringContextUtil.getBean(ProcessStandardInterpretService.class);
|
||||||
processStandardInterpretService.update(new LambdaUpdateWrapper<ProcessStandardInterpret>()
|
processStandardInterpretService.update(new LambdaUpdateWrapper<ProcessStandardInterpret>()
|
||||||
.eq(ProcessStandardInterpret::getProjectId, processAll.getProjectId())
|
.eq(ProcessStandardInterpret::getProjectId, processAll.getProjectId())
|
||||||
.set(ProcessStandardInterpret::getMasterInterpretId, toUserId));
|
.set(ProcessStandardInterpret::getMasterInterpretId, toUserId));
|
||||||
TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
// TaskService taskService = SpringContextUtil.getBean(TaskService.class);
|
||||||
RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
|
// RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class);
|
||||||
// 更新主流程标准解读人流程变量
|
// // 更新主流程标准解读人流程变量
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
// HashMap<String, Object> map = new HashMap<>();
|
||||||
map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
// map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
||||||
runtimeService.setVariables(processAll.getProcessInstanceId(), map);
|
// runtimeService.setVariables(processAll.getProcessInstanceId(), map);
|
||||||
// 更新人员信息绑定表
|
// // 更新人员信息绑定表
|
||||||
ProcessNodeService processNodeService =
|
// ProcessNodeService processNodeService =
|
||||||
SpringContextUtil.getBean(ProcessNodeService.class);
|
// SpringContextUtil.getBean(ProcessNodeService.class);
|
||||||
LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
|
// LambdaQueryWrapper<ProcessNode> queryProcessNode = new LambdaQueryWrapper<>();
|
||||||
queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
// queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
||||||
queryProcessNode.in(ProcessNode::getXmlNodeId,
|
// queryProcessNode.in(ProcessNode::getXmlNodeId,
|
||||||
Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE,
|
// Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE,
|
||||||
StandardInterpretCommon.MASTER_INTERPRET_SUMMARY));
|
// StandardInterpretCommon.MASTER_INTERPRET_SUMMARY));
|
||||||
List<ProcessNode> processNodeList = processNodeService.list(queryProcessNode);
|
// List<ProcessNode> processNodeList = processNodeService.list(queryProcessNode);
|
||||||
ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class);
|
// ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class);
|
||||||
for (ProcessNode processNode : processNodeList) {
|
// for (ProcessNode processNode : processNodeList) {
|
||||||
LambdaUpdateWrapper<ProcessNodeLink> updateProcessNodeLink = new LambdaUpdateWrapper<>();
|
// LambdaUpdateWrapper<ProcessNodeLink> updateProcessNodeLink = new LambdaUpdateWrapper<>();
|
||||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId());
|
// updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId());
|
||||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId());
|
// updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId());
|
||||||
updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
// updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId());
|
||||||
updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId);
|
// updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId);
|
||||||
processNodeLinkService.update(updateProcessNodeLink);
|
// processNodeLinkService.update(updateProcessNodeLink);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
// 查询其他子流程
|
// // 查询其他子流程
|
||||||
List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordService.list(
|
// List<ProcessApprovalRecord> processApprovalRecordList = processApprovalRecordService.list(
|
||||||
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
// new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||||
.eq(ProcessApprovalRecord::getProcessInstanceId, processApprovalRecord.getProcessInstanceId())
|
// .eq(ProcessApprovalRecord::getProcessInstanceId, processApprovalRecord.getProcessInstanceId())
|
||||||
.eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue())
|
// .eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue())
|
||||||
.isNotNull(ProcessApprovalRecord::getParentTaskId)
|
// .isNotNull(ProcessApprovalRecord::getParentTaskId)
|
||||||
.ne(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.MASTER_INTERPRET_APPROVE));
|
// .ne(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.MASTER_INTERPRET_APPROVE));
|
||||||
// 更新子流程标准解读人流程变量
|
// // 更新子流程标准解读人流程变量
|
||||||
for (ProcessApprovalRecord approvalRecord : processApprovalRecordList) {
|
// for (ProcessApprovalRecord approvalRecord : processApprovalRecordList) {
|
||||||
Task task2 = taskService.createTaskQuery().taskId(approvalRecord.getTaskId()).singleResult();
|
// Task task2 = taskService.createTaskQuery().taskId(approvalRecord.getTaskId()).singleResult();
|
||||||
runtimeService.setVariable(task2.getExecutionId(), StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
// runtimeService.setVariable(task2.getExecutionId(), StandardInterpretCommon.MASTER_INTERPRET, toUserId);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,22 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
|
|||||||
String column = req.getParameter("column");
|
String column = req.getParameter("column");
|
||||||
String order = req.getParameter("order");
|
String order = req.getParameter("order");
|
||||||
IPage<ProcessAll> todoList = processAllMapper.getTodoList(page, queryWrapper, column, order);
|
IPage<ProcessAll> todoList = processAllMapper.getTodoList(page, queryWrapper, column, order);
|
||||||
|
// 特殊判断
|
||||||
|
for (ProcessAll processAll : todoList.getRecords()) {
|
||||||
|
String node = processAll.getNodeId();
|
||||||
|
if (ProcessTypeEnum.STANDARD_INTERPRET.getValue().equals(processAll.getPrcType())){
|
||||||
|
// 是否显示驳回/转办
|
||||||
|
// 查询是否存在子流程
|
||||||
|
int count = processApprovalRecordService.count(
|
||||||
|
new LambdaQueryWrapper<ProcessApprovalRecord>()
|
||||||
|
.eq(ProcessApprovalRecord::getProcessInstanceId,
|
||||||
|
processAll.getProcessInstanceId())
|
||||||
|
.isNotNull(ProcessApprovalRecord::getParentTaskId));
|
||||||
|
if (count > 0 || StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(node)){
|
||||||
|
processAll.setShowRejectTransition(YesOrNoEnum.NO.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Set<String> nodeIdSet = todoList.getRecords().stream().map(ProcessAll::getNodeId).collect(Collectors.toSet());
|
Set<String> nodeIdSet = todoList.getRecords().stream().map(ProcessAll::getNodeId).collect(Collectors.toSet());
|
||||||
Set<String> processDefinitionIdSet = todoList.getRecords().stream().map(ProcessAll::getProcessDefinitionId).collect(Collectors.toSet());
|
Set<String> processDefinitionIdSet = todoList.getRecords().stream().map(ProcessAll::getProcessDefinitionId).collect(Collectors.toSet());
|
||||||
if (CollectionUtils.isNotEmpty(nodeIdSet) && CollectionUtils.isNotEmpty(processDefinitionIdSet)){
|
if (CollectionUtils.isNotEmpty(nodeIdSet) && CollectionUtils.isNotEmpty(processDefinitionIdSet)){
|
||||||
|
|||||||
Reference in New Issue
Block a user