浏览代码

1. 增加数字孪生客户端
2. 解决基类compareTo编译问题
3. 文件客户端中去除mybatis依赖
4. maven配置修改:打包时不再执行test,降低打包时间。

yucheng 3 年之前
父节点
当前提交
bae9ef4ac0
共有 41 个文件被更改,包括 363 次插入140 次删除
  1. 4 0
      dc-business/dc-digital/pom.xml
  2. 33 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/basic/constant/DigitalObjectTypeShort.java
  3. 10 9
      dc-business/dc-digital/src/main/java/com/persagy/dc/basic/utils/DigitalCommonUtils.java
  4. 9 9
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/ObjectInfoController.java
  5. 9 9
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/ObjectTypeController.java
  6. 2 2
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/RelationDefineController.java
  7. 2 2
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/dao/ObjectInfoMapper.java
  8. 2 2
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/dao/ObjectTypeMapper.java
  9. 9 9
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/IObjectInfoService.java
  10. 6 6
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/IObjectTypeService.java
  11. 34 34
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/impl/ObjectInfoServiceImpl.java
  12. 27 27
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/impl/ObjectTypeServiceImpl.java
  13. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/digital/entity/ObjectDigital.java
  14. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/digital/entity/ObjectRelation.java
  15. 3 3
      dc-business/dc-digital/src/main/java/com/persagy/dc/digital/service/impl/ObjectDigitalServiceImpl.java
  16. 3 3
      dc-business/dc-digital/src/main/java/com/persagy/dc/parser/entity/ParserResult.java
  17. 2 2
      dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/IInfoDataParser.java
  18. 2 2
      dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/InfoDataFactory.java
  19. 2 3
      dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/impl/AbstractInfoDataParser.java
  20. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeObjectInfo.java
  21. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeObjectType.java
  22. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeProject.java
  23. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeSchema.java
  24. 1 1
      dc-business/dc-digital/src/test/java/com/persagy/dc/define/test/ObjectTypeControllerTest.java
  25. 2 0
      dc-common/src/main/java/com/persagy/dc/common/context/DefaultAppContext.java
  26. 2 5
      dc-common/src/main/java/com/persagy/dc/common/model/entity/BaseEntity.java
  27. 1 3
      dc-common/src/main/java/com/persagy/dc/common/model/entity/IBaseEntity.java
  28. 9 0
      dc-comp/dc-digital-starter/README.md
  29. 36 0
      dc-comp/dc-digital-starter/pom.xml
  30. 41 0
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/config/DigitalFeignConfig.java
  31. 0 0
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/model/DigitalManageMessage.java
  32. 1 1
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/model/QueryCriteria.java
  33. 0 0
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/utils/JsonNodeUtils.java
  34. 37 0
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/define/client/DigitalDefineClient.java
  35. 32 0
      dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/define/client/DigitalDefineFacade.java
  36. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/entity/GraphDefine.java
  37. 2 0
      dc-business/dc-digital/src/main/java/com/persagy/dc/define/entity/RelationDefine.java
  38. 0 6
      dc-comp/dc-file-starter/pom.xml
  39. 0 2
      dc-comp/dc-file-starter/src/main/java/com/persagy/dc/storage/config/FileFeignConfig.java
  40. 1 0
      dc-comp/pom.xml
  41. 25 0
      dc-parent/pom.xml

+ 4 - 0
dc-business/dc-digital/pom.xml

@@ -30,5 +30,9 @@
             <groupId>com.persagy</groupId>
             <artifactId>dc-amqp-starter</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>dc-digital-starter</artifactId>
+        </dependency>
     </dependencies>
 </project>

+ 33 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/basic/constant/DigitalObjectTypeShort.java

@@ -0,0 +1,33 @@
+package com.persagy.dc.basic.constant;
+
+import lombok.Getter;
+
+/**
+ * 对象类型简写
+ * @author Charlie Yu
+ * @date 2021-06-25
+ */
+@Getter
+public enum DigitalObjectTypeShort {
+
+    /** 对象类型简写 */
+    PROJECT("Pj", "项目"),
+    BUILDING("Bd", "楼"),
+    FLOOR("Fl", "楼层"),
+    SPACE("Sp", "空间"),
+    SYSTEM("Sy", "系统"),
+    EQUIPMENT("Eq", "设备"),
+    SHAFT("Sh", "竖井"),
+    COMPONENT("Ec", "部件"),
+    VIRTUAL("Vo", "虚拟对象"),
+    TOOL("To", "工具"),
+    MATERIAL("Ma", "耗材");
+
+    private String index;
+    private String name;
+
+    DigitalObjectTypeShort(String index, String name) {
+        this.index = index;
+        this.name = name;
+    }
+}

+ 10 - 9
dc-business/dc-digital/src/main/java/com/persagy/dc/basic/utils/DigitalCommonUtils.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.persagy.dc.basic.constant.DigitalObjectType;
+import com.persagy.dc.basic.constant.DigitalObjectTypeShort;
 import com.persagy.dc.common.constant.CommonConstant;
 import com.persagy.dc.common.context.AppContext;
 import com.persagy.dc.common.model.entity.BaseEntity;
@@ -95,23 +96,23 @@ public class DigitalCommonUtils {
      */
     private static String getIdPrefix(String category) {
         if(DigitalObjectType.PROJECT.getIndex().equalsIgnoreCase(category)) {
-            return "Pj";
+            return DigitalObjectTypeShort.PROJECT.getIndex();
         } else if (DigitalObjectType.BUILDING.getIndex().equalsIgnoreCase(category)) {
-            return "Bd";
+            return DigitalObjectTypeShort.BUILDING.getIndex();
         } else if (DigitalObjectType.FLOOR.getIndex().equalsIgnoreCase(category)) {
-            return "Fl";
+            return DigitalObjectTypeShort.FLOOR.getIndex();
         } else if (DigitalObjectType.SPACE.getIndex().equalsIgnoreCase(category)) {
-            return "Sp";
+            return DigitalObjectTypeShort.SPACE.getIndex();
         } else if (DigitalObjectType.SYSTEM.getIndex().equalsIgnoreCase(category)) {
-            return "Sy";
+            return DigitalObjectTypeShort.SYSTEM.getIndex();
         } else if (DigitalObjectType.EQUIPMENT.getIndex().equalsIgnoreCase(category)) {
-            return "Eq";
+            return DigitalObjectTypeShort.EQUIPMENT.getIndex();
         } else if (DigitalObjectType.SHAFT.getIndex().equalsIgnoreCase(category)) {
-            return "Sh";
+            return DigitalObjectTypeShort.SHAFT.getIndex();
         } else if (DigitalObjectType.COMPONENT.getIndex().equalsIgnoreCase(category)) {
-            return "Ec";
+            return DigitalObjectTypeShort.COMPONENT.getIndex();
         } else if (DigitalObjectType.VIRTUAL.getIndex().equalsIgnoreCase(category)) {
-            return "Vo";
+            return DigitalObjectTypeShort.VIRTUAL.getIndex();
         } else {
             return "";
         }

+ 9 - 9
dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/ObjectInfoController.java

@@ -10,7 +10,7 @@ import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.model.response.CommonResult;
 import com.persagy.dc.common.model.response.PageList;
 import com.persagy.dc.common.utils.ResultHelper;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.define.service.IObjectInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,11 +34,11 @@ public class ObjectInfoController {
     private IObjectInfoService service;
 
     @PostMapping("query")
-    public CommonResult<PageList<ObjectInfo>> query(@RequestBody QueryCriteria criteria) {
+    public CommonResult<PageList<ObjectInfoDefine>> query(@RequestBody QueryCriteria criteria) {
         if(criteria == null) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }
-        QueryWrapper<ObjectInfo> wrapper = new QueryWrapper<>();
+        QueryWrapper<ObjectInfoDefine> wrapper = new QueryWrapper<>();
         // 添加所属项目条件
         DigitalCommonUtils.ensureProjectCriteria(wrapper);
         // 转换查询条件
@@ -53,27 +53,27 @@ public class ObjectInfoController {
     }
 
     @PostMapping("/create")
-    public CommonResult<ObjectInfo> create(@Valid @RequestBody ObjectInfo vo){
-        List<ObjectInfo> voList = CollUtil.newArrayList(vo);
+    public CommonResult<ObjectInfoDefine> create(@Valid @RequestBody ObjectInfoDefine vo){
+        List<ObjectInfoDefine> voList = CollUtil.newArrayList(vo);
         service.insert(voList);
         return ResultHelper.single(vo);
     }
 
     @PostMapping("/createBatch")
-    public CommonResult<PageList<ObjectInfo>> createBatch(@Valid @RequestBody List<ObjectInfo> voList){
+    public CommonResult<PageList<ObjectInfoDefine>> createBatch(@Valid @RequestBody List<ObjectInfoDefine> voList){
         voList = service.insert(voList);
         return ResultHelper.multi(voList);
     }
 
     @PostMapping("/update")
-    public CommonResult<ObjectInfo> update(@Valid @RequestBody ObjectInfo vo){
-        List<ObjectInfo> voList = CollUtil.newArrayList(vo);
+    public CommonResult<ObjectInfoDefine> update(@Valid @RequestBody ObjectInfoDefine vo){
+        List<ObjectInfoDefine> voList = CollUtil.newArrayList(vo);
         service.update(voList);
         return ResultHelper.single(vo);
     }
 
     @PostMapping("/updateBatch")
-    public CommonResult<PageList<ObjectInfo>> updateBatch(@Valid @RequestBody List<ObjectInfo> voList){
+    public CommonResult<PageList<ObjectInfoDefine>> updateBatch(@Valid @RequestBody List<ObjectInfoDefine> voList){
         voList = service.update(voList);
         return ResultHelper.multi(voList);
     }

+ 9 - 9
dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/ObjectTypeController.java

@@ -10,7 +10,7 @@ import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.model.response.CommonResult;
 import com.persagy.dc.common.model.response.PageList;
 import com.persagy.dc.common.utils.ResultHelper;
-import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
 import com.persagy.dc.define.service.IObjectTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,11 +34,11 @@ public class ObjectTypeController {
     private IObjectTypeService service;
 
     @PostMapping("query")
-    public CommonResult<PageList<ObjectType>> query(@RequestBody QueryCriteria criteria) {
+    public CommonResult<PageList<ObjectTypeDefine>> query(@RequestBody QueryCriteria criteria) {
         if(criteria == null) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }
-        QueryWrapper<ObjectType> wrapper = new QueryWrapper<>();
+        QueryWrapper<ObjectTypeDefine> wrapper = new QueryWrapper<>();
         // 添加所属项目条件
         DigitalCommonUtils.ensureProjectCriteria(wrapper);
         // 转换查询条件
@@ -48,27 +48,27 @@ public class ObjectTypeController {
     }
 
     @PostMapping("/create")
-	public CommonResult<ObjectType> create(@Valid @RequestBody ObjectType vo){
-        List<ObjectType> voList = CollUtil.newArrayList(vo);
+	public CommonResult<ObjectTypeDefine> create(@Valid @RequestBody ObjectTypeDefine vo){
+        List<ObjectTypeDefine> voList = CollUtil.newArrayList(vo);
         service.insert(voList);
 		return ResultHelper.single(vo);
 	}
 
     @PostMapping("/createBatch")
-    public CommonResult<PageList<ObjectType>> createBatch(@Valid @RequestBody List<ObjectType> voList){
+    public CommonResult<PageList<ObjectTypeDefine>> createBatch(@Valid @RequestBody List<ObjectTypeDefine> voList){
         voList = service.insert(voList);
         return ResultHelper.multi(voList);
     }
 
 	@PostMapping("/update")
-	public CommonResult<ObjectType> update(@Valid @RequestBody ObjectType vo){
-        List<ObjectType> voList = CollUtil.newArrayList(vo);
+	public CommonResult<ObjectTypeDefine> update(@Valid @RequestBody ObjectTypeDefine vo){
+        List<ObjectTypeDefine> voList = CollUtil.newArrayList(vo);
         service.update(voList);
 		return ResultHelper.single(vo);
 	}
 
     @PostMapping("/updateBatch")
-    public CommonResult<PageList<ObjectType>> updateBatch(@Valid @RequestBody List<ObjectType> voList){
+    public CommonResult<PageList<ObjectTypeDefine>> updateBatch(@Valid @RequestBody List<ObjectTypeDefine> voList){
         voList = service.update(voList);
         return ResultHelper.multi(voList);
     }

+ 2 - 2
dc-business/dc-digital/src/main/java/com/persagy/dc/define/controller/RelationDefineController.java

@@ -9,7 +9,7 @@ import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.model.response.CommonResult;
 import com.persagy.dc.common.model.response.PageList;
 import com.persagy.dc.common.utils.ResultHelper;
-import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
 import com.persagy.dc.define.entity.RelationDefine;
 import com.persagy.dc.define.service.IRelationDefineService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +31,7 @@ public class RelationDefineController {
     private IRelationDefineService service;
 
     @PostMapping("query")
-    public CommonResult<PageList<ObjectType>> query(@RequestBody QueryCriteria criteria) {
+    public CommonResult<PageList<ObjectTypeDefine>> query(@RequestBody QueryCriteria criteria) {
         if(criteria == null) {
             throw new BusinessException(ResponseCode.A0400.getCode(), ResponseCode.A0400.getDesc());
         }

+ 2 - 2
dc-business/dc-digital/src/main/java/com/persagy/dc/define/dao/ObjectInfoMapper.java

@@ -1,12 +1,12 @@
 package com.persagy.dc.define.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 
 /**
  * 信息点 DAO
  * @author Charlie Yu
  * @date 2021-06-25
  */
-public interface ObjectInfoMapper extends BaseMapper<ObjectInfo> {
+public interface ObjectInfoMapper extends BaseMapper<ObjectInfoDefine> {
 }

+ 2 - 2
dc-business/dc-digital/src/main/java/com/persagy/dc/define/dao/ObjectTypeMapper.java

@@ -1,12 +1,12 @@
 package com.persagy.dc.define.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
 
 /**
  * 对象类型 DAO
  * @author Charlie Yu
  * @date 2021-06-25
  */
-public interface ObjectTypeMapper extends BaseMapper<ObjectType> {
+public interface ObjectTypeMapper extends BaseMapper<ObjectTypeDefine> {
 }

+ 9 - 9
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/IObjectInfoService.java

@@ -2,7 +2,7 @@ package com.persagy.dc.define.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 
 import java.util.List;
 import java.util.Map;
@@ -19,35 +19,35 @@ public interface IObjectInfoService {
      * @param id
      * @return
      */
-    ObjectInfo load(String id);
+    ObjectInfoDefine load(String id);
 
     /**
      * 通过多主键查询
      * @param idList
      * @return
      */
-    List<ObjectInfo> queryByIds(List<String> idList);
+    List<ObjectInfoDefine> queryByIds(List<String> idList);
 
     /**
      * 通过对象类型编码查询
      * @param typeCode
      * @return
      */
-    List<ObjectInfo> queryByType(String typeCode);
+    List<ObjectInfoDefine> queryByType(String typeCode);
 
     /**
      * 通过多对象类型编码查询
      * @param typeCodeList
      * @return Map<typeCode, Map<InfoCode, ObjectInfo>>
      */
-    Map<String, Map<String, ObjectInfo>> queryByTypes(List<String> typeCodeList);
+    Map<String, Map<String, ObjectInfoDefine>> queryByTypes(List<String> typeCodeList);
 
     /**
      * 按条件查询
      * @param queryWrapper 查询条件
      * @return 列表
      */
-    List<ObjectInfo> queryByCondition(Wrapper<ObjectInfo> queryWrapper);
+    List<ObjectInfoDefine> queryByCondition(Wrapper<ObjectInfoDefine> queryWrapper);
 
     /**
      * 按条件查询
@@ -55,21 +55,21 @@ public interface IObjectInfoService {
      * @param queryWrapper 查询条件
      * @return 分页结果
      */
-    Page queryByCondition(Page page, Wrapper<ObjectInfo> queryWrapper);
+    Page queryByCondition(Page page, Wrapper<ObjectInfoDefine> queryWrapper);
 
     /**
      * 新增
      * @param voList 待新增数据
      * @return 新增后数据
      */
-    List<ObjectInfo> insert(List<ObjectInfo> voList);
+    List<ObjectInfoDefine> insert(List<ObjectInfoDefine> voList);
 
     /**
      * 修改
      * @param voList 待修改数据
      * @return 修改后数据
      */
-    List<ObjectInfo> update(List<ObjectInfo> voList);
+    List<ObjectInfoDefine> update(List<ObjectInfoDefine> voList);
 
     /**
      * 删除

+ 6 - 6
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/IObjectTypeService.java

@@ -2,7 +2,7 @@ package com.persagy.dc.define.service;
 
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
 
 import java.util.List;
 import java.util.Map;
@@ -26,7 +26,7 @@ public interface IObjectTypeService {
      * @param appId 应用ID
      * @return 列表结果
      */
-    List<ObjectType> queryByProjectAndApp(String projectId, String appId);
+    List<ObjectTypeDefine> queryByProjectAndApp(String projectId, String appId);
 
     /**
      * 按项目、应用查询 - 支持订阅
@@ -42,7 +42,7 @@ public interface IObjectTypeService {
      * @param queryWrapper 查询条件
      * @return 列表
      */
-    List<ObjectType> queryByCondition(Wrapper<ObjectType> queryWrapper);
+    List<ObjectTypeDefine> queryByCondition(Wrapper<ObjectTypeDefine> queryWrapper);
 
     /**
      * 按条件查询
@@ -50,21 +50,21 @@ public interface IObjectTypeService {
      * @param queryWrapper 查询条件
      * @return 分页结果
      */
-    Page queryByCondition(Page page, Wrapper<ObjectType> queryWrapper);
+    Page queryByCondition(Page page, Wrapper<ObjectTypeDefine> queryWrapper);
 
     /**
      * 新增
      * @param voList 待新增数据
      * @return 新增后数据
      */
-    List<ObjectType> insert(List<ObjectType> voList);
+    List<ObjectTypeDefine> insert(List<ObjectTypeDefine> voList);
 
     /**
      * 修改
      * @param voList 待修改数据
      * @return 修改后数据
      */
-    List<ObjectType> update(List<ObjectType> voList);
+    List<ObjectTypeDefine> update(List<ObjectTypeDefine> voList);
 
     /**
      * 删除

+ 34 - 34
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/impl/ObjectInfoServiceImpl.java

@@ -13,7 +13,7 @@ import com.persagy.dc.common.constant.ValidEnum;
 import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.model.entity.BaseEntity;
 import com.persagy.dc.define.dao.ObjectInfoMapper;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.define.service.IObjectInfoService;
 import com.persagy.dc.parser.service.InfoDataFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,49 +39,49 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
     private DigitalMessageHelper messageSender;
 
     @Override
-    public ObjectInfo load(String id) {
+    public ObjectInfoDefine load(String id) {
         return dao.selectById(id);
     }
 
     @Override
-    public List<ObjectInfo> queryByIds(List<String> idList) {
+    public List<ObjectInfoDefine> queryByIds(List<String> idList) {
         return dao.selectBatchIds(idList);
     }
 
     @Override
-    public List<ObjectInfo> queryByType(String typeCode) {
-        LambdaQueryWrapper<ObjectInfo> wrapper = new LambdaQueryWrapper();
-        wrapper.eq(ObjectInfo::getClassCode, typeCode);
-        wrapper.eq(ObjectInfo::getValid, ValidEnum.TRUE.getType());
-        wrapper.orderByAsc(ObjectInfo::getShowOrder);
+    public List<ObjectInfoDefine> queryByType(String typeCode) {
+        LambdaQueryWrapper<ObjectInfoDefine> wrapper = new LambdaQueryWrapper();
+        wrapper.eq(ObjectInfoDefine::getClassCode, typeCode);
+        wrapper.eq(ObjectInfoDefine::getValid, ValidEnum.TRUE.getType());
+        wrapper.orderByAsc(ObjectInfoDefine::getShowOrder);
         return queryByCondition(wrapper);
     }
 
     @Override
-    public Map<String, Map<String, ObjectInfo>> queryByTypes(List<String> typeCodeList) {
-        LambdaQueryWrapper<ObjectInfo> wrapper = new LambdaQueryWrapper();
-        wrapper.in(ObjectInfo::getClassCode, typeCodeList);
-        wrapper.eq(ObjectInfo::getValid, ValidEnum.TRUE.getType());
-        wrapper.orderByAsc(ObjectInfo::getShowOrder);
-        List<ObjectInfo> infoList = queryByCondition(wrapper);
+    public Map<String, Map<String, ObjectInfoDefine>> queryByTypes(List<String> typeCodeList) {
+        LambdaQueryWrapper<ObjectInfoDefine> wrapper = new LambdaQueryWrapper();
+        wrapper.in(ObjectInfoDefine::getClassCode, typeCodeList);
+        wrapper.eq(ObjectInfoDefine::getValid, ValidEnum.TRUE.getType());
+        wrapper.orderByAsc(ObjectInfoDefine::getShowOrder);
+        List<ObjectInfoDefine> infoList = queryByCondition(wrapper);
         if(CollUtil.isEmpty(infoList)) {
             return null;
         }
-        return infoList.stream().collect(Collectors.groupingBy(ObjectInfo::getClassCode, Collectors.toMap(ObjectInfo::getCode, p->p, (v1,v2) -> v1)));
+        return infoList.stream().collect(Collectors.groupingBy(ObjectInfoDefine::getClassCode, Collectors.toMap(ObjectInfoDefine::getCode, p->p, (v1, v2) -> v1)));
     }
 
     @Override
-    public List<ObjectInfo> queryByCondition(Wrapper<ObjectInfo> queryWrapper) {
+    public List<ObjectInfoDefine> queryByCondition(Wrapper<ObjectInfoDefine> queryWrapper) {
         return dao.selectList(queryWrapper);
     }
 
     @Override
-    public Page queryByCondition(Page page, Wrapper<ObjectInfo> queryWrapper) {
+    public Page queryByCondition(Page page, Wrapper<ObjectInfoDefine> queryWrapper) {
         return dao.selectPage(page, queryWrapper);
     }
 
     @Override
-    public List<ObjectInfo> insert(List<ObjectInfo> voList) {
+    public List<ObjectInfoDefine> insert(List<ObjectInfoDefine> voList) {
         if(CollUtil.isEmpty(voList)) {
             return null;
         }
@@ -98,16 +98,16 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
     }
 
     @Override
-    public List<ObjectInfo> update(List<ObjectInfo> voList) {
+    public List<ObjectInfoDefine> update(List<ObjectInfoDefine> voList) {
         if(CollUtil.isEmpty(voList)) {
             return null;
         }
         validateOnSave(voList, true);
         List<String> idList = CollUtil.getFieldValues(voList, BaseEntity.PROP_ID, String.class);
-        List<ObjectInfo> dbList = dao.selectBatchIds(idList);
-        Map<String, ObjectInfo> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
+        List<ObjectInfoDefine> dbList = dao.selectBatchIds(idList);
+        Map<String, ObjectInfoDefine> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
         voList.forEach(vo -> {
-            ObjectInfo dbVO = MapUtil.get(dbMap, vo.getId(), ObjectInfo.class);
+            ObjectInfoDefine dbVO = MapUtil.get(dbMap, vo.getId(), ObjectInfoDefine.class);
             // 容错处理
             if(dbVO == null) {
                 return;
@@ -128,10 +128,10 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
      * @param voList
      * @param isUpdate
      */
-    private void validateOnSave(List<ObjectInfo> voList, boolean isUpdate) {
+    private void validateOnSave(List<ObjectInfoDefine> voList, boolean isUpdate) {
         Set<String> codeSet = new HashSet<>();
         List<String> idList = new ArrayList<>();
-        for(ObjectInfo vo:voList) {
+        for(ObjectInfoDefine vo:voList) {
             // 编码重复
             if(!codeSet.add(vo.getCode())) {
                 throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", vo.getCode()));
@@ -144,15 +144,15 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
             }
         }
         // 查询条件
-        LambdaQueryWrapper<ObjectInfo> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(ObjectInfo::getCode);
-        queryWrapper.in(ObjectInfo::getValid, ValidEnum.TRUE.getType());
-        queryWrapper.in(ObjectInfo::getCode, codeSet);
+        LambdaQueryWrapper<ObjectInfoDefine> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(ObjectInfoDefine::getCode);
+        queryWrapper.in(ObjectInfoDefine::getValid, ValidEnum.TRUE.getType());
+        queryWrapper.in(ObjectInfoDefine::getCode, codeSet);
         if(isUpdate) {
-            queryWrapper.notIn(ObjectInfo::getId, idList);
+            queryWrapper.notIn(ObjectInfoDefine::getId, idList);
         }
         // 查询重复的编码
-        List<ObjectInfo> dbList = dao.selectList(queryWrapper);
+        List<ObjectInfoDefine> dbList = dao.selectList(queryWrapper);
         if(CollUtil.isEmpty(dbList)) {
             return;
         }
@@ -165,10 +165,10 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
         if(CollUtil.isEmpty(idList)) {
             return;
         }
-        List<ObjectInfo> dbList = dao.selectBatchIds(idList);
-        Map<String, ObjectInfo> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
+        List<ObjectInfoDefine> dbList = dao.selectBatchIds(idList);
+        Map<String, ObjectInfoDefine> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
         idList.forEach(id -> {
-            ObjectInfo dbVO = MapUtil.get(dbMap, id, ObjectInfo.class);
+            ObjectInfoDefine dbVO = MapUtil.get(dbMap, id, ObjectInfoDefine.class);
             // 容错处理
             if(dbVO == null) {
                 return;
@@ -176,7 +176,7 @@ public class ObjectInfoServiceImpl implements IObjectInfoService {
             // 删除前消息 - 暂不提供同步消息
 ///            messageSender.sendMessage(DigitalMessageConstant.OPERATE_BEFORE_DELETE, null, dbVO, true);
             // 删除
-            ObjectInfo vo = new ObjectInfo();
+            ObjectInfoDefine vo = new ObjectInfoDefine();
             vo.setId(id);
             vo.setValid(ValidEnum.FALSE.getType());
             dao.updateById(vo);

+ 27 - 27
dc-business/dc-digital/src/main/java/com/persagy/dc/define/service/impl/ObjectTypeServiceImpl.java

@@ -16,7 +16,7 @@ import com.persagy.dc.common.constant.ValidEnum;
 import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.model.entity.BaseEntity;
 import com.persagy.dc.define.dao.ObjectTypeMapper;
-import com.persagy.dc.define.entity.ObjectType;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
 import com.persagy.dc.define.service.IObjectTypeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheConfig;
@@ -45,9 +45,9 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
 
     @Override
     @Cacheable(key = "targetClass + methodName + #p0 + #p1")
-    public List<ObjectType> queryByProjectAndApp(String projectId, String appId) {
+    public List<ObjectTypeDefine> queryByProjectAndApp(String projectId, String appId) {
         // TODO 指定条件查询使用Redis
-        QueryWrapper<ObjectType> wrapper = new QueryWrapper<>();
+        QueryWrapper<ObjectTypeDefine> wrapper = new QueryWrapper<>();
         DigitalCommonUtils.ensureProjectCriteria(wrapper, projectId);
         if(StrUtil.isNotBlank(appId)) {
             // TODO 根据应用ID关联订阅条件
@@ -59,17 +59,17 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
     @Override
     @Cacheable(key = "targetClass + methodName")
     public Map<String, String> queryCodeNameMap() {
-        LambdaQueryWrapper<ObjectType> wrapper = new LambdaQueryWrapper<>();
-        wrapper.select(ObjectType::getId, ObjectType::getCode, ObjectType::getName);
-        wrapper.eq(ObjectType::getValid, ValidEnum.TRUE.getType());
-        List<ObjectType> voList = queryByCondition(wrapper);
+        LambdaQueryWrapper<ObjectTypeDefine> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(ObjectTypeDefine::getId, ObjectTypeDefine::getCode, ObjectTypeDefine::getName);
+        wrapper.eq(ObjectTypeDefine::getValid, ValidEnum.TRUE.getType());
+        List<ObjectTypeDefine> voList = queryByCondition(wrapper);
         return CollUtil.fieldValueAsMap(voList, "code", "name");
     }
 
     @Override
     public Page queryByProjectAndApp(Page page, String projectId, String appId) {
         // TODO 分页查询使用ES
-        QueryWrapper<ObjectType> wrapper = new QueryWrapper<>();
+        QueryWrapper<ObjectTypeDefine> wrapper = new QueryWrapper<>();
         DigitalCommonUtils.ensureProjectCriteria(wrapper, projectId);
         if(StrUtil.isNotBlank(appId)) {
             // TODO 根据应用ID关联订阅条件
@@ -79,18 +79,18 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
     }
 
     @Override
-    public List<ObjectType> queryByCondition(Wrapper<ObjectType> queryWrapper) {
+    public List<ObjectTypeDefine> queryByCondition(Wrapper<ObjectTypeDefine> queryWrapper) {
         return dao.selectList(queryWrapper);
     }
 
     @Override
-    public Page queryByCondition(Page page, Wrapper<ObjectType> queryWrapper) {
+    public Page queryByCondition(Page page, Wrapper<ObjectTypeDefine> queryWrapper) {
         return dao.selectPage(page, queryWrapper);
     }
 
     @Override
     @CacheEvict(allEntries = true)
-    public List<ObjectType> insert(List<ObjectType> voList) {
+    public List<ObjectTypeDefine> insert(List<ObjectTypeDefine> voList) {
         if(CollUtil.isEmpty(voList)) {
             return null;
         }
@@ -108,16 +108,16 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
 
     @Override
     @CacheEvict(allEntries = true)
-    public List<ObjectType> update(List<ObjectType> voList) {
+    public List<ObjectTypeDefine> update(List<ObjectTypeDefine> voList) {
         if(CollUtil.isEmpty(voList)) {
             return null;
         }
         validateOnSave(voList, true);
         List<String> idList = CollUtil.getFieldValues(voList, BaseEntity.PROP_ID, String.class);
-        List<ObjectType> dbList = dao.selectBatchIds(idList);
-        Map<String, ObjectType> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
+        List<ObjectTypeDefine> dbList = dao.selectBatchIds(idList);
+        Map<String, ObjectTypeDefine> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
         voList.forEach(vo -> {
-            ObjectType dbVO = MapUtil.get(dbMap, vo.getId(), ObjectType.class);
+            ObjectTypeDefine dbVO = MapUtil.get(dbMap, vo.getId(), ObjectTypeDefine.class);
             // 容错处理
             if(dbVO == null) {
                 return;
@@ -138,10 +138,10 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
      * @param voList
      * @param isUpdate
      */
-    private void validateOnSave(List<ObjectType> voList, boolean isUpdate) {
+    private void validateOnSave(List<ObjectTypeDefine> voList, boolean isUpdate) {
         Set<String> codeSet = new HashSet<>();
         List<String> idList = new ArrayList<>();
-        for(ObjectType vo:voList) {
+        for(ObjectTypeDefine vo:voList) {
             // 编码重复
             if(!codeSet.add(vo.getCode())) {
                 throw new BusinessException(StrFormatter.format("存在重复编码{},不允许保存!", vo.getCode()));
@@ -152,15 +152,15 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
             }
         }
         // 查询条件
-        LambdaQueryWrapper<ObjectType> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.select(ObjectType::getCode);
-        queryWrapper.in(ObjectType::getValid, ValidEnum.TRUE.getType());
-        queryWrapper.in(ObjectType::getCode, codeSet);
+        LambdaQueryWrapper<ObjectTypeDefine> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.select(ObjectTypeDefine::getCode);
+        queryWrapper.in(ObjectTypeDefine::getValid, ValidEnum.TRUE.getType());
+        queryWrapper.in(ObjectTypeDefine::getCode, codeSet);
         if(isUpdate) {
-            queryWrapper.notIn(ObjectType::getId, idList);
+            queryWrapper.notIn(ObjectTypeDefine::getId, idList);
         }
         // 查询重复的编码
-        List<ObjectType> dbList = dao.selectList(queryWrapper);
+        List<ObjectTypeDefine> dbList = dao.selectList(queryWrapper);
         if(CollUtil.isEmpty(dbList)) {
             return;
         }
@@ -174,10 +174,10 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
         if(CollUtil.isEmpty(idList)) {
             return;
         }
-        List<ObjectType> dbList = dao.selectBatchIds(idList);
-        Map<String, ObjectType> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
+        List<ObjectTypeDefine> dbList = dao.selectBatchIds(idList);
+        Map<String, ObjectTypeDefine> dbMap = CollectionUtil.fieldValueMap(dbList, BaseEntity.PROP_ID);
         idList.forEach(id -> {
-            ObjectType dbVO = MapUtil.get(dbMap, id, ObjectType.class);
+            ObjectTypeDefine dbVO = MapUtil.get(dbMap, id, ObjectTypeDefine.class);
             // 容错处理
             if(dbVO == null) {
                 return;
@@ -185,7 +185,7 @@ public class ObjectTypeServiceImpl implements IObjectTypeService {
             // 删除前消息 - 暂不提供同步消息
 ///            messageSender.sendMessage(DigitalMessageConstant.OPERATE_BEFORE_DELETE, null, dbVO, true);
             // 删除
-            ObjectType vo = new ObjectType();
+            ObjectTypeDefine vo = new ObjectTypeDefine();
             vo.setId(id);
             vo.setValid(ValidEnum.FALSE.getType());
             dao.updateById(vo);

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

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.util.List;
 
@@ -15,6 +16,7 @@ import java.util.List;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_object")
 public class ObjectDigital extends AuditableEntity {
     /** 项目ID */

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/digital/entity/ObjectRelation.java

@@ -3,6 +3,7 @@ package com.persagy.dc.digital.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 对象数据
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_relation")
 public class ObjectRelation extends AuditableEntity {
     /** 项目ID */

+ 3 - 3
dc-business/dc-digital/src/main/java/com/persagy/dc/digital/service/impl/ObjectDigitalServiceImpl.java

@@ -11,7 +11,7 @@ import com.persagy.dc.basic.utils.DigitalCommonUtils;
 import com.persagy.dc.basic.utils.DigitalMessageHelper;
 import com.persagy.dc.common.constant.ValidEnum;
 import com.persagy.dc.common.model.entity.BaseEntity;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.define.service.IObjectInfoService;
 import com.persagy.dc.digital.dao.ObjectDigitalMapper;
 import com.persagy.dc.digital.entity.ObjectDigital;
@@ -113,10 +113,10 @@ public class ObjectDigitalServiceImpl implements IObjectDigitalService {
     private void validateInfoCode(List<ObjectDigital> voList) {
         // 查询信息点定义
         List<String> typeCodeList = CollUtil.getFieldValues(voList, "classCode", String.class);
-        Map<String, Map<String, ObjectInfo>> allInfoMap = infoService.queryByTypes(typeCodeList);
+        Map<String, Map<String, ObjectInfoDefine>> allInfoMap = infoService.queryByTypes(typeCodeList);
         // 信息点校验器
         for(ObjectDigital vo:voList) {
-            Map<String, ObjectInfo> infoMap = allInfoMap.get(vo.getClassCode());
+            Map<String, ObjectInfoDefine> infoMap = allInfoMap.get(vo.getClassCode());
             if(MapUtil.isEmpty(infoMap)) {
                 continue;
             }

+ 3 - 3
dc-business/dc-digital/src/main/java/com/persagy/dc/parser/entity/ParserResult.java

@@ -2,7 +2,7 @@ package com.persagy.dc.parser.entity;
 
 import cn.hutool.core.util.BooleanUtil;
 import com.fasterxml.jackson.databind.JsonNode;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import lombok.Data;
 
 /**
@@ -14,11 +14,11 @@ import lombok.Data;
 public class ParserResult {
 
     /** 信息点定义 */
-    private ObjectInfo infoDefine;
+    private ObjectInfoDefine infoDefine;
     /** 信息点值 */
     private JsonNode valueInfo;
 
-    public ParserResult(ObjectInfo infoDefine, JsonNode valueInfo) {
+    public ParserResult(ObjectInfoDefine infoDefine, JsonNode valueInfo) {
         this.infoDefine = infoDefine;
         this.valueInfo = valueInfo;
     }

+ 2 - 2
dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/IInfoDataParser.java

@@ -1,7 +1,7 @@
 package com.persagy.dc.parser.service;
 
 import com.fasterxml.jackson.databind.JsonNode;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.parser.entity.ParserResult;
 
 /**
@@ -17,5 +17,5 @@ public interface IInfoDataParser {
      * @param valueInfo 信息点 值信息
      * @return ParserResult
      */
-    ParserResult parse(ObjectInfo infoDefine, JsonNode valueInfo);
+    ParserResult parse(ObjectInfoDefine infoDefine, JsonNode valueInfo);
 }

+ 2 - 2
dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/InfoDataFactory.java

@@ -4,7 +4,7 @@ import cn.hutool.core.map.MapUtil;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.persagy.dc.basic.constant.DigitalDataType;
 import com.persagy.dc.common.exception.BusinessException;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.parser.entity.ParserResult;
 import com.persagy.dc.parser.service.impl.*;
 
@@ -27,7 +27,7 @@ public class InfoDataFactory {
      * @param valueInfo 信息点 值信息
      * @return ParserResult
      */
-    public static ParserResult parse(ObjectInfo infoDefine, JsonNode valueInfo) {
+    public static ParserResult parse(ObjectInfoDefine infoDefine, JsonNode valueInfo) {
         IInfoDataParser parser = getParser(infoDefine.getDataType());
         return parser.parse(infoDefine, valueInfo);
     }

+ 2 - 3
dc-business/dc-digital/src/main/java/com/persagy/dc/parser/service/impl/AbstractInfoDataParser.java

@@ -5,12 +5,11 @@ import com.fasterxml.jackson.databind.JavaType;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.JsonNodeType;
-import com.fasterxml.jackson.databind.type.TypeFactory;
 import com.persagy.dc.basic.constant.DigitalDataCategory;
 import com.persagy.dc.common.exception.BusinessException;
 import com.persagy.dc.common.helper.SpringHelper;
 import com.persagy.dc.common.model.data.RegionValue;
-import com.persagy.dc.define.entity.ObjectInfo;
+import com.persagy.dc.define.entity.ObjectInfoDefine;
 import com.persagy.dc.parser.entity.ParserResult;
 import com.persagy.dc.parser.entity.RegionVO;
 import com.persagy.dc.parser.service.IInfoDataParser;
@@ -37,7 +36,7 @@ public abstract class AbstractInfoDataParser implements IInfoDataParser {
      * @return
      */
     @Override
-    public ParserResult parse(ObjectInfo infoDefine, JsonNode valueInfo) {
+    public ParserResult parse(ObjectInfoDefine infoDefine, JsonNode valueInfo) {
         ParserResult result = new ParserResult(infoDefine, valueInfo);
         try {
             // 校验信息点定义

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeObjectInfo.java

@@ -3,6 +3,7 @@ package com.persagy.dc.subscribe.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 订阅信息点范围
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_subscribe_info")
 public class SubscribeObjectInfo extends AuditableEntity {
     /** 方案ID */

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeObjectType.java

@@ -3,6 +3,7 @@ package com.persagy.dc.subscribe.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 订阅类型范围
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_subscribe_type")
 public class SubscribeObjectType extends AuditableEntity {
 

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeProject.java

@@ -3,6 +3,7 @@ package com.persagy.dc.subscribe.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 订阅项目范围
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_subscribe_project")
 public class SubscribeProject extends AuditableEntity {
     /** 方案ID */

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/subscribe/entity/SubscribeSchema.java

@@ -3,6 +3,7 @@ package com.persagy.dc.subscribe.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 订阅方案
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_subscribe_schema")
 public class SubscribeSchema extends AuditableEntity {
 

+ 1 - 1
dc-business/dc-digital/src/test/java/com/persagy/dc/define/test/ObjectTypeControllerTest.java

@@ -20,7 +20,7 @@ import org.springframework.web.context.WebApplicationContext;
 @RunWith(SpringRunner.class)
 @SpringBootTest
 @AutoConfigureMockMvc
-public class ObjectTypeControllerTest {
+public class ObjectTypeDefineControllerTest {
 
     @Autowired
     private WebApplicationContext context;

+ 2 - 0
dc-common/src/main/java/com/persagy/dc/common/context/DefaultAppContext.java

@@ -1,6 +1,7 @@
 package com.persagy.dc.common.context;
 
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 默认应用上下文
@@ -8,6 +9,7 @@ import lombok.Data;
  * @version 1.0 2021-03-04
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 public class DefaultAppContext extends AppContext {
 
     /** 集团编码 - 租户 */

+ 2 - 5
dc-common/src/main/java/com/persagy/dc/common/model/entity/BaseEntity.java

@@ -2,10 +2,7 @@ package com.persagy.dc.common.model.entity;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.persagy.dc.common.lang.PsDateTime;
-import lombok.AccessLevel;
-import lombok.Data;
-import lombok.Getter;
-import lombok.Setter;
+import lombok.*;
 
 import java.io.Serializable;
 
@@ -75,7 +72,7 @@ public abstract class BaseEntity<T> implements IBaseEntity,Serializable,Cloneabl
 	}
 
 	@Override
-	public int compareTo (IBaseEntity obj) {
+	public int compareTo (Object obj) {
 		if (obj.hashCode() > hashCode()) {
 			return 1;
 		} else if (obj.hashCode() < hashCode()) {

+ 1 - 3
dc-common/src/main/java/com/persagy/dc/common/model/entity/IBaseEntity.java

@@ -3,14 +3,12 @@ package com.persagy.dc.common.model.entity;
 
 import com.persagy.dc.common.lang.PsDateTime;
 
-import java.util.Date;
-
 /**
  * 基础实体接口
  * @author Charlie Yu
  * @version 1.0 2021-03-04
  */
-public interface IBaseEntity extends Comparable<IBaseEntity>{
+public interface IBaseEntity extends Comparable {
 
 	/**
 	 * 取得实体主键

+ 9 - 0
dc-comp/dc-digital-starter/README.md

@@ -0,0 +1,9 @@
+数字孪生客户端
+============ 
+
+说明
+---------------
+
+最新变化
+---------------
+

+ 36 - 0
dc-comp/dc-digital-starter/pom.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>dc-comp</artifactId>
+        <groupId>com.persagy</groupId>
+        <version>1.0.0</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <groupId>com.persagy</groupId>
+    <artifactId>dc-digital-starter</artifactId>
+    <version>1.0.0</version>
+
+    <dependencies>
+        <!-- fm 工具包 -->
+        <dependency>
+            <groupId>com.persagy</groupId>
+            <artifactId>dc-common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-annotation</artifactId>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
+</project>

+ 41 - 0
dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/config/DigitalFeignConfig.java

@@ -0,0 +1,41 @@
+package com.persagy.dc.basic.config;
+
+import feign.Logger;
+import feign.codec.Encoder;
+import feign.form.spring.SpringFormEncoder;
+import org.springframework.beans.factory.ObjectFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.cloud.openfeign.support.SpringEncoder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Scope;
+
+import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
+
+/**
+ * Feign配置
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+@EnableFeignClients(basePackages="com.persagy.**.client")
+@Configuration
+public class DigitalFeignConfig {
+
+    @Autowired
+    private ObjectFactory<HttpMessageConverters> messageConverters;
+
+    @Bean
+    @Primary
+    @Scope(SCOPE_PROTOTYPE)
+    Encoder feignFormEncoder() {
+        return new SpringFormEncoder(new SpringEncoder(this.messageConverters));
+    }
+
+    @Bean
+    Logger.Level feignLevel(){
+        return Logger.Level.FULL;
+    }
+}

dc-business/dc-digital/src/main/java/com/persagy/dc/basic/model/DigitalManageMessage.java → dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/model/DigitalManageMessage.java


dc-business/dc-digital/src/main/java/com/persagy/dc/basic/model/QueryCriteria.java → dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/model/QueryCriteria.java


dc-business/dc-digital/src/main/java/com/persagy/dc/basic/utils/JsonNodeUtils.java → dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/basic/utils/JsonNodeUtils.java


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

@@ -0,0 +1,37 @@
+package com.persagy.dc.define.client;
+
+import com.persagy.dc.basic.config.DigitalFeignConfig;
+import com.persagy.dc.basic.model.QueryCriteria;
+import com.persagy.dc.common.model.response.CommonResult;
+import com.persagy.dc.common.model.response.PageList;
+import com.persagy.dc.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;
+
+/**
+ * 文件管理Client
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+@FeignClient(name = "dc-digital", configuration = DigitalFeignConfig.class)
+public interface DigitalDefineClient {
+
+    /**
+     * 查询类型定义
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param criteria 查询条件
+     * @return 类型定义
+     */
+    @PostMapping("/define/type/query")
+    CommonResult<PageList<ObjectTypeDefine>> queryObjectType(
+            @RequestParam("groupCode") String groupCode,
+            @RequestParam("projectId") String projectId,
+            @RequestParam("appId") String appId,
+            @RequestParam("userId") String userId,
+            @RequestBody QueryCriteria criteria);
+}

+ 32 - 0
dc-comp/dc-digital-starter/src/main/java/com/persagy/dc/define/client/DigitalDefineFacade.java

@@ -0,0 +1,32 @@
+package com.persagy.dc.define.client;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.persagy.dc.basic.model.QueryCriteria;
+import com.persagy.dc.common.model.response.CommonResult;
+import com.persagy.dc.common.model.response.PageList;
+import com.persagy.dc.common.utils.ResultHelper;
+import com.persagy.dc.define.entity.ObjectTypeDefine;
+
+/**
+ * 数据字典Client门面
+ * @author Charlie Yu
+ * @date 2021-05-15
+ */
+public class DigitalDefineFacade {
+
+    private static DigitalDefineClient client = SpringUtil.getBean(DigitalDefineClient.class);
+
+    /**
+     * 查询类型定义
+     * @param groupCode 集团编码
+     * @param projectId 项目ID
+     * @param appId 应用ID
+     * @param userId 用户ID
+     * @param criteria 查询条件
+     * @return 类型定义
+     */
+    public static PageList<ObjectTypeDefine> queryObjectType(String groupCode, String projectId, String appId, String userId, QueryCriteria criteria) {
+        CommonResult<PageList<ObjectTypeDefine>> result = client.queryObjectType(groupCode, projectId, appId, userId, criteria);
+        return ResultHelper.getContent(result);
+    }
+}

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/entity/GraphDefine.java

@@ -3,6 +3,7 @@ package com.persagy.dc.define.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 import org.hibernate.validator.constraints.Length;
 
 import javax.validation.constraints.NotNull;
@@ -13,6 +14,7 @@ import javax.validation.constraints.NotNull;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_define_graph")
 public class GraphDefine extends AuditableEntity {
     /** 编码 */

+ 2 - 0
dc-business/dc-digital/src/main/java/com/persagy/dc/define/entity/RelationDefine.java

@@ -3,6 +3,7 @@ package com.persagy.dc.define.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.persagy.dc.common.model.entity.AuditableEntity;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 /**
  * 关系定义
@@ -10,6 +11,7 @@ import lombok.Data;
  * @date 2021-06-25
  */
 @Data
+@EqualsAndHashCode(callSuper = true)
 @TableName("dt_define_rel")
 public class RelationDefine extends AuditableEntity {
     /** 编码 */

+ 0 - 6
dc-comp/dc-file-starter/pom.xml

@@ -27,12 +27,6 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-openfeign</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.mybatis</groupId>
-            <artifactId>mybatis-spring</artifactId>
-            <version>2.0.3</version>
-            <scope>compile</scope>
-        </dependency>
     </dependencies>
 
 </project>

+ 0 - 2
dc-comp/dc-file-starter/src/main/java/com/persagy/dc/storage/config/FileFeignConfig.java

@@ -3,7 +3,6 @@ package com.persagy.dc.storage.config;
 import feign.Logger;
 import feign.codec.Encoder;
 import feign.form.spring.SpringFormEncoder;
-import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.beans.factory.ObjectFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
@@ -21,7 +20,6 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT
  * @author Charlie Yu
  * @date 2021-05-15
  */
-@MapperScan(value = "com.persagy.**.dao")
 @EnableFeignClients(basePackages="com.persagy.**.client")
 @Configuration
 public class FileFeignConfig {

+ 1 - 0
dc-comp/pom.xml

@@ -16,6 +16,7 @@
     <modules>
         <module>dc-mybatis</module>
         <module>dc-file-starter</module>
+        <module>dc-digital-starter</module>
         <module>dc-amqp-starter</module>
     </modules>
 </project>

+ 25 - 0
dc-parent/pom.xml

@@ -53,6 +53,7 @@
         <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
         <spring-boot-maven-plugin.version>2.4.3</spring-boot-maven-plugin.version>
         <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
+        <maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
         <maven-resources-plugin.version>3.0.2</maven-resources-plugin.version>
     </properties>
 
@@ -85,6 +86,11 @@
             </dependency>
             <dependency>
                 <groupId>com.persagy</groupId>
+                <artifactId>dc-digital-starter</artifactId>
+                <version>${dc.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.persagy</groupId>
                 <artifactId>integrated-common-core</artifactId>
                 <version>${platform.version}</version>
             </dependency>
@@ -126,6 +132,16 @@
             </dependency>
             <dependency>
                 <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-annotation</artifactId>
+                <version>${mybatis-plus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-extension</artifactId>
+                <version>${mybatis-plus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.baomidou</groupId>
                 <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                 <version>${dynamic-datasource.version}</version>
             </dependency>
@@ -307,6 +323,15 @@
                         <showWarnings>true</showWarnings>
                     </configuration>
                 </plugin>
+                <!-- 不执行单元测试,但会编译测试类并在target/test-classes目录下生成相应的class -->
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${maven-surefire-plugin.version}</version>
+                    <configuration>
+                        <skipTests>true</skipTests>
+                    </configuration>
+                </plugin>
                 <plugin>
                     <groupId>org.springframework.boot</groupId>
                     <artifactId>spring-boot-maven-plugin</artifactId>