wangliang 3 rokov pred
rodič
commit
33ce183691

+ 12 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowLog.java

@@ -55,7 +55,7 @@ public class TFFlowLog extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "是否启用,0:停用,1:启用")
     private Boolean enable;
 
-    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止")
+    @ApiModelProperty(value = "审批操作,SUBMIT:提交,APPROVE:审批,REJECT:驳回,END:终止,EXCHANGE:转他人审批")
     private FlowApproveOperationEnum approveOperation;
 
     public TFFlowLog() {
@@ -73,6 +73,17 @@ public class TFFlowLog extends BaseEntity implements Serializable {
         insertInfo(userId);
     }
 
+    public TFFlowLog(Long schoolId, Long orgId, Long flowId, Long taskId, Long userId, String approveRemark, FlowApproveOperationEnum approveOperation) {
+        setId(SystemConstant.getDbUuid());
+        this.schoolId = schoolId;
+        this.orgId = orgId;
+        this.flowId = flowId;
+        this.taskId = taskId;
+        this.approveRemark = approveRemark;
+        this.approveOperation = approveOperation;
+        insertInfo(userId);
+    }
+
     public Long getSchoolId() {
         return schoolId;
     }

+ 26 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -585,7 +585,8 @@ public class ActivitiServiceImpl implements ActivitiService {
         if (Objects.isNull(task)) {
             throw ExceptionResultEnum.ERROR.exception("流程任务为空");
         }
-        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(Long.parseLong(task.getProcessInstanceId()));
+        Long flowId = Long.parseLong(task.getProcessInstanceId());
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);
         if (Objects.isNull(tfFlowApprove)) {
             throw ExceptionResultEnum.ERROR.exception("未找到流程状态记录");
         }
@@ -615,6 +616,30 @@ public class ActivitiServiceImpl implements ActivitiService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         taskService.deleteCandidateUser(taskId, String.valueOf(sysUser.getId()));
         taskService.addCandidateUser(taskId, userId);
+
+        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
+        examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, flowId);
+        ExamTask examTask = examTaskService.getOne(examTaskQueryWrapper);
+
+        String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult().getProcessDefinitionId();
+        ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
+        //获取当前流程节点
+        String currActivityId = task.getTaskDefinitionKey();
+        BpmnModel bpmnModel = repositoryService.getBpmnModel(task.getProcessDefinitionId());
+        FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
+
+        SysUser exchangeUser = sysUserService.getById(userId);
+        //流程流水日志
+        TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), flowId, examTask.getId(), sysUser.getId(), sysUser.getRealName() + "转" + exchangeUser.getRealName() + "审批", FlowApproveOperationEnum.EXCHANGE);
+        if (currFlow instanceof UserTask) {
+            UserTask userTask = (UserTask) currFlow;
+            //广东医科大学流程
+            if (Objects.nonNull(processDefinitionEntity) && processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)) {
+                FlowGdykdxApproveSetupEnum setupEnum = FlowGdykdxApproveSetupEnum.convertToInstance(userTask.getId());
+                tfFlowLog.setApproveSetup(setupEnum.getSetup());
+            }
+        }
+        tfFlowLogService.save(tfFlowLog);
         return true;
     }
 

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/auth/DistributedPrintAuthenticationService.java

@@ -118,7 +118,7 @@ public class DistributedPrintAuthenticationService implements AuthorizationServi
             return true;
         }
         //系统公用接口不拦截
-        List<String> sysUrls = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.SYS, SystemConstant.getHeadOrUserSchoolId());
+        Set<String> sysUrls = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.SYS, SystemConstant.getHeadOrUserSchoolId());
         int sysCount = Objects.nonNull(sysUrls) ? (int) sysUrls.stream().filter(s -> s.equalsIgnoreCase(path)).count() : 0;
         if (sysCount > 0) {
             return true;

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApproveOperationEnum.java

@@ -17,7 +17,9 @@ public enum FlowApproveOperationEnum {
 
     REJECT("驳回"),
 
-    END("终止");
+    END("终止"),
+
+    EXCHANGE("转他人审批");
 
     private String title;
 

+ 11 - 5
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/CommonCacheService.java

@@ -133,6 +133,14 @@ public interface CommonCacheService {
      */
     public SysOrg orgCache(Long orgId);
 
+    /**
+     * 获取鉴权url
+     *
+     * @param privilegePropertyEnum
+     * @return
+     */
+    public Set<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum);
+
     /**
      * 获取鉴权url
      *
@@ -140,25 +148,23 @@ public interface CommonCacheService {
      * @param schoolId
      * @return
      */
-    public List<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
+    public Set<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
 
     /**
      * 修改鉴权url
      *
      * @param privilegePropertyEnum
-     * @param schoolId
      * @return
      */
-    public List<String> updatePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
+    public Set<String> updatePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum);
 
 
     /**
      * 删除鉴权url
      *
      * @param privilegePropertyEnum
-     * @param schoolId
      */
-    public void removePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
+    public void removePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum);
 
     /**
      * 添加角色权限缓存

+ 9 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/TeachcloudCommonService.java

@@ -87,6 +87,14 @@ public interface TeachcloudCommonService {
      */
     public AuthBean getUserAuth(Long userId);
 
+    /**
+     * 获取鉴权url
+     *
+     * @param privilegePropertyEnum
+     * @return
+     */
+    public Set<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum);
+
     /**
      * 获取鉴权url
      *
@@ -94,7 +102,7 @@ public interface TeachcloudCommonService {
      * @param schoolId
      * @return
      */
-    public List<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
+    public Set<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId);
 
     /**
      * 给学校赋予权限的公共方法(权限是否启用跟学校联动)

+ 13 - 9
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/CommonCacheServiceImpl.java

@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @Description: 缓存操作serviceImpl 实现类
@@ -226,12 +227,17 @@ public class CommonCacheServiceImpl implements CommonCacheService {
      * 获取鉴权url
      *
      * @param privilegePropertyEnum
-     * @param schoolId
      * @return
      */
+    @Override
+    @Cacheable(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0")
+    public Set<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
+        return commonService.getPrivilegeUrl(privilegePropertyEnum);
+    }
+
     @Override
     @Cacheable(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0 + '-' + #p1")
-    public List<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
+    public Set<String> privilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
         return commonService.getPrivilegeUrl(privilegePropertyEnum, schoolId);
     }
 
@@ -239,24 +245,22 @@ public class CommonCacheServiceImpl implements CommonCacheService {
      * 修改鉴权url
      *
      * @param privilegePropertyEnum
-     * @param schoolId
      * @return
      */
     @Override
-    @CachePut(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0 + '-' + #p1")
-    public List<String> updatePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
-        return commonService.getPrivilegeUrl(privilegePropertyEnum, schoolId);
+    @CachePut(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0")
+    public Set<String> updatePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
+        return commonService.getPrivilegeUrl(privilegePropertyEnum);
     }
 
     /**
      * 删除鉴权url
      *
      * @param privilegePropertyEnum
-     * @param schoolId
      */
     @Override
-    @CacheEvict(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0 + '-' + #p1")
-    public void removePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
+    @CacheEvict(value = SystemConstant.PRIVILEGE_URL_CACHE, key = "#p0")
+    public void removePrivilegeUrlCache(PrivilegePropertyEnum privilegePropertyEnum) {
 
     }
 

+ 18 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/service/impl/TeachcloudCommonServiceImpl.java

@@ -294,6 +294,22 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
         return authBean;
     }
 
+    /**
+     * 获取鉴权url
+     *
+     * @param privilegePropertyEnum
+     * @return
+     */
+    @Override
+    public Set<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum) {
+        QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
+        sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getType, PrivilegeEnum.URL)
+                .eq(SysPrivilege::getProperty, privilegePropertyEnum)
+                .eq(SysPrivilege::getEnable, true);
+        List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
+        return Objects.nonNull(sysPrivilegeList) && sysPrivilegeList.size() > 0 ? sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()) : null;
+    }
+
     /**
      * 获取鉴权url
      *
@@ -302,14 +318,14 @@ public class TeachcloudCommonServiceImpl implements TeachcloudCommonService {
      * @return
      */
     @Override
-    public List<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
+    public Set<String> getPrivilegeUrl(PrivilegePropertyEnum privilegePropertyEnum, Long schoolId) {
         QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
         sysPrivilegeQueryWrapper.lambda().eq(SysPrivilege::getType, PrivilegeEnum.URL)
                 .eq(SysPrivilege::getProperty, privilegePropertyEnum)
                 .eq(SysPrivilege::getEnable, true)
                 .eq(SysPrivilege::getSchoolId, schoolId);
         List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
-        return Objects.nonNull(sysPrivilegeList) && sysPrivilegeList.size() > 0 ? sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toList()) : null;
+        return Objects.nonNull(sysPrivilegeList) && sysPrivilegeList.size() > 0 ? sysPrivilegeList.stream().map(s -> s.getUrl()).collect(Collectors.toSet()) : null;
     }
 
     @Transactional

+ 2 - 2
teachcloud-common/src/main/java/com/qmth/teachcloud/common/util/AuthUtil.java

@@ -46,7 +46,7 @@ public class AuthUtil {
     public static boolean adminAuthInterceptor(HttpServletRequest request, HttpServletResponse response, Object handler) {
         String url = request.getServletPath();
         commonCacheService = SpringContextHolder.getBean(CommonCacheService.class);
-        List<String> privilegeUrl = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.NO_AUTH, SystemConstant.getHeadOrUserSchoolId());
+        Set<String> privilegeUrl = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.NO_AUTH);
         //无需鉴权的url
         int noAuthCount = Objects.nonNull(privilegeUrl) ? (int) privilegeUrl.stream().filter(s -> s.equalsIgnoreCase(url)).count() : 0;
         if (noAuthCount > 0) {
@@ -159,7 +159,7 @@ public class AuthUtil {
             return true;
         }
         //系统公用接口不拦截
-        List<String> sysUrls = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.SYS, SystemConstant.getHeadOrUserSchoolId());
+        Set<String> sysUrls = commonCacheService.privilegeUrlCache(PrivilegePropertyEnum.SYS, SystemConstant.getHeadOrUserSchoolId());
         int sysCount = Objects.nonNull(sysUrls) ? (int) sysUrls.stream().filter(s -> s.equalsIgnoreCase(url)).count() : 0;
         if (sysCount > 0) {
             return true;