瀏覽代碼

refactor: 优化代码

huangzqa 3 年之前
父節點
當前提交
1dc8ad094e

+ 6 - 7
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/IWorkFlowBusiness.java

@@ -1,6 +1,7 @@
 package com.dragonsoft.dcuc.approve.business;
 package com.dragonsoft.dcuc.approve.business;
 
 
 import com.dragonsoft.dcuc.approve.enumresources.OperateOptionEnum;
 import com.dragonsoft.dcuc.approve.enumresources.OperateOptionEnum;
+import com.dragonsoft.dcuc.approve.enumresources.PageTypeEnum;
 import com.dragonsoft.dcuc.approve.model.resp.ApproveCommentVo;
 import com.dragonsoft.dcuc.approve.model.resp.ApproveCommentVo;
 import com.dragonsoft.dcuc.approve.model.resp.ApproveWorkflowProcessTypeVo;
 import com.dragonsoft.dcuc.approve.model.resp.ApproveWorkflowProcessTypeVo;
 import com.dragonsoft.dcuc.approve.model.resp.TaskOperateRespVO;
 import com.dragonsoft.dcuc.approve.model.resp.TaskOperateRespVO;
@@ -49,20 +50,18 @@ public interface IWorkFlowBusiness {
     /**
     /**
      * 获取流程类别列表
      * 获取流程类别列表
      *
      *
-     * @param appCode 应用代码
      * @return 流程类别列表
      * @return 流程类别列表
      */
      */
-    List<ApproveWorkflowProcessTypeVo> queryProcessTypeList(String appCode);
+    List<ApproveWorkflowProcessTypeVo> queryProcessTypeList();
 
 
 
 
     /**
     /**
      * 获取流程类别详情
      * 获取流程类别详情
      *
      *
      * @param processTypeCode 流程类别code
      * @param processTypeCode 流程类别code
-     * @param appCode         应用代码
      * @return 程类别详情
      * @return 程类别详情
      */
      */
-    WorkflowProcesstypeVo queryProcessType(String processTypeCode, String appCode);
+    WorkflowProcesstypeVo queryProcessType(String processTypeCode);
 
 
     /**
     /**
      * 查询任务分支(运行时任务)
      * 查询任务分支(运行时任务)
@@ -75,9 +74,9 @@ public interface IWorkFlowBusiness {
     /**
     /**
      * 获取任务支持操作
      * 获取任务支持操作
      *
      *
-     * @param taskId   任务ID
-     * @param pageType 页面类型
+     * @param taskId       任务ID
+     * @param pageTypeEnum 页面类型
      * @return 支持类型
      * @return 支持类型
      */
      */
-    TaskOperateRespVO getTaskSupportOperate(String taskId, String pageType);
+    TaskOperateRespVO getTaskSupportOperate(String taskId, PageTypeEnum pageTypeEnum);
 }
 }

+ 26 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/impl/ApproveBusinessImpl.java

@@ -1,6 +1,7 @@
 package com.dragonsoft.dcuc.approve.business.impl;
 package com.dragonsoft.dcuc.approve.business.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@@ -34,6 +35,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.validation.constraints.NotBlank;
 import java.text.ParseException;
 import java.text.ParseException;
 import java.util.*;
 import java.util.*;
 
 
@@ -281,6 +283,29 @@ public class ApproveBusinessImpl implements IApproveBusiness {
 
 
     @Override
     @Override
     public ResponseStatus checkResource(FlowTypeEnum flowTypeEnum, ResourceInfoDTO resourceInfo) {
     public ResponseStatus checkResource(FlowTypeEnum flowTypeEnum, ResourceInfoDTO resourceInfo) {
-        return null;
+        @NotBlank String visitResourceCode = resourceInfo.getVisitResourceCode();
+        if (StrUtil.isBlank(visitResourceCode)) {
+            return ResponseStatus.fail("请传入访问资源信息");
+        }
+
+        if (flowTypeEnum == FlowTypeEnum.APP_FUN_AUTH) {
+            return checkFunction(visitResourceCode);
+        }
+        return ResponseStatus.success();
+    }
+
+    private ResponseStatus checkFunction(String visitResourceCode) {
+        String[] appFunctionArray = visitResourceCode.split(",");
+        // appCode:funCode/funCode,appCode:funCode/funCode
+        Map<String, String[]> appCodeFunctionCodeMap = new HashMap<>();
+        for (String appFunction : appFunctionArray) {
+            String appCode = appFunction.substring(0, appFunction.indexOf(":"));
+            String funCode = appFunction.substring(appFunction.indexOf(":"));
+            String[] funCodeArray = funCode.split("//");
+            appCodeFunctionCodeMap.put(appCode, funCodeArray);
+        }
+        // todo 查找权限获取信息
+
+        return ResponseStatus.success();
     }
     }
 }
 }

+ 6 - 11
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/business/impl/WorkFlowBusinessImpl.java

@@ -15,7 +15,6 @@ import com.dragonsoft.dcuc.approve.model.resp.TaskOperateRespVO;
 import com.dragonsoft.dcuc.approve.model.resp.TaskOutgoingVo;
 import com.dragonsoft.dcuc.approve.model.resp.TaskOutgoingVo;
 import com.dragonsoft.dcuc.approve.properties.ApproveProperties;
 import com.dragonsoft.dcuc.approve.properties.ApproveProperties;
 import com.dragonsoft.duceap.base.exception.ApplicationException;
 import com.dragonsoft.duceap.base.exception.ApplicationException;
-import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
 import com.dragonsoft.duceap.core.entity.page.PageRequest;
 import com.dragonsoft.duceap.core.entity.page.PageRequest;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.enums.SearchOperator;
 import com.dragonsoft.duceap.core.search.enums.SearchOperator;
@@ -111,22 +110,19 @@ public class WorkFlowBusinessImpl implements IWorkFlowBusiness {
     }
     }
 
 
     @Override
     @Override
-    public WorkflowProcesstypeVo queryProcessType(String processTypeCode, String appCode) {
-        if (!approveProperties.getAppCode().equals(appCode)) {
-            return null;
-        }
+    public WorkflowProcesstypeVo queryProcessType(String processTypeCode) {
         //获取流程类别详情
         //获取流程类别详情
         return workflowClientFactory.getWorkflowProcessDefTypeClient().findOneByCode(processTypeCode);
         return workflowClientFactory.getWorkflowProcessDefTypeClient().findOneByCode(processTypeCode);
     }
     }
 
 
     @Override
     @Override
-    public List<ApproveWorkflowProcessTypeVo> queryProcessTypeList(String appCode) {
+    public List<ApproveWorkflowProcessTypeVo> queryProcessTypeList() {
         ApproveProperties.Workflow workflow = approveProperties.getWorkflow();
         ApproveProperties.Workflow workflow = approveProperties.getWorkflow();
 
 
         String processTypeCode = workflow.getProcessTypeCode();
         String processTypeCode = workflow.getProcessTypeCode();
 
 
         //根据流程类别code获取流程类别信息
         //根据流程类别code获取流程类别信息
-        WorkflowProcesstypeVo workflowProcesstypeVo = queryProcessType(processTypeCode, appCode);
+        WorkflowProcesstypeVo workflowProcesstypeVo = queryProcessType(processTypeCode);
         List<ApproveWorkflowProcessTypeVo> result = new ArrayList<>();
         List<ApproveWorkflowProcessTypeVo> result = new ArrayList<>();
         if (null != workflowProcesstypeVo) {
         if (null != workflowProcesstypeVo) {
             //根据流程类别id查询子类别
             //根据流程类别id查询子类别
@@ -183,7 +179,7 @@ public class WorkFlowBusinessImpl implements IWorkFlowBusiness {
     }
     }
 
 
     @Override
     @Override
-    public TaskOperateRespVO getTaskSupportOperate(String taskId, String pageType) {
+    public TaskOperateRespVO getTaskSupportOperate(String taskId, PageTypeEnum pageTypeEnum) {
         // 判断是否是结束节点
         // 判断是否是结束节点
         TaskOperateRespVO taskOperateRespVO = new TaskOperateRespVO();
         TaskOperateRespVO taskOperateRespVO = new TaskOperateRespVO();
         if (!Constants.END_STR.equals(taskId)) {
         if (!Constants.END_STR.equals(taskId)) {
@@ -198,7 +194,7 @@ public class WorkFlowBusinessImpl implements IWorkFlowBusiness {
             //流程出口信息
             //流程出口信息
             OutgoingVo outgoingVo = workflowClientFactory.getWorkflowTaskClient().queryStartOutgoing(processDefinitionId);
             OutgoingVo outgoingVo = workflowClientFactory.getWorkflowTaskClient().queryStartOutgoing(processDefinitionId);
             //设置是否显示撤回
             //设置是否显示撤回
-            appendShowBack(taskOperateRespVO, taskId, processInstanceId, outgoingVo, pageType);
+            appendShowBack(taskOperateRespVO, taskId, processInstanceId, outgoingVo, pageTypeEnum);
             //设置是否显示编辑
             //设置是否显示编辑
             appendShowEdit(taskOperateRespVO, outgoingVo, processDefinitionId);
             appendShowEdit(taskOperateRespVO, outgoingVo, processDefinitionId);
         }
         }
@@ -213,7 +209,7 @@ public class WorkFlowBusinessImpl implements IWorkFlowBusiness {
      * @param processInstanceId 实例ID
      * @param processInstanceId 实例ID
      */
      */
     private void appendShowBack(TaskOperateRespVO taskOperateRespVO, String taskId, String processInstanceId,
     private void appendShowBack(TaskOperateRespVO taskOperateRespVO, String taskId, String processInstanceId,
-                                OutgoingVo outgoingVo, String pageType) {
+                                OutgoingVo outgoingVo, PageTypeEnum pageTypeEnum) {
 
 
         List<String> taskDefinitionKeyList = new ArrayList<>();
         List<String> taskDefinitionKeyList = new ArrayList<>();
         for (TaskDefinitionVo taskDefinitionVo : outgoingVo.getTaskDefinitionVoList()) {
         for (TaskDefinitionVo taskDefinitionVo : outgoingVo.getTaskDefinitionVoList()) {
@@ -225,7 +221,6 @@ public class WorkFlowBusinessImpl implements IWorkFlowBusiness {
             taskOperateRespVO.setShowBack(false);
             taskOperateRespVO.setShowBack(false);
         } else {
         } else {
             String historyTaskDefinitionKey;
             String historyTaskDefinitionKey;
-            PageTypeEnum pageTypeEnum = EnumUtils.enumOf(PageTypeEnum.class, pageType);
             if (pageTypeEnum != null && pageTypeEnum.equals(PageTypeEnum.REQUEST)) {
             if (pageTypeEnum != null && pageTypeEnum.equals(PageTypeEnum.REQUEST)) {
                 historyTaskDefinitionKey = outgoingVo.getTaskDefinitionVoList().get(0).getTaskDefinitionKey();
                 historyTaskDefinitionKey = outgoingVo.getTaskDefinitionVoList().get(0).getTaskDefinitionKey();
 
 

+ 2 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/ApproveFacade.java

@@ -156,13 +156,13 @@ public class ApproveFacade implements IApproveFacade {
 
 
     @Override
     @Override
     public ResponseStatus queryProcessTypeList() {
     public ResponseStatus queryProcessTypeList() {
-        List<ApproveWorkflowProcessTypeVo> approveWorkflowProcessTypeVos = workFlowBusiness.queryProcessTypeList(approveProperties.getAppCode());
+        List<ApproveWorkflowProcessTypeVo> approveWorkflowProcessTypeVos = workFlowBusiness.queryProcessTypeList();
         return ResponseDTO.newInstance(approveWorkflowProcessTypeVos);
         return ResponseDTO.newInstance(approveWorkflowProcessTypeVos);
     }
     }
 
 
     @Override
     @Override
     public ResponseStatus queryProcessType(String processTypeCode) {
     public ResponseStatus queryProcessType(String processTypeCode) {
-        WorkflowProcesstypeVo workflowProcesstypeVo = workFlowBusiness.queryProcessType(processTypeCode, approveProperties.getAppCode());
+        WorkflowProcesstypeVo workflowProcesstypeVo = workFlowBusiness.queryProcessType(processTypeCode);
         return ResponseDTO.newInstance(workflowProcesstypeVo);
         return ResponseDTO.newInstance(workflowProcesstypeVo);
     }
     }
 
 

+ 11 - 7
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/api/ApiApproveFacade.java → approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/api/ApiV1ApproveFacade.java

@@ -21,10 +21,7 @@ import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
 import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
 import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
-import com.dragonsoft.duceap.duwf.api.model.ApproveMessage;
-import com.dragonsoft.duceap.duwf.api.model.TaskRequest;
-import com.dragonsoft.duceap.duwf.api.model.TraceProcessAndOverVo;
-import com.dragonsoft.duceap.duwf.api.model.WorkflowProcesstypeVo;
+import com.dragonsoft.duceap.duwf.api.model.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
@@ -35,7 +32,7 @@ import java.util.List;
  * @author huangzqa
  * @author huangzqa
  */
  */
 @RestController
 @RestController
-public class ApiApproveFacade implements IApiApproveFacade {
+public class ApiV1ApproveFacade implements IApiV1ApproveFacade {
     @Autowired
     @Autowired
     private IApproveService approveService;
     private IApproveService approveService;
     @Autowired
     @Autowired
@@ -66,13 +63,13 @@ public class ApiApproveFacade implements IApiApproveFacade {
 
 
     @Override
     @Override
     public ResponseDTO<List<ApproveWorkflowProcessTypeVo>> queryProcessTypeList() {
     public ResponseDTO<List<ApproveWorkflowProcessTypeVo>> queryProcessTypeList() {
-        List<ApproveWorkflowProcessTypeVo> approveWorkflowProcessTypeVos = workFlowBusiness.queryProcessTypeList(approveProperties.getAppCode());
+        List<ApproveWorkflowProcessTypeVo> approveWorkflowProcessTypeVos = workFlowBusiness.queryProcessTypeList();
         return ResponseUtil.newInstance(approveWorkflowProcessTypeVos);
         return ResponseUtil.newInstance(approveWorkflowProcessTypeVos);
     }
     }
 
 
     @Override
     @Override
     public ResponseDTO<WorkflowProcesstypeVo> queryProcessType(String processTypeCode) {
     public ResponseDTO<WorkflowProcesstypeVo> queryProcessType(String processTypeCode) {
-        WorkflowProcesstypeVo workflowProcesstypeVo = workFlowBusiness.queryProcessType(processTypeCode, approveProperties.getAppCode());
+        WorkflowProcesstypeVo workflowProcesstypeVo = workFlowBusiness.queryProcessType(processTypeCode);
         return ResponseUtil.newInstance(workflowProcesstypeVo);
         return ResponseUtil.newInstance(workflowProcesstypeVo);
     }
     }
 
 
@@ -142,4 +139,11 @@ public class ApiApproveFacade implements IApiApproveFacade {
         return approveUploadService.approveUpload(approveRecordList);
         return approveUploadService.approveUpload(approveRecordList);
     }
     }
 
 
+    @Override
+    public ResponseDTO<ProcessDetailRespVO> processDetail(String processNo) {
+        WorkflowProcessVo workflowProcessVo = workFlowBusiness.queryWorkflowProcessByBusinessCode(processNo);
+        ProcessDetailRespVO processDetailRespVO = ProcessDetailRespVO.paseByWorkflowProcessVo(workflowProcessVo);
+        return ResponseUtil.newInstance(processDetailRespVO);
+    }
+
 }
 }

+ 4 - 1
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/facade/api/ApiV2ApproveFacade.java

@@ -76,7 +76,10 @@ public class ApiV2ApproveFacade implements IApiV2ApproveFacade {
         @NotBlank String flowType = approvalInfoAuthReqVO.getFlowType();
         @NotBlank String flowType = approvalInfoAuthReqVO.getFlowType();
         FlowTypeEnum flowTypeEnum = EnumUtils.enumOf(FlowTypeEnum.class, flowType);
         FlowTypeEnum flowTypeEnum = EnumUtils.enumOf(FlowTypeEnum.class, flowType);
 
 
-        ResponseStatus checkResource = approveBusiness.checkResource(flowTypeEnum, resourceInfo);
+        ResponseStatus checkResourceStatus = approveBusiness.checkResource(flowTypeEnum, resourceInfo);
+        if (ResponseUtil.isFail(checkResourceStatus)) {
+            return ResponseUtil.dtoFail(checkResourceStatus.getMessage());
+        }
 
 
         ApproveRecordInfo approveRecordInfo = approveService.saveBase(approvalInfoReqVO, ManageDisposeTypeEnum.INSERT, new Date());
         ApproveRecordInfo approveRecordInfo = approveService.saveBase(approvalInfoReqVO, ManageDisposeTypeEnum.INSERT, new Date());
 
 

+ 4 - 2
approve-core-service/src/main/java/com/dragonsoft/dcuc/approve/service/impl/ApproveServiceImpl.java

@@ -981,7 +981,9 @@ public class ApproveServiceImpl implements IApproveService {
 
 
     @Override
     @Override
     public TaskOperateRespVO taskOperate(String taskId, String pageType, String appCode) {
     public TaskOperateRespVO taskOperate(String taskId, String pageType, String appCode) {
-        return workFlowBusiness.getTaskSupportOperate(taskId, pageType);
+        PageTypeEnum pageTypeEnum = EnumUtils.enumOf(PageTypeEnum.class, pageType);
+
+        return workFlowBusiness.getTaskSupportOperate(taskId, pageTypeEnum);
     }
     }
 
 
     @Override
     @Override
@@ -1537,7 +1539,7 @@ public class ApproveServiceImpl implements IApproveService {
         WorkflowProcesstypeVo workflowProcesstypeVo;
         WorkflowProcesstypeVo workflowProcesstypeVo;
         try {
         try {
             //调用工作流获取流程类型详情
             //调用工作流获取流程类型详情
-            workflowProcesstypeVo = workFlowBusiness.queryProcessType(approvalInfo.getProcessType(), approveProperties.getAppCode());
+            workflowProcesstypeVo = workFlowBusiness.queryProcessType(approvalInfo.getProcessType());
         } catch (ApplicationException e) {
         } catch (ApplicationException e) {
             logger.info("流程类型标识码-Exception:【{}】", approvalInfo.getProcessType());
             logger.info("流程类型标识码-Exception:【{}】", approvalInfo.getProcessType());
             throw new ApplicationException(ErrorCode.WORKFLOW_EXCEPTION.getCode(), ErrorCode.WORKFLOW_EXCEPTION.getMsg());
             throw new ApplicationException(ErrorCode.WORKFLOW_EXCEPTION.getCode(), ErrorCode.WORKFLOW_EXCEPTION.getMsg());