Quellcode durchsuchen

feature(服务授权推送审批修改): 服务授权推送审批修改

服务授权推送审批不通过则删除工单
mazq vor 4 Jahren
Ursprung
Commit
0a21780888

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/WorkFlowStatusEnum.java

@@ -25,7 +25,7 @@ public enum WorkFlowStatusEnum {
     /**
      * 审批完成
      */
-    SUCCESS("4", "审批完成");
+    SUCCESS("4", "审批通过");
 
     private String label;
     private String value;

+ 4 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/ServiceAuthBusinessImpl.java

@@ -83,6 +83,7 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
         flow.setRemark(dto.getRemark());
         flow.setFlowStatus(dto.getApproveResult());
         flow.setFlowId(flowId);
+        //处理服务授权结果
         authResultService.dealAuthFlowResult(flow);
         //更新工作单状态
         authFlowService.update(flow);
@@ -138,7 +139,7 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
             dto.setAppManagerOrgCode(managerOrgInfo.getCode());
         }
         //保存
-        authFlowService.serviceAuthFlowSave(dto);
+        ServiceAuthFlow serviceAuthFlow = authFlowService.serviceAuthFlowSave(dto);
 
         //将工作单推送给审批服务
         ResponseDTO responseDTO = null;
@@ -147,6 +148,8 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
             responseDTO = pushWorkFlowToServer(dto);
             logger.info("-------pushWorkFlowToServer END---------------");
             if(!ResponseStatus.SUCCESS_CODE.equals(responseDTO.getStatusCode())){
+                //删除工单
+                authFlowService.delById(serviceAuthFlow.getId());
                 return new ResponseDTO(ResponseStatus.FAIL_CODE,"approve service faild :"+responseDTO.getMessage(),null);
             }
         } catch (Exception e) {

+ 5 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthFacade.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthFlowFacade.java

@@ -22,9 +22,13 @@ import java.util.List;
 import java.util.Map;
 
 
+/**
+ * 服务授权工单service
+ * @author mazq
+ */
 @RestController
 @RequestMapping(value = "/dcuc/auth/serviceAuthFacade")
-public class ServiceAuthFacade implements IServiceAuthFlowFacade {
+public class ServiceAuthFlowFacade implements IServiceAuthFlowFacade {
 
     @Autowired
     private IAuthFlowService authFlowService;

+ 6 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IAuthFlowService.java

@@ -72,4 +72,10 @@ public interface IAuthFlowService {
      * @return
      */
     List<String> authFlowApplyRepeatCheck(String appCode, List<String> serviceCodes);
+
+    /**
+     * 根据id删除工单
+     * @param id
+     */
+    void delById(String id);
 }

+ 5 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/AuthFlowServiceImpl.java

@@ -139,4 +139,9 @@ public class AuthFlowServiceImpl implements IAuthFlowService {
         return existServiceCodes;
     }
 
+    @Override
+    public void delById(String id) {
+        serviceAuthFlowBPO.delete(id);
+    }
+
 }

+ 68 - 62
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/ServiceAuthResultServiceImpl.java

@@ -1,7 +1,6 @@
 package com.dragoninfo.dcuc.auth.auth.service.impl;
 
 
-import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
@@ -141,14 +140,15 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
 
         //待处理的服务
         List<ServiceResource> resources = iServiceResourceFacade.getServiceByServiceCodes(list);
-        Map<String, ServiceResource> map = resources
+        Map<String, ServiceResource> serviceResourceMap = resources
                 .stream()
                 .collect(Collectors.toMap(ServiceResource::getServiceCode, item -> item,(old,last)->last));
 
         String appCode = serviceAuthFlow.getAppCode();
         String appId = applyInfoFacade.codeConvertToId(appCode);
-        if (StrUtil.isBlank(appId)) {
+        if (StringUtils.isBlank(appId)) {
             log.error("AppCode {} is not exits", appCode);
+            return false;
         }
 
         //新增的服务
@@ -161,75 +161,81 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
         Map<String, ServiceAuthResult> allAuthResultMap = allAuthResults
                 .stream()
                 .collect(Collectors.toMap(ServiceAuthResult::getServiceCode, item -> item,(old,last)->last));
-        Date date = new Date();
         if (WorkFlowTypeEnum.SERVICE_AUTH.getValue().equals(serviceAuthFlow.getFlowType())) {
-            //判断工作单是长期还是自定义
-            Date startTime = null;
-            Date endTime = null;
-            String authStatus = ServiceAuthStatusEnum.START.getValue();
-            String permissionValidType = serviceAuthFlow.getPermissionValidType();
-            if (StringUtils.isNotBlank(permissionValidType)
-                    && WokrFlowPermissionTypeEnum.TEMP.getValue().equals(permissionValidType)) {
-                startTime = serviceAuthFlow.getStartTime();
-                endTime = serviceAuthFlow.getEndTime();
-                if (date.before(startTime)) {
-                    authStatus = ServiceAuthStatusEnum.NOT_START.getValue();
-                }
-                if (date.after(endTime)) {
-                    authStatus = ServiceAuthStatusEnum.OVER_DUE.getValue();
-                }
-            }
-            //授权工作单
-            //新增授权
-            for (String serviceCode : map.keySet()) {
-                    //已经存在的更新
-                if(allAuthResultMap.keySet().contains(serviceCode)){
-                    ServiceAuthResult serviceAuthResult = allAuthResultMap.get(serviceCode);
-                    serviceAuthResult.setStartTime(startTime);
-                    serviceAuthResult.setEndTime(endTime);
-                    serviceAuthResult.setAuthStatus(authStatus);
-                    serviceAuthResult.setUpdateTime(date);
-                    serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
-                    serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
-                    serviceAuthResultBPO.update(serviceAuthResult);
-                }else {
-                    //不存在的新增
-                    ServiceAuthResult serviceAuthResult = new ServiceAuthResult();
-                    serviceAuthResult.setAppCode(appCode);
-                    serviceAuthResult.setServiceCode(serviceCode);
-                    ServiceResource serviceResource = map.get(serviceCode);
-                    if (serviceResource == null) {
-                        log.error("ServiceCode {} is not exits.", serviceCode);
-                    }
-                    serviceAuthResult.setStartTime(startTime);
-                    serviceAuthResult.setEndTime(endTime);
-                    serviceAuthResult.setAuthStatus(authStatus);
-                    serviceAuthResult.setServiceId(serviceResource.getId());
-                    serviceAuthResult.setAppId(appId);
-                    serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
-                    serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
-                    saveAuthResult(serviceAuthResult);
-                }
-            }
+            addServiceAuthResult(serviceAuthFlow, serviceResourceMap, appId, allAuthResultMap);
         } else {
             //撤销权限工作单
             //删除权限
-            List<ServiceAuthResult> result = allAuthResults.stream()
-                    .filter(item -> map.containsKey(item.getServiceCode()))
-                    .collect(Collectors.toList());
-            for (ServiceAuthResult serviceAuthResult : result) {
-                serviceAuthResult.setDeleted(BooleanEnum.TRUE.getValue());
-                serviceAuthResult.setDeleteTime(date);
-                serviceAuthFlow.setFlowId(serviceAuthFlow.getFlowId());
-                serviceAuthResultBPO.update(serviceAuthResult);
-            }
-
+            cancelServiceAuthResult(serviceAuthFlow, serviceResourceMap, allAuthResults);
         }
         //使用异步事件发送消息
         sendPermssionService(appCode, addServiceCodes, delServiceCodes);
         return true;
     }
 
+    private void cancelServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResource> serviceResourceMap, List<ServiceAuthResult> allAuthResults) {
+        Date date = new Date();
+        List<ServiceAuthResult> result = allAuthResults.stream()
+                .filter(item -> serviceResourceMap.containsKey(item.getServiceCode()))
+                .collect(Collectors.toList());
+        for (ServiceAuthResult serviceAuthResult : result) {
+            serviceAuthResult.setDeleted(BooleanEnum.TRUE.getValue());
+            serviceAuthResult.setDeleteTime(date);
+            serviceAuthFlow.setFlowId(serviceAuthFlow.getFlowId());
+            serviceAuthResultBPO.update(serviceAuthResult);
+        }
+    }
+
+    private void addServiceAuthResult(ServiceAuthFlow serviceAuthFlow, Map<String, ServiceResource> serviceResourceMap, String appId, Map<String, ServiceAuthResult> allAuthResultMap) {
+        Date date = new Date();
+        String appCode = serviceAuthFlow.getAppCode();
+        //判断工作单是长期还是自定义
+        Date startTime = null;
+        Date endTime = null;
+        String authStatus = ServiceAuthStatusEnum.START.getValue();
+        String permissionValidType = serviceAuthFlow.getPermissionValidType();
+        if (StringUtils.isNotBlank(permissionValidType)
+                && WokrFlowPermissionTypeEnum.TEMP.getValue().equals(permissionValidType)) {
+            startTime = serviceAuthFlow.getStartTime();
+            endTime = serviceAuthFlow.getEndTime();
+            if (date.before(startTime)) {
+                authStatus = ServiceAuthStatusEnum.NOT_START.getValue();
+            }
+            if (date.after(endTime)) {
+                authStatus = ServiceAuthStatusEnum.OVER_DUE.getValue();
+            }
+        }
+        //授权工作单
+        //新增授权
+        for (String serviceCode : serviceResourceMap.keySet()) {
+                //已经存在的更新
+            if(allAuthResultMap.keySet().contains(serviceCode)){
+                ServiceAuthResult serviceAuthResult = allAuthResultMap.get(serviceCode);
+                serviceAuthResult.setStartTime(startTime);
+                serviceAuthResult.setEndTime(endTime);
+                serviceAuthResult.setAuthStatus(authStatus);
+                serviceAuthResult.setUpdateTime(date);
+                serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
+                serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
+                serviceAuthResultBPO.update(serviceAuthResult);
+            }else {
+                //不存在的新增
+                ServiceAuthResult serviceAuthResult = new ServiceAuthResult();
+                serviceAuthResult.setAppCode(appCode);
+                serviceAuthResult.setServiceCode(serviceCode);
+                ServiceResource serviceResource = serviceResourceMap.get(serviceCode);
+                serviceAuthResult.setStartTime(startTime);
+                serviceAuthResult.setEndTime(endTime);
+                serviceAuthResult.setAuthStatus(authStatus);
+                serviceAuthResult.setServiceId(serviceResource.getId());
+                serviceAuthResult.setAppId(appId);
+                serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
+                serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
+                saveAuthResult(serviceAuthResult);
+            }
+        }
+    }
+
     /**
      * 使用异步事件发送消息
      * @param appCode