瀏覽代碼

feature: 角色生命周期管理

mazq 1 年之前
父節點
當前提交
8bed37d031
共有 85 個文件被更改,包括 2345 次插入260 次删除
  1. 2 2
      dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IAuthRoleOrgRelFacade.java
  2. 1 1
      dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IRoleInfoFacade.java
  3. 87 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/ApprovalBaseRespDto.java
  4. 36 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowApplyItemRespDTO.java
  5. 89 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowApplyReqDto.java
  6. 33 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowApplyRespDTO.java
  7. 61 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowDetailRespDTO.java
  8. 35 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowDetailSubTaskRespDTO.java
  9. 34 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowOperateManageReqDto.java
  10. 115 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowSubmitReqDTO.java
  11. 31 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/approval/FlowSubmitRespDTO.java
  12. 3 2
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/risk/AuthRiskDTO.java
  13. 62 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/zerotrust/ApprovalResult.java
  14. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/zerotrust/AuthRoleOrgRel.java
  15. 55 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AmCallbackStatusEnum.java
  16. 70 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AmFlowStatusEnum.java
  17. 47 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalApplyTypeEnum.java
  18. 48 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalEndFlagEnum.java
  19. 47 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalResultEnum.java
  20. 48 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalSubmitResultEnum.java
  21. 50 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalTypeEnum.java
  22. 57 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApproveStatusEnum.java
  23. 84 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AuthApplyStatusEnum.java
  24. 55 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowActionTypeEnum.java
  25. 63 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowCallBackTypeEnum.java
  26. 51 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowResultEnum.java
  27. 76 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowStatusEnum.java
  28. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/risk/AuthRiskTypeEnum.java
  29. 33 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/approval/ApprovalCallBackReqVO.java
  30. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/rolemanage/RoleOperateApplyVo.java
  31. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/rolemanage/RoleSaveVo.java
  32. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleorgauth/RoleOrgAuthSaveVo.java
  33. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleorgauth/RoleOrgAuthVo.java
  34. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ApprovalBaseRespDto.java
  35. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ApprovalResultEnum.java
  36. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ExcelImpTaskType.java
  37. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskInfoDetailResp.java
  38. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskTypeInfoDto.java
  39. 1 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskTypeReqDto.java
  40. 43 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/enumresource/OperateTypeEnum.java
  41. 3 3
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/async/listener/RzySyslogSendRiskInfoEventListener.java
  42. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/async/listener/SyslogSecurityPolicyLogListener.java
  43. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/IAuthRoleOrgRelBusiness.java
  44. 4 4
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/AuthRoleOrgRelBusiness.java
  45. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/zerotrust/ZeroTrustAppAuthBusiness.java
  46. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/zerotrust/ZeroTrustDataAuthBusiness.java
  47. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/zerotrust/ZeroTrustFunAuthBusiness.java
  48. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/zerotrust/ZeroTrustServiceAuthBusiness.java
  49. 76 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/constance/zerotrust/approval/ApprovalConstance.java
  50. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/AuthRoleOrgRelFacade.java
  51. 3 3
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/RoleInfoFacade.java
  52. 13 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/ApprovalResultRepository.java
  53. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/AuthRoleOrgRelRepository.java
  54. 11 4
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/RoleOperateContentRepository.java
  55. 2 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/RoleService.java
  56. 2 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/StaffAssignAuthInfoService.java
  57. 0 105
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/rolemanage/RoleOperateApplyServiceImpl.java
  58. 70 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/ApprovalResultServiceImpl.java
  59. 4 4
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/IAuthRoleOrgRelServiceImpl.java
  60. 118 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/RoleOperateApplyServiceImpl.java
  61. 37 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IApprovalResultService.java
  62. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IAuthRoleOrgRelService.java
  63. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IRoleOperateApplyService.java
  64. 8 7
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApiCommonBusiness.java
  65. 344 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApprovalBusinessImpl.java
  66. 33 11
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApproveRemoteCallBusinessImpl.java
  67. 9 8
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/AuthTokenBusinessImpl.java
  68. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/RedisCacheBusinessImpl.java
  69. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/RiskOrderBusinessImpl.java
  70. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApiCommonBusiness.java
  71. 61 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApprovalBusiness.java
  72. 10 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApproveRemoteCallBusiness.java
  73. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IAuthTokenBusiness.java
  74. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IRiskOrderBusiness.java
  75. 0 31
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/DcucAuthConfig.java
  76. 2 17
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/ApprovalProperties.java
  77. 52 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/DcucAuthZerotrustConfig.java
  78. 2 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/SMFactorConfig.java
  79. 6 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/constance/AuthRedisConstant.java
  80. 2 3
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/securitypolicy/ApiSecurityPolicyFacade.java
  81. 3 3
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/business/impl/AuthSubTaskTypeBusinessImpl.java
  82. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/facade/AuthSubTaskTypeFacade.java
  83. 1 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/token/facade/AuthTokenFacade.java
  84. 15 9
      dcuc-auth-service/src/main/resources/application-auth.yml
  85. 3 3
      dcuc-auth-service/src/main/resources/logback.xml

+ 2 - 2
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IAuthRoleOrgRelFacade.java

@@ -1,7 +1,7 @@
 package com.dragoninfo.dcuc.auth.auth.facade;
 
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthSaveVo;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthSaveVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import org.springframework.cloud.openfeign.FeignClient;

+ 1 - 1
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IRoleInfoFacade.java

@@ -4,7 +4,7 @@ import com.dragoninfo.dcuc.auth.auth.entity.RoleInfo;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleAuthParamVo;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleInfoVO;
 import com.dragoninfo.dcuc.auth.auth.vo.RsGridCheckedVO;
-import com.dragoninfo.dcuc.auth.auth.vo.rolemanage.RoleOperateApplyVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleOperateApplyVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;

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

@@ -0,0 +1,87 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.ApprovalResultEnum;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * 审批返回结果
+ */
+@Data
+public class ApprovalBaseRespDto {
+
+    /**
+     * “0000” 表示令牌有效;
+     * 其他值表示无效或接口调用出错
+     */
+    @JsonProperty("status_code")
+    private String statusCode;
+
+    /**
+     * 状态码对应的详细描述
+     */
+    private String message;
+
+    public ApprovalBaseRespDto success() {
+         this.messageEnumMessage(ApprovalResultEnum.SUCCESS);
+         return this;
+    }
+
+    /**
+     * 设置业务枚举
+     *
+     * @param businessRespEnum 业务枚举
+     */
+    public void setBusinessRespEnum(ApprovalResultEnum businessRespEnum) {
+        setStatusCode(businessRespEnum.getValue());
+        setMessage(businessRespEnum.getLabel());
+    }
+
+
+    /**
+     * 设置业务枚举
+     *
+     * @param businessRespEnum 业务枚举
+     */
+    public ApprovalBaseRespDto messageEnumMessage(ApprovalResultEnum businessRespEnum) {
+        this.setBusinessRespEnum(businessRespEnum);
+        return this;
+    }
+
+
+    /**
+     * 设置请求参数异常
+     *
+     * @param businessRespEnum 枚举
+     * @param message          异常信息
+     */
+    public ApprovalBaseRespDto messageEnumMessage(ApprovalResultEnum businessRespEnum, String message) {
+        ApprovalBaseRespDto respDto = new ApprovalBaseRespDto();
+        respDto.setStatusCode(businessRespEnum.getValue());
+        respDto.setMessage(message);
+        return respDto;
+    }
+
+    /**
+     * 是否成功
+     *
+     * @return 是否成功
+     */
+    @JsonIgnore
+    public boolean isRespSuccess() {
+        return this.statusCode.equalsIgnoreCase(ApprovalResultEnum.SUCCESS.getValue());
+    }
+
+    /**
+     * 是否失败
+     *
+     * @return 是否失败
+     */
+    @JsonIgnore
+    public boolean isRespFail() {
+        return !isRespSuccess();
+    }
+
+}

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

@@ -0,0 +1,36 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+@Data
+public class FlowApplyItemRespDTO {
+
+    /**
+     * 审批人id
+     */
+    private String uid;
+
+    /**
+     * 审批人名称
+     */
+    private String userName;
+
+    /**
+     * 审批人部门
+     */
+    private String unitCode;
+
+    /**
+     * 审批人部门名称
+     */
+    private String unitName;
+
+}

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

@@ -0,0 +1,89 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 审批流程申请Dto
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Data
+public class FlowApplyReqDto {
+
+
+    /**
+     * 应用令牌
+     */
+    @NotBlank
+    private String appTokenId;
+
+    /**
+     * 流程定义 Id
+     * 调用审批服务需先在审批中心注册流程,每个注册流程有唯一流程定义ID
+     */
+    @NotBlank
+    private String processDefId;
+
+    /**
+     * 流程标题
+     */
+    @NotBlank
+    private String title;
+
+    /**
+     * 任务类型
+     * “01”表示落地调查 “02”表示立线侦察 “03” 表示立案侦察 “04”表示任务初查 “05”表示刑事任务 “06” 表示重点对象管控 “07” 表示行政任务 “08” 表示权限变更
+     * “98” 表示平台演示 “99” 表示系統巡检
+     */
+    @NotBlank
+    private String taskClass;
+
+    /**
+     * 任务编号
+     * 审批流程所关联的任务唯一标识,任务id编码规则(共32位):RWBH+公安机关组织机构代码(符合GA/T 380-2012的要求)+日期(格式YYYYMMDD)+8位流水号。如:RWBH0100000000002022030100000001
+     */
+    @NotBlank
+    private String taskId;
+
+    /**
+     * 表单
+     * “表名”:[{"字段 1":"值","字段 2":"值"},{"字段 1":"值","字段2":"值"}]}
+     */
+    private Map<String, List<Map<String, String>>> bo = Collections.emptyMap();
+
+    /**
+     * 回调地址(应用开发的接收审批结果变动的地址)
+     */
+    private String callbackUrl;
+
+    /**
+     * 业务数据
+     * 扩展字段
+     */
+    private Map<String, String> bizData;
+
+    /**
+     * 电子签名
+     * 应采用国产密码算法对接口请求参数进行完整性保护
+     */
+    private String callerSign;
+
+
+    /**
+     * 业务流程唯一标识
+     */
+    private String businessKey;
+
+}

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

@@ -0,0 +1,33 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 开启流程返回
+ *
+ * @author mazq
+ * @date 2023/5/26
+ */
+@Data
+public class FlowApplyRespDTO {
+    /**
+     * 下节点ID
+     */
+    private String nextTaskNodeId;
+
+    /**
+     * 流程实例 Id
+     */
+    private String processInstId;
+
+    /**
+     * 任务实例ID
+     */
+    private String taskInstId;
+    /**
+     * 审批人列表
+     */
+    private List<FlowApplyItemRespDTO> reviewer;
+}

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

@@ -0,0 +1,61 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 流程详情返回
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+@Data
+public class FlowDetailRespDTO {
+    /**
+     * 申请人
+     */
+    private String createUser;
+    /**
+     * 流程名称
+     */
+    private String title;
+    /**
+     * 申请时间
+     * yyyy-MM-dd HH:mm:ss
+     */
+    private String createTime;
+    /**
+     * 流程状态、
+     * 流程状态01审批通过,02审批驳回,03审批中,04已撤销
+     *
+     * @see com.dragoninfo.dcuc.auth.approval.enumsource.ApproveStatusEnum
+     */
+    private String processStatus;
+    /**
+     * 流程实例ID
+     */
+    private String processInstId;
+    /**
+     * 流程状态
+     * 0 发起中 1 已完成 2 撤销 3冻结 4 终止 5指令失效 6流程撤回
+     *
+     * @see com.dragoninfo.dcuc.auth.approval.enumsource.FlowStatusEnum
+     */
+    private String status;
+
+    /**
+     * 审批结果
+     * 1 通过 0 不通过
+     */
+    private String result;
+
+    /**
+     * 审批节点数据
+     */
+    private List<FlowDetailSubTaskRespDTO> subTasks;
+
+
+}

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

@@ -0,0 +1,35 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 审批节点数据
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+@Data
+public class FlowDetailSubTaskRespDTO {
+
+    /**
+     * 任务节点名称
+     */
+    private String taskTitle;
+
+    /**
+     * 审批人
+     */
+    private String target;
+
+    /**
+     * 审批结果
+     */
+    private String result;
+
+    /**
+     * 备注
+     */
+    private String msg;
+}

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

@@ -0,0 +1,34 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 审批流程管理dto
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+@Data
+public class FlowOperateManageReqDto {
+
+    /**
+     * 应用令牌
+     */
+    @NotBlank
+    private String appTokenId;
+
+    /**
+     * 流程实例id
+     */
+    @NotBlank
+    private String processInstId;
+
+    /**
+     * 操作类型
+     * @see com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.FlowActionTypeEnum
+     */
+    @NotBlank
+    private String actionType;
+}

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

@@ -0,0 +1,115 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Builder;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 流程提交请求
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+@Builder
+@Data
+public class FlowSubmitReqDTO {
+
+    /**
+     * 应用令牌ID
+     */
+    @NotBlank
+    private String appToken;
+
+    /**
+     * 用户令牌ID
+     */
+    @NotBlank
+    private String userToken;
+
+    /**
+     * 流程实例ID
+     */
+    @NotBlank
+    private String processInstId;
+
+    /**
+     * 任务实例ID
+     */
+    @NotBlank
+    private String taskInstId;
+
+    /**
+     * 审批结果
+     */
+    @NotBlank
+    private String result;
+
+    /**
+     * 任务类型
+     */
+    @NotBlank
+    private String taskClass;
+
+    /**
+     * 提请人员ID
+     */
+    @NotBlank
+    private String userCode;
+
+    /**
+     * 审批人ID
+     */
+    @NotBlank
+    private String reviewerCode;
+
+    /**
+     * 任务ID
+     */
+    private String taskId;
+
+    /**
+     * 流程变量
+     */
+    @NotNull
+    private Map<String, String> vars;
+
+    /**
+     * 业务审批方式
+     */
+    @NotBlank
+    private String approveType;
+
+    /**
+     * 业务审批方式地址
+     */
+    private String approveUrl;
+
+    /**
+     * 任务详情地址
+     */
+    private String taskUrl;
+
+    /**
+     * 表单
+     * “表名”:[{"字段 1":"值","字段 2":"值"},{"字段 1":"值","字段2":"值"}]}
+     */
+    private Map<String, List<Map<String, String>>> bo;
+
+    /**
+     * 是否更新表单
+     */
+    private String updateBo;
+
+    /**
+     * 任务业务数据
+     */
+    private Map<String, Object> bizData;
+
+
+}

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

@@ -0,0 +1,31 @@
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval;
+
+import lombok.Data;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+@Data
+public class FlowSubmitRespDTO {
+
+    /**
+     * 流程实例ID
+     */
+    private String processInstId;
+
+    /**
+     * 任务实例ID
+     */
+    private String taskInstId;
+
+    /**
+     * 下一节点类型
+     */
+    private String nodeType;
+
+}

+ 3 - 2
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/risk/AuthRiskDTO.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/zerotrust/risk/AuthRiskDTO.java

@@ -1,5 +1,6 @@
-package com.dragoninfo.dcuc.auth.auth.dto.risk;
+package com.dragoninfo.dcuc.auth.auth.dto.zerotrust.risk;
 
+import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.risk.AuthRiskTypeEnum;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Builder;
 import lombok.Data;
@@ -20,7 +21,7 @@ public class AuthRiskDTO {
     /**
      * 风险类型
      *
-     * @see com.dragoninfo.dcuc.auth.auth.enumresources.risk.AuthRiskTypeEnum
+     * @see AuthRiskTypeEnum
      */
     private String riskType;
 

+ 62 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/zerotrust/ApprovalResult.java

@@ -0,0 +1,62 @@
+package com.dragoninfo.dcuc.auth.auth.entity.zerotrust;
+
+import com.dragonsoft.duceap.base.entity.persistent.IdEntity;
+import com.dragonsoft.duceap.core.persistent.audit.JpaAuditingEntityListener;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Where;
+
+import javax.persistence.*;
+
+/**
+ * @author mazq
+ * @date 2023/5/11
+ */
+@EntityListeners({JpaAuditingEntityListener.class})
+@EqualsAndHashCode(callSuper = true)
+@Data
+@Entity
+@Table(name = "T_AUTH_APPROVAL_RESULT")
+@Where(clause = "deleted = '0'")
+public class ApprovalResult extends BaseUpdateEntity implements IdEntity<String> {
+
+    /**
+     * 主键id
+     */
+    @Id
+    @GeneratedValue(generator="idGenerator")
+    @GenericGenerator(name="idGenerator", strategy="uuid")
+    private String id;
+
+    /** 流程实例 Id */
+    private String processInstId;
+
+    /** 流程发起人 */
+    private String openId;
+
+    /** 发起人姓名 */
+    private String userName;
+
+    /** 审批结果标识 “1”表示审批通过;“2”表示审批不通过 */
+    private String endFlag;
+
+    /** 流水号创建时间 */
+    private String taskIdDate;
+
+    /** 任务编号 */
+    private String taskId;
+
+    /** 流程定义标识 */
+    private String processDefId;
+
+    /** 业务唯一标识  */
+    private String businessKey;
+
+    /** 申请类型
+     *  @see ApprovalApplyTypeEnum
+     */
+    private String applyType;
+
+
+}

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/AuthRoleOrgRel.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/zerotrust/AuthRoleOrgRel.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.entity;
+package com.dragoninfo.dcuc.auth.auth.entity.zerotrust;
 
 import com.dragonsoft.duceap.base.annotations.audit.DeletedBy;
 import com.dragonsoft.duceap.base.annotations.audit.DeletedDate;

+ 55 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AmCallbackStatusEnum.java

@@ -0,0 +1,55 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * <p>
+ * 审批结果状态
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/7/4
+ */
+public enum AmCallbackStatusEnum implements ICodeEnum {
+
+    /**
+     * 审批通过
+     */
+    APPROVED("1", "审批通过"),
+
+    /**
+     * 审批不通过
+     */
+    NOT_APPROVED("2", "审批不通过");
+
+    private String value;
+
+    private String label;
+
+    AmCallbackStatusEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public String toEndFlag() {
+        return this.value;
+    }
+}

+ 70 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AmFlowStatusEnum.java

@@ -0,0 +1,70 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * <p>
+ * 安盟审批状态
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/7/4
+ */
+public enum AmFlowStatusEnum implements ICodeEnum {
+
+    /**
+     * 审批中
+     */
+    ING("2", "审批中"),
+
+    /**
+     * 已申请待审批
+     */
+    PASS("1", "已审批"),
+
+    /**
+     * 已申请待审批
+     */
+    AWAIT("-1", "已申请待审批");
+
+
+    private String value;
+
+    private String label;
+
+    AmFlowStatusEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    public FlowStatusEnum toApproveStatusEnum() {
+        switch (this) {
+            case ING:
+            case AWAIT:
+                return FlowStatusEnum.INITIATING;
+            case PASS:
+                return FlowStatusEnum.FINISH;
+            default:
+                throw new UnsupportedOperationException();
+        }
+    }
+
+}

+ 47 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalApplyTypeEnum.java

@@ -0,0 +1,47 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+public enum ApprovalApplyTypeEnum implements ICodeEnum {
+    /**
+     * 功能级权限申请
+     */
+    ROLE_AUTH_APPLY("功能级权限申请", "ROLE_AUTH_APPLY"),
+
+    /**
+     * 数据级权限申请
+     */
+    DATA_AUTH_APPLY("数据级权限申请", "DATA_AUTH_APPLY"),
+
+    /**
+     * 角色新增、修改、删除流程申请
+     */
+    ROLE_OPERATE("角色操作流程申请", "ROLE_OPERATE");
+
+    private String label;
+
+    private String value;
+
+    ApprovalApplyTypeEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 48 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalEndFlagEnum.java

@@ -0,0 +1,48 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批结果
+ *
+ * @author mazq
+ * @date 2023/4/6
+ */
+public enum ApprovalEndFlagEnum implements ICodeEnum {
+
+    /**
+     * 审批通过
+     */
+    AGREE("1", "审批通过"),
+    /**
+     * 审批不通过
+     */
+    DIS_AGREE("2", "审批不通过");
+
+    private String value;
+
+    private String label;
+
+    ApprovalEndFlagEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+}

+ 47 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalResultEnum.java

@@ -0,0 +1,47 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批中心接口返回状态
+ *
+ * @author mazq
+ * @date 2023/4/6
+ */
+public enum ApprovalResultEnum implements ICodeEnum {
+    /**
+     * 成功
+     */
+    SUCCESS("0000", "成功"),
+    /**
+     * 失败
+     */
+    FAIL("0001", "失败");
+
+    ApprovalResultEnum(String value, String label) {
+        this.label = label;
+        this.value = value;
+    }
+
+    private String label;
+
+    private String value;
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 48 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalSubmitResultEnum.java

@@ -0,0 +1,48 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批提交
+ *
+ * @author mazq
+ * @date 2023/4/6
+ */
+public enum ApprovalSubmitResultEnum implements ICodeEnum {
+
+    /**
+     * 审批通过1
+     */
+    AGREE("0", "审批通过"),
+    /**
+     * 审批不通过
+     */
+    DIS_AGREE("1", "审批不通过");
+
+    private String value;
+
+    private String label;
+
+    ApprovalSubmitResultEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+}

+ 50 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApprovalTypeEnum.java

@@ -0,0 +1,50 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批方式
+ * 01审批中心审批
+ * 02业务系统审批
+ *
+ * @author mazq
+ * @date 2023/4/6
+ */
+public enum ApprovalTypeEnum implements ICodeEnum {
+
+    /**
+     * 审批中心审批
+     */
+    APPROVE_SERVICE("01", "审批中心审批"),
+    /**
+     * 业务系统审批
+     */
+    BUSINESS_SERVICE("02", "业务系统审批");
+
+    private String value;
+
+    private String label;
+
+    ApprovalTypeEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+}

+ 57 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/ApproveStatusEnum.java

@@ -0,0 +1,57 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * <p>
+ * 审批状态
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+public enum ApproveStatusEnum implements ICodeEnum {
+    /**
+     * 审批通过
+     */
+    PASS("审批通过", "01"),
+    /**
+     * 审批驳回
+     */
+    REJECT("审批驳回", "02"),
+    /**
+     * 审批中
+     */
+    ING("审批中", "03"),
+    /**
+     * 已撤销
+     */
+    REVOKED("已撤销", "04");
+
+    private String label;
+
+    private String value;
+
+    ApproveStatusEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 84 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/AuthApplyStatusEnum.java

@@ -0,0 +1,84 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+import java.util.Arrays;
+
+/**
+ * @author mazq
+ * @date 2021/2/22
+ */
+public enum AuthApplyStatusEnum implements ICodeEnum {
+
+    /**
+     * 失效
+     */
+    NOT_EFF("7", "失效"),
+
+    /**
+     * 同意
+     */
+    AGREE("6", "同意"),
+
+    /**
+     * 不同意
+     */
+    DIS_AGREE("5","不同意"),
+
+    /**
+     * 被终止
+     */
+    STOP("4", "终止"),
+
+    /**
+     * 主动撤销
+     */
+    CANCEL("3", "撤销"),
+
+    /**
+     * 申请中
+     */
+    APPLYING("2", "申请中"),
+
+    /**
+     * 保存
+     */
+    SAVING("1", "暂存");
+
+
+
+
+    private String label;
+    private String value;
+
+    AuthApplyStatusEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    public static AuthApplyStatusEnum getByStatusCode(String applyStatus) {
+       return Arrays.stream(values())
+               .filter(e-> e.getValue().equals(applyStatus))
+               .findAny()
+               .orElse(null);
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String lable) {
+        this.label = lable;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+}

+ 55 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowActionTypeEnum.java

@@ -0,0 +1,55 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批中心工作流操作类型
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+public enum FlowActionTypeEnum implements ICodeEnum {
+    /**
+     * 撤销
+     */
+    CANCEL("撤销", "01"),
+    /**
+     * 挂起
+     */
+    HANG_UP("挂起", "02"),
+    /**
+     * 冻结
+     */
+    FROZEN("冻结", "03"),
+    /**
+     * 终止
+     */
+    STOP("终止", "04"),
+    ;
+    private String label;
+
+    private String value;
+
+    FlowActionTypeEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 63 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowCallBackTypeEnum.java

@@ -0,0 +1,63 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批中心工作流处理结果
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+public enum FlowCallBackTypeEnum implements ICodeEnum {
+    /**
+     * 流程结束
+     */
+    END("流程结束", "end"),
+    /**
+     * 流程撤销
+     */
+    CANCEL("流程撤销", "cancel"),
+    /**
+     * 流程删除
+     */
+    DELETE("流程删除", "delete"),
+    /**
+     * 终止
+     */
+    STOP("终止", "stop"),
+    /**
+     * 流程失效
+     */
+    NONE_EFFECTIVE("流程失效", "noneffective"),
+    /**
+     * 流程有效
+     */
+    EFFECTIVE("流程有效", "effective");
+
+    private String label;
+
+    private String value;
+
+    FlowCallBackTypeEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 51 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowResultEnum.java

@@ -0,0 +1,51 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * 审批流程审批结果
+ *
+ * @author mazq
+ * @date 2023/6/5
+ */
+public enum FlowResultEnum implements ICodeEnum {
+
+    /**
+     * 审批通过
+     */
+    APPROVAL("通过", "1"),
+
+    /**
+     * 审批不通过
+     */
+    DIS_APPROVAL("不通过", "0"),
+
+    ;
+
+    private String label;
+
+    private String value;
+
+    FlowResultEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 76 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/approval/FlowStatusEnum.java

@@ -0,0 +1,76 @@
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval;
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * <p>
+ * 流程状态
+ * </p>
+ *
+ * @author huangzqa
+ * @date 2023/6/1
+ */
+public enum FlowStatusEnum implements ICodeEnum {
+
+    /**
+     * 发起中
+     */
+    INITIATING("发起中", "0"),
+
+    /**
+     * 已完成
+     */
+    FINISH("已完成", "1"),
+
+    /**
+     * 撤销
+     */
+    BACK_OUT("撤销", "2"),
+
+    /**
+     * 冻结
+     */
+    FREEZE("冻结", "3"),
+
+    /**
+     * 终止
+     */
+    TERMINATION("终止", "4"),
+
+    /**
+     * 指令失效
+     */
+    INSTRUCTION_INVALIDATION("指令失效", "5"),
+
+    /**
+     * 流程撤回
+     */
+    RECALL("流程撤回", "6");
+
+    private String label;
+
+    private String value;
+
+    FlowStatusEnum(String label, String value) {
+        this.label = label;
+        this.value = value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+
+    public void setLabel(String label) {
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(String value) {
+        this.value = value;
+    }
+}

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/risk/AuthRiskTypeEnum.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/enumresources/zerotrust/risk/AuthRiskTypeEnum.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.enumresources.risk;
+package com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.risk;
 
 import com.dragoninfo.dcuc.auth.audit.enums.RiskProgrammeTypeEnum;
 import com.dragonsoft.duceap.base.enums.ICodeEnum;

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

@@ -0,0 +1,33 @@
+package com.dragoninfo.dcuc.auth.auth.vo.zerotrust.approval;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 安盟审批回调地址
+ *
+ * @author huangzqa
+ * @date 2023/7/4
+ */
+@ApiModel("安盟审批回调地址")
+@Data
+public class ApprovalCallBackReqVO {
+    /**
+     * 流程实例ID
+     */
+    @NotBlank
+    @ApiModelProperty(value = "流程实例ID")
+    private String processInstId;
+
+    /**
+     * 审批结果状态
+     */
+    @NotBlank
+    @ApiModelProperty(value = "审批结果状态")
+    private String status;
+
+
+}

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/rolemanage/RoleOperateApplyVo.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/rolemanage/RoleOperateApplyVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.vo.rolemanage;
+package com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/rolemanage/RoleSaveVo.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/rolemanage/RoleSaveVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.vo.rolemanage;
+package com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/roleorgauth/RoleOrgAuthSaveVo.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleorgauth/RoleOrgAuthSaveVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.vo.roleorgauth;
+package com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/roleorgauth/RoleOrgAuthVo.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/vo/zerotrust/roleorgauth/RoleOrgAuthVo.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.auth.vo.roleorgauth;
+package com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/ApprovalBaseRespDto.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ApprovalBaseRespDto.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.fasterxml.jackson.annotation.JsonProperty;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/ApprovalResultEnum.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ApprovalResultEnum.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import com.dragonsoft.duceap.base.enums.ICodeEnum;
 

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/ExcelImpTaskType.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/ExcelImpTaskType.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import lombok.Data;
 

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/TaskInfoDetailResp.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskInfoDetailResp.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/TaskTypeInfoDto.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskTypeInfoDto.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;

+ 1 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/tasktype/TaskTypeReqDto.java → dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/dto/zerotrust/tasktype/TaskTypeReqDto.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.sub.dto.tasktype;
+package com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype;
 
 import cn.hutool.crypto.SecureUtil;
 import com.dragonsoft.duceap.commons.util.UUIDUtils;

+ 43 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/sub/enumresource/OperateTypeEnum.java

@@ -0,0 +1,43 @@
+package com.dragoninfo.dcuc.auth.sub.enumresource;
+
+
+import com.dragonsoft.duceap.base.enums.ICodeEnum;
+
+/**
+ * @author huanghy
+ * @date 2018/5/29 13:24
+ */
+public enum OperateTypeEnum implements ICodeEnum {
+
+    /**
+     * 新增
+     */
+    ADD("10", "新增"),
+    /**
+     * 修改
+     */
+    UPDATE("20", "修改"),
+    /**
+     * 删除
+     */
+    DELETE("30", "删除");
+
+
+    private final String value;
+    private final String label;
+
+    OperateTypeEnum(String value, String label) {
+        this.value = value;
+        this.label = label;
+    }
+
+    @Override
+    public String getValue() {
+        return value;
+    }
+
+    @Override
+    public String getLabel() {
+        return label;
+    }
+}

+ 3 - 3
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/async/listener/RzySyslogSendRiskInfoEventListener.java

@@ -3,8 +3,8 @@ package com.dragoninfo.dcuc.auth.async.listener;
 import com.dragoninfo.dcuc.auth.async.event.SendRiskInfoEvent;
 import com.dragoninfo.dcuc.auth.audit.dto.RiskPushLogDto;
 import com.dragoninfo.dcuc.auth.audit.enums.RiskProgrammeTypeEnum;
-import com.dragoninfo.dcuc.auth.auth.dto.risk.AuthRiskDTO;
-import com.dragoninfo.dcuc.auth.auth.enumresources.risk.AuthRiskTypeEnum;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.risk.AuthRiskDTO;
+import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.risk.AuthRiskTypeEnum;
 import com.dragoninfo.dcuc.auth.constance.Constant;
 import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -29,7 +29,7 @@ import java.util.List;
  */
 @Slf4j
 @Component
-@ConditionalOnProperty(name = "dcuc.auth.security-policy.type", havingValue = "rzy")
+@ConditionalOnProperty(name = "dcuc.auth.zerotrust.security-policy.type", havingValue = "rzy")
 public class RzySyslogSendRiskInfoEventListener implements ApplicationListener<SendRiskInfoEvent> {
 
     protected final Logger sysLogLogger = LoggerFactory.getLogger(Constant.AUTH_SYS_LOG_NAME);

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/async/listener/SyslogSecurityPolicyLogListener.java

@@ -18,7 +18,7 @@ import org.springframework.stereotype.Component;
  * @author huangzqa
  * @date 2023/6/30
  */
-@ConditionalOnProperty(name = "dcuc.auth.security-policy.type", havingValue = "rzy")
+@ConditionalOnProperty(name = "dcuc.auth.zerotrust.security-policy.type", havingValue = "rzy")
 @Component
 public class SyslogSecurityPolicyLogListener implements ApplicationListener<SecurityPolicyLogEvent> {
     protected final Logger sysLogLogger = LoggerFactory.getLogger(Constant.AUTH_SYS_LOG_NAME);

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/IAuthRoleOrgRelBusiness.java

@@ -1,7 +1,7 @@
 package com.dragoninfo.dcuc.auth.auth.business;
 
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthSaveVo;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthSaveVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import org.springframework.data.domain.Page;

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

@@ -3,13 +3,13 @@ package com.dragoninfo.dcuc.auth.auth.business.impl;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
 import com.dragoninfo.dcuc.auth.auth.business.IAuthRoleOrgRelBusiness;
-import com.dragoninfo.dcuc.auth.auth.entity.AuthRoleOrgRel;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
 import com.dragoninfo.dcuc.auth.auth.entity.RoleInfo;
-import com.dragoninfo.dcuc.auth.auth.service.IAuthRoleOrgRelService;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IAuthRoleOrgRelService;
 import com.dragoninfo.dcuc.auth.auth.service.IRoleInfoService;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleInfoVO;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthSaveVo;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthSaveVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;

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

@@ -16,8 +16,8 @@ import com.dragoninfo.dcuc.auth.auth.securitypolicy.SecurityPolicyAuthTypeEnum;
 import com.dragoninfo.dcuc.auth.auth.securitypolicy.SecurityPolicyAuthenticationLogReqVO;
 import com.dragoninfo.dcuc.auth.auth.service.IStaffAssignAuthInfoService;
 import com.dragoninfo.dcuc.auth.auth.vo.ApiAppAuthVo;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
-import com.dragoninfo.dcuc.auth.business.IRiskOrderBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IRiskOrderBusiness;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthUserInfoService;
 import com.dragoninfo.dcuc.auth.sub.vo.AuthUserVo;

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

@@ -12,7 +12,7 @@ import com.dragoninfo.dcuc.auth.auth.business.zerotrust.IZeroTrustDataAuthBusine
 import com.dragoninfo.dcuc.auth.auth.dto.DataItemsCheckDto;
 import com.dragoninfo.dcuc.auth.auth.dto.DataItemsDto;
 import com.dragoninfo.dcuc.auth.auth.dto.data.DataAuthV2ReqDTO;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
 import com.dragoninfo.dcuc.auth.sub.vo.AuthUserVo;
 import com.dragoninfo.dcuc.auth.token.vo.TokenDetailRespVo;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;

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

@@ -10,7 +10,7 @@ import com.dragoninfo.dcuc.auth.auth.business.zerotrust.IZeroTrustFunAuthBusines
 import com.dragoninfo.dcuc.auth.auth.dto.AppFunInfoDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.RoleApiDto;
 import com.dragoninfo.dcuc.auth.auth.service.IRoleService;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
 import com.dragoninfo.dcuc.auth.sub.vo.ApplyInfoVo;
 import com.dragoninfo.dcuc.auth.sub.vo.AuthUserVo;
 import com.dragoninfo.dcuc.auth.token.vo.TokenDetailRespVo;

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

@@ -9,7 +9,7 @@ import com.dragoninfo.dcuc.auth.audit.service.log.LogInfoFillService;
 import com.dragoninfo.dcuc.auth.auth.business.zerotrust.IZeroTrustServiceAuthBusiness;
 import com.dragoninfo.dcuc.auth.auth.service.IServiceAuthResultService;
 import com.dragoninfo.dcuc.auth.auth.vo.ServiceAuthenticationResVO;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
 import com.dragoninfo.dcuc.auth.sub.vo.ApplyInfoVo;
 import com.dragoninfo.dcuc.auth.sub.vo.AuthUserVo;
 import com.dragoninfo.dcuc.auth.token.vo.TokenDetailRespVo;

+ 76 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/constance/zerotrust/approval/ApprovalConstance.java

@@ -0,0 +1,76 @@
+package com.dragoninfo.dcuc.auth.auth.constance.zerotrust.approval;
+
+/**
+ * @author mazq
+ * @date 2021/7/19
+ */
+public class ApprovalConstance {
+
+    /**
+     * 附件上传是否需要文件base64返回值
+     * "1"需要
+     */
+    public static final String FILE_UPLOAD_NEED_BASE = "1";
+
+    /**
+     * 附件上传是否需要文件base64返回值
+     * "2"不需要
+     */
+    public static final String FILE_UPLOAD_NOT_NEED_BASE = "2";
+
+    /**
+     * 审批流操作意见
+     * 同意 "0"
+     */
+    public static final String APPROVAL_OPERATE_AGREE = "0";
+
+    /**
+     * 审批流操作意见
+     * 驳回 "1"
+     */
+    public static final String APPROVAL_OPERATE_NOT_AGREE = "1";
+
+    /**
+     * 流程类型 常规流程:Normal
+     */
+    public static final String FLOW_TYPE_NORMAL = "Normal";
+
+    /**
+     * 流程类型 子流程:Sub
+     */
+    public static final String FLOW_TYPE_SUB = "Sub";
+
+    /**
+     * task id 任务编号前缀
+     */
+    public static final String TASK_ID_PREFIX = "RWBH";
+
+    /**
+     * 流程详情接口地址
+     */
+    public static final String FLOW_DETAIL_URL = "/whale/process/getProcessDetail";
+
+    /**
+     * 任务校验接口
+     */
+    public static final String TASK_ID_CHECK_URL = "/whale/process/checkReviewResult";
+
+    /**
+     * 查询任务类型接口
+     */
+    public static final String TASK_CLASS_URL = "/baseTaskClass/queryTaskClassList";
+
+    /**
+     * 开启流程接口
+     */
+    public static final String BEGIN_FLOW_URL = "/api/review/V3/create";
+    /**
+     * 提交流程接口
+     */
+    public static final String SUBMIT_FLOW_URL = "/api/process/submitProcess";
+
+    /**
+     * 流程管理接口
+     */
+    public static final String MANAGE_FLOW_URL = "/api/review/V3/processManage";
+}

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/AuthRoleOrgRelFacade.java

@@ -1,8 +1,8 @@
 package com.dragoninfo.dcuc.auth.auth.facade;
 
 import com.dragoninfo.dcuc.auth.auth.business.IAuthRoleOrgRelBusiness;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthSaveVo;
-import com.dragoninfo.dcuc.auth.auth.vo.roleorgauth.RoleOrgAuthVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthSaveVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.roleorgauth.RoleOrgAuthVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import org.springframework.beans.factory.annotation.Autowired;

+ 3 - 3
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/RoleInfoFacade.java

@@ -6,12 +6,12 @@ import com.dragoninfo.dcuc.auth.auth.enumresources.PermissionEventTypeEnum;
 import com.dragoninfo.dcuc.auth.auth.enumresources.RoleCategoryEnum;
 import com.dragoninfo.dcuc.auth.auth.enumresources.RoleManageOpeTypeEnum;
 import com.dragoninfo.dcuc.auth.auth.service.IRoleInfoService;
-import com.dragoninfo.dcuc.auth.auth.service.rolemanage.IRoleOperateApplyService;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IRoleOperateApplyService;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleAuthParamVo;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleInfoVO;
 import com.dragoninfo.dcuc.auth.auth.vo.RsGridCheckedVO;
-import com.dragoninfo.dcuc.auth.auth.vo.rolemanage.RoleOperateApplyVo;
-import com.dragoninfo.dcuc.auth.auth.vo.rolemanage.RoleSaveVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleOperateApplyVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleSaveVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;

+ 13 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/ApprovalResultRepository.java

@@ -0,0 +1,13 @@
+package com.dragoninfo.dcuc.auth.auth.repo.zerotrust;
+
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.ApprovalResult;
+import com.dragonsoft.duceap.core.persistent.repository.BaseRepository;
+import org.springframework.stereotype.Repository;
+
+/**
+ * @author mazq
+ * @date 2023/7/13
+ */
+@Repository
+public interface ApprovalResultRepository extends BaseRepository<ApprovalResult, String> {
+}

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/AuthRoleOrgRelRepository.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/AuthRoleOrgRelRepository.java

@@ -1,6 +1,6 @@
-package com.dragoninfo.dcuc.auth.auth.repo;
+package com.dragoninfo.dcuc.auth.auth.repo.zerotrust;
 
-import com.dragoninfo.dcuc.auth.auth.entity.AuthRoleOrgRel;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
 import com.dragonsoft.duceap.core.persistent.repository.BaseRepository;
 import org.springframework.stereotype.Repository;
 

+ 11 - 4
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/repo/zerotrust/RoleOperateContentRepository.java

@@ -2,6 +2,9 @@ package com.dragoninfo.dcuc.auth.auth.repo.zerotrust;
 
 import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleOperateContent;
 import com.dragonsoft.duceap.core.persistent.repository.BaseRepository;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -11,8 +14,12 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface RoleOperateContentRepository extends BaseRepository<RoleOperateContent,String> {
 
-
-
-
-
+    /**
+     * 更新审批结果
+     * @param id
+     * @param approvalResult
+     */
+    @Modifying
+    @Query(value = "UPDATE T_AUTH_ROLE_OPERATE_CONTENT SET APPROVAL_RESULT = :approvalResult WHERE ID = :id AND DELETED = '0'", nativeQuery = true)
+    void updateApprovalResult(@Param("id") String id, @Param("approvalResult") String approvalResult);
 }

+ 2 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/RoleService.java

@@ -8,8 +8,10 @@ import com.dragoninfo.dcuc.auth.auth.bpo.RoleInfoBPO;
 import com.dragoninfo.dcuc.auth.auth.dto.AppFunInfoDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.RoleApiDto;
 import com.dragoninfo.dcuc.auth.auth.entity.*;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
 import com.dragoninfo.dcuc.auth.auth.enumresources.AuthStatusEnum;
 import com.dragoninfo.dcuc.auth.auth.service.*;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IAuthRoleOrgRelService;
 import com.dragoninfo.dcuc.auth.auth.vo.RoleAppFunVO;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthUserInfoService;

+ 2 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/StaffAssignAuthInfoService.java

@@ -16,7 +16,9 @@ import com.dragoninfo.dcuc.auth.auth.dto.StaffAssignDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.StaffRoleOperateDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.UserRoleAuthInfoDTO;
 import com.dragoninfo.dcuc.auth.auth.entity.*;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
 import com.dragoninfo.dcuc.auth.auth.service.*;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IAuthRoleOrgRelService;
 import com.dragoninfo.dcuc.auth.auth.vo.*;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthOrgInfo;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;

+ 0 - 105
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/rolemanage/RoleOperateApplyServiceImpl.java

@@ -1,105 +0,0 @@
-package com.dragoninfo.dcuc.auth.auth.service.impl.rolemanage;
-
-import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleOperateContent;
-import com.dragoninfo.dcuc.auth.auth.repo.zerotrust.RoleOperateContentRepository;
-import com.dragoninfo.dcuc.auth.auth.service.rolemanage.IRoleOperateApplyService;
-import com.dragoninfo.dcuc.auth.auth.vo.rolemanage.RoleOperateApplyVo;
-import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * 角色操作申请业务类
- *
- * @author mazq
- * @date 2023/4/21
- */
-@Slf4j
-@Service
-public class RoleOperateApplyServiceImpl implements IRoleOperateApplyService {
-
-    private RoleOperateContentRepository repository;
-
-//    private IApprovalBusiness approvalBusiness;
-//
-//    private ApprovalProperties approvalProperties;
-
-    @Autowired
-    public void setRepository(RoleOperateContentRepository repository) {
-        this.repository = repository;
-    }
-
-//    @Autowired
-//    public void setApprovalBusiness(IApprovalBusiness approvalBusiness) {
-//        this.approvalBusiness = approvalBusiness;
-//    }
-//
-//    @Autowired
-//    public void setApprovalProperties(ApprovalProperties approvalProperties) {
-//        this.approvalProperties = approvalProperties;
-//    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public ResponseDTO<Object> roleOperateApply(RoleOperateApplyVo roleOperateApplyVo) {
-//        RoleSaveVo roleSaveVo = roleOperateApplyVo.getRoleSaveVo();
-//        String operate = roleOperateApplyVo.getOperate();
-//        SecurityUser currentUser = UserContextUtils.getCurrentUser();
-//        RoleManageOpeTypeEnum typeEnum = EnumUtils.enumOf(RoleManageOpeTypeEnum.class, operate);
-//        String uuid = UUIDUtils.getUUID();
-//
-//        // 先推送送审批
-//        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
-//        String format = formatter.format(LocalDate.now());
-//        String title = format + "-" + currentUser.getName() + "-角色" + typeEnum.getLabel() + "申请";
-//        FlowApplyReqDto applyDto = FlowApplyReqDto.builder()
-//                .title(title)
-//                .processDefId(ApprovalApplyTypeEnum.ROLE_OPERATE.getValue())
-//                // TODO 后续填入
-//                .bo(Collections.emptyMap())
-//                .taskClass(approvalProperties.getRoleManageTaskType())
-//                .build();
-//        ResponseDTO<FlowSubmitRespDTO> applyRespDto = approvalBusiness.approvalFlowApplyAndSubmitFirst(applyDto, uuid);
-//        if (ResponseUtil.isFail(applyRespDto)) {
-//            log.info("roleOperateApply apply form push to approval fail");
-//            return Result.failMessage("申请推送审批失败");
-//        }
-//        FlowSubmitRespDTO flowSubmitRespDTO = ResponseUtil.getResult(applyRespDto);
-//        String processInstId = flowSubmitRespDTO.getProcessInstId();
-//
-//        // 推送成功之后保存角色改动内容
-//        RoleOperateContent operateContent = new RoleOperateContent();
-//        BeanUtil.copyProperties(roleSaveVo, operateContent, "id");
-//        operateContent.setUserId(currentUser.getId());
-//        operateContent.setRoleId(roleSaveVo.getId());
-//        operateContent.setProcessInstId(processInstId);
-//        operateContent.setApprovalBusinessId(uuid);
-//        operateContent.setOperateType(typeEnum.getValue());
-//        mapper.insert(operateContent);
-//        return Result.success();
-        return null;
-    }
-
-    @Override
-    public RoleOperateContent getByProcessInstIdId(String processInstId) {
-        return null;
-    }
-
-    @Override
-    public void delete(String id) {
-
-    }
-
-    @Transactional(rollbackFor = Exception.class)
-    @Override
-    public void updateApprovalResult(String id, String approvalResult) {
-//        LambdaUpdateWrapper<RoleOperateContent> updateWrapper = Wrappers.lambdaUpdate();
-//        updateWrapper.set(RoleOperateContent::getApprovalResult, approvalResult);
-//        updateWrapper.eq(RoleOperateContent::getId, id);
-//        mapper.update(null, updateWrapper);
-    }
-
-
-}

+ 70 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/ApprovalResultServiceImpl.java

@@ -0,0 +1,70 @@
+package com.dragoninfo.dcuc.auth.auth.service.impl.zerotrust;
+
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.ApprovalResult;
+import com.dragoninfo.dcuc.auth.auth.repo.zerotrust.ApprovalResultRepository;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IApprovalResultService;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2023/5/11
+ */
+@Service
+public class ApprovalResultServiceImpl implements IApprovalResultService {
+
+    private ApprovalResultRepository repository;
+
+    @Autowired
+    public void setMapper(ApprovalResultRepository repository) {
+        this.repository = repository;
+    }
+
+    @Override
+    public void save(ApprovalResult approvalResult) {
+        repository.save(approvalResult);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void update(ApprovalResult approvalResult) {
+        repository.update(approvalResult);
+    }
+
+    @Override
+    public ApprovalResult getByProcessInstId(String processInstId) {
+        if (StringUtils.isBlank(processInstId)) {
+            return null;
+        }
+        ApprovalResult approvalResult = new ApprovalResult();
+        approvalResult.setProcessInstId(processInstId);
+        Example<ApprovalResult> example = Example.of(approvalResult);
+        return repository.findOne(example).orElse(null);
+    }
+
+    @Override
+    public String getTaskIdByTime(String dateTimeStr) {
+        ApprovalResult approvalResult = new ApprovalResult();
+        approvalResult.setTaskIdDate(dateTimeStr);
+        Example<ApprovalResult> example = Example.of(approvalResult);
+        List<ApprovalResult> approvalResults = repository.findAll(example);
+        if (CollectionUtils.isEmpty(approvalResults)) {
+            return null;
+        } else {
+            return approvalResults.stream()
+                    .map(e-> {
+                        String taskId = e.getTaskId();
+                        return taskId.substring(taskId.length() - 8);
+                    }).sorted(String::compareTo)
+                    .collect(Collectors.toList())
+                    .get(0);
+        }
+    }
+}

+ 4 - 4
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/IAuthRoleOrgRelServiceImpl.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/zerotrust/IAuthRoleOrgRelServiceImpl.java

@@ -1,8 +1,8 @@
-package com.dragoninfo.dcuc.auth.auth.service.impl;
+package com.dragoninfo.dcuc.auth.auth.service.impl.zerotrust;
 
-import com.dragoninfo.dcuc.auth.auth.entity.AuthRoleOrgRel;
-import com.dragoninfo.dcuc.auth.auth.repo.AuthRoleOrgRelRepository;
-import com.dragoninfo.dcuc.auth.auth.service.IAuthRoleOrgRelService;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
+import com.dragoninfo.dcuc.auth.auth.repo.zerotrust.AuthRoleOrgRelRepository;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IAuthRoleOrgRelService;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;

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

@@ -0,0 +1,118 @@
+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 com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleOperateContent;
+import com.dragoninfo.dcuc.auth.auth.enumresources.RoleManageOpeTypeEnum;
+import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.ApprovalApplyTypeEnum;
+import com.dragoninfo.dcuc.auth.auth.repo.zerotrust.RoleOperateContentRepository;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IRoleOperateApplyService;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleOperateApplyVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleSaveVo;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApprovalBusiness;
+import com.dragoninfo.dcuc.auth.config.zerotrust.ApprovalProperties;
+import com.dragoninfo.dcuc.common.utils.ResponseUtil;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
+import com.dragonsoft.duceap.base.utils.UserContextUtils;
+import com.dragonsoft.duceap.commons.util.UUIDUtils;
+import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Collections;
+
+/**
+ * 角色操作申请业务类
+ *
+ * @author mazq
+ * @date 2023/4/21
+ */
+@Slf4j
+@Service
+public class RoleOperateApplyServiceImpl implements IRoleOperateApplyService {
+
+    private RoleOperateContentRepository repository;
+
+    private IApprovalBusiness approvalBusiness;
+
+    private ApprovalProperties approvalProperties;
+
+    @Autowired
+    public void setRepository(RoleOperateContentRepository repository) {
+        this.repository = repository;
+    }
+
+    @Autowired
+    public void setApprovalBusiness(IApprovalBusiness approvalBusiness) {
+        this.approvalBusiness = approvalBusiness;
+    }
+
+    @Autowired
+    public void setApprovalProperties(ApprovalProperties approvalProperties) {
+        this.approvalProperties = approvalProperties;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public ResponseDTO<Object> roleOperateApply(RoleOperateApplyVo roleOperateApplyVo) {
+        RoleSaveVo roleSaveVo = roleOperateApplyVo.getRoleSaveVo();
+        String operate = roleOperateApplyVo.getOperate();
+        SecurityUser currentUser = UserContextUtils.getCurrentUser();
+        RoleManageOpeTypeEnum typeEnum = EnumUtils.enumOf(RoleManageOpeTypeEnum.class, operate);
+        String uuid = UUIDUtils.getUUID();
+
+        // 先推送送审批
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        String format = formatter.format(LocalDate.now());
+        String title = format + "-" + currentUser.getName() + "-角色" + typeEnum.getLabel() + "申请";
+        FlowApplyReqDto applyDto = FlowApplyReqDto.builder()
+                .title(title)
+                .processDefId(ApprovalApplyTypeEnum.ROLE_OPERATE.getValue())
+                // TODO 后续填入
+                .bo(Collections.emptyMap())
+                .taskClass(approvalProperties.getRoleManageTaskType())
+                .build();
+        ResponseDTO<FlowSubmitRespDTO> applyRespDto = approvalBusiness.approvalFlowApplyAndSubmitFirst(applyDto, uuid);
+        if (ResponseUtil.isFail(applyRespDto)) {
+            log.info("roleOperateApply apply form push to approval fail");
+            return ResponseDTO.fail("申请推送审批失败", (Object) null);
+        }
+        FlowSubmitRespDTO flowSubmitRespDTO = ResponseUtil.getResult(applyRespDto);
+        String processInstId = flowSubmitRespDTO.getProcessInstId();
+
+        // 推送成功之后保存角色改动内容
+        RoleOperateContent operateContent = new RoleOperateContent();
+        BeanUtil.copyProperties(roleSaveVo, operateContent, "id");
+        operateContent.setUserId(currentUser.getId());
+        operateContent.setRoleId(roleSaveVo.getId());
+        operateContent.setProcessInstId(processInstId);
+        operateContent.setApprovalBusinessId(uuid);
+        operateContent.setOperateType(typeEnum.getValue());
+        repository.save(operateContent);
+        return ResponseDTO.success("", (Object) null);
+    }
+
+    @Override
+    public RoleOperateContent getByProcessInstIdId(String processInstId) {
+        return null;
+    }
+
+    @Override
+    public void delete(String id) {
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void updateApprovalResult(String id, String approvalResult) {
+        repository.updateApprovalResult(id, approvalResult);
+    }
+
+
+}

+ 37 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IApprovalResultService.java

@@ -0,0 +1,37 @@
+package com.dragoninfo.dcuc.auth.auth.service.zerotrust;
+
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.ApprovalResult;
+
+/**
+ * 流程申请及回调结果业务类
+ * @author mazq
+ * @date 2023/5/11
+ */
+public interface IApprovalResultService {
+
+    /**
+     * 保存审批结果
+     * @param approvalResult
+     */
+    void save(ApprovalResult approvalResult);
+
+    /**
+     * 更新审批结果
+     * @param approvalResult
+     */
+    void update(ApprovalResult approvalResult);
+
+    /**
+     * 根据流程实例获取审批结果
+     * @param processInstId
+     * @return
+     */
+    ApprovalResult getByProcessInstId(String processInstId);
+
+    /**
+     * 根据时间获取任务id
+     * @param dateTimeStr
+     * @return
+     */
+    String getTaskIdByTime(String dateTimeStr);
+}

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IAuthRoleOrgRelService.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IAuthRoleOrgRelService.java

@@ -1,6 +1,6 @@
-package com.dragoninfo.dcuc.auth.auth.service;
+package com.dragoninfo.dcuc.auth.auth.service.zerotrust;
 
-import com.dragoninfo.dcuc.auth.auth.entity.AuthRoleOrgRel;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.AuthRoleOrgRel;
 
 import java.util.List;
 

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/rolemanage/IRoleOperateApplyService.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/zerotrust/IRoleOperateApplyService.java

@@ -1,7 +1,7 @@
-package com.dragoninfo.dcuc.auth.auth.service.rolemanage;
+package com.dragoninfo.dcuc.auth.auth.service.zerotrust;
 
 import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleOperateContent;
-import com.dragoninfo.dcuc.auth.auth.vo.rolemanage.RoleOperateApplyVo;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.rolemanage.RoleOperateApplyVo;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 
 /**

+ 8 - 7
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/ApiCommonBusiness.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/ApiCommonBusiness.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business.impl;
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
@@ -7,8 +7,9 @@ import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
 import com.dragoninfo.dcuc.auth.api.enums.zerotrust.ZeroTrustBusinessRespEnum;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustSignReqVO;
-import com.dragoninfo.dcuc.auth.business.IApiCommonBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApiCommonBusiness;
 import com.dragoninfo.dcuc.auth.config.DcucAuthConfig;
+import com.dragoninfo.dcuc.auth.config.zerotrust.DcucAuthZerotrustConfig;
 import com.dragoninfo.dcuc.auth.constance.AuthRedisConstant;
 import com.dragonsoft.duceap.commons.util.date.DateConst;
 import com.dragonsoft.duceap.commons.util.date.DateUtils;
@@ -29,7 +30,7 @@ import java.util.concurrent.TimeUnit;
 @Service
 public class ApiCommonBusiness implements IApiCommonBusiness {
 
-    private DcucAuthConfig dcucAuthConfig;
+    private DcucAuthZerotrustConfig zerotrustConfig;
 
     private IApplyInfoFacade applyInfoFacade;
 
@@ -43,8 +44,8 @@ public class ApiCommonBusiness implements IApiCommonBusiness {
     }
 
     @Autowired
-    public void setDcucAuthConfig(DcucAuthConfig dcucAuthConfig) {
-        this.dcucAuthConfig = dcucAuthConfig;
+    public void setZerotrustConfig(DcucAuthZerotrustConfig zerotrustConfig) {
+        this.zerotrustConfig = zerotrustConfig;
     }
 
     @Autowired
@@ -59,7 +60,7 @@ public class ApiCommonBusiness implements IApiCommonBusiness {
 
     @Override
     public ZeroTrustMessageRespVO checkSecret(ZeroTrustSignReqVO signReqVO) {
-        Boolean checkCallerSign = dcucAuthConfig.getCheckCallerSign();
+        Boolean checkCallerSign = zerotrustConfig.getCheckCallerSign();
         log.info("checkCallerSign:{} ", checkCallerSign);
         if (!checkCallerSign) {
             return ZeroTrustMessageRespVO.messageEnumMessage(ZeroTrustBusinessRespEnum.SUCCESS);
@@ -88,7 +89,7 @@ public class ApiCommonBusiness implements IApiCommonBusiness {
             return ZeroTrustMessageRespVO.requestErrorMessage("callerTimestamp 不合法");
         }
 
-        Integer timeStampCheckSeconds = dcucAuthConfig.getTimeStampCheckSeconds();
+        Integer timeStampCheckSeconds = zerotrustConfig.getTimeStampCheckSeconds();
         Date date = new Date();
         Date minLocalDate = DateUtil.offsetSecond(date, -timeStampCheckSeconds);
         Date maxLocalDate = DateUtil.offsetSecond(date, timeStampCheckSeconds);

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

@@ -0,0 +1,344 @@
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.lang.Assert;
+import cn.hutool.json.JSONUtil;
+import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
+import com.dragoninfo.dcuc.auth.auth.constance.zerotrust.approval.ApprovalConstance;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.*;
+import com.dragoninfo.dcuc.auth.auth.entity.RoleInfo;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.ApprovalResult;
+import com.dragoninfo.dcuc.auth.auth.entity.zerotrust.RoleOperateContent;
+import com.dragoninfo.dcuc.auth.auth.enumresources.zerotrust.approval.*;
+import com.dragoninfo.dcuc.auth.auth.service.IRoleInfoService;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IApprovalResultService;
+import com.dragoninfo.dcuc.auth.auth.service.zerotrust.IRoleOperateApplyService;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.approval.ApprovalCallBackReqVO;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApprovalBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApproveRemoteCallBusiness;
+import com.dragoninfo.dcuc.auth.config.zerotrust.ApprovalProperties;
+import com.dragoninfo.dcuc.auth.constance.AuthRedisConstant;
+import com.dragoninfo.dcuc.auth.sub.enumresource.OperateTypeEnum;
+import com.dragoninfo.dcuc.common.enums.UserExtInfoEnum;
+import com.dragoninfo.dcuc.common.utils.ResponseUtil;
+import com.dragoninfo.dcuc.common.utils.SecurityUserUtil;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.utils.UserContextUtils;
+import com.dragonsoft.duceap.commons.util.ObjectUtils;
+import com.dragonsoft.duceap.commons.util.date.DateConst;
+import com.dragonsoft.duceap.commons.util.date.DateUtils;
+import com.dragonsoft.duceap.commons.util.enums.EnumUtils;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 审批操作业务类
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+@Slf4j
+@Service
+public class ApprovalBusinessImpl implements IApprovalBusiness {
+
+    private IRoleInfoService roleInfoService;
+
+    private ApprovalProperties approvalProperties;
+
+    private IRoleOperateApplyService roleOperateApplyService;
+
+    private IApprovalResultService approvalResultService;
+
+    private StringRedisTemplate stringRedisTemplate;
+
+    private IApproveRemoteCallBusiness approveRemoteCallBusiness;
+
+
+    @Autowired
+    public void setApproveRemoteCallBusiness(IApproveRemoteCallBusiness approveRemoteCallBusiness) {
+        this.approveRemoteCallBusiness = approveRemoteCallBusiness;
+    }
+
+    @Autowired
+    public void setStringRedisTemplate(StringRedisTemplate stringRedisTemplate) {
+        this.stringRedisTemplate = stringRedisTemplate;
+    }
+
+    @Autowired
+    public void setApprovalResultService(IApprovalResultService approvalResultService) {
+        this.approvalResultService = approvalResultService;
+    }
+
+    @Autowired
+    public void setRoleInfoService(IRoleInfoService roleInfoService) {
+        this.roleInfoService = roleInfoService;
+    }
+
+    @Autowired
+    public void setApprovalProperties(ApprovalProperties approvalProperties) {
+        this.approvalProperties = approvalProperties;
+    }
+
+    @Autowired
+    public void setRoleOperateApplyService(IRoleOperateApplyService roleOperateApplyService) {
+        this.roleOperateApplyService = roleOperateApplyService;
+    }
+
+    @Override
+    public ResponseDTO<FlowApplyRespDTO> approvalFlowApply(FlowApplyReqDto flowApplyReqDto, String businessKey) {
+        String appTokenId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.APP_TOKEN_ID);
+        flowApplyReqDto.setAppTokenId(appTokenId);
+
+        // 设置流程定义类型
+        String processDefId = flowApplyReqDto.getProcessDefId();
+        String applyType = processDefId;
+        if (ApprovalApplyTypeEnum.ROLE_OPERATE.getValue().equals(processDefId)) {
+            processDefId = approvalProperties.getRoleOperateDefId();
+        } else {
+            return ResponseDTO.fail("未定义的流程类型", (Object) null);
+        }
+        flowApplyReqDto.setProcessDefId(processDefId);
+
+        // 设置回调地址
+        flowApplyReqDto.setCallbackUrl(approvalProperties.getCallBackUrl());
+
+        // 设置taskId和签名值
+        setTaskId(flowApplyReqDto);
+
+        // 提交审批流程
+        ResponseDTO<FlowApplyRespDTO> flowApplyResponseDTO = approveRemoteCallBusiness.flowApply(flowApplyReqDto);
+
+        // 申请成功维护业务标识、业务类型和流程实例id的关系
+        if (ResponseUtil.isSuccess(flowApplyResponseDTO)) {
+            FlowApplyRespDTO flowApplyRespDTO = ResponseUtil.getResult(flowApplyResponseDTO);
+            String processInstId = flowApplyRespDTO.getProcessInstId();
+            saveApprovalResult(flowApplyReqDto, businessKey, processDefId, applyType, processInstId);
+        }
+        return flowApplyResponseDTO;
+    }
+
+    @Override
+    public ResponseDTO<FlowSubmitRespDTO> approvalFlowApplyAndSubmitFirst(FlowApplyReqDto applyDto, String businessKey) {
+        ResponseDTO<FlowApplyRespDTO> flowApplyResponseDTO = approvalFlowApply(applyDto, businessKey);
+        if (ResponseUtil.isFail(flowApplyResponseDTO)) {
+            return ResponseUtil.dtoFail(flowApplyResponseDTO.getMessage());
+        }
+        FlowApplyRespDTO flowApplyRespDTO = ResponseUtil.getResult(flowApplyResponseDTO);
+        List<FlowApplyItemRespDTO> reviewer = flowApplyRespDTO.getReviewer();
+        if (CollUtil.isEmpty(reviewer)) {
+            return ResponseUtil.dtoFail("无下一节点审批人信息,请检查在审批服务中的流程定义");
+        }
+        String appTokenId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.APP_TOKEN_ID);
+        String userTokenId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.USER_TOKEN_ID);
+
+        String processInstId = flowApplyRespDTO.getProcessInstId();
+        String taskInstId = flowApplyRespDTO.getTaskInstId();
+        String openId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.OPEN_ID);
+
+        FlowSubmitReqDTO flowSubmitReqDTO = FlowSubmitReqDTO.builder()
+                .appToken(appTokenId)
+                .userToken(userTokenId)
+                .processInstId(processInstId)
+                .taskInstId(taskInstId)
+                .result(ApprovalSubmitResultEnum.AGREE.getValue())
+                .taskClass(applyDto.getTaskClass())
+                .userCode(openId)
+                .reviewerCode(openId)
+                .vars(Collections.emptyMap())
+                .bo(Collections.emptyMap())
+                .bizData(Collections.emptyMap())
+                .approveType(ApprovalTypeEnum.APPROVE_SERVICE.getValue())
+                .build();
+
+        return approveRemoteCallBusiness.flowSubmit(flowSubmitReqDTO);
+    }
+
+
+    private void setTaskId(FlowApplyReqDto applyDto) {
+        String securityOrg = UserContextUtils.getCurrentUser().getSecurityOrg();
+        Date date = DateUtils.getDate();
+        String taskId = generalTaskId(securityOrg, date);
+        applyDto.setTaskId(taskId);
+    }
+
+
+    /**
+     * 生成任务ID
+     *
+     * @param orgCode 机构代码
+     * @param date    日期
+     * @return 任务ID
+     */
+    protected String generalTaskId(String orgCode, Date date) {
+        Assert.notBlank(orgCode);
+
+        String currTimeStr = DateUtils.getTimeStr(date, DateConst.DB_STORE_TIME);
+        String dateTimeStr = DateUtils.getTimeStr(date, DateConst.DB_STORE_DATE);
+
+        // 当日的
+        String key = AuthRedisConstant.APPROVAL_TASK_ID_PREFIX + dateTimeStr;
+        Boolean hasKey = stringRedisTemplate.hasKey(key);
+        Long taskIdNo;
+        // 有Key直接加1
+        if (hasKey != null && hasKey) {
+            taskIdNo = stringRedisTemplate.opsForValue().increment(key);
+        } else {
+            String existTaskId = approvalResultService.getTaskIdByTime(dateTimeStr);
+            if (StringUtils.isBlank(existTaskId)) {
+                taskIdNo = 1L;
+            } else {
+                taskIdNo = Long.valueOf(existTaskId);
+                taskIdNo += 1;
+            }
+            // 都保留一天,存储量很小,不用担心存储问题
+            Boolean setIfAbsent = stringRedisTemplate.opsForValue().setIfAbsent(key, String.valueOf(taskIdNo), 1, TimeUnit.DAYS);
+            if (setIfAbsent == null || !setIfAbsent) {
+                taskIdNo = stringRedisTemplate.opsForValue().increment(key);
+            }
+        }
+        // 格式化为8位流水号
+        return ApprovalConstance.TASK_ID_PREFIX + orgCode + currTimeStr + String.format("%08d", taskIdNo);
+    }
+
+    private void saveApprovalResult(FlowApplyReqDto applyDto, String businessKey, String processDefId, String applyType,
+                                    String processInstId) {
+        ApprovalResult approvalResult = new ApprovalResult();
+        approvalResult.setBusinessKey(businessKey);
+        approvalResult.setApplyType(applyType);
+        approvalResult.setProcessDefId(processDefId);
+        approvalResult.setProcessInstId(processInstId);
+        approvalResult.setTaskId(applyDto.getTaskId());
+        approvalResult.setTaskIdDate(DateUtils.getCurrTimeStr(DateConst.DB_STORE_DATE));
+        approvalResultService.save(approvalResult);
+    }
+
+    @Override
+    public ResponseStatus approvalFlowCancel(String processInstId) {
+        String appTokenId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.APP_TOKEN_ID);
+        FlowOperateManageReqDto flowOperateManageReqDto = new FlowOperateManageReqDto();
+        flowOperateManageReqDto.setAppTokenId(appTokenId);
+        flowOperateManageReqDto.setProcessInstId(processInstId);
+        flowOperateManageReqDto.setActionType(FlowActionTypeEnum.CANCEL.getValue());
+        return approveRemoteCallBusiness.flowManage(flowOperateManageReqDto);
+    }
+
+    @Override
+    public ResponseDTO<FlowDetailRespDTO> flowDetail(String processInstId) {
+        String appTokenId = SecurityUserUtil.getUserExtInfoValue(UserExtInfoEnum.APP_TOKEN_ID).toString();
+        return approveRemoteCallBusiness.flowDetail(appTokenId, processInstId);
+    }
+
+    @Override
+    public ZeroTrustMessageRespVO approvalCallBack(ApprovalCallBackReqVO approvalCallBackReqVO) {
+        log.info("接收到的安盟审批回调信息:{}", JSONUtil.toJsonStr(approvalCallBackReqVO));
+
+        String processInstId = approvalCallBackReqVO.getProcessInstId();
+        String status = approvalCallBackReqVO.getStatus();
+        ApprovalResult approvalResult = approvalResultService.getByProcessInstId(processInstId);
+        if (ObjectUtils.isEmpty(approvalResult)) {
+            log.error("processInstId {} can't find", processInstId);
+            return ZeroTrustMessageRespVO.requestErrorMessage("审批单不存在");
+        }
+        String applyType = approvalResult.getApplyType();
+
+        AmCallbackStatusEnum amCallbackStatusEnum = EnumUtils.enumOf(AmCallbackStatusEnum.class, status);
+        String endFlag = amCallbackStatusEnum.toEndFlag();
+        // 无该类型,默认使用end
+        String type = "end";
+
+        // 角色操作申请处理
+        ApprovalBaseRespDto approvalBaseRespDto = new ApprovalBaseRespDto().success();
+        if (ApprovalApplyTypeEnum.ROLE_OPERATE.getValue().equals(applyType)) {
+            approvalBaseRespDto = roleOperateCallBackHandle(processInstId, type, endFlag);
+        }
+
+        // TODO 更新审批结果
+        ZeroTrustMessageRespVO zeroTrustMessageRespVO = new ZeroTrustMessageRespVO();
+        BeanUtil.copyProperties(approvalBaseRespDto, zeroTrustMessageRespVO);
+        return zeroTrustMessageRespVO;
+    }
+
+    private ApprovalBaseRespDto roleOperateCallBackHandle(String processInstId, String type, String endFlag) {
+        RoleOperateContent roleOperateContent = roleOperateApplyService.getByProcessInstIdId(processInstId);
+        if (null == roleOperateContent) {
+            return new ApprovalBaseRespDto().success();
+        }
+
+        // 处理角色操作结果
+        return handleRoleOperateApproval(roleOperateContent, type, endFlag);
+    }
+
+    private ApprovalBaseRespDto handleRoleOperateApproval(RoleOperateContent roleOperateContent, String type, String endFlag) {
+        String id = roleOperateContent.getId();
+        // 流程被删除对应删除本地申请
+        if (FlowCallBackTypeEnum.DELETE.getValue().equals(type)) {
+            roleOperateApplyService.delete(roleOperateContent.getId());
+            return new ApprovalBaseRespDto().success();
+        }
+
+        // 回调修改流程状态
+        String approvalResult = getApplyStatus(type, endFlag);
+        roleOperateApplyService.updateApprovalResult(id, approvalResult);
+
+        if (!AuthApplyStatusEnum.AGREE.getValue().equals(approvalResult)) {
+            return new ApprovalBaseRespDto().success();
+        }
+        // 开始操作角色
+        String operateType = roleOperateContent.getOperateType();
+        if (OperateTypeEnum.ADD.getValue().equals(operateType)) {
+            RoleInfo roleInfo = getNewRoleInfo(roleOperateContent);
+            roleInfoService.save(roleInfo);
+        } else if (OperateTypeEnum.DELETE.getValue().equals(operateType)) {
+            roleInfoService.deleteRole(roleOperateContent.getRoleId());
+        } else if (OperateTypeEnum.UPDATE.getValue().equals(operateType)) {
+            RoleInfo roleInfo = getNewRoleInfo(roleOperateContent);
+            roleInfo.setId(roleOperateContent.getRoleId());
+            roleInfoService.update(roleInfo);
+        }
+
+        return new ApprovalBaseRespDto().success();
+    }
+
+    private RoleInfo getNewRoleInfo(RoleOperateContent roleOperateContent) {
+        RoleInfo roleInfo = new RoleInfo();
+        roleInfo.setAppId(roleOperateContent.getAppId());
+        roleInfo.setName(roleOperateContent.getName());
+        roleInfo.setCode(roleOperateContent.getCode());
+        roleInfo.setRoleLevel(roleOperateContent.getRoleLevel());
+        roleInfo.setRoleCategory(roleOperateContent.getRoleCategory());
+        roleInfo.setRoleBusiness(roleOperateContent.getRoleBusiness());
+        roleInfo.setIsNotLimitCount(roleOperateContent.getLimitCount());
+        return roleInfo;
+    }
+
+    private String getApplyStatus(String type, String endFlag) {
+        String applyStatus = "";
+        if (FlowCallBackTypeEnum.CANCEL.getValue().equals(type)) {
+            applyStatus = AuthApplyStatusEnum.CANCEL.getValue();
+        } else if (FlowCallBackTypeEnum.STOP.getValue().equals(type)) {
+            applyStatus = AuthApplyStatusEnum.STOP.getValue();
+        } else if (FlowCallBackTypeEnum.END.getValue().equals(type) ||
+                FlowCallBackTypeEnum.EFFECTIVE.getValue().equals(type)) {
+            if (ApprovalEndFlagEnum.AGREE.getValue().equals(endFlag)) {
+                applyStatus = AuthApplyStatusEnum.AGREE.getValue();
+            } else {
+                applyStatus = AuthApplyStatusEnum.DIS_AGREE.getValue();
+            }
+        } else if (FlowCallBackTypeEnum.NONE_EFFECTIVE.getValue().equals(type)) {
+            applyStatus = AuthApplyStatusEnum.NOT_EFF.getValue();
+        }
+        log.info("getApplyStatus result:{} ", applyStatus);
+        return applyStatus;
+    }
+
+}

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

@@ -1,11 +1,13 @@
-package com.dragoninfo.dcuc.auth.business.impl;
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
 
-import com.dragoninfo.dcuc.auth.business.IApproveRemoteCallBusiness;
-import com.dragoninfo.dcuc.auth.config.DcucAuthConfig;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.*;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApproveRemoteCallBusiness;
+import com.dragoninfo.dcuc.auth.config.zerotrust.ApprovalProperties;
+import com.dragoninfo.dcuc.auth.config.zerotrust.DcucAuthZerotrustConfig;
 import com.dragoninfo.dcuc.auth.constance.ApprovalApiConstance;
-import com.dragoninfo.dcuc.auth.sub.dto.tasktype.ApprovalResultEnum;
-import com.dragoninfo.dcuc.auth.sub.dto.tasktype.TaskInfoDetailResp;
-import com.dragoninfo.dcuc.auth.sub.dto.tasktype.TaskTypeInfoDto;
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.ApprovalResultEnum;
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.TaskInfoDetailResp;
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.TaskTypeInfoDto;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthSubTaskType;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthSubTaskTypeService;
 import com.dragoninfo.dcuc.common.utils.ResponseUtil;
@@ -42,15 +44,15 @@ import java.util.stream.Collectors;
 @Component
 public class ApproveRemoteCallBusinessImpl implements IApproveRemoteCallBusiness {
 
-    private DcucAuthConfig dcucAuthConfig;
+    private ApprovalProperties approvalProperties;
 
     private RestTemplate restTemplate;
 
     private IAuthSubTaskTypeService taskTypeService;
 
     @Autowired
-    public void setDcucAuthConfig(DcucAuthConfig dcucAuthConfig) {
-        this.dcucAuthConfig = dcucAuthConfig;
+    public void setApprovalProperties(ApprovalProperties approvalProperties) {
+        this.approvalProperties = approvalProperties;
     }
 
     @Autowired
@@ -86,7 +88,7 @@ public class ApproveRemoteCallBusinessImpl implements IApproveRemoteCallBusiness
      */
     @Override
     public ResponseDTO<TaskInfoDetailResp> getTaskInfoDetail(String appTokenId, String taskId) {
-        String baseUrl = dcucAuthConfig.getApprovalCenterUrl();
+        String baseUrl = approvalProperties.getBaseUrl();
         String taskIdCheckUrl = baseUrl + ApprovalApiConstance.TASK_ID_CHECK_URL;
         TypeReference<ResponseDTO<TaskInfoDetailResp>> typeReference = new TypeReference<ResponseDTO<TaskInfoDetailResp>>() {
         };
@@ -94,6 +96,26 @@ public class ApproveRemoteCallBusinessImpl implements IApproveRemoteCallBusiness
         return baseGet("获取审批任务详情", "获取审批任务详情失败", taskIdCheckUrl, typeReference);
     }
 
+    @Override
+    public ResponseDTO<FlowApplyRespDTO> flowApply(FlowApplyReqDto flowApplyReqDto) {
+        return null;
+    }
+
+    @Override
+    public ResponseDTO<FlowSubmitRespDTO> flowSubmit(FlowSubmitReqDTO flowSubmitReqDTO) {
+        return null;
+    }
+
+    @Override
+    public ResponseStatus flowManage(FlowOperateManageReqDto flowOperateManageReqDto) {
+        return null;
+    }
+
+    @Override
+    public ResponseDTO<FlowDetailRespDTO> flowDetail(String appTokenId, String processInstId) {
+        return null;
+    }
+
     /**
      * 流程详情
      *
@@ -150,7 +172,7 @@ public class ApproveRemoteCallBusinessImpl implements IApproveRemoteCallBusiness
      * @return 返回内容
      */
     protected ResponseDTO<List<TaskTypeInfoDto>> getTaskTypeFromApproval() {
-        String baseUrl = dcucAuthConfig.getApprovalCenterUrl();
+        String baseUrl = approvalProperties.getBaseUrl();
         String url = baseUrl + ApprovalApiConstance.CLASS_TYPE_URL;
         TypeReference<ResponseDTO<List<TaskTypeInfoDto>>> typeReference = new TypeReference<ResponseDTO<List<TaskTypeInfoDto>>>() {
         };

+ 9 - 8
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/AuthTokenBusinessImpl.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/impl/zerotrust/AuthTokenBusinessImpl.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business.impl;
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
 
 import com.alibaba.fastjson.JSON;
 import com.dragoninfo.dcuc.app.entity.ApplyInfo;
@@ -10,9 +10,10 @@ import com.dragoninfo.dcuc.auth.api.vo.ResultRespVO;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
 import com.dragoninfo.dcuc.auth.audit.dto.TokenOperationDto;
 import com.dragoninfo.dcuc.auth.audit.service.log.QmAuditPushService;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
 import com.dragoninfo.dcuc.auth.business.ICacheBusiness;
 import com.dragoninfo.dcuc.auth.config.DcucAuthConfig;
+import com.dragoninfo.dcuc.auth.config.zerotrust.DcucAuthZerotrustConfig;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthUserInfoService;
 import com.dragoninfo.dcuc.auth.sub.vo.ApplyInfoVo;
@@ -50,7 +51,7 @@ public class AuthTokenBusinessImpl implements IAuthTokenBusiness {
 
     private RestTemplate restTemplate;
 
-    private DcucAuthConfig dcucAuthConfig;
+    private DcucAuthZerotrustConfig zerotrustConfig;
 
     private IApplyInfoFacade applyInfoFacade;
 
@@ -78,8 +79,8 @@ public class AuthTokenBusinessImpl implements IAuthTokenBusiness {
     }
 
     @Autowired
-    public void setDcucAuthConfig(DcucAuthConfig dcucAuthConfig) {
-        this.dcucAuthConfig = dcucAuthConfig;
+    public void setZerotrustConfig(DcucAuthZerotrustConfig zerotrustConfig) {
+        this.zerotrustConfig = zerotrustConfig;
     }
 
     @Autowired
@@ -105,7 +106,7 @@ public class AuthTokenBusinessImpl implements IAuthTokenBusiness {
         }
 
         // 查询用户令牌
-        String tokenQueryUrl = dcucAuthConfig.getUserTokenQueryUrl();
+        String tokenQueryUrl = zerotrustConfig.getUserTokenQueryUrl();
         Map<String, String> param = new HashMap<>();
         param.put("userTokenId", userTokenId);
 
@@ -125,7 +126,7 @@ public class AuthTokenBusinessImpl implements IAuthTokenBusiness {
             return appToken;
         }
         // 获取应用令牌
-        String tokenQueryUrl = dcucAuthConfig.getAppTokenQueryUrl();
+        String tokenQueryUrl = zerotrustConfig.getAppTokenQueryUrl();
         Map<String, String> param = new HashMap<>();
         param.put("appTokenId", appTokenId);
 
@@ -234,7 +235,7 @@ public class AuthTokenBusinessImpl implements IAuthTokenBusiness {
         if (StringUtils.isBlank(pid)) {
             return null;
         }
-        String url = dcucAuthConfig.getUserInfoQueryUrl();
+        String url = zerotrustConfig.getUserInfoQueryUrl();
         TokenUserInfoReqVo userReqVo = new TokenUserInfoReqVo();
         userReqVo.setIdcard(pid);
         HttpEntity<TokenUserInfoReqVo> entity = new HttpEntity<>(userReqVo);

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

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business.impl;
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
 
 import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;

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

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business.impl;
+package com.dragoninfo.dcuc.auth.business.impl.zerotrust;
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.dragoninfo.dcuc.auth.api.enums.securitypolicy.AuthTypeEnum;
 import com.dragoninfo.dcuc.auth.api.enums.zerotrust.ZeroTrustBusinessRespEnum;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
-import com.dragoninfo.dcuc.auth.business.IRiskOrderBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IRiskOrderBusiness;
 import com.dragoninfo.dcuc.auth.constance.AuthRedisConstant;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthUserInfoService;

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IApiCommonBusiness.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApiCommonBusiness.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business;
+package com.dragoninfo.dcuc.auth.business.zerotrust;
 
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustSignReqVO;

+ 61 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApprovalBusiness.java

@@ -0,0 +1,61 @@
+package com.dragoninfo.dcuc.auth.business.zerotrust;
+
+import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowApplyReqDto;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowApplyRespDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowDetailRespDTO;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.FlowSubmitRespDTO;
+import com.dragoninfo.dcuc.auth.auth.vo.zerotrust.approval.ApprovalCallBackReqVO;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+
+/**
+ * 调用审批中心业务类
+ *
+ * @author mazq
+ * @date 2023/4/4
+ */
+public interface IApprovalBusiness {
+
+    /**
+     * 审批流程申请
+     *
+     * @param applyDto    审批工单dto
+     * @param businessKey 业务表示id
+     * @return 流程申请结果
+     */
+    ResponseDTO<FlowApplyRespDTO> approvalFlowApply(FlowApplyReqDto applyDto, String businessKey);
+
+    /**
+     * 开启流程并提交第一个节点
+     *
+     * @param applyDto    开启流程请求
+     * @param businessKey 业务ID
+     * @return 状态
+     */
+    ResponseDTO<FlowSubmitRespDTO> approvalFlowApplyAndSubmitFirst(FlowApplyReqDto applyDto, String businessKey);
+
+    /**
+     * 撤销流程
+     *
+     * @param processInstId 流程实例ID
+     * @return 状态
+     */
+    ResponseStatus approvalFlowCancel(String processInstId);
+
+    /**
+     * 流程详情查询
+     *
+     * @param processInstId
+     * @return
+     */
+    ResponseDTO<FlowDetailRespDTO> flowDetail(String processInstId);
+
+    /**
+     * 安盟审批回调
+     *
+     * @param approvalCallBackReqVO 安盟审批回调请求
+     * @return 状态
+     */
+    ZeroTrustMessageRespVO approvalCallBack(ApprovalCallBackReqVO approvalCallBackReqVO);
+}

+ 10 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IApproveRemoteCallBusiness.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IApproveRemoteCallBusiness.java

@@ -1,6 +1,7 @@
-package com.dragoninfo.dcuc.auth.business;
+package com.dragoninfo.dcuc.auth.business.zerotrust;
 
-import com.dragoninfo.dcuc.auth.sub.dto.tasktype.TaskInfoDetailResp;
+import com.dragoninfo.dcuc.auth.auth.dto.zerotrust.approval.*;
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.TaskInfoDetailResp;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 
@@ -31,4 +32,11 @@ public interface IApproveRemoteCallBusiness {
     ResponseDTO<TaskInfoDetailResp> getTaskInfoDetail(String appTokenId, String taskId);
 
 
+    ResponseDTO<FlowApplyRespDTO> flowApply(FlowApplyReqDto flowApplyReqDto);
+
+    ResponseDTO<FlowSubmitRespDTO> flowSubmit(FlowSubmitReqDTO flowSubmitReqDTO);
+
+    ResponseStatus flowManage(FlowOperateManageReqDto flowOperateManageReqDto);
+
+    ResponseDTO<FlowDetailRespDTO> flowDetail(String appTokenId, String processInstId);
 }

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IAuthTokenBusiness.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IAuthTokenBusiness.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business;
+package com.dragoninfo.dcuc.auth.business.zerotrust;
 
 import com.dragoninfo.dcuc.auth.api.vo.securitypolicy.req.AuthRiskOrderReqVo;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/IRiskOrderBusiness.java → dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/business/zerotrust/IRiskOrderBusiness.java

@@ -1,4 +1,4 @@
-package com.dragoninfo.dcuc.auth.business;
+package com.dragoninfo.dcuc.auth.business.zerotrust;
 
 import com.dragoninfo.dcuc.auth.api.enums.securitypolicy.AuthTypeEnum;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;

+ 0 - 31
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/DcucAuthConfig.java

@@ -102,35 +102,4 @@ public class DcucAuthConfig {
      * 新标准通知应用路径
      */
     private List<String> notifyAppUrlList;
-
-    /**
-     * 用户令牌查询接口
-     */
-    private String userTokenQueryUrl;
-
-    /**
-     * 应用令牌查询接口
-     */
-    private String appTokenQueryUrl;
-
-    /**
-     * 根据pid查询人员信息接口
-     */
-    private String userInfoQueryUrl;
-
-    /**
-     * 国密类型
-     */
-    private SmTypeEunm smTypeEnum = SmTypeEunm.Local;
-
-    /**
-     * 调用api接口时是否校验签名
-     */
-    private Boolean checkCallerSign;
-
-    /**
-     * 调用api接口时,校验签名时间字段波动范围
-     */
-    private Integer timeStampCheckSeconds;
-
 }

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

@@ -2,22 +2,17 @@ package com.dragoninfo.dcuc.auth.config.zerotrust;
 
 import lombok.Data;
 import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
 
 /**
  * @author mazq
  * @date 2023/4/6
  */
 @Data
+@Configuration
 @ConfigurationProperties(prefix = "dcuc.auth.zerotrust.approval")
 public class ApprovalProperties {
 
-    /**
-     * 类型
-     * xz-my 西藏美亚
-     * gdst-am 广东ST安盟
-     */
-    private String type;
-
     /**
      * 基础接口地址
      */
@@ -28,16 +23,6 @@ public class ApprovalProperties {
      */
     private String callBackUrl;
 
-    /**
-     * 角色授权流程定义id
-     */
-    private String roleAuthDefId;
-
-    /**
-     * 数据授权流程定义id
-     */
-    private String dataAuthDefId;
-
     /**
      * 角色新增、修改、删除流程定义id
      */

+ 52 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/DcucAuthZerotrustConfig.java

@@ -0,0 +1,52 @@
+package com.dragoninfo.dcuc.auth.config.zerotrust;
+
+import com.dragonsoft.smtools.enums.SmTypeEunm;
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author fuzq
+ * @date 2019/3/13
+ */
+@Data
+@ConfigurationProperties(prefix = "dcuc.auth.zerotrust")
+@Component
+public class DcucAuthZerotrustConfig {
+
+    /**
+     * 用户令牌查询接口
+     */
+    private String userTokenQueryUrl;
+
+    /**
+     * 应用令牌查询接口
+     */
+    private String appTokenQueryUrl;
+
+    /**
+     * 根据pid查询人员信息接口
+     */
+    private String userInfoQueryUrl;
+
+    /**
+     * 国密类型
+     */
+    private SmTypeEunm smTypeEnum = SmTypeEunm.Local;
+
+    /**
+     * 鉴权接口是否检查taskId的正确性
+     */
+    private Boolean checkAuthApiRealTaskId = false;
+
+    /**
+     * 接口签名校验,时间误差范围,单位秒,默认30分钟
+     */
+    private Integer timeStampCheckSeconds = 30 * 60;
+
+    /**
+     * 是否检查调用令牌签名值
+     */
+    private Boolean checkCallerSign = true;
+
+}

+ 2 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/config/zerotrust/SMFactorConfig.java

@@ -18,12 +18,12 @@ import java.lang.reflect.InvocationTargetException;
 public class SMFactorConfig {
 
     @Autowired
-    private DcucAuthConfig dcucAuthConfig;
+    private DcucAuthZerotrustConfig zerotrustConfig;
 
     @Bean
     public SMFactory smFactory() {
         try {
-            return SMFactory.init(dcucAuthConfig.getSmTypeEnum());
+            return SMFactory.init(zerotrustConfig.getSmTypeEnum());
         } catch (ClassNotFoundException | InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException e) {
             log.error("国密初始化错误", e);
         }

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

@@ -54,4 +54,10 @@ public class AuthRedisConstant {
      * 风险指令应用级权限命名空间
      */
     public static final String REDIS_RISK_ORDER_APP_NAMESPACE = REDIS_RISK_ORDER_NAMESPACE + "APP:";
+
+    /**
+     * 审批推送,任务id redis前缀
+     */
+    public static final String APPROVAL_TASK_ID_PREFIX = REDIS_AUTH_NAMESPACE + "APPROVAL_TASK_ID:";
+
 }

+ 2 - 3
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/securitypolicy/ApiSecurityPolicyFacade.java

@@ -2,9 +2,8 @@ package com.dragoninfo.dcuc.auth.securitypolicy;
 
 import com.dragoninfo.dcuc.auth.api.vo.securitypolicy.req.AuthRiskOrderReqVo;
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
-import com.dragoninfo.dcuc.auth.business.IApiCommonBusiness;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
-import com.dragoninfo.dcuc.auth.business.IRiskOrderBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApiCommonBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IRiskOrderBusiness;
 import com.dragoninfo.dcuc.auth.securitypolicy.facade.IApiSecurityPolicyFacade;
 import com.dragonsoft.duceap.commons.util.json.JsonUtils;
 import lombok.extern.slf4j.Slf4j;

+ 3 - 3
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/business/impl/AuthSubTaskTypeBusinessImpl.java

@@ -1,13 +1,13 @@
 package com.dragoninfo.dcuc.auth.sub.business.impl;
 
-import com.dragoninfo.dcuc.auth.constance.Constant;
 import com.dragoninfo.dcuc.auth.sub.business.IAuthSubTaskTypeBusiness;
-import com.dragoninfo.dcuc.auth.sub.dto.tasktype.ExcelImpTaskType;
+import com.dragoninfo.dcuc.auth.sub.dto.zerotrust.tasktype.ExcelImpTaskType;
 import com.dragoninfo.dcuc.auth.sub.entity.AuthSubTaskType;
 import com.dragoninfo.dcuc.auth.sub.service.IAuthSubTaskTypeService;
 import com.dragoninfo.dcuc.auth.sub.vo.tasktype.AuthSubTaskTypeVo;
 import com.dragoninfo.dcuc.auth.sub.vo.tasktype.TaskTypeTreeVo;
 import com.dragoninfo.dcuc.auth.util.ImportUtil;
+import com.dragoninfo.dcuc.common.Constants;
 import com.dragoninfo.dcuc.common.utils.DcucBeanUtil;
 import com.dragoninfo.dcuc.duceap.facade.IDuceapUploadFacade;
 import com.dragoninfo.dcuc.duceap.upload.dto.DocContentDTO;
@@ -99,7 +99,7 @@ public class AuthSubTaskTypeBusinessImpl implements IAuthSubTaskTypeBusiness {
         if (CollectionUtils.isNotEmpty(existCodes)) {
             String collect = existCodes.stream()
                     .map(AuthSubTaskType::getTaskTypeCode)
-                    .collect(Collectors.joining(Constant.CHINESE_COMMA));
+                    .collect(Collectors.joining(Constants.CHINESE_COMMA));
             throw new NumberFormatException("任务类型编码:【" + collect + "】已存在数据库");
         }
 

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/sub/facade/AuthSubTaskTypeFacade.java

@@ -1,6 +1,6 @@
 package com.dragoninfo.dcuc.auth.sub.facade;
 
-import com.dragoninfo.dcuc.auth.business.IApproveRemoteCallBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IApproveRemoteCallBusiness;
 import com.dragoninfo.dcuc.auth.sub.business.IAuthSubTaskTypeBusiness;
 import com.dragoninfo.dcuc.auth.sub.vo.tasktype.AuthSubTaskTypeVo;
 import com.dragoninfo.dcuc.auth.sub.vo.tasktype.TaskTypeTreeVo;

+ 1 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/token/facade/AuthTokenFacade.java

@@ -1,7 +1,7 @@
 package com.dragoninfo.dcuc.auth.token.facade;
 
 import com.dragoninfo.dcuc.auth.api.vo.zerotrust.ZeroTrustMessageRespVO;
-import com.dragoninfo.dcuc.auth.business.IAuthTokenBusiness;
+import com.dragoninfo.dcuc.auth.business.zerotrust.IAuthTokenBusiness;
 import com.dragoninfo.dcuc.auth.token.vo.TokenReceiveVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;

+ 15 - 9
dcuc-auth-service/src/main/resources/application-auth.yml

@@ -1,14 +1,20 @@
 dcuc:
   auth:
-    syslog:
-      host: 127.0.0.1
-      port: 514
-      facility: LOCAL0
-    security-policy:
-      type: rzy
-    user-token-query-url:
-    app-token-query-url:
-    user-info-query-url:
+    zerotrust:
+      syslog:
+        host: 127.0.0.1
+        port: 514
+        facility: LOCAL0
+      security-policy:
+        type: rzy
+      user-token-query-url:
+      app-token-query-url:
+      user-info-query-url:
+      approval:
+        base-url:
+        call-back-url:
+        role-operate-def-id:
+        role-manage-task-type:
     app-code: QXXT0000000000000001
     menu-noclear: true
     #服务变更通知

+ 3 - 3
dcuc-auth-service/src/main/resources/logback.xml

@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
 
-    <springProperty scope="context" name="syslog_host" source="dcuc.auth.syslog.host"/>
-    <springProperty scope="context" name="syslog_port" source="dcuc.auth.syslog.port"/>
-    <springProperty scope="context" name="syslog_facility" source="dcuc.auth.syslog.facility"/>
+    <springProperty scope="context" name="syslog_host" source="dcuc.auth.zerotrust.syslog.host"/>
+    <springProperty scope="context" name="syslog_port" source="dcuc.auth.zerotrust.syslog.port"/>
+    <springProperty scope="context" name="syslog_facility" source="dcuc.auth.zerotrust.syslog.facility"/>
 
     <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
         <encoder>