Browse Source

需求:设计对接revit客户端的接口

lijie 3 years ago
parent
commit
f62b64f29e

+ 6 - 1
adm-business/adm-server/.easy.api.config

@@ -1,8 +1,13 @@
 #额外要求header中携带token
 module=adm-server
+api.tag[@java.lang.Deprecated]=deprecated
 method.additional.param[groovy:!it.containingClass().name().startsWith("com.persagy.adm.server.auth.controller")]={name:"projectId",value:"Pj5001120003",desc:"项目id",required:true}
 method.additional.param[groovy:!it.containingClass().name().startsWith("com.persagy.adm.server.auth.controller")]={name:"groupCode",value:"XG",desc:"集团编码",required:true}
 method.additional.param[groovy:!it.containingClass().name().startsWith("com.persagy.adm.server.auth.controller")]={name:"appId",value:"ADM",desc:"appId",required:false}
 method.additional.param[groovy:!it.containingClass().name().startsWith("com.persagy.adm.server.auth.controller")]={name:"userId",value:"0",desc:"账号id",required:true}
 method.additional.header[groovy:!it.ann("org.springframework.web.bind.annotation.PostMapping","value").startsWith("/account/login")]={name:"token",value:"12.13.14",desc:"当前用户token值",required:true}
-method.additional.header[groovy:it.ann("org.springframework.web.bind.annotation.PostMapping","value").startsWith("/login/loginInfo")]={name:"loginDeviceType",value:"1",desc:"登录设备类型,1-pc,2-Android,3-ios,4-其他",required:true}
+method.additional.header[groovy:it.ann("org.springframework.web.bind.annotation.PostMapping","value").startsWith("/login/loginInfo")]={name:"loginDeviceType",value:"1",desc:"登录设备类型,1-pc,2-Android,3-ios,4-其他",required:true}
+field.required=@javax.validation.constraints.NotBlank
+field.required=@javax.validation.constraints.NotNull
+field.required=@javax.validation.constraints.NotEmpty
+field.ignore=@com.fasterxml.jackson.annotation.JsonIgnore#value

+ 56 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/controller/AdmModelController.java

@@ -0,0 +1,56 @@
+package com.persagy.adm.server.algorithm.controller;
+
+import com.persagy.adm.server.algorithm.domain.ModelFileVo;
+import com.persagy.adm.server.algorithm.domain.QueryModelFileVo;
+import com.persagy.adm.server.algorithm.service.AdmModelService;
+import com.persagy.dmp.common.model.response.CommonResult;
+import com.persagy.dmp.common.utils.ResultHelper;
+import lombok.RequiredArgsConstructor;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 01-楼层管理入口
+ * 后端服务名:adm-server
+ * @author : lijie
+ * Update By 2022/1/12 14:01
+ */
+@RestController
+@RequestMapping("/model")
+@RequiredArgsConstructor
+public class AdmModelController {
+
+    private final AdmModelService admModelService;
+
+    /**
+     * 010101-模型文件-根据建筑id查询模型文件列表
+     * @param queryModelFileVo : 模型文件查询信息
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.util.List<com.persagy.adm.server.algorithm.entity.AdmModelFile>>
+     * @author : lijie
+     * Update By 2022/1/12 16:32
+     * @undone
+     */
+    @PostMapping(value = "/queryModelFilesByBuildingId")
+    public CommonResult<List<ModelFileVo>> queryFloorsByBuildingId(@RequestBody QueryModelFileVo queryModelFileVo) {
+        return ResultHelper.multi(new ArrayList<>());
+    }
+    /**
+     * 010102-模型文件-创建模型文件信息
+     * @param modelFileVo : 模型文件信息
+     * @return : com.persagy.dmp.common.model.response.CommonResult<java.lang.Void>
+     * @author : lijie
+     * Update By 2022/1/12 16:54
+     * @undone
+     */
+    @PostMapping(value = "/saveModelFile")
+    public CommonResult<List<Void>> saveModelFile(@Validated @RequestBody ModelFileVo modelFileVo) {
+        return ResultHelper.multi(new ArrayList<>());
+    }
+
+}

+ 15 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/dao/AdmModelFileMapper.java

@@ -0,0 +1,15 @@
+package com.persagy.adm.server.algorithm.dao;
+
+import com.persagy.adm.server.algorithm.entity.AdmModelFile;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @Entity com.persagy.adm.server.algorithm.entity.AdmModelFile
+ */
+public interface AdmModelFileMapper extends BaseMapper<AdmModelFile> {
+
+}
+
+
+
+

+ 53 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/domain/ModelFileVo.java

@@ -0,0 +1,53 @@
+package com.persagy.adm.server.algorithm.domain;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 模型文件VO类
+ * @author : lijie
+ * Update By 2022/1/12 16:54
+ */
+@Data
+public class ModelFileVo {
+
+
+    /**模型文件名称*/
+    @NotBlank
+    private String originalName;
+
+    /**模型文件的当前处理状态:1=上传完毕, 2=模型初步检查完成, 3=同步数据完成, 4=模型正常结束*/
+    private Integer status;
+
+    /**上传模型文件的用户id*/
+    private String userId;
+
+    /**上传模型文件的用户名*/
+    private String userName;
+
+    /**模型文件id*/
+    private String revitFileId;
+
+    /**模型解析后生成的数据文件id*/
+    @NotBlank
+    private String dataFileId;
+
+    /**模型解析后生成的小数据文件id,对应楼层的floorMap*/
+    private String minDataFileId;
+
+    /**模型文件所属楼层id*/
+    @NotBlank
+    private String floorId;
+
+    /**模型文件所属楼层名称*/
+    private String floorName;
+
+    /**建筑id*/
+    @NotBlank
+    private String buildingId;
+
+    /**模型文件版本*/
+    private String revitVersion;
+
+}

+ 18 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/domain/QueryModelFileVo.java

@@ -0,0 +1,18 @@
+package com.persagy.adm.server.algorithm.domain;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 查询模型文件的VO类
+ * @author : lijie
+ * Update By 2022/1/12 15:14
+ */
+@Data
+public class QueryModelFileVo {
+    /**建筑id*/
+    @NotBlank
+    private String buildingId;
+
+}

+ 125 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/entity/AdmModelFile.java

@@ -0,0 +1,125 @@
+package com.persagy.adm.server.algorithm.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.persagy.dmp.common.model.entity.AuditableEntity;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+import org.json.JSONObject;
+
+/**
+ * 模型文件
+ * @author : lijie
+ * Update By 2022/1/12 16:24
+ */
+@TableName(value ="adm_model_file",autoResultMap = true)
+@Data
+public class AdmModelFile extends AuditableEntity<AdmModelFile> {
+
+    /**
+     * 模型文件的上传原始名
+     */
+    private String originalName;
+
+    /**
+     * 楼层模型的版本号
+     */
+    private Integer version;
+
+    /**
+     * 上传模型文件的用户id
+     */
+    private String userId;
+
+    /**
+     * 上传模型文件的用户名
+     */
+    private String userName;
+
+    /**
+     * 模型文件的当前处理状态:1=上传完毕, 2=模型初步检查完成, 3=同步数据完成, 4=模型正常结束
+     */
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "note",typeHandler = JacksonTypeHandler.class)
+    private JSONObject note;
+
+    /**
+     * 模型文件id
+     */
+    private String revitFileId;
+
+    /**
+     * 模型解析后生成的数据文件id
+     */
+    private String dataFileId;
+
+    /**
+     * 模型解析后生成的小数据文件id,对应楼层的floorMap
+     */
+    private String minDataFileId;
+
+    /**
+     * 模型文件所属楼层id
+     */
+    private String floorId;
+
+    /**
+     * 建筑id
+     */
+    private String buildingId;
+
+    /**
+     * 项目id
+     */
+    private String projectId;
+
+    /**
+     * 集团编码
+     */
+    private String groupCode;
+
+    /**
+     * 模型文件是否已被删除
+     */
+    private Boolean removed;
+
+    /**
+     * 跟数据中心同步数据失败时的重试次数
+     */
+    private Integer syncRetryTimes;
+
+    /**
+     * 上次重试日期
+     */
+    private Date syncRetryDate;
+
+    /**
+     * 上次同步到数据中心时的错误消息
+     */
+    private String syncErrorMsg;
+
+    /**
+     * 模型的标高
+     */
+    private Double level;
+
+    /**
+     * 存储模型状态信息
+     */
+    @TableField(value = "status_info",typeHandler = JacksonTypeHandler.class)
+    private JSONObject statusInfo;
+
+    /**
+     * 模型文件版本
+     */
+    private String revitVersion;
+}

+ 11 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/service/AdmModelFileService.java

@@ -0,0 +1,11 @@
+package com.persagy.adm.server.algorithm.service;
+
+import com.persagy.adm.server.algorithm.entity.AdmModelFile;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ *
+ */
+public interface AdmModelFileService extends IService<AdmModelFile> {
+
+}

+ 8 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/service/AdmModelService.java

@@ -0,0 +1,8 @@
+package com.persagy.adm.server.algorithm.service;
+/**
+ * 模型文件的逻辑处理接口
+ * @author : lijie
+ * Update By 2022/1/12 14:06
+ */
+public interface AdmModelService {
+}

+ 19 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/service/impl/AdmModelFileServiceImpl.java

@@ -0,0 +1,19 @@
+package com.persagy.adm.server.algorithm.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.persagy.adm.server.algorithm.entity.AdmModelFile;
+import com.persagy.adm.server.algorithm.service.AdmModelFileService;
+import com.persagy.adm.server.algorithm.dao.AdmModelFileMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class AdmModelFileServiceImpl extends ServiceImpl<AdmModelFileMapper, AdmModelFile> implements AdmModelFileService{
+
+}
+
+
+
+

+ 17 - 0
adm-business/adm-server/src/main/java/com/persagy/adm/server/algorithm/service/impl/AdmModelServiceImpl.java

@@ -0,0 +1,17 @@
+package com.persagy.adm.server.algorithm.service.impl;
+
+import com.persagy.adm.server.algorithm.service.AdmModelService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 模型文件的逻辑处理类
+ * @author : lijie
+ * Update By 2022/1/12 14:08
+ */
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class AdmModelServiceImpl implements AdmModelService {
+}

+ 2 - 3
adm-business/adm-server/src/main/java/com/persagy/adm/server/auth/controller/AdmAuthController.java

@@ -13,9 +13,8 @@ import org.springframework.web.bind.annotation.*;
 /**
  * 00-登录及权限控制
  * 后端服务名:adm-server
- * @author lvxy
- * @date 2021/8/25
- * @module adm-server
+ * @author : lijie
+ * Update By 2022/1/12 14:00
  */
 @RestController
 @RequestMapping("/auth")

+ 32 - 0
adm-business/adm-server/src/main/resources/db/init/schema.sql

@@ -371,3 +371,35 @@ CREATE TABLE IF NOT EXISTS `project_user`  (
   PRIMARY KEY (`id`) USING BTREE,
   UNIQUE INDEX `project_user_pk_2`(`project_id`, `user_id`) USING BTREE
 ) ENGINE = InnoDB DEFAULT CHARSET=utf8mb4 COMMENT = '项目用户关系表' ROW_FORMAT = Dynamic;
+
+CREATE TABLE IF NOT EXISTS `adm_model_file` (
+    `id` varchar(50) NOT NULL COMMENT '主键',
+    `original_name` varchar(255) DEFAULT NULL COMMENT '模型文件的上传原始名',
+    `version` int NOT NULL AUTO_INCREMENT COMMENT '楼层模型的版本号',
+    `user_id` varchar(80) DEFAULT NULL COMMENT '上传模型文件的用户id',
+    `user_name` varchar(80) DEFAULT NULL COMMENT '上传模型文件的用户名',
+    `status` smallint DEFAULT NULL COMMENT '模型文件的当前处理状态:1=上传完毕, 2=模型初步检查完成, 3=同步数据完成, 4=模型正常结束',
+    `note` json DEFAULT NULL COMMENT '备注',
+    `revit_file_id` varchar(50) DEFAULT NULL COMMENT '模型文件id',
+    `data_file_id` varchar(50) NOT NULL COMMENT '模型解析后生成的数据文件id',
+    `min_data_file_id` varchar(50) DEFAULT NULL COMMENT '模型解析后生成的小数据文件id,对应楼层的floorMap',
+    `floor_id` varchar(50) NOT NULL COMMENT '模型文件所属楼层(model_floor表id)',
+    `building_id` varchar(50) NOT NULL COMMENT '建筑id',
+    `project_id` varchar(50) DEFAULT '0' COMMENT '项目id',
+    `group_code` varchar(50) DEFAULT '0' COMMENT '集团编码',
+    `removed` tinyint(1) DEFAULT 0 COMMENT '模型文件是否已被删除',
+    `sync_retry_times` int DEFAULT NULL COMMENT '跟数据中心同步数据失败时的重试次数',
+    `sync_retry_date` timestamp NULL DEFAULT NULL COMMENT '上次重试日期',
+    `sync_error_msg` text DEFAULT NULL COMMENT '上次同步到数据中心时的错误消息',
+    `level` double(53,0) DEFAULT NULL COMMENT '模型的标高',
+    `status_info` json DEFAULT NULL COMMENT '存储模型状态信息',
+    `revit_version` varchar(50) DEFAULT NULL COMMENT '模型文件版本',
+    `creator` varchar(32) DEFAULT '0' COMMENT '创建人',
+    `creation_time` char(14) DEFAULT NULL COMMENT '创建时间',
+    `modifier` varchar(32) DEFAULT '0' COMMENT '最后更新人',
+    `modified_time` char(14) DEFAULT NULL COMMENT '最后更新时间',
+    `valid` tinyint DEFAULT '1' COMMENT '合法标识',
+    `ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '乐观锁',
+    PRIMARY KEY (`id`) USING BTREE,
+    UNIQUE INDEX `idx_1`(`version`, `floor_id`, `building_id`, `project_id`, `group_code`,`valid`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='模型文件表';

+ 48 - 0
adm-business/adm-server/src/main/resources/mapper/AdmModelFileMapper.xml

@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.persagy.adm.server.algorithm.mapper.AdmModelFileMapper">
+
+    <resultMap id="BaseResultMap" type="com.persagy.adm.server.algorithm.entity.AdmModelFile">
+            <id property="id" column="id" jdbcType="VARCHAR"/>
+            <result property="originalName" column="original_name" jdbcType="VARCHAR"/>
+            <result property="version" column="version" jdbcType="INTEGER"/>
+            <result property="userId" column="user_id" jdbcType="VARCHAR"/>
+            <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="SMALLINT"/>
+            <result property="note" column="note" jdbcType="OTHER" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
+            <result property="revitFileId" column="revit_file_id" jdbcType="VARCHAR"/>
+            <result property="dataFileId" column="data_file_id" jdbcType="VARCHAR"/>
+            <result property="minDataFileId" column="min_data_file_id" jdbcType="VARCHAR"/>
+            <result property="floorId" column="floor_id" jdbcType="VARCHAR"/>
+            <result property="buildingId" column="building_id" jdbcType="VARCHAR"/>
+            <result property="projectId" column="project_id" jdbcType="VARCHAR"/>
+            <result property="groupCode" column="group_code" jdbcType="VARCHAR"/>
+            <result property="removed" column="removed" jdbcType="BOOLEAN"/>
+            <result property="syncRetryTimes" column="sync_retry_times" jdbcType="INTEGER"/>
+            <result property="syncRetryDate" column="sync_retry_date" jdbcType="TIMESTAMP"/>
+            <result property="syncErrorMsg" column="sync_error_msg" jdbcType="VARCHAR"/>
+            <result property="level" column="level" jdbcType="DOUBLE"/>
+            <result property="statusInfo" column="status_info" jdbcType="OTHER" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/>
+            <result property="revitVersion" column="revit_version" jdbcType="VARCHAR"/>
+            <result property="creator" column="creator" jdbcType="VARCHAR"/>
+            <result property="creationTime" column="creation_time" jdbcType="CHAR"/>
+            <result property="modifier" column="modifier" jdbcType="VARCHAR"/>
+            <result property="modifiedTime" column="modified_time" jdbcType="CHAR"/>
+            <result property="valid" column="valid" jdbcType="TINYINT"/>
+            <result property="ts" column="ts" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,original_name,version,
+        user_id,user_name,status,
+        note,revit_file_id,data_file_id,
+        min_data_file_id,floor_id,building_id,
+        project_id,group_code,removed,
+        sync_retry_times,sync_retry_date,sync_error_msg,
+        level,status_info,revit_version,
+        creator,creation_time,modifier,
+        modified_time,valid,ts
+    </sql>
+</mapper>