浏览代码

流程转他人审批

wangliang 3 年之前
父节点
当前提交
edd178412e

+ 5 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PresidentApproveListener.java

@@ -3,6 +3,7 @@ package com.qmth.distributed.print.business.activiti;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import org.activiti.engine.delegate.DelegateTask;
 import org.activiti.engine.delegate.DelegateTask;
@@ -12,6 +13,7 @@ import org.slf4j.LoggerFactory;
 
 
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -33,6 +35,9 @@ public class PresidentApproveListener implements TaskListener {
     public void notify(DelegateTask delegateTask) {
     public void notify(DelegateTask delegateTask) {
         SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
         SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        if (Objects.isNull(sysUser.getOrgId())) {
+            throw ExceptionResultEnum.ERROR.exception("审批人机构为空");
+        }
         List<ApproveUserResult> sysUserList = sysUserService.findByPresidentApprove(Arrays.asList(sysUser.getOrgId()));
         List<ApproveUserResult> sysUserList = sysUserService.findByPresidentApprove(Arrays.asList(sysUser.getOrgId()));
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
         //添加或签的人员,一人通过即可进入下一环节
         //添加或签的人员,一人通过即可进入下一环节

+ 10 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java

@@ -93,5 +93,14 @@ public interface ActivitiService {
      * @param taskId
      * @param taskId
      * @return
      * @return
      */
      */
-    public FlowTaskApprovePeopleAllResult taskApproverAll(String courseCode, String taskId);
+    public FlowTaskApprovePeopleAllResult taskApproverPeopleAll(String courseCode, String taskId);
+
+    /**
+     * 流程节点转他人审批
+     *
+     * @param userId
+     * @param taskId
+     * @return
+     */
+    public boolean taskApproverExchange(String userId, String taskId);
 }
 }

+ 120 - 44
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -351,10 +351,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                         tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
                         tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
                         FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
                         FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
                         if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题提交
                         if (setupEnum == FlowGdykdxApproveSetupEnum.SUBMIT) {//命题提交
-                            Task taskUser = taskService.createTaskQuery().taskId(flowTaskId).taskAssignee(String.valueOf(sysUser.getId())).singleResult();
-                            if (Objects.isNull(taskUser)) {
-                                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
-                            }
+                            flowSubmitVaild(task, sysUser.getId());
                             if (Objects.isNull(tfFlowApproveLog)) {
                             if (Objects.isNull(tfFlowApproveLog)) {
                                 tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
                                 tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), Long.parseLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
                             }
                             }
@@ -363,13 +360,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                             tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
                             tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
                             tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
                             tfFlowApprove.setSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
                         } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任提交
                         } else if (setupEnum == FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE) {//主任提交
-                            Task taskUser = taskService.createTaskQuery().taskId(flowTaskId).taskCandidateUser(String.valueOf(sysUser.getId())).singleResult();
-                            if (Objects.isNull(taskUser)) {
-                                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
-                            }
-                            if (Objects.isNull(map.get(SystemConstant.APPROVE_OPERATION))) {
-                                throw ExceptionResultEnum.ERROR.exception("流程审核操作不能为空");
-                            }
+                            flowApproveVaild(task, sysUser.getId(), map);
                             FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
                             FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
                             FlowApproveVariableEnum approve = approvePass == FlowApprovePassEnum.PASS ? FlowApproveVariableEnum.PRIMARY_APPROVE : FlowApproveVariableEnum.PRIMARY_REJECT;
                             FlowApproveVariableEnum approve = approvePass == FlowApprovePassEnum.PASS ? FlowApproveVariableEnum.PRIMARY_APPROVE : FlowApproveVariableEnum.PRIMARY_REJECT;
                             tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
                             tfFlowLog.setApproveSetup(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup());
@@ -390,13 +381,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                             }
                             }
                             map.computeIfAbsent(SystemConstant.APPROVE, v -> approve.getId());
                             map.computeIfAbsent(SystemConstant.APPROVE, v -> approve.getId());
                         } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长提交
                         } else if (setupEnum == FlowGdykdxApproveSetupEnum.SECOND_APPROVE) {//院长提交
-                            Task taskUser = taskService.createTaskQuery().taskId(flowTaskId).taskCandidateUser(String.valueOf(sysUser.getId())).singleResult();
-                            if (Objects.isNull(taskUser)) {
-                                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
-                            }
-                            if (Objects.isNull(map.get(SystemConstant.APPROVE_OPERATION))) {
-                                throw ExceptionResultEnum.ERROR.exception("流程审核操作不能为空");
-                            }
+                            flowApproveVaild(task, sysUser.getId(), map);
                             FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
                             FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
                             FlowApproveVariableEnum approve = null;
                             FlowApproveVariableEnum approve = null;
                             tfFlowApproveLog.setSecondApproveId(sysUser.getId());
                             tfFlowApproveLog.setSecondApproveId(sysUser.getId());
@@ -520,17 +505,17 @@ public class ActivitiServiceImpl implements ActivitiService {
      * @return
      * @return
      */
      */
     @Override
     @Override
-    public FlowTaskApprovePeopleAllResult taskApproverAll(String courseCode, String taskId) {
+    public FlowTaskApprovePeopleAllResult taskApproverPeopleAll(String courseCode, String taskId) {
         FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = null;
         FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = null;
         List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList = null;
         List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList = null;
         if (Objects.nonNull(taskId) && !Objects.equals(taskId, "")) {//说明从已审核的节点开始捞人
         if (Objects.nonNull(taskId) && !Objects.equals(taskId, "")) {//说明从已审核的节点开始捞人
-            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
-            flowTaskApprovePeopleResultList = new LinkedList();
             Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
             Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
-            flowTaskApprovePeopleAllResult.setFlowId(Long.parseLong(task.getProcessInstanceId()));
             if (Objects.isNull(task)) {
             if (Objects.isNull(task)) {
                 throw ExceptionResultEnum.ERROR.exception("流程任务为空");
                 throw ExceptionResultEnum.ERROR.exception("流程任务为空");
             }
             }
+            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
+            flowTaskApprovePeopleResultList = new LinkedList();
+            flowTaskApprovePeopleAllResult.setFlowId(Long.parseLong(task.getProcessInstanceId()));
             //获取当前流程节点
             //获取当前流程节点
             TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
             TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
             if (Objects.isNull(tfFlowApprove)) {
             if (Objects.isNull(tfFlowApprove)) {
@@ -551,35 +536,29 @@ public class ActivitiServiceImpl implements ActivitiService {
             }
             }
             switch (tfFlowApprove.getSetup()) {
             switch (tfFlowApprove.getSetup()) {
                 case 1:
                 case 1:
-                    //获取教研室主任审批人
-                    List<ApproveUserResult> sysUserDirectorList = sysUserService.findByDirectorApprove(examTask.getCourseCode());
-                    flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup(), sysUserDirectorList));
-                    Set<Long> orgIds = sysUserDirectorList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
-                    //获取院长审批人
-                    List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds));
-                    flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup(), sysUserPresidentList));
+                    flowTaskApprovePeopleResultList = getApproveUserAll(examTask.getCourseCode(), flowTaskApprovePeopleResultList);
                     break;
                     break;
                 case 2:
                 case 2:
-                    if (Objects.nonNull(flowApproveResult)) {
-                        throw ExceptionResultEnum.ERROR.exception("未找到流程记录");
+                    if (Objects.isNull(flowApproveResult)) {
+                        throw ExceptionResultEnum.ERROR.exception("未找到流程审批记录");
                     }
                     }
                     //获取命题已审
                     //获取命题已审
                     List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
                     List<ApproveUserResult> approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
                     //获取院长审批人
                     //获取院长审批人
-                    orgIds = approveUserMtResult.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
-                    sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds));
+                    Set<Long> orgIds = approveUserMtResult.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
+                    List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup(), sysUserPresidentList));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup(), sysUserPresidentList));
                     break;
                     break;
                 case 3:
                 case 3:
-                    if (Objects.nonNull(flowApproveResult)) {
-                        throw ExceptionResultEnum.ERROR.exception("未找到流程记录");
+                    if (Objects.isNull(flowApproveResult)) {
+                        throw ExceptionResultEnum.ERROR.exception("未找到流程审批记录");
                     }
                     }
                     //获取命题已审
                     //获取命题已审
                     approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
                     approveUserMtResult = sysUserService.findById(flowApproveResult.getStartId());
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SUBMIT.getSetup(), true, approveUserMtResult));
                     //获取主任已审
                     //获取主任已审
-                    sysUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
+                    List<ApproveUserResult> sysUserDirectorList = sysUserService.findById(flowApproveResult.getPrimaryApproveId());
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, sysUserDirectorList));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup(), true, sysUserDirectorList));
                     break;
                     break;
                 default:
                 default:
@@ -590,16 +569,113 @@ public class ActivitiServiceImpl implements ActivitiService {
                 throw ExceptionResultEnum.ERROR.exception("课程编码为空");
                 throw ExceptionResultEnum.ERROR.exception("课程编码为空");
             }
             }
             flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
             flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
-            flowTaskApprovePeopleResultList = new LinkedList();
-            //获取教研室主任审批人
-            List<ApproveUserResult> sysUserDirectorList = sysUserService.findByDirectorApprove(courseCode);
-            flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup(), sysUserDirectorList));
-            Set<Long> orgIds = sysUserDirectorList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
-            //获取院长审批人
-            List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds));
-            flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup(), sysUserPresidentList));
+            flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList);
         }
         }
         flowTaskApprovePeopleAllResult.setApproveUserList(flowTaskApprovePeopleResultList);
         flowTaskApprovePeopleAllResult.setApproveUserList(flowTaskApprovePeopleResultList);
         return flowTaskApprovePeopleAllResult;
         return flowTaskApprovePeopleAllResult;
     }
     }
+
+    /**
+     * 流程节点转他人审批
+     *
+     * @param userId
+     * @param taskId
+     * @return
+     */
+    @Override
+    public boolean taskApproverExchange(String userId, String taskId) {
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (Objects.isNull(task)) {
+            throw ExceptionResultEnum.ERROR.exception("流程任务为空");
+        }
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(Long.parseLong(task.getProcessInstanceId()));
+        if (Objects.isNull(tfFlowApprove)) {
+            throw ExceptionResultEnum.ERROR.exception("未找到流程状态记录");
+        }
+        if (tfFlowApprove.getSetup() <= 0) {
+            throw ExceptionResultEnum.ERROR.exception("流程已结束或已终止");
+        }
+        switch (tfFlowApprove.getSetup()) {
+            case 1:
+                if (Objects.nonNull(task) && Objects.nonNull(task.getAssignee()) && Objects.equals(task.getAssignee(), userId)) {
+                    throw ExceptionResultEnum.ERROR.exception("不能转给自己");
+                }
+                break;
+            case 2:
+            case 3:
+                if (Objects.nonNull(task) && Objects.nonNull(task.getAssignee()) && Objects.equals(task.getAssignee(), userId)) {
+                    throw ExceptionResultEnum.ERROR.exception("不能转给自己");
+                } else {
+                    Task taskUser = taskService.createTaskQuery().taskId(taskId).taskCandidateUser(userId).singleResult();
+                    if (Objects.nonNull(taskUser)) {
+                        throw ExceptionResultEnum.ERROR.exception("该审批人已有审批权限,无需流转");
+                    }
+                }
+                break;
+            default:
+                break;
+        }
+        taskService.setAssignee(taskId, userId);
+        return true;
+    }
+
+    /**
+     * 流程提交校验
+     *
+     * @param task
+     * @param userId
+     */
+    private void flowSubmitVaild(Task task, Long userId) {
+        if (Objects.isNull(task.getAssignee())) {
+            Task taskUser = taskService.createTaskQuery().taskId(task.getId()).taskAssignee(String.valueOf(userId)).singleResult();
+            if (Objects.isNull(taskUser)) {
+                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
+            }
+        } else {
+            if (!Objects.equals(task.getAssignee(), String.valueOf(userId))) {
+                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
+            }
+        }
+    }
+
+    /**
+     * 流程审批校验
+     *
+     * @param task
+     * @param userId
+     * @param map
+     */
+    private void flowApproveVaild(Task task, Long userId, Map<String, Object> map) {
+        if (Objects.isNull(task.getAssignee())) {
+            Task taskUser = taskService.createTaskQuery().taskId(task.getId()).taskCandidateUser(String.valueOf(userId)).singleResult();
+            if (Objects.isNull(taskUser)) {
+                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
+            }
+        } else {
+            if (!Objects.equals(task.getAssignee(), String.valueOf(userId))) {
+                throw ExceptionResultEnum.ERROR.exception("不能提交他人的任务");
+            }
+        }
+        if (Objects.isNull(map.get(SystemConstant.APPROVE_OPERATION))) {
+            throw ExceptionResultEnum.ERROR.exception("流程审核操作不能为空");
+        }
+    }
+
+    /**
+     * 获取所有审批人
+     *
+     * @param courseCode
+     * @param flowTaskApprovePeopleResultList
+     */
+    private List<FlowTaskApprovePeopleResult> getApproveUserAll(String courseCode, List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList) {
+        flowTaskApprovePeopleResultList = Objects.isNull(flowTaskApprovePeopleResultList) ? new LinkedList() : flowTaskApprovePeopleResultList;
+        //获取教研室主任审批人
+        List<ApproveUserResult> sysUserDirectorList = sysUserService.findByDirectorApprove(courseCode);
+        flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.PRIMARY_APPROVE.getSetup(), sysUserDirectorList));
+        Set<Long> orgIds = sysUserDirectorList.stream().map(s -> s.getOrgId()).collect(Collectors.toSet());
+        //获取院长审批人
+        List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(new ArrayList<>(orgIds));
+        flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowGdykdxApproveSetupEnum.SECOND_APPROVE.getSetup(), sysUserPresidentList));
+        return flowTaskApprovePeopleResultList;
+    }
 }
 }

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -54,7 +54,6 @@ import java.util.*;
 @Api(tags = "命题任务Controller")
 @Api(tags = "命题任务Controller")
 @RestController
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/task")
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.exam}/task")
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class ExamTaskController {
 public class ExamTaskController {
 
 
     @Autowired
     @Autowired

+ 15 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/TFFlowController.java

@@ -9,6 +9,8 @@ import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.params.FlowApproveParam;
 import com.qmth.distributed.print.business.bean.params.FlowApproveParam;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.FlowApproveResult;
 import com.qmth.distributed.print.business.bean.result.FlowApproveResult;
+import com.qmth.distributed.print.business.bean.result.FlowTaskApprovePeopleAllResult;
+import com.qmth.distributed.print.business.bean.result.FlowTaskResult;
 import com.qmth.distributed.print.business.entity.TFFlow;
 import com.qmth.distributed.print.business.entity.TFFlow;
 import com.qmth.distributed.print.business.entity.TFFlowApproveLog;
 import com.qmth.distributed.print.business.entity.TFFlowApproveLog;
 import com.qmth.distributed.print.business.service.ActivitiService;
 import com.qmth.distributed.print.business.service.ActivitiService;
@@ -52,7 +54,6 @@ import java.util.Objects;
 @Api(tags = "流程Controller")
 @Api(tags = "流程Controller")
 @RestController
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.flow}")
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.flow}")
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class TFFlowController {
 public class TFFlowController {
     private final static Logger log = LoggerFactory.getLogger(TFFlowController.class);
     private final static Logger log = LoggerFactory.getLogger(TFFlowController.class);
 
 
@@ -189,17 +190,25 @@ public class TFFlowController {
     }
     }
 
 
     @ApiOperation(value = "获取所有流程节点")
     @ApiOperation(value = "获取所有流程节点")
-    @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "流程节点", response = FlowTaskResult.class)})
     @RequestMapping(value = "/task/all", method = RequestMethod.POST)
     @RequestMapping(value = "/task/all", method = RequestMethod.POST)
     public Result taskAll(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
     public Result taskAll(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
         return ResultUtil.ok(activitiService.getTaskAll(flowId));
         return ResultUtil.ok(activitiService.getTaskAll(flowId));
     }
     }
 
 
     @ApiOperation(value = "获取所有流程节点待审批人")
     @ApiOperation(value = "获取所有流程节点待审批人")
-    @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
+    @ApiResponses({@ApiResponse(code = 200, message = "流程节点待审批人", response = FlowTaskApprovePeopleAllResult.class)})
     @RequestMapping(value = "/task/approver/people_all", method = RequestMethod.POST)
     @RequestMapping(value = "/task/approver/people_all", method = RequestMethod.POST)
-    public Result taskApproverAll(@ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode,
-                                  @ApiParam(value = "流程节点id", required = false) @RequestParam(required = false) String taskId) {
-        return ResultUtil.ok(activitiService.taskApproverAll(courseCode, taskId));
+    public Result taskApproverPeopleAll(@ApiParam(value = "课程编码", required = false) @RequestParam(required = false) String courseCode,
+                                        @ApiParam(value = "流程节点id", required = false) @RequestParam(required = false) String taskId) {
+        return ResultUtil.ok(activitiService.taskApproverPeopleAll(courseCode, taskId));
+    }
+
+    @ApiOperation(value = "流程节点转他人审批")
+    @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
+    @RequestMapping(value = "/task/approver/exchange", method = RequestMethod.POST)
+    public Result taskApproverExchange(@ApiParam(value = "审批人id", required = true) @RequestParam String userId,
+                                       @ApiParam(value = "流程节点id", required = true) @RequestParam String taskId) {
+        return ResultUtil.ok(activitiService.taskApproverExchange(userId, taskId));
     }
     }
 }
 }

+ 0 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/WorkController.java

@@ -31,7 +31,6 @@ import java.util.Objects;
 @Api(tags = "工作台Controller")
 @Api(tags = "工作台Controller")
 @RestController
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.work}")
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.work}")
-@Aac(strict = BOOL.FALSE, auth = BOOL.FALSE)
 public class WorkController {
 public class WorkController {
 
 
     @Resource
     @Resource

+ 1 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/SysUserServiceImpl.java

@@ -580,7 +580,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      */
      */
     @Override
     @Override
     public List<ApproveUserResult> findById(Long id) {
     public List<ApproveUserResult> findById(Long id) {
-        return null;
+        return sysUserMapper.findById(id);
     }
     }
 
 
     /**
     /**

+ 4 - 4
teachcloud-common/src/main/resources/mapper/SysUserMapper.xml

@@ -128,9 +128,9 @@
             so.name as orgName,
             so.name as orgName,
             so.`type` as orgType
             so.`type` as orgType
             from sys_user su
             from sys_user su
-            join sys_user_role sur on sur.user_id = su.id
-            join sys_role_privilege srp on srp.role_id = sur.role_id
-            join sys_org so on so.id = su.org_id
+            left join sys_user_role sur on sur.user_id = su.id
+            left join sys_role_privilege srp on srp.role_id = sur.role_id
+            left join sys_org so on so.id = su.org_id
     </sql>
     </sql>
 
 
     <select id="filterFlowPrivilege" resultType="com.qmth.teachcloud.common.bean.params.ApproveUserResult">
     <select id="filterFlowPrivilege" resultType="com.qmth.teachcloud.common.bean.params.ApproveUserResult">
@@ -147,7 +147,7 @@
             t.id = srp.privilege_id
             t.id = srp.privilege_id
         </if>
         </if>
            <where>
            <where>
-               <if test="orgIds != null">
+               <if test="orgIds != null and orgIds.size > 0">
                    AND su.org_id IN
                    AND su.org_id IN
                    <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
                    <foreach collection="orgIds" item="item" index="index" open="(" separator="," close=")">
                        #{item}
                        #{item}