Procházet zdrojové kódy

新增根据管理分区查询项目信息接口

lijie před 3 roky
rodič
revize
74aa7530a8

+ 43 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/basic/dto/RequestData.java

@@ -0,0 +1,43 @@
+package com.persagy.dmp.rwd.basic.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonAlias;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.hibernate.validator.constraints.Range;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import java.util.List;
+import java.util.Set;
+
+/***
+ * @Description: 统一的请求体封装对象
+ * @author: lijie
+ * @Date:2020/7/9 10:35
+ * Update By lijie 2020/7/9 10:35
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class RequestData {
+
+    /**账号id*/
+    @JsonAlias({"user_id"})
+    @JsonProperty("userId")
+    @JSONField(name = "userId",alternateNames = {"user_id"})
+    private String userId;
+    /**管理分区id*/
+    @JsonAlias({"group_manage_zone_ids"})
+    @JsonProperty("groupManageZoneIds")
+    @JSONField(name = "groupManageZoneIds",alternateNames = {"group_manage_zone_ids"})
+    private Set<String> groupManageZoneIds;
+
+
+}

+ 22 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/controller/ObjectDigitalController.java

@@ -15,6 +15,7 @@ import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.common.utils.ParamCheckUtil;
 import com.persagy.dmp.common.utils.ResultHelper;
 import com.persagy.dmp.mybatis.utils.ConditionUtil;
+import com.persagy.dmp.rwd.basic.dto.RequestData;
 import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
 import com.persagy.dmp.rwd.digital.service.IObjectDigitalService;
 import com.persagy.dmp.rwd.digital.service.ProjectBusinessService;
@@ -43,6 +44,7 @@ public class ObjectDigitalController{
     private ProjectBusinessService projectBusinessService;
 
     @PostMapping("/query")
+    @Deprecated
     public CommonResult<List<ObjectNode>> query(@RequestBody QueryCriteria criteria) {
         if(criteria == null) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
@@ -70,6 +72,7 @@ public class ObjectDigitalController{
     }
 
     @PostMapping("/createOne")
+    @Deprecated
     public CommonResult<ObjectDigital> create(@Valid @RequestBody ObjectNode node){
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE,CommonConstant.QUERY_PROJECTID);
@@ -81,6 +84,7 @@ public class ObjectDigitalController{
     }
 
     @PostMapping("/create")
+    @Deprecated
     public CommonResult<List<ObjectDigital>> createBatch(@Valid @RequestBody ArrayNode array){
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE,CommonConstant.QUERY_PROJECTID);
@@ -91,6 +95,7 @@ public class ObjectDigitalController{
     }
 
     @PostMapping("/updateOne")
+    @Deprecated
     public CommonResult<ObjectDigital> update(@Valid @RequestBody ObjectNode node){
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE,CommonConstant.QUERY_PROJECTID);
@@ -102,6 +107,7 @@ public class ObjectDigitalController{
     }
 
     @PostMapping("/update")
+    @Deprecated
     public CommonResult<List<ObjectDigital>> updateBatch(@Valid @RequestBody ArrayNode array){
         //基础参数校验
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE,CommonConstant.QUERY_PROJECTID);
@@ -112,12 +118,14 @@ public class ObjectDigitalController{
     }
 
     @PostMapping("/deleteOne")
+    @Deprecated
     public CommonResult delete(@RequestBody String id){
         service.delete(CollUtil.newArrayList(id));
         return ResultHelper.success();
     }
 
     @PostMapping("/delete")
+    @Deprecated
     public CommonResult deleteBatch(@RequestBody List<String> id){
         service.delete(id);
         return ResultHelper.success();
@@ -136,5 +144,19 @@ public class ObjectDigitalController{
         ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
         return projectBusinessService.batchQueryProjectByIds(idList);
     }
+    /***
+     * Description: 根据管理分区id批量查询项目信息
+     * @param requestData : 请求参数
+     * @return : com.persagy.dmp.common.model.response.CommonResult<com.fasterxml.jackson.databind.node.ObjectNode>
+     * @author : lijie
+     * @date :2021/8/18 15:55
+     * Update By lijie 2021/8/18 15:55
+     */
+    @PostMapping("/batchQueryProjectByGroupManageZoneIds")
+    public CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(@RequestBody RequestData requestData) {
+        //基础参数校验
+        ParamCheckUtil.checkParam(CommonConstant.QUERY_GROUPCODE);
+        return projectBusinessService.batchQueryProjectByGroupManageZoneIds(requestData.getGroupManageZoneIds());
+    }
 
 }

+ 2 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/entity/ObjectDigital.java

@@ -22,6 +22,8 @@ public class ObjectDigital extends AuditableEntity {
 
     /** 扩展属性列 */
     public static final String EXTRA_COLUMN = "infos";
+    /** 扩展属性列 */
+    public static final String OBJ_TYPE = "obj_type";
 
     /** 项目ID */
     private String projectId;

+ 10 - 1
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/ProjectBusinessService.java

@@ -4,6 +4,7 @@ import com.persagy.dmp.common.model.response.CommonResult;
 import com.persagy.dmp.rwd.digital.entity.ObjectDigital;
 
 import java.util.List;
+import java.util.Set;
 
 /***
  * Description: 项目业务逻辑处理接口
@@ -22,5 +23,13 @@ public interface ProjectBusinessService {
      * Update By lijie 2021/8/18 15:56
      */
     CommonResult<List<ObjectDigital>> batchQueryProjectByIds(List<String> projectIds);
-
+    /***
+     * Description: 根据管理分区id批量查询项目信息
+     * @param groupManageZoneIds : 管理分区id集合
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.rwd.digital.entity.ObjectDigital>>  
+     * @author : lijie
+     * @date :2021/8/19 14:09
+     * Update By lijie 2021/8/19 14:09
+     */
+    CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(Set<String> groupManageZoneIds);
 }

+ 27 - 0
dmp-business/dmp-rwd/src/main/java/com/persagy/dmp/rwd/digital/service/impl/ProjectBusinessServiceImpl.java

@@ -1,7 +1,9 @@
 package com.persagy.dmp.rwd.digital.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.persagy.dmp.common.constant.CommonConstant;
 import com.persagy.dmp.common.context.AppContext;
 import com.persagy.dmp.common.model.response.CommonResult;
@@ -16,6 +18,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Set;
 
 @Service
 @Slf4j
@@ -49,4 +52,28 @@ public class ProjectBusinessServiceImpl implements ProjectBusinessService {
         }
         return ResultHelper.multi(objectDigitals);
     }
+    /***
+     * Description: 根据管理分区id批量查询项目信息
+     * @param groupManageZoneIds : 管理分区id集合
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.dmp.rwd.digital.entity.ObjectDigital>>
+     * @author : lijie
+     * @date :2021/8/19 14:09
+     * Update By lijie 2021/8/19 14:09
+     */
+    @Override
+    public CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(Set<String> groupManageZoneIds) {
+        QueryWrapper<ObjectDigital> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StrUtil.toUnderlineCase(CommonConstant.QUERY_GROUPCODE), AppContext.getContext().getGroupCode());
+        queryWrapper.eq(ObjectDigital.PROP_VALID,true);
+        queryWrapper.eq(ObjectDigital.OBJ_TYPE, DigitalObjectType.PROJECT.getIndex());
+        if (CollUtil.isNotEmpty(groupManageZoneIds)){
+            queryWrapper.in("JSON_VALUE(infos,'$.groupManageZone')",groupManageZoneIds);
+        }
+        // 2.查询项目信息
+        List<ObjectDigital> objectDigitals = objectDigitalMapper.selectList(queryWrapper);
+        if (CollUtil.isEmpty(objectDigitals)){
+            return ResultHelper.success();
+        }
+        return ResultHelper.multi(objectDigitals);
+    }
 }

+ 18 - 1
dmp-comp/dmp-digital-starter/pom.xml

@@ -11,7 +11,14 @@
     <groupId>com.persagy</groupId>
     <artifactId>dmp-digital-starter</artifactId>
     <version>1.0.0</version>
-
+    <!--<repositories>
+        <repository>
+            &lt;!&ndash; nexus服务器中用户名:在settings.xml中<server>的id&ndash;&gt;
+            <id>persagy</id>
+            <name>persagy</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+        </repository>
+    </repositories>-->
     <dependencies>
         <!-- fm 工具包 -->
         <dependency>
@@ -33,4 +40,14 @@
             <scope>compile</scope>
         </dependency>
     </dependencies>
+
+    <!--<distributionManagement>
+        <repository>
+            &lt;!&ndash; nexus服务器中用户名:在settings.xml中<server>的id&ndash;&gt;
+            <id>persagy</id>
+            <name>persagy</name>
+            <url>http://47.93.132.139:8081/nexus/content/repositories/persagy/</url>
+            <uniqueVersion>true</uniqueVersion>
+        </repository>
+    </distributionManagement>-->
 </project>

+ 28 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/basic/dto/RequestData.java

@@ -0,0 +1,28 @@
+package com.persagy.dmp.basic.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Set;
+
+/***
+ * @Description: 统一的请求体封装对象
+ * @author: lijie
+ * @Date:2020/7/9 10:35
+ * Update By lijie 2020/7/9 10:35
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class RequestData {
+
+    /**账号id*/
+    private String userId;
+    /**管理分区id*/
+    private Set<String> groupManageZoneIds;
+
+
+}

+ 17 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/define/client/DigitalDefineClient.java

@@ -3,6 +3,7 @@ package com.persagy.dmp.define.client;
 import com.persagy.dmp.basic.config.DigitalFeignConfig;
 import com.persagy.dmp.basic.model.QueryCriteria;
 import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.digital.entity.ObjectDigital;
 import com.persagy.dmp.define.entity.ObjectTypeDefine;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -35,4 +36,20 @@ public interface DigitalDefineClient {
             @RequestParam("appId") String appId,
             @RequestParam("userId") String userId,
             @RequestBody QueryCriteria criteria);
+    /**
+     * 查询类型定义
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param criteria 查询条件
+     * @return 类型定义
+     */
+    @PostMapping("/rwd/instance/object/batchQueryProjectByGroupManageZoneIds")
+    CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody QueryCriteria criteria);
 }

+ 53 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjecctFacade.java

@@ -0,0 +1,53 @@
+package com.persagy.dmp.digital.client;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
+import com.persagy.dmp.digital.entity.ObjectDigital;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 数据字典Client门面
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+public class DigitalObjecctFacade {
+
+    private static DigitalObjectClient client = SpringUtil.getBean(DigitalObjectClient.class);
+
+    /**
+     * 根据项目id批量查询项目信息
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param projectIds: 项目id数组
+     * @return 类型定义
+     */
+    public static List<ObjectDigital> batchQueryProjectByIds(String groupCode, String projectId, String appId,
+                                                             String userId, Set<String> projectIds) {
+        CommonResult<List<ObjectDigital>> result = client.batchQueryProjectByIds(groupCode, projectId, appId,
+                userId, projectIds);
+        return ResultHelper.getContent(result);
+    }
+    /**
+     * 根据管理分区id批量查询项目信息
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param requestData: 请求参数
+     * @return 类型定义
+     */
+    public static List<ObjectDigital> batchQueryProjectByGroupManageZoneIds(String groupCode, String projectId, String appId,
+                                                             String userId, RequestData requestData) {
+        CommonResult<List<ObjectDigital>> result = client.batchQueryProjectByGroupManageZoneIds(groupCode, projectId, appId,
+                userId, requestData);
+        return ResultHelper.getContent(result);
+    }
+}

+ 59 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/client/DigitalObjectClient.java

@@ -0,0 +1,59 @@
+package com.persagy.dmp.digital.client;
+
+import com.persagy.dmp.basic.config.DigitalFeignConfig;
+import com.persagy.dmp.basic.dto.RequestData;
+import com.persagy.dmp.basic.model.QueryCriteria;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.digital.entity.ObjectDigital;
+import com.persagy.dmp.define.entity.ObjectTypeDefine;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+import java.util.Set;
+
+/***
+ * Description:对象管理Client
+ * @author : lijie
+ * @date :2021/8/19 17:38
+ * Update By lijie 2021/8/19 17:38
+ */
+@FeignClient(name = "dmp-rwd", configuration = DigitalFeignConfig.class)
+public interface DigitalObjectClient {
+
+    /**
+     * 根据项目id批量查询项目信息
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param projectIds: 项目id数组
+     * @return 类型定义
+     */
+    @PostMapping("/rwd/instance/object/batchQueryProjectByIds")
+    CommonResult<List<ObjectDigital>> batchQueryProjectByIds(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody Set<String> projectIds);
+
+    /**
+     * 根据管理分区id批量查询项目信息
+     * @param groupCode: 集团编码
+     * @param projectId: 项目ID
+     * @param appId: 应用ID
+     * @param userId: 用户ID
+     * @param requestData: 查询条件
+     * @return 类型定义
+     */
+    @PostMapping("/rwd/instance/object/batchQueryProjectByGroupManageZoneIds")
+    CommonResult<List<ObjectDigital>> batchQueryProjectByGroupManageZoneIds(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody RequestData requestData);
+}

+ 55 - 0
dmp-comp/dmp-digital-starter/src/main/java/com/persagy/dmp/digital/entity/ObjectDigital.java

@@ -0,0 +1,55 @@
+package com.persagy.dmp.digital.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import com.persagy.dmp.common.model.entity.AuditableEntity;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 对象数据
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName(value = "dt_object",autoResultMap = true)
+public class ObjectDigital extends AuditableEntity {
+
+    /** 扩展属性列 */
+    public static final String EXTRA_COLUMN = "infos";
+    /** 扩展属性列 */
+    public static final String OBJ_TYPE = "obj_type";
+
+    /** 项目ID */
+    private String projectId;
+    /** 名称 */
+    private String name;
+    /** 本地编码 */
+    private String localId;
+    /** 本地名称 */
+    private String localName;
+    /** 对象分类 */
+    private String objType;
+    /** 类型编码 */
+    private String classCode;
+    /** 集团编码 */
+    private String groupCode;
+    /** 组标识 mysql8中grouping是关键字,必须标识 */
+    @TableField(value = "`grouping`")
+    private Integer grouping;
+    /** 边类型编码 */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private ObjectNode infos;
+    /** 虚点清单 */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private List<String> virtualCodes;
+    /** 创建应用 */
+    private String createApp;
+    /** 最后修改应用 */
+    private String updateApp;
+}