diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java index 8078adc7..f31415a2 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java @@ -198,4 +198,9 @@ public class ProcessAll { @ApiModelProperty(value = "是否是会签节点") @TableField(exist = false) private String countersignFlag; + + @ApiModelProperty(value = "标准主解读人分发节点是否显示驳回/转办(字典:1:是,0:否)") + @Dict(dicCode = "yn") + @TableField(exist = false) + private String showRejectTransition = "1"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java index d72e5566..d398080b 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/entity/ProcessStandardInterpret.java @@ -93,9 +93,9 @@ public class ProcessStandardInterpret extends BaseEntity { @Dict(dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')") private String approvePersonId; /**标准主解读人分发节点是否显示驳回(字典:1:是,2:否)*/ - @ApiModelProperty(value = "标准主解读人分发节点是否显示驳回(字典:1:是,0:否)") + @ApiModelProperty(value = "标准主解读人分发节点是否显示驳回/转办(字典:1:是,0:否)") @Dict(dicCode = "yn") @TableField(exist = false) - private String showReject = "1"; + private String showRejectTransition = "1"; } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java index ede90271..d7d76fec 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/standardinterpret/service/impl/StandardInterpretFlow.java @@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.jero.common.exception.JeroBootException; import com.jero.modules.activiti.entity.ProcessAll; 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.process.standardinterpret.common.StandardInterpretCommon; 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.ProcessStandardInterpretService; 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.vo.DelegateTaskParam; 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.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Arrays; -import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -126,51 +121,50 @@ public class StandardInterpretFlow implements WorkCenterService { } } // 标准主解读人审核(分发) - if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(node) - || StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(node)){ + if (StandardInterpretCommon.MASTER_INTERPRET_APPROVE.equals(node)){ // 更新标准主解读人 ProcessStandardInterpretService processStandardInterpretService = SpringContextUtil.getBean(ProcessStandardInterpretService.class); processStandardInterpretService.update(new LambdaUpdateWrapper() .eq(ProcessStandardInterpret::getProjectId, processAll.getProjectId()) .set(ProcessStandardInterpret::getMasterInterpretId, toUserId)); - TaskService taskService = SpringContextUtil.getBean(TaskService.class); - RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class); - // 更新主流程标准解读人流程变量 - HashMap map = new HashMap<>(); - map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId); - runtimeService.setVariables(processAll.getProcessInstanceId(), map); - // 更新人员信息绑定表 - ProcessNodeService processNodeService = - SpringContextUtil.getBean(ProcessNodeService.class); - LambdaQueryWrapper queryProcessNode = new LambdaQueryWrapper<>(); - queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId()); - queryProcessNode.in(ProcessNode::getXmlNodeId, - Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE, - StandardInterpretCommon.MASTER_INTERPRET_SUMMARY)); - List processNodeList = processNodeService.list(queryProcessNode); - ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class); - for (ProcessNode processNode : processNodeList) { - LambdaUpdateWrapper updateProcessNodeLink = new LambdaUpdateWrapper<>(); - updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId()); - updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId()); - updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId()); - updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId); - processNodeLinkService.update(updateProcessNodeLink); - } - - // 查询其他子流程 - List processApprovalRecordList = processApprovalRecordService.list( - new LambdaQueryWrapper() - .eq(ProcessApprovalRecord::getProcessInstanceId, processApprovalRecord.getProcessInstanceId()) - .eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()) - .isNotNull(ProcessApprovalRecord::getParentTaskId) - .ne(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.MASTER_INTERPRET_APPROVE)); - // 更新子流程标准解读人流程变量 - for (ProcessApprovalRecord approvalRecord : processApprovalRecordList) { - Task task2 = taskService.createTaskQuery().taskId(approvalRecord.getTaskId()).singleResult(); - runtimeService.setVariable(task2.getExecutionId(), StandardInterpretCommon.MASTER_INTERPRET, toUserId); - } +// TaskService taskService = SpringContextUtil.getBean(TaskService.class); +// RuntimeService runtimeService = SpringContextUtil.getBean(RuntimeService.class); +// // 更新主流程标准解读人流程变量 +// HashMap map = new HashMap<>(); +// map.put(StandardInterpretCommon.MASTER_INTERPRET, toUserId); +// runtimeService.setVariables(processAll.getProcessInstanceId(), map); +// // 更新人员信息绑定表 +// ProcessNodeService processNodeService = +// SpringContextUtil.getBean(ProcessNodeService.class); +// LambdaQueryWrapper queryProcessNode = new LambdaQueryWrapper<>(); +// queryProcessNode.eq(ProcessNode::getProcessDefinitionId, processAll.getProcessDefinitionId()); +// queryProcessNode.in(ProcessNode::getXmlNodeId, +// Arrays.asList(StandardInterpretCommon.MASTER_INTERPRET_APPROVE, +// StandardInterpretCommon.MASTER_INTERPRET_SUMMARY)); +// List processNodeList = processNodeService.list(queryProcessNode); +// ProcessNodeLinkService processNodeLinkService = SpringContextUtil.getBean(ProcessNodeLinkService.class); +// for (ProcessNode processNode : processNodeList) { +// LambdaUpdateWrapper updateProcessNodeLink = new LambdaUpdateWrapper<>(); +// updateProcessNodeLink.eq(ProcessNodeLink::getProcessInstanceId, processAll.getProcessInstanceId()); +// updateProcessNodeLink.eq(ProcessNodeLink::getProcessNodeId, processNode.getId()); +// updateProcessNodeLink.eq(ProcessNodeLink::getProcessDefinitionId, processAll.getProcessDefinitionId()); +// updateProcessNodeLink.set(ProcessNodeLink::getUserId, toUserId); +// processNodeLinkService.update(updateProcessNodeLink); +// } +// +// // 查询其他子流程 +// List processApprovalRecordList = processApprovalRecordService.list( +// new LambdaQueryWrapper() +// .eq(ProcessApprovalRecord::getProcessInstanceId, processApprovalRecord.getProcessInstanceId()) +// .eq(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.INCOMPLETE.getValue()) +// .isNotNull(ProcessApprovalRecord::getParentTaskId) +// .ne(ProcessApprovalRecord::getNodeId, StandardInterpretCommon.MASTER_INTERPRET_APPROVE)); +// // 更新子流程标准解读人流程变量 +// for (ProcessApprovalRecord approvalRecord : processApprovalRecordList) { +// Task task2 = taskService.createTaskQuery().taskId(approvalRecord.getTaskId()).singleResult(); +// runtimeService.setVariable(task2.getExecutionId(), StandardInterpretCommon.MASTER_INTERPRET, toUserId); +// } } } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 9335acb2..86a5ac4f 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -104,6 +104,22 @@ public class ProcessAllService extends ServiceImpl String column = req.getParameter("column"); String order = req.getParameter("order"); IPage 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() + .eq(ProcessApprovalRecord::getProcessInstanceId, + processAll.getProcessInstanceId()) + .isNotNull(ProcessApprovalRecord::getParentTaskId)); + if (count > 0 || StandardInterpretCommon.MASTER_INTERPRET_AGAIN_DISTRIBUTE.equals(node)){ + processAll.setShowRejectTransition(YesOrNoEnum.NO.getValue()); + } + } + } Set nodeIdSet = todoList.getRecords().stream().map(ProcessAll::getNodeId).collect(Collectors.toSet()); Set processDefinitionIdSet = todoList.getRecords().stream().map(ProcessAll::getProcessDefinitionId).collect(Collectors.toSet()); if (CollectionUtils.isNotEmpty(nodeIdSet) && CollectionUtils.isNotEmpty(processDefinitionIdSet)){