瀏覽代碼

Merge remote-tracking branch 'origin/release/v2.2.0-data-beta' into feature/v2.3.0-sub-obj

Conflicts:
	dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/DataAuthServiceImpl.java
huangjy 4 年之前
父節點
當前提交
902d160630
共有 34 個文件被更改,包括 644 次插入76 次删除
  1. 27 4
      Jenkinsfile
  2. 0 1
      dcuc-auth-api/pom.xml
  3. 3 10
      dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/api/IApiDataAuthFacade.java
  4. 9 0
      dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IServiceAuthFacade.java
  5. 11 5
      dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IServiceAuthResultFacade.java
  6. 13 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/DataItemsCheckDto.java
  7. 3 3
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/DataItemsDto.java
  8. 32 4
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthFlowDTO.java
  9. 62 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthResultDTO.java
  10. 38 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthFlow.java
  11. 12 0
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthResult.java
  12. 83 1
      dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/po/ServiceAuthResultPO.java
  13. 16 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/bpo/ServiceAuthFlowBPO.java
  14. 19 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/bpo/ServiceAuthResultBPO.java
  15. 3 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/IDataAuthBusiness.java
  16. 8 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/DataAuthBusiness.java
  17. 51 4
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/ServiceAuthBusinessImpl.java
  18. 5 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthFacade.java
  19. 6 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthResultFacade.java
  20. 23 2
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/api/ApiDataAuthFacade.java
  21. 7 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IAuthFlowService.java
  22. 2 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IBusService.java
  23. 2 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IDataAuthService.java
  24. 7 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IServiceAuthResultService.java
  25. 10 0
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/AuthFlowServiceImpl.java
  26. 6 4
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/BusService.java
  27. 43 29
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/DataAuthServiceImpl.java
  28. 21 1
      dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/ServiceAuthResultServiceImpl.java
  29. 50 0
      dcuc-auth-service/src/main/resources/config/mysql/V4_3_0004__Update_Table.sql
  30. 3 0
      dcuc-auth-service/src/main/resources/config/mysql/V4_3_0005__Add_AuthFlow.sql
  31. 7 1
      dcuc-auth-service/src/main/resources/config/mysql/V4_3_0005__init_app_fun.sql
  32. 50 0
      dcuc-auth-service/src/main/resources/config/sql/V4_3_0005__Update_Table.sql
  33. 5 0
      dcuc-auth-service/src/main/resources/config/sql/V4_3_0006__Add_AuthFlow.sql
  34. 7 1
      dcuc-auth-service/src/main/resources/config/sql/V4_3_0006__init_app_fun.sql

+ 27 - 4
Jenkinsfile

@@ -3,9 +3,11 @@
 
 def build = new org.devops.build()
 def color = new org.devops.color()
+def systemtime = new org.devops.systemtime()
 
-String cpu = "${env.cpu}"
-String imagePrefix = "${env.imagePrefix}"
+def String cpu = "${env.cpu}"
+def String imagePrefix = "${env.imagePrefix}"
+def String buildImage = "${env.buildImage}"
 
 pipeline {
     agent {
@@ -20,14 +22,15 @@ pipeline {
 
     //设定2个参数,根据项目类型不同,修改对应的description name value visibleItemCount  defaultValue 即可
     parameters {
-        extendedChoice description: '请选择CPU架构.可单选/多选/全选', multiSelectDelimiter: ',', name: 'cpu',
+        choice choices: ['false', 'true'], description: '是否需要打镜像包,默认为否', name: 'buildImage'
+        extendedChoice description: '只有在需要打镜像包的情况下,才需要选择CPU架构。可单选/多选/全选', multiSelectDelimiter: ',', name: 'cpu',
                 quoteValue: true,
                 saveJSONParameterToFile: false,
                 type: 'PT_CHECKBOX',
                 value: 'x86,arm64',
                 visibleItemCount: 5
         // 需修改对应的镜像名称
-        string defaultValue: 'bus.ga/jzywb/dcuc/', description: '请填写打的镜像通用前缀名称,注意最后面要加 / ', name: 'imagePrefix', trim: false
+        string defaultValue: 'bus.ga/jzywb/dcuc/', description: '只有在需要打镜像包的情况下,才需要填写要打镜像通用前缀名称,注意最后面要加 / ', name: 'imagePrefix', trim: false
     }
     stages {
         stage('MAVEN-BUILD') {
@@ -38,8 +41,28 @@ pipeline {
                     build.Build('mvn', 'mvn clean deploy -DskipTests=true', 'master')
                 }
             }
+            post {
+                success {
+                    script {
+                        version = build.GetMvnParentVersion()
+                        systime = systemtime.GetSysTime('yyMMdd')
+                        //将打出来的tar包,按照命名规范命名。根据实际情况,修改对应的系统简称和区域标识(DCUC-AUTH-SERVICE-TJDSJ)
+                        sh """cd dcuc-auth-service/target
+                            cp dcuc-auth-service-*.tar.gz DCUC-AUTH-SERVICE-TJDSJ-${version}-${env.GIT_COMMIT.take(8)}-BETA-${systime}.tar.gz
+                        """
+                        //将复制的按照命名规范的tar包提取到Jenkins的面板,方便下载。根据实际情况,修改对应的系统简称和区域标识(DCUC-AUTH-SERVICE-TJDSJ)
+                        archiveArtifacts artifacts: 'dcuc-auth-service/target/DCUC-AUTH-SERVICE-TJDSJ-*.tar.gz'
+                    }
+                }
+            }
+
         }
         stage('DOCKER-BUILD') {
+            when {
+                expression {
+                    return (buildImage  == 'true')
+                }
+            }
             steps {
                 script {
                     //将cpu架构和模块名称传入方法打镜像包.若在上面定义的参数名称没变,可不修改

+ 0 - 1
dcuc-auth-api/pom.xml

@@ -29,5 +29,4 @@
         </dependency>
 
     </dependencies>
-
 </project>

+ 3 - 10
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/api/IApiDataAuthFacade.java

@@ -1,20 +1,13 @@
 package com.dragoninfo.dcuc.auth.auth.api;
 
 import com.dragoninfo.dcuc.auth.auth.dto.DataItemsCheckDto;
-import com.dragoninfo.dcuc.auth.auth.entity.RoleInfo;
-import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.List;
-import java.util.Map;
 
 /**
  * Created by huanghy on 2018/7/9.
@@ -29,8 +22,8 @@ public interface IApiDataAuthFacade {
      * @return
      */
     @ApiOperation(value = "查询是否拥有数据项权限接口", notes = "查询是否拥有数据项权限接口")
-    @RequestMapping(value = "/auth-service/api/v1/data-auth/data-items/check", method = RequestMethod.POST)
-    ResponseStatus dataItemsCheck(@RequestBody DataItemsCheckDto dataItemsCheckDto);
+    @RequestMapping(value = "/api/auth-service/v1/data-auth/data-items/check", method = RequestMethod.POST)
+    ResponseDTO dataItemsCheck(@RequestBody DataItemsCheckDto dataItemsCheckDto);
 
 
 }

+ 9 - 0
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IServiceAuthFacade.java

@@ -59,4 +59,13 @@ public interface IServiceAuthFacade {
     @PostMapping(value = "serviceAuthentication")
     Object serviceAuthentication(@RequestParam("appCode")String appCode);
 
+
+    /**
+     * 校验申请单id
+     * @param applicantId
+     * @return
+     */
+    @PostMapping(value = "checkApplicantId")
+    boolean checkApplicantId(@RequestParam("applicantId")String applicantId);
+
 }

+ 11 - 5
dcuc-auth-api/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/IServiceAuthResultFacade.java

@@ -1,15 +1,13 @@
 package com.dragoninfo.dcuc.auth.auth.facade;
 
-import com.dragoninfo.dcuc.auth.auth.dto.AppServiceCodeDto;
 import com.dragoninfo.dcuc.auth.auth.dto.ServiceAuthResultDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
-import com.dragonsoft.duceap.core.search.Searchable;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.data.domain.Page;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * 服务授权结果Facade
@@ -69,4 +67,12 @@ public interface IServiceAuthResultFacade {
      */
     @PostMapping(value = "getDetailByAppAndService")
     ServiceAuthResultDTO getDetailByAppAndService(@RequestParam("appCode")String appCode,@RequestParam("serviceCode") String serviceCode);
+
+    /**
+     * 服务授权结果-分页查询
+     * @param searchDTO
+     * @return
+     */
+    @PostMapping(value = "serviceResultPageJoinFlow")
+    Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(@RequestBody SearchDTO searchDTO);
 }

+ 13 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/DataItemsCheckDto.java

@@ -19,7 +19,6 @@ import java.util.List;
 public class DataItemsCheckDto {
 
     @ApiModelProperty(value = "用户身份证号")
-    @NotBlank(message = "用户身份证号不允许为空")
     private String idcard;
 
 
@@ -28,6 +27,11 @@ public class DataItemsCheckDto {
     @NotNull
     private List<DataItemsDto> dataItemsDtoList;
 
+    /**
+     * 当前登录人身份证号
+     */
+    private String currentIdcard;
+
     public String getIdcard() {
         return idcard;
     }
@@ -43,4 +47,12 @@ public class DataItemsCheckDto {
     public void setDataItemsDtoList(List<DataItemsDto> dataItemsDtoList) {
         this.dataItemsDtoList = dataItemsDtoList;
     }
+
+    public String getCurrentIdcard() {
+        return currentIdcard;
+    }
+
+    public void setCurrentIdcard(String currentIdcard) {
+        this.currentIdcard = currentIdcard;
+    }
 }

+ 3 - 3
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/DataItemsDto.java

@@ -24,7 +24,7 @@ public class DataItemsDto {
     private String dataItemCode;
 
     @ApiModelProperty(value = "是否拥有权限")
-    private boolean isAuth;
+    private boolean auth;
 
     public String getResourceCode() {
         return resourceCode;
@@ -43,10 +43,10 @@ public class DataItemsDto {
     }
 
     public boolean isAuth() {
-        return isAuth;
+        return auth;
     }
 
     public void setAuth(boolean auth) {
-        isAuth = auth;
+        this.auth = auth;
     }
 }

+ 32 - 4
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthFlowDTO.java

@@ -15,6 +15,10 @@ import java.util.Date;
 public class ServiceAuthFlowDTO implements Serializable {
 
     private String id;
+    /**
+     * 申请单号
+     */
+    private String applicantId;
 
     /**
      * 申请人身份证号
@@ -51,6 +55,28 @@ public class ServiceAuthFlowDTO implements Serializable {
      */
     private String appName;
 
+    /**
+     * 应用管理单位名称
+     */
+    private String appManagerOrgName;
+
+
+    /**
+     * 应用管理单位code
+     */
+    private String appManagerOrgCode;
+
+    /**
+     * 应用事权单位名称
+     */
+    private String appOrgName;
+
+    /**
+     * 应用事权单位code
+     */
+    private String appOrgCode;
+
+
     /**
      * 工作单类型
      * SERVICE_AUTH-服务授权工作单 SERVICE_CANCEL-服务权限撤销工作单
@@ -122,6 +148,11 @@ public class ServiceAuthFlowDTO implements Serializable {
      */
     private String processType;
 
+    /**
+     * 流程标识码
+     */
+    private String businessCode;
+
     /**
      * 流程名称
      */
@@ -136,10 +167,7 @@ public class ServiceAuthFlowDTO implements Serializable {
      */
     private Date endTime;
 
-    /**
-     * 流程标识码
-     */
-    private String businessCode;
+
 
     /**
      * api接口调用人身份证号

+ 62 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/dto/ServiceAuthResultDTO.java

@@ -36,6 +36,11 @@ public class ServiceAuthResultDTO implements Serializable {
      */
     private String appId;
 
+    /**
+     * 应用状态
+     */
+    private String appStatus;
+
     /**
      * 服务编码
      */
@@ -47,13 +52,40 @@ public class ServiceAuthResultDTO implements Serializable {
      */
     private String serviceName;
 
+    /**
+     * 服务事权单位
+     */
+    private String serviceOrgName;
+
+    /**
+     * 服务事权单位code
+     */
+    private String serviceOrgCode;
+
+    /**
+     * 服务管理单位
+     */
+    private String serviceManagerOrgName;
+
+    /**
+     * 服务管理单位code
+     */
+    private String serviceManagerOrgCode;
+
     /**
      * 服务id
      */
     private String serviceId;
 
     /**
-     * 状态
+     * 服务启停用
+     */
+    private String serviceStatus;
+
+    /**
+     * 授权状态-取决于应用和服务共同作用的状态
+     * 暂时不维护这个字段
+     * 不要使用
      */
     private String authStatus;
 
@@ -97,5 +129,34 @@ public class ServiceAuthResultDTO implements Serializable {
      */
     private String applicantOrgCode;
 
+    /**
+     * 应用管理单位名称
+     */
+    private String appManagerOrgName;
+
+
+    /**
+     * 应用管理单位code
+     */
+    private String appManagerOrgCode;
+
+    /**
+     * 应用事权单位名称
+     */
+    private String appOrgName;
 
+    /**
+     * 应用事权单位code
+     */
+    private String appOrgCode;
+
+    /**
+     * 授权申请时间
+     */
+    private Date applyTime;
+
+    /**
+     * 授权审批通过时间
+     */
+    private Date authTime;
 }

+ 38 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthFlow.java

@@ -24,6 +24,12 @@ public class ServiceAuthFlow implements IdEntity<String> {
     @Column(name = "ID")
     private String id;
 
+    /**
+     * 申请单号
+     */
+    @Column(name = "APPLICANT_ID")
+    private String applicantId;
+
     /**
      * 申请人身份证号
      */
@@ -66,6 +72,32 @@ public class ServiceAuthFlow implements IdEntity<String> {
     @Column(name = "APP_NAME")
     private String appName;
 
+
+    /**
+     * 应用管理单位名称
+     */
+    @Column(name = "APP_MANAGER_ORG_NAME")
+    private String appManagerOrgName;
+
+
+    /**
+     * 应用管理单位code
+     */
+    @Column(name = "APP_MANAGER_ORG_CODE")
+    private String appManagerOrgCode;
+
+    /**
+     * 应用事权单位名称
+     */
+    @Column(name = "APP_ORG_NAME")
+    private String appOrgName;
+
+    /**
+     * 应用事权单位code
+     */
+    @Column(name = "APP_ORG_CODE")
+    private String appOrgCode;
+
     /**
      * 工作单类型
      * SERVICE_AUTH-服务授权工作单 SERVICE_AUTH_CANCEL-服务权限撤销工作单
@@ -98,6 +130,12 @@ public class ServiceAuthFlow implements IdEntity<String> {
     @Column(name = "APPLY_TIME")
     private Date applyTime;
 
+    /**
+     * 申请原因
+     */
+    @Column(name = "APPLY_REASON")
+    private String applyReason;
+
     /**
      * 服务资源codes (多个服务使用',' 隔开)
      */

+ 12 - 0
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/entity/ServiceAuthResult.java

@@ -29,6 +29,12 @@ public class ServiceAuthResult implements IdEntity<String> {
     @Column(name = "FLOW_ID")
     private String flowId;
 
+    /**
+     * 内部关联消息id
+     */
+    @Column(name = "MESSAGE_ID")
+    private String messageId;
+
     /**
      * 应用编码
      */
@@ -88,4 +94,10 @@ public class ServiceAuthResult implements IdEntity<String> {
      */
     @Column(name = "DELETED")
     private String deleted;
+
+    /**
+     * 是否删除
+     */
+    @Column(name = "DELETE_TIME")
+    private Date deleteTime;
 }

+ 83 - 1
dcuc-auth-model/src/main/java/com/dragoninfo/dcuc/auth/auth/po/ServiceAuthResultPO.java

@@ -36,7 +36,7 @@ public class ServiceAuthResultPO {
 
 
     /**
-     * 应用编码
+     * 服务名称
      */
     private String serviceName;
 
@@ -50,6 +50,31 @@ public class ServiceAuthResultPO {
      */
     private String serviceStatus;
 
+    /**
+     * 服务事权单位
+     */
+    private String serviceOrgName;
+
+    /**
+     * 服务事权单位code
+     */
+    private String serviceOrgCode;
+
+    /**
+     * 服务管理单位
+     */
+    private String serviceManagerOrgName;
+
+    /**
+     * 服务管理单位code
+     */
+    private String serviceManagerOrgCode;
+
+    /**
+     * 应用状态
+     */
+    private String appStatus;
+
     /**
      * 创建时间
      */
@@ -69,4 +94,61 @@ public class ServiceAuthResultPO {
      * 流程id
      */
     private String flowId;
+
+    /**
+     * 应用管理单位名称
+     */
+    private String appManagerOrgName;
+
+
+    /**
+     * 应用管理单位code
+     */
+    private String appManagerOrgCode;
+
+    /**
+     * 应用事权单位名称
+     */
+    private String appOrgName;
+
+    /**
+     * 应用事权单位code
+     */
+    private String appOrgCode;
+
+    /**
+     * 授权申请时间
+     */
+    private Date applyTime;
+
+    /**
+     * 授权审批通过时间
+     */
+    private Date authTime;
+
+    /**
+     * 申请人名字
+     */
+    private String applicantName;
+
+    /**
+     * 申请人身份证
+     */
+    private String applicantIdcard;
+
+    /**
+     * 申请人电话
+     */
+    private String applicantPhoneNo;
+
+    /**
+     * 申请人机构名称
+     */
+    private String applicantOrgName;
+
+    /**
+     * 申请人机构Code
+     */
+    private String applicantOrgCode;
+
 }

+ 16 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/bpo/ServiceAuthFlowBPO.java

@@ -3,6 +3,8 @@ package com.dragoninfo.dcuc.auth.auth.bpo;
 
 import com.dragoninfo.dcuc.auth.auth.entity.ServiceAuthFlow;
 import com.dragoninfo.duceap.core.persistent.BaseBPO;
+import com.dragonsoft.duceap.base.enums.BooleanEnum;
+import com.dragonsoft.duceap.core.persistent.factory.PersistentFactory;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -12,4 +14,18 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public class ServiceAuthFlowBPO extends BaseBPO<ServiceAuthFlow,String> {
+
+    /**
+     * 校验申请单id
+     * @param applicantId
+     * @return
+     */
+    public boolean checkApplicantId(String applicantId){
+        String sql="select  count(*) from  t_service_auth_flow where applicant_id = ? and deleted= ?";
+        int i = PersistentFactory.getJdbcDao().queryForInt(sql, new Object[]{applicantId, BooleanEnum.FALSE.value});
+        if (i==0){
+            return false;
+        }
+        return true;
+    }
 }

+ 19 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/bpo/ServiceAuthResultBPO.java

@@ -1,7 +1,6 @@
 package com.dragoninfo.dcuc.auth.auth.bpo;
 
 
-import com.dragoninfo.dcuc.auth.auth.dto.ServiceAuthResultDTO;
 import com.dragoninfo.dcuc.auth.auth.entity.ServiceAuthResult;
 import com.dragoninfo.dcuc.auth.auth.po.ServiceAuthResultPO;
 import com.dragoninfo.duceap.core.persistent.BaseBPO;
@@ -66,4 +65,23 @@ public class ServiceAuthResultBPO extends BaseBPO<ServiceAuthResult,String> {
         String sql = "SELECT * from T_SERVICE_AUTH_RESULT where deleted = '0' and app_code = ? and service_code = ?";
         return PersistentFactory.getJdbcDao().queryUniqueResult(sql,ServiceAuthResult.class,new Object[]{appCode,serviceCode});
     }
+
+    public Page<ServiceAuthResultPO> serviceResultPageJoinFlow(Searchable searchable) {
+        String sql = "SELECT t.app_code, t.service_code, t.create_time as auth_time,t.deleted as deleted," +
+                     "a.apply_name as app_name, a.apply_status as app_status, a.org_name as app_org_name, a.manager_org_name as app_manager_org_name," +
+                     "f.applicant_name, f.applicant_org_code, f.create_time as apply_time, f.applicant_org_name, f.applicant_idcard, f.applicant_phone_no," +
+                     "f.app_org_code as app_org_code, f.app_manager_org_code as app_manager_org_code," +
+                     "s.service_name, s.service_status, s.build_unit as service_org_name, s.manager_unit as service_manager_org_name, " +
+                     "s.manager_unit_code as service_manager_org_code, s.build_unit_code as service_org_code," +
+                     "t.app_code as appCode, t.service_code as serviceCode, a.apply_name as appName," +
+                     "a.org_name as appOrgName, f.applicant_name as applicantName, s.service_name as serviceName, s.manager_unit as serviceManagerOrgName," +
+                     "f.app_org_code as appOrgCode, a.apply_status as appStatus, a.manager_org_name as appManagerOrgName, s.service_status as serviceStatus, a.deleted as app_deleted, " +
+                     "s.manager_unit_code as serviceManagerOrgCode, s.deleted as service_deleted" +
+                     " FROM T_SERVICE_AUTH_RESULT t" +
+                     " INNER JOIN T_SERVICE_RESOURCE s ON t.service_id = s.id" +
+                     " INNER JOIN T_APPLY_INFO a ON t.app_id = a.id" +
+                     " LEFT JOIN T_SERVICE_AUTH_FLOW f ON f.message_id = t.message_id";
+        Page<ServiceAuthResultPO> paging = PersistentFactory.getJdbcDao().paging(sql, searchable,ServiceAuthResultPO.class);
+        return paging;
+    }
 }

+ 3 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/IDataAuthBusiness.java

@@ -3,6 +3,7 @@ package com.dragoninfo.dcuc.auth.auth.business;
 import com.dragoninfo.dcuc.auth.auth.dto.data.DataClassifyDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.data.DataResourceDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.data.SubDataAuthQueryDTO;
+import com.dragoninfo.dcuc.user.user.entity.UserInfo;
 
 import java.util.List;
 
@@ -50,4 +51,6 @@ public interface IDataAuthBusiness {
      * @return
      */
     List<DataResourceDTO> userDataTreeByIdcard(String idcard, String authType);
+
+    List<DataClassifyDTO> userDataAuthInfoByUser(UserInfo userInfo);
 }

+ 8 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/business/impl/DataAuthBusiness.java

@@ -66,6 +66,9 @@ public class DataAuthBusiness implements IDataAuthBusiness {
     private List<DataClassifyDTO> getUserDataAuth(String authType, UserInfo userInfo) {
         //数据授权主体 ORG && USER && BUSINESS
         List<SubDataAuthQueryDTO> list = new ArrayList<>();
+        if (userInfo == null){
+            return new ArrayList<>();
+        }
         String orgCode = userInfo.getOrgCode();
         if(StringUtils.isNotBlank(orgCode)){
             list.add(new SubDataAuthQueryDTO(orgCode, SubDataAuthTypeEnum.SUB_DATA_AUTH_ORG.getValue(),authType));
@@ -151,6 +154,11 @@ public class DataAuthBusiness implements IDataAuthBusiness {
         return resourceDTOS;
     }
 
+    @Override
+    public List<DataClassifyDTO> userDataAuthInfoByUser(UserInfo userInfo) {
+        return getUserDataAuth(null, userInfo);
+    }
+
 
     private List<DataClassifyDTO> getDataClassifyDTOS(List<DataAuthDTO> authDTOS) {
         List<DataClassifyDTO> classifyDTOS = new ArrayList<>();

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

@@ -1,6 +1,11 @@
 package com.dragoninfo.dcuc.auth.auth.business.impl;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.fastjson.JSON;
+import com.dragoninfo.dcuc.app.entity.ApplyInfo;
+import com.dragoninfo.dcuc.app.entity.ServiceResource;
+import com.dragoninfo.dcuc.app.facade.IApplyInfoFacade;
+import com.dragoninfo.dcuc.app.facade.IServiceResourceFacade;
 import com.dragoninfo.dcuc.auth.auth.business.IServiceAuthBusiness;
 import com.dragoninfo.dcuc.auth.auth.dto.ResourceInfoDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.ServiceAuthFlowDTO;
@@ -13,7 +18,10 @@ import com.dragoninfo.dcuc.auth.auth.service.IAuthFlowService;
 import com.dragoninfo.dcuc.auth.auth.service.IServiceAuthResultService;
 import com.dragoninfo.dcuc.auth.auth.service.impl.AuthFlowServiceImpl;
 import com.dragoninfo.dcuc.auth.config.DcucServiceAuthConfig;
+import com.dragoninfo.dcuc.common.entity.ApiResult;
 import com.dragoninfo.dcuc.common.http.HttpUtil;
+import com.dragoninfo.dcuc.org.entity.OrgInfo;
+import com.dragoninfo.dcuc.org.facade.IOrgInfoFacade;
 import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragonsoft.duceap.commons.util.UUIDUtils;
@@ -27,9 +35,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author mazq
@@ -49,6 +56,14 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
     @Autowired
     private DcucServiceAuthConfig serviceAuthConfig;
 
+    @Autowired
+    private IApplyInfoFacade applyInfoFacade;
+
+    @Autowired
+    private IServiceResourceFacade serviceResourceFacade;
+
+    @Autowired
+    private IOrgInfoFacade orgInfoFacade;
 
     @Override
     public boolean dealAuthFlowResult(WorkFlowResutlAcceptDTO dto) {
@@ -79,17 +94,49 @@ public class ServiceAuthBusinessImpl implements IServiceAuthBusiness {
      */
     @Override
     public ResponseDTO serviceAuthFlowSave(ServiceAuthFlowDTO dto) {
+        //校验应用和服务是否存在
+        ApplyInfo applyInfo = applyInfoFacade.getAppByCode(dto.getAppCode());
+        if (applyInfo == null) {
+            return ResponseDTO.fail(
+                    ResponseStatus.FAIL_CODE,String.format("应用代码 %s 不存在", dto.getAppCode()),null);
+        }
+        String serviceCodes = dto.getServiceCodes();
+        String[] serviceCodArray = serviceCodes.split(StrUtil.COMMA);
+        for (String serviceCode : serviceCodArray) {
+            ServiceResource serviceResource = serviceResourceFacade.detailByCode(serviceCode);
+            if (serviceResource == null) {
+                return ResponseDTO.fail(ResponseStatus.FAIL_CODE ,String.format("服务代码 %s 不存在", serviceCode),null);
+            }
+        }
         String flowStatus = WorkFlowStatusEnum.APPLYING.getValue();
         //生成消息id
         dto.setMessageId(UUIDUtils.getUUID());
         //先保存工作单
         dto.setFlowStatus(flowStatus);
+        //设置应用的管理单位和事权单位信息
+        String orgId = applyInfo.getOrgId();
+        String managerOrgId = applyInfo.getManagerOrgId();
+        List<OrgInfo> orgsByIds = orgInfoFacade.getOrgsByIds(String.join(StrUtil.COMMA, orgId, managerOrgId));
+        Map<String, OrgInfo> orgInfoMap = orgsByIds
+                .stream()
+                .collect(Collectors.toMap(OrgInfo::getId, item -> item, (old, laset) -> laset));
+        OrgInfo orgInfo = orgInfoMap.get(orgId);
+        OrgInfo managerOrgInfo = orgInfoMap.get(managerOrgId);
+        if(null != orgInfo){
+            dto.setAppOrgName(orgInfo.getFullName());
+            dto.setAppOrgCode(orgInfo.getCode());
+        }
+        if(null != managerOrgInfo){
+            dto.setAppManagerOrgName(managerOrgInfo.getFullName());
+            dto.setAppManagerOrgCode(managerOrgInfo.getCode());
+        }
+        //保存
         authFlowService.serviceAuthFlowSave(dto);
 
         //将工作单推送给审批服务
         ResponseDTO responseDTO = null;
         try {
-            logger.info("-------pushWorkFlowToServer STATR---------------");
+            logger.info("-------pushWorkFlowToServer START---------------");
             responseDTO = pushWorkFlowToServer(dto);
             logger.info("-------pushWorkFlowToServer END---------------");
             if(!ResponseStatus.SUCCESS_CODE.equals(responseDTO.getStatusCode())){

+ 5 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthFacade.java

@@ -97,4 +97,9 @@ public class ServiceAuthFacade implements IServiceAuthFacade {
     public Object serviceAuthentication(String appCode){
         return authResultService.serviceAuthentication(appCode);
     }
+
+    @Override
+    public boolean checkApplicantId(String applicantId) {
+        return authFlowService.checkApplicantId(applicantId);
+    }
 }

+ 6 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/ServiceAuthResultFacade.java

@@ -20,7 +20,7 @@ import java.util.List;
  **/
 @RestController
 @RequestMapping(value = "/dcuc/auth/serviceAuthResultFacade")
-public class ServiceAuthResultFacade implements IServiceAuthResultFacade{
+public class ServiceAuthResultFacade implements IServiceAuthResultFacade {
 
     @Autowired
     private IServiceAuthResultService serviceAuthResultService;
@@ -90,4 +90,9 @@ public class ServiceAuthResultFacade implements IServiceAuthResultFacade{
     public ServiceAuthResultDTO getDetailByAppAndService(String appCode, String serviceCode) {
         return serviceAuthResultService.getDetailByAppAndService( appCode, serviceCode);
     }
+
+    @Override
+    public Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(SearchDTO searchDTO) {
+        return serviceAuthResultService.serviceResultPageJoinFlow(Searchable.toSearchable(searchDTO));
+    }
 }

+ 23 - 2
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/facade/api/ApiDataAuthFacade.java

@@ -2,8 +2,10 @@ package com.dragoninfo.dcuc.auth.auth.facade.api;
 
 import com.dragoninfo.dcuc.auth.auth.api.IApiDataAuthFacade;
 import com.dragoninfo.dcuc.auth.auth.dto.DataItemsCheckDto;
+import com.dragoninfo.dcuc.auth.auth.dto.DataItemsDto;
 import com.dragoninfo.dcuc.auth.auth.service.IDataAuthService;
-import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -26,7 +28,26 @@ public class ApiDataAuthFacade implements IApiDataAuthFacade {
      * @return
      */
     @Override
-    public ResponseStatus dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
+    public ResponseDTO dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
+        String msg = checkParam(dataItemsCheckDto);
+        if (StringUtils.isNotBlank(msg)){
+            return  ResponseDTO.fail(msg, (Object) null);
+        }
         return dataAuthService.dataItemsCheck(dataItemsCheckDto);
     }
+
+    private String checkParam(DataItemsCheckDto dataItemsCheckDto) {
+        String msg = "";
+        if (StringUtils.isBlank(dataItemsCheckDto.getIdcard())){
+            return "身份证号码不能为空";
+        }
+        for (int i = 0; i < dataItemsCheckDto.getDataItemsDtoList().size(); i++) {
+            DataItemsDto dataItemsDto = dataItemsCheckDto.getDataItemsDtoList().get(i);
+            if (StringUtils.isBlank(dataItemsDto.getDataItemCode()) || StringUtils.isBlank(dataItemsDto.getResourceCode())){
+                msg += "第" + (i + 1) + "项的数据资源标识符或数据项标识符不允许为空!";
+                break;
+            }
+        }
+        return msg;
+    }
 }

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

@@ -57,4 +57,11 @@ public interface IAuthFlowService {
      * @return
      */
     List<ServiceAuthFlow> getByFlowIds(List<String> flowIds);
+
+    /**
+     * 校验申请单id
+     * @param applicantId
+     * @return
+     */
+    boolean checkApplicantId(String applicantId);
 }

+ 2 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IBusService.java

@@ -15,8 +15,9 @@ public interface IBusService {
     /**
      * 数据资源目录列表查询接口
      * @param param
+     * @param currentIdcard
      * @return
      */
-    BusResultVO resourceDataItemsQuery(Map<String, Object> param);
+    BusResultVO resourceDataItemsQuery(Map<String, Object> param, String currentIdcard);
 
 }

+ 2 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IDataAuthService.java

@@ -4,6 +4,7 @@ import com.dragoninfo.dcuc.auth.auth.dto.data.DataAuthDTO;
 import com.dragoninfo.dcuc.auth.auth.dto.DataItemsCheckDto;
 import com.dragoninfo.dcuc.auth.auth.dto.data.SubDataAuthDTO;
 import com.dragoninfo.dcuc.auth.auth.vo.BusResultVO;
+import com.dragonsoft.duceap.base.entity.http.ResponseDTO;
 import com.dragonsoft.duceap.base.entity.http.ResponseStatus;
 import com.dragoninfo.dcuc.auth.auth.dto.data.SubDataAuthQueryDTO;
 import com.dragonsoft.duceap.base.entity.search.SearchDTO;
@@ -70,7 +71,7 @@ public interface IDataAuthService {
      * 查询是否拥有数据项权限接口
      * @return
      */
-    ResponseStatus dataItemsCheck(DataItemsCheckDto dataItemsCheckDto);
+    ResponseDTO dataItemsCheck(DataItemsCheckDto dataItemsCheckDto);
 
     BusResultVO dataDetailList(SearchDTO searchDTO);
 }

+ 7 - 0
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/IServiceAuthResultService.java

@@ -119,4 +119,11 @@ public interface IServiceAuthResultService {
     void setAuthtionResultToRedis(String appCode, List<ServiceAuthenticationResVO> serviceCodes);
 
     ServiceAuthResultDTO getDetailByAppAndService(String appCode, String serviceCode);
+
+    /**
+     * 服务授权结果-分页查询
+     * @param toSearchable
+     * @return
+     */
+    Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(Searchable toSearchable);
 }

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

@@ -109,4 +109,14 @@ public class AuthFlowServiceImpl implements IAuthFlowService {
         return serviceAuthFlowBPO.find(ServiceAuthFlow.class, searchable);
     }
 
+    /**
+     * 校验申请单id
+     * @param applicantId
+     * @return
+     */
+    @Override
+    public boolean checkApplicantId(String applicantId){
+        return serviceAuthFlowBPO.checkApplicantId(applicantId);
+    }
+
 }

+ 6 - 4
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/BusService.java

@@ -54,11 +54,12 @@ public class BusService implements IBusService {
     /**
      * 数据资源目录列表查询接口
      * @param param
+     * @param currentIdcard
      * @return
      */
     @Override
-    public BusResultVO resourceDataItemsQuery(Map<String, Object> param) {
-        String result = baseQuery(dcucAuthBusConfig.getResourceUrl(), param, dcucAuthBusConfig.getBusServiceFunc());
+    public BusResultVO resourceDataItemsQuery(Map<String, Object> param, String currentIdcard) {
+        String result = baseQuery(dcucAuthBusConfig.getResourceUrl(), param, dcucAuthBusConfig.getBusServiceFunc(), currentIdcard);
         //指定对象。否则在JSONObject转换时会报错
         Map<String,Class<?>> classMap = new HashMap<String,Class<?>>();
         classMap.put("dataList", ResourceCatalogVO.class);
@@ -74,10 +75,11 @@ public class BusService implements IBusService {
      * @param param
      * @return
      */
-    public String baseQuery(String url, Map<String, Object> param, String busServiceFunc) {
+    public String baseQuery(String url, Map<String, Object> param, String busServiceFunc, String currentIdcard) {
         String response = "";
+        logger.info("baseQuery >> 当前登录人身份证号currentIdcard:{}, ContextUtils.getUserInfo():{}", currentIdcard, JSON.toJSONString(ContextUtils.getUserInfo()));
         //获取当前登录人身份证号
-        String busSreIdcard = ContextUtils.getUserInfo() == null ? "" : ContextUtils.getUserInfo().getId();
+        String busSreIdcard = StringUtils.isNotBlank(currentIdcard) ? currentIdcard : ContextUtils.getUserInfo().getId();
         // 构建header
         String busSraId = dcucAuthBusConfig.getBusSraId();
         String busServiceId = dcucAuthBusConfig.getBusServiceId();

+ 43 - 29
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/DataAuthServiceImpl.java

@@ -13,8 +13,9 @@ import com.dragoninfo.dcuc.auth.auth.service.IDataAuthService;
 import com.dragoninfo.dcuc.auth.auth.vo.BusResultVO;
 import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogItemVO;
 import com.dragoninfo.dcuc.auth.auth.vo.ResourceCatalogVO;
+import com.dragoninfo.dcuc.user.user.entity.UserInfo;
+import com.dragoninfo.dcuc.user.user.facade.IUserFacade;
 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.BaseSecurityUser;
 import com.dragonsoft.duceap.base.enums.BooleanEnum;
@@ -56,6 +57,9 @@ public class DataAuthServiceImpl implements IDataAuthService {
     private IBusService busService;
     @Autowired
     private IDataAuthBusiness dataAuthBusiness;
+    @Autowired
+    private IUserFacade userFacade;
+
 
     /**
      * 字段分类字符串
@@ -297,36 +301,41 @@ public class DataAuthServiceImpl implements IDataAuthService {
      * @return
      */
     @Override
-    public ResponseStatus dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
+    public ResponseDTO dataItemsCheck(DataItemsCheckDto dataItemsCheckDto) {
         initDataMap();
+        UserInfo userInfo = userFacade.detailBySfzh(dataItemsCheckDto.getIdcard());
+        if (userInfo == null){
+            return  ResponseDTO.fail("用户不存在", (Object) null);
+        }
         //获取用户所有的数据分级分类
-        List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(dataItemsCheckDto.getIdcard(), null);
-        Map<String, List<String>> listMap = new HashMap<>();
-        LinkedHashMap<String, List<String>> dataListMap = new LinkedHashMap<>();
-        List<String> dataStrList = Arrays.asList(dataStrArr);
-
-        for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
-            for (SubDataDTO subDataDTO : dataClassifyDTO.getTickedDatas()) {
-                //获取每个类型对应的code数组
-                listMap = buildDataCodeMap(subDataDTO, listMap);
-                //数据资源分类需要构建父级的code数组
-                if (dataStrList.contains(subDataDTO.getDataType())) {
-                    dataListMap = buildDataParentCodeMap(subDataDTO, dataListMap);
+        List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByUser(userInfo);
+        if (CollectionUtils.isNotEmpty(dataClassifyDTOList)){
+            Map<String, List<String>> listMap = new HashMap<>();
+            LinkedHashMap<String, List<String>> dataListMap = new LinkedHashMap<>();
+            List<String> dataStrList = Arrays.asList(dataStrArr);
+
+            for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
+                for (SubDataDTO subDataDTO : dataClassifyDTO.getTickedDatas()) {
+                    //获取每个类型对应的code数组
+                    listMap = buildDataCodeMap(subDataDTO, listMap);
+                    //数据资源分类需要构建父级的code数组
+                    if (dataStrList.contains(subDataDTO.getDataType())) {
+                        dataListMap = buildDataParentCodeMap(subDataDTO, dataListMap);
 
+                    }
                 }
             }
-        }
-        //先获取每个数据标识符下的数据项
-        for (DataItemsDto dataItemsDto : dataItemsCheckDto.getDataItemsDtoList()) {
-            try {
-                //数据项的分类代码、安全等级
-                getDataItemClassify(dataItemsDto, listMap, dataListMap);
-            } catch (Exception e) {
-                return ResponseStatus.fail(e.getMessage());
+            //先获取每个数据标识符下的数据项
+            for (DataItemsDto dataItemsDto : dataItemsCheckDto.getDataItemsDtoList()) {
+                try {
+                    //数据项的分类代码、安全等级
+                    getDataItemClassify(dataItemsDto, listMap, dataListMap, dataItemsCheckDto.getCurrentIdcard());
+                } catch (Exception e) {
+                    return  ResponseDTO.fail(e.getMessage(), (Object) null);
+                }
             }
         }
         return ResponseDTO.newInstance(dataItemsCheckDto.getDataItemsDtoList());
-
     }
 
 
@@ -362,11 +371,16 @@ public class DataAuthServiceImpl implements IDataAuthService {
         }
         String query = JSON.toJSONString(queryDTO);
         log.info("dataDetailList >> query:{}", query);
-        BusResultVO resultVO = busService.resourceDataItemsQuery(JSON.parseObject(query, new TypeReference<Map<String,Object>>(){{}}));
+        BusResultVO resultVO = busService.resourceDataItemsQuery(JSON.parseObject(query, new TypeReference<Map<String,Object>>(){{}}), "");
+
+        String idcard = ContextUtils.getUserInfo() == null ? "" : ContextUtils.getUserInfo().getIdcard();
+
+
         Condition idcardCondition = searchable.getSearchFilter("idcard", SearchOperator.eq);
         if (idcardCondition != null && idcardCondition.getValue() != null){
-            String idcard = String.valueOf(resourceNameCondition.getValue());
-            List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(idcard, null);
+            idcard = String.valueOf(idcardCondition.getValue());
+        }
+        List<DataClassifyDTO> dataClassifyDTOList = dataAuthBusiness.userDataAuthInfoByIdcard(idcard, null);
             Map<String, List<String>> listMap = new HashMap<>();
 
             for (DataClassifyDTO dataClassifyDTO : dataClassifyDTOList) {
@@ -390,7 +404,6 @@ public class DataAuthServiceImpl implements IDataAuthService {
                 }
                 resourceCatalogVO.setDataItems(list);
             }
-        }
         return resultVO;
     }
 
@@ -453,13 +466,14 @@ public class DataAuthServiceImpl implements IDataAuthService {
      * 获取数据项的分类代码、安全等级
      *
      * @param dataItemsDto
+     * @param currentIdcard
      * @return
      */
-    private void getDataItemClassify(DataItemsDto dataItemsDto, Map<String, List<String>> listMap, LinkedHashMap<String, List<String>> dataListMap) {
+    private void getDataItemClassify(DataItemsDto dataItemsDto, Map<String, List<String>> listMap, LinkedHashMap<String, List<String>> dataListMap, String currentIdcard) {
 
         //构建参数
         Map<String, Object> paramMap = buildSearcher(dataItemsDto.getResourceCode());
-        BusResultVO busResultVO = busService.resourceDataItemsQuery(paramMap);
+        BusResultVO busResultVO = busService.resourceDataItemsQuery(paramMap, currentIdcard);
         List<ResourceCatalogVO> resourceCatalogVOList = busResultVO.getResultData().getDataList();
         if (CollectionUtils.isNotEmpty(resourceCatalogVOList)){
             //数据资源标识符只可能对应一条数据

+ 21 - 1
dcuc-auth-service/src/main/java/com/dragoninfo/dcuc/auth/auth/service/impl/ServiceAuthResultServiceImpl.java

@@ -184,6 +184,7 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
                     serviceAuthResult.setAuthStatus(authStatus);
                     serviceAuthResult.setUpdateTime(date);
                     serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
+                    serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
                     serviceAuthResultBPO.update(serviceAuthResult);
                 } else {
                     //不存在的新增
@@ -200,6 +201,7 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
                     serviceAuthResult.setServiceId(serviceResource.getId());
                     serviceAuthResult.setAppId(appId);
                     serviceAuthResult.setFlowId(serviceAuthFlow.getFlowId());
+                    serviceAuthResult.setMessageId(serviceAuthFlow.getMessageId());
                     saveAuthResult(serviceAuthResult);
                 }
             }
@@ -211,7 +213,7 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
                     .collect(Collectors.toList());
             for (ServiceAuthResult serviceAuthResult : result) {
                 serviceAuthResult.setDeleted(BooleanEnum.TRUE.getValue());
-                serviceAuthResult.setUpdateTime(date);
+                serviceAuthResult.setDeleteTime(date);
                 serviceAuthFlow.setFlowId(serviceAuthFlow.getFlowId());
                 serviceAuthResultBPO.update(serviceAuthResult);
             }
@@ -488,4 +490,22 @@ public class ServiceAuthResultServiceImpl implements IServiceAuthResultService {
         return dto;
     }
 
+    @Override
+    public Page<ServiceAuthResultDTO> serviceResultPageJoinFlow(Searchable searchable) {
+        searchable.addSearchFilter("deleted", SearchOperator.eq, BooleanEnum.FALSE.getValue());
+        searchable.addSearchFilter("service_deleted", SearchOperator.eq, BooleanEnum.FALSE.getValue());
+        searchable.addSearchFilter("app_deleted", SearchOperator.eq, BooleanEnum.FALSE.getValue());
+        Page<ServiceAuthResultPO> paging = serviceAuthResultBPO.serviceResultPageJoinFlow(searchable);
+        List<ServiceAuthResultDTO> dtos=new ArrayList<>();
+        paging.forEach(item->{
+            ServiceAuthResultDTO dto=new ServiceAuthResultDTO();
+            BeanUtils.copyProperties(item,dto);
+            dto.setAuthStatus(item.getServiceStatus());
+            dtos.add(dto);
+        });
+        Pageable newPageable = new PageRequest(paging.getNumber(), paging.getSize());
+        PageImpl<ServiceAuthResultDTO> pageResult = new PageImpl<>(dtos, newPageable, paging.getTotalElements());
+        return pageResult;
+    }
+
 }

+ 50 - 0
dcuc-auth-service/src/main/resources/config/mysql/V4_3_0004__Update_Table.sql

@@ -0,0 +1,50 @@
+-- 授权申请单新增应用事权单位和管理单位
+ALTER TABLE `t_service_auth_flow` ADD `app_manager_org_name` varchar(255) DEFAULT NULL;
+ALTER TABLE `t_service_auth_flow` ADD `app_manager_org_code` varchar(100) DEFAULT NULL;
+ALTER TABLE `t_service_auth_flow` ADD `app_org_name` varchar(255) DEFAULT NULL;
+ALTER TABLE `t_service_auth_flow` ADD `app_org_code` varchar(100) DEFAULT NULL;
+
+-- 授权结果表新增删除时间
+ALTER TABLE `t_service_auth_result` ADD `delete_time` datetime DEFAULT NULL;
+
+-- 授权结果表新增message_id
+ALTER TABLE `t_service_auth_result` ADD `message_id` VARCHAR(255) DEFAULT NULL;
+
+-- 新增索引
+ALTER TABLE `t_service_auth_flow` ADD index `message_id_inx`(`message_id`);
+ALTER TABLE `t_service_auth_result` ADD index `message_id_inx`(`message_id`);
+
+-- 修改字段长度
+ALTER TABLE `t_service_auth_flow` MODIFY `service_names` VARCHAR(800);
+
+-- 历史数据处理
+UPDATE `t_service_auth_result` r JOIN `t_service_auth_flow` f ON r.flow_id = f.flow_id SET r.message_id = f.message_id;
+
+-- 应用数据同步结束后手动执行
+-- UPDATE `t_service_auth_flow` f
+-- JOIN (
+-- 	SELECT
+-- 		a1.`apply_code` as `apply_code`,
+-- 		o.`CODE` AS org_code,
+-- 		o.FULL_NAME AS `org_name`
+-- 	FROM
+-- 		`t_apply_info` a1
+-- 	INNER JOIN `t_org_info` o
+-- 	ON a1.org_id = o.id
+-- ) a ON f.app_code = a.apply_code
+-- SET f.app_org_code = a.org_code, f.app_org_name = a.org_name;
+--
+--
+--
+-- UPDATE `t_service_auth_flow` f
+-- JOIN (
+-- 	SELECT
+-- 		a1.`apply_code` as `apply_code`,
+-- 		o.`CODE` AS org_code,
+-- 		o.FULL_NAME AS `org_name`
+-- 	FROM
+-- 		`t_apply_info` a1
+-- 	INNER JOIN `t_org_info` o
+-- 	ON a1.manager_org_id = o.id
+-- ) a ON f.app_code = a.apply_code
+-- SET f.app_manager_org_code = a.org_code, f.app_manager_org_name = a.org_name;

+ 3 - 0
dcuc-auth-service/src/main/resources/config/mysql/V4_3_0005__Add_AuthFlow.sql

@@ -0,0 +1,3 @@
+ALTER TABLE `T_SERVICE_AUTH_FLOW` ADD `applicant_id` varchar(32) DEFAULT NULL COMMENT '申请单号';
+ALTER TABLE `T_SERVICE_AUTH_FLOW` ADD `apply_reason` varchar(500) DEFAULT NULL COMMENT '申请原因';
+

+ 7 - 1
dcuc-auth-service/src/main/resources/config/mysql/V4_3_0005__init_app_fun.sql

@@ -36,4 +36,10 @@ INSERT INTO `t_menu_info` (`id`, `name`, `code`, `app_id`, `parent_id`, `url`, `
  INSERT INTO `t_menu_info` (`id`, `name`, `code`, `app_id`, `parent_id`, `url`, `show_mode`, `param_name`, `param_value`, `is_active`, `seq`, `create_time`, `creator`, `modified_time`, `modifier`, `remark`, `is_system`, `is_hide`)
  VALUES ('6510a33dsdf04y199db6123bb3edasdk', '数据授权查询', 'QXGL_SQCX_SJSQCX', '00000000000000000000000000000000', '6510a37b1df04yokijb6123bb97hasdk', NULL, '1', NULL, NULL, '1', '4', '2020-12-04 16:53:04', NULL, '2020-12-04 16:53:04', NULL, NULL, '0', '0');
  INSERT INTO `t_menu_info` (`id`, `name`, `code`, `app_id`, `parent_id`, `url`, `show_mode`, `param_name`, `param_value`, `is_active`, `seq`, `create_time`, `creator`, `modified_time`, `modifier`, `remark`, `is_system`, `is_hide`)
- VALUES ('6510a33dsdf04y1992sa123bb3edasdk', '人员视角', 'QXGL_SQCX_SJSQCX_RYSJ', '00000000000000000000000000000000', '6510a33dsdf04y199db6123bb3edasdk', NULL, '1', NULL, NULL, '1', '4', '2020-12-04 16:53:04', NULL, '2020-12-04 16:53:04', NULL, NULL, '0', '0');
+ VALUES ('6510a33dsdf04y1992sa123bb3edasdk', '人员视角', 'QXGL_SQCX_SJSQCX_RYSJ', '00000000000000000000000000000000', '6510a33dsdf04y199db6123bb3edasdk', NULL, '1', NULL, NULL, '1', '4', '2020-12-04 16:53:04', NULL, '2020-12-04 16:53:04', NULL, NULL, '0', '0');
+
+INSERT INTO `t_menu_info` (`id`,`name`,`code`,`app_id`,`parent_id`,`url`,`show_mode`,`param_name`,`param_value`,`is_active`,`seq`,`create_time`,`creator`,`modified_time`,`modifier`,`remark`,`is_system`,`is_hide`)
+VALUES('156aeb2baf5611ebb10c005056bd2a78','服务授权管理','QXGL_SQGL_FWSQGL','00000000000000000000000000000000',NULL,NULL,'1',NULL,NULL,'1','4','2021-05-07 00:00:00',NULL,'2021-05-07 00:00:00',NULL,NULL,'0','0');
+
+INSERT INTO `t_menu_info` (`id`,`name`,`code`,`app_id`,`parent_id`,`url`,`show_mode`,`param_name`,`param_value`,`is_active`,`seq`,`create_time`,`creator`,`modified_time`,`modifier`,`remark`,`is_system`,`is_hide`)
+VALUES('221cad41af5611ebb10c005056bd2a78','服务授权','QXGL_SQGL_FWSQGL_FWSQ','00000000000000000000000000000000','156aeb2baf5611ebb10c005056bd2a78',NULL,'1',NULL,NULL,'1','4','2021-05-07 00:00:00',NULL,'2021-05-07 00:00:00',NULL,NULL,'0','0');

+ 50 - 0
dcuc-auth-service/src/main/resources/config/sql/V4_3_0005__Update_Table.sql

@@ -0,0 +1,50 @@
+-- 授权申请单新增应用事权单位和管理单位
+ALTER TABLE "T_SERVICE_AUTH_FLOW" ADD "APP_MANAGER_ORG_NAME" VARCHAR2(255 BYTE) DEFAULT NULL;
+ALTER TABLE "T_SERVICE_AUTH_FLOW" ADD "APP_MANAGER_ORG_CODE" VARCHAR2(100 BYTE) DEFAULT NULL;
+ALTER TABLE "T_SERVICE_AUTH_FLOW" ADD "APP_ORG_NAME" VARCHAR2(255 BYTE) DEFAULT NULL;
+ALTER TABLE "T_SERVICE_AUTH_FLOW" ADD "APP_ORG_CODE" VARCHAR2(100 BYTE) DEFAULT NULL;
+
+-- 授权结果表新增删除时间
+ALTER TABLE "T_SERVICE_AUTH_RESULT" ADD "DELETE_TIME" TIMESTAMP(0) DEFAULT NULL;
+
+-- 授权结果表新增message_id
+ALTER TABLE "T_SERVICE_AUTH_RESULT" ADD "MESSAGE_ID" VARCHAR2(255 BYTE) DEFAULT NULL;
+
+-- 新增索引
+ALTER TABLE "T_SERVICE_AUTH_FLOW" ADD index "message_id_inx"("message_id");
+ALTER TABLE "T_SERVICE_AUTH_RESULT" ADD index "message_id_inx"("message_id");
+
+-- 修改字段长度
+ALTER TABLE "T_SERVICE_AUTH_FLOW" MODIFY "SERVICE_NAMES" VARCHAR2(1600);
+
+-- 历史数据处理
+UPDATE "T_SERVICE_AUTH_RESULT" r JOIN "T_SERVICE_AUTH_FLOW" f ON r."FLOW_ID" = f."FLOW_ID" SET r."MESSAGE_ID" = f."MESSAGE_ID";
+
+-- 应用数据同步结束后手动执行
+-- UPDATE "T_SERVICE_AUTH_FLOW" f
+-- JOIN (
+-- 	SELECT
+-- 		a1."APPLY_CODE" as "APPLY_CODE",
+-- 		o."CODE" as "ORG_CODE",
+-- 		o."FULL_NAME" as "ORG_NAME"
+-- 	FROM
+-- 		"T_APPLY_INFO" a1
+-- 	INNER JOIN "T_ORG_INFO" o
+-- 	ON a1."ORG_ID" = o."ID"
+-- ) a ON f."APP_CODE" = a."APPLY_CODE"
+-- SET f."APP_ORG_CODE" = a."ORG_CODE", f."APP_ORG_NAME" = a."ORG_NAME";
+--
+--
+--
+-- UPDATE "T_SERVICE_AUTH_FLOW" f
+-- JOIN (
+-- 	SELECT
+-- 		a1."APPLY_CODE" as "APPLY_CODE",
+-- 		o."CODE" as "ORG_CODE",
+-- 		o."FULL_NAME" as "ORG_NAME"
+-- 	FROM
+-- 		"T_APPLY_INFO" a1
+-- 	INNER JOIN "T_ORG_INFO" o
+-- 	ON a1."MANAGER_ORG_ID" = o."ID"
+-- ) a ON f."APP_CODE" = a."APPLY_CODE"
+-- SET f."APP_ORG_CODE" = a."ORG_CODE", f."APP_ORG_NAME" = a."ORG_NAME";

+ 5 - 0
dcuc-auth-service/src/main/resources/config/sql/V4_3_0006__Add_AuthFlow.sql

@@ -0,0 +1,5 @@
+alter table T_SERVICE_AUTH_FLOW add applicant_id varchar2(32);
+comment on column T_SERVICE_AUTH_FLOW.applicant_id is '申请单号id';
+
+alter table "T_SERVICE_AUTH_FLOW" add "APPLY_REASON" varchar2(500);
+comment on column T_SERVICE_AUTH_FLOW.applicant_id is '申请原因';

+ 7 - 1
dcuc-auth-service/src/main/resources/config/sql/V4_3_0006__init_app_fun.sql

@@ -37,4 +37,10 @@ INSERT INTO "T_MENU_INFO" ("ID", "NAME", "CODE", "APP_ID", "PARENT_ID", "URL", "
  INSERT INTO "T_MENU_INFO" ("ID", "NAME", "CODE", "APP_ID", "PARENT_ID", "URL", "SHOW_MODE", "PARAM_NAME", "PARAM_VALUE", "IS_ACTIVE", "SEQ", "CREATE_TIME", "CREATOR", "MODIFIED_TIME", "MODIFIER", "REMARK", "IS_SYSTEM", "IS_HIDE")
  VALUES ('6510a33dsdf04y199db6123bb3edasdk', '数据授权查询', 'QXGL_SQCX_SJSQCX', '00000000000000000000000000000000', '6510a37b1df04yokijb6123bb97hasdk', NULL, '1', NULL, NULL, '1', '4', TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, '0', '0');
 INSERT INTO "T_MENU_INFO" ("ID", "NAME", "CODE", "APP_ID", "PARENT_ID", "URL", "SHOW_MODE", "PARAM_NAME", "PARAM_VALUE", "IS_ACTIVE", "SEQ", "CREATE_TIME", "CREATOR", "MODIFIED_TIME", "MODIFIER", "REMARK", "IS_SYSTEM", "IS_HIDE")
- VALUES ('6510a33dsdf04y1992sa123bb3edasdk', '人员视角', 'QXGL_SQCX_SJSQCX_RYSJ', '00000000000000000000000000000000', '6510a33dsdf04y199db6123bb3edasdk', NULL, '1', NULL, NULL, '1', '4', TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, '0', '0');
+ VALUES ('6510a33dsdf04y1992sa123bb3edasdk', '人员视角', 'QXGL_SQCX_SJSQCX_RYSJ', '00000000000000000000000000000000', '6510a33dsdf04y199db6123bb3edasdk', NULL, '1', NULL, NULL, '1', '4', TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, TO_DATE('2021-04-23 09:56:35', 'SYYYY-MM-DD HH24:MI:SS'), NULL, NULL, '0', '0');
+
+INSERT INTO "T_MENU_INFO" ("ID", "NAME", "CODE", "APP_ID", "PARENT_ID", "URL", "SHOW_MODE", "PARAM_NAME", "PARAM_VALUE", "IS_ACTIVE", "SEQ", "CREATE_TIME", "CREATOR", "MODIFIED_TIME", "MODIFIER", "REMARK", "IS_SYSTEM", "IS_HIDE")
+VALUES('156aeb2baf5611ebb10c005056bd2a78','服务授权管理','QXGL_SQGL_FWSQGL','00000000000000000000000000000000',NULL,NULL,'1',NULL,NULL,'1','4','2021-05-07 00:00:00',NULL,'2021-05-07 00:00:00',NULL,NULL,'0','0');
+
+INSERT INTO "T_MENU_INFO" ("ID", "NAME", "CODE", "APP_ID", "PARENT_ID", "URL", "SHOW_MODE", "PARAM_NAME", "PARAM_VALUE", "IS_ACTIVE", "SEQ", "CREATE_TIME", "CREATOR", "MODIFIED_TIME", "MODIFIER", "REMARK", "IS_SYSTEM", "IS_HIDE")
+VALUES('221cad41af5611ebb10c005056bd2a78','服务授权','QXGL_SQGL_FWSQGL_FWSQ','00000000000000000000000000000000','156aeb2baf5611ebb10c005056bd2a78',NULL,'1',NULL,NULL,'1','4','2021-05-07 00:00:00',NULL,'2021-05-07 00:00:00',NULL,NULL,'0','0');