阶段七交付物 · 病害录入与构件评定模块
公路桥梁技术状况评定一体化系统
系统框架与数据库设计
本阶段确定系统总体架构、模块划分、技术选型与完整数据库表结构,并固化规范参数与评定流程状态机。 核心结论:采用前后端分离架构,后端以 Python FastAPI + SQLAlchemy 承载评定计算与报告生成, 前端以向导式流程承载「桥梁库 → 检测项目 → 评定单元 → 构件 → 病害评定 → 桥跨 → 评定单元 → 全桥 → 报告」, 全部评定指标、标度、权重 ω、影响系数 γ、等级界限与养护对策以数据字典形式集中管理,系统内不得自行修改。
1. 总体架构设计
系统面向「Web 端编制方案 → 移动端现场检测 → 一键生成报告」的行业成熟模式。 本阶段只生成在线网站系统,App 端以同步接口与方案形式预留。
1.1 分层架构
| 层次 | 职责 | 主要组成 |
|---|---|---|
| 表现层 | 页面渲染、表单交互、实时计算回显、图表与地图 | Web 前端(向导式流程 + 管理后台)、移动端 App(后续阶段) |
| 接口层 | RESTful API、鉴权、参数校验、统一响应与异常 | FastAPI 路由、JWT 鉴权中间件、分页与筛选 |
| 业务层 | 桥梁库管理、项目管理、评定计算、报告生成、同步服务 | Service 模块(评定引擎、构件生成器、报告引擎) |
| 领域层 | 规范参数与评定规则(唯一可信来源) | 附录 B 部件组成/权重/影响系数、缺损指标表、单项控制指标、养护对策 |
| 数据层 | 持久化、文件存储、日志与版本留痕 | MySQL 8.0(开发环境 SQLite)、本地文件/对象存储 |
1.2 架构要点
- 前后端分离:前端只做展示与交互,全部评定计算在后端完成,保证 Web 与 App 结果一致。
- 规范参数数据化:附录 B 的部件组成、权重 ω、影响系数 γ 以及各章缺损指标表全部落库,评定引擎只读取数据、不硬编码。
- 评定单元隔离:桥跨、单元评定严格限定在同一评定单元内计算,不跨单元混合,全桥取最差单元结果。
- 过程可追溯:构件评定按「指标 → 标度」逐条留痕(
ev_element_item),桥跨评定保留逐部件计算明细(ev_span_detail),支持复核与重新评定(轮次round_no)。 - 模板与数据分离:报告模板配置数据与评定数据分离,支持模板复用与版本管理。
2. 技术选型建议
| 层次 | 推荐方案 | 版本 | 选型理由 |
|---|---|---|---|
| 后端框架 | Python + FastAPI | 3.10 / 0.142.2 | 类型校验强、自动生成 OpenAPI 文档,便于后续 App 对接 |
| ORM | SQLAlchemy | 2.0 | 同一套模型可切换 MySQL / SQLite,开发与部署一致 |
| 数据库 | MySQL 8.0(开发用 SQLite) | 8.0 | 生产环境成熟稳定;开发/演示零依赖 |
| 鉴权 | PyJWT + passlib(bcrypt) | — | Web 与 App 共用 Token 机制 |
| 报告生成 | python-docx / openpyxl / reportlab | 1.2 / 3.1 / 4.4 | 直接产出 Word、Excel、PDF,满足附录 C 报告与表格导出 |
| 数据处理 | pandas | 2.3 | Excel 模板导入导出、批量校验 |
| 图像处理 | Pillow | 12.2 | 照片压缩、水印(桥梁名称/构件编号/日期/桩号) |
| 前端 | Vue 3 + Vite(组件库 Element Plus) | 3.x | 表单与表格密集,组件库可显著降低录入类页面成本 |
| 前端图表/地图 | ECharts(统计报表、检测地图) | 5.x | 等级分布、进度统计、桥梁点位展示 |
| 文件存储 | 本地目录(后续可切换对象存储) | — | 照片与附件与评定数据关联存储,支持断点续传 |
3. 模块划分与目录结构
3.1 功能模块划分
| 编号 | 模块 | 核心能力 | 对应阶段 |
|---|---|---|---|
| M1 | 系统与权限 | 登录、用户、角色、权限、登录日志、操作日志 | 阶段二(已交付) |
| M2 | 数据字典与规范参数 | 桥型、材料、部件、标度、等级、养护对策、单项控制指标、附录B参数 | 阶段一/二 |
| M3 | 桥梁库 | 管理单位、桥梁基本信息(JTG 5120 附录A)、预建构件、检索筛选归档、导入导出 | 阶段三/五/六 |
| M4 | 检测项目 | 项目类型(初始/定期)、桥梁拉入、任务分配、发布到 App、项目汇总 | 阶段四 |
| M5 | 评定单元划分 | 多结构形式分单元、独立桥型/权重/影响系数、排序 | 阶段五 |
| M6 | 构件信息 | 按单元桥型自动生成、批量生成(按数量/按桥跨/按部件)、构件模板、复制相同跨、一键导入导出、单个构件增删改与批量修改、树形清单与统计 | 阶段六(已交付) |
| M7 | 病害录入与构件评定 | 按构件分组的病害清单(病害类型、裂缝形态、数量、大小/尺寸、相对位置法位置描述、照片、来源);Web 端手工录入病害并插入照片,病害类型按所选构件对应的规范类型过滤且每类只对应一种缺损,位置描述支持多种定位方式且可自主填写;已录入病害可在清单行与详情页编辑(改类型/构件/数量/尺寸/位置/照片/描述并重算标度);评定分两级——先对每条已录入病害逐条选择评定标度,再对照规范确定耐久性/结构性/功能状况/影响状况四项评定项目标度(标度 0 无缺损、非 0 自动建病害记录,构件标度取同项下各条病害标度最大值);预留 App 现场采集与导入平台通道;实时 ECI/ECL、构件现状记录;检查类型差异化(初始检查建立构件初始技术状况档案、不与历次对比;定期检查与历次检查对比、记录缺损发展趋势并分析成因及影响)、勾选式指标评定(按构件类型自动带出规范指标条目,勾选登记、取消移除)、批量勾选同类构件、构件现状记录(五类特殊构件)与照片水印(桥梁名称·构件编号·日期·桩号) | 阶段七(已交付) |
| M8 | 总体照片 | 分类管理、批量/文件夹导入、关联单元与构件、导出清单 | 阶段八 |
| M9 | 桥跨评定 | BSCI/BSCL 计算、逐部件明细、主要构件 4/5 类最差评定 | 阶段九 |
| M10 | 评定单元评定 | 单元内桥跨汇总、单元等级与指数、最差桥跨控制 | 阶段十 |
| M11 | 全桥评定 | 单跨/多跨/多单元规则、BCI/BCL、单项控制指标判定 | 阶段十一 |
| M12 | 报告与导出 | 模板配置(章节/字段绑定/样式/版本)、报告生成与下载(Word/PDF/Excel) | 阶段十二/十三 |
| M13 | App 数据同步服务 | 下载/上传接口、增量同步、冲突处理、断点续传 | 阶段十五 |
| M14 | 统计报表与检测地图 | 等级分布、进度统计、管辖范围桥梁宏观管理 | 阶段十二后 |
3.2 建议目录结构
公路桥梁技术状况评定标准评定检测软件/
├── docs/ # 各阶段设计文档(本阶段产物)
├── database/
│ ├── schema.sql # 数据库 DDL(46 张表)
│ └── data_dictionary.json # 核心数据字典(规范参数)
├── _source/ # 规范解析产物(附录B 参数、页面图片)
├── _tools/ # 规范解析与运维脚本
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── core/ # 配置、鉴权、异常、日志
│ │ ├── models/ # SQLAlchemy 模型(与 schema.sql 对应)
│ │ ├── schemas/ # Pydantic 出入参
│ │ ├── services/ # 业务服务
│ │ │ ├── bridge/ # 桥梁库
│ │ │ ├── project/ # 检测项目
│ │ │ ├── element/ # 构件生成与模板
│ │ │ ├── evaluation/ # 评定引擎(构件/桥跨/单元/全桥)
│ │ │ └── report/ # 报告与导出引擎
│ │ ├── api/ # 路由
│ │ └── main.py
│ └── requirements.txt
└── frontend/ # Vue 3 前端
├── src/views/ # 页面(向导式流程)
├── src/components/ # 通用组件(标度勾选、构件树、评定卡片)
└── src/api/ # 接口封装
4. 核心业务模型与规范映射
4.1 评定层次
按规范第 3.1.1 条,公路桥梁技术状况评定采用分层综合法,按构件、桥跨、全桥的顺序依次评定;当主要构件出现严重缺损时,可采用单项控制指标法。当桥梁纵向采用不同结构形式或横向采用拼宽结构时,应划分评定单元分别评定(第 3.1.2 条)。
4.2 构件技术状况评定(第 3.2 节)
| 指标 | 含义 | 取值范围 | 计算/取值规则 |
|---|---|---|---|
| EDDI | 耐久性缺损标度 | 0、1、2 | 按构件材料类别评定(第 4 章) |
| ESDI | 结构性缺损标度 | 0、1、2、3 | 按构件类型评定(第 5~13 章);维修加固构造按第 13 章并计入原构件 |
| EDI | 构件缺损状况标度 | 0、1、2、3 | EDI = max(EDDI, ESDI) |
| EFI | 构件功能状况标度 | 0、1、2 | 第 14 章;多项异常取最大值 |
| EAI | 构件影响状况标度 | −1、0、1 | 第 15 章;多种影响取最大值 |
| ECI | 构件技术状况标度 | 0~5 | ECI = EDI + EFI + EAI,计算值 ≥ 5 时取 5 |
| ECI | 0 | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|---|
| ECL | 1 类 | 2 类 | 3 类 | 4 类 | 5 类 | 5 类 |
| 代表状态 | 优 | 良 | 中 | 次 | 差 | 差 |
4.2.1 病害录入(只登记病害本身)
病害录入仅登记现场病害本身,不显示也不由人工指定评定类别(耐久性/结构性/功能状况/影响状况)。评定类别由所选病害类型按规范自动确定,人工只负责如实登记病害。录入字段与规则:
- 构件筛选与自主填写:可按评定单元、桥跨筛选构件;构件清单中没有的构件可通过「自主填写构件」加入(名称自主填写、部件可选),加入后参与评定且不参与自动重编号。
- 病害类型按构件过滤:病害类型下拉只列出所选构件(按部件代码)对应的规范病害类型,该构件没有的病害类型不体现。
- 病害类型具体到单一病害:病害类型按规范清单逐项细分,每一类只对应一种缺损,不在同一类型中并列多种缺损。例如支座病害按「支座老化」「支座开裂」「支座脱空」分列,主梁病害按「构件变形」「挠度超限」分列;每条病害记录对应唯一病害类型与规范编号,标度划分原则亦按该单一类型取用。
- 裂缝形态:裂缝类病害(名称含「裂缝」)须选择裂缝形态(竖向、横向、纵向、斜向、环向、放射状、网状(龟裂)、贯通等),非裂缝病害不显示该下拉。
- 数量、大小(尺寸)、照片、描述:数量按处计;尺寸填写长度、宽度等;照片支持多选插入,自动关联桥梁名称、构件编号、日期与桩号水印;描述记录病害形态、范围与发展情况。
- 来源:Web 手工录入为当前通道;App 现场采集、导入平台为预留通道,落库结构与字段规则与 Web 端完全一致。
4.2.2 相对位置法(位置描述)
位置描述采用相对位置法,提供多种定位方式,各定位方式所需填写项不同;参照物、构件部位、部位方位等既可下拉选择也可自主填写,并支持完全自由文本描述,不限于固定几种方式。
| 定位方式 | 必填项 | 示例 |
|---|---|---|
| 距参照物一定距离处 | 参照物、起点距离 | 距 1#墩 3.0 m 处 |
| 距参照物区间范围内 | 参照物、起点距离、终点距离 | 距 1#墩 2.0~5.0 m 范围内 |
| 两参照物之间 | 参照物、第二参照物 | 1#墩与 2#墩之间 |
| 自参照物起连续范围 | 参照物、终点距离 | 自 0#台起 0~4.0 m |
| 构件部位定位 | 构件部位 | 跨中部位 |
| 按桩号范围定位 | 起点桩号(或终点桩号) | K412+310~K412+318 |
| 自由文本描述 | 位置描述文本 | 第 2 跨梁底距 1#墩约 3 m 处,腹板中部 |
各定位方式均可附加「部位/方位」(如梁底、跨中截面、墩身迎水面等),该字段同样支持下拉或自主填写。
4.2.2A 病害编辑
病害清单每行与病害详情页均提供「编辑」入口,对已录入病害复用同一录入弹窗(标题切换为「病害编辑」、按钮切换为「保存修改」),并回显原有类型、裂缝形态、数量、尺寸、位置、照片与描述。编辑支持:
- 修改病害内容:类型、裂缝形态、数量、大小(尺寸)、相对位置、照片、描述与成因均可修改;评定项目随病害类型自动重定。
- 更换构件:可将病害移动到其他构件(可按单元/桥跨筛选),编辑后同步重算原构件与目标构件对应评定项目的标度。
- 标度重定:若修改后原标度不在新病害类型的标度清单内,该条病害标度自动归零,需在「病害标度评定」页重新确认;构件标度始终按各条病害标度的最大值重算。
- 编号稳定:编辑不改变病害编号,台账记录保持唯一。
4.2.3 病害标度评定(两级自主评定)
病害标度评定分两级,均以规范标度描述为唯一下拉选项文字来源(表 3.2.2/3.2.3/3.2.4),禁止自定义描述:
- 逐条病害标度:对本构件已录入的每条病害,在其对应评定项目(EDDI/ESDI/EFI/EAI)下选择评定标度;选项即该病害类型规范规定的标度取值范围与描述。
- 四项评定项目标度:在耐久性、结构性、功能状况、影响状况四项上对照规范自主选择标度;构件该项标度取其下各条病害标度的最大值,也可在四项表中直接选定。
联动规则:标度选择后即时联动更新构件 ECI、桥跨 BSCI 与全桥 BCI;标度由 0 调为非 0 时自动建立对应病害台账记录,标度置 0 时自动移除对应病害记录(该病害全部标度为 0 时);构件编号与病害编号保持唯一。
4.3 桥跨技术状况评定(第 3.3 节)
BSCI(i) = 100 − Σ(j=1..n) [ CI(j) × ω × γ / 5 ] (式 3.3.1,保留一位小数)
CI(j) —— 桥跨第 j 个部件的最差构件技术状况标度
ω —— 部件权重值(附录 B)
γ —— 桥面系/上部结构/下部结构/附属构造的影响系数(附录 B)
| BSCI(i) | (90, 100] | (75, 90] | (60, 75] | (40, 60] | [0, 40] |
|---|---|---|---|---|---|
| BSCL(i) | 1 类 | 2 类 | 3 类 | 4 类 | 5 类 |
主要构件控制(第 3.3.3 条):主要构件技术状况等级为 4 类或 5 类且影响桥梁安全时,所在桥跨技术状况等级应按该构件最差技术状况等级评定,并说明理由;后续计算中该桥跨技术状况指数取该等级指数上限(4 类取 60,5 类取 40)。
4.4 全桥技术状况评定(第 3.4 节)
| 情形 | 全桥等级 BCL | 全桥指数 BCI |
|---|---|---|
| 单跨桥梁(3.4.1) | 桥跨技术状况等级 | 桥跨技术状况指数 |
| 多跨、等级一致(3.4.2) | 桥跨技术状况等级 | 各桥跨指数算术平均值 |
| 多跨、等级不一致(3.4.3) | 最差桥跨技术状况等级 | 按式 (3.4.3) 计算 |
| 多评定单元(3.4.4) | 最差评定单元等级 | 最差评定单元指数 |
| 命中单项控制指标(3.4.5) | 直接评定为 5 类 | 按 5 类上限处理并单独说明 |
BCI = BSCI(min) + ( BSCI(lim) − BSCI(min) ) / ( BSCI(max) − BSCI(min) ) × ( BSCI(avg) − BSCI(min) )
(式 3.4.3,保留一位小数)
BSCI(lim):桥跨等级 2 类取 90、3 类取 75、4 类取 60、5 类取 40
4.5 养护对策(第 3.5.2 条 表 3.5.2)
| 构件技术状况等级 ECL | 状态 | 养护对策 |
|---|---|---|
| 1 类 | 优 | 日常养护 |
| 2 类 | 良 | 日常养护、预防养护 |
| 3 类 | 中 | 预防养护、修复养护 |
| 4 类 | 次 | 修复养护 |
| 5 类 | 差 | 修复养护 |
全桥养护对策按《公路桥涵养护规范》JTG 5120 的规定提出(第 3.5.3 条)。
4.6 检测项目类型与导出表格对照
| 项目类型 | 检查内容重点 | 导出表格 |
|---|---|---|
| 初始检查 | 桥梁基本信息核实与录入、构件初始状态检查、初始缺损记录、初始功能状况记录、建立构件初始技术状况档案;不与历次检查对比 | 初始检查记录表、桥梁初始状态登记表、构件初始技术状况评定表、桥跨初始技术状况评定表、评定单元初始技术状况评定表、全桥初始技术状况评定表、初始检查报告 |
| 定期检查 | 桥梁基本信息复核、构件缺损状况(耐久性+结构性)、功能状况、影响状况、与历次检查结果对比分析 | 定期检查记录表、缺损状况检查记录表(表 C.0.7)、构件技术状况评定表、桥跨评定汇总表(C.0.8-1)、桥跨评定计算表(C.0.8-2)、全桥评定计算表(C.0.8-3、C.0.8-4)、评定单元汇总表、定期检查报告 |
5. 数据库表结构设计
共设计 46 张表,分为 11 组。完整 DDL 见 database/schema.sql。
5.1 实体关系概述
桥跨、部件、构件三级为评定对象树;评定记录(ev_*)按 round_no 分轮次留痕,is_current 标记当前有效版本。
5.2 表清单
| 分组 | 表名 | 说明 |
|---|---|---|
| 一、系统与权限 | sys_user | 用户表 |
sys_role | 角色表(管理员/检测人员/审核人员/查看人员) | |
sys_permission | 权限表(菜单/按钮/接口/数据) | |
sys_user_role | 用户-角色关联 | |
sys_role_permission | 角色-权限关联 | |
sys_login_log | 登录日志 | |
sys_operation_log | 操作日志(过程可追溯) | |
| 二、数据字典 与规范参数 | dict_type / dict_item | 通用字典类型与字典项 |
appendix_b_part_weight | 附录B 各桥型部件组成、权重 ω、影响系数 γ | |
defect_indicator | 缺损评定指标表(耐久性第4章 / 结构性第5~13章) | |
func_impact_indicator / control_indicator | 功能状况、影响状况指标 / 单项控制指标 16 条 | |
| 三、管理单位 | org_unit | 管理单位(单位名称、单位类型、上级单位) |
br_route | 路线(路线名称、路线编号,隶属管理单位;桥梁按路线归属,桥梁数量由 br_bridge 统计) | |
| 四、桥梁库 | br_bridge | 桥梁基本信息(字段按 JTG 5120 附录A,非必填允许留空) |
br_element_lib | 预建构件库(独立于项目,检测项目直接引用) | |
br_maintenance_history | 养护历史(定期检查对比分析用) | |
| 五、检测项目 | prj_project | 检测项目(含项目类型:初始检查/定期检查) |
prj_member | 项目人员 | |
prj_bridge | 项目-桥梁关联(引用桥梁库,不重复创建基本信息) | |
prj_task | 检测任务分配(支持发布到 App) | |
| 六、评定对象树 | unit_assessment | 评定单元(多结构形式分别评定) |
span_span | 桥跨信息 | |
part_part | 部件信息(含 γ、ω) | |
el_element | 构件信息(含 ECI、ECL、状态标记) | |
el_template | 构件模板(保存/复用/修改) | |
| 七、病害与照片 | dfc_defect | 病害信息(含裂缝形态 crack_form、相对位置定位方式 pos_mode 与位置描述 defect_position;只登记病害本身,缺损类别由病害类型自动确定) |
dfc_photo | 病害照片(一病害多照片,支持后补) | |
el_condition_record | 构件现状记录 | |
photo_overall | 总体照片(分类管理) | |
| 八、评定记录 | ev_element | 构件评定(EDDI/ESDI/EDI/EFI/EAI/ECI/ECL) |
ev_element_item | 构件评定指标明细(勾选过程留痕) | |
ev_span / ev_span_detail | 桥跨评定与逐部件计算明细 | |
ev_unit | 评定单元评定 | |
ev_bridge | 全桥评定(BCI/BCL、结论与建议) | |
ev_control_hit | 单项控制指标命中记录 | |
| 九、报告 | rpt_template | 报告模板(初始/定期分别配置,版本管理) |
rpt_template_section | 模板章节(内容类型、字段绑定、排序、启停) | |
rpt_record | 报告生成记录 | |
| 十、初始检查 | init_inspection_record | 初始检查记录表 |
init_state_registration | 桥梁初始状态登记表 | |
| 十一、App 同步 | sync_queue | 同步队列(增量同步/断点续传/冲突处理) |
sync_download_log | 数据下载记录(数据版本校验) |
5.3 关键设计说明
5.3.1 桥梁库与检测项目解耦
br_bridge 为全局桥梁库,通过 maintain_org_id 归属管理单位;prj_bridge 只做引用,不复制桥梁基本信息,满足「先建库、后建项目、再拉入桥梁」的工作模式。
5.3.2 评定单元与多结构形式
unit_assessment 同时持有 bridge_id 与可空的 project_id:project_id 为空表示桥梁库内预建单元,非空表示项目内单元。每个单元通过 bridge_type_code 独立选择桥型,通过 gamma_override / omega_override 支持按 B.1.3 条做权重重新分配。
5.3.3 权重与影响系数的落位
规范参数存放在 appendix_b_part_weight(按 桥型 × 结构 × 部件 唯一约束);生成部件时把实际生效的 γ、ω 快照写入 part_part,保证历史评定结果不因字典调整而变化。
5.3.4 过程留痕与重新评定
全部 ev_* 表带 round_no(评定轮次)与 is_current(当前有效版本),支持重新评定与历史版本对比;ev_element_item 与 ev_span_detail 保留中间值,便于复核。
6. 核心数据字典
全部字典项集中存放于 database/data_dictionary.json,并可按类型导入 dict_type / dict_item。以下为核心字典摘要。
6.1 桥梁类型与桥型细分(表 B.1.1)
| 桥梁类型 | 桥型细分(括号内为附录B 表号) |
|---|---|
| 梁桥(6) | 整体式板桥(B.2.2)、装配式板桥(B.2.3)、装配式组合箱梁桥及肋梁桥(B.2.4)、整体现浇箱梁桥(B.2.5)、悬臂浇筑箱梁桥(B.2.6)、钢箱梁/钢桁梁/钢板梁和钢-混凝土组合梁桥(B.2.7) |
| 拱桥(7) | 实腹式板拱桥(B.3.2)、空腹式板拱桥(B.3.3)、肋拱桥(B.3.4)、箱形拱桥(B.3.5)、双曲拱桥(B.3.6)、桁架拱桥(B.3.7)、刚架拱桥(B.3.8) |
| 组合体系拱桥(3) | 无系杆组合体系拱桥(B.4.2)、柔性系杆组合体系拱桥(B.4.3)、刚性系杆组合体系拱桥(B.4.4) |
| 悬索桥(2) | 自锚式悬索桥(B.5.2)、地锚式悬索桥(B.5.3) |
| 斜拉桥(2) | 斜拉桥(B.6.2)、部分斜拉桥(B.6.3) |
6.2 部件组成与评定参数(附录 B)示例
影响系数 γ 按结构类别取值,权重 ω 按部件取值;同一桥型下各部件的 ω 合计为 100。以整体式板桥(表 B.2.2)为例:
| 结构 | γ | j | 部件 | ω |
|---|---|---|---|---|
| 桥面系 | 0.15 | 1 | 桥面铺装 | 40 |
| 2 | 伸缩装置 | 25 | ||
| 3 | 护栏及人行道 | 20 | ||
| 4 | 排水系统 | 15 | ||
| 上部结构 | 0.40 | 5 | 实心板/空心板 | 75 |
| 6 | 支座 | 25 | ||
| 下部结构 | 0.40 | 7 | 桥墩或桥台 | 60 |
| 8 | 墩台基础 | 40 | ||
| 附属构造 | 0.05 | 9 | 河床及调治构造物 | 35 |
| 10 | 翼墙、锥坡、护坡 | 35 | ||
| 11 | 其他附属设施 | 30 |
注:整体式板桥包括整体式实心板桥和整体式空心板桥,每跨板梁划分为 1 个构件。全部桥型的部件组成与权重见 _source/appendix_b.json。
影响系数 γ 随桥型变化,并非全系统固定取值,必须按附录 B 各表逐桥型读取:
| 桥型(表号) | 桥面系 | 上部结构 | 下部结构 | 附属构造 |
|---|---|---|---|---|
| 整体式板桥(B.2.2) | 0.15 | 0.40 | 0.40 | 0.05 |
| 装配式板桥(B.2.3) | 0.15 | 0.40 | 0.40 | 0.05 |
| 装配式组合箱梁桥及肋梁桥(B.2.4) | 0.15 | 0.42 | 0.38 | 0.05 |
| 整体现浇箱梁桥(B.2.5) | 0.10 | 0.45 | 0.40 | 0.05 |
| 悬臂浇筑箱梁桥(B.2.6) | 0.10 | 0.45 | 0.40 | 0.05 |
| 钢箱梁/钢桁梁/钢板梁和钢-混凝土组合梁桥(B.2.7) | 0.10 | 0.50 | 0.35 | 0.05 |
| 实腹式板拱桥(B.3.2) | 0.10 | 0.45 | 0.40 | 0.05 |
| 空腹式板拱桥(B.3.3) | 0.15 | 0.45 | 0.35 | 0.05 |
| 肋拱桥(B.3.4) | 0.15 | 0.48 | 0.32 | 0.05 |
| 箱形拱桥(B.3.5) | 0.15 | 0.42 | 0.38 | 0.05 |
| 双曲拱桥(B.3.6) | 0.15 | 0.48 | 0.32 | 0.05 |
| 桁架拱桥(B.3.7) | 0.15 | 0.45 | 0.35 | 0.05 |
| 刚架拱桥(B.3.8) | 0.15 | 0.45 | 0.35 | 0.05 |
| 无系杆组合体系拱桥(B.4.2) | 0.12 | 0.53 | 0.30 | 0.05 |
| 柔性系杆组合体系拱桥(B.4.3) | 0.12 | 0.55 | 0.28 | 0.05 |
| 刚性系杆组合体系拱桥(B.4.4) | 0.12 | 0.53 | 0.30 | 0.05 |
| 自锚式悬索桥(B.5.2) | 0.10 | 0.55 | 0.30 | 0.05 |
| 地锚式悬索桥(B.5.3) | 0.10 | 0.50 | 0.35 | 0.05 |
| 斜拉桥(B.6.2) | 0.10 | 0.55 | 0.30 | 0.05 |
| 部分斜拉桥(B.6.3) | 0.10 | 0.55 | 0.30 | 0.05 |
6.3 评定标度、等级与养护对策
| 标度项 | 取值范围 | 取值描述 |
|---|---|---|
| 耐久性缺损 EDDI | 0 / 1 / 2 | 完好或局部轻微缺损 / 较多轻度缺损或局部中度缺损 / 较多中度缺损或局部严重缺损 |
| 结构性缺损 ESDI | 0 / 1 / 2 / 3 | 完好或局部微小缺损 / 轻度缺损 / 中度缺损 / 严重缺损 |
| 功能状况 EFI | 0 / 1 / 2 | 正常 / 一般异常 / 严重异常 |
| 影响状况 EAI | −1 / 0 / 1 | 轻微(缺损趋向稳定)/ 一般(缺损缓慢发展)/ 严重(缺损加速发展) |
6.4 单项控制指标(第 3.4.5 条)
桥梁出现下列任一情形时,全桥技术状况等级应评定为 5 类:
- 落梁或梁板断裂。
- 主梁控制截面全截面开裂。
- 组合结构主梁结合面贯通开裂,组合作用失效。
- 主梁明显永久变形,变形大于规范值并伴随严重开裂。
- 拱桥主拱圈严重变形。
- 圬工拱桥主拱圈砌体大范围断裂、脱落。
- 拱桥拱脚固结失效、明显变位。
- 拱桥腹拱圈、桥面板塌陷或断裂。
- 主要构件混凝土压溃或杆件有失稳趋势。
- 上部结构主要构件严重异常位移,有失稳或落梁趋势。
- 主缆、拉吊索、系杆索严重锈蚀或断裂。
- 桥墩、桥台严重倾斜。
- 扩大基础冲刷至基础底面,冲空面积大于 20%。
- 桩柱连接钢筋失效或桩柱严重错位。
- 桩基础核心混凝土大范围缺失。
- 墩台基础、锚碇明显位移、下沉、倾斜。
6.5 其他字典
| 字典 | 取值 |
|---|---|
| 材料类型 | 钢筋混凝土、预应力混凝土、钢、钢-混凝土组合、圬工、钢管混凝土 |
| 结构类别 | 桥面系(γ=0.15)、上部结构(γ=0.40)、下部结构(γ=0.40)、附属构造(γ=0.05)(以附录B各表为准) |
| 项目类型 | 初始检查(INITIAL)、定期检查(PERIODIC) |
| 项目状态 | 未开始、进行中、已完成、已归档 |
| 评定单元类型 | 主桥单元、引桥单元、拼宽单元、其他单元 |
| 管理单位类型 | 管养单位、业主单位、检测单位、监理单位、设计单位、施工单位 |
| 报告章节类型 | 文本、表格、图片、图表、条件内容、附件 |
| 总体照片分类 | 正面照、左侧面照、右侧面照、桥面照、上部结构、下部结构、桥面系、附属构造、典型截面、特殊部位 |
| 路线等级 / 功能类型 / 设计荷载 / 通行载重 / 抗震设防 | 按 JTG 5120 附录A 桥梁基本状况卡片字典项设置(详见 data_dictionary.json) |
7. 评定流程状态机设计
评定按「构件 → 桥跨 → 评定单元 → 全桥」逐级推进,下级未完成时上级不可评定;任一环节命中单项控制指标时全桥直接判为 5 类。
| 对象 | 状态 | 触发条件 |
|---|---|---|
| 构件 | 未评定 NOT_EVAL | 构件生成完成 |
| 已评定 EVAL | 完成 EDDI/ESDI/EFI/EAI 勾选并保存,系统计算 ECI、ECL | |
| 需专项检查 SPECIAL | 损伤程度及原因不明确,转附录 A 专项检查 | |
| 桥跨 | 待评定 | 该跨全部部件均有构件评定结果 |
| 已评定 | 计算 BSCI(i) 并判定 BSCL(i) | |
| 评定单元 | 待评定 | 单元内全部桥跨已完成评定 |
| 已评定 | 按单元内最差桥跨等级确定单元等级 | |
| 全桥 | 待评定 | 全部评定单元已完成评定 |
| 已评定 | 按单跨/多跨/多单元规则计算 BCI、BCL;判定单项控制指标 | |
| 已出报告 | 生成并下载检测报告 | |
| 检测项目 | 未开始 | 项目创建、桥梁拉入 |
| 进行中 | 已发布任务 / 开始录入数据 | |
| 已完成 | 项目内全部桥梁完成全桥评定 | |
| 已归档 | 项目结束归档,只读 |
8. 前端页面结构规划
采用「向导式流程 + 管理后台」双入口。向导式流程对应单座桥梁从建库到出报告的完整链路;管理后台对应桥梁库、项目、模板、用户等全局管理。
8.1 向导式流程(单桥主线)
| 步骤 | 页面 | 关键交互 |
|---|---|---|
| 1 | 登录 | 测试阶段直接登录 / 一键登录 |
| 2 | 桥梁库管理 | 管理单位、桥梁信息、预建构件(独立于项目) |
| 3 | 检测项目管理 | 选择项目类型(初始/定期)、从桥梁库拉入桥梁 |
| 4 | 评定单元划分 | 多结构形式分单元、单元桥型与参数 |
| 5 | 构件信息 | 一键生成 / 批量 / 模板 / 复制相同跨 / 导入 |
| 6 | 病害录入 | 手工录入病害并插入照片;病害类型按构件过滤且每类只对应一种缺损、裂缝类病害选择裂缝形态、构件可筛选或自主填写;已录入病害支持在清单行与详情页编辑(改类型/构件/数量/尺寸/位置/照片/描述并重算标度);位置描述采用相对位置法(多种定位方式,参照物/部位/方位可下拉也可自主填写,并支持自由文本);评定标度分两级——逐条病害标度 + 四项评定项目标度;预留 App 采集与平台导入 |
| 7 | 构件评定 | 实时显示 ECI、ECL、养护对策 |
| 8 | 桥跨评定 | 实时显示 BSCI、BSCL,逐部件明细 |
| 9 | 评定单元评定 | 单元等级与指数、最差桥跨提示 |
| 10 | 全桥评定 | BCI、BCL、单项控制指标确认弹窗 |
| 11 | 检测报告 | 在线预览、下载、打印 |
8.2 管理后台页面
- 桥梁库:桥梁列表(按管理单位/路线/桥型/建设年代筛选)、桥梁详情、构件库、归档与导入导出。
- 检测项目:项目列表与筛选、项目详情、项目内桥梁与进度、任务分配与发布到 App、项目汇总。
- 报告模板配置:模板列表(初始/定期分类)、章节配置(增删改/排序/启停)、字段绑定、样式配置、版本管理。
- 系统管理:用户、角色、权限、数据字典、操作日志、登录日志。
- 统计报表与检测地图:等级分布、进度统计、桥梁点位与宏观管理。
8.3 交互与可视化要求
- 通用信息以勾选、下拉、卡片选择为主,少量数值型信息手输(支持
3×20+2×30跨径组合快捷输入)。 - 构件信息支持一键生成、一键导入、复制相同跨构件。
- 病害录入以手工录入 + 对照规范病害标度评定清单下拉评定为主;病害录入只登记病害本身(不显示评定类别),病害类型按所选构件过滤,裂缝类病害须选裂缝形态,构件可筛选或自主填写;位置描述采用相对位置法(多种定位方式,参照物、部位、方位既可下拉选择也可自主填写,并支持自由文本);照片随录入插入、支持后补与撤销;App 现场采集与导入平台通道后期接入,落库结构与 Web 端一致。
- 病害标度评定分两级:先对本构件已录入的每条病害逐条选择评定标度,再对照规范确定耐久性、结构性、功能状况、影响状况四项评定项目标度;下拉选项文字直接取自规范标度描述(表 3.2.2/3.2.3/3.2.4),构件标度取同项下各条病害标度最大值,标度变动即时联动 ECI/BSCI/BCI。
- 实时显示 ECI / ECL、BSCI / BSCL、单元等级、BCI / BCL。
- 对 4 类、5 类构件、桥跨、评定单元突出警示;命中单项控制指标时弹出确认提示。
- 支持批量录入与 Excel 导入导出;支持手机/平板现场录入、拍照、离线缓存。
9. 登录与权限设计
9.1 分阶段登录策略
| 阶段 | 方式 | 说明 |
|---|---|---|
| 测试阶段 | 直接登录 | 默认账号 admin/admin,另提供「一键登录」按钮,可直接进入系统 |
| 发布后 | 注册 + 登录 | 注册页面启用,密码 bcrypt 加密存储,JWT 签发 Token |
9.2 角色与权限
| 角色 | 数据权限范围 | 典型操作权限 |
|---|---|---|
| 管理员 | 全部数据 | 用户/角色/权限、字典维护、桥梁库、项目、模板、全部评定与报告 |
| 检测人员 | 本组织 / 本项目 | 桥梁信息录入、构件生成、病害录入、构件/桥跨评定、数据上传 |
| 审核人员 | 本组织 / 本项目 | 评定结果复核、退回修改、全桥评定确认、报告审核 |
| 查看人员 | 本组织 / 本项目 | 只读查看评定结果与报告下载 |
权限分三层:菜单权限(可见页面)、数据权限(可见数据范围,由 sys_role.data_scope 控制)、操作权限(按钮与接口级)。登录日志写入 sys_login_log,关键业务操作写入 sys_operation_log。
10. App 数据同步接口设计(预留)
本阶段仅输出方案与接口定义,不生成 App 代码;待在线网站系统核验通过后,再按本方案生成 App。
10.1 同步数据范围
| 方向 | 数据 |
|---|---|
| 网站 → App | 桥梁基本信息、评定单元、桥跨、部件、构件清单、已有病害数据、报告模板 |
| App → 网站 | 现场采集的病害、照片、构件现状记录、评定结果,以及现场新建的桥梁基础信息、构件信息 |
App 现场新建的桥梁与构件上传后自动进入桥梁库,网站端可查看、编辑和使用;现场新建字段与校验规则与网站端保持一致。
10.2 接口清单
| 接口 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 登录 | POST | /api/app/auth/login | 账号密码登录,返回 Token |
| 数据版本校验 | GET | /api/app/sync/version | 返回各数据域版本号,用于增量判断 |
| 桥梁信息下载 | GET | /api/app/bridge/{id} | 下载桥梁基本信息与单元、桥跨结构 |
| 构件清单下载 | GET | /api/app/elements | 按项目/桥梁/单元下载构件清单 |
| 病害数据下载 | GET | /api/app/defects | 下载已有病害数据(增量) |
| 报告模板下载 | GET | /api/app/report/template | 下载报告模板配置 |
| 病害数据上传 | POST | /api/app/defects | 批量上传现场病害记录 |
| 照片上传 | POST | /api/app/photos | 分片上传,支持断点续传 |
| 评定结果上传 | POST | /api/app/evaluations | 上传构件评定结果(标度明细) |
| 构件现状记录上传 | POST | /api/app/element-conditions | 上传构件现状记录及附件 |
| 桥梁信息上传 | POST | /api/app/bridge | App 现场新建桥梁,自动进入桥梁库 |
| 构件信息上传 | POST | /api/app/elements | App 现场新建构件信息 |
10.3 同步机制
- 增量同步:以
sync_queue.version_no与数据域版本号比对,只传输变化数据。 - 冲突处理:客户端生成
entity_uuid作为全局唯一标识;同一实体以服务端更新时间较新者为准,冲突记录写入sync_queue.sync_status = CONFLICT供人工裁定。 - 断点续传:照片与附件分片上传,失败重试计数
retry_count。 - 离线优先:App 本地 SQLite 存储,联网后自动同步;支持多人并行采集。
10.4 App 技术选型建议
跨平台方案(Flutter / React Native / uni-app);本地数据库 SQLite;拍照后自动压缩并加水印(桥梁名称、构件编号、日期、桩号)。
11. 测试要点与阶段二衔接
11.1 本阶段测试要点
- DDL 可在 MySQL 8.0 与 SQLite 上完整建表,外键与唯一约束无冲突。
- 数据字典项数量与规范一致:桥型 21 项、单项控制指标 16 条、γ 取值 4 类、等级界限 5 档。
- 附录 B 权重合计校验:同一桥型同一结构下 ω 合计为 100。
- 评定单元可独立持有桥型与参数,多单元桥梁可分别评定。
- 桥梁库与项目解耦:删除项目不影响桥梁库数据。
11.2 阶段二交付:登录与用户管理模块
阶段二已完成,交付内容包括:
- 登录页:账号密码登录 + 4 个测试角色一键登录卡(管理员 / 检测人员 / 审核人员 / 查看人员),错误提示与验证逻辑完整。
- 注册页:发布后启用,含账号、姓名、手机号、邮箱、所属单位、密码确认等字段,提交后返回审核提示。
- 用户管理:用户列表(8 名演示用户)、搜索与筛选、增删改查、状态启停、角色分配。
- 角色与权限:4 个内置角色(管理员 / 检测人员 / 审核人员 / 查看人员),三级权限体系(菜单权限 / 操作权限 / 数据范围),角色卡片展示权限项数、成员数、数据范围。
- 登录日志:Web / App 登录记录、成功/失败统计、IP、说明、时间,支持筛选与导出。
- 操作日志:模块 / 动作 / 对象 / 详情 / IP / 时间,评定过程可追溯。
- 顶部用户菜单:点击头像展开用户信息与快捷入口(用户与角色、操作日志、登录日志、退出登录)。
数据库表 sys_user / sys_role / sys_permission / sys_user_role / sys_role_permission / sys_login_log / sys_operation_log 与前端原型页面已完整对齐。
11.3 本阶段交付物
| 交付物 | 路径 | 说明 |
|---|---|---|
| 系统框架与数据库设计文档 | docs/phase01-design/phase01-design.html | 本文件 |
| 数据库 DDL | database/schema.sql | 46 张表完整建表脚本 |
| 核心数据字典 | database/data_dictionary.json | 规范参数字典(可直接导入字典表) |
| 附录B 参数数据 | _source/appendix_b.json / .md | 各桥型部件组成、ω、γ |
12. 阶段三交付:桥梁库管理模块
桥梁库为全局数据,独立于检测项目:先建库(管理单位 → 桥梁 → 评定单元 / 构件), 需要检测时再从库中把桥梁拉入项目。检测项目只引用库内桥梁,不重复创建基本信息;删除项目不影响桥梁库。
12.1 页面与路由
| 路由 | 页面 | 关键交互 |
|---|---|---|
/library | 桥梁台账(桥梁库) | 按管理单位 / 路线等级 / 桥型 / 状态 / 关键字检索;新建、编辑、复制、归档、删除;Excel / CSV 导入导出 |
/library/bridge/:id | 桥梁详情 | 按 JTG 5120 附录A 分组展示基本信息(行政区划与识别数据、技术指标、结构信息等) |
/library/orgs | 管理单位 | 单位列表与联系人、管养路线与桥梁数量;新增 / 编辑 / 删除单位、维护管养路线 |
/library/elements | 构件库 | 按桥梁组织,进入查看该桥预建的评定单元与构件清单 |
12.2 桥梁台账功能
- 检索条件:管理单位、路线等级、桥梁类型、状态(待评定 / 评定中 / 已评定 / 已归档)、关键字(名称 / 编号 / 桩号 / 路线),一键重置。
- 统计卡:在库桥梁数、管理单位数、已归档数、当前筛选结果数(含生效条件数)。
- 行内操作:详情、编辑(复用建库弹窗)、复制为新桥(含评定单元与构件)、归档 / 取消归档、删除。
- 导入导出:按当前筛选导出 CSV(Excel 可直接打开);提供导入模板下载、选择 CSV 文件或粘贴 CSV 内容导入。
12.3 新建 / 编辑桥梁弹窗字段
字段严格对齐 JTG 5120 附录A 桥梁基本状况卡片;除桥梁名称与管理单位外均不强制填写。
| 分组 | 字段 |
|---|---|
| 标识信息 | 桥梁名称*、桥梁编号(留空按「路线编号+行政区划代码+顺序号」自动生成)、桥位桩号 |
| 归属与路线 | 管理单位*、所属路线、路线等级、行政区划、被跨越道路(通道)、建成时间 |
| 结构信息 | 桥型细分(附录B 20 项)、设计荷载、通行载重、桥梁全长、桥面总宽、桥面净宽、设计单位、施工单位、桥梁概况 / 备注 |
12.4 桥型细分字典(附录B)
共 20 项,编号按附录B 表号(B.x.y)编码,选择细分即回填桥梁类型与名称:
| 桥梁类型 | 项数 | 细分编号 |
|---|---|---|
| 梁桥 | 6 | B.2.2~B.2.7(整体式板桥 / 装配式板桥 / 装配式组合箱梁及肋梁桥 / 整体现浇箱梁桥 / 悬臂浇筑箱梁桥 / 钢箱梁·钢桁梁·钢板梁及钢-混组合梁桥) |
| 拱桥 | 7 | B.3.2~B.3.8(实腹式板拱 / 空腹式板拱 / 肋拱 / 箱形拱 / 双曲拱 / 桁架拱 / 刚架拱桥) |
| 组合体系拱桥 | 3 | B.4.2~B.4.4(无系杆 / 柔性系杆 / 刚性系杆组合体系拱桥) |
| 悬索桥 | 2 | B.5.2 / B.5.3(自锚式 / 地锚式悬索桥) |
| 斜拉桥 | 2 | B.6.2 / B.6.3(斜拉桥 / 部分斜拉桥) |
12.5 管理单位维护
- 新增 / 编辑:单位名称*、联系人、联系电话、管养范围;编辑名称时同步更新名下所有桥梁的管养单位。
- 管养路线:为单位登记路线(路线名称*、路线编号),重复路线予以拦截;台账按单位与路线展示桥梁数量。
- 删除保护:名下仍有在库桥梁的单位禁止删除,需先转移归属或删除桥梁。
12.6 数据层 API(data.js)
| 接口 | 说明 |
|---|---|
addBridge(input) | 建库新增:校验名称非空与唯一、管理单位有效;编号留空自动生成;初始状态「待评定」 |
updateBridge(id, input) | 编辑基本信息:改管理单位同步管养单位;改桥型细分重定桥型与名称 |
setBridgeStatus / archiveBridge / unarchiveBridge | 状态流转:归档(保留数据、退出在库列表)与取消归档 |
copyBridge(id) | 复制为新桥:评定单元与构件一并复制、编号重生成、评定状态重置 |
deleteBridge(id) | 删除:被项目引用或已建单元 / 构件时禁止删除,提示改为归档 |
addOrg / updateOrg / deleteOrg / addOrgRoute | 管理单位与管养路线维护(含重名、名下有桥的删除保护) |
filterBridges / resetLibFilter | 按管理单位 / 路线等级 / 桥型 / 状态 / 关键字筛选 |
bridgeRefs(id) | 引用统计:被哪些项目引用、已建评定单元与构件数 |
exportBridgesCSV / parseBridgeCSV / BRIDGE_IMPORT_HEADERS | CSV 导出、导入解析与模板表头(支持引号包裹与逗号转义) |
BRIDGE_SUBTYPES | 附录B 桥型细分字典(20 项,含编号 / 名称 / 桥梁类型) |
12.7 数据完整性规则
- 桥梁编号与名称唯一;管理单位必须为已登记单位。
- 被检测项目引用、或已建立评定单元 / 构件的桥梁不可删除,只能归档。
- 复制桥梁时评定单元与构件同步复制,但编号重新生成、评定状态与等级清空。
- 编辑管理单位名称时,名下桥梁的管养单位字段同步更新,保持归属一致。
- 导入时按表头校验必填项(桥梁名称、管理单位),重复名称跳过。
12.8 与数据库、检测项目的衔接
阶段一已建立桥梁库相关表:org_unit(管理单位)、br_route(管养路线)、
br_bridge(桥梁基本信息,字段按附录A)、br_element_lib(预建构件库)、
br_maintenance_history(养护历史);项目侧通过 prj_bridge 关联表引用库内桥梁。
本阶段原型与上述表结构一一对应,桥梁库与项目解耦:删除项目不影响桥梁库数据。
12.9 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 桥梁库数据层 | prototype/assets/data.js | 桥梁 / 管理单位 CRUD、筛选、导入导出、附录B 桥型细分字典 |
| 桥梁库界面 | prototype/assets/app.js | 桥梁台账、桥梁详情、管理单位、构件库页面与新建 / 编辑 / 导入弹窗 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段三断言:页面内容、数据层校验、删除保护、筛选与导入导出、弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围、编号唯一性与格式校验 |
13. 阶段四交付:检测项目管理模块
检测项目是评定作业的组织单元:创建项目时选择项目类型(初始检查 / 定期检查),系统据此匹配检查内容、 评定要求与导出表格;项目从桥梁库拉入桥梁开展检查与评定,只引用库内桥梁,不重复创建基本信息。
13.1 页面与路由
| 路由 | 页面 | 关键交互 |
|---|---|---|
/projects | 检测项目列表 | 按项目类型 / 状态 / 管理单位 / 关键字检索;新建、编辑、归档、删除;导出项目清单 |
/projects/:id | 项目详情 | 项目基本信息维护、项目内桥梁管理(拉入 / 排序 / 移除)、任务分配与工作日志、汇总统计与导出 |
13.2 项目类型与导出表格匹配
项目类型创建后不可更改,详情页与报告中心据此自动匹配导出表格:
| 项目类型 | 检查内容要点 | 导出表格 |
|---|---|---|
| 初始检查 | 桥梁基本信息核实与录入、构件初始状态检查、初始缺损记录、初始功能状况记录,建立构件初始技术状况档案 | 初始检查记录表、桥梁初始状态登记表、构件初始技术状况评定表、桥跨初始技术状况评定表、评定单元初始技术状况评定表、全桥初始技术状况评定表、初始检查报告 |
| 定期检查 | 桥梁基本信息复核、构件缺损状况检查(耐久性 + 结构性)、功能状况与影响状况评定、与历次检查结果对比分析 | 定期检查记录表、缺损状况检查记录表(表C.0.7)、构件技术状况评定表、桥跨技术状况评定汇总表(表C.0.8-1)、桥跨技术状况评定计算表(表C.0.8-2)、全桥技术状况评定计算表(表C.0.8-3、C.0.8-4)、评定单元划分及评定结果汇总表、定期检查报告 |
13.3 项目列表页
- 统计卡:检测项目总数(初始检查 / 定期检查分列)、进行中、已完成、已归档。
- 检索条件:项目类型、项目状态(未开始 / 进行中 / 已完成 / 已归档)、管理单位、关键字(项目名称 / 编号 / 负责人),一键重置;关键字输入即时筛选并保持光标。
- 列表列:项目名称与编号、项目编号、类型、管理单位、桥梁数(含任务数)、起止时间、负责人、整体进度条与百分比、状态、操作。
- 行内操作:打开详情、编辑(复用新建弹窗)、归档 / 取消归档、删除(二次确认并说明解除的桥梁关联与任务数)。
- 整体进度:按项目内各桥梁评定完成度取平均;已归档项目置灰。
13.4 项目详情页:项目内桥梁管理
- 项目基本信息:项目名称、编号、类型、管理单位、负责人、起止时间、状态、参与人员、备注,可编辑。
- 从桥梁库拉入:仅列出在库且未归档、且不在本项目内的桥梁;已在项目内的桥梁重复选择予以拦截,无效编号自动过滤。
- 桥梁行:序号、桥梁名称与编号、桥位桩号、桥型细分、评定单元数、评定进度、等级、状态、检测人员、检测时间、任务状态。
- 排序与移除:支持上移 / 下移调整项目内桥梁顺序(含边界保护);移出桥梁时连带删除该桥在本项目内的检测任务,桥梁库数据不受影响。
- 评定入口:每座桥梁可直接跳转「桥梁评定」页面开展构件与病害评定。
- 等级分布:按 1~5 类与未评定统计项目内桥梁数量与占比。
- 导出表格清单:按项目类型自动匹配(见表 13-2)。
13.5 检测任务分配与工作日志
- 分配任务:为项目内桥梁指定检测人员(取自用户库)、检测时间、任务状态(未开始 / 进行中 / 已完成)与检测范围描述。
- 改派:同一桥梁再次分配时更新原任务,不新增记录;项目外桥梁、未选检测人员均予以拦截。
- 工作日志:按任务追加日志(内容必填、空内容拦截),记录时间与填写人,按时间顺序留痕,随任务一并归档。
- 发布到 App:将项目内全部任务标记为「已发布」并记录发布时间,App 端据此离线采集;未分配任何任务时禁止发布。
- 删除任务:二次确认后删除该桥检测任务。
13.6 项目汇总统计与导入导出
| 指标 | 口径 |
|---|---|
| 项目内桥梁数 | 项目 bridges 引用且可在桥梁库检索到的桥梁数量 |
| 评定单元合计 | 项目内各桥梁评定单元数之和(支持一桥多结构形式分单元) |
| 整体进度 | 项目内各桥梁评定完成度(已评定 100% / 评定中 55% / 待评定 0%)的平均值 |
| 检测任务 | 任务总数与已发布 App 任务数 |
| 等级分布 | 1~5 类桥梁数量与占比,未评定单独统计 |
- 导出项目清单:按当前筛选条件导出 CSV(项目名称、编号、类型、管理单位、负责人、起止时间、状态、桥梁数、整体进度)。
- 导出项目汇总表:按项目导出逐桥汇总 CSV(序号、桥梁名称与编号、桩号、桥型细分、评定单元数、评定进度、评定等级、检测人员、检测时间、检测范围、任务状态)。
- 导入:预留项目清单 CSV 模板(项目名称、项目编号、项目类型、管理单位、项目负责人、开始时间、结束时间、参与人员)解析。
13.7 数据层 API(data.js)
| 接口 | 说明 |
|---|---|
PROJECT_TYPES / PROJECT_STATUS | 项目类型字典(初始检查 / 定期检查)与状态字典(未开始 / 进行中 / 已完成 / 已归档) |
addProject(input) | 新建项目:校验名称非空与唯一、管理单位有效;编号留空按类型生成;初始状态「未开始」;桥梁入参按库校验过滤 |
updateProject(id, input) | 编辑基本信息与参与人员;项目类型不可更改;重名校验 |
setProjectStatus / archiveProject / unarchiveProject | 项目状态流转:归档(不再参与统计)与取消归档 |
deleteProject(id) | 删除项目:连带清理项目内全部检测任务;桥梁库数据不受影响 |
addProjectBridges / removeProjectBridge / moveProjectBridge | 项目内桥梁拉入(去重、过滤无效)、移除(连带删除该桥任务)、上移 / 下移排序(含边界保护) |
assignTask / removeTask | 分配或改派检测任务(检测人员 / 检测时间 / 检测范围 / 状态);改派不新增记录 |
publishProjectTasks(projectId) | 发布项目内全部任务到 App,记录发布时间;无任务时禁止发布 |
addTaskLog(projectId, bridgeId, text, by) | 追加工作日志(内容必填),记录时间与填写人 |
projectProgress / projectStats | 整体进度与汇总统计(桥梁数、单元合计、等级分布、任务与发布数、成员数) |
projectExportTables(type) | 按项目类型返回导出表格清单 |
filterProjects / resetProjFilter | 按项目类型 / 状态 / 管理单位 / 关键字筛选 |
exportProjectsCSV / exportProjectSummaryCSV / parseProjectCSV / PROJECT_IMPORT_HEADERS | 项目清单与逐桥汇总导出、导入解析与模板表头 |
13.8 数据完整性规则
- 项目名称唯一,管理单位必须为已登记单位;项目类型创建后不可更改。
- 项目只引用桥梁库中的桥梁:拉入时过滤无效编号并去重,已归档桥梁不参与拉入。
- 移出桥梁时连带删除该桥在本项目内的检测任务;删除项目时连带清理其全部检测任务。
- 同一桥梁在同一项目内只允许一条检测任务,再次分配视为改派。
- 未分配检测任务的项目不可发布到 App;工作日志内容不得为空。
- 删除、归档、移出等破坏性操作均需二次确认,并在提示中说明受影响范围。
13.9 与数据库、桥梁库的衔接
阶段一已建立项目侧表:prj_project(检测项目,含项目类型字段)、prj_bridge(项目桥梁关联)、
prj_unit(评定单元,支持一桥多结构形式)、prj_task(检测任务)、prj_task_log(工作日志)。
项目通过 prj_bridge 引用 br_bridge,桥梁基本信息与构件库仍归桥梁库维护;
本阶段原型与上述表结构一一对应,项目与桥梁库解耦:删除项目不改变桥梁库数据。
13.10 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 检测项目数据层 | prototype/assets/data.js | 项目类型 / 状态字典、项目 CRUD 与归档、项目内桥梁拉入·排序·移除、任务分配与发布、工作日志、汇总统计、导入导出 |
| 检测项目界面 | prototype/assets/app.js | 项目列表页、项目详情页,以及新建 / 编辑项目、从桥梁库拉入、任务分配、工作日志四类弹窗与事件处理 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段四断言:项目列表与详情页内容、类型与状态字典、数据层校验与删除保护、筛选、汇总统计与导入导出、四类弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围、编号唯一性与格式校验 |
14. 阶段五交付:桥梁基本信息录入模块
本阶段将桥梁库的基本信息录入补齐至《公路桥涵养护规范》JTG 5120 附录A「桥梁基本状况卡片」的全部字段, 并落地评定单元划分:依据 JTG/T 5230 第 3.1.2 条,桥梁纵向采用不同结构形式或横向采用拼宽结构时, 宜划分评定单元分别评定;依据第 3.4.4 条,以最差单元的评定结果作为全桥技术状况结果。 每个评定单元独立选择桥型细分、构件划分规则、附录B 部件组成、权重 ω 与影响系数 γ,独立参与构件 / 桥跨 / 单元评定。
14.1 页面与路由
| 路由 | 页面 | 关键交互 |
|---|---|---|
/library | 桥梁台账 | 检索 / 筛选 / 归档;新建、编辑、复制、删除、导入、导出;行内跳转桥梁库详情 |
/library/bridge/:id | 桥梁库详情 | 附录A 全字段分「行政区划与行政识别 / 技术指标 / 结构信息 / 其他」四组展示;评定单元列表与排序、构件库跳转 |
/library/elements/:id | 预建构件库 | 按「评定单元 → 桥跨 → 部件 → 构件」树形组织(构件编号 / 名称 / 部件 / 结构类别 / 构件类型 / 材料类型 / 状态 / 备注);阶段六已补齐批量生成、复制跨、模板、导入导出、增删改与批量修改,详见第 15 章 |
/assess/wizard/:id | 评定向导 · 步骤 1 | 评定单元确认与「新增单元」入口,为后续构件与病害评定准备单元上下文 |
14.2 JTG 5120 附录A 桥梁基本状况卡片字段
桥梁基本信息由字段架构表 BRIDGE_FIELDS 单一驱动:录入弹窗与详情页共用同一份定义,
每条字段声明 key(桥梁对象字段名)、label(标签)、type(控件类型)、
opts(下拉字典)、unit(量纲后缀)与 full(是否整行)。
新增字段只需在此表追加,界面与展示自动生效,避免录入与展示口径不一致。
| 分组 | 字段数 | 主要内容 |
|---|---|---|
| A. 行政区划与行政识别数据 | 19 | 行政区划代码、路线编号 / 名称 / 等级、桥梁编号(可自动生成)、桥梁名称、桥位桩号、功能类型、被跨越道路(通道)名称与桩号、设计荷载、通行载重、桥梁坡度与平曲线半径、建成时间、设计 / 施工 / 监理 / 业主单位 |
| B. 桥梁技术指标 | 24 | 桥梁全长 / 桥面总宽 / 净宽、车道与人行道宽度、护栏或防撞墙高度、中央分隔带宽度、桥面标准与实际净空、桥下通航等级与净空、引道总宽与线形、设计洪水频率 / 洪水位 / 历史洪水位、地震动峰值加速度系数、桥面高程、桥梁分孔(桥跨组合)、单孔最大跨径、斜交角度、弯曲半径、纵坡 |
| C. 桥梁结构信息 | 10 | 桥型细分(附录B)、上部结构类型与材料、下部结构类型、墩台类型、基础类型、支座类型、伸缩装置类型、护栏类型、桥面铺装类型 |
| D. 其他字段 | 5 | 是否宽路窄桥、是否在大桥梁目录中、是否公铁两用桥梁、是否跨省桥梁、改建 / 加固年代 |
- 建库必需:仅「桥梁名称」与「管理单位」为必需项;其余字段允许留空,未填以「—」占位。
- 关键标识字段:
name / code / route / stake / subtype / length / width / built未填时仅提示「建议补录」,不阻断建库。 - 桥梁编号自动生成:留空时按「路线编号 + 行政区划代码 + 顺序号」规则生成,保证编号唯一。
- 桥型细分:取自附录B 共 20 个细分编码(梁桥 6、拱桥 7、组合体系拱桥 3、悬索桥 2、斜拉桥 2),作为构件划分与 γ 默认值的依据。
14.3 跨径组合解析与桥跨数
桥梁分孔与评定单元跨径布置均支持快捷表达式输入:按「数量×跨径」分段,用 + 连接,如 3×20+2×30。
系统将其解析为逐跨跨径序列,自动得出桥跨数与跨径合计,供构件生成与桥跨评定使用。
| 输入 | 解析结果 |
|---|---|
3×20+2×30 | 5 跨,跨径合计 120 m,规范化为 3×20+2×30 |
2x25+1*30 | 识别 x / X / * / * 为乘号,归一化为 2×25+1×30(3 跨,80 m) |
abc / 3×0 | 格式或数值非法,拦截并提示「格式应为『数量×跨径』」 |
录入弹窗提供「解析」按钮,实时回显跨径数与合计值,避免误填;解析不通过时禁止保存。
14.4 评定单元划分
评定单元是构件与评定的归属载体。每个单元独立配置:单元名称与类型、桥型细分(附录B)、材料类型、 起止桩号、跨径布置、构件编号方向、构件划分规则,以及影响系数 γ。
| 配置项 | 取值 / 说明 |
|---|---|
| 单元名称 | 必填,同一桥梁内唯一;如「主桥单元 / 引桥单元 / 左幅拼宽单元」 |
| 单元类型 | 字典取值:主桥 / 引桥 / 匝道 / 拼宽 / 其他 |
| 桥型细分(附录B) | 决定该单元的部件组成、权重 ω 与 γ 默认值;已生成构件后不可再改 |
| 材料类型 | 字典取值(预应力混凝土 / 钢筋混凝土 / 钢结构 / 圬工等) |
| 起止桩号 | 该单元的纵向范围,用于多结构形式分段界定 |
| 跨径布置 | 快捷表达式,解析出桥跨数;已生成构件后不可再改 |
| 构件编号方向 | 左→右 / 右→左(横向编号方向) |
| 构件划分规则 | 支持预设(每跨 1 个构件 / 每片主梁 1 个构件 / 按附录B 逐部件划分等)或自主填写 |
| 影响系数 γ | 桥面系 / 上部结构 / 下部结构 / 附属构造四项,同一桥型下合计应为 1.00 |
- 部件组成联动:弹窗内实时预览该桥型细分对应的附录B 部件组成(部件名称 / 编码 / 权重 ω / 每跨构件数)。
- 排序:单元在桥内支持上移 / 下移(含边界保护),影响构件与桥跨的展示顺序。
- 清除构件:为「调整桥型细分 / 跨径布置」提供前置动作;清除后单元配置可再次编辑。
- 构件重建保数据:单元参数变更触发构件重建时,保留原有构件的人工标度选择与抽检标记,避免评定数据丢失。
14.5 影响系数 γ 校验
γ 默认值取自附录B 实际提取值(如装配式板桥 B.2.3、装配式组合箱梁桥 B.2.4、整体现浇箱梁桥 B.2.5),
未列桥型按梁桥通用值兜底。弹窗内实时合计四项 γ:
- 合计 = 1.00 时以「已完成」样式提示;偏离 1.00 时以警示样式提示,提示用户调整。
- 提供「恢复附录B 默认值」一键还原当前桥型细分的标准 γ 组合。
14.6 数据层 API(data.js)
| 接口 | 说明 |
|---|---|
BRIDGE_FIELDS / BRIDGE_FIELD_LIST / bridgeFieldDef / bridgeFieldText | 附录A 字段架构与取值格式化(量纲、桥型名称、跨径组合) |
BRIDGE_SUBTYPES / subtypeName | 附录B 桥型细分字典(20 项)与名称解析 |
parseSpanScheme(text) | 跨径组合解析:返回逐跨跨径、桥跨数、跨径合计与规范化文本,非法输入返回错误信息 |
addBridge / updateBridge | 建库(名称、管理单位必填,编号可自动生成)与编辑(含管理单位变更、附录A 全字段) |
copyBridge(id) | 复制为新桥:一并复制评定单元与构件,重建编号前缀避免冲突 |
archiveBridge / deleteBridge | 归档 / 删除;被项目引用或已建单元、构件的桥梁禁止删除 |
exportBridgesCSV / parseBridgeCSV / BRIDGE_IMPORT_HEADERS / BRIDGE_CSV_FIELDS | 附录A 全字段 CSV 导出与导入解析,模板表头与导出表头一致 |
addUnit / updateUnit / deleteUnit / moveUnit | 评定单元新增(名称必填且桥内唯一、跨径校验)、编辑(已建构件锁定桥型与跨径)、删除(有构件则拦截)、上移 / 下移排序 |
unitsOfBridge / unitById / unitComps / unitSpanText | 单元的桥梁归属、构件归属与跨径文本 |
defaultGammaOf / GAMMA_DEFAULT / GAMMA_FALLBACK | 按桥型细分取 γ 默认值,未列桥型兜底 |
unitPartDef / unitHasPartDef | 该单元桥型细分对应的附录B 部件组成 |
rebuildUnits / clearUnitComps | 按当前单元参数重建构件(保留原标度与抽检标记)、清除单元构件 |
14.7 数据完整性规则
- 桥梁名称与桥梁编号唯一;管理单位必须为已登记单位;桥梁编号留空时按规则自动生成。
- 评定单元名称在同一桥梁内唯一;跨径组合非法时禁止保存。
- 单元与构件强关联:已生成构件的单元,桥型细分与跨径布置不可再改,也不可删除;需先「清除构件」。
- 单元参数变更时重建构件保留既有评定数据(标度选择、抽检标记),保证评定结果不因配置调整而丢失。
- 被检测项目引用、或已建立评定单元 / 构件的桥梁禁止删除,破坏性操作均需二次确认并说明影响范围。
- 同一桥型下四项 γ 合计应为 1.00,偏离时给出可视提示。
14.8 与数据库、附录B 的衔接
阶段一已建立桥梁库相关表:br_bridge(桥梁基本信息,承载附录A 全字段)、br_bridge_field(扩展字段值)、
br_route(管养路线)、org_unit(管理单位),以及评定单元表 unit_assessment。
本阶段为 unit_assessment 补充跨径布置(span_arrangement)与桥跨数量(span_count)字段,
以对应原型中「跨径布置 → 桥跨数」的解析结果;单元桥型细分、材料、构件划分规则、编号方向与 γ 覆盖值均已映射到该表。
附录B 部件组成、权重 ω 与 γ 默认值仍归规范参数表维护,系统内不得自行修改。
14.9 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 桥梁库与评定单元数据层 | prototype/assets/data.js | 附录A 字段架构、跨径组合解析、桥梁 CRUD / 复制 / 归档 / 导入导出、评定单元 CRUD 与排序、γ 默认值与校验、构件重建保数据 |
| 桥梁库与评定单元界面 | prototype/assets/app.js | 桥梁台账 / 库详情 / 预建构件库页面,以及新建 / 编辑桥梁、桥梁导入、新增 / 编辑评定单元、管理单位等弹窗与事件处理 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段五断言:附录A 字段架构与数量、跨径组合解析、评定单元新增 / 编辑 / 排序 / 删除保护、导入导出表头一致性、五类弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围、编号唯一性与格式校验 |
| 数据库表结构 | database/schema.sql | unit_assessment 新增跨径布置与桥跨数量字段 |
15. 阶段六交付:构件信息录入模块
构件是评定作业的最小评定对象。构件在桥梁库中预先建立、独立于检测项目, 检测项目与 App 现场采集只引用库内构件,不重复创建。构件按评定单元桥型(附录B 部件组成) 自动生成,编号规则「跨号-序号」,序号自桥梁前进方向一端起算并随编号方向自动调整。 本阶段提供五种生成途径与完整清单管理:按桥型自动生成、快捷批量生成(按数量/按桥跨/按部件)、 复制相同跨构件、一键导入、单个构件自主增删改,并支持构件模板保存复用、清单树形筛选与统计、批量修改。
15.1 构件字段与字典
构件在阶段一字段基础上扩展构件类型、材料类型、备注、专项检查标记与手工标记, 并以两份字典约束取值:构件类型随部件自动带出(可自主修改),构件状态由评定结果与专项标记推导。
| 字段 | 来源 / 规则 | 说明 |
|---|---|---|
构件编号 no | 自动重编号 / 人工填写 | 「跨号-序号」,如 2-1;每跨仅 1 个的部件只取跨号,如 2 |
构件名称 name | 由编号 + 部件自动生成 | 如「2-1号主梁」;人工填写后置 nameFixed,编号刷新不改写名称 |
| 所属评定单元 / 桥跨 / 部件 / 结构类别 | 由生成方式决定 | 部件须属于该单元桥型的附录B 部件组成,桥跨须在单元跨数范围内 |
构件类型 type | 随部件自动带出,可修改 | 取值受 COMP_TYPES 约束(见 表 15-2) |
材料类型 material | 默认取评定单元材料 | 可自主修改,用于缺损指标匹配 |
状态 status | 推导值 | 未评定 / 已评定 / 需专项检查(见 表 15-3) |
专项检查标记 special | 人工勾选 | 为真时状态优先置「需专项检查」 |
备注 remark | 人工填写 | 位置补充、加固情况等 |
手工标记 manual | 系统置位 | 手工新增或导入的构件,保留自主编号、不参与自动重编号 |
| 类别 | 构件类型 | 由部件自动映射的示例 |
|---|---|---|
| 上部结构 | 梁(板)、拱圈、拱肋、横隔板、铰缝、支座 | 实心板/空心板、主梁、板梁、箱梁、钢梁 → 梁(板);横隔梁 → 横隔板 |
| 下部结构 | 桥墩、桥台、基础 | 桥墩或桥台 → 桥墩;墩台基础 → 基础 |
| 桥面系与附属 | 桥面铺装、伸缩装置、护栏及人行道、排水系统 | 护栏 → 护栏及人行道 |
| 缆索体系 | 主缆、吊索(杆)、拉索、锚碇 | 吊杆、吊索 → 吊索(杆);斜拉索 → 拉索 |
| 其他 | 河床及调治构造物、翼墙、锥坡、护坡、其他构件 | 未命中映射时统一取「其他构件」 |
| 状态 | 判定规则 |
|---|---|
| 未评定 | 未勾选专项标记,且四项标度(EDDI / ESDI / EFI / EAI)均为 0、无勾选指标 |
| 已评定 | 四项标度存在非 0 值,或已勾选缺损指标 |
| 需专项检查 | 构件勾选「专项检查标记」时优先取此状态 |
15.2 编号规则与重编号
- 分组重编号:按「评定单元 + 部件 + 桥跨」分组,组内按物理顺序编号,编号为「跨号-序号」。
- 方向自适应:序号自桥梁前进方向一端起算;编号方向为从右向左时组内序号反转,界面编号随之调整,物理位置不变。
- 单构件部件:每跨仅 1 个的部件(如桥面铺装、伸缩装置)只取跨号,如
2。 - 唯一性约束:同一桥跨同一部件下构件编号唯一,对应数据库唯一键
uk_element(part_id, element_code);不同部件之间允许同号。 - 重复编号检测:清单页对重复编号即时告警并列出冲突项,提示编辑或删除后重试。
- 自主编号保护:手工新增与导入的构件保留人工编号与名称,不参与自动重编号。
15.3 构件生成途径
| 途径 | 入口 | 规则 |
|---|---|---|
| ① 按桥型自动生成 | 新增 / 编辑评定单元 | 按附录B 部件组成「每跨参考数量 × 桥跨数」自动生成全部构件,编号随即生成 |
| ② 快捷批量生成 | 清单页「批量生成」 | 三种方式:按数量(同一跨同一部件生成 n 个)、按桥跨(多跨各生成 n 个)、按部件(同一跨多部件分别生成) |
| ③ 复制相同跨构件 | 清单页「复制跨」 | 源跨构件整体复制到多个目标跨,可限定部件或仅复制选中构件;复制后按目标跨重新编号 |
| ④ 一键导入 | 清单页「一键导入」 | 按 CSV 批量导入,逐行校验后写入;不合规行跳过并给出原因 |
| ⑤ 单个构件增删改 | 清单页行内操作 | 自主填写编号与名称新增;行内编辑、删除、按物理顺序上移 / 下移 |
- 边界校验:桥跨号须在单元跨数范围内、部件须属于该单元桥型附录B 部件组成、生成数量取 1~200。
- 删除连带:删除构件时一并移除其下病害记录;批量删除支持勾选后一次执行。
- 编号刷新:任何增删与排序操作后即时重编号,保证组内编号连续、无空号。
15.4 构件模板
相同结构形式的桥跨可先建好一跨作为模板,后续桥跨调用模板一键生成,无需重复录入。 模板记录部件、构件类型与材料,可在同桥型单元间复用,支持保存、应用与删除。
| 操作 | 规则 |
|---|---|
| 保存为模板 | 以某桥跨现有构件为内容;模板名称唯一,留空按「单元名 + 跨号」自动生成;空桥跨不可保存 |
| 应用模板 | 选定模板与目标「评定单元 + 桥跨」生成构件;可选先清空目标跨现有构件(含其病害记录)再生成 |
| 删除模板 | 删除后不再可应用;已按模板生成的构件不受影响 |
15.5 一键导入与导出
构件清单支持整体导出与批量导入,两者表头完全一致(8 列):
评定单元、桥跨编号、部件名称、构件编号、构件名称、构件类型、材料类型、备注。
导入按「评定单元 + 部件名称」定位,逐行校验后写入;导入的构件保留自主编号与名称,不参与自动重编号。
| 校验项 | 不合规处理 |
|---|---|
| 评定单元存在性 | 单元名不存在则跳过该行并提示;桥梁仅 1 个单元时缺省取该单元 |
| 部件归属 | 部件名称须属于该单元桥型的附录B 部件组成,否则跳过 |
| 构件编号 | 不得为空;同一桥跨同一部件下不得重复,否则跳过 |
| 桥跨范围 | 桥跨编号须在单元跨数范围内,否则跳过 |
| 有效数据行 | 无有效数据行时整批不导入并给出提示 |
15.6 构件清单页与统计
清单以树形组织:评定单元 → 桥跨 → 部件 → 构件,支持按单元、桥跨、状态与关键字筛选, 并可折叠 / 展开节点。页面顶部提供四项统计卡与批量操作条。
| 区域 | 内容 |
|---|---|
| 统计卡 | 构件总数(编号规则提示)、评定单元数(桥跨数 / 部件种类)、构件状态(已评定 / 未评定 / 需专项检查)、手工构件数 |
| 筛选栏 | 评定单元、桥跨(随单元联动)、构件状态、关键字(编号 / 名称 / 部件 / 类型 / 备注)、重置 |
| 清单树 | 单元卡片头含批量生成 / 新增构件 / 复制跨 / 模板入口;桥跨节点可折叠;表格含勾选框、桥跨、编号、名称、部件、结构类别、构件类型、材料类型、状态、备注与行内操作 |
| 批量操作条 | 已选数量提示;批量修改(类型 / 材料 / 备注 / 专项标记)、复制到其他跨、删除选中、清空选择 |
- 批量修改:仅设置需统一填写的项,留空或选「保持不变」的字段维持原值;构件编号与名称不参与批量修改,以保证编号唯一。
- 全选:桥跨节点表头提供本跨全选;跨筛选后的清单同样支持勾选。
15.7 与数据库、附录B 的衔接
阶段一已建立构件相关表:el_element(构件信息)、part_part(部件,按附录B 部件组成自动生成)、
span_span(桥跨)、el_template(构件模板)。本阶段为 el_element 补充
is_manual(手工 / 导入构件标记)、name_fixed(名称人工固定)
与 is_special(专项检查标记)三个字段,并明确 element_type、
material_type、remark 与 element_status 的取值来源。
- 唯一键:
uk_element(part_id, element_code)对应「同一桥跨同一部件下构件编号唯一」;part_part按桥跨维护,故跨间同号不冲突。 - 模板表:
el_template以content_json保存「桥跨 → 部件 → 构件」内容,并记录适用桥型与单元类型。 - 删除连带:构件删除时同步删除
dfc_defect(病害)与dfc_photo(病害照片)中的关联记录。 - 规范参数不可改:附录B 部件组成、权重 ω 与影响系数 γ 归规范参数表维护,系统内不得自行修改。
15.8 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 构件数据层 | prototype/assets/data.js | 构件字段扩展与类型 / 状态字典、分组重编号、构件 CRUD 与排序、三种批量生成、复制相同跨、模板保存 / 应用 / 删除、导入导出与校验、统计与清单树、重复编号检测 |
| 构件清单界面 | prototype/assets/app.js | 树形清单页(统计卡 / 筛选 / 批量选择)与六类弹窗(批量生成、构件新增编辑、复制跨、导入导出、模板管理、批量修改)及事件处理 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段六断言:构件库清单页内容、字典与字段扩展、批量生成三种方式、复制跨、增删改与排序、批量修改、模板保存 / 应用 / 删除、导入导出往返与非法行拦截、统计与树筛选、重复编号检测、六类弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围、构件编号唯一性与格式 / 方向映射校验 |
| 数据库表结构 | database/schema.sql | el_element 新增 is_manual / name_fixed / is_special 字段,明确构件类型、材料类型与状态取值来源 |
体验入口:http://127.0.0.1:8123/index.html →「桥梁台账 → 选择桥梁 → 构件库」,
或直接访问 #/library/elements/BR-001。
16. 阶段七交付:病害录入与构件评定模块
本阶段实现病害录入与构件标度评定的完整闭环,并按检测项目类型区分评定要求: 初始检查建立构件初始技术状况档案、只登记初始缺损且不与历次对比; 定期检查记录缺损发展变化、与历次检查结果对比、记录发展趋势并分析成因及影响。 评定采用勾选式指标评定——按构件类型自动带出规范指标条目,勾选即登记病害台账记录、 取消勾选即移除;并支持批量勾选同类构件把源构件标度应用到同单元同类构件, 以及针对特殊构件(无法抵近、隐蔽、水下等)的构件现状记录。照片统一加注 桥梁名称 · 构件编号 · 日期 · 桩号水印。
16.1 检查类型差异化(初始检查 / 定期检查)
检查类型由所属检测项目类型确定(可在桥梁评定页切换演示),并决定评定页展示的面板与字段要求。 初始检查只登记初始缺损并建立档案;定期检查启用历次对比、发展趋势与影响分析。
| 检查类型 | 评定要求 | 评定页面板 | 关键字段 |
|---|---|---|---|
| 初始检查 | 建立构件初始技术状况档案:记录施工缺陷、初始耐久性与初始结构性缺陷,不与历次检查对比 | 构件初始技术状况档案(初始 EDDI/ESDI/EDI/ECI/ECL 与按初始缺陷分类统计) | 初始缺陷分类 init_kind |
| 定期检查 | 记录缺损发展变化:与历次检查结果对比,记录缺损发展趋势,分析缺损成因及影响 | 历次检查对比与发展趋势(逐条列上次标度/本次标度/对比结论/发展趋势/成因及影响) | 上次标度 prev_scale、对比结论 compare_result、发展趋势 trend、影响分析 impact_analysis |
16.2 勾选式指标评定
评定页按构件类型自动带出该构件适用的规范指标条目,按四项评定项目(耐久性 EDDI、结构性 ESDI、 功能状况 EFI、影响状况 EAI)分组展示。每行包含勾选列、规范指标条目、规范依据、评定标度下拉、当前标度: 勾选并选择标度即登记一条病害台账记录(来源标记为勾选式评定),取消勾选即移除该记录; 构件某项评定项目标度取其下各条记录标度的最大值,并实时联动 ECI/BSCI/BCI。
| 函数 | 职责 | 规则 |
|---|---|---|
assessChecklist(compId) | 生成构件的勾选式评定指标表 | 按 defectTypesForComp() 过滤适用类型,按四项评定项目分组,回填已登记记录的标度与勾选态 |
setCompIndicator(compId, key, name, val) | 对某评定项目下的一条规范指标设定标度 | 标度 0 移除同指标记录;非 0 新建或更新记录;标度须落在该指标标度范围内;随后按剩余记录重算构件标度 |
16.3 批量勾选同类构件
同类构件定义为同评定单元、同部件(可按材料与桥跨进一步限定),不含源构件自身。 批量评定把源构件的四项标度(或指定评定项目)应用到选定的同类构件;未选目标构件、未选评定项目、 源构件不存在时均予拒绝。
| 函数 | 职责 | 拒绝条件 |
|---|---|---|
sameTypeComps(compId, opts) | 筛选同单元同部件的同类构件 | 构件不存在时返回空集 |
batchAssessSameType(src, targetIds, keys) | 把源构件标度应用到目标构件 | 源构件不存在/未选目标构件/未选评定项目(keys 显式为空数组) |
16.4 构件现状记录(特殊构件)
对无法抵近、隐蔽、水下、专项检查等特殊构件,记录构件类别、现状描述、检测方法、检测结论、专项检查记录编号 并附照片/视频/附件。检测结论为「缺损明显,需专项检查」或「缺损严重,需限载或加固」时, 自动置该构件专项检查标记。支持新增、编辑(编号不变)、删除与导出构件现状记录表。
| 字典 | 取值 |
|---|---|
构件类别 SURVEY_KINDS | 无法抵近构件 / 隐蔽构件 / 专项检查构件 / 水下构件 / 其他特殊构件 |
检测方法 SURVEY_METHODS | 外观检查 / 近距离检查 / 无损检测(超声/回弹/钢筋扫描) / 钻芯取样 / 水下检查 / 无人机巡检 / 专项检测 |
检测结论 SURVEY_CONCLUSIONS | 技术状况良好 / 存在局部缺损,尚不影响使用 / 缺损明显,需专项检查 / 缺损严重,需限载或加固 |
导出字段 SURVEY_CSV_FIELDS | 评定单元 / 桥跨编号 / 构件编号 / 构件名称 / 构件类别 / 现状描述 / 检测方法 / 检测结论 / 专项检查记录编号 / 记录人 / 记录时间(共 11 项,与导入表头一致) |
16.5 历次对比、发展趋势与初始技术状况档案
定期检查下,系统按种子化取值生成上次检查标度,并据此给出历次对比结论(新增病害/较上次减轻/较上次加重/与上次持平) 与缺损发展趋势。初始检查下,按初始缺陷分类统计构件病害并生成初始技术状况档案, 其中初始 EDI = max(EDDI, ESDI)、初始 ECI = EDI + EFI + EAI。
| 字典 | 取值 | 说明 |
|---|---|---|
缺损发展趋势 DEV_TREND | 缺损趋于稳定 / 缺损缓慢发展 / 缺损加速发展 / 新增缺损 | 定期检查与历次检查对比后判定 |
初始缺陷分类 INIT_KINDS | 施工缺陷 / 初始耐久性缺陷 / 初始结构性缺陷 / 初始功能缺陷 | 初始检查建立档案时登记 |
16.6 照片水印
病害照片统一加注水印,格式为「桥梁名称 · 构件编号 · 日期 · 桩号」四段,
与照片标注项(裂缝位置/走向/宽度等)一并写入 dfc_photo.watermark 与 annotate_json。
App 现场采集的照片经同步队列自动补齐水印(预留)。
16.7 数据库字段扩展
| 表 | 变更 |
|---|---|
dfc_defect | 新增 impact_analysis(影响分析)、prev_scale(上次标度)、compare_result(对比结论)、init_kind(初始缺陷分类)、inspect_mode(检查类型)、is_checked(勾选式评定标记) |
el_condition_record | 扩展为构件现状记录表:新增 bridge_id/unit_id/record_kind/element_status/photo_json/video_json/data_source/updated_at,明确检测方法与检测结论取值来源 |
16.8 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 病害与评定数据层 | prototype/assets/data.js | 检查类型字典与评定模式、勾选式指标评定(assessChecklist/setCompIndicator)、批量评定(sameTypeComps/batchAssessSameType)、构件现状记录 CRUD 与导出、历次对比与发展趋势、初始技术状况档案、照片水印 |
| 评定界面 | prototype/assets/app.js | 勾选式指标表、检查类型差异化面板(初始档案/历次对比)、批量勾选同类构件弹窗、构件现状记录页与弹窗、勾选与标度事件处理 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段七断言:检查类型字典与切换、勾选式指标设定/取消/联动、批量评定与拒绝条件、构件现状记录字典与 CRUD、历次对比与发展趋势、初始档案、导出字段、弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围与评定合计校验 |
| 数据库表结构 | database/schema.sql | 扩展 dfc_defect(阶段七字段)与 el_condition_record(构件现状记录表) |
体验入口:http://127.0.0.1:8123/index.html →「评定作业 → 桥梁评定 → 选择桥梁」,
在「病害清单(按构件)」录入/编辑病害,进入病害详情页体验勾选式评定、批量勾选同类构件与历次对比;
或直接访问 #/assess/bridge/BR-001 与 #/assess/survey/BR-001(构件现状记录)。
17. 阶段八交付:总体照片管理模块
本阶段实现桥梁检测总体照片的集中管理:按规范分类体系建立照片库, 支持批量导入、按文件夹导入并自动分类、现场拍照上传与照片命名规范自动识别, 照片可关联评定单元/桥跨/构件;提供预览、旋转、裁剪、标注等现场照片处理能力, 记录照片编号、拍摄时间、拍摄位置与拍摄人,支持导出照片清单并在 评定报告附录中引用(自动生成图号、图题与图注)。
17.1 总体照片分类体系
照片分类按规范要求划分为3 个分组、10 个规范分类,字典为
PHOTO_CATEGORY_GROUPS,展开后的全部取值由 PHOTO_CATEGORIES 提供,
分类到分组的反查由 PHOTO_GROUP_OF 提供,照片库即按此分组分节展示。
| 分类分组 | 规范分类 | 说明 |
|---|---|---|
| 桥梁全貌 | 桥梁正面照 / 左侧面照 / 右侧面照 / 桥面照 | 反映桥梁整体立面与桥面现状 |
| 结构照 | 上部结构 / 下部结构 / 桥面系 / 附属构造 | 按部件大类记录结构现状 |
| 其他 | 典型截面照 / 特殊部位照 | 典型断面构造与特殊(锚固、连接、加固、水下)部位 |
17.2 命名规范自动识别
导入时按文件名或文件夹名中的关键字自动归类:关键字到规范分类的映射由
PHOTO_ALIAS 维护(如「上部」「墩台」「基础」分别映射到上部结构、下部结构),
parsePhotoName() 按 - _ 空格 / \ 切分后依次识别编号、规范分类与序号,
返回 matched 标记是否识别成功。识别不到的文件归入「特殊部位照」并可在照片详情中手工改分类。
| 文件名/路径 | 识别编号 | 识别分类 | 识别结果 |
|---|---|---|---|
G105-370100-0042-上部结构-001.jpg | G105 | 上部结构 | 已识别 |
上部结构/IMG_0001.jpg | IMG | 上部结构 | 已识别(按文件夹名) |
沙河大桥-桥面照-003.jpg | 沙河大桥 | 桥面照 | 已识别 |
IMG_9999.jpg | — | 特殊部位照 | 未识别(归入默认分类) |
17.3 导入方式
导入方式字典 PHOTO_IMPORT_MODES 为批量导入 / 文件夹导入 / 现场拍照;
文件夹导入通过目录选择(webkitdirectory)保留相对路径,从而可按文件夹名自动分类。
导入入口统一为 importPhotos(bridgeId, files, opts),返回
{ added, auto, manual, unmatched, batch, byCategory }:按命名规范自动识别计入 auto,
手工指定分类计入 manual,未识别计入 unmatched 并归入「特殊部位照」;
同一次导入共用一个批次号(IMP-YYYYMMDD)。未选择文件或桥梁不存在时拒绝导入。
17.4 照片管理与编辑
照片记录包含编号、规范分类与分组、文件名、说明、拍摄时间/位置/拍摄人、关联评定单元/桥跨/构件、 导入方式与批次、命名识别标记等字段。照片库提供网格与清单两种视图, 可按分类分组、规范分类与关键字筛选;统计卡展示照片总数、结构照张数、命名已识别张数与报告引用张数。
| 函数 | 职责 | 规则 |
|---|---|---|
addOverallPhoto(input) | 新增单张照片(现场拍照/手工录入) | 分类须在规范分类内、桥梁须存在;分类为非法值或桥梁不存在时拒绝 |
updateOverallPhoto(id, patch) | 编辑照片信息 | 改分类时同步更新分组与成像提示词;非法分类或照片不存在时拒绝 |
removeOverallPhoto(id) | 删除照片 | 照片不存在时拒绝 |
rotatePhoto(id, deg) | 旋转照片 | 按 90° 递增并对 360° 取模,可左转/右转 90° |
cropPhoto(id, ratio) | 裁剪照片 | 比例限「原图 / 1:1 / 4:3 / 16:9」,选「原图」清空裁剪;越界值拒绝 |
togglePhotoMark(id, mark) | 切换标注项 | 标注项限「部位标记 / 方向箭头 / 尺寸标注 / 编号标注 / 说明文字」,重复点击即取消;越界值拒绝 |
photoSummary(bridgeId) | 照片统计 | 返回总数、按分类、按分组、命名识别数、报告引用数与覆盖分类数 |
17.5 报告附录引用与照片清单导出
勾选「报告引用」后,photoAppendix(bridgeId) 按规范分类分组生成附录清单,
自动编排图号(图 分类-序号)、图题(分类:照片说明)与
图注(拍摄位置 · 拍摄时间 · 摄影 拍摄人),供评定报告附录直接引用。
exportPhotosCSV(bridgeId) 导出照片清单,字段共 17 项,表头与字段定义一致。
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 照片编号 | 10 | 拍摄人 |
| 2 | 规范分类 | 11 | 标注项 |
| 3 | 分类分组 | 12 | 旋转 |
| 4 | 关联评定单元 | 13 | 裁剪 |
| 5 | 桥跨编号 | 14 | 导入方式 |
| 6 | 关联构件 | 15 | 导入批次 |
| 7 | 文件名 | 16 | 命名识别 |
| 8 | 拍摄时间 | 17 | 报告引用 |
| 9 | 拍摄位置 | — | — |
17.6 数据库字段扩展
| 表 | 变更 |
|---|---|
photo_overall | 由占位结构扩展为完整总体照片表:新增 photo_group(分类分组)、rotate_deg(旋转角度)、crop_ratio(裁剪比例)、mark_json(标注项)、import_mode/import_batch(导入方式与批次)、name_rule_hit(命名规范识别)、report_ref/figure_no(报告附录引用与图号)、watermark、data_source、uploaded_by、updated_at,并补充按分组、编号、批次、报告引用与构件的索引 |
17.7 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 总体照片数据层 | prototype/assets/data.js | 分类分组字典与分组反查、命名规范别名与 parsePhotoName()、种子数据与 buildPhotos()、照片 CRUD、批量/文件夹导入与自动归类、旋转/裁剪/标注、统计、报告附录生成与清单导出 |
| 总体照片界面 | prototype/assets/app.js | 总体照片管理页(分类分组、筛选、网格/清单视图、统计卡、报告附录引用区)、导入弹窗(批量/文件夹/现场拍照 + 命名识别预览 + 关联与拍摄信息)、预览弹窗(旋转/裁剪/标注/分类与关联编辑)与事件处理、导航与路由 /photos/:bridgeId |
| 样式 | prototype/assets/app.css | 分段控件、照片分组、照片卡片、预览舞台与编辑侧栏、报告附录分组 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段八断言:分类字典与分组映射、命名规范识别、统计口径、照片增删改与拒绝条件、旋转/裁剪/标注、报告附录图号图题图注、清单导出字段与行数、批量/文件夹导入自动归类与关联、导入与预览弹窗字段 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围与评定合计校验(阶段八不改变评定参数) |
| 数据库表结构 | database/schema.sql | 扩展 photo_overall 为完整总体照片表 |
体验入口:http://127.0.0.1:8123/index.html →「总体照片 → 选择桥梁」,
在照片库中「批量导入/文件夹导入/现场拍照」,可点「使用示例文件」演示命名规范自动识别;
点击照片卡片进入预览,进行旋转、裁剪、标注与报告引用;
或直接访问 #/photos/BR-001。
18. 阶段九交付:桥跨技术状况评定模块
本阶段实现桥跨技术状况评定:逐部件自动提取该部件最差构件的技术状况标度
CI(j),按附录 B 取权重 ω 与影响系数 γ,按
BSCI(i) = 100 − Σ CI(j)·ω·γ/5 计算桥跨技术状况指数(保留一位小数),
据阈值判定桥跨等级 BSCL(i);对主要构件为 4/5 类的桥跨按第 3.3.3 条
按最差构件等级评定并取该等级指数上限。全部计算按评定单元独立进行,
不跨单元混合;生成规范附录 C 的桥跨评定汇总表(表C.0.8-1)与
计算表(表C.0.8-2),并支持 CSV 导出。
18.1 主要构件识别与最差评定规则(第 3.3.3 条)
主要构件(承重构件)由字典 MAIN_PART_CODES 维护,判定函数为 isMainPart(code),
规范释义由 MAIN_PART_NOTE 提供。桥面系与附属构造各部件,以及支座、铰缝、横隔板等
次要构件不参与最差评定规则。
| 部件代码 | 规范释义 | 部件代码 | 规范释义 |
|---|---|---|---|
BL | 上部结构承重构件(板) | SL | 主缆 |
ZL | 上部结构承重构件(主梁) | QD | 下部结构主要构件(桥墩或桥台) |
XL | 上部结构承重构件(箱梁) | JC | 墩台基础 |
GG | 拱圈 | MD | 锚碇 |
GL | 拱肋 | ZJ | 桩柱 |
ZG | 主拱圈 | DG | 吊杆(吊索) |
LS | 拉索 | — | — |
当本桥跨内存在等级为 4 类或 5 类的主要构件时,桥跨等级按其中最差构件等级评定,
桥跨技术状况指数取该等级指数上限(4 类取 60、5 类取 40),并在计算说明中标注触发构件与理由。
上限值由 MAIN_CTRL_LIM 维护,说明文案为 MAIN_CTRL_TEXT。
| 触发构件等级 | 桥跨等级 BSCL | 桥跨指数取值 |
|---|---|---|
| 4 类 | 4 类 | 60.0(4 类上限) |
| 5 类 | 5 类 | 40.0(5 类上限) |
18.2 BSCI/BSCL 计算
构件技术状况评定为 EDI = max(EDDI, ESDI)、ECI = EDI + EFI + EAI(小于 0 取 0、大于 5 取 5);
桥跨评定对每一部件取其全部构件中 ECI 最差者作为 CI(j),累加
CI(j)·ω·γ/5 后按 BSCI = 100 − Σ 计算。等级阈值由 BSCL_LIM 维护,
边界含下限不含上限((90,100] 1类 / (75,90] 2类 / (60,75] 3类 / (40,60] 4类 / [0,40] 5类)。
| BSCL | 1 类 | 2 类 | 3 类 | 4 类 | 5 类 |
|---|---|---|---|---|---|
| BSCI 区间 | (90,100] | (75,90] | (60,75] | (40,60] | [0,40] |
18.3 评定单元独立评定
桥跨评定严格限定在同一评定单元内:calcSpan(unitId, spanNo) 仅取
c.unit === unitId && c.span === spanNo 的构件,不得跨单元混合计算。
单元技术状况等级取单元内最差桥跨等级;各桥跨等级不一致时,单元指数按
BSCI_min + (BSCI_lim − BSCI_min)/(BSCI_max − BSCI_min) × (BSCI_avg − BSCI_min) 内插。
18.4 桥跨评定汇总表与计算表
spanSummaryRows(unitId) 生成汇总行(表C.0.8-1),spanCalcRows(unitId) 生成逐部件明细行(表C.0.8-2),
spanAssessSummary(bridgeId) 汇总全桥跨数、主要构件控制跨数与最差桥跨。界面按评定单元分节输出两张表。
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定单元 | 6 | BSCL |
| 2 | 桥跨 | 7 | 主要构件控制 |
| 3 | 跨径(m) | 8 | 最不利部件 |
| 4 | ΣCI·ω·γ/5 | 9 | 最不利构件 |
| 5 | BSCI | 10 | 计算说明 |
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定单元 | 7 | 影响系数γ |
| 2 | 桥跨 | 8 | CI(j) |
| 3 | 结构类别 | 9 | 构件等级 |
| 4 | 部件 | 10 | 最不利构件 |
| 5 | 构件代码 | 11 | CI·ω·γ/5 |
| 6 | 权重ω | 12 | 主要构件 |
18.5 数据库表结构
| 表 | 关键字段 | 说明 |
|---|---|---|
ev_span | unit_id、span_id、bsci、bscl、bsci_lim、is_worst_control、worst_element_id、formula_note | 桥跨评定记录(BSCI/BSCL),按 unit_id 限定不跨单元;is_worst_control 标记主要构件 4/5 类最差评定 |
ev_span_detail | gamma、omega、ci、element_level、is_main_part、worst_element_code、term_value | 逐部件计算明细(表C.0.8-2),记录 CI(j)、ω、γ、构件等级、主要构件标记与分项值 |
18.6 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 桥跨评定数据层 | prototype/assets/data.js | 主要构件字典与判定、calcSpan() 主要构件 4/5 类最差评定、calcUnit() 单元独立评定、汇总/计算行生成、CSV 导出 |
| 桥跨评定界面 | prototype/assets/app.js | 桥跨评定页(统计卡、按评定单元分节的表C.0.8-1/表C.0.8-2)、导出入口、导航与路由 /assess/span/:bridgeId |
| 样式 | prototype/assets/app.css | 评定单元分组卡片、汇总/计算表题注与 rowspan 合并、主要构件控制标识 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段九断言:主要构件字典、逐部件明细字段、4/5 类最差评定与指数上限、次要构件不触发、单元独立、汇总/计算表行数与 CSV 字段、页面双表输出 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围与评定合计校验(阶段九不改变评定参数) |
| 数据库表结构 | database/schema.sql | ev_span/ev_span_detail 桥跨评定与逐部件明细表 |
体验入口:http://127.0.0.1:8123/index.html →「评定作业 → 桥跨评定」,
或直接访问 #/assess/span/BR-001;页内可按评定单元查看桥跨汇总表与逐部件计算明细,
并「导出汇总表 C.0.8-1/计算表 C.0.8-2」。
19. 阶段十交付:评定单元技术状况评定模块
本阶段实现评定单元技术状况评定:在每个评定单元内汇总该单元的桥跨评定结果,
单元技术状况等级取单元内最差桥跨等级,单元技术状况指数按全桥规则在单元内计算
(各桥跨等级一致时取各桥跨指数算术平均值 BSCĪ;不一致时按 BSCI_lim 内插);
单元内主要构件为 4 类或 5 类且影响安全时,按最差构件等级评定并取该等级指数上限。
输出评定单元评定汇总表与评定单元评定计算表,并作为全桥评定(阶段十一)的输入,
实现「构件 → 桥跨 → 评定单元 → 全桥」的逐级衔接。各评定单元独立评定,不跨单元混合。
19.1 单元等级与单元指数(第 3.4.4 条)
单元等级取单元内最差桥跨技术状况等级:BSCL(单元) = max(BSCL(i))。
单元指数按全桥规则在单元内计算:
- 单元内各桥跨等级一致时:
单元指数 = BSCĪ(取单元内各桥跨指数的算术平均值); - 单元内各桥跨等级不一致时:
BCI = BSCI_min + (BSCI_lim − BSCI_min)/(BSCI_max − BSCI_min) × (BSCI_avg − BSCI_min), 其中BSCI_avg为单元内桥跨指数的算术平均值。
| 单元等级 | 2 类 | 3 类 | 4 类 | 5 类 |
|---|---|---|---|---|
| BSCI_lim | 90 | 75 | 60 | 40 |
19.2 单元内主要构件最差评定
单元内主要构件(isMainPart())技术状况等级为 4 类或 5 类且影响安全时,
单元等级按该最差构件等级评定,单元指数取该等级上限。
其中「影响安全」对应影响状况 EAI = 1(缺损加速发展、可能导致结构垮塌),
由常量 EAI_SAFETY 维护,判定函数为 unitMainComp(unitId)(仅在单元内查找)。
上限值复用 MAIN_CTRL_LIM,说明文案为 UNIT_CTRL_TEXT。
| 触发构件等级 | 单元等级 | 单元指数取值 |
|---|---|---|
| 4 类(EAI=1) | 4 类 | 60.0(4 类上限) |
| 5 类(EAI=1) | 5 类 | 40.0(5 类上限) |
| 4/5 类但 EAI=0 | 不触发 | 按桥跨评定规则计算 |
19.3 单元独立评定与全桥衔接
calcUnit(unitId) 仅汇总本单元桥跨(calcSpan 已限定单元),不跨单元混合。
单元评定结果为全桥评定的输入:全桥等级取最差评定单元等级,
全桥指数取最差评定单元指数(多评定单元情形,阶段十一)。
单元结果亦在评定报告与「评定单元划分及评定结果汇总表」中单独列出。
19.4 汇总表与计算表
unitSummaryRows(bridgeId) 生成单元评定汇总行(每单元一行),
unitCalcRows(unitId) 生成单元内逐桥跨明细行,
unitAssessSummary(bridgeId) 汇总单元数、主要构件控制单元数与最差单元。
界面按评定单元分节输出汇总表与计算表,并提供 CSV 导出。
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定单元 | 8 | BSCI_lim |
| 2 | 单元类型 | 9 | 单元指数 |
| 3 | 桥型细分 | 10 | 单元等级 |
| 4 | 跨数 | 11 | 等级一致性 |
| 5 | BSCI_min | 12 | 主要构件控制 |
| 6 | BSCI_max | 13 | 最差桥跨 |
| 7 | BSCI_avg | 14 | 计算说明 |
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定单元 | 6 | BSCL |
| 2 | 桥跨 | 7 | 主要构件控制 |
| 3 | 跨径(m) | 8 | 单元指数 |
| 4 | ΣCI·ω·γ/5 | 9 | 单元等级 |
| 5 | BSCI | — | — |
19.5 数据库表结构
| 表 | 关键字段 | 说明 |
|---|---|---|
ev_unit | unit_id、worst_span_id、bsci_min、bsci_avg、unit_grade、unit_index、is_control_hit、eval_note | 评定单元评定记录:单元等级(取最差桥跨等级)、单元指数、主要构件控制标记与计算说明 |
ev_unit_detail | ev_unit_id、span_id、span_no、span_length、bsci、bscl、is_span_control、is_worst_span | 评定单元评定计算明细:单元内逐桥跨的 BSCI/BSCL、主要构件控制与最差桥跨标记 |
19.6 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 单元评定数据层 | prototype/assets/data.js | unitMainComp() 单元主要构件最差控制、calcUnit() 单元等级与指数(含内插)、汇总/计算行生成、CSV 导出 |
| 单元评定界面 | prototype/assets/app.js | 评定单元评定页(统计卡、单元汇总表、逐单元计算表、全桥衔接说明)、导出入口、导航与路由 /assess/unit/:bridgeId |
| 样式 | prototype/assets/app.css | 单元汇总表/计算表题注、单元指数合计行、主要构件控制标识 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段十断言:单元主要构件控制(4/5 类且 EAI=1 触发、EAI=0 不触发)、单元等级取最差桥跨、单元指数内插、单元独立、汇总/计算表行数与 CSV 字段、页面双表输出与全桥衔接 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围与评定合计校验(阶段十不改变评定参数) |
| 数据库表结构 | database/schema.sql | ev_unit/ev_unit_detail 评定单元评定与逐桥跨明细表 |
体验入口:http://127.0.0.1:8123/index.html →「评定作业 → 评定单元评定」,
或直接访问 #/assess/unit/BR-001;页内按评定单元查看汇总表与逐桥跨计算表,
并「导出汇总表/计算表」;页末「全桥衔接」提示全桥等级与指数取值。
20. 阶段十一交付:全桥技术状况评定模块
本阶段实现全桥技术状况评定:系统自动判定桥梁的评定模式 (单评定单元单跨/单评定单元多跨/多评定单元), 据此计算全桥技术状况指数 BCI 与全桥技术状况等级 BCL; 并按规范第 3.4.5 条对单项控制指标逐桥独立判定,命中即全桥直接评定为 5 类。 输出全桥技术状况评定汇总表(表C.0.8-3)与计算表(表C.0.8-4), 作为检测报告(阶段十二)的结论输入,实现「构件 → 桥跨 → 评定单元 → 全桥」的完整逐级评定链路。
20.1 评定模式判定(bridgeAssessMode())
全桥评定口径由桥梁下辖的评定单元数与桥跨总数自动判定,避免人工选择错误:
| 模式代码 | 名称 | 判定条件 | 全桥评定口径 |
|---|---|---|---|
SINGLE_SPAN | 单评定单元·单跨 | 单元数 = 1 且桥跨数 = 1 | 全桥即该桥跨,BCI = 该跨 BSCI |
SINGLE_UNIT | 单评定单元·多跨 | 单元数 = 1 且桥跨数 > 1 | 按单元内桥跨等级一致性计算 |
MULTI_UNIT | 多评定单元 | 单元数 > 1 | 取最差评定单元等级与指数 |
NONE | 未划分评定单元 | 单元数 = 0 | 不参与评定,提示先划分单元 |
20.2 全桥等级与全桥指数(第 3.4.4 条)
calcBridge(bridgeId) 汇总桥梁下辖各评定单元(calcUnit),
按模式计算全桥结果:
- 多评定单元:全桥等级取最差评定单元等级,
全桥指数取最差评定单元指数(同等级时取指数更低者),
最差单元由
worstUnit标记。 - 单评定单元:全桥评定退化为该单元的桥跨评定——
各桥跨等级一致时取各桥跨指数算术平均值
BSCĪ; 不一致时按BCI = BSCI_min + (BSCI_lim − BSCI_min)/(BSCI_max − BSCI_min) × (BSCI_avg − BSCI_min)内插, 等级一致性标志same取该单元桥跨口径。 - 单跨:全桥指数即该桥跨
BSCI、等级即BSCL。
| 计算等级 | 2 类 | 3 类 | 4 类 | 5 类 |
|---|---|---|---|---|
| BSCI_lim | 90 | 75 | 60 | 40 |
全桥指数 BCI 与各单元/桥跨指数均保留一位小数;rawGrade 记录控制指标命中前的计算等级,便于追溯。
20.3 单项控制指标(第 3.4.5 条)
单项控制指标按桥梁独立判定,由 CONTROL_HITS 字典按桥梁 ID 隔离存储,
访问接口为 controlHitsOf(bridgeId) 与 setControlHit(bridgeId, i, on),
命中明细由 controlHitRows(bridgeId) 输出(编码 CI-01~CI-16)。
任一指标命中时,全桥技术状况等级直接评定为 5 类(grade = 5),
而 rawGrade 仍保留按指数计算的等级。各桥控制指标互不影响,避免跨桥污染。
20.4 汇总表与计算表(表C.0.8-3 / 表C.0.8-4)
bridgeSummaryRows(bridgeId) 生成全桥评定汇总行:多评定单元时逐单元、
单评定单元时逐桥跨,界面在其后追加「全桥」合计行;
bridgeCalcRows(bridgeId) 生成全桥指数构成明细(指数上下限、平均、等级界限、内插计算式)。
bridgeAssessSummary(bridgeId) 汇总模式、单元数、最差单元与控制指标命中情况。
界面输出双表并提供 CSV 导出,同时提供规范表格 Excel(.xlsx)导出(详见 20.9)。
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定范围 | 7 | 指数 |
| 2 | 名称 | 8 | 等级 |
| 3 | 单元类型 | 9 | 是否最差 |
| 4 | 桥型细分 | 10 | 主要构件控制 |
| 5 | 跨径布置 | 11 | 计算说明 |
| 6 | 跨数 | — | — |
| 序号 | 字段 | 序号 | 字段 |
|---|---|---|---|
| 1 | 评定范围 | 8 | 等级一致性 |
| 2 | 名称 | 9 | 计算指数 |
| 3 | 跨数 | 10 | 评定指数 |
| 4 | 指数下限 | 11 | 等级 |
| 5 | 指数上限 | 12 | 是否最差 |
| 6 | 指数平均 | 13 | 主要构件控制 |
| 7 | 等级界限 | 14 | 计算式 |
20.5 数据库表结构
| 表 | 关键字段 | 说明 |
|---|---|---|
ev_bridge | eval_mode、grade_consistent、bci、bcl、worst_unit_id、bsci_max、bsci_min、bsci_avg、bsci_lim、is_control_hit、conclusion、maintenance_advice | 全桥评定记录(表头):评定模式、全桥指数与等级、最差单元、控制指标命中、检测结论与养护建议 |
ev_bridge_unit | ev_bridge_id、scope、unit_id、span_id、name、index_min、index_max、index_avg、index_lim、grade_consistent、raw_index、index_val、grade、is_worst、is_main_control、formula | 全桥评定计算明细:多单元时逐评定单元、单单元时逐桥跨的指数构成、等级一致性与内插计算式(表C.0.8-3/C.0.8-4) |
ev_control_hit | bridge_id、unit_id、span_id、element_id、control_code、hit_scale、evidence | 单项控制指标命中记录(第 3.4.5 条,编码 CI-01~CI-16),按桥独立存储 |
20.6 交付物与校验
| 交付物 | 路径 | 说明 |
|---|---|---|
| 全桥评定数据层 | prototype/assets/data.js | bridgeAssessMode() 模式判定、calcBridge() 全桥等级与指数(多单元取最差/单单元内插)、CONTROL_HITS 按桥控制指标存储、汇总/计算行生成、CSV 导出 |
| 全桥评定界面 | prototype/assets/app.js | 全桥评定页(模式说明、全桥结果卡、汇总表、计算表、单项控制指标面板、检测结论与养护建议)、导出入口、导航与路由 /assess/full/:bridgeId |
| 样式 | prototype/assets/app.css | 全桥汇总表/计算表题注、全桥 BCI 合计行、单项控制指标命中提示;规范表格 .tbl--c082/.tbl--c083 两级合并表头与评定结果列强调 |
| Excel 生成器 | prototype/assets/xlsx.js | 零依赖生成真 .xlsx(手写 ZIP store + CRC32 + SpreadsheetML),支持多工作表、两级合并表头、列宽、边框与数字格式,供表C.0.8-2~C.0.8-4 导出 |
| 规范表格导出 | prototype/assets/app.js | sheetC082()/sheetFullCalc() 生成工作表数据、buildAssessWorkbook() 汇总工作簿、exportAssessXlsx() 下载入口(data-act="assess-export-xlsx") |
| 冒烟测试 | _tools/smoke_proto.js | 阶段九/十/十一断言:桥跨与单元评定(含等级一致取算术平均值 BSCĪ)、模式判定(多单元/单单元/单跨/无单元)、多单元取最差单元等级与指数、单项控制指标按桥独立并直接降为 5 类、规范表格版式(tbl--c082/tbl--c083、ECI 0~5 分布列)、Excel 导出函数与工作簿结构(表数/合并表头/字节流)、CSV 字段与页面输出 |
| 参数校验 | _tools/verify_proto.js | 规范参数、标度范围与评定合计校验(阶段十一不改变评定参数) |
| 数据库表结构 | database/schema.sql | ev_bridge/ev_bridge_unit/ev_control_hit 全桥评定与计算明细、控制指标命中表 |
体验入口:http://127.0.0.1:8123/index.html →「评定作业 → 全桥评定」,
或直接访问 #/assess/full/BR-001;页内查看全桥评定汇总表(表C.0.8-3)与计算表(表C.0.8-4),
并「导出汇总表/计算表」;单项控制指标命中时全桥直接评定为 5 类。
20.7 桥梁评定结果页规范表格复用
为满足规范附录 C 对评定结果表格的要求,桥梁评定结果页(#/assess/bridge/:bridgeId)
在统计卡与病害清单之间直接内嵌三张规范表格,无需跳转即可查看:
桥跨技术状况评定计算表(表C.0.8-2)按评定单元分节、逐桥跨·逐部件展开明细,
全桥技术状况评定汇总表(表C.0.8-3)与
多跨桥梁全桥技术状况指数计算表(表C.0.8-4)给出全桥指数的构成与内插计算过程。
表格渲染抽取为可复用函数,供桥梁评定结果页、桥跨评定页(#/assess/span/:bridgeId)
与全桥评定页(#/assess/full/:bridgeId)三处共用,保证规范表格口径完全一致:
spanCalcTableHtml(unitId)—— 表C.0.8-2,数据源spanCalcRows(unitId);bridgeSummaryTableHtml(bridgeId)—— 表C.0.8-3,数据源bridgeAssessSummary(bridgeId);bridgeCalcTableHtml(bridgeId)—— 表C.0.8-4,数据源bridgeCalcRows(bridgeId)。
体验入口:http://127.0.0.1:8123/index.html#/assess/bridge/BR-001,
页内「桥跨技术状况评定计算表/全桥技术状况评定汇总表/全桥技术状况评定计算表」三节即为上述规范表格。
20.8 附录B 全部桥型细分的评定表格适配
规范附录B 按表B.1.1 给出 5 类桥梁、20 个桥型细分、20 张部件组成表。 为保证任一经细分桥型均可直接输出评定结果,评定模块以附录B 为唯一数据源统一适配:
- 部件组成表
PART_DEF:逐桥型给出桥面系/上部结构/下部结构/附属构造四类结构下的部件名称、部件编码、权重 ω 与每跨参考构件数,20 个桥型细分全部覆盖,各结构 ω 合计均为 100; - 影响系数
GAMMA_DEFAULT:逐桥型给出四类结构的影响系数 γ,四项之和恒为 1.00,未列桥型按梁桥通用值兜底; - 部件编码与构件类型映射
COMP_TYPE_OF_PART:补齐拱肋、拱箱、主缆、吊索、拉索、索塔、锚碇、加劲梁等部件编码及其构件类型; - 主要构件表
MAIN_PART_CODES:按第3.3.3 条表3.3.3 补齐各桥型主要承重构件,用于「主要构件 4·5 类最差评定」; - 病害适用性:病害类型库
applies字段绑定部件编码,使每种桥型的每个部件均有对应规范病害类型与标度描述。
评定结果页对无构件数据的情形做了健壮性处理:桥跨计算表在单元尚未建立构件时输出占位行而非中断渲染,
保证 20 种桥型细分在任意数据状态下均可打开评定结果页并显示表C.0.8-2/表C.0.8-3/表C.0.8-4。
数据库侧参数表 appendix_b_part_weight 按(桥型细分 × 结构类别 × 类别序号)逐行存储,
唯一键 (bridge_type, structure_type, category_j) 天然覆盖全部 20 个桥型细分,无需按桥型分别建表。
覆盖核查:_tools/audit_bridge_types.js 对 20 个桥型细分逐一建桥 → 建单元 → 批量生成构件 → 渲染评定结果页,
结果 20 / 20 通过(含规范表格版式 tbl--c082/tbl--c083 与 ECI 0~5 分布列、
Excel 导出按钮与工作簿生成);_tools/smoke_proto.js 阶段十二固化为回归断言
(部件组成模板/ω 合计 100/γ 合计 1.00/主要构件定义/构件按桥型生成/部件病害适用性/评定结果页输出三张规范表格)。
20.9 规范表格版式与 Excel 导出(表C.0.8-2~C.0.8-4)
为满足「页面上可直接按规范查看评定结果」的要求,三张规范表格的版式严格对齐附录 C 表格, 并新增真 .xlsx 导出:
- 表C.0.8-2 桥跨技术状况评定计算表(
spanCalcOneTableHtml(),数据源spanCalcFullRows()): 逐桥跨一张表,列为「结构|影响系数 γ|类别 j|部件名称|构件技术状况标度(ECI)0~5 的数量(六列)|CI(j)|权重值 ω|桥跨评定结果(BSCI(i)、BSCL(i))」; 结构、γ 纵向合并,「ECI 的数量」「桥跨评定结果」两级横向合并表头;未设置部件按 B.1.3 取 0 标度行。 - 表C.0.8-3/C.0.8-4 多跨桥梁全桥技术状况指数计算表(
fullCalcOneTableHtml(),数据源fullCalcTables()): 按评定单元分表,列为「桥跨编号 i|结构类型|桥跨技术状况(BSCI(i)、BSCL(i))|计算参数(BSCI_lim、BSCĪ)|桥梁技术状况(BCL、BCI)」; 「桥跨技术状况/计算参数/桥梁技术状况」三组两级合并表头;单评定单元时一张表兼作表C.0.8-3、C.0.8-4。 - Excel 导出:页头按钮
data-act="assess-export-xlsx"(桥跨评定页与全桥评定页均提供), 经exportAssessXlsx()→buildAssessWorkbook()→buildXlsx()生成含合并表头、列宽与边框的.xlsx工作簿,工作表为「表C.0.8-2」「表C.0.8-3」「表C.0.8-4」(多单元时续编 C.0.8-5…)。
校验:_tools/_xlsx_integration.js 以真实数据层生成工作簿并落盘,
_tools/smoke_proto.js 固化断言(工作表数/首表名/ECI 六列合并表头/字节流大小/单单元桥双表)。
20.10 评定结果的分层呈现(构件扣分 → 表C.0.8-2 → C.0.8-3 → C.0.8-4)
为使桥梁评定结果一目了然,评定结果汇总页(#/results)
与桥梁评定结果页(#/assess/bridge/:bridgeId)均按「由下至上逐层汇总」的顺序组织内容:
从各构件的扣分汇总计算表,逐层归并到桥跨(表C.0.8-2)、评定单元、全桥(表C.0.8-3、C.0.8-4),
并在页面顶部直接给出最终评定结论。评定结果汇总页支持切换桥梁
(data-act="results-bridge"),并可一键导出该桥的「构件扣分汇总」与三张规范表格 Excel。
- 置顶结论卡
assessConclusionHtml():以等级徽标 + 大字号 BCI 突出全桥最终结果, 并列示评定模式、最差评定单元、单项控制指标命中数、评定范围(构件/单元/跨数)与病害记录统计, 使用户无需翻阅表格即可读到桥梁最终评定等级与指数。 - 分层链路
assessFlowHtml():结论卡下方给出四段式链路 ① 构件扣分汇总 → ② 表C.0.8-2 桥跨评定 → ③ 表C.0.8-3 全桥汇总 → ④ 表C.0.8-4 全桥评定, 每段显示该层关键指标(存在扣分的构件数、Σ扣分、最差 BSCI、最差单元、BCI/BCL), 点击后平滑滚动直达对应明细节(data-act="scroll",不改动路由 hash,避免与 hash 路由冲突)。 - 第一层:各构件扣分汇总计算表
compDeductTableHtml()(数据源compDeductRows(bridgeId)): 逐评定单元·逐桥跨列出存在扣分的构件(ECI > 0),列为 「构件编号|构件名称|所属部件(结构)|ECI|等级|主要构件|影响安全|部件归并|ω|γ|扣分 CI·ω·γ/5」; 同部件仅最不利构件计入扣分(其余标记「被取代·计 0」), 表尾依次给出 Σ 扣分、桥跨技术状况指数 BSCI = 100 − Σ扣分、桥跨技术状况等级 BSCL, 与表C.0.8-2 的部件行一一对应,作为桥跨评定的构件级依据。
四层明细抽取为共享渲染 assessLayersHtml(bridgeId, bc)(含 sec-deduct/
sec-c082/sec-c083/sec-c084 锚点),
供评定结果汇总页与桥梁评定结果页共用,保证两页分层口径与链路锚点完全一致。
Excel 导出同步新增「构件扣分汇总」工作表(sheetDeduct()),
置于工作簿首表,与页面内容一致,形成「构件扣分汇总 → 表C.0.8-2 → 表C.0.8-3/C.0.8-4」的完整分层导出链。
| 层级 | 内容 | 规范表格 | 渲染函数 |
|---|---|---|---|
| 结论 | 全桥 BCI/BCL、评定模式、最差单元、控制指标、评定范围 | — | assessConclusionHtml()/assessFlowHtml() |
| 第一层 | 各构件扣分汇总(ECI>0)→ 部件 CI(j) 归并 → 桥跨 Σ扣分与 BSCI | 表C.0.8-2 的构件级依据 | compDeductTableHtml() |
| 第二层 | 逐桥跨·逐部件计算明细(ECI 0~5 分布、CI(j)、ω、γ、BSCI/BSCL) | 表C.0.8-2 | spanCalcTableHtml() |
| 第三层 | 逐评定单元/桥跨的全桥评定汇总 | 表C.0.8-3 | bridgeSummaryTableHtml() |
| 第四层 | 全桥指数构成与内插计算过程 | 表C.0.8-4 | bridgeCalcTableHtml() |
校验:_tools/audit_bridge_types.js 对 20 个桥型细分逐一播种一处构件扣分后渲染评定结果页,
断言置顶结论卡(class="card concl")、分层链路(flow__step/data-act="scroll")
与各构件扣分汇总计算表(含「部件最不利·计入」明细行)均正常输出;
_tools/smoke_proto.js 固化「分层评定结果/各构件扣分汇总计算表/全桥技术状况指数 BCI」页面断言与工作簿首表为「构件扣分汇总」的导出断言,
并对评定结果汇总页(#/results)断言「切换桥梁 results-bridge/置顶结论卡/第一层扣分汇总(含「部件最不利·计入」)/
表C.0.8-2·3·4 四层锚点 sec-deduct·sec-c082·sec-c083·sec-c084/Excel 导出入口」齐备。
21. 阶段十二交付:检测报告生成与导出模块
本阶段在「构件 → 桥跨 → 评定单元 → 全桥」逐级评定链路(阶段九~十一)之上, 将评定数据自动组装为规范检测报告,报告体例对齐用户提供的检测报告实例 与《公路桥梁技术状况评定标准》JTG/T 5230—2026 附录C: 封面 → 公开声明 → 签字表 → 目录 → 第1章 项目概况 → 第2章 桥梁养护历史 → 第3章 评定目的及依据 → 第4章 人员与仪器设备 → 第5章 检测内容及方法 → 第6章 部件划分及评定参数 → 第7章 构件技术状况评定(检查结果/材质状况检测)→ 第8章 桥梁技术状况评定(表C.0.8-1~C.0.8-4)→ 第9章 结论与建议 → 附件。 其中封面与第1~6章为公共部分(引用报告体例,可直接复用), 第7章由录入的病害/构件/照片驱动(构件名称、病害名称描述、标度评定、照片一一对应), 第9章结论与建议按规范自动生成。 支持 Word / PDF / Excel 导出与在线预览、打印, 并可按桥梁与录入病害直接下载使用。
21.1 报告模板与章节编排(reportSections())
报告模板按项目类型分为定期检查报告模板(RPT-T-01 v3.0)与
初始检查报告模板(RPT-T-02 v2.0)(TEMPLATES),
体例对齐用户提供的检测报告实例与规范附录C。
章节清单由 reportSections(bridgeId, opts) 按类型自动编排,采用
「章 → 节」两级结构:每个章含 no(第N章)、title、
key 与 subs(节数组,节含 no/title/key),
两级 key 组合供渲染器 reportSectionHtml(chapterKey, sectionKey) 分派内容。
定期检查模板含「第2章 桥梁养护历史」,初始检查模板不含该章并将后续章号前移,
章标题相应改为「初始检查目的及依据/构件初始技术状况评定/桥梁初始技术状况评定/初始检查结论与建议」。
节内容类型与数据库 rpt_template_section.section_type 一致
(RPT_SECTION_TYPES:文本/表格/图片/图表/条件内容/附件)。
| 章 | 节 | 内容类型 | 数据来源 |
|---|---|---|---|
| 封面·公开声明·签字表 | 封面信息/公开声明/签字表 | 文本 | reportCoverRows()/REPORT_DECLARATION/REPORT_SIGN_ROLES |
| 第1章 项目概况 | 1.1 桥梁概况 | 文本 | reportOverviewText() |
| 1.2 桥梁基本信息一览表 | 表格 | reportBridgeInfoRows() | |
| 1.3 桥梁总体照片 | 图片 | photosOfBridge() | |
| 第2章 桥梁养护历史(仅定期) | 2.1 桥梁近期检查评定情况 | 文本 | reportRecentInspection() |
| 2.2 维修加固及改建情况 | 表格 | reportRehabRows() | |
| 第3章 评定目的及依据 | 3.1 检测目的 | 文本 | reportPurposeItems() |
| 3.2 检测参数及依据 | 表格 | REPORT_PARAMS | |
| 3.3 参考依据 | 文本 | REPORT_REFS | |
| 第4章 人员与仪器设备 | 4.1 投入人员/4.2 投入设备 | 表格 | reportStaffRows()/reportDeviceRows() |
| — | — | — | |
| 第5章 检测内容及方法 | 5.1 基本/5.2 专项检查内容 | 文本 | reportCheckItems() |
| 5.3 检查采用的方法 | 文本 | reportMethodItems() | |
| — | — | — | |
| 第6章 部件划分及评定参数 | 6.1 划分情况 | 表格 | reportPartsRows() |
| 6.2 编号规则 | 文本 | reportNumberRules() | |
| 第7章 构件技术状况评定 | 7.1 检查结果(构件/病害/标度/照片) | 表格+图片 | reportDiseaseGroups()/reportDiseasePhotos() |
| 7.2 材质状况检测 | 表格 | reportMaterialRows() | |
| 第8章 桥梁技术状况评定 | 8.1 桥跨技术状况评定计算表(表C.0.8-2) | 表格 | spanCalcTableHtml() |
| 8.2 桥梁技术状况评定汇总表(表C.0.8-3) | 表格 | bridgeSummaryTableHtml() | |
| 8.3 多跨桥梁全桥技术状况(表C.0.8-4) | 表格 | bridgeCalcTableHtml() | |
| 第9章 结论与建议 | 9.1 检测结论/9.2 缺损及缺损分析 | 文本+表格 | reportConclusion()/reportDefectAnalysis() |
| 9.3 耐久性缺损占比及程度分析 | 表格 | reportDefectRatio(…,'eddi') | |
| 9.4 结构性缺损占比及程度分析 | 表格 | reportDefectRatio(…,'esdi') | |
| 9.5 养护建议 | 文本 | reportMaintAdviceList() | |
| — | — | — | |
| 附件 | 附件1 总体照片附录/附件2 病害照片 | 图片 | photosOfBridge()/reportDiseasePhotos() |
| 附件3 构件现状记录 | 表格 | reportElementRows() | |
| — | — | — |
21.2 报告元信息与统计(reportMeta())
reportMeta(bridgeId, opts) 汇总报告编号、类型、范围、模板(名称与版本)、
桥梁与项目信息、编制人/编制日期,以及病害记录数、照片引用数等统计;
并新增封面所需字段:资质证书编号 certNo、
委托单位 entrustOrg、检测项目/类别 inspectionItem/inspectionCategory、
报告分册 volume 与中文日期 dateCn,
检测机构信息集中定义于常量 REPORT_ISSUER。
报告编号由 nextReportNo() 按 RP-0001 递增并保持唯一;
文件名由 reportFileName() 依据「编号_桥梁_类型.扩展名」生成,
扩展名取自 REPORT_FORMAT_EXT(Word→.doc/Excel→.xlsx/PDF→.pdf)。
报告范围支持全桥/评定单元/桥跨三级(REPORT_SCOPES)。
21.3 报告内容自动组装(buildReport())
buildReport(bridgeId, opts) 输出 { meta, sections, conclusion, advice },
各章节内容均由评定数据实时生成,不依赖人工录入。
封面与第1~6章为公共部分(引用报告体例,可直接复用):
- 封面(
reportCoverRows()/reportCoverHtml()):委托单位、工程名称、检测项目、检测类别、报告日期,及机构名称、资质证书编号、分册。 - 公开声明与签字表(
REPORT_DECLARATION/REPORT_SIGN_ROLES):7 条报告有效性声明与「项目负责人/主要参与人员/编写人/审核人/批准人」签字栏。 - 第1章 项目概况:桥梁概况文字(
reportOverviewText(),含行政位置、桩号、跨径布置、结构类型、荷载等)、桥梁基本信息一览表(reportBridgeInfoRows(),按 JTG 5120 附录A 字段)、总体照片墙。 - 第2章 桥梁养护历史(
reportRecentInspection()/reportRehabRows()):近期检查评定情况(按结构分组的主要病害)与维修加固、改建情况。 - 第3~4章:检测目的(
reportPurposeItems())、检测参数及依据(REPORT_PARAMS)、参考依据(REPORT_REFS)、投入人员(REPORT_STAFF)与投入设备(REPORT_DEVICES)。 - 第5~6章:基本/专项检查内容、检查采用的方法(外观检查/裂缝检测/碳化深度/钢筋锈蚀电位,
reportMethodItems()),部件划分情况(reportPartsRows())与编号规则(reportNumberRules())。
第7章由录入的病害/构件/照片驱动(检查结果口径):
- 7.1 检查结果(
reportDiseaseGroups()):按「结构 → 部件」分组,逐部件输出构件病害统计表,列含构件编号、构件名称、病害名称描述、特征(尺寸/位置)、标度(耐久性/结构性)、EDI/EFI/EAI/ECI 与等级,与录入病害一一对应。 - 7.1 病害照片(
reportDiseasePhotos()):按部件归集有照片的病害,生成「图 7.1-n 病害编号+病害名称」图题与位置/特征图注。 - 7.2 材质状况检测(
reportMaterialRows()):对混凝土构件生成碳化深度检测结果(3 点值+平均值)与钢筋锈蚀电位检测结果(mV+锈蚀等级+描述)。
第8章复用阶段九~十一的规范表格渲染
spanCalcTableHtml()/bridgeSummaryTableHtml()/bridgeCalcTableHtml(),
输出表C.0.8-2~C.0.8-4,与评定结果页口径完全一致。
21.4 结论与建议自动生成
- 检测结论
reportConclusion():依据全桥calcBridge()结果, 陈述评定范围(评定单元数、桥跨数)、BCI 与等级、最差评定单元、病害统计; 命中单项控制指标时按第 3.4.5 条说明直接评定为五类,并按等级给出第 3.5.2 条养护对策(MAINT_ADVICE)。 - 桥梁主要缺损及缺损分析
reportDefectAnalysis():按部件汇总缺损表现(部件、结构、病害数、病害名称、典型特征), 并以关键词规则DEFECT_CAUSE(裂缝/渗水/露筋/剥落/破损/龟裂/堵塞/变形/砌缝等)匹配defectCauseText()自动生成成因分析。 - 耐久性/结构性缺损占比及程度分析
reportDefectRatio():按部件统计构件总数与「有缺损构件数」(eddi>0/esdi>0),输出占比,分别支撑 9.3/9.4 节。 - 养护建议
reportMaintAdviceList():按等级给出第 3.5.2 条养护对策(MAINT_ADVICE), 并叠加裂缝封闭/灌浆、破损露筋修补、排水疏通、砌体勾缝等具体维修建议(依录入病害名称动态增补)。 - 养护/专项检查/处治建议
reportAdviceRows():按构件等级(ECI/ECL)与影响安全(EAI)分三组生成—— 2/3 类列入养护建议、4/5 类且影响安全(或主要构件 4/5 类)给出专项检查提示(SPECIAL_ADVICE)、 4/5 类给出处治建议。 - 与历次检查对比分析
reportTrendRows():列出历次检查等级与指数,计算本次相对上次的指数变化delta,判断发展趋势。 - 附件:总体照片附录(
reportOverallAppendixHtml())、病害照片(reportDiseasePhotosHtml())与构件现状记录(reportSurveyHtml())。
21.5 报告记录管理(createReportRecord())
createReportRecord(bridgeId, opts) 组装并写入报告记录(REPORTS 首位),
记录含编号、桥梁、项目、类型、范围、格式、大小估算(reportSizeEstimate())、
生成时间、编制人、状态,以及生成时的 BCI/BCL 与模板版本快照;
removeReport() 支持删除;reportsOfBridge() 按桥检索历史报告。
报告编号在 nextReportNo() 中按现有最大号递增,保证唯一。
21.6 导出与在线预览
- 在线预览
viewReportPreview(id):按「封面 → 公开声明 → 签字表 → 目录 → 章节」渲染报告纸张(reportDocHtml()/report__paper), 其中reportCoverHtml()/reportDeclarationHtml()/reportSignatureHtml()/reportTocHtml()分别渲染封面、公开声明、签字表与「章 → 节」两级目录; 目录项点击平滑滚动直达章节(data-act="scroll",避免与 hash 路由冲突), 路由为#/report/:id,页头提供下载 Word、导出 Excel、打印/另存 PDF 与返回报告中心。 - Word 导出
exportReportWord():生成 HTML 兼容的.doc文档(内联报告纸张样式REPORT_PAPER_CSS)。 - Excel 导出
exportReportXlsx()/reportWorkbook():零依赖xlsx.js生成工作簿, 工作表依次为「报告信息 → 项目概况 → 桥梁基本信息 → 构件技术状况评定 → (构件扣分汇总+表C.0.8-2~C.0.8-4)→ 结论与建议」, 复用buildAssessWorkbook(),与页面口径一致。 - 打印 / 另存 PDF
printReport():在新窗口注入报告纸张样式并调用浏览器打印,实现 PDF 输出。 - 按格式下载
downloadReport():依记录格式分派到 Word/Excel/PDF 三种导出。
21.7 数据库表结构与模板种子
报告模板、模板章节与报告记录分别落库于 rpt_template、rpt_template_section、rpt_record:
| 表 | 关键字段 | 说明 |
|---|---|---|
rpt_template |
template_code/project_type/version/status/is_default/style_json | 初始检查/定期检查模板分别配置,支持版本管理与样式(字体/字号/行距/页边距/水印) |
rpt_template_section |
template_id/parent_id(章→节两级)/section_code/section_type/data_binding/sort_no/enabled | 模板章节,parent_id=0 为章、否则为所属节的章 id,支持增删改、排序、启用停用与字段绑定 |
rpt_record |
report_no(唯一)/report_scope/scope_text/template_version/report_date/prepared_by/file_format/size_text/disease_count/photo_count/bci/bcl/status | 报告生成记录,编号唯一递增,支持按桥/项目检索与版本追溯 |
schema.sql 末尾提供报告模板种子数据:写入 RPT-T-01(定期检查 v3.0)与
RPT-T-02(初始检查 v2.0)两套模板及其全部「章 → 节」记录,
section_type 取 RPT_SECTION_TYPES 值,data_binding 绑定对应的内容生成函数,
与原型 reportSections() 编排口径一致,可直接导入数据库作为可下载模板使用。
21.8 交付物与校验
| 交付物 | 文件 | 说明 |
|---|---|---|
| 数据层 | prototype/assets/data.js | 「章 → 节」两级章节编排(reportSections())、封面/声明/签字表公共常量、元信息与统计、第7章病害/构件/照片与材质检测内容生成、第9章缺损分析与养护建议生成、报告记录 CRUD 与编号唯一 |
| 界面层 | prototype/assets/app.js | 报告中心页、生成弹窗、在线预览(封面/公开声明/签字表/两级目录/章节)、章节分派 reportSectionHtml()、Word/Excel 导出与打印、路由 #/report/:id |
| 样式 | prototype/assets/app.css | 报告纸张排版(封面/公开声明/签字表/目录/章节)、照片墙与导出清单,打印媒体查询 |
| Excel 生成 | prototype/assets/xlsx.js | 零依赖 .xlsx 工作簿生成(含合并表头),报告工作簿复用 |
| 数据库 | database/schema.sql | 扩展 rpt_template/rpt_template_section/rpt_record 字段(范围、编制人、统计、BCI/BCL、模板版本等),并新增两套模板的「章 → 节」种子数据 |
| 冒烟测试 | _tools/smoke_proto.js | 新增阶段十二断言:数据层函数齐备、两级章节编排(定期含养护历史、初始不含;章含标题/编号/节)、小节键齐备、结论含 BCI 与等级、报告记录 CRUD 与编号唯一、Excel 工作簿首表与工作表齐备、报告中心与在线预览界面元素、未知编号友好提示 |
校验:_tools/smoke_proto.js 覆盖全部路由(含 #/report/:id)与阶段十二断言全部通过;
_tools/verify_proto.js、_tools/audit_bridge_types.js(20/20)、_tools/_xlsx_integration.js 均无回归。
体验入口:报告中心 #/reports,在线预览 #/report/:id;模板可在报告中心按桥梁与录入病害生成并下载。