浏览代码

Merge branch 'develop' into 'release/v2.3.0'

Develop

See merge request dcuc-tjdsj/auth-back!61
黄资权 4 年之前
父节点
当前提交
16a01ad671
共有 50 个文件被更改,包括 2005 次插入118 次删除
  1. 5 11
      pom.xml
  2. 1 1
      src/main/java/com/dragoninfo/dcuc/authweb/DcucAuthWebApplication.java
  3. 1 0
      src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java
  4. 11 5
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/AppController.java
  5. 19 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/AppVo.java
  6. 7 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/ResourceRequestParam.java
  7. 1 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/ServiceResourceBaseVo.java
  8. 57 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/AuthenticationLogController.java
  9. 48 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/AuthorizeLogController.java
  10. 47 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/RiskLogController.java
  11. 60 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/RiskProgrammeController.java
  12. 47 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/WarningLogController.java
  13. 60 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/WarningProgrammeController.java
  14. 67 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/AppFunInfoController.java
  15. 0 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/DataAuthController.java
  16. 1 2
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/FunEventController.java
  17. 62 8
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/ServiceResourceController.java
  18. 0 76
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/vo/AppFunInfoVo.java
  19. 75 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/vo/AuthOrgInfoVo.java
  20. 63 2
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/download/DownloadController.java
  21. 2 2
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/statisics/UserStatisicsController.java
  22. 10 1
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/statisics/vo/OrgTreeNodeVo.java
  23. 146 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AttrController.java
  24. 98 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AuthOrgInfoController.java
  25. 49 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AuthUserInfoController.java
  26. 117 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataClassifyController.java
  27. 92 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataLevelController.java
  28. 93 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataSecurityLevelController.java
  29. 117 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/FieldClassifyController.java
  30. 132 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubImportController.java
  31. 129 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubSyncController.java
  32. 46 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrInfoTreeVo.java
  33. 29 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrRelAcceptVo.java
  34. 35 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/RelSearchVo.java
  35. 54 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataClaAcceptVo.java
  36. 56 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataClaVo.java
  37. 26 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataLevelVo.java
  38. 26 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataSecVo.java
  39. 36 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/FieldClaAcceptVo.java
  40. 41 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/FieldClaVo.java
  41. 31 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/org/TreeReqVo.java
  42. 3 0
      src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/user/manager/utils/ImpExcelUtils.java
  43. 5 5
      src/main/resources/application-base.yml
  44. 二进制
      src/main/resources/template/OrgTemplate.xls
  45. 二进制
      src/main/resources/template/UserTemplate.xls
  46. 二进制
      src/main/resources/template/appFunTemplate.xls
  47. 二进制
      src/main/resources/template/applyTemplate.xls
  48. 二进制
      src/main/resources/template/dataLevelTemplate.xls
  49. 二进制
      src/main/resources/template/dataSecTemplate.xls
  50. 二进制
      src/main/resources/template/serviceResourceTemplate.xls

+ 5 - 11
pom.xml

@@ -39,10 +39,11 @@
             <artifactId>spring-boot-configuration-processor</artifactId>
             <optional>true</optional>
         </dependency>
+
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-user-api</artifactId>
-            <version>2.0.3-tjdsj-SNAPSHOT</version>
+            <version>2.1.0-tjdsj-SNAPSHOT</version>
         </dependency>
         <!--监控配置-->
         <dependency>
@@ -112,7 +113,7 @@
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-auth-api</artifactId>
-            <version>2.2.1-tjdsj-SNAPSHOT</version>
+            <version>2.2.2-tjdsj-SNAPSHOT</version>
         </dependency>
         <!--redis缓存-->
         <dependency>
@@ -129,7 +130,7 @@
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-app-api</artifactId>
-            <version>2.1.2-tjdsj-SNAPSHOT</version>
+            <version>2.1.3-tjdsj-SNAPSHOT</version>
         </dependency>
 
         <dependency>
@@ -147,7 +148,7 @@
         <dependency>
             <groupId>com.dragoninfo</groupId>
             <artifactId>dcuc-duceap-api</artifactId>
-            <version>2.0.0-SNAPSHOT</version>
+            <version>2.1.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -404,13 +405,6 @@
                             <target>8</target>
                         </configuration>
                     </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <configuration>
-                            <testFailureIgnore>true</testFailureIgnore>
-                        </configuration>
-                    </plugin>
                 </plugins>
             </build>
         </profile>

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/DcucAuthWebApplication.java

@@ -21,4 +21,4 @@ public class DcucAuthWebApplication extends SpringBootServletInitializer {
         SpringApplication.run(DcucAuthWebApplication.class, args);
     }
 
-}
+}

+ 1 - 0
src/main/java/com/dragoninfo/dcuc/authweb/interceptor/SecurityAccessTokenResolver.java

@@ -89,6 +89,7 @@ public class SecurityAccessTokenResolver implements ISecurityAccessTokenResolver
 
         BimUserInfoItemRespVO userInfoItemRespVO = bimBusinessFacade.getUserInfoByUserToken(userToken);
         String sfzh = userInfoItemRespVO.getSfzh();
+//        String sfzh = "000000000000000001";
 
         UserInfo userInfo = userFacade.detailBySfzh(sfzh);
         log.info("idcard:{}, userInfo :{}", sfzh, JsonUtils.toJSONString(userInfo));

+ 11 - 5
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/AppController.java

@@ -25,6 +25,7 @@ import com.dragoninfo.duceap.core.response.Result;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.base.entity.security.SecurityUser;
+import com.dragonsoft.duceap.base.enums.BooleanEnum;
 import com.dragonsoft.duceap.base.exception.ApplicationException;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.commons.util.tree.SimpleTreeNodeItemResolver;
@@ -32,10 +33,7 @@ import com.dragonsoft.duceap.commons.util.tree.TreeNodeUtils;
 import com.dragonsoft.duceap.core.context.ContextUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.enums.SearchOperator;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
@@ -68,8 +66,16 @@ public class AppController {
     @Autowired
     private IApplicationInfoFacade applicationInfoFacade;
 
+    @ApiOperation(value = "查询所有应用列表")
+    @ApiImplicitParam(name = "applyStatus", value = "applyStatus:应用在用标识(0:启用 1:禁用)")
+    @GetMapping("allApps")
+    public Result<List<ApplyInfo>> allApps(@RequestParam(value = "applyStatus",required = false) String applyStatus){
+        List<ApplyInfo> applyList = applyInfoFacade.findList(applyStatus);
+        return Result.success(applyList);
+    }
+
     @ApiOperation(value = "查询应用列表")
-    @ApiImplicitParam(name = "searchable", value = "查询条件")
+    @ApiImplicitParam(name = "searchable", value = "查询条件(applyName:应用名称,like;managerOrgCode:应用系统事权单位代码,like;applyStatus:应用在用标识(0:启用 1:禁用);=;)")
     @PostMapping(value = "apps")
     public Result<List<ApplyInfo>> applyPage(Searchable searchable) {
         UserInfo userInfo = userInfoFacade.userDetail(ContextUtils.getUserInfo().getId());

+ 19 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/AppVo.java

@@ -48,9 +48,18 @@ public class AppVo {
     @ApiModelProperty(value = "应用厂商")
     private String manufacturerName;
 
-    @ApiModelProperty(value = "应用状态")
+    @ApiModelProperty(value = "应用状态 0:启用 1:禁用")
     private String applyStatus;
 
+    @ApiModelProperty(value = "应用系统事权单位代码")
+    private String managerOrgCode;
+
+    @ApiModelProperty(value = "管理单位id")
+    private String managerOrgId;
+
+    @ApiModelProperty(value = "管理单位名称")
+    private String managerOrgName;
+
     @ApiModelProperty(value = "应用管理员")
     private String managerName;
 
@@ -87,4 +96,13 @@ public class AppVo {
     @ApiModelProperty(value = "附件")
     private List<FileHolder> file;
 
+    @ApiModelProperty(value = "应用系统运维单位名称")
+    private String appOpsDepName;
+
+    @ApiModelProperty(value = "应用英文名称")
+    private String appEnglishName;
+
+    @ApiModelProperty(value = "上线日期")
+    private String lineTime;
+
 }

+ 7 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/ResourceRequestParam.java

@@ -19,7 +19,13 @@ public class ResourceRequestParam {
      * 是否获取全量应用和服务资源数据
      */
     @ApiModelProperty(value = "是否获取全量应用和服务资源数据")
-    private boolean listingAll;
+    private Boolean listingAll;
+
+    /**
+     * 获取菜单资源是否同步获取 false 异步获取  true 同步获取  可为空,空默认false
+     */
+    @ApiModelProperty(value = "获取菜单资源是否同步获取 false 异步获取  true 同步获取  可为空,空默认false")
+    private Boolean menuSync;
 
     /**
      * 不全量获取时,获取资源数据参数封装集合

+ 1 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/ServiceResourceVo.java → src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/app/vo/ServiceResourceBaseVo.java

@@ -12,7 +12,7 @@ import lombok.Data;
  */
 @Data
 @ApiModel(value = "服务资源Vo")
-public class ServiceResourceVo extends ResourceVo {
+public class ServiceResourceBaseVo extends ResourceVo {
 
     /**
      * 服务在用状态

+ 57 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/AuthenticationLogController.java

@@ -0,0 +1,57 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.facade.IAuthenticationLogFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.AuthenticationLogVo;
+import com.dragoninfo.dcuc.auth.audit.vo.AuthenticationStatisticsVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"服务鉴权日志"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/authenticationLog")
+public class AuthenticationLogController {
+
+    public static Logger logger = LoggerFactory.getLogger(AuthenticationLogController.class);
+
+    @Autowired
+    private IAuthenticationLogFacade authenticationLogFacade;
+
+    @ApiOperation(value = "日志列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<AuthenticationLogVo>> paging(SearchDTO searchDTO) {
+        Page<AuthenticationLogVo> page = authenticationLogFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "日志详情")
+    @ApiImplicitParam(name = "id", value = "方案id")
+    @GetMapping(value = "/{id}")
+    public Result<AuthenticationLogVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(authenticationLogFacade.findOne(id));
+    }
+
+    @ApiOperation(value = "统计信息")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "statistics")
+    public Result<List<AuthenticationStatisticsVo>> statistics(SearchDTO searchDTO) {
+        return Result.success(authenticationLogFacade.statistics(searchDTO));
+    }
+
+
+}

+ 48 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/AuthorizeLogController.java

@@ -0,0 +1,48 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.facade.IAuthorizeLogFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.AuthorizeLogDetailVo;
+import com.dragoninfo.dcuc.auth.audit.vo.AuthorizeLogVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"服务授权日志"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/authorizeLog")
+public class AuthorizeLogController {
+
+    public static Logger logger = LoggerFactory.getLogger(AuthorizeLogController.class);
+
+    @Autowired
+    private IAuthorizeLogFacade authorizeLogFacade;
+
+    @ApiOperation(value = "日志列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<AuthorizeLogVo>> paging(SearchDTO searchDTO) {
+        Page<AuthorizeLogVo> page = authorizeLogFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "日志详情")
+    @ApiImplicitParam(name = "id", value = "方案id")
+    @GetMapping(value = "/{id}")
+    public Result<AuthorizeLogDetailVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(authorizeLogFacade.findOne(id));
+    }
+}

+ 47 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/RiskLogController.java

@@ -0,0 +1,47 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.facade.IRiskLogFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.RiskLogVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"鉴权风险日志"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/riskLog")
+public class RiskLogController {
+
+    public static Logger logger = LoggerFactory.getLogger(RiskLogController.class);
+
+    @Autowired
+    private IRiskLogFacade riskLogFacade;
+
+    @ApiOperation(value = "日志列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<RiskLogVo>> paging(SearchDTO searchDTO) {
+        Page<RiskLogVo> page = riskLogFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "日志详情")
+    @ApiImplicitParam(name = "id", value = "方案id")
+    @GetMapping(value = "/{id}")
+    public Result<RiskLogVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(riskLogFacade.findOne(id));
+    }
+}

+ 60 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/RiskProgrammeController.java

@@ -0,0 +1,60 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.dto.RiskProgrammeDto;
+import com.dragoninfo.dcuc.auth.audit.facade.IRiskProgrammeFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.RiskProgrammeVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"鉴权风险方案"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/riskProgramme")
+public class RiskProgrammeController {
+
+    public static Logger logger = LoggerFactory.getLogger(RiskProgrammeController.class);
+
+    @Autowired
+    private IRiskProgrammeFacade riskProgrammeFacade;
+
+    @ApiOperation(value = "方案列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<RiskProgrammeVo>> paging(SearchDTO searchDTO) {
+        Page<RiskProgrammeVo> page = riskProgrammeFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "方案详情")
+    @ApiImplicitParam(name = "id", value = "方案id")
+    @GetMapping(value = "/{id}")
+    public Result<RiskProgrammeVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(riskProgrammeFacade.findOne(id));
+    }
+
+    @ApiOperation(value = "保存方案")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "方案id"),
+            @ApiImplicitParam(name = "riskProgrammeDto", value = "方案内容"),
+    })
+    @PutMapping(value = "/{id}")
+    public Result save(@PathVariable(value = "id") Long id, @Valid @RequestBody RiskProgrammeDto riskProgrammeDto) {
+        riskProgrammeFacade.save(id, riskProgrammeDto);
+        return Result.success("成功");
+    }
+}

+ 47 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/WarningLogController.java

@@ -0,0 +1,47 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.facade.IWarningLogFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.WarningLogVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"鉴权预警日志"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/warningLog")
+public class WarningLogController {
+
+    public static Logger logger = LoggerFactory.getLogger(WarningLogController.class);
+
+    @Autowired
+    private IWarningLogFacade warningLogFacade;
+
+    @ApiOperation(value = "日志列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<WarningLogVo>> paging(SearchDTO searchDTO) {
+        Page<WarningLogVo> page = warningLogFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "日志详情")
+    @ApiImplicitParam(name = "id", value = "日志id")
+    @GetMapping(value = "/{id}")
+    public Result<WarningLogVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(warningLogFacade.findOne(id));
+    }
+}

+ 60 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/audit/v2/WarningProgrammeController.java

@@ -0,0 +1,60 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.audit.v2;
+
+import com.dragoninfo.dcuc.auth.audit.dto.WarningProgrammeDto;
+import com.dragoninfo.dcuc.auth.audit.facade.IWarningProgrammeFacade;
+import com.dragoninfo.dcuc.auth.audit.vo.WarningProgrammeVo;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @Author: qiuyu
+ * @Date: 2021/5/25 14:31
+ * @Description:
+ */
+@Api(tags = {"鉴权预警方案"})
+@RestController
+@RequestMapping(value = "auditsvr/v2/warningProgramme")
+public class WarningProgrammeController {
+
+    public static Logger logger = LoggerFactory.getLogger(WarningProgrammeController.class);
+
+    @Autowired
+    private IWarningProgrammeFacade warningProgrammeFacade;
+
+    @ApiOperation(value = "方案列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    @PostMapping(value = "_search")
+    public Result<List<WarningProgrammeVo>> paging(SearchDTO searchDTO) {
+        Page<WarningProgrammeVo> page = warningProgrammeFacade.paging(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "方案详情")
+    @ApiImplicitParam(name = "id", value = "方案id")
+    @GetMapping(value = "/{id}")
+    public Result<WarningProgrammeVo> findOne(@PathVariable(value = "id") Long id) {
+        return Result.success(warningProgrammeFacade.findOne(id));
+    }
+
+    @ApiOperation(value = "保存方案")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "方案id"),
+            @ApiImplicitParam(name = "warningProgrammeDto", value = "方案内容"),
+    })
+    @PutMapping(value = "/{id}")
+    public Result save(@PathVariable Long id, @Valid @RequestBody WarningProgrammeDto warningProgrammeDto) {
+        warningProgrammeFacade.save(id, warningProgrammeDto);
+        return Result.success("成功");
+    }
+}

+ 67 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/AppFunInfoController.java

@@ -1,16 +1,22 @@
 
 package com.dragoninfo.dcuc.authweb.restcontroller.auth;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.dragoninfo.dcuc.app.entity.ApplyInfo;
 import com.dragoninfo.dcuc.auth.auth.entity.AppFunInfo;
+import com.dragoninfo.dcuc.auth.auth.vo.AppFunInfoVo;
 import com.dragoninfo.dcuc.auth.auth.vo.EventInfoVO;
 import com.dragoninfo.dcuc.auth.auth.vo.TreeInfoVO;
 import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
 import com.dragoninfo.dcuc.auth.power.facade.IFunEventFacade;
-import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppFunInfoVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.app.vo.AppVo;
 import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.commons.util.collections.CollectionUtils;
 import com.dragonsoft.duceap.commons.util.tree.SimpleTreeNodeItemResolver;
 import com.dragonsoft.duceap.commons.util.tree.TreeNodeUtils;
+import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.web.annotation.Permission;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -20,6 +26,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.ArrayList;
@@ -106,6 +114,64 @@ public class AppFunInfoController {
         return Result.success(maps);
     }
 
+
+
+
+    @ApiOperation(value = "查询功能资源列表")
+    @ApiImplicitParam(name = "searchable", value = "查询条件(name:功能名称,like;isActive:在用状态(0:停用 1:启用),=;)")
+    @PostMapping(value = "/search")
+    public Result<List<AppFunInfoVo>> appFunInfoPage(Searchable searchable) {
+        SearchDTO searchDTO = searchable.toSearchDTO();
+        Page<AppFunInfoVo> page = iAppFunInfoFacade.appFunInfoPage(searchDTO);
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+
+    @ApiOperation(value = "查询功能详情")
+    @ApiImplicitParam(name = "id", value = "id")
+    @GetMapping(value = "/{id}")
+    public Result<AppFunInfoVo> toDetail(@PathVariable("id") String id) {
+        //查询查询功能详情
+        AppFunInfoVo appFunInfoVo = iAppFunInfoFacade.getById(id);
+        return Result.success(appFunInfoVo);
+    }
+
+
+    @ApiOperation(value = "功能资源新增")
+    @ApiImplicitParam(name = "功能资源新增", value = "功能资源新增")
+    @PostMapping(value = "/save")
+    public Result saveAppFunInfo(@Validated @RequestBody  AppFunInfoVo appFunInfoVo) {
+        AppFunInfo appFunInfo = new AppFunInfo();
+        BeanUtils.copyProperties(appFunInfoVo, appFunInfo);
+        ResponseStatus responseStatus = iAppFunInfoFacade.save(appFunInfo);
+        if (!responseStatus.getStatusCode().equals("200")){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @ApiOperation(value = "功能资源修改")
+    @ApiImplicitParam(name = "功能资源修改", value = "功能资源修改")
+    @PutMapping(value = "/update")
+    public Result updateAppFunInfo(@Validated @RequestBody  AppFunInfoVo appFunInfoVo) {
+        ResponseStatus responseStatus = iAppFunInfoFacade.updateAppFunInfo(appFunInfoVo);
+        if (!responseStatus.getStatusCode().equals("200")){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @ApiOperation(value = "功能资源删除")
+    @ApiImplicitParam(name = "功能资源删除", value = "功能资源删除")
+    @DeleteMapping(value = "/{id}")
+    public Result deleteAppFunInfo(@PathVariable("id") String id) {
+        ResponseStatus responseStatus = iAppFunInfoFacade.deleteById(id);
+        if (!responseStatus.getStatusCode().equals("200")){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
     public List<TreeInfoVO> getChildTreeObjects(List<TreeInfoVO> list,
                                                 String parentCode) {
         List<TreeInfoVO> returnList = new ArrayList<TreeInfoVO>();

+ 0 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/DataAuthController.java

@@ -20,7 +20,6 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;

+ 1 - 2
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/FunEventController.java

@@ -4,13 +4,12 @@ import com.dragoninfo.dcuc.auth.auth.entity.AppFunInfo;
 import com.dragoninfo.dcuc.auth.auth.entity.FunEvent;
 import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
 import com.dragoninfo.dcuc.auth.power.facade.IFunEventFacade;
-import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.AppFunInfoVo;
+import com.dragoninfo.dcuc.auth.auth.vo.AppFunInfoVo;
 import com.dragoninfo.dcuc.authweb.restcontroller.auth.vo.FunEventVo;
 import com.dragoninfo.duceap.core.response.Result;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
-import com.dragonsoft.duceap.commons.util.UUIDUtils;
 import com.dragonsoft.duceap.commons.util.string.StringUtils;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.filter.Condition;

+ 62 - 8
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/ServiceResourceController.java

@@ -1,24 +1,29 @@
 package com.dragoninfo.dcuc.authweb.restcontroller.auth;
 
+import com.dragoninfo.dcuc.app.dto.ServiceResourceDTO;
 import com.dragoninfo.dcuc.app.entity.ServiceResource;
 import com.dragoninfo.dcuc.app.facade.IServiceResourceFacade;
-import com.dragoninfo.dcuc.authweb.restcontroller.app.vo.ServiceResourceVo;
+import com.dragoninfo.dcuc.app.vo.ServiceResourceVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.app.vo.ServiceResourceBaseVo;
 import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.dcuc.duceap.facade.IDuceapUploadFacade;
 import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
 import com.dragonsoft.duceap.core.search.Searchable;
 import com.dragonsoft.duceap.core.search.enums.SearchOperator;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -30,25 +35,74 @@ import java.util.List;
 @RestController
 @RequestMapping(value = "/authsvr/" + VersionUtils.VERSION_UID + "/resource/")
 public class ServiceResourceController {
+    public static Logger logger = LoggerFactory.getLogger(ServiceResourceController.class);
+
     @Autowired
     private IServiceResourceFacade serviceResourceFacade;
 
     @ApiOperation(value = "服务资源列表")
     @ApiImplicitParam(name = "serviceName", value = "查询条件")
     @PostMapping(value = "search/drop")
-    public Result droplist(@RequestBody ServiceResourceVo vo) {
+    public Result droplist(@RequestBody ServiceResourceBaseVo vo) {
         SearchDTO searchDTO = new SearchDTO();
         searchDTO.setSize("100");
         searchDTO.setPage("0");
         Searchable searchable = Searchable.toSearchable(searchDTO);
         searchable.addSearchFilter("serviceName", SearchOperator.like, vo.getServiceName());
         Page<ServiceResource> serviceResources = serviceResourceFacade.resourcePages(searchable.toSearchDTO());
-        List<ServiceResourceVo> list = new ArrayList<>();
+        List<ServiceResourceBaseVo> list = new ArrayList<>();
         serviceResources.getContent().forEach(item -> {
-            ServiceResourceVo resourceVo = new ServiceResourceVo();
+            ServiceResourceBaseVo resourceVo = new ServiceResourceBaseVo();
             BeanUtils.copyProperties(item, resourceVo);
             list.add(resourceVo);
         });
         return Result.success(list);
     }
+
+
+    @ApiOperation(value = "服务资源分页列表")
+    @ApiImplicitParam(name = "serviceName", value = "查询条件")
+    @PostMapping(value = "/search")
+    public Result page(Searchable searchable) {
+        Page<ServiceResourceVo> page = serviceResourceFacade.page(searchable.toSearchDTO());
+        return Result.success(page.getTotalElements(), page.getContent());
+    }
+
+    @ApiOperation(value = "服务资源新增")
+    @ApiImplicitParam(name = "服务资源新增", value = "服务资源新增")
+    @PostMapping(value = "/save")
+    public Result save(@Validated @RequestBody ServiceResourceDTO serviceResourceDTO) {
+        ResponseStatus responseStatus = serviceResourceFacade.save(serviceResourceDTO);
+        if (!responseStatus.getStatusCode().equals("200")){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @ApiOperation(value = "服务资源详情")
+    @ApiImplicitParam(name = "服务资源详情", value = "服务资源详情")
+    @GetMapping(value = "/{id}")
+    public Result detailById(@PathVariable(name = "id") String id) {
+        ServiceResourceVo  serviceResourceVo = serviceResourceFacade.detailById(id);
+        return Result.success(serviceResourceVo);
+    }
+
+    @ApiOperation(value = "服务资源修改")
+    @ApiImplicitParam(name = "服务资源修改", value = "服务资源修改")
+    @PutMapping(value = "update")
+    public Result update(@RequestBody ServiceResourceVo serviceResourceVo) {
+        serviceResourceFacade.updateServiceResource(serviceResourceVo);
+        return Result.success();
+    }
+
+    @ApiOperation(value = "服务资源删除")
+    @ApiImplicitParam(name = "服务资源删除", value = "服务资源删除")
+    @DeleteMapping(value = "/{id}")
+    public Result deleteById(@PathVariable(name = "id") String id) {
+        ResponseStatus  responseStatus = serviceResourceFacade.deleteById(id);
+        if (!responseStatus.getStatusCode().equals("200")){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
 }

+ 0 - 76
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/vo/AppFunInfoVo.java

@@ -1,76 +0,0 @@
-package com.dragoninfo.dcuc.authweb.restcontroller.auth.vo;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-
-@ApiModel(value = "应用功能资源Vo")
-@Data
-public class AppFunInfoVo {
-
-    @ApiModelProperty(value = "id")
-    private String id;
-
-    //功能名称
-    @ApiModelProperty(value = "功能名称",required = true)
-    private String name;
-
-    //功能代码
-    @ApiModelProperty(value = "功能代码",required = true)
-    private String code;
-
-    //应用ID
-    @ApiModelProperty(value = "应用ID",required = true)
-    private String appId;
-
-    //上级功能ID
-    @ApiModelProperty(value = "上级功能ID",required = true)
-    private String parentId;
-
-    //功能地URL
-    @ApiModelProperty(value = "功能地URL",required = true)
-    private String url;
-
-    //是否显示
-    @ApiModelProperty(value = "是否显示",required = true)
-    private String showMode;
-
-    //参数名称(多个以逗号分隔)
-    @ApiModelProperty(value = "参数名称(多个以逗号分隔)",required = true)
-    private String paramName;
-
-    //默认值
-    @ApiModelProperty(value = "默认值",required = true)
-    private String paramValue;
-
-    //有效标志(0:无效 1:有效)
-    @ApiModelProperty(value = "有效标志(0:无效 1:有效)",required = true)
-    private String isActive = "1";
-
-    //排序
-    @ApiModelProperty(value = "排序")
-    private Integer seq;
-
-    //创建时间
-    @ApiModelProperty(value = "创建时间")
-    @JsonFormat(pattern = "yyyyMMdd", timezone = "GMT+8")
-    private java.util.Date createTime;
-
-    //创建人
-    @ApiModelProperty(value = "创建人",required = true)
-    private String creator;
-
-    //修改时间
-    @ApiModelProperty(value = "修改时间")
-    @JsonFormat(pattern = "yyyyMMdd", timezone = "GMT+8")
-    private java.util.Date modifiedTime;
-
-    //修改人
-    @ApiModelProperty(value = "修改人",required = true)
-    private String modifier;
-
-    //备注
-    @ApiModelProperty(value = "备注")
-    private String remark;
-}

+ 75 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/auth/vo/AuthOrgInfoVo.java

@@ -0,0 +1,75 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.auth.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author wangrs
+ * @date 2021-05-07
+ */
+@ApiModel(value = "服务主体-机构信息")
+@Data
+public class AuthOrgInfoVo {
+    @ApiModelProperty(value = "id")
+    private String id;
+    /**
+     * 上级行政机构代码
+     */
+    @ApiModelProperty(value = "上级机构代码")
+    private String upGovCode;
+
+    /**
+     * 上级行政机构名称
+     */
+    @ApiModelProperty(value = "上级机构名称")
+    private String upGovName;
+
+    /**
+     * 机构代码
+     */
+    @ApiModelProperty(value = "机构代码")
+    private String orgCode;
+
+    /**
+     * 机构名称
+     */
+    @ApiModelProperty(value = "机构名称")
+    private String fullName;
+
+    /**
+     * 机构类型
+     */
+    @ApiModelProperty(value = "机构类型")
+    private String orgKind;
+
+    /**
+     * 行政区划
+     */
+    @ApiModelProperty(value = "行政区划")
+    private String areaCode;
+
+    /**
+     * 机构类别
+     */
+    @ApiModelProperty(value = "机构类别")
+    private String orgType;
+
+    /**
+     * 机构层级
+     */
+    @ApiModelProperty(value = "机构层级")
+    private String orgLevel;
+
+    /**
+     * 单位级别
+     */
+    @ApiModelProperty(value = "单位级别")
+    private String orgRank;
+
+    /**
+     * 单位类别
+     */
+    @ApiModelProperty(value = "单位类别")
+    private String unitClass;
+}

+ 63 - 2
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/download/DownloadController.java

@@ -57,12 +57,40 @@ public class DownloadController {
     public final String EXTERNALPERSONNEL_TEMPLATE_RLPATH = "/template/externalpersonnelTemplate.xls";
     public final String MANAGER_TEMPLATE_RLPATH = "/template/managerTemplate.xls";
     public final String GOVERNMENTPERSON_TEMPLATE_RLPATH = "/template/governmentpersonnelTemplate.xls";
+    public final String ORG_TEMPLATE_RLPATH = "/template/OrgTemplate.xls";
+    public final String USER_TEMPLATE_RLPATH = "/template/UserTemplate.xls";
+
+    /**
+     * 客体_服务资源模板
+     */
+    public final String SERVICE_RESOURCE_TEMPLATE_RLPATH = "/template/serviceResourceTemplate.xls";
+
+    /**
+     * 客体_功能资源模板
+     */
+    public final String APP_FUN_TEMPLATE_RLPATH = "/template/appFunTemplate.xls";
+    /**
+     * 主客体_应用资源模板
+     */
+    public final String APPLY_TEMPLATE_RLPATH = "/template/applyTemplate.xls";
+
+    /**
+     * 主客体_数据分级模板
+     */
+    public final String DATA_LEVEL_TEMPLATE_RLPATH = "/template/dataLevelTemplate.xls";
+
+    /**
+     * 主客体_数据安全级别模板
+     */
+    public final String DATA_SEC_TEMPLATE_RLPATH = "/template/dataSecTemplate.xls";
 
     private Logger logger = LoggerFactory.getLogger(DownloadController.class);
 
     @ApiOperation(value = "获取xls附件")
-    @ApiImplicitParam(name = "type", value = "附件类型:police 警员,auxiliaryPolice 辅警 " +
-            "externalPersonnel 外部人员 manager 管理员 govUser 政府人员 ", required = true)
+    @ApiImplicitParam(name = "type", value = "附件类型:police 警员,auxiliaryPolice 辅警, " +
+            "externalPersonnel 外部人员, manager 管理员, govUser 政府人员, serviceResource 服务资源,appFun 功能资源, apply  应用资源," +
+            "org 机构, user 人员 dataLevel 数据分级  dataSec 数据安全级别",
+            required = true)
     @GetMapping(value = "/downTemplate")
     public HttpServletResponse downTemplate(@RequestParam("type") String type,  HttpServletResponse response) {
         ApplicationHome home = new ApplicationHome(getClass());
@@ -78,6 +106,25 @@ public class DownloadController {
             response = down(response,MANAGER_TEMPLATE_RLPATH);
         } else if (StringUtils.equals(type, "govUser")) {
             response = down(response,  GOVERNMENTPERSON_TEMPLATE_RLPATH);
+        } else if (StringUtils.equals(type, "org")) {
+            response = down(response,  ORG_TEMPLATE_RLPATH);
+        } else if (StringUtils.equals(type, "user")) {
+            response = down(response,  USER_TEMPLATE_RLPATH);
+        }else if (StringUtils.equals(type, "serviceResource")){
+            //授权主客体管理_服务资源模板
+            response = down(response,  SERVICE_RESOURCE_TEMPLATE_RLPATH);
+        }else if (StringUtils.equals(type, "appFun")){
+            //授权主客体管理_功能资源模板
+            response = down(response,  APP_FUN_TEMPLATE_RLPATH);
+        }else if (StringUtils.equals(type, "apply")){
+            //授权主客体管理_应用资源模板
+            response = down(response,  APPLY_TEMPLATE_RLPATH);
+        }else if (StringUtils.equals(type, "dataLevel")){
+            //授权主客体管理_应用资源模板
+            response = down(response,  DATA_LEVEL_TEMPLATE_RLPATH);
+        }else if (StringUtils.equals(type, "dataSec")){
+            //授权主客体管理_应用资源模板
+            response = down(response,  DATA_SEC_TEMPLATE_RLPATH);
         }
         return response;
     }
@@ -105,6 +152,20 @@ public class DownloadController {
                 fileName = "管理员模板.xls";
             } else if ("governmentpersonnelTemplate.xls".equals( resource.getFilename())) {
                 fileName = "政府人员模板.xls";
+            } else if ("OrgTemplate.xls".equals( resource.getFilename())) {
+                fileName = "机构信息模板.xls";
+            } else if ("UserTemplate.xls".equals( resource.getFilename())) {
+                fileName = "人员信息模板.xls";
+            }else if ("serviceResourceTemplate.xls".equals( resource.getFilename())) {
+                fileName = "客体_服务资源导入.xls";
+            }else if ("appFunTemplate.xls".equals( resource.getFilename())) {
+                fileName = "客体_功能资源导入.xls";
+            }else if ("applyTemplate.xls".equals( resource.getFilename())) {
+                fileName = "主客体_应用资源导入.xls";
+            }else if ("dataLevelTemplate.xls".equals( resource.getFilename())) {
+                fileName = "主客体_数据分级导入.xls";
+            }else if ("dataSecTemplate.xls".equals( resource.getFilename())) {
+                fileName = "主客体_数据安全级别导入.xls";
             }
             response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
             response.addHeader("Content-Length", "" + resource.contentLength());

+ 2 - 2
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/statisics/UserStatisicsController.java

@@ -178,9 +178,9 @@ public class UserStatisicsController extends BaseController {
             orgTreeNodeVo.setAuxiliUserCount(orgTreeNode.getAuxiliaryNum());
             orgTreeNodeVo.setExtcerUserCount(orgTreeNode.getExternalNum());
             if (orgTreeNode.getChildIds() != null && orgTreeNode.getChildIds().size() > 0) {
-                orgTreeNodeVo.setParent(true);
+                orgTreeNodeVo.setIsParent(true);
             } else {
-                orgTreeNodeVo.setParent(false);
+                orgTreeNodeVo.setIsParent(false);
             }
             result.add(orgTreeNodeVo);
         }

+ 10 - 1
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/statisics/vo/OrgTreeNodeVo.java

@@ -1,8 +1,14 @@
 package com.dragoninfo.dcuc.authweb.restcontroller.statisics.vo;
 
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+/**
+ * @author mazq
+ * 树节点Vo
+ */
+@ApiModel
 @Data
 public class OrgTreeNodeVo {
     @ApiModelProperty(value = "主键id")
@@ -17,6 +23,9 @@ public class OrgTreeNodeVo {
     @ApiModelProperty(value = "上级id")
     String pid;
 
+    @ApiModelProperty(value = "路径")
+    String path;
+
     @ApiModelProperty(value = "机构数量")
     Integer orgNum;
 
@@ -33,7 +42,7 @@ public class OrgTreeNodeVo {
     Integer extcerUserCount;
 
     @ApiModelProperty(value = "是否是父节点")
-    boolean isParent;
+    Boolean isParent;
 
     @ApiModelProperty(value = "机构名称")
     String text;

+ 146 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AttrController.java

@@ -0,0 +1,146 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.TypeReference;
+import com.dragoninfo.dcuc.app.entity.ApplyInfo;
+import com.dragoninfo.dcuc.auth.sub.dto.AttrInfoTreeDTO;
+import com.dragoninfo.dcuc.auth.sub.dto.AttrRelAcceptDTO;
+import com.dragoninfo.dcuc.auth.sub.dto.RelSearchDTO;
+import com.dragoninfo.dcuc.auth.auth.enumresources.sub.AttrBelongTypeEnum;
+import com.dragoninfo.dcuc.auth.auth.enumresources.sub.AttrTypeEnum;
+import com.dragoninfo.dcuc.auth.sub.facade.IAttrFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr.AttrInfoTreeVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr.AttrRelAcceptVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.core.search.Searchable;
+import com.dragonsoft.duceap.core.search.filter.Condition;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 主客体属性管理controller
+ * @author mazq
+ * @date 2021/5/20
+ */
+@Slf4j
+@Api(tags = {"主客体授权-属性管理接口"})
+@RestController
+@RequestMapping(value = "/attrsvr/"+ VersionUtils.VERSION_UID)
+public class AttrController {
+
+
+    @Autowired
+    private IAttrFacade attrFacade;
+
+    @ApiOperation(value = "添加主客体属性")
+    @ApiImplicitParam(name = "AttrInfoTreeVo", value = "主客体属性Vo")
+    @PostMapping(value = "attrAdds")
+    public Result attrAdds(@RequestBody AttrInfoTreeVo vo){
+        String voStr = JSON.toJSONString(vo);
+        AttrInfoTreeDTO dto = JSON.parseObject(voStr, new TypeReference<AttrInfoTreeDTO>() {{
+        }});
+        BeanUtils.copyProperties(vo,dto);
+        ResponseStatus response = attrFacade.attrSave(dto);
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "根据id,删除本级下的所有主客体属性,包括本级")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "id", value = "本级id"),
+            @ApiImplicitParam(name = "attrType", value = "属性类别  SUB:主体属性 OBJ:客体属性"),
+            @ApiImplicitParam(name = "attrBelongType", value = "属性所属的主客体类别  USER:人员 ORG:机构 APP:应用 FUN:功能  SER:服务")
+    })
+    @GetMapping(value = "deleteAllById")
+    public Result deleteAllById(@RequestParam("id") String id,
+                                   @RequestParam("attrType") String attrType,
+                                   @RequestParam("attrBelongType") String attrBelongType) {
+        Boolean b = attrFacade.deleteAllById(id,attrBelongType,attrType);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+    @ApiOperation(value = "根据属性所属类别获取属性列表,返回树结构")
+    @ApiImplicitParam(name = "attrType", value = "属性类别  SUB:主体属性 OBJ:客体属性")
+    @GetMapping(value = "getAttrTreeList")
+    public Result getAttrTreeList(@RequestParam("attrType") String attrType) {
+         List<AttrInfoTreeDTO> list = attrFacade.getAttrTreeList(attrType);
+        String dtoStr = JSON.toJSONString(list);
+        List<AttrInfoTreeVo> voList = JSON.parseObject(dtoStr, new TypeReference<List<AttrInfoTreeVo>>() {{
+        }});
+        return Result.success(voList);
+    }
+
+    @ApiOperation(value = "属性关联主客体关系添加")
+    @ApiImplicitParam(name = "attrRelAcceptVo", value = "主客体-属性关联关系添加对象")
+    @PostMapping(value = "attrRelAdd")
+    public Result attrRelAdd(@RequestBody AttrRelAcceptVo vo) {
+        AttrRelAcceptDTO dto = new AttrRelAcceptDTO();
+        BeanUtils.copyProperties(vo,dto);
+        Boolean b = attrFacade.relAdd(dto);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+    @ApiOperation(value = "查询属性关联的id集合")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "attrId", value = "parentId属性父类id"),
+            @ApiImplicitParam(name = "attrType", value = "属性类别  SUB:主体属性 OBJ:客体属性"),
+            @ApiImplicitParam(name = "attrBelongType", value = "属性所属的主客体类别  USER:人员 ORG:机构 APP:应用 FUN:功能  SER:服务")
+    })
+    @GetMapping(value = "attrRelToIds")
+    public Result<List<String>> attrRelToIds(@RequestParam("attrId") String attrId,
+                                 @RequestParam("attrType") String attrType,
+                                 @RequestParam("attrBelongType") String attrBelongType) {
+       List<String> relIds = attrFacade.attrRelToIds(attrId, attrType, attrBelongType);
+       return Result.success(relIds);
+    }
+
+    @ApiOperation(value = "查询属性关联的应用列表")
+    @ApiImplicitParam(name = "RelSearchVo",
+            value = "searchable 应用列表查询条件[attrId: 属性id op: eq] [name: 应用名称 op:like][status: 在用状态 op: eq]")
+    @PostMapping(value = "relAppPage")
+    public Result relAppPage(Searchable searchable) {
+        RelSearchDTO dto = convertToRelSearch(searchable);
+        Page<ApplyInfo> page = attrFacade.relAppPage(dto);
+        return Result.success(page.getTotalElements(),page.getContent());
+    }
+
+    private RelSearchDTO convertToRelSearch(Searchable searchable) {
+        Condition nameCondition = searchable.getSearchFilterByKey("name_like");
+        Condition attrIdEq = searchable.getSearchFilterByKey("attrId_eq");
+        RelSearchDTO dto = new RelSearchDTO(attrIdEq.getValue().toString(),
+                AttrTypeEnum.OBJ.getCode(),
+                AttrBelongTypeEnum.APP.getCode());
+        if(null != nameCondition) {
+            dto.setName(nameCondition.getValue().toString());
+        }
+        Condition statusCondition = searchable.getSearchFilterByKey("status_eq");
+        if(null != statusCondition) {
+            dto.setStatus(statusCondition.getValue().toString());
+        }
+        dto.setPage(searchable.getPageNumber());
+        dto.setSize(searchable.getPageSize());
+        return dto;
+    }
+}

+ 98 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AuthOrgInfoController.java

@@ -0,0 +1,98 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.auth.sub.dto.OrgTreeNodeDTO;
+import com.dragoninfo.dcuc.auth.sub.entity.AuthOrgInfo;
+import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.statisics.vo.OrgTreeNodeVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.org.TreeReqVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.dcuc.org.vo.OrgTreeNode;
+import com.dragoninfo.dcuc.user.user.enumresources.YesNotEnum;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.search.SearchDTO;
+import com.dragonsoft.duceap.base.entity.security.SecurityUser;
+import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.commons.util.string.StringUtils;
+import com.dragonsoft.duceap.core.context.ContextUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @author wangrs
+ * @date 2021-04-27
+ */
+@Api(tags = {"授权管理-主客体管理-机构信息"})
+@RestController
+@RequestMapping(value = "/authsvr/"+ VersionUtils.VERSION_UID +"/authorginfo")
+public class AuthOrgInfoController {
+
+
+    @Autowired
+    private IAuthOrgInfoFacade orgInfoFacade;
+
+    @PostMapping("/page")
+    @ApiOperation(value = "服务主体-机构信息列表")
+    @ApiImplicitParam(name = "searchDTO", value = "查询条件")
+    public Page<AuthOrgInfo> page(SearchDTO searchDTO) {
+        Page<AuthOrgInfo> page = orgInfoFacade.page(searchDTO);
+        return page;
+    }
+
+    @GetMapping(value = "/detail/{id}")
+    @ApiImplicitParam(name = "id", value = "机构信息ID")
+    @ApiOperation(value = "服务主体-机构信息详情")
+    public AuthOrgInfo detail(@PathVariable(value = "id") String id){
+        return orgInfoFacade.get(id);
+    }
+
+    @DeleteMapping(value = "/delete/{id}")
+    @ApiImplicitParam(name = "id", value = "机构信息ID")
+    @ApiOperation(value = "服务主体-机构信息删除")
+    public ResponseStatus delete(@PathVariable(value = "id") String id) {
+        orgInfoFacade.deleteById(id);
+        return ResponseStatus.success();
+    }
+
+    /**
+     * 当前用户的管理范围机构树
+     *
+     * @param reqVo
+     * @return
+     */
+    @ApiOperation(value = "机构树")
+    @ApiImplicitParam(name = "reqVo", value = "reqVo:机构树查询对象")
+    @PostMapping(value = "org/tree/catalog")
+    public Result<List<OrgTreeNodeVo>> orgTreeFromDB(@RequestBody TreeReqVo reqVo) {
+        String id = reqVo.getId();
+        List<OrgTreeNodeDTO> treeNodes = orgInfoFacade.getChildById(id);
+        List<OrgTreeNodeVo> collect = treeNodes.stream().map(item -> {
+            OrgTreeNodeVo nodeVo = new OrgTreeNodeVo();
+            BeanUtils.copyProperties(item, nodeVo);
+            return nodeVo;
+        }).collect(Collectors.toList());
+        return Result.success(collect);
+    }
+
+
+    @ApiOperation(value = "机构树匹配")
+    @ApiImplicitParam(name = "reqVo", value = "reqVo:机构树查询对象")
+    @PostMapping(value = "org/tree/match")
+    public Result orgMatch(@RequestBody TreeReqVo reqVo) {
+        ResponseDTO responseDTO = orgInfoFacade.orgMatch(reqVo.getName(), reqVo.getPageNum(), reqVo.getPageSize());
+        return Result.success(StringUtils.getLong(responseDTO.getMessage()), responseDTO.getResult());
+    }
+
+
+}

+ 49 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/AuthUserInfoController.java

@@ -0,0 +1,49 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
+import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+
+@Api(tags = {"授权管理-主客体管理-用户信息"})
+@RestController
+@RequestMapping(value = "authsvr/v2/authuserinfo")
+public class AuthUserInfoController {
+
+
+    @Autowired
+    private IAuthUserInfoFacade userInfoFacade;
+
+    @RequestMapping("/page")
+    @ApiImplicitParam(name = "searchable",value = "查询条件")
+    @ApiOperation(value = "分页查询用户信息")
+    public Page<AuthUserInfo> page(Searchable searchable) {
+        return userInfoFacade.page(searchable.toSearchDTO());
+    }
+
+    @ApiOperation(value = "用户信息详情")
+    @ApiImplicitParam(name = "id", value = "id")
+    @GetMapping(value = "/detail/{id}")
+    public AuthUserInfo detail(@PathVariable(value = "id") String id){
+        AuthUserInfo authUserInfo = userInfoFacade.get(id);
+        if(authUserInfo != null)
+            authUserInfo.setId(id);
+        return authUserInfo;
+    }
+
+    @ApiOperation(value = "用户信息删除")
+    @ApiImplicitParam(name = "id", value = "id")
+    @DeleteMapping(value = "/delete/{id}")
+    public Result delete(@PathVariable(value = "id") String id){
+        userInfoFacade.delete(id);
+        return Result.success();
+    }
+
+}

+ 117 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataClassifyController.java

@@ -0,0 +1,117 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.dto.sub.DataClaAcceptDTO;
+import com.dragoninfo.dcuc.app.facade.sub.IDataClaFacade;
+import com.dragoninfo.dcuc.app.dto.sub.DataClaDTO;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataClaAcceptVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataClaVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-数据资源分类表码接口"})
+@RestController
+@RequestMapping(value = "/dataclassifysvr/"+ VersionUtils.VERSION_UID)
+public class DataClassifyController {
+
+    @Autowired
+    private IDataClaFacade dataClaFacade;
+
+    @ApiOperation(value = "数据资源分类分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 数据资源分类分页查询对象,查询条件[name:firName op: like] [name: secName op: like] [labName op: like]")
+    @PostMapping(value = "search")
+    public Result dataClassifyPageList(Searchable searchable) {
+        Page<DataClaAcceptDTO> page = dataClaFacade.pageSearch(searchable.toSearchDTO());
+        List<DataClaAcceptDTO> content = page.getContent();
+        List<DataClaAcceptVo> vos = content.stream().map(item -> {
+            DataClaAcceptVo vo = new DataClaAcceptVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "添加数据资源分类")
+    @ApiImplicitParam(name = "DataClaAcceptVo", value = "DataClaAcceptVo 数据资源分类Vo")
+    @PostMapping(value = "save")
+    public Result dataClassifyAdd(@RequestBody DataClaAcceptVo vo){
+        DataClaAcceptDTO dto = new DataClaAcceptDTO();
+        BeanUtils.copyProperties(vo,dto);
+        Boolean b = dataClaFacade.dataClassifyAdd(dto);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+    @ApiOperation(value = "修改数据资源分类")
+    @ApiImplicitParam(name = "DataClaAcceptVo", value = "DataClaAcceptVo 数据资源分类Vo")
+    @PostMapping(value = "update")
+    public Result dataClassifyUpdate(@RequestBody DataClaAcceptVo vo){
+        DataClaAcceptDTO dto = new DataClaAcceptDTO();
+        BeanUtils.copyProperties(vo,dto);
+        Boolean b = dataClaFacade.dataClassifyUpdate(dto);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+    @ApiOperation(value = "数据资源分类详情")
+    @ApiImplicitParam(name = "id", value = "id 数据资源分类 任何一级的id")
+    @GetMapping(value = "detailAllLevel/{id}")
+    public Result<DataClaAcceptVo> detailAllLevel(@PathVariable("id") String id){
+        DataClaAcceptDTO viewDTO = dataClaFacade.detailAllLevel(id);
+        DataClaAcceptVo vo = new DataClaAcceptVo();
+        BeanUtils.copyProperties(viewDTO, vo);
+        return Result.success(vo);
+    }
+
+
+    @ApiOperation(value = "根据code和path查询数据资源分类详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "code", value = "code: 该级代码"),
+            @ApiImplicitParam(name = "path", value = "path: 上级层级id组成 1-2-3 一级为空")
+    })
+    @GetMapping(value = "getByCodeAndPath")
+    public Result<DataClaVo> getByCodeAndPath(@RequestParam("code") String code, @RequestParam(value = "path", required = false) String path) {
+        DataClaDTO dto = dataClaFacade.getByCodeAndPath(code, path);
+        DataClaVo vo = new DataClaVo();
+        BeanUtils.copyProperties(dto, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "数据资源分类删除,根据Id删除所有层级数据")
+    @ApiImplicitParam(name = "id", value = "数据资源分类id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteAllLevel(@PathVariable("id") String id){
+        Boolean b = dataClaFacade.deleteAllLevel(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 92 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataLevelController.java

@@ -0,0 +1,92 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.dto.sub.DataLevelDTO;
+import com.dragoninfo.dcuc.app.facade.sub.IDataLevelFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataLevelVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-数据分级表码接口"})
+@RestController
+@RequestMapping(value = "/datalevelsvr/"+ VersionUtils.VERSION_UID)
+public class DataLevelController {
+
+    @Autowired
+    private IDataLevelFacade dataLevelFacade;
+
+    @ApiOperation(value = "数据分级分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 数据分级分页查询对象,查询条件 levelName like ")
+    @PostMapping(value = "search")
+    public Result dataLevelPageList(Searchable searchable) {
+        Page<DataLevelDTO> page = dataLevelFacade.pageSearch(searchable.toSearchDTO());
+        List<DataLevelDTO> content = page.getContent();
+        List<DataLevelVo> vos = content.stream().map(item -> {
+            DataLevelVo vo = new DataLevelVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "添加或修改数据分级")
+    @ApiImplicitParam(name = "DataLevelVo", value = "数据分级Vo")
+    @PostMapping(value = "save")
+    public Result dataLevelAdd(@RequestBody DataLevelVo vo){
+        DataLevelDTO dto = new DataLevelDTO();
+        BeanUtils.copyProperties(vo,dto);
+        DataLevelDTO dataLevelDTO = dataLevelFacade.saveOrUpdate(dto);
+        return Result.success(dataLevelDTO.getId());
+    }
+
+    @ApiOperation(value = "数据分级详情")
+    @ApiImplicitParam(name = "id", value = "数据分级id")
+    @GetMapping(value = "detail/{id}")
+    public Result<DataLevelVo> detail(@PathVariable("id") String id){
+        DataLevelDTO dataLevel = dataLevelFacade.detail(id);
+        DataLevelVo vo = new DataLevelVo();
+        BeanUtils.copyProperties(dataLevel, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "根据code查询数据安全等级详情")
+    @ApiImplicitParam(name = "levelCode", value = "levelCode: 数据安全等级代码")
+    @GetMapping(value = "detailByCode/{levelCode}")
+    public Result<DataLevelVo> detailByCode(@PathVariable("levelCode") String levelCode){
+        DataLevelDTO dto = dataLevelFacade.detailByCode(levelCode);
+        DataLevelVo vo = new DataLevelVo();
+        BeanUtils.copyProperties(dto, vo);
+        return Result.success(vo);
+    }
+
+
+    @ApiOperation(value = "数据分级删除")
+    @ApiImplicitParam(name = "id", value = "数据分级id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteById(@PathVariable("id") String id){
+        Boolean b = dataLevelFacade.deleteById(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 93 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/DataSecurityLevelController.java

@@ -0,0 +1,93 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.dto.sub.DataSecDTO;
+import com.dragoninfo.dcuc.app.facade.sub.IDataSecFacade;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.DataSecVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-数据安全等级表码接口"})
+@RestController
+@RequestMapping(value = "/datasecsvr/"+ VersionUtils.VERSION_UID)
+public class DataSecurityLevelController {
+
+    @Autowired
+    private IDataSecFacade dataSecFacade;
+
+    @ApiOperation(value = "添加或修改数据安全等级")
+    @ApiImplicitParam(name = "DataSecurityLevelVo", value = "数据安全等级Vo")
+    @PostMapping(value = "save")
+    public Result dataLevelAdd(@RequestBody DataSecVo vo){
+        DataSecDTO dto = new DataSecDTO();
+        BeanUtils.copyProperties(vo,dto);
+        DataSecDTO sec = dataSecFacade.saveOrUpdate(dto);
+        return Result.success(sec.getId());
+    }
+
+    @ApiOperation(value = "数据安全等级分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 安全等级分页查询对象,查询条件 secName like ")
+    @PostMapping(value = "search")
+    public Result dataLevelPageList(Searchable searchable) {
+        Page<DataSecDTO> page = dataSecFacade.pageSearch(searchable.toSearchDTO());
+        List<DataSecDTO> content = page.getContent();
+        List<DataSecVo> vos = content.stream().map(item -> {
+            DataSecVo vo = new DataSecVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "数据安全等级详情")
+    @ApiImplicitParam(name = "id", value = "id: 数据安全等级id")
+    @GetMapping(value = "detail/{id}")
+    public Result<DataSecVo> detail(@PathVariable("id") String id){
+        DataSecDTO dataSec = dataSecFacade.detail(id);
+        DataSecVo vo = new DataSecVo();
+        BeanUtils.copyProperties(dataSec, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "根据code查询数据安全等级详情")
+    @ApiImplicitParam(name = "secCode", value = "secCode: 数据安全等级代码")
+    @GetMapping(value = "detailByCode/{secCode}")
+    public Result<DataSecVo> detailByCode(@PathVariable("secCode") String secCode){
+        DataSecDTO dataSec = dataSecFacade.detailByCode(secCode);
+        DataSecVo vo = new DataSecVo();
+        BeanUtils.copyProperties(dataSec, vo);
+        return Result.success(vo);
+    }
+
+
+
+    @ApiOperation(value = "数据安全等级删除")
+    @ApiImplicitParam(name = "id", value = "数据安全等级id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteById(@PathVariable("id") String id){
+        Boolean b = dataSecFacade.deleteById(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 117 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/FieldClassifyController.java

@@ -0,0 +1,117 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.facade.sub.IFieldClaFacade;
+import com.dragoninfo.dcuc.app.dto.sub.FieldClaAcceptDTO;
+import com.dragoninfo.dcuc.app.dto.sub.FieldClaDTO;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.FieldClaAcceptVo;
+import com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data.FieldClaVo;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.core.search.Searchable;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Api(tags = {"主客体授权-字段分类表码接口"})
+@RestController
+@RequestMapping(value = "/fieldclassifysvr/"+ VersionUtils.VERSION_UID)
+public class FieldClassifyController {
+
+    @Autowired
+    private IFieldClaFacade fieldClaFacade;
+
+    @ApiOperation(value = "数据资源分类分页列表")
+    @ApiImplicitParam(name = "Searchable", value = "Searchable 数据资源分类分页查询对象,查询条件[name:firName op: like]  [name: secName op: like] ")
+    @PostMapping(value = "search")
+    public Result dataClassifyPageList(Searchable searchable) {
+        Page<FieldClaAcceptDTO> page = fieldClaFacade.pageSearch(searchable.toSearchDTO());
+        List<FieldClaAcceptDTO> content = page.getContent();
+        List<FieldClaAcceptVo> vos = content.stream().map(item -> {
+            FieldClaAcceptVo vo = new FieldClaAcceptVo();
+            BeanUtils.copyProperties(item, vo);
+            return vo;
+        }).collect(Collectors.toList());
+        return Result.success(page.getTotalElements(), vos);
+    }
+
+
+    @ApiOperation(value = "添加字段分类表")
+    @ApiImplicitParam(name = "FieldClaAcceptVo", value = "FieldClaAcceptVo 字段分类表Vo")
+    @PostMapping(value = "save")
+    public Result fieldClaAdd(@RequestBody FieldClaAcceptVo vo){
+        FieldClaAcceptDTO dto = new FieldClaAcceptDTO();
+        BeanUtils.copyProperties(vo,dto);
+        Boolean b = fieldClaFacade.fieldClassifyAdd(dto);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+    @ApiOperation(value = "修改字段分类")
+    @ApiImplicitParam(name = "FieldClaAcceptVo", value = "FieldClaAcceptVo 字段分类Vo")
+    @PostMapping(value = "update")
+    public Result dataClassifyUpdate(@RequestBody FieldClaAcceptVo vo){
+        FieldClaAcceptDTO dto = new FieldClaAcceptDTO();
+        BeanUtils.copyProperties(vo,dto);
+        Boolean b = fieldClaFacade.fieldClassifyUpdate(dto);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+    @ApiOperation(value = "字段分类详情")
+    @ApiImplicitParam(name = "id", value = "id 字段分类 字段分类id")
+    @GetMapping(value = "detailAllLevel/{id}")
+    public Result<FieldClaAcceptVo> detailAllLevel(@PathVariable("id") String id){
+        FieldClaAcceptDTO viewDTO = fieldClaFacade.detailAllLevel(id);
+        FieldClaAcceptVo vo = new FieldClaAcceptVo();
+        BeanUtils.copyProperties(viewDTO, vo);
+        return Result.success(vo);
+    }
+
+
+    @ApiOperation(value = "根据code和path查询字段分类详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "code", value = "code: 该级代码"),
+            @ApiImplicitParam(name = "path", value = "path: 上级层级id组成 1-2-3-4 一级为空")
+    })
+    @GetMapping(value = "getByCodeAndPath")
+    public Result<FieldClaVo> getByCodeAndPath(@RequestParam("code") String code, @RequestParam(value = "path", required = false) String path) {
+        FieldClaDTO dto = fieldClaFacade.getByCodeAndPath(code, path);
+        FieldClaVo vo = new FieldClaVo();
+        BeanUtils.copyProperties(dto, vo);
+        return Result.success(vo);
+    }
+
+    @ApiOperation(value = "字段分类删除,根据Id删除所有层级数据")
+    @ApiImplicitParam(name = "id", value = "字段分类id")
+    @DeleteMapping(value = "deleteById/{id}")
+    public Result deleteAllLevel(@PathVariable("id") String id){
+        Boolean b = fieldClaFacade.deleteAllLevel(id);
+        if (b) {
+            return Result.success();
+        } else {
+            return Result.fail();
+        }
+    }
+
+
+
+}

+ 132 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubImportController.java

@@ -0,0 +1,132 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
+import com.dragoninfo.dcuc.app.facade.IServiceResourceFacade;
+import com.dragoninfo.dcuc.app.facade.sub.IDataLevelFacade;
+import com.dragoninfo.dcuc.app.facade.sub.IDataSecFacade;
+import com.dragoninfo.dcuc.auth.power.facade.IAppFunInfoFacade;
+import com.dragoninfo.dcuc.auth.sub.facade.IAuthOrgInfoFacade;
+import com.dragoninfo.dcuc.auth.sub.facade.IAuthUserInfoFacade;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 主客体授权导入相关接口
+ * @author mazq
+ * @date 2021/6/2
+ */
+@Api(tags = {"主客体授权-导入数据相关接口"})
+@RestController
+@RequestMapping(value = "/subimportsvr/"+ VersionUtils.VERSION_UID)
+public class SubImportController {
+
+
+    @Autowired
+    private IApplyInfoFacade applyInfoFacade;
+
+    @Autowired
+    private IAppFunInfoFacade iAppFunInfoFacade;
+
+    @Autowired
+    private IServiceResourceFacade serviceResourceFacade;
+
+    @Autowired
+    private IAuthUserInfoFacade authUserInfoFacade;
+
+    @Autowired
+    private IAuthOrgInfoFacade authOrgInfoFacade;
+
+    @Autowired
+    private IDataLevelFacade dataLevelFacade;
+
+    @Autowired
+    private IDataSecFacade dataSecFacade;
+
+    @GetMapping(value = "/app/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_应用资源导入")
+    public Result appImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = applyInfoFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @GetMapping(value = "fun/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_功能资源导入")
+    public Result funImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = iAppFunInfoFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+
+    @GetMapping(value = "service/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_服务资源导入")
+    public Result serviceImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = serviceResourceFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @GetMapping(value = "user/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_人员信息导入")
+    public Result userImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = authUserInfoFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @GetMapping(value = "org/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_机构信息导入")
+    public Result orgImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = authOrgInfoFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @GetMapping(value = "dataLevel/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_机构信息导入")
+    public Result dataLevelImExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = dataLevelFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+    @GetMapping(value = "dataSec/import")
+    @ApiImplicitParam(name = "fileId", value = "导入文件id")
+    @ApiOperation(value = "授权主客体管理_机构信息导入")
+    public Result dataSecImpExcel(@RequestParam("fileId") String fileId) {
+        ResponseStatus responseStatus = dataSecFacade.impExcel(fileId);
+        if (!responseStatus.getStatusCode().equals(ResponseStatus.SUCCESS_CODE)){
+            return Result.fail(responseStatus.getStatusCode(), responseStatus.getMessage());
+        }
+        return Result.success();
+    }
+
+}

+ 129 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/SubSyncController.java

@@ -0,0 +1,129 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub;
+
+import com.dragoninfo.dcuc.app.facade.IDataResourceFacade;
+import com.dragoninfo.dcuc.app.facade.IResourceFacade;
+import com.dragoninfo.dcuc.auth.sub.facade.ISubSyncFacade;
+import com.dragoninfo.dcuc.authweb.util.VersionUtils;
+import com.dragoninfo.duceap.core.response.Result;
+import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 主客体资源同步Controller
+ * @author mazq
+ * @date 2021/5/27
+ */
+@Api(tags = {"主客体授权-同步接口"})
+@RestController
+@RequestMapping(value = "/syncsvr/"+ VersionUtils.VERSION_UID)
+public class SubSyncController {
+
+    @Autowired
+    private ISubSyncFacade subSyncFacade;
+
+    @Autowired
+    private IResourceFacade resourceFacade;
+
+    @Autowired
+    private IDataResourceFacade dataResourceFacade;
+
+
+    @ApiOperation(value = "授权主体-人员信息同步")
+    @GetMapping(value = "userSync")
+    public Result userSync() {
+        ResponseStatus response = subSyncFacade.userSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value = "授权主体-机构信息同步")
+    @GetMapping(value = "orgSync")
+    public Result orgSync() {
+        ResponseStatus response = subSyncFacade.orgSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "授权主体-服务信息同步")
+    @GetMapping(value = "serSync")
+    public Result serSync() {
+        ResponseStatus response = resourceFacade.subSerSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "授权主体-应用信息同步")
+    @GetMapping(value = "appSync")
+    public Result appSync() {
+        ResponseStatus response = resourceFacade.subAppSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+    @ApiOperation(value = "授权主体-数据分级同步")
+    @GetMapping(value = "dataLevelSync")
+    public Result dataLevelSync() {
+        ResponseStatus response = dataResourceFacade.dataLevelSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value = "授权主体-数据安全等级同步")
+    @GetMapping(value = "dataSecSync")
+    public Result dataSecSync() {
+        ResponseStatus response = dataResourceFacade.dataSecSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value = "授权主体-数据资源分类同步")
+    @GetMapping(value = "dataClaSync")
+    public Result dataClaSync() {
+        ResponseStatus response = dataResourceFacade.dataClaSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+
+    @ApiOperation(value = "授权主体-数据分级同步")
+    @GetMapping(value = "fieldClaSync")
+    public Result fieldClaSync() {
+        ResponseStatus response = dataResourceFacade.fieldClaSync();
+        if (ResponseStatus.SUCCESS_CODE.equals(response.getStatusCode())) {
+            return Result.success();
+        } else {
+            return Result.fail(response.getMessage());
+        }
+    }
+
+
+}

+ 46 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrInfoTreeVo.java

@@ -0,0 +1,46 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2021/5/20
+ */
+@Data
+@ApiModel(value = "主客体属性新增Vo")
+public class AttrInfoTreeVo {
+
+    @ApiModelProperty(value = "id 主键id")
+    private String id;
+
+    @ApiModelProperty(value = "父级id")
+    private String pid;
+
+    @ApiModelProperty(value = "父节点名称")
+    private String pName;
+
+    @ApiModelProperty(value = "属性类别  SUB:主体属性 OBJ:客体属性")
+    private String attrType;
+
+    @ApiModelProperty(value = "属性所属的主客体类别  USER:人员 ORG:机构 APP:应用 FUN:功能  SER:服务")
+    private String attrBelongType;
+
+    @ApiModelProperty(value = "属性名称")
+    private String name;
+
+    @ApiModelProperty(value = "属性值")
+    private String code;
+
+    @ApiModelProperty(value = "说明")
+    private String remark;
+
+    @ApiModelProperty(value = "是否删除")
+    private String deleted;
+
+    @ApiModelProperty(value = "子类集合")
+    private List<AttrInfoTreeVo> child;
+}

+ 29 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/AttrRelAcceptVo.java

@@ -0,0 +1,29 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author mazq
+ * @date 2021/5/24
+ */
+@Data
+@ApiModel(value = "主客体和属性关联关系添加Vo")
+public class AttrRelAcceptVo {
+
+    @ApiModelProperty(value = "属性id")
+    private String attrId;
+
+    @ApiModelProperty(value = "属性类别  SUB:主体属性 OBJ:客体属性")
+    private String attrType;
+
+    @ApiModelProperty(value = "属性所属的主客体类别  USER:人员 ORG:机构 APP:应用 FUN:功能  SER:服务")
+    private String attrBelongType;
+
+    @ApiModelProperty(value = "主客体id集合")
+    private List<String> relIds;
+
+}

+ 35 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/attr/RelSearchVo.java

@@ -0,0 +1,35 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.attr;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/5/24
+ */
+@Data
+@ApiModel(value = "主客关联关系查询Vo")
+public class RelSearchVo {
+
+    @ApiModelProperty(value = "页码,从0开始")
+    private Integer page;
+
+    @ApiModelProperty(value = "页面数量")
+    private Integer size;
+
+    @ApiModelProperty(value = "属性id")
+    private String attrId;
+
+    @ApiModelProperty(value = "属性类别  SUB:主体属性 OBJ:客体属性")
+    private String attrType;
+
+    @ApiModelProperty(value = "属性所属的主客体类别  USER:人员 ORG:机构 APP:应用 FUN:功能  SER:服务")
+    private String attrBelongType;
+
+    @ApiModelProperty(value = "主客体名称")
+    private String name;
+
+    @ApiModelProperty(value = "主客体标识  应用:应用code 机构:机构code 人员:人员身份证号")
+    private String code;
+}

+ 54 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataClaAcceptVo.java

@@ -0,0 +1,54 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "数据资源分类所有层级Vo")
+public class DataClaAcceptVo {
+
+    @ApiModelProperty(value = "一级主键")
+    private String firId;
+
+    @ApiModelProperty(value = "二级主键")
+    private String secId;
+
+    @ApiModelProperty(value = "标签分类主键")
+    private String labClaId;
+
+    @ApiModelProperty(value = "标签主键")
+    private String labId;
+
+    @ApiModelProperty(value = "一级代码")
+    private String firCode;
+
+    @ApiModelProperty(value = "一级分类")
+    private String firName;
+
+    @ApiModelProperty(value = "二级代码")
+    private String secCode;
+
+    @ApiModelProperty(value = "二级分类")
+    private String secName;
+
+    @ApiModelProperty(value = "标签分类代码")
+    private String labClaCode;
+
+    @ApiModelProperty(value = "标签分类")
+    private String labClaName;
+
+    @ApiModelProperty(value = "标签代码")
+    private String labCode;
+
+    @ApiModelProperty(value = "标签名称")
+    private String labName;
+
+    @ApiModelProperty(value = "说明")
+    private String remark;
+}

+ 56 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataClaVo.java

@@ -0,0 +1,56 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@ApiModel(value = "数据资源分类Vo")
+@NoArgsConstructor
+@Data
+public class DataClaVo {
+
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "一级id")
+    private String firId;
+
+    @ApiModelProperty(value = "二级id")
+    private String secId;
+
+    @ApiModelProperty(value = "标签分类id")
+    private String labClaId;
+
+    @ApiModelProperty(value = "码值")
+    private String code;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "层级")
+    private String level;
+
+    @ApiModelProperty(value = "分类类型 一级分类 二级分类 标签分类 标签")
+    private String type;
+
+    @ApiModelProperty(value = "说明")
+    private String remark;
+
+    @ApiModelProperty(value = "是否删除")
+    private String deleted;
+
+
+    public DataClaVo(String code, String name, String level, String type) {
+        this.code = code;
+        this.name = name;
+        this.level = level;
+        this.type = type;
+    }
+}

+ 26 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataLevelVo.java

@@ -0,0 +1,26 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "数据分级Vo")
+public class DataLevelVo {
+
+    @ApiModelProperty(value = "id 主键")
+    private String id;
+
+    @ApiModelProperty(value = "levelCode 代码")
+    private String levelCode;
+
+    @ApiModelProperty(value = "levelName 数据分级")
+    private String levelName;
+
+    @ApiModelProperty(value = "remark 说明")
+    private String remark;
+}

+ 26 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/DataSecVo.java

@@ -0,0 +1,26 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "数据安全等级Vo")
+public class DataSecVo {
+
+    @ApiModelProperty(value = "id: 主键")
+    private String id;
+
+    @ApiModelProperty(value = "secCode: 代码")
+    private String secCode;
+
+    @ApiModelProperty(value = "secName: 数据安全级别")
+    private String secName;
+
+    @ApiModelProperty(value = "remark: 说明")
+    private String remark;
+}

+ 36 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/FieldClaAcceptVo.java

@@ -0,0 +1,36 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "字段分类所有层级Vo")
+public class FieldClaAcceptVo {
+
+    @ApiModelProperty(value = "一级主键")
+    private String firId;
+
+    @ApiModelProperty(value = "二级主键")
+    private String secId;
+
+    @ApiModelProperty(value = "一级代码")
+    private String firCode;
+
+    @ApiModelProperty(value = "一级分类")
+    private String firName;
+
+    @ApiModelProperty(value = "二级代码")
+    private String secCode;
+
+    @ApiModelProperty(value = "二级分类")
+    private String secName;
+
+    @ApiModelProperty(value = "说明")
+    private String remark;
+}

+ 41 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/data/FieldClaVo.java

@@ -0,0 +1,41 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.data;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author mazq
+ * @date 2021/5/25
+ */
+@Data
+@ApiModel(value = "字段分类Vo")
+public class FieldClaVo implements Serializable {
+
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "一级id")
+    private String firId;
+
+    @ApiModelProperty(value = "码值")
+    private String code;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "层级")
+    private String level;
+
+    @ApiModelProperty(value = "分类类型 一级分类 二级分类")
+    private String type;
+
+    @ApiModelProperty(value = "说明")
+    private String remark;
+
+    @ApiModelProperty(value = "是否删除")
+    private String deleted;
+
+}

+ 31 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/sub/vo/org/TreeReqVo.java

@@ -0,0 +1,31 @@
+package com.dragoninfo.dcuc.authweb.restcontroller.sub.vo.org;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 机构数查询对象实体类
+ * @author mazq
+ * @date 2021/6/7
+ */
+@Data
+@ApiModel
+public class TreeReqVo {
+
+    @ApiModelProperty(value = "id,本级树节点id,第一次查询可为空")
+    private String id;
+
+    @ApiModelProperty(value = "机构树类型 (ORG:机构管理范围 USER:用户管理范围 APP:权限管理范围 MGE:管理员管理范围 )")
+    private String type;
+
+    @ApiModelProperty(value = "搜索关键词")
+    private String name;
+
+    @ApiModelProperty(value = "分页页码")
+    private Integer pageNum;
+
+    @ApiModelProperty(value = "页面数量")
+    private Integer pageSize;
+
+}

+ 3 - 0
src/main/java/com/dragoninfo/dcuc/authweb/restcontroller/user/manager/utils/ImpExcelUtils.java

@@ -1,6 +1,8 @@
 package com.dragoninfo.dcuc.authweb.restcontroller.user.manager.utils;
 
 
+import com.dragoninfo.dcuc.auth.sub.entity.AuthOrgInfo;
+import com.dragoninfo.dcuc.auth.sub.entity.AuthUserInfo;
 import com.dragoninfo.dcuc.auth.auth.enumresources.YesNotEnum;
 import com.dragoninfo.dcuc.authweb.util.UserUtils;
 import com.dragoninfo.dcuc.user.entity.GovUserInfo;
@@ -793,4 +795,5 @@ public class ImpExcelUtils {
         }
         return govUserInfo;
     }
+
 }

+ 5 - 5
src/main/resources/application-base.yml

@@ -35,7 +35,7 @@ management:
 duceap:
   swagger:
     enabled: true
-    package-path: com.dragoninfo.dcuc.authweb.restcontroller.api
+    package-path: com.dragoninfo.dcuc.authweb.restcontroller.audit.v2
   license:
     #配置用来指定license对接的后端项目地址(格式:ip:port/context,如http://10.10.10.10:8080/ctx),
     #默认使用HttpServletRequest.getLocalAddr()方法获取ip地址,
@@ -49,11 +49,11 @@ duceap:
       enabled: true
       user-token-header-name: userToken
   security:
-    #    type: dcuc ## 注解掉不开启认证登录
+    type: dcuc # 注解掉不开启认证登录
     dcuc:
       cas-server-url-prefix: http://192.168.10.2:8877/sso
-      server-name: 10.11.1.151:8000
-      ignore-pattern: '/js/*|/img/*|/css/*|/api/*|/*.png|/rest/*|/webSocket/*|/oauthLogin/*|/authorizationPage.html|/importAuthorizationFile.html|/license/LicenseManagerServlet|/authorizationFile/'
+      server-name: 10.11.1.25:8871 10.11.1.151:8000 10.11.0.233:8871 10.11.1.22:8871 10.11.1.63:8871
+      ignore-pattern: '/js/*|/img/*|/css/*|/api/*|/*.png|/rest/*|/webSocket/*|/oauthLogin/*|/authorizationPage.html|/importAuthorizationFile.html|/license/LicenseManagerServlet|/authorizationFile/|/auditsvr/|/authsvr/|/codelist/|/swagger-ui.html'
       app-code: QXXT0000000000000001
       api-url: http://192.168.10.2:8860/dcuc
     dids2:
@@ -65,7 +65,7 @@ duceap:
       SSOServiceUrl: http://10.11.0.240:18871/dcuc/login
       #单点登录服务接口地址
       webServiceUrl: http://192.168.6.128:9995/didsserver/webservices/
-      noFilterUrl: services,hessian,commons,install.action,.xml,/install,/widgets-src/,/authorizationPage.html,/importAuthorizationFile.html,/license/LicenseManagerServlet,/authorizationFile/,/api/,/js/,/png/,/rest/
+      noFilterUrl: services,hessian,commons,install.action,.xml,/install,/widgets-src/,/authorizationPage.html,/importAuthorizationFile.html,/license/LicenseManagerServlet,/authorizationFile/,/api/,/js/,/png/,/rest/,/dataresourcesrv/
 hystrix:
   command:
     default:

二进制
src/main/resources/template/OrgTemplate.xls


二进制
src/main/resources/template/UserTemplate.xls


二进制
src/main/resources/template/appFunTemplate.xls


二进制
src/main/resources/template/applyTemplate.xls


二进制
src/main/resources/template/dataLevelTemplate.xls


二进制
src/main/resources/template/dataSecTemplate.xls


二进制
src/main/resources/template/serviceResourceTemplate.xls