阶段七交付物 · 病害录入与构件评定模块

公路桥梁技术状况评定一体化系统
系统框架与数据库设计

本阶段确定系统总体架构、模块划分、技术选型与完整数据库表结构,并固化规范参数与评定流程状态机。 核心结论:采用前后端分离架构,后端以 Python FastAPI + SQLAlchemy 承载评定计算与报告生成, 前端以向导式流程承载「桥梁库 → 检测项目 → 评定单元 → 构件 → 病害评定 → 桥跨 → 评定单元 → 全桥 → 报告」, 全部评定指标、标度、权重 ω、影响系数 γ、等级界限与养护对策以数据字典形式集中管理,系统内不得自行修改。

规范依据:JTG/T 5230—2026 桥梁卡片:JTG 5120 附录A 数据库表:46 张 版本:v1.0 状态:阶段七已完成 · 待用户确认

1. 总体架构设计

系统面向「Web 端编制方案 → 移动端现场检测 → 一键生成报告」的行业成熟模式。 本阶段只生成在线网站系统,App 端以同步接口与方案形式预留。

1.1 分层架构

表 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. 技术选型建议

表 2-1 技术选型建议(已在本机验证可用)
层次推荐方案版本选型理由
后端框架Python + FastAPI3.10 / 0.142.2类型校验强、自动生成 OpenAPI 文档,便于后续 App 对接
ORMSQLAlchemy2.0同一套模型可切换 MySQL / SQLite,开发与部署一致
数据库MySQL 8.0(开发用 SQLite)8.0生产环境成熟稳定;开发/演示零依赖
鉴权PyJWT + passlib(bcrypt)—Web 与 App 共用 Token 机制
报告生成python-docx / openpyxl / reportlab1.2 / 3.1 / 4.4直接产出 Word、Excel、PDF,满足附录 C 报告与表格导出
数据处理pandas2.3Excel 模板导入导出、批量校验
图像处理Pillow12.2照片压缩、水印(桥梁名称/构件编号/日期/桩号)
前端Vue 3 + Vite(组件库 Element Plus)3.x表单与表格密集,组件库可显著降低录入类页面成本
前端图表/地图ECharts(统计报表、检测地图)5.x等级分布、进度统计、桥梁点位展示
文件存储本地目录(后续可切换对象存储)—照片与附件与评定数据关联存储,支持断点续传
离线可用性说明:本机已确认 Python 3.10、Node 22 可用,FastAPI、SQLAlchemy、python-docx、openpyxl、reportlab、pandas、Pillow 均已就绪。 前端构建若受网络限制,将提供免构建的静态前端作为降级方案,功能与接口保持一致。

3. 模块划分与目录结构

3.1 功能模块划分

表 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)阶段十二/十三
M13App 数据同步服务下载/上传接口、增量同步、冲突处理、断点续传阶段十五
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 节)

表 4-1 构件评定标度与公式
指标含义取值范围计算/取值规则
EDDI耐久性缺损标度0、1、2按构件材料类别评定(第 4 章)
ESDI结构性缺损标度0、1、2、3按构件类型评定(第 5~13 章);维修加固构造按第 13 章并计入原构件
EDI构件缺损状况标度0、1、2、3EDI = max(EDDI, ESDI)
EFI构件功能状况标度0、1、2第 14 章;多项异常取最大值
EAI构件影响状况标度−1、0、1第 15 章;多种影响取最大值
ECI构件技术状况标度0~5ECI = EDI + EFI + EAI,计算值 ≥ 5 时取 5
表 4-2 构件技术状况等级 ECL 分类界限(表 3.2.6)
ECI012345
ECL1 类2 类3 类4 类5 类5 类
代表状态优良中次差差

4.2.1 病害录入(只登记病害本身)

病害录入仅登记现场病害本身,不显示也不由人工指定评定类别(耐久性/结构性/功能状况/影响状况)。评定类别由所选病害类型按规范自动确定,人工只负责如实登记病害。录入字段与规则:

  • 构件筛选与自主填写:可按评定单元、桥跨筛选构件;构件清单中没有的构件可通过「自主填写构件」加入(名称自主填写、部件可选),加入后参与评定且不参与自动重编号。
  • 病害类型按构件过滤:病害类型下拉只列出所选构件(按部件代码)对应的规范病害类型,该构件没有的病害类型不体现。
  • 病害类型具体到单一病害:病害类型按规范清单逐项细分,每一类只对应一种缺损,不在同一类型中并列多种缺损。例如支座病害按「支座老化」「支座开裂」「支座脱空」分列,主梁病害按「构件变形」「挠度超限」分列;每条病害记录对应唯一病害类型与规范编号,标度划分原则亦按该单一类型取用。
  • 裂缝形态:裂缝类病害(名称含「裂缝」)须选择裂缝形态(竖向、横向、纵向、斜向、环向、放射状、网状(龟裂)、贯通等),非裂缝病害不显示该下拉。
  • 数量、大小(尺寸)、照片、描述:数量按处计;尺寸填写长度、宽度等;照片支持多选插入,自动关联桥梁名称、构件编号、日期与桩号水印;描述记录病害形态、范围与发展情况。
  • 来源:Web 手工录入为当前通道;App 现场采集、导入平台为预留通道,落库结构与字段规则与 Web 端完全一致。

4.2.2 相对位置法(位置描述)

位置描述采用相对位置法,提供多种定位方式,各定位方式所需填写项不同;参照物、构件部位、部位方位等既可下拉选择也可自主填写,并支持完全自由文本描述,不限于固定几种方式。

表 4-2A 定位方式与必填项
定位方式必填项示例
距参照物一定距离处参照物、起点距离距 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),禁止自定义描述:

  1. 逐条病害标度:对本构件已录入的每条病害,在其对应评定项目(EDDI/ESDI/EFI/EAI)下选择评定标度;选项即该病害类型规范规定的标度取值范围与描述。
  2. 四项评定项目标度:在耐久性、结构性、功能状况、影响状况四项上对照规范自主选择标度;构件该项标度取其下各条病害标度的最大值,也可在四项表中直接选定。

联动规则:标度选择后即时联动更新构件 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)
表 4-3 桥跨技术状况等级 BSCL 分类界限(表 3.3.2)
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 节)

表 4-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)

表 4-5 构件技术状况等级与养护对策
构件技术状况等级 ECL状态养护对策
1 类优日常养护
2 类良日常养护、预防养护
3 类中预防养护、修复养护
4 类次修复养护
5 类差修复养护

全桥养护对策按《公路桥涵养护规范》JTG 5120 的规定提出(第 3.5.3 条)。

4.6 检测项目类型与导出表格对照

表 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。

46
数据表总数
11
功能分组
4
评定层级
20
规范桥型(附录B)

5.1 实体关系概述

org_unit 管理单位1:n br_route 路线1:n br_bridge 桥梁库n:n prj_project 检测项目
bridge1:n unit_assessment 评定单元1:n span_span 桥跨1:n part_part 部件1:n el_element 构件

桥跨、部件、构件三级为评定对象树;评定记录(ev_*)按 round_no 分轮次留痕,is_current 标记当前有效版本。

5.2 表清单

表 5-1 数据库表清单(按功能分组)
分组表名说明
一、系统与权限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)

表 6-1 公路桥梁评定桥型(附录 B 共 20 个桥型细分、20 张部件组成表)
桥梁类型桥型细分(括号内为附录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)为例:

表 6-2 整体式板桥部件组成和评定参数(表 B.2.2)
结构γj部件ω
桥面系0.151桥面铺装40
2伸缩装置25
3护栏及人行道20
4排水系统15
上部结构0.405实心板/空心板75
6支座25
下部结构0.407桥墩或桥台60
8墩台基础40
附属构造0.059河床及调治构造物35
10翼墙、锥坡、护坡35
11其他附属设施30

注:整体式板桥包括整体式实心板桥和整体式空心板桥,每跨板梁划分为 1 个构件。全部桥型的部件组成与权重见 _source/appendix_b.json。

影响系数 γ 随桥型变化,并非全系统固定取值,必须按附录 B 各表逐桥型读取:

表 6-3 各桥型影响系数 γ(附录 B,同一桥型下 γ 合计为 1.00)
桥型(表号)桥面系上部结构下部结构附属构造
整体式板桥(B.2.2)0.150.400.400.05
装配式板桥(B.2.3)0.150.400.400.05
装配式组合箱梁桥及肋梁桥(B.2.4)0.150.420.380.05
整体现浇箱梁桥(B.2.5)0.100.450.400.05
悬臂浇筑箱梁桥(B.2.6)0.100.450.400.05
钢箱梁/钢桁梁/钢板梁和钢-混凝土组合梁桥(B.2.7)0.100.500.350.05
实腹式板拱桥(B.3.2)0.100.450.400.05
空腹式板拱桥(B.3.3)0.150.450.350.05
肋拱桥(B.3.4)0.150.480.320.05
箱形拱桥(B.3.5)0.150.420.380.05
双曲拱桥(B.3.6)0.150.480.320.05
桁架拱桥(B.3.7)0.150.450.350.05
刚架拱桥(B.3.8)0.150.450.350.05
无系杆组合体系拱桥(B.4.2)0.120.530.300.05
柔性系杆组合体系拱桥(B.4.3)0.120.550.280.05
刚性系杆组合体系拱桥(B.4.4)0.120.530.300.05
自锚式悬索桥(B.5.2)0.100.550.300.05
地锚式悬索桥(B.5.3)0.100.500.350.05
斜拉桥(B.6.2)0.100.550.300.05
部分斜拉桥(B.6.3)0.100.550.300.05
权重重新分配规则(B.1.3):根据相关标准或设计文件全桥无须设置的部件,其权重应在相应结构中按权重比例重新分配,全桥各桥跨采用统一的权重值;未设置其他附属设施的桥梁,其权重按比例分配到附属构造的其他部件;各评定单元部件划分及权重以部件设置最完整的桥跨为准,其他桥跨未设置的部件权重不做分配,该构件技术状况评定标度取 0。

6.3 评定标度、等级与养护对策

表 6-3 评定标度字典
标度项取值范围取值描述
耐久性缺损 EDDI0 / 1 / 2完好或局部轻微缺损 / 较多轻度缺损或局部中度缺损 / 较多中度缺损或局部严重缺损
结构性缺损 ESDI0 / 1 / 2 / 3完好或局部微小缺损 / 轻度缺损 / 中度缺损 / 严重缺损
功能状况 EFI0 / 1 / 2正常 / 一般异常 / 严重异常
影响状况 EAI−1 / 0 / 1轻微(缺损趋向稳定)/ 一般(缺损缓慢发展)/ 严重(缺损加速发展)

6.4 单项控制指标(第 3.4.5 条)

桥梁出现下列任一情形时,全桥技术状况等级应评定为 5 类:

  1. 落梁或梁板断裂。
  2. 主梁控制截面全截面开裂。
  3. 组合结构主梁结合面贯通开裂,组合作用失效。
  4. 主梁明显永久变形,变形大于规范值并伴随严重开裂。
  5. 拱桥主拱圈严重变形。
  6. 圬工拱桥主拱圈砌体大范围断裂、脱落。
  7. 拱桥拱脚固结失效、明显变位。
  8. 拱桥腹拱圈、桥面板塌陷或断裂。
  9. 主要构件混凝土压溃或杆件有失稳趋势。
  10. 上部结构主要构件严重异常位移,有失稳或落梁趋势。
  11. 主缆、拉吊索、系杆索严重锈蚀或断裂。
  12. 桥墩、桥台严重倾斜。
  13. 扩大基础冲刷至基础底面,冲空面积大于 20%。
  14. 桩柱连接钢筋失效或桩柱严重错位。
  15. 桩基础核心混凝土大范围缺失。
  16. 墩台基础、锚碇明显位移、下沉、倾斜。

6.5 其他字典

表 6-4 其他核心字典项
字典取值
材料类型钢筋混凝土、预应力混凝土、钢、钢-混凝土组合、圬工、钢管混凝土
结构类别桥面系(γ=0.15)、上部结构(γ=0.40)、下部结构(γ=0.40)、附属构造(γ=0.05)(以附录B各表为准)
项目类型初始检查(INITIAL)、定期检查(PERIODIC)
项目状态未开始、进行中、已完成、已归档
评定单元类型主桥单元、引桥单元、拼宽单元、其他单元
管理单位类型管养单位、业主单位、检测单位、监理单位、设计单位、施工单位
报告章节类型文本、表格、图片、图表、条件内容、附件
总体照片分类正面照、左侧面照、右侧面照、桥面照、上部结构、下部结构、桥面系、附属构造、典型截面、特殊部位
路线等级 / 功能类型 / 设计荷载 / 通行载重 / 抗震设防按 JTG 5120 附录A 桥梁基本状况卡片字典项设置(详见 data_dictionary.json)

7. 评定流程状态机设计

评定按「构件 → 桥跨 → 评定单元 → 全桥」逐级推进,下级未完成时上级不可评定;任一环节命中单项控制指标时全桥直接判为 5 类。

表 7-1 各评定对象状态机
对象状态触发条件
构件未评定 NOT_EVAL构件生成完成
已评定 EVAL完成 EDDI/ESDI/EFI/EAI 勾选并保存,系统计算 ECI、ECL
需专项检查 SPECIAL损伤程度及原因不明确,转附录 A 专项检查
桥跨待评定该跨全部部件均有构件评定结果
已评定计算 BSCI(i) 并判定 BSCL(i)
评定单元待评定单元内全部桥跨已完成评定
已评定按单元内最差桥跨等级确定单元等级
全桥待评定全部评定单元已完成评定
已评定按单跨/多跨/多单元规则计算 BCI、BCL;判定单项控制指标
已出报告生成并下载检测报告
检测项目未开始项目创建、桥梁拉入
进行中已发布任务 / 开始录入数据
已完成项目内全部桥梁完成全桥评定
已归档项目结束归档,只读
约束:桥跨与评定单元评定不得跨单元混合计算;评定单元内主要构件为 4 类或 5 类且影响安全时,按最差构件等级评定;全桥评定以最差评定单元结果作为全桥技术状况结果。

8. 前端页面结构规划

采用「向导式流程 + 管理后台」双入口。向导式流程对应单座桥梁从建库到出报告的完整链路;管理后台对应桥梁库、项目、模板、用户等全局管理。

8.1 向导式流程(单桥主线)

表 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 分阶段登录策略

表 9-1 登录策略
阶段方式说明
测试阶段直接登录默认账号 admin/admin,另提供「一键登录」按钮,可直接进入系统
发布后注册 + 登录注册页面启用,密码 bcrypt 加密存储,JWT 签发 Token

9.2 角色与权限

表 9-2 角色权限矩阵
角色数据权限范围典型操作权限
管理员全部数据用户/角色/权限、字典维护、桥梁库、项目、模板、全部评定与报告
检测人员本组织 / 本项目桥梁信息录入、构件生成、病害录入、构件/桥跨评定、数据上传
审核人员本组织 / 本项目评定结果复核、退回修改、全桥评定确认、报告审核
查看人员本组织 / 本项目只读查看评定结果与报告下载

权限分三层:菜单权限(可见页面)、数据权限(可见数据范围,由 sys_role.data_scope 控制)、操作权限(按钮与接口级)。登录日志写入 sys_login_log,关键业务操作写入 sys_operation_log。

10. App 数据同步接口设计(预留)

本阶段仅输出方案与接口定义,不生成 App 代码;待在线网站系统核验通过后,再按本方案生成 App。

10.1 同步数据范围

表 10-1 同步数据范围
方向数据
网站 → App桥梁基本信息、评定单元、桥跨、部件、构件清单、已有病害数据、报告模板
App → 网站现场采集的病害、照片、构件现状记录、评定结果,以及现场新建的桥梁基础信息、构件信息

App 现场新建的桥梁与构件上传后自动进入桥梁库,网站端可查看、编辑和使用;现场新建字段与校验规则与网站端保持一致。

10.2 接口清单

表 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/bridgeApp 现场新建桥梁,自动进入桥梁库
构件信息上传POST/api/app/elementsApp 现场新建构件信息

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 本阶段交付物

表 11-1 阶段一交付物清单
交付物路径说明
系统框架与数据库设计文档docs/phase01-design/phase01-design.html本文件
数据库 DDLdatabase/schema.sql46 张表完整建表脚本
核心数据字典database/data_dictionary.json规范参数字典(可直接导入字典表)
附录B 参数数据_source/appendix_b.json / .md各桥型部件组成、ω、γ

12. 阶段三交付:桥梁库管理模块

桥梁库为全局数据,独立于检测项目:先建库(管理单位 → 桥梁 → 评定单元 / 构件), 需要检测时再从库中把桥梁拉入项目。检测项目只引用库内桥梁,不重复创建基本信息;删除项目不影响桥梁库。

12.1 页面与路由

表 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 桥梁基本状况卡片;除桥梁名称与管理单位外均不强制填写。

表 12-2 桥梁建库字段
分组字段
标识信息桥梁名称*、桥梁编号(留空按「路线编号+行政区划代码+顺序号」自动生成)、桥位桩号
归属与路线管理单位*、所属路线、路线等级、行政区划、被跨越道路(通道)、建成时间
结构信息桥型细分(附录B 20 项)、设计荷载、通行载重、桥梁全长、桥面总宽、桥面净宽、设计单位、施工单位、桥梁概况 / 备注

12.4 桥型细分字典(附录B)

共 20 项,编号按附录B 表号(B.x.y)编码,选择细分即回填桥梁类型与名称:

表 12-3 附录B 桥型细分
桥梁类型项数细分编号
梁桥6B.2.2~B.2.7(整体式板桥 / 装配式板桥 / 装配式组合箱梁及肋梁桥 / 整体现浇箱梁桥 / 悬臂浇筑箱梁桥 / 钢箱梁·钢桁梁·钢板梁及钢-混组合梁桥)
拱桥7B.3.2~B.3.8(实腹式板拱 / 空腹式板拱 / 肋拱 / 箱形拱 / 双曲拱 / 桁架拱 / 刚架拱桥)
组合体系拱桥3B.4.2~B.4.4(无系杆 / 柔性系杆 / 刚性系杆组合体系拱桥)
悬索桥2B.5.2 / B.5.3(自锚式 / 地锚式悬索桥)
斜拉桥2B.6.2 / B.6.3(斜拉桥 / 部分斜拉桥)

12.5 管理单位维护

  • 新增 / 编辑:单位名称*、联系人、联系电话、管养范围;编辑名称时同步更新名下所有桥梁的管养单位。
  • 管养路线:为单位登记路线(路线名称*、路线编号),重复路线予以拦截;台账按单位与路线展示桥梁数量。
  • 删除保护:名下仍有在库桥梁的单位禁止删除,需先转移归属或删除桥梁。

12.6 数据层 API(data.js)

表 12-4 桥梁库数据层接口
接口说明
addBridge(input)建库新增:校验名称非空与唯一、管理单位有效;编号留空自动生成;初始状态「待评定」
updateBridge(id, input)编辑基本信息:改管理单位同步管养单位;改桥型细分重定桥型与名称
setBridgeStatus / archiveBridge / unarchiveBridge状态流转:归档(保留数据、退出在库列表)与取消归档
copyBridge(id)复制为新桥:评定单元与构件一并复制、编号重生成、评定状态重置
deleteBridge(id)删除:被项目引用或已建单元 / 构件时禁止删除,提示改为归档
addOrg / updateOrg / deleteOrg / addOrgRoute管理单位与管养路线维护(含重名、名下有桥的删除保护)
filterBridges / resetLibFilter按管理单位 / 路线等级 / 桥型 / 状态 / 关键字筛选
bridgeRefs(id)引用统计:被哪些项目引用、已建评定单元与构件数
exportBridgesCSV / parseBridgeCSV / BRIDGE_IMPORT_HEADERSCSV 导出、导入解析与模板表头(支持引号包裹与逗号转义)
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 交付物与校验

表 12-5 阶段三交付物清单
交付物路径说明
桥梁库数据层prototype/assets/data.js桥梁 / 管理单位 CRUD、筛选、导入导出、附录B 桥型细分字典
桥梁库界面prototype/assets/app.js桥梁台账、桥梁详情、管理单位、构件库页面与新建 / 编辑 / 导入弹窗
冒烟测试_tools/smoke_proto.js新增阶段三断言:页面内容、数据层校验、删除保护、筛选与导入导出、弹窗字段
参数校验_tools/verify_proto.js规范参数、标度范围、编号唯一性与格式校验

13. 阶段四交付:检测项目管理模块

检测项目是评定作业的组织单元:创建项目时选择项目类型(初始检查 / 定期检查),系统据此匹配检查内容、 评定要求与导出表格;项目从桥梁库拉入桥梁开展检查与评定,只引用库内桥梁,不重复创建基本信息。

13.1 页面与路由

表 13-1 检测项目管理页面
路由页面关键交互
/projects检测项目列表按项目类型 / 状态 / 管理单位 / 关键字检索;新建、编辑、归档、删除;导出项目清单
/projects/:id项目详情项目基本信息维护、项目内桥梁管理(拉入 / 排序 / 移除)、任务分配与工作日志、汇总统计与导出

13.2 项目类型与导出表格匹配

项目类型创建后不可更改,详情页与报告中心据此自动匹配导出表格:

表 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 项目汇总统计与导入导出

表 13-3 项目汇总统计口径
指标口径
项目内桥梁数项目 bridges 引用且可在桥梁库检索到的桥梁数量
评定单元合计项目内各桥梁评定单元数之和(支持一桥多结构形式分单元)
整体进度项目内各桥梁评定完成度(已评定 100% / 评定中 55% / 待评定 0%)的平均值
检测任务任务总数与已发布 App 任务数
等级分布1~5 类桥梁数量与占比,未评定单独统计
  • 导出项目清单:按当前筛选条件导出 CSV(项目名称、编号、类型、管理单位、负责人、起止时间、状态、桥梁数、整体进度)。
  • 导出项目汇总表:按项目导出逐桥汇总 CSV(序号、桥梁名称与编号、桩号、桥型细分、评定单元数、评定进度、评定等级、检测人员、检测时间、检测范围、任务状态)。
  • 导入:预留项目清单 CSV 模板(项目名称、项目编号、项目类型、管理单位、项目负责人、开始时间、结束时间、参与人员)解析。

13.7 数据层 API(data.js)

表 13-4 检测项目数据层接口
接口说明
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 交付物与校验

表 13-5 阶段四交付物清单
交付物路径说明
检测项目数据层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 页面与路由

表 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(是否整行)。 新增字段只需在此表追加,界面与展示自动生效,避免录入与展示口径不一致。

表 14-2 附录A 字段分组与覆盖范围
分组字段数主要内容
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。 系统将其解析为逐跨跨径序列,自动得出桥跨数与跨径合计,供构件生成与桥跨评定使用。

表 14-3 跨径组合解析规则
输入解析结果
3×20+2×305 跨,跨径合计 120 m,规范化为 3×20+2×30
2x25+1*30识别 x / X / * / * 为乘号,归一化为 2×25+1×30(3 跨,80 m)
abc / 3×0格式或数值非法,拦截并提示「格式应为『数量×跨径』」

录入弹窗提供「解析」按钮,实时回显跨径数与合计值,避免误填;解析不通过时禁止保存。

14.4 评定单元划分

评定单元是构件与评定的归属载体。每个单元独立配置:单元名称与类型、桥型细分(附录B)、材料类型、 起止桩号、跨径布置、构件编号方向、构件划分规则,以及影响系数 γ。

表 14-4 评定单元配置项
配置项取值 / 说明
单元名称必填,同一桥梁内唯一;如「主桥单元 / 引桥单元 / 左幅拼宽单元」
单元类型字典取值:主桥 / 引桥 / 匝道 / 拼宽 / 其他
桥型细分(附录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)

表 14-5 桥梁基本信息与评定单元数据层接口
接口说明
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 交付物与校验

表 14-6 阶段五交付物清单
交付物路径说明
桥梁库与评定单元数据层prototype/assets/data.js附录A 字段架构、跨径组合解析、桥梁 CRUD / 复制 / 归档 / 导入导出、评定单元 CRUD 与排序、γ 默认值与校验、构件重建保数据
桥梁库与评定单元界面prototype/assets/app.js桥梁台账 / 库详情 / 预建构件库页面,以及新建 / 编辑桥梁、桥梁导入、新增 / 编辑评定单元、管理单位等弹窗与事件处理
冒烟测试_tools/smoke_proto.js新增阶段五断言:附录A 字段架构与数量、跨径组合解析、评定单元新增 / 编辑 / 排序 / 删除保护、导入导出表头一致性、五类弹窗字段
参数校验_tools/verify_proto.js规范参数、标度范围、编号唯一性与格式校验
数据库表结构database/schema.sqlunit_assessment 新增跨径布置与桥跨数量字段

15. 阶段六交付:构件信息录入模块

构件是评定作业的最小评定对象。构件在桥梁库中预先建立、独立于检测项目, 检测项目与 App 现场采集只引用库内构件,不重复创建。构件按评定单元桥型(附录B 部件组成) 自动生成,编号规则「跨号-序号」,序号自桥梁前进方向一端起算并随编号方向自动调整。 本阶段提供五种生成途径与完整清单管理:按桥型自动生成、快捷批量生成(按数量/按桥跨/按部件)、 复制相同跨构件、一键导入、单个构件自主增删改,并支持构件模板保存复用、清单树形筛选与统计、批量修改。

15.1 构件字段与字典

构件在阶段一字段基础上扩展构件类型、材料类型、备注、专项检查标记与手工标记, 并以两份字典约束取值:构件类型随部件自动带出(可自主修改),构件状态由评定结果与专项标记推导。

表 15-1 构件字段
字段来源 / 规则说明
构件编号 no自动重编号 / 人工填写「跨号-序号」,如 2-1;每跨仅 1 个的部件只取跨号,如 2
构件名称 name由编号 + 部件自动生成如「2-1号主梁」;人工填写后置 nameFixed,编号刷新不改写名称
所属评定单元 / 桥跨 / 部件 / 结构类别由生成方式决定部件须属于该单元桥型的附录B 部件组成,桥跨须在单元跨数范围内
构件类型 type随部件自动带出,可修改取值受 COMP_TYPES 约束(见 表 15-2)
材料类型 material默认取评定单元材料可自主修改,用于缺损指标匹配
状态 status推导值未评定 / 已评定 / 需专项检查(见 表 15-3)
专项检查标记 special人工勾选为真时状态优先置「需专项检查」
备注 remark人工填写位置补充、加固情况等
手工标记 manual系统置位手工新增或导入的构件,保留自主编号、不参与自动重编号
表 15-2 构件类型字典 COMP_TYPES(19 项)与部件映射
类别构件类型由部件自动映射的示例
上部结构梁(板)、拱圈、拱肋、横隔板、铰缝、支座实心板/空心板、主梁、板梁、箱梁、钢梁 → 梁(板);横隔梁 → 横隔板
下部结构桥墩、桥台、基础桥墩或桥台 → 桥墩;墩台基础 → 基础
桥面系与附属桥面铺装、伸缩装置、护栏及人行道、排水系统护栏 → 护栏及人行道
缆索体系主缆、吊索(杆)、拉索、锚碇吊杆、吊索 → 吊索(杆);斜拉索 → 拉索
其他河床及调治构造物、翼墙、锥坡、护坡、其他构件未命中映射时统一取「其他构件」
表 15-3 构件状态字典 COMP_STATUS
状态判定规则
未评定未勾选专项标记,且四项标度(EDDI / ESDI / EFI / EAI)均为 0、无勾选指标
已评定四项标度存在非 0 值,或已勾选缺损指标
需专项检查构件勾选「专项检查标记」时优先取此状态

15.2 编号规则与重编号

  • 分组重编号:按「评定单元 + 部件 + 桥跨」分组,组内按物理顺序编号,编号为「跨号-序号」。
  • 方向自适应:序号自桥梁前进方向一端起算;编号方向为从右向左时组内序号反转,界面编号随之调整,物理位置不变。
  • 单构件部件:每跨仅 1 个的部件(如桥面铺装、伸缩装置)只取跨号,如 2。
  • 唯一性约束:同一桥跨同一部件下构件编号唯一,对应数据库唯一键 uk_element(part_id, element_code);不同部件之间允许同号。
  • 重复编号检测:清单页对重复编号即时告警并列出冲突项,提示编辑或删除后重试。
  • 自主编号保护:手工新增与导入的构件保留人工编号与名称,不参与自动重编号。

15.3 构件生成途径

表 15-4 五种生成途径
途径入口规则
① 按桥型自动生成新增 / 编辑评定单元按附录B 部件组成「每跨参考数量 × 桥跨数」自动生成全部构件,编号随即生成
② 快捷批量生成清单页「批量生成」三种方式:按数量(同一跨同一部件生成 n 个)、按桥跨(多跨各生成 n 个)、按部件(同一跨多部件分别生成)
③ 复制相同跨构件清单页「复制跨」源跨构件整体复制到多个目标跨,可限定部件或仅复制选中构件;复制后按目标跨重新编号
④ 一键导入清单页「一键导入」按 CSV 批量导入,逐行校验后写入;不合规行跳过并给出原因
⑤ 单个构件增删改清单页行内操作自主填写编号与名称新增;行内编辑、删除、按物理顺序上移 / 下移
  • 边界校验:桥跨号须在单元跨数范围内、部件须属于该单元桥型附录B 部件组成、生成数量取 1~200。
  • 删除连带:删除构件时一并移除其下病害记录;批量删除支持勾选后一次执行。
  • 编号刷新:任何增删与排序操作后即时重编号,保证组内编号连续、无空号。

15.4 构件模板

相同结构形式的桥跨可先建好一跨作为模板,后续桥跨调用模板一键生成,无需重复录入。 模板记录部件、构件类型与材料,可在同桥型单元间复用,支持保存、应用与删除。

表 15-5 模板操作与约束
操作规则
保存为模板以某桥跨现有构件为内容;模板名称唯一,留空按「单元名 + 跨号」自动生成;空桥跨不可保存
应用模板选定模板与目标「评定单元 + 桥跨」生成构件;可选先清空目标跨现有构件(含其病害记录)再生成
删除模板删除后不再可应用;已按模板生成的构件不受影响

15.5 一键导入与导出

构件清单支持整体导出与批量导入,两者表头完全一致(8 列): 评定单元、桥跨编号、部件名称、构件编号、构件名称、构件类型、材料类型、备注。 导入按「评定单元 + 部件名称」定位,逐行校验后写入;导入的构件保留自主编号与名称,不参与自动重编号。

表 15-6 导入校验规则
校验项不合规处理
评定单元存在性单元名不存在则跳过该行并提示;桥梁仅 1 个单元时缺省取该单元
部件归属部件名称须属于该单元桥型的附录B 部件组成,否则跳过
构件编号不得为空;同一桥跨同一部件下不得重复,否则跳过
桥跨范围桥跨编号须在单元跨数范围内,否则跳过
有效数据行无有效数据行时整批不导入并给出提示

15.6 构件清单页与统计

清单以树形组织:评定单元 → 桥跨 → 部件 → 构件,支持按单元、桥跨、状态与关键字筛选, 并可折叠 / 展开节点。页面顶部提供四项统计卡与批量操作条。

表 15-7 清单页构成
区域内容
统计卡构件总数(编号规则提示)、评定单元数(桥跨数 / 部件种类)、构件状态(已评定 / 未评定 / 需专项检查)、手工构件数
筛选栏评定单元、桥跨(随单元联动)、构件状态、关键字(编号 / 名称 / 部件 / 类型 / 备注)、重置
清单树单元卡片头含批量生成 / 新增构件 / 复制跨 / 模板入口;桥跨节点可折叠;表格含勾选框、桥跨、编号、名称、部件、结构类别、构件类型、材料类型、状态、备注与行内操作
批量操作条已选数量提示;批量修改(类型 / 材料 / 备注 / 专项标记)、复制到其他跨、删除选中、清空选择
  • 批量修改:仅设置需统一填写的项,留空或选「保持不变」的字段维持原值;构件编号与名称不参与批量修改,以保证编号唯一。
  • 全选:桥跨节点表头提供本跨全选;跨筛选后的清单同样支持勾选。

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 交付物与校验

表 15-8 阶段六交付物清单
交付物路径说明
构件数据层prototype/assets/data.js构件字段扩展与类型 / 状态字典、分组重编号、构件 CRUD 与排序、三种批量生成、复制相同跨、模板保存 / 应用 / 删除、导入导出与校验、统计与清单树、重复编号检测
构件清单界面prototype/assets/app.js树形清单页(统计卡 / 筛选 / 批量选择)与六类弹窗(批量生成、构件新增编辑、复制跨、导入导出、模板管理、批量修改)及事件处理
冒烟测试_tools/smoke_proto.js新增阶段六断言:构件库清单页内容、字典与字段扩展、批量生成三种方式、复制跨、增删改与排序、批量修改、模板保存 / 应用 / 删除、导入导出往返与非法行拦截、统计与树筛选、重复编号检测、六类弹窗字段
参数校验_tools/verify_proto.js规范参数、标度范围、构件编号唯一性与格式 / 方向映射校验
数据库表结构database/schema.sqlel_element 新增 is_manual / name_fixed / is_special 字段,明确构件类型、材料类型与状态取值来源

体验入口:http://127.0.0.1:8123/index.html →「桥梁台账 → 选择桥梁 → 构件库」, 或直接访问 #/library/elements/BR-001。

16. 阶段七交付:病害录入与构件评定模块

本阶段实现病害录入与构件标度评定的完整闭环,并按检测项目类型区分评定要求: 初始检查建立构件初始技术状况档案、只登记初始缺损且不与历次对比; 定期检查记录缺损发展变化、与历次检查结果对比、记录发展趋势并分析成因及影响。 评定采用勾选式指标评定——按构件类型自动带出规范指标条目,勾选即登记病害台账记录、 取消勾选即移除;并支持批量勾选同类构件把源构件标度应用到同单元同类构件, 以及针对特殊构件(无法抵近、隐蔽、水下等)的构件现状记录。照片统一加注 桥梁名称 · 构件编号 · 日期 · 桩号水印。

16.1 检查类型差异化(初始检查 / 定期检查)

检查类型由所属检测项目类型确定(可在桥梁评定页切换演示),并决定评定页展示的面板与字段要求。 初始检查只登记初始缺损并建立档案;定期检查启用历次对比、发展趋势与影响分析。

表 16-1 检查类型差异 INSPECT_MODES
检查类型评定要求评定页面板关键字段
初始检查建立构件初始技术状况档案:记录施工缺陷、初始耐久性与初始结构性缺陷,不与历次检查对比构件初始技术状况档案(初始 EDDI/ESDI/EDI/ECI/ECL 与按初始缺陷分类统计)初始缺陷分类 init_kind
定期检查记录缺损发展变化:与历次检查结果对比,记录缺损发展趋势,分析缺损成因及影响历次检查对比与发展趋势(逐条列上次标度/本次标度/对比结论/发展趋势/成因及影响)上次标度 prev_scale、对比结论 compare_result、发展趋势 trend、影响分析 impact_analysis

16.2 勾选式指标评定

评定页按构件类型自动带出该构件适用的规范指标条目,按四项评定项目(耐久性 EDDI、结构性 ESDI、 功能状况 EFI、影响状况 EAI)分组展示。每行包含勾选列、规范指标条目、规范依据、评定标度下拉、当前标度: 勾选并选择标度即登记一条病害台账记录(来源标记为勾选式评定),取消勾选即移除该记录; 构件某项评定项目标度取其下各条记录标度的最大值,并实时联动 ECI/BSCI/BCI。

表 16-2 勾选式评定数据层 API
函数职责规则
assessChecklist(compId)生成构件的勾选式评定指标表按 defectTypesForComp() 过滤适用类型,按四项评定项目分组,回填已登记记录的标度与勾选态
setCompIndicator(compId, key, name, val)对某评定项目下的一条规范指标设定标度标度 0 移除同指标记录;非 0 新建或更新记录;标度须落在该指标标度范围内;随后按剩余记录重算构件标度

16.3 批量勾选同类构件

同类构件定义为同评定单元、同部件(可按材料与桥跨进一步限定),不含源构件自身。 批量评定把源构件的四项标度(或指定评定项目)应用到选定的同类构件;未选目标构件、未选评定项目、 源构件不存在时均予拒绝。

表 16-3 批量评定 API
函数职责拒绝条件
sameTypeComps(compId, opts)筛选同单元同部件的同类构件构件不存在时返回空集
batchAssessSameType(src, targetIds, keys)把源构件标度应用到目标构件源构件不存在/未选目标构件/未选评定项目(keys 显式为空数组)

16.4 构件现状记录(特殊构件)

对无法抵近、隐蔽、水下、专项检查等特殊构件,记录构件类别、现状描述、检测方法、检测结论、专项检查记录编号 并附照片/视频/附件。检测结论为「缺损明显,需专项检查」或「缺损严重,需限载或加固」时, 自动置该构件专项检查标记。支持新增、编辑(编号不变)、删除与导出构件现状记录表。

表 16-4 构件现状记录字典
字典取值
构件类别 SURVEY_KINDS无法抵近构件 / 隐蔽构件 / 专项检查构件 / 水下构件 / 其他特殊构件
检测方法 SURVEY_METHODS外观检查 / 近距离检查 / 无损检测(超声/回弹/钢筋扫描) / 钻芯取样 / 水下检查 / 无人机巡检 / 专项检测
检测结论 SURVEY_CONCLUSIONS技术状况良好 / 存在局部缺损,尚不影响使用 / 缺损明显,需专项检查 / 缺损严重,需限载或加固
导出字段 SURVEY_CSV_FIELDS评定单元 / 桥跨编号 / 构件编号 / 构件名称 / 构件类别 / 现状描述 / 检测方法 / 检测结论 / 专项检查记录编号 / 记录人 / 记录时间(共 11 项,与导入表头一致)

16.5 历次对比、发展趋势与初始技术状况档案

定期检查下,系统按种子化取值生成上次检查标度,并据此给出历次对比结论(新增病害/较上次减轻/较上次加重/与上次持平) 与缺损发展趋势。初始检查下,按初始缺陷分类统计构件病害并生成初始技术状况档案, 其中初始 EDI = max(EDDI, ESDI)、初始 ECI = EDI + EFI + EAI。

表 16-5 发展趋势与初始缺陷分类字典
字典取值说明
缺损发展趋势 DEV_TREND缺损趋于稳定 / 缺损缓慢发展 / 缺损加速发展 / 新增缺损定期检查与历次检查对比后判定
初始缺陷分类 INIT_KINDS施工缺陷 / 初始耐久性缺陷 / 初始结构性缺陷 / 初始功能缺陷初始检查建立档案时登记

16.6 照片水印

病害照片统一加注水印,格式为「桥梁名称 · 构件编号 · 日期 · 桩号」四段, 与照片标注项(裂缝位置/走向/宽度等)一并写入 dfc_photo.watermark 与 annotate_json。 App 现场采集的照片经同步队列自动补齐水印(预留)。

16.7 数据库字段扩展

表 16-6 阶段七数据库变更
表变更
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 交付物与校验

表 16-7 阶段七交付物清单
交付物路径说明
病害与评定数据层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-1 总体照片规范分类 PHOTO_CATEGORY_GROUPS
分类分组规范分类说明
桥梁全貌桥梁正面照 / 左侧面照 / 右侧面照 / 桥面照反映桥梁整体立面与桥面现状
结构照上部结构 / 下部结构 / 桥面系 / 附属构造按部件大类记录结构现状
其他典型截面照 / 特殊部位照典型断面构造与特殊(锚固、连接、加固、水下)部位

17.2 命名规范自动识别

导入时按文件名或文件夹名中的关键字自动归类:关键字到规范分类的映射由 PHOTO_ALIAS 维护(如「上部」「墩台」「基础」分别映射到上部结构、下部结构), parsePhotoName() 按 - _ 空格 / \ 切分后依次识别编号、规范分类与序号, 返回 matched 标记是否识别成功。识别不到的文件归入「特殊部位照」并可在照片详情中手工改分类。

表 17-2 命名规范识别示例
文件名/路径识别编号识别分类识别结果
G105-370100-0042-上部结构-001.jpgG105上部结构已识别
上部结构/IMG_0001.jpgIMG上部结构已识别(按文件夹名)
沙河大桥-桥面照-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 照片管理与编辑

照片记录包含编号、规范分类与分组、文件名、说明、拍摄时间/位置/拍摄人、关联评定单元/桥跨/构件、 导入方式与批次、命名识别标记等字段。照片库提供网格与清单两种视图, 可按分类分组、规范分类与关键字筛选;统计卡展示照片总数、结构照张数、命名已识别张数与报告引用张数。

表 17-3 照片编辑与管理 API
函数职责规则
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 项,表头与字段定义一致。

表 17-4 照片清单导出字段 PHOTO_CSV_FIELDS
序号字段序号字段
1照片编号10拍摄人
2规范分类11标注项
3分类分组12旋转
4关联评定单元13裁剪
5桥跨编号14导入方式
6关联构件15导入批次
7文件名16命名识别
8拍摄时间17报告引用
9拍摄位置——

17.6 数据库字段扩展

表 17-5 阶段八数据库变更
表变更
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 交付物与校验

表 17-6 阶段八交付物清单
交付物路径说明
总体照片数据层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 提供。桥面系与附属构造各部件,以及支座、铰缝、横隔板等 次要构件不参与最差评定规则。

表 18-1 主要构件代码 MAIN_PART_CODES
部件代码规范释义部件代码规范释义
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。

表 18-2 主要构件控制指数上限 MAIN_CTRL_LIM
触发构件等级桥跨等级 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类)。

表 18-3 桥跨等级阈值 BSCL_LIM
BSCL1 类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) 汇总全桥跨数、主要构件控制跨数与最差桥跨。界面按评定单元分节输出两张表。

表 18-4 桥跨评定汇总表字段 SPAN_SUM_FIELDS(表C.0.8-1)
序号字段序号字段
1评定单元6BSCL
2桥跨7主要构件控制
3跨径(m)8最不利部件
4ΣCI·ω·γ/59最不利构件
5BSCI10计算说明
表 18-5 桥跨评定计算表字段 SPAN_CALC_FIELDS(表C.0.8-2)
序号字段序号字段
1评定单元7影响系数γ
2桥跨8CI(j)
3结构类别9构件等级
4部件10最不利构件
5构件代码11CI·ω·γ/5
6权重ω12主要构件

18.5 数据库表结构

表 18-6 桥跨评定数据表
表关键字段说明
ev_spanunit_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_detailgamma、omega、ci、element_level、is_main_part、worst_element_code、term_value逐部件计算明细(表C.0.8-2),记录 CI(j)、ω、γ、构件等级、主要构件标记与分项值

18.6 交付物与校验

表 18-7 阶段九交付物清单
交付物路径说明
桥跨评定数据层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.sqlev_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 为单元内桥跨指数的算术平均值。
表 19-1 BSCI_lim 取值
单元等级2 类3 类4 类5 类
BSCI_lim90756040

19.2 单元内主要构件最差评定

单元内主要构件(isMainPart())技术状况等级为 4 类或 5 类且影响安全时, 单元等级按该最差构件等级评定,单元指数取该等级上限。 其中「影响安全」对应影响状况 EAI = 1(缺损加速发展、可能导致结构垮塌), 由常量 EAI_SAFETY 维护,判定函数为 unitMainComp(unitId)(仅在单元内查找)。 上限值复用 MAIN_CTRL_LIM,说明文案为 UNIT_CTRL_TEXT。

表 19-2 单元主要构件控制指数上限
触发构件等级单元等级单元指数取值
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 导出。

表 19-3 评定单元评定汇总表字段 UNIT_SUM_FIELDS
序号字段序号字段
1评定单元8BSCI_lim
2单元类型9单元指数
3桥型细分10单元等级
4跨数11等级一致性
5BSCI_min12主要构件控制
6BSCI_max13最差桥跨
7BSCI_avg14计算说明
表 19-4 评定单元评定计算表字段 UNIT_CALC_FIELDS
序号字段序号字段
1评定单元6BSCL
2桥跨7主要构件控制
3跨径(m)8单元指数
4ΣCI·ω·γ/59单元等级
5BSCI——

19.5 数据库表结构

表 19-5 评定单元评定数据表
表关键字段说明
ev_unitunit_id、worst_span_id、bsci_min、bsci_avg、unit_grade、unit_index、is_control_hit、eval_note评定单元评定记录:单元等级(取最差桥跨等级)、单元指数、主要构件控制标记与计算说明
ev_unit_detailev_unit_id、span_id、span_no、span_length、bsci、bscl、is_span_control、is_worst_span评定单元评定计算明细:单元内逐桥跨的 BSCI/BSCL、主要构件控制与最差桥跨标记

19.6 交付物与校验

表 19-6 阶段十交付物清单
交付物路径说明
单元评定数据层prototype/assets/data.jsunitMainComp() 单元主要构件最差控制、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.sqlev_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())

全桥评定口径由桥梁下辖的评定单元数与桥跨总数自动判定,避免人工选择错误:

表 20-1 全桥评定模式判定规则
模式代码名称判定条件全桥评定口径
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。
表 20-2 BSCI_lim 取值(按计算等级取界限值)
计算等级2 类3 类4 类5 类
BSCI_lim90756040

全桥指数 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)。

表 20-3 全桥评定汇总表字段 BRIDGE_SUM_FIELDS
序号字段序号字段
1评定范围7指数
2名称8等级
3单元类型9是否最差
4桥型细分10主要构件控制
5跨径布置11计算说明
6跨数——
表 20-4 全桥评定计算表字段 BRIDGE_CALC_FIELDS
序号字段序号字段
1评定范围8等级一致性
2名称9计算指数
3跨数10评定指数
4指数下限11等级
5指数上限12是否最差
6指数平均13主要构件控制
7等级界限14计算式

20.5 数据库表结构

表 20-5 全桥评定数据表
表关键字段说明
ev_bridgeeval_mode、grade_consistent、bci、bcl、worst_unit_id、bsci_max、bsci_min、bsci_avg、bsci_lim、is_control_hit、conclusion、maintenance_advice全桥评定记录(表头):评定模式、全桥指数与等级、最差单元、控制指标命中、检测结论与养护建议
ev_bridge_unitev_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_hitbridge_id、unit_id、span_id、element_id、control_code、hit_scale、evidence单项控制指标命中记录(第 3.4.5 条,编码 CI-01~CI-16),按桥独立存储

20.6 交付物与校验

表 20-6 阶段十一交付物清单
交付物路径说明
全桥评定数据层prototype/assets/data.jsbridgeAssessMode() 模式判定、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.jssheetC082()/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.sqlev_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」的完整分层导出链。

表 20-7 评定结果分层呈现
层级内容规范表格渲染函数
结论全桥 BCI/BCL、评定模式、最差单元、控制指标、评定范围—assessConclusionHtml()/assessFlowHtml()
第一层各构件扣分汇总(ECI>0)→ 部件 CI(j) 归并 → 桥跨 Σ扣分与 BSCI表C.0.8-2 的构件级依据compDeductTableHtml()
第二层逐桥跨·逐部件计算明细(ECI 0~5 分布、CI(j)、ω、γ、BSCI/BSCL)表C.0.8-2spanCalcTableHtml()
第三层逐评定单元/桥跨的全桥评定汇总表C.0.8-3bridgeSummaryTableHtml()
第四层全桥指数构成与内插计算过程表C.0.8-4bridgeCalcTableHtml()

校验:_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:文本/表格/图片/图表/条件内容/附件)。

表 21-1 报告章节框架(章 → 节,定期检查模板 v3.0)
章节内容类型数据来源
封面·公开声明·签字表封面信息/公开声明/签字表文本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:

表 21-2 报告相关数据库表
表关键字段说明
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 交付物与校验

表 21-3 阶段十二交付物清单
交付物文件说明
数据层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;模板可在报告中心按桥梁与录入病害生成并下载。