Browse Source

调用审批填充业务数据修改

mazq 1 năm trước cách đây
mục cha
commit
e10b731771
14 tập tin đã thay đổi với 194 bổ sung62 xóa
  1. 25 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizContentDto.java
  2. 36 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizDataDto.java
  3. 33 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizResourceDto.java
  4. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowApplyReqDto.java
  5. 3 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleauthapply/ApplyRoleInVo.java
  6. 6 5
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/RoleAuthInfoFacade.java
  7. 39 23
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/RoleAuthApplyServiceImpl.java
  8. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/RoleOperateApplyServiceImpl.java
  9. 40 23
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/ServiceAuthApplyServiceImpl.java
  10. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApproveRemoteCallBusinessImpl.java
  11. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ZeroTrustApprovalBusinessImpl.java
  12. 1 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ZeroTrustAuthApplyBusinessImpl.java
  13. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/dto/FlowApplyReqDTO.java
  14. 5 5
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/ApprovalProperties.java

+ 25 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizContentDto.java

@@ -0,0 +1,25 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2023/11/29
+ */
+@Builder
+@Data
+public class ApprovalBizContentDto {
+
+    /**
+     * 申请类型
+     * @see com.dragoninfo.dcuc.duceap.enums.AuthApplyTypeEnum
+     */
+    private String flowType;
+
+    /**
+     * 访问资源信息
+     */
+    private ApprovalBizResourceDto resourceInfo;
+
+}

+ 36 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizDataDto.java

@@ -0,0 +1,36 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * 审批流程申请业务内容dto
+ *
+ * @author mazq
+ * @date 2023/11/29
+ */
+@Builder
+@Data
+public class ApprovalBizDataDto {
+
+    /**
+     * 任务开始时间(yyyy-MM-dd HH:mm:ss)
+     */
+    private String bizTermStart;
+
+    /**
+     * 任务结束时间(yyyy-MM-dd HH:mm:ss)
+     */
+    private String bizTermEnd;
+
+    /**
+     * 业务类型
+     */
+    private String bizType;
+
+    /**
+     * 任务开始时间(yyyy-MM-dd HH:mm:ss)
+     */
+    private ApprovalBizContentDto bizContent;
+
+}

+ 33 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBizResourceDto.java

@@ -0,0 +1,33 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Builder;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2023/11/29
+ */
+@Builder
+@Data
+public class ApprovalBizResourceDto {
+
+    /**
+     * 申请方编码
+     */
+    private String visitorCode;
+
+    /**
+     * 申请方名称
+     */
+    private String visitorName;
+
+    /**
+     * 访问资源编码,多个使用','分隔
+     */
+    private String visitResourceCode;
+
+    /**
+     * 访问资源名称,多个使用','分隔
+     */
+    private String visitResourceName;
+}

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowApplyReqDto.java

@@ -72,7 +72,7 @@ public class FlowApplyReqDto {
      * 业务数据
      * 扩展字段
      */
-    private Map<String, String> bizData;
+    private Map<String, Object> bizData;
 
     /**
      * 电子签名

+ 3 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleauthapply/ApplyRoleInVo.java

@@ -15,6 +15,9 @@ public class ApplyRoleInVo {
     @ApiModelProperty(value = "应用id")
     private String appId;
 
+    @ApiModelProperty(value = "应用code")
+    private String appCode;
+
     @ApiModelProperty(value = "应用名称")
     private String appName;
 

+ 6 - 5
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/RoleAuthInfoFacade.java

@@ -128,12 +128,13 @@ public class RoleAuthInfoFacade implements IRoleAuthInfoFacade {
                 .collect(Collectors.toList());
 
         List<ApplyInfo> applyInfos = applyInfoFacade.getAppById(appIds);
-        Map<String, String> appInfoMap = applyInfos.stream()
-                .collect(Collectors.toMap(ApplyInfo::getId, ApplyInfo::getApplyName));
-        applyRoles.forEach(e-> {
+        Map<String, ApplyInfo> appInfoMap = applyInfos.stream()
+                .collect(Collectors.toMap(ApplyInfo::getId, e -> e));
+        applyRoles.forEach(e -> {
             String appId = e.getAppId();
-            String appName = appInfoMap.get(appId);
-            e.setAppName(appName);
+            ApplyInfo applyInfo = appInfoMap.get(appId);
+            e.setAppName(applyInfo.getApplyName());
+            e.setAppCode(applyInfo.getApplyCode());
         });
 
         return applyRoles;

+ 39 - 23
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/RoleAuthApplyServiceImpl.java

@@ -1,8 +1,8 @@
 package com.dragoninfo.dcuc.auth.auth.service.impl.zerotrust;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowApplyReqDto;
-import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowSubmitRespDTO;
+import cn.hutool.core.util.StrUtil;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.*;
 import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.authapply.RoleAuthApplyDto;
 import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleAuthApply;
 import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.ApprovalApplyTypeEnum;
@@ -17,6 +17,7 @@ import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthUserInfoService;
 import com.dragoninfo.dcuc.auth.sub.vo.AuthUserVo;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
+import com.dragoninfo.dcuc.duceap.enums.AuthApplyTypeEnum;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
@@ -24,6 +25,8 @@ import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
+import com.dragonsoft.duceap.commons.util.date.DateConst;
+import com.dragonsoft.duceap.commons.util.date.DateUtils;
 import com.dragonsoft.duceap.commons.util.json.JsonUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -104,7 +107,7 @@ public class RoleAuthApplyServiceImpl implements IRoleAuthApplyService {
     public ResponseStatus applyAndPushToApproval(RoleAuthApplyDto roleAuthApplyDto, String taskTypeClass) {
         String title = getRoleAuthApplyTitle(UserContextUtils.getCurrentUser().getName());
         // 填充业务数据
-        Map<String, String> bizData = getBizData(roleAuthApplyDto);
+        Map<String, Object> bizData = getBizData(roleAuthApplyDto);
 
         if (StringUtils.isBlank(taskTypeClass)) {
             taskTypeClass = approvalProperties.getRoleAuthTaskType();
@@ -189,25 +192,38 @@ public class RoleAuthApplyServiceImpl implements IRoleAuthApplyService {
         repository.setToBeAuthed(ids, value);
     }
 
-    private Map<String, String> getBizData(RoleAuthApplyDto applyDto) {
-        Map<String, String> bizData = new HashMap<>();
-        List<Map<String, String>> list = new ArrayList<>();
-
-        Map<String, String> map = new HashMap<>();
-        AuthUserVo userInfo = applyDto.getUserInfo();
-        // 授权主体人员信息
-        map.put("authUserName", userInfo.getName());
-        map.put("authUserIdcard", userInfo.getIdcard());
-        // 授权客体角色信息
-        List<ApplyRoleInVo> applyRoleInVos = applyDto.getApplyRoleIns();
-        map.put("authRoleInfos", JsonUtils.toJSONString(applyRoleInVos));
-        list.add(map);
-
-        bizData.put("authInfos", JsonUtils.toJSONString(list));
-        // 授权操作人信息
-        BaseSecurityUser currentUser = UserContextUtils.getCurrentUser();
-        bizData.put("authOperateUserName", currentUser.getName());
-        bizData.put("authOperateUserIdcard", currentUser.getIdcard());
-        return bizData;
+    private Map<String, Object> getBizData(RoleAuthApplyDto applyDto) {
+        Date startTime = applyDto.getStartTime();
+        Date endTime = applyDto.getEndTime();
+        String startStr = DateUtils.getDateFormat(startTime, DateConst.HYPHEN_DISPLAY_TIME);
+        String endStr = DateUtils.getDateFormat(endTime, DateConst.HYPHEN_DISPLAY_TIME);
+
+        List<ApplyRoleInVo> applyRoleIns = applyDto.getApplyRoleIns();
+        String visitResourceCodes = applyRoleIns.stream().map(e -> String.join(StrUtil.UNDERLINE, e.getAppCode(), e.getRoleCode()))
+                .collect(Collectors.joining(StrUtil.COMMA));
+
+        String visitResourceNames = applyRoleIns.stream().map(e -> String.join(StrUtil.UNDERLINE, e.getAppName(), e.getRoleName()))
+                .collect(Collectors.joining(StrUtil.COMMA));
+
+        ApprovalBizResourceDto resourceDto = ApprovalBizResourceDto.builder()
+                .visitorCode(applyDto.getUserInfo().getIdcard())
+                .visitorName(applyDto.getUserInfo().getName())
+                .visitResourceCode(visitResourceCodes)
+                .visitResourceName(visitResourceNames)
+                .build();
+
+        ApprovalBizContentDto contentDto = ApprovalBizContentDto.builder()
+                .flowType(AuthApplyTypeEnum.APP_FUN_AUTH.getValue())
+                .resourceInfo(resourceDto)
+                .build();
+
+        ApprovalBizDataDto dto = ApprovalBizDataDto.builder()
+                .bizTermStart(startStr)
+                .bizTermEnd(endStr)
+                .bizContent(contentDto)
+                .bizType("auth")
+                .build();
+        return BeanUtil.beanToMap(dto);
     }
+
 }

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/RoleOperateApplyServiceImpl.java

@@ -72,7 +72,7 @@ public class RoleOperateApplyServiceImpl implements IRoleOperateApplyService {
         String uuid = UUIDUtils.getUUID();
 
         // 先推送送审批
-        Map<String, String> bizData = new HashMap<>();
+        Map<String, Object> bizData = new HashMap<>();
         bizData.put("roleCode", roleSaveVo.getCode());
         bizData.put("roleName", roleSaveVo.getName());
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

+ 40 - 23
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/ServiceAuthApplyServiceImpl.java

@@ -1,18 +1,21 @@
 package com.dragoninfo.dcuc.auth.auth.service.impl.zerotrust;
 
-import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowApplyReqDto;
-import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowSubmitRespDTO;
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.StrUtil;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.*;
 import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.authapply.ServiceAuthApplyDto;
 import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.ServiceAuthApply;
 import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.ApprovalApplyTypeEnum;
 import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.AuthApplyStatusEnum;
 import com.dragoninfo.dcuc.auth.auth.repo.zerotrust.ServiceAuthApplyRepository;
 import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IServiceAuthApplyService;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleauthapply.ApplyRoleInVo;
 import com.dragoninfo.dcuc.auth.business.zerotrust.IZeroTrustApprovalBusiness;
 import com.dragoninfo.dcuc.auth.config.zerotrust.ApprovalProperties;
 import com.dragoninfo.dcuc.auth.sub.vo.ApplyInfoVo;
 import com.dragoninfo.dcuc.auth.sub.vo.ServiceResourceVo;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
+import com.dragoninfo.dcuc.duceap.enums.AuthApplyTypeEnum;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.security.BaseSecurityUser;
@@ -20,6 +23,8 @@ import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.utils.UserContextUtils;
 import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
+import com.dragonsoft.duceap.commons.util.date.DateConst;
+import com.dragonsoft.duceap.commons.util.date.DateUtils;
 import com.dragonsoft.duceap.commons.util.json.JsonUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -77,7 +82,7 @@ public class ServiceAuthApplyServiceImpl implements IServiceAuthApplyService {
     public ResponseStatus applyAndPushToApproval(ServiceAuthApplyDto authApplyDto, String taskTypeClass) {
         String title = getAuthApplyTitle(UserContextUtils.getCurrentUser().getName());
         // 填充业务数据
-        Map<String, String> bizData = getBizData(authApplyDto);
+        Map<String, Object> bizData = getBizData(authApplyDto);
 
         if (StringUtils.isBlank(taskTypeClass)) {
             taskTypeClass = approvalProperties.getRoleAuthTaskType();
@@ -161,25 +166,37 @@ public class ServiceAuthApplyServiceImpl implements IServiceAuthApplyService {
         repository.setToBeAuthed(ids, value);
     }
 
-    private Map<String, String> getBizData(ServiceAuthApplyDto applyDto) {
-        Map<String, String> bizData = new HashMap<>();
-        List<Map<String, String>> list = new ArrayList<>();
-
-        ApplyInfoVo applyInfoVo = applyDto.getApplyInfoVo();
-        Map<String, String> map = new HashMap<>();
-        // 授权主体人员信息
-        map.put("authAppName", applyInfoVo.getApplyName());
-        map.put("authAppCode", applyInfoVo.getApplyCode());
-        // 授权客体角色信息
-        List<ServiceResourceVo> applyVos = applyDto.getServiceVos();
-        map.put("authServiceInfos", JsonUtils.toJSONString(applyVos));
-        list.add(map);
-
-        bizData.put("authInfos", JsonUtils.toJSONString(list));
-        // 授权操作人信息
-        BaseSecurityUser currentUser = UserContextUtils.getCurrentUser();
-        bizData.put("authOperateUserName", currentUser.getName());
-        bizData.put("authOperateUserIdcard", currentUser.getIdcard());
-        return bizData;
+    private Map<String, Object> getBizData(ServiceAuthApplyDto applyDto) {
+        Date startTime = applyDto.getStartTime();
+        Date endTime = applyDto.getEndTime();
+        String startStr = DateUtils.getDateFormat(startTime, DateConst.HYPHEN_DISPLAY_TIME);
+        String endStr = DateUtils.getDateFormat(endTime, DateConst.HYPHEN_DISPLAY_TIME);
+
+        List<ServiceResourceVo> serviceVos = applyDto.getServiceVos();
+        String visitResourceCodes = serviceVos.stream().map(ServiceResourceVo::getServiceCode)
+                .collect(Collectors.joining(StrUtil.COMMA));
+
+        String visitResourceNames = serviceVos.stream().map(ServiceResourceVo::getServiceName)
+                .collect(Collectors.joining(StrUtil.COMMA));
+
+        ApprovalBizResourceDto resourceDto = ApprovalBizResourceDto.builder()
+                .visitorCode(applyDto.getApplyInfoVo().getApplyCode())
+                .visitorName(applyDto.getApplyInfoVo().getApplyName())
+                .visitResourceCode(visitResourceCodes)
+                .visitResourceName(visitResourceNames)
+                .build();
+
+        ApprovalBizContentDto contentDto = ApprovalBizContentDto.builder()
+                .flowType(AuthApplyTypeEnum.SERVICE_AUTH.getValue())
+                .resourceInfo(resourceDto)
+                .build();
+
+        ApprovalBizDataDto dto = ApprovalBizDataDto.builder()
+                .bizTermStart(startStr)
+                .bizTermEnd(endStr)
+                .bizContent(contentDto)
+                .bizType("auth")
+                .build();
+        return BeanUtil.beanToMap(dto);
     }
 }

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApproveRemoteCallBusinessImpl.java

@@ -144,13 +144,13 @@ public class ApproveRemoteCallBusinessImpl implements IApproveRemoteCallBusiness
             return ResponseUtil.dtoFail(responseDTO.getMessage());
         }
 
-        FlowApplyRespDTO amFlowApplyRespDTO = ResponseUtil.getResult(responseDTO);
+        FlowApplyRespDTO applyRespDTO = ResponseUtil.getResult(responseDTO);
 
         FlowApplyItemRespDTO flowApplyItemRespDTO = new FlowApplyItemRespDTO();
         flowApplyItemRespDTO.setUid("不需要,先填空");
 
         FlowApplyRespDTO flowApplyRespDTO = new FlowApplyRespDTO();
-        flowApplyRespDTO.setProcessInstId(amFlowApplyRespDTO.getProcessInstId());
+        flowApplyRespDTO.setProcessInstId(applyRespDTO.getProcessInstId());
         flowApplyRespDTO.setReviewer(Collections.singletonList(flowApplyItemRespDTO));
 
         return ResponseUtil.newInstance(flowApplyRespDTO);

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ZeroTrustApprovalBusinessImpl.java

@@ -165,7 +165,7 @@ public class ZeroTrustApprovalBusinessImpl implements IZeroTrustApprovalBusiness
                 .reviewerCode(openId)
                 .vars(Collections.emptyMap())
                 .bo(Collections.emptyMap())
-                .bizData(Collections.emptyMap())
+                .bizData(applyDto.getBizData())
                 .approveType(ApprovalTypeEnum.APPROVE_SERVICE.getValue())
                 .build();
 

+ 1 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ZeroTrustAuthApplyBusinessImpl.java

@@ -322,6 +322,7 @@ public class ZeroTrustAuthApplyBusinessImpl implements IZeroTrustAuthApplyBusine
             applyVo.setRoleCode(r.getCode());
             applyVo.setRoleName(r.getName());
             applyVo.setAppId(applyInfoVo.getId());
+            applyVo.setAppCode(applyVo.getAppCode());
             applyVo.setAppName(applyInfoVo.getApplyName());
             return applyVo;
         }).collect(Collectors.toList());

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/dto/FlowApplyReqDTO.java

@@ -73,7 +73,7 @@ public class FlowApplyReqDTO {
      * 业务数据
      * 扩展字段
      */
-    private Map<String, String> bizData;
+    private Map<String, Object> bizData;
 
     /**
      * 电子签名

+ 5 - 5
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/ApprovalProperties.java

@@ -28,11 +28,6 @@ public class ApprovalProperties {
      */
     private String roleOperateDefId;
 
-    /**
-     * 角色管理任务类型
-     */
-    private String roleManageTaskType;
-
     /**
      * 角色授权自助申请流程定义id
      */
@@ -43,6 +38,11 @@ public class ApprovalProperties {
      */
     private String serviceAuthApplyDefId;
 
+    /**
+     * 角色管理任务类型
+     */
+    private String roleManageTaskType;
+
     /**
      * 角色授权自助申请任务类型
      */