瀏覽代碼

流程数据修改

wangliang 3 年之前
父節點
當前提交
b918801bf6

+ 12 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowTaskApprovePeopleAllResult.java

@@ -23,6 +23,18 @@ public class FlowTaskApprovePeopleAllResult implements Serializable {
     @ApiModelProperty(value = "流程审批人列表")
     private List<FlowTaskApprovePeopleResult> approveUserList;
 
+    public FlowTaskApprovePeopleAllResult() {
+
+    }
+
+    public FlowTaskApprovePeopleAllResult(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public FlowTaskApprovePeopleAllResult(List<FlowTaskApprovePeopleResult> approveUserList) {
+        this.approveUserList = approveUserList;
+    }
+
     public Long getFlowId() {
         return flowId;
     }

+ 6 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowTaskApprovePeopleResult.java

@@ -1,5 +1,6 @@
 package com.qmth.distributed.print.business.bean.result;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -13,6 +14,7 @@ import java.util.List;
  * @Author: wangliang
  * @Date: 2021/8/16
  */
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class FlowTaskApprovePeopleResult implements Serializable {
 
     @ApiModelProperty(value = "流程步骤")
@@ -39,6 +41,10 @@ public class FlowTaskApprovePeopleResult implements Serializable {
         this.approveUser = approveUser;
     }
 
+    public FlowTaskApprovePeopleResult(List<ApproveUserResult> approveUser) {
+        this.approveUser = approveUser;
+    }
+
     public boolean isApprove() {
         return approve;
     }

+ 8 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java

@@ -103,4 +103,12 @@ public interface ActivitiService {
      * @return
      */
     public boolean taskApproverExchange(String userId, String taskId);
+
+    /**
+     * 获取转他人审批人
+     *
+     * @param taskId
+     * @return
+     */
+    public FlowTaskApprovePeopleAllResult taskApproverExchangePeople(String taskId);
 }

+ 65 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -15,8 +15,12 @@ import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicCourse;
+import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.service.BasicCourseService;
+import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
@@ -88,6 +92,12 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Resource
     SysUserService sysUserService;
 
+    @Resource
+    BasicCourseService basicCourseService;
+
+    @Resource
+    SysOrgService sysOrgService;
+
     /**
      * 注册流程
      *
@@ -513,9 +523,8 @@ public class ActivitiServiceImpl implements ActivitiService {
             if (Objects.isNull(task)) {
                 throw ExceptionResultEnum.ERROR.exception("流程任务为空");
             }
-            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
+            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(Long.parseLong(task.getProcessInstanceId()));
             flowTaskApprovePeopleResultList = new LinkedList();
-            flowTaskApprovePeopleAllResult.setFlowId(Long.parseLong(task.getProcessInstanceId()));
             //获取当前流程节点
             TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
             if (Objects.isNull(tfFlowApprove)) {
@@ -571,7 +580,6 @@ public class ActivitiServiceImpl implements ActivitiService {
             if (Objects.isNull(courseCode) || Objects.equals(courseCode, "")) {
                 throw ExceptionResultEnum.ERROR.exception("课程编码为空");
             }
-            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult();
             flowTaskApprovePeopleResultList = getApproveUserAll(courseCode, flowTaskApprovePeopleResultList);
         }
         flowTaskApprovePeopleAllResult.setApproveUserList(flowTaskApprovePeopleResultList);
@@ -622,6 +630,60 @@ public class ActivitiServiceImpl implements ActivitiService {
         return true;
     }
 
+    /**
+     * 获取转他人审批人
+     *
+     * @param taskId
+     * @return
+     */
+    @Override
+    public FlowTaskApprovePeopleAllResult taskApproverExchangePeople(String taskId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
+        if (Objects.isNull(task)) {
+            throw ExceptionResultEnum.ERROR.exception("流程任务为空");
+        }
+        FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(Long.parseLong(task.getProcessInstanceId()));
+        //获取当前流程节点
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
+        if (Objects.isNull(tfFlowApprove)) {
+            throw ExceptionResultEnum.ERROR.exception("未找到流程状态记录");
+        }
+        if (tfFlowApprove.getSetup() <= 0) {
+            throw ExceptionResultEnum.ERROR.exception("流程已结束或已终止");
+        }
+        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+        examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, flowTaskApprovePeopleAllResult.getFlowId());
+        ExamTask examTask = null;
+
+        List<FlowTaskApprovePeopleResult> flowTaskApprovePeopleResultList = new ArrayList<>();
+        switch (tfFlowApprove.getSetup()) {
+            case 1:
+                //获取命题审批人
+                examTask = examTaskService.getOne(examTaskQueryWrapper);
+                List<ApproveUserResult> approveUserResultList = sysUserService.findByAssignApprove(examTask.getCourseCode());
+                flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(approveUserResultList));
+                break;
+            case 2:
+                //获取教研室主任审批人
+                examTask = examTaskService.getOne(examTaskQueryWrapper);
+                List<ApproveUserResult> sysUserDirectorList = sysUserService.findByDirectorApprove(examTask.getCourseCode());
+                flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(sysUserDirectorList));
+                break;
+            case 3:
+                //获取院长审批人
+                if (Objects.nonNull(sysUser.getOrgId())) {
+                    List<ApproveUserResult> sysUserPresidentList = sysUserService.findByPresidentApprove(Arrays.asList(sysUser.getOrgId()));
+                    flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(sysUserPresidentList));
+                }
+                break;
+            default:
+                break;
+        }
+        flowTaskApprovePeopleAllResult.setApproveUserList(flowTaskApprovePeopleResultList);
+        return flowTaskApprovePeopleAllResult;
+    }
+
     /**
      * 流程提交校验
      *

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

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

+ 10 - 0
distributed-print/src/main/java/com/qmth/distributed/print/api/TFFlowController.java

@@ -25,9 +25,11 @@ import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.FlowApprovePassEnum;
 import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
+import com.qmth.teachcloud.common.util.AesUtil;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
+import com.sun.org.apache.xpath.internal.operations.Bool;
 import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -54,6 +56,7 @@ import java.util.Objects;
 @Api(tags = "流程Controller")
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${prefix.url.flow}")
+//@Aac(auth = BOOL.FALSE, strict = BOOL.FALSE)
 public class TFFlowController {
     private final static Logger log = LoggerFactory.getLogger(TFFlowController.class);
 
@@ -211,4 +214,11 @@ public class TFFlowController {
                                        @ApiParam(value = "流程节点id", required = true) @RequestParam String taskId) {
         return ResultUtil.ok(activitiService.taskApproverExchange(userId, taskId));
     }
+
+    @ApiOperation(value = "获取转他人审批人")
+    @ApiResponses({@ApiResponse(code = 200, message = "流程节点审批人", response = FlowTaskApprovePeopleAllResult.class)})
+    @RequestMapping(value = "/task/approver/exchange/people", method = RequestMethod.POST)
+    public Result taskApproverExchangePeople(@ApiParam(value = "流程节点id", required = true) @RequestParam String taskId) {
+        return ResultUtil.ok(activitiService.taskApproverExchangePeople(taskId));
+    }
 }

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

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

+ 49 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApproveNameEnum.java

@@ -0,0 +1,49 @@
+package com.qmth.teachcloud.common.enums;
+
+import java.util.Objects;
+
+/**
+ * @Description: 流程审批名称 enum
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2021/8/2
+ */
+public enum FlowApproveNameEnum {
+
+    DIRECTOR("主任审批", "Director"),
+
+    PRESIDENT("院长审核", "President");
+
+    private String title;
+
+    private String id;
+
+    private FlowApproveNameEnum(String title, String id) {
+        this.title = title;
+        this.id = id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    /**
+     * 状态转换 toName
+     *
+     * @param title
+     * @return
+     */
+    public static String convertToName(String title) {
+        for (FlowApproveNameEnum e : FlowApproveNameEnum.values()) {
+            if (Objects.equals(title, e.getTitle())) {
+                return e.name();
+            }
+        }
+        return null;
+    }
+}

+ 2 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/mapper/SysUserMapper.java

@@ -34,9 +34,10 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
      * @param schoolId
      * @param orgIds
      * @param filter
+     * @param approveName
      * @return
      */
-    List<ApproveUserResult> filterFlowPrivilege(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds, @Param("filter") Boolean filter);
+    List<ApproveUserResult> filterFlowPrivilege(@Param("schoolId") Long schoolId, @Param("orgIds") Set<Long> orgIds, @Param("filter") Boolean filter,@Param("approveName") String approveName);
 
     /**
      * 根据id获取

+ 11 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/SysUserService.java

@@ -8,6 +8,7 @@ import com.qmth.teachcloud.common.bean.dto.UserDto;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.UserSaveParams;
 import com.qmth.teachcloud.common.entity.SysUser;
+import com.qmth.teachcloud.common.enums.FlowApproveNameEnum;
 import org.springframework.util.LinkedMultiValueMap;
 
 import java.security.NoSuchAlgorithmException;
@@ -70,9 +71,10 @@ public interface SysUserService extends IService<SysUser> {
      * @param schoolId
      * @param orgIds
      * @param filter
+     * @param approveName
      * @return
      */
-    List<ApproveUserResult> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter);
+    List<ApproveUserResult> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter, FlowApproveNameEnum approveName);
 
     /**
      * 执行批量导入用户逻辑
@@ -83,6 +85,14 @@ public interface SysUserService extends IService<SysUser> {
      */
     Map<String, Object> executeSysUserImportLogic(List<LinkedMultiValueMap<Integer, Object>> finalList, Map<String, Object> map) throws NoSuchAlgorithmException;
 
+    /**
+     * 获取命题审批人
+     *
+     * @param courseCode
+     * @return
+     */
+    public List<ApproveUserResult> findByAssignApprove(String courseCode);
+
     /**
      * 获取教研室主任审批人
      *

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

@@ -19,6 +19,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.*;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
+import com.qmth.teachcloud.common.enums.FlowApproveNameEnum;
 import com.qmth.teachcloud.common.enums.RoleTypeEnum;
 import com.qmth.teachcloud.common.mapper.SysUserMapper;
 import com.qmth.teachcloud.common.service.*;
@@ -227,7 +228,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
         List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
         Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
-        List<ApproveUserResult> sysUserList = sysUserService.filterFlowPrivilege(schoolId, orgIds, false);
+        List<ApproveUserResult> sysUserList = sysUserService.filterFlowPrivilege(schoolId, orgIds, false, null);
         List<BlurryUserDto> blurryUserDtoList = new ArrayList<>();
         for (ApproveUserResult sysUser : sysUserList) {
             blurryUserDtoList.add(new BlurryUserDto(sysUser.getId(), sysUser.getRealName()));
@@ -468,11 +469,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
      * @param schoolId
      * @param orgIds
      * @param filter
+     * @param approveName
      * @return
      */
     @Override
-    public List<ApproveUserResult> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter) {
-        return sysUserMapper.filterFlowPrivilege(schoolId, orgIds, filter);
+    public List<ApproveUserResult> filterFlowPrivilege(Long schoolId, Set<Long> orgIds, Boolean filter, FlowApproveNameEnum approveName) {
+        return sysUserMapper.filterFlowPrivilege(schoolId, orgIds, filter, Objects.nonNull(approveName) ? approveName.getId() : null);
     }
 
     @Override
@@ -530,6 +532,28 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         return map;
     }
 
+    /**
+     * 获取命题审批人
+     *
+     * @param courseCode
+     * @return
+     */
+    @Override
+    public List<ApproveUserResult> findByAssignApprove(String courseCode) {
+        Long schoolId = SystemConstant.getHeadOrUserSchoolId();
+        QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
+        basicCourseQueryWrapper.lambda().eq(BasicCourse::getSchoolId, schoolId)
+                .eq(BasicCourse::getCode, courseCode)
+                .eq(BasicCourse::getEnable, true);
+        BasicCourse basicCourse = basicCourseService.getOne(basicCourseQueryWrapper);
+        if (Objects.isNull(basicCourse)) {
+            throw ExceptionResultEnum.ERROR.exception("找不到此课程信息");
+        }
+        List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
+        Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
+        return sysUserService.filterFlowPrivilege(schoolId, orgIds, false, null);
+    }
+
     /**
      * 获取教研室主任审批人
      *
@@ -552,7 +576,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         }
         List<SysOrg> sysOrgList = sysOrgService.findByConnectByRootOrgId(basicCourse.getTeachingRoomId());
         Set<Long> orgIds = sysOrgList.stream().map(s -> s.getId()).collect(Collectors.toSet());
-        return sysUserService.filterFlowPrivilege(schoolId, orgIds, true);
+        return sysUserService.filterFlowPrivilege(schoolId, orgIds, true, FlowApproveNameEnum.DIRECTOR);
     }
 
     /**
@@ -569,7 +593,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             sysOrgSet.addAll(sysOrgService.findByConnectByParentId(l));
         }
         Set<Long> orgIdsSet = sysOrgSet.stream().map(s -> s.getId()).collect(Collectors.toSet());
-        return sysUserService.filterFlowPrivilege(schoolId, orgIdsSet, true);
+        return sysUserService.filterFlowPrivilege(schoolId, orgIdsSet, true, FlowApproveNameEnum.PRESIDENT);
     }
 
     /**

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

@@ -141,9 +141,7 @@
             sp.id
             from
             sys_privilege sp
-            where
-            sp.url = 'flow'
-            and sp.name = '流程审核') t on
+            where sp.url = #{approveName}) t on
             t.id = srp.privilege_id
         </if>
            <where>