yangys
2025-08-12 7f62f1ebb6fbea285a79bcfe7a83a8a94181a8ee
批量审核接口改进
已修改3个文件
78 ■■■■■ 文件已修改
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/MyFlowController.java
@@ -42,6 +42,8 @@
    @Autowired
    private FlowTransferService flowTransferService;
    @Autowired
    private FlowCommonService flowCommonService;
    /**
     * 待办任务列表页
     */
@@ -106,18 +108,6 @@
    @ApiOperationSupport(order = 3)
    @Operation(summary = "上一步审批人查询", description = "上一步审批人查询,返回审批人id")
    public R<String> previusApproveUserId(@Parameter(description = "部门ID") String processInstanceId) {
        // 获取历史任务实例
        List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
            .processInstanceId(processInstanceId)
            .orderByHistoricTaskInstanceEndTime().asc()
            .list();
        // 获取上一个已完成的任务
        String assignee = "";
        if(!historicTasks.isEmpty()) {
            assignee = historicTasks.get(historicTasks.size() - 1).getAssignee();
        }
        return R.data(assignee);
        return R.data(this.flowCommonService.previusAssignee(processInstanceId));
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/FlowCommonService.java
@@ -7,6 +7,7 @@
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
@@ -15,6 +16,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
@AllArgsConstructor
@@ -103,7 +105,25 @@
        return historicInstance != null && historicInstance.getEndTime() == null;
    }
    /**
     * 上一步处理人
     * @param processInstanceId 流程实例id
     * @return assignee
     */
    public String previusAssignee(String processInstanceId) {
        // 获取历史任务实例
        List<HistoricTaskInstance> historicTasks = historyService.createHistoricTaskInstanceQuery()
            .processInstanceId(processInstanceId)
            .orderByHistoricTaskInstanceEndTime().asc()
            .list();
        // 获取上一个已完成的任务
        String assignee = "";
        if(!historicTasks.isEmpty()) {
            assignee = historicTasks.get(historicTasks.size() - 1).getAssignee();
        }
        return assignee;
    }
}
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/execute/BatchDispatchService.java
@@ -11,6 +11,7 @@
import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.constants.FlowVariableContants;
import org.springblade.mdm.flow.service.ApproveRecordService;
import org.springblade.mdm.flow.service.FlowCommonService;
import org.springblade.mdm.flow.service.FlowProgramFileService;
import org.springblade.mdm.flow.vo.BatchDispatchVO;
import org.springblade.mdm.program.service.NcNodeAutoCreateService;
@@ -32,6 +33,8 @@
    private TaskService taskService;
    @Autowired
    private RuntimeService runtimeService;
    @Autowired
    private FlowCommonService flowCommonService;
    @Transactional
    public void batchDispatchTask(BatchDispatchVO batchDispatchVO) {
        //String[] taskIds, String[] processInstanceIds, String comment, String assignee
@@ -51,16 +54,14 @@
            taskId = taskIds[i];
            processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
            Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .singleResult();
            taskService.complete(taskId, variables);
            Task task = getTask(taskId);
            if (StringUtil.isNoneBlank(processInstanceId, comment)) {
                taskService.addComment(taskId, processInstanceId, comment);
            }
            approveRecordService.saveApproveRecords(task,FlowContants.Y,comment);
            taskService.complete(taskId, variables);
        }
    }
@@ -88,18 +89,24 @@
            variables.put("assignee", getAutoProgrammer(processInstanceId));
            Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .singleResult();
            taskService.complete(taskId, variables);
            Task task = getTask(taskId);
            if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
                taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
            }
            approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
            //最后一步完成
            taskService.complete(taskId, variables);
        }
    }
    private Task getTask(String taskId) {
        return taskService.createTaskQuery()
            .taskId(taskId)
            .singleResult();
    }
    /**
     * 获取编程的工艺员id
@@ -132,22 +139,25 @@
        //审批结果和处理人都一样的
        Map<String, Object> variables = Kv.create();
        variables.put(FlowVariableContants.APPROVE, batchDispatchVO.getApprove());
        variables.put(FlowVariableContants.ASSIGNEE, batchDispatchVO.getAssignee());
        variables.put(FlowVariableContants.COMMENT, batchDispatchVO.getComment());
        for(int i=0;i<taskIds.length;i++) {
            taskId = taskIds[i];
            processInstanceId = batchDispatchVO.getProcessInstanceIds()[i];
            Task task = taskService.createTaskQuery()
                .taskId(taskId)
                .singleResult();
            taskService.complete(taskId, variables);
            Task task = getTask(taskId);
            if (StringUtil.isNoneBlank(processInstanceId, batchDispatchVO.getComment())) {
                taskService.addComment(taskId, processInstanceId, batchDispatchVO.getComment());
            }
            if(FlowContants.N.equals(batchDispatchVO.getApprove())) {
                //驳回,查询上一步处理人原路驳回
                String assignee = flowCommonService.previusAssignee(processInstanceId);
                variables.put(FlowVariableContants.ASSIGNEE, assignee);
            }
            approveRecordService.saveApproveRecords(task,FlowContants.Y,batchDispatchVO.getComment());
            taskService.complete(taskId, variables);
        }
    }
    /**