# Revit-algorithm
## 项目结构
![项目结构](docs/setup/server/centos/app-server/img/revit_001.jpg)

    如图中所标记
    1. 后台任务模块, 处理模型的各个状态和状态流转
    2. 配置类
    3. 对外的服务接口
    4. 所有的模型类
    5. 所有的服务类
    6. 项目配置文件
    7. 测试类
    8. Gradle的build文件
    
## 项目介绍

### 功能
    1. 提供上传, 管理revit模型和通知的服务
    2. 提供检查, 校验并处理模型, 导出revit数据同步到数据中心的服务
    3. 提供模型底图服务
    
### 技术细节
    1. 基于springboot web框架
    2. 数据库使用postgresql, 数据持久化框架使用myBatis和sybotan(公司内部)
    3. 检查标高和轴网使用postgresql中的扩展插件plpython3
    4. 发送JMS消息使用activemq
    5. 使用poi操作xlsx文件
    
## 打包
![项目打包](docs/setup/server/centos/app-server/img/revit_002.jpg)

    如果打测试包, 在右侧Gradle的管理页面里双击任务buildDevJar或者buildDevWar即可. 打包内容中就会
    把左侧资源文件包resources和resources-dev的内容加入到打包的资源内, 建议在打包前把上次打包的文件删除
    

## 服务依赖
    1. 依赖于数据中心
    2. 依赖于模型调度器
    3. 依赖于文件服务器(必须具备分页上传的功能)
    
    
    
## 文件服务配置
![项目打包](docs/setup/server/centos/app-server/img/revit_003.jpg)
    
    
| 配置            | 描述                             |
| --------        | :----:                          |
| url             |   文件服务的基础url              |
| systemId        |   文件服务的systemId用户名       |
| secret          |   文件服务的密码(与用户名匹配)    |
| dir             |   底图存放目录                   |
| report          |   错误报告存放目录               |
| export          |   模型导出json压缩数据存放目录    |


    