# 评估系统 - 数据库设计文档 ## 0. 数据表统计 ### 0.1 表数量统计 系统共包含 **29个** 核心数据表 + **9个** JPA关系表,分为9个功能模块: | 模块 | 表数量 | 说明 | |------|--------|------| | 用户管理 | 3 | 用户表、角色表、用户会话表 | | 业务管理 | 8 | 委托方、项目、计划、车辆、合同、档案、设备使用、项目信息 | | 标准体系 | 8 | 层级、问题、专家、模型基类、系统模型、设备模型、实测模型、实测规则 | | 评估模块 | 6 | 任务基类、记录基类、评估结果基类、轮空信息、错误复核、隶属度矩阵 | | 签到管理 | 3 | 签到记录基类、项目签到、工作签到 | | 设备管理 | 1 | 设备表 | | 文件管理 | 1 | 用户文件表 | | 报告管理 | 1 | 报告模板表 | | **JPA关系表** | **9** | **多对多关系中间表** | ### 0.2 数据表列表 | 序号 | 表名 | 中文名称 | 模块 | 主要功能 | |------|------|----------|------|----------| | 1 | user | 用户表 | 用户管理 | 系统用户信息管理 | | 2 | role | 角色表 | 用户管理 | 角色权限管理 | | 3 | user_session | 用户会话表 | 用户管理 | 用户登录会话管理 | | 4 | client | 委托方表 | 业务管理 | 委托方信息管理 | | 5 | project | 项目表 | 业务管理 | 项目基本信息管理 | | 6 | plan | 计划表 | 业务管理 | 评估计划管理 | | 7 | car | 车辆表 | 业务管理 | 车辆信息管理 | | 8 | contract | 合同表 | 业务管理 | 合同信息管理 | | 9 | archive | 档案表 | 业务管理 | 档案文件管理 | | 10 | device_usage | 设备使用表 | 业务管理 | 设备使用记录管理 | | 11 | project_info | 项目信息表 | 业务管理 | 项目详细信息管理 | | 12 | hierarchy | 层级表 | 标准体系 | 层级树结构数据 | | 13 | problem | 问题表 | 标准体系 | 标准问题定义 | | 14 | expert | 专家表 | 标准体系 | 专家信息管理 | | 15 | model | 模型基类表 | 标准体系 | 模型基类(系统/设备/实测) | | 16 | sys_model | 系统模型表 | 标准体系 | 综合体系模型 | | 17 | device_model | 设备模型表 | 标准体系 | 设备体系模型 | | 18 | measure_model | 实测模型表 | 标准体系 | 实测实量模型 | | 19 | measure_rule | 实测规则表 | 标准体系 | 实测实量规则 | | 20 | task | 任务基类表 | 评估模块 | 任务基类(检查/复查) | | 21 | record | 记录基类表 | 评估模块 | 记录基类(错误/信息/警告) | | 22 | eval_result | 评估结果基类表 | 评估模块 | 评估结果基类 | | 23 | bypass_info | 轮空信息表 | 评估模块 | 检查通过信息管理 | | 24 | error_review | 错误复核表 | 评估模块 | 问题复核记录管理 | | 25 | membership_matrix | 隶属度矩阵表 | 评估模块 | 模糊评估隶属度矩阵 | | 26 | sign_record | 签到记录基类表 | 签到管理 | 签到记录基类(项目/工作) | | 27 | device | 设备表 | 设备管理 | 设备信息管理 | | 28 | user_file | 用户文件表 | 文件管理 | 文件信息管理 | | 29 | report_template | 报告模板表 | 报告管理 | 报告模板管理 | ## 1. 概述 ### 1.1 文档目的 本文档详细描述了评估系统的数据库设计,基于JPA/Hibernate实现,包括实体类结构、字段定义、关系映射等。 ### 1.2 系统简介 评估系统是一个基于Spring Boot的建筑工程安全风险评估平台,支持综合体系评估和设备体系评估两种评估模式。 ### 1.3 技术栈 - **数据库**: MySQL 8.0.36 - **ORM框架**: JPA - **字符编码**: UTF-8 ## 2. 数据库架构设计 ### 2.1 数据库命名规范 - 数据库名: `estate` - 表名: JPA自动生成,基于实体类名 - 字段名: JPA自动生成,基于属性名 - 索引名: 通过`@Index`注解定义 ### 2.2 基础实体设计 所有业务实体都继承自 `EntityBase` 基类,包含以下通用字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键,自增 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 名称,业务唯一标识 | UNIQUE, NOT NULL | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | ## 3. 核心数据表设计 ### 3.1 用户管理模块 #### 3.1.1 用户表 (user) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 用户名 | UNIQUE, NOT NULL | | password | String(255) | 密码,BCrypt加密 | NOT NULL | | mobile | String(20) | 手机号 | UNIQUE, NOT NULL | | state | Enum | 用户状态 | NOT NULL (ACTIVE/INACTIVE/LOCKED) | | department_path | String(500) | 部门路径 | | | role_id | Integer | 角色ID | NOT NULL | | avatar | String(500) | 头像URL | | | email | String(100) | 邮箱 | | | remark | Text | 备注 | | | last_access_time | LocalDateTime | 最后访问时间 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:系统用户管理,支持多种状态,基于角色的权限控制,部门层级管理,用户会话跟踪 #### 3.1.2 角色表 (role) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 角色名称 | UNIQUE, NOT NULL | | permission_ids | JSON | 权限ID列表 | | | remark | String | 备注 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:角色权限管理,定义用户角色和对应的权限列表 #### 3.1.3 用户会话表 (user_session) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Long | 主键 | PRIMARY KEY, AUTO_INCREMENT | | user_id | Integer | 用户ID | NOT NULL, FOREIGN KEY | | token | String | 会话令牌 | NOT NULL | | state | String | 会话状态 | NOT NULL | | client_code | String | 客户端代码 | | | device_code | String | 设备代码 | | | ip_address | String | IP地址 | | | extra | String | 额外信息 | | | create_time | LocalDateTime | 创建时间 | NOT NULL | | last_access_time | LocalDateTime | 最后访问时间 | NOT NULL | | expire_time | LocalDateTime | 过期时间 | | **主要功能**:用户登录会话管理,维护用户登录状态和会话信息 ### 3.2 业务管理模块 #### 3.2.1 委托方表 (client) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 委托方名称 | UNIQUE, NOT NULL | | type | Enum | 委托方类型 | NOT NULL | | intention | String | 委托意向 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:委托方信息管理,支持多种委托方类型,委托意向记录 #### 3.2.2 项目表 (project) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 项目名称 | UNIQUE, NOT NULL | | type | Enum | 项目类型 | NOT NULL (RESIDENTIAL/COMMERCIAL/INDUSTRIAL/PUBLIC) | | usage_type | Enum | 用途类型 | NOT NULL (NEW_CONSTRUCTION/RENOVATION/MAINTENANCE) | | department_path | String(500) | 部门路径 | | | client_id | Integer | 委托方ID | FOREIGN KEY | | construction_license | String(100) | 施工许可证号 | | | item_code | String(100) | 项目编号 | | | branch_company | String(200) | 所属分公司 | | | construction_company_info | JSON | 施工单位信息 | | | supervisor_company_info | JSON | 监理公司信息 | | | address_info | JSON | 地址信息 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:项目基本信息管理,支持多种项目类型和用途,关联委托方信息,存储公司信息和地址信息(JSON格式) #### 3.2.3 计划表 (plan) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 计划名称 | UNIQUE, NOT NULL | | type | Enum | 计划类型 | (SYSTEM/DEVICE/COMPREHENSIVE) | | client_id | Integer | 委托方ID | FOREIGN KEY | | system_model_id | Integer | 系统模型ID | FOREIGN KEY | | system_fuzzy_expert_id | Integer | 系统模糊专家ID | FOREIGN KEY | | system_score_expert_id | Integer | 系统打分专家ID | FOREIGN KEY | | device_model_id | Integer | 设备模型ID | FOREIGN KEY | | device_fuzzy_math_id | Integer | 设备模糊专家ID | FOREIGN KEY | | device_score_expert_id | Integer | 设备打分专家ID | FOREIGN KEY | | state | Enum | 计划状态 | NOT NULL (DRAFT/ACTIVE/COMPLETED/CANCELLED) | | completed_time | LocalDateTime | 完成时间 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:评估计划管理,支持综合体系、设备体系、混合评估,关联专家和模型,计划状态跟踪 #### 3.2.4 车辆表 (car) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 车辆名称 | UNIQUE, NOT NULL | | model | String(100) | 车辆型号 | | | department_path | String(500) | 部门路径 | | | initial_mileage | Integer | 初始里程 | | | driver_id | Integer | 驾驶员ID | FOREIGN KEY | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:车辆信息管理,关联驾驶员,支持车辆图片管理 #### 3.2.5 合同表 (contract) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 合同名称 | UNIQUE, NOT NULL | | state | Enum | 合同状态 | NOT NULL (NOT_STARTED/IN_PROGRESS/COMPLETED/TERMINATED) | | tech_service_file_id | Integer | 技术服务文件ID | FOREIGN KEY | | contract_file_id | Integer | 合同文件ID | FOREIGN KEY | | client_id | Integer | 委托方ID | FOREIGN KEY | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:合同信息管理,关联委托方和文件,跟踪合同状态 #### 3.2.6 档案表 (archive) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 档案名称 | UNIQUE, NOT NULL | | type | Enum | 档案类型 | NOT NULL (THIRD_PARTY_REPORT/TRAINING_MATERIAL/STANDARD_SPECIFICATION/TECHNICAL_SERVICE_PLAN/INSPECTION_PHOTO) | | file_id | Integer | 文件ID | FOREIGN KEY | | file_name | String | 文件名 | | | remark | String | 备注 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:档案文件管理,支持多种档案类型,关联文件存储 #### 3.2.7 设备使用表 (device_usage) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 使用记录名称 | UNIQUE, NOT NULL | | device_id | Integer | 设备ID | NOT NULL, FOREIGN KEY | | project_id | Integer | 项目ID | NOT NULL, FOREIGN KEY | | disabled | Boolean | 是否已移除 | DEFAULT FALSE | | properties | JSON | 设备属性 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:设备使用记录管理,跟踪设备在项目中的使用情况 #### 3.2.8 项目信息表 (project_info) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 信息名称 | UNIQUE, NOT NULL | | project_id | Integer | 项目ID | NOT NULL, FOREIGN KEY | | detail | String | 项目详情 | | | progress | String | 项目进展 | | | dangerous_options | JSON | 危大工程选项 | | | super_dangerous_options | JSON | 超大危工程选项 | | | progress_this_season | String | 本季度进展 | | | update_date | LocalDate | 更新日期 | NOT NULL | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:项目详细信息管理,记录项目进展和危大工程信息 ### 3.3 标准体系模块 #### 3.3.1 层级表 (hierarchy) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 层级名称 | UNIQUE, NOT NULL | | content | JSON | 层级树结构数据 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:存储综合体系、设备体系、实测实量体系的层级数据,使用JSON格式存储树形结构,支持动态构建树结构 #### 3.3.2 问题表 (problem) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 问题名称 | UNIQUE, NOT NULL | | hierarchy_id | Integer | 层级ID | NOT NULL | | hierarchy_path | String(500) | 层级路径 | NOT NULL | | description | Text | 问题描述 | NOT NULL | | specific_terms | JSON | 专业术语列表 | | | suggest_actions | JSON | 建议措施列表 | | | incident_types | JSON | 事故类型列表 | | | number_factors | JSON | 数量因子列表 | | | scale_factors | JSON | 等级因子列表 | | | review_paradigm | Text | 检查范式 | | | responsible_person | String(100) | 责任人 | | | responsible_department | String(200) | 责任部门 | | | incident_case_file_id | Integer | 事故案例文件ID | FOREIGN KEY | | correct_practice | Text | 正确做法 | | | num_value | Float | 数值 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:存储标准问题定义,支持多种因子类型(数量因子、等级因子),关联层级和文件,存储问题处理信息 #### 3.3.3 专家表 (expert) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 专家名称 | UNIQUE, NOT NULL | | type | String(50) | 专家类型 | NOT NULL | | contact | String(200) | 联系方式 | | | matrix_weight | Float | 矩阵权重 | | | membership_weight | Float | 隶属度权重 | | | expert_inquiry_weight | Float | 专家调查权重 | | | expert_funcs | JSON | 专家功能列表 | | | weight_map | JSON | 权重映射 | | | membership_matrix_id | Integer | 隶属度矩阵ID | FOREIGN KEY | | compare_matrix_map | JSON | 比较矩阵映射 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:专家信息管理,支持打分专家和模糊专家两种类型,存储权重矩阵和比较矩阵,支持多层级权重配置 #### 3.3.4 模型基类表 (model) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 模型名称 | UNIQUE, NOT NULL | | type | String | 模型类型 | NOT NULL (system/device) | | hierarchy_id | Integer | 层级ID | FOREIGN KEY | | version | Integer | 版本号 | NOT NULL | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:模型基类,支持系统模型和设备模型两种类型,关联层级数据 #### 3.3.5 系统模型表 (sys_model) 继承自 `model` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | problem_ids | JSON | 选中的问题ID列表 | | | hierarchy_paths | JSON | 层级路径列表 | | **主要功能**:综合体系模型,从层级数据中选择部分问题组成系统模型 #### 3.3.6 设备模型表 (device_model) 继承自 `model` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | published | Boolean | 是否发布 | DEFAULT FALSE | | enable | Boolean | 是否激活 | DEFAULT FALSE | | description | String | 模型描述 | | **主要功能**:设备体系模型,支持发布和激活状态管理 #### 3.3.7 实测模型表 (measure_model) 继承自 `model` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | description | String | 模型描述 | | **主要功能**:实测实量模型,用于实测实量评估 #### 3.3.8 实测规则表 (measure_rule) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 规则名称 | UNIQUE, NOT NULL | | hierarchy_id | Integer | 层级ID | NOT NULL | | hierarchy_path | String | 层级路径 | NOT NULL | | description | String | 规则描述 | | | measure_point | Integer | 检测点 | | | measure_type | String | 测量类别 | | | measure_expr1 | String | 评判标准 | | | measure_expr2 | String | 爆版值 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:实测实量规则,定义测量标准和评判规则 ### 3.4 评估模块 #### 3.4.1 任务基类表 (task) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 任务名称 | UNIQUE, NOT NULL | | task_type | String | 任务类型 | NOT NULL (check_task/review_task) | | date | Date | 任务日期 | | | assemble_place | String | 集合地点 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:任务基类,支持检查任务和复查任务两种类型,包含任务基本信息和人员分配 #### 3.4.2 检查任务表 (check_task) 继承自 `task` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | project_id | Integer | 项目ID | NOT NULL, FOREIGN KEY | | plan_id | Integer | 计划ID | NOT NULL, FOREIGN KEY | | bypass_info_id | Integer | 轮空项信息ID | FOREIGN KEY | | state | Enum | 任务状态 | (DRAFT/IN_PROGRESS/COMPLETED/CANCELLED) | | review_task_id | Integer | 复查任务ID | FOREIGN KEY | | location | String | 地点信息 | | | system_score | Float | 系统得分 | | | device_score_map | JSON | 设备得分映射 | | | system_fuzzy | Float | 系统模糊得分 | | | device_fuzzy_map | JSON | 设备模糊得分映射 | | | gps | JSON | 经纬度信息 | | | project_info_id | Integer | 项目信息ID | FOREIGN KEY | **主要功能**:检查任务管理,支持多种任务类型,关联项目和计划,存储评估结果 #### 3.4.3 记录基类表 (record) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 记录名称 | UNIQUE, NOT NULL | | record_type | String | 记录类型 | NOT NULL (error/info/warning) | | check_task_id | Integer | 检查任务ID | FOREIGN KEY | | problem_id | Integer | 问题ID | FOREIGN KEY | | hierarchy_name | String | 层级名称 | | | hierarchy_names | JSON | 层级名称列表 | | | device_id | Integer | 设备ID | FOREIGN KEY | | images | JSON | 问题图片列表 | | | remark | Text | 问题备注 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:记录基类,支持错误记录、信息记录、警告记录三种类型 #### 3.4.4 错误记录表 (error_record) 继承自 `record` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | specific_term_indexes | JSON | 专业术语索引列表 | | | number_factor_index | Integer | 数量因子索引 | | | scale_factor_index | Integer | 等级因子索引 | | | level | Enum | 问题等级 | (LOW/MEDIUM/HIGH/CRITICAL) | | problem_part | String | 问题部位 | | | suggestion | Text | 整改建议 | | | reformed | Boolean | 是否已整改 | DEFAULT FALSE | | error_review_id | Integer | 错误复核ID | FOREIGN KEY | **主要功能**:错误记录管理,关联任务和问题,记录问题等级和整改信息 #### 3.4.5 评估结果基类表 (eval_result) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 结果名称 | UNIQUE, NOT NULL | | type | String | 结果类型 | NOT NULL (score/fuzzy) | | check_task_id | Integer | 检查任务ID | NOT NULL, FOREIGN KEY | | score | Float | 实际评分 | | | display_score | Float | 显示评分 | | | error_counts | JSON | 错误数量统计 | | | plan_id | Integer | 计划ID | FOREIGN KEY | | project_id | Integer | 项目ID | FOREIGN KEY | | client_id | Integer | 委托方ID | FOREIGN KEY | | contain_system_res | Boolean | 是否包含系统结果 | DEFAULT FALSE | | contain_device_res | Boolean | 是否包含设备结果 | DEFAULT FALSE | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:评估结果基类,支持打分结果和模糊结果两种类型 #### 3.4.6 打分评估结果表 (eval_score_result) 继承自 `eval_result` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | system_res | JSON | 系统评估结果 | | | device_res_map | JSON | 设备评估结果映射 | | **主要功能**:存储打分评估结果,包含系统评估和设备评估结果 #### 3.4.7 模糊评估结果表 (eval_fuzzy_result) 继承自 `eval_result` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | risk_level | Enum | 风险等级 | | | system_res | JSON | 系统模糊结果 | | | device_res_map | JSON | 设备模糊结果映射 | | **主要功能**:存储模糊评估结果,包含风险等级和模糊评估数据 #### 3.4.8 轮空信息表 (bypass_info) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | system_hierarchy_paths | JSON | 系统层级路径列表 | | | device_hierarchy_paths | JSON | 设备层级路径列表 | | | conclusion | String | 小结 | | | advice | String | 建议 | | **主要功能**:检查通过信息管理,用于处理检查通过、未发现问题的情况 #### 3.4.9 错误复核表 (error_review) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 复核记录名称 | UNIQUE, NOT NULL | | content | String | 复核意见 | | | state | Enum | 复核结果 | NOT NULL (NOT_REFORMED/PARTIAL_REFORMED/REFORMED) | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:问题复核记录管理,记录问题整改情况 #### 3.4.10 隶属度矩阵表 (membership_matrix) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | data | JSON | 隶属度矩阵数据 | 10x10x10x10x5 五维数组 | **主要功能**:模糊评估隶属度矩阵,用于模糊数学评估计算 ### 3.5 签到管理模块 #### 3.5.1 签到记录基类表 (sign_record) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 签到记录名称 | UNIQUE, NOT NULL | | type | String | 签到类型 | NOT NULL (project/work) | | location | String | 地点信息 | NOT NULL | | gps | JSON | 经纬度信息 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:签到记录基类,支持项目签到和工作签到两种类型 #### 3.5.2 项目签到记录表 (project_sign_record) 继承自 `sign_record` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | project_id | Integer | 项目ID | NOT NULL, FOREIGN KEY | **主要功能**:项目签到记录管理,关联具体项目 #### 3.5.3 工作签到记录表 (work_sign_record) 继承自 `sign_record` 表,包含以下独有字段: | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | content | String | 工作内容 | | | work_time_period | Enum | 工作时间段 | (ALL_DAY/MORNING/AFTERNOON) | | work_type | Enum | 工作类型 | (IN/OUT) | **主要功能**:工作签到记录管理,记录工作内容和时间段 ### 3.6 设备管理模块 #### 3.6.1 设备表 (device) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 设备名称 | UNIQUE, NOT NULL | | type | Enum | 设备类型 | NOT NULL | | manufacturer_number | String | 出厂编号 | NOT NULL | | busy | Boolean | 设备使用状态 | DEFAULT FALSE | | properties | JSON | 设备详细信息 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:设备信息管理,支持多种设备类型,跟踪设备使用状态,存储设备详细属性 ### 3.6 文件管理模块 #### 3.6.1 用户文件表 (user_file) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 文件名称 | UNIQUE, NOT NULL | | original_name | String(255) | 原始文件名 | NOT NULL | | file_path | String(500) | 文件路径 | NOT NULL | | file_size | Long | 文件大小 | NOT NULL | | file_type | String(100) | 文件类型 | | | mime_type | String(100) | MIME类型 | | | upload_time | LocalDateTime | 上传时间 | NOT NULL | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:文件管理,存储文件基本信息,支持多种文件类型 ### 3.7 报告管理模块 #### 3.7.1 报告模板表 (report_template) | 字段名 | 数据类型 | 功能说明 | 约束 | |--------|----------|----------|------| | id | Integer | 主键 | PRIMARY KEY, AUTO_INCREMENT | | name | String(255) | 模板名称 | UNIQUE, NOT NULL | | number | String | 报告模板编号 | NOT NULL | | sub_number | String | 模板子编号 | NOT NULL | | type | Enum | 模板类型 | NOT NULL (ThirdPartyReport/DeviceReport) | | remark | String | 备注 | | | config | JSON | 模板配置 | | | deleted | Boolean | 软删除标记 | NOT NULL, DEFAULT FALSE | | creator_id | Integer | 创建者ID | FOREIGN KEY | | create_time | LocalDateTime | 创建时间 | NOT NULL | | update_time | LocalDateTime | 更新时间 | NOT NULL | **主要功能**:报告模板管理,支持多种报告类型和配置 ## 4. JPA多对多关系表 ### 4.1 关系表摘要 由于JPA中`@ManyToMany`关系的存在,系统会自动生成以下中间关系表: | 序号 | 关系表名 | 关联实体1 | 关联实体2 | 功能说明 | |------|----------|-----------|-----------|----------| | 1 | construction_license_file | project | user_file | 项目施工许可证文件关联 | | 2 | task_group_leader | task | user | 任务组长关联 | | 3 | task_group_member | task | user | 任务组员关联 | | 4 | task_driver | task | user | 任务司机关联 | | 5 | task_car | task | car | 任务车辆关联 | | 6 | error_review_image | error_review | user_file | 错误复核图片关联 | | 7 | record_image | record | user_file | 记录图片关联 | | 8 | sign_record_image | sign_record | user_file | 签到记录图片关联 | | 9 | car_image | car | user_file | 车辆图片关联 | ### 4.2 关系表字段说明 所有关系表都包含以下标准字段: - `主表_id` - 主表外键 - `关联表_id` - 关联表外键 这些关系表由JPA自动管理,不需要手动维护,主要用于存储多对多关系的映射数据。 ## 5. 数据关系设计 ### 5.1 关系说明 系统采用JPA实体关系映射,主要包含以下关系类型: 1. **一对多关系**:用户创建各种业务实体,委托方拥有多个项目等 2. **一对一关系**:计划与专家的一对一关联,专家与隶属度矩阵的一对一关联 3. **继承关系**:系统模型、设备模型、实测模型继承自模型基类 4. **多对多关系**:通过JPA自动生成中间关系表(详见第4章) ### 5.2 ER图文档 详细的实体关系图请参考:[数据库ER图.md](./数据库ER图.md)