conda activate lq_agent conda activate lq_agent ### 施工方案审查-时效性审查设计 - 1、标准库数据结构 - 序号 - 标准号 - 标准名称 - 时效性 (XH 现行、试行 SX、 废止 FZ) - 2、标准数据来源 - 数据库查询(MySQL),可以一次查询所有 或 筛选 - 通过搜索引擎查询,再让大模型整理为标准库数据结构 - 3、根据数据结构制定查询规则 - 查询规则 - 处理流程图规则 ,参考【标准库匹配规则】 - 查询入参结构定义 list - 标准名称 (原始) - 标准号 (原始) - 查询返回结构定义 - 输出结构说明 list - 序号 - 标准名称(原始的) - 标准号(原始的) - 替代标准号(如果有) - 替代标准名称(如果有) - 处理结果状态(五种情况:参考 查询处理状态定义) - 处理结果消息提示:(五种情况:参考 查询处理状态定义) - 查询处理状态定义 - 标准名称和标准号的匹配情况,现行状态 ,状态正常, 提示 "正常" - 标准名称和标准号的匹配情况,废止状态,有现行状态 , 状态被替代 , 提示 "《标准名称》(标准号)已废止,替代《标准名称》(标准号)" - 标准名称和标准号的匹配情况,废止状态,无现行状态 , 状态废止无现行 , 提示 "《标准名称》(标准号)已废止,无现行状态" - 标准名称 或 标准号 其中一个匹配情况,现行状态 , 状态不匹配 , 提示 "《标准名称》(标准号) 与 实际《标准名称》(标准号)不匹配" - 标准名称 或 标准号 都不匹配 , 状态不存在, 提示 "《标准名称》(标准号)标准库不存在" ┌──────┬─────────────────────────────────────┬────────────────┬─────────────┬───────────────────────────────────────────┐ │ 情况 │ 条件 │ process_result │ status_code │ final_result │ ├──────┼─────────────────────────────────────┼────────────────┼─────────────┼───────────────────────────────────────────┤ │ 1 │ 名称+标准号都匹配,现行/试行 │ 状态正常 │ OK │ 无问题 │ ├──────┼─────────────────────────────────────┼────────────────┼─────────────┼───────────────────────────────────────────┤ │ 2 │ 名称+标准号都匹配,废止,有现行替代 │ 状态被替代 │ SUBSTITUTED │ 《标准》(号)已废止,替代《标准》(号) │ ├──────┼─────────────────────────────────────┼────────────────┼─────────────┼───────────────────────────────────────────┤ │ 3 │ 名称+标准号都匹配,废止,无替代 │ 状态废止无现行 │ ABOLISHED │ 《标准》(号)已废止,无现行状态 │ ├──────┼─────────────────────────────────────┼────────────────┼─────────────┼───────────────────────────────────────────┤ │ 4 │ 名称或标准号只有一个匹配 │ 不匹配 │ MISMATCH │ 《提取》(号)与 实际《标准》(号)不匹配 │ ├──────┼─────────────────────────────────────┼────────────────┼─────────────┼───────────────────────────────────────────┤ │ 5 │ 都不匹配 │ 标准库不存在 │ NOT_FOUND │ 《标准》(号)标准库不存在,请确认 │ └──────┴─────────────────────────────────────┴────────────────┴─────────────┴───────────────────────────────────────────┘ - 4、 #### 标准库匹配规则 **1. 开始** * **动作**:查询标准库信息 * **判断**:标准号全匹配? * **分支 A:存在 (Yes)** * **判断**:名称全匹配? * **分支 A1:存在 (Yes)** * **判断**:验证时效性? * **情况 1**:现行、试行 -> **结果**:返回正常 * **情况 2**:废止 * **动作**:根据名称查询最新标准(返回可能多条) * **动作**:遍历每个最新标准记录 * **判断**:是否存在? * **情况 1**:不存在 -> **结果**:返回废止,无现行 * **情况 2**:存在 * **判断**:验证时效性? * **情况 1**:废止都没有找到 -> **结果**:返回废止,无现行 * **情况 2**:现行、试行 -> **结果**:被替代,新的标准号、标准名称 * **分支 A2:不存在 (No)** * **判断**:名称模糊匹配? * **情况 1**:不匹配 -> **结果**:标准号与名称不存在 * **情况 2**:匹配 * **判断**:验证时效性? * **情况 1**:现行、试行 -> **结果**:标准号与名称不匹配,返回最新标准号与名称 * **情况 2**:废止 -> **动作**:查询被替代子流程 * **分支 B:不存在 (No)** * **判断**:标准号模糊查询? * **分支 B1:存在 (Yes)** * **判断**:名称全匹配? * **情况 1**:不匹配 -> **结果**:标准号与名称不存在 * **情况 2**:匹配 * **判断**:验证时效性? * **情况 1**:现行、试行 -> **结果**:标准号与名称不匹配,返回最新标准号与名称 * **情况 2**:废止 -> **动作**:查询被替代子流程 * **分支 B2:不存在 (No)** * **判断**:名称模糊查询? * **情况 1**:不存在 -> **结果**:返回不存在 * **情况 2**:存在 * **判断**:名称全匹配? * **情况 1**:不匹配 -> **结果**:标准号与名称不存在 * **情况 2**:匹配 * **判断**:验证时效性? * **情况 1**:现行、试行 -> **结果**:标准号与名称不匹配(名称匹配,标准不匹配) * **情况 2**:废止 -> **结果**:标准号与名称不存在 #### 废止数据 《电力高处作业防坠器》(DL/T 1147-2009) FZ 《缆索起重机》(GB/T 28756-2012) FZ #### 被替代标准名称和标准号的逻辑说明 - 1、首先根据标准名称和标准号查询状态,如果是废止状态,则根据标准名称查询状态为现行的,则此条标准名称和标准号为被替代标准名称和标准号,并返回被替代标准名称和标准号 - 2、根据标准名称查询时 返回多条标准名称和标准号,再代码里面进行逻辑判断 - 3、根据标准号查询时,返回标准名称,再根据标准名称查询 返回多条标准名称和标准号,再代码里面进行逻辑判断 - 4、类似如下数据: 《起重机 钢丝绳 保养、维护、检验和报废》GB/T 5972-2016 FZ 《起重机 钢丝绳 保养、维护、检验和报废》GB/T 5972-2023 XZ #### 目前测试的编制依据状态 (1)《铁路桥涵设计规范》 (TB 10002-2017) 正常 (2)《铁路工程抗震设计规范》 (GB 50111-2006) 正常 (3)《铁路混凝土工程施工质量验收标准》 (TB 10424-2018) 正常 (4)《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495-2023) 不匹配 《公路水运危险性较大工程专项施工方案编制审查规程》(JT/T 1495-2024) (5)《起重机 钢丝绳 保养、维护、检验和报废》(GB/T 5972-2016) 被替代 《起重机 钢丝绳 保养、维护、检验和报废》(GB/T 5972-2023) (6)《缆索起重机》(GB/T 28756-2012) 废止 (7)《电力高处作业防坠器》(DL/T 1147-2009) 废止 #### 实现逻辑 - 1、查询数据源,目前从MySQL数据库一次查询到所有数据 保存到【标准库数据结构】 - select id , chinese_name , standard_number , validity t_samp_standard_base_info - sql说明 chinese_name 标准名称, standard_number 标准编号, validity 时效性 (XH 现行、试行 SX、 废止 FZ) - - 2、目前主程序中公共组件 - 2.1、代码先临时生成到 utils_test/standard_new_Test目录下,先做单元测试 - dao 数据库操作类 - service 业务操作 - test 单元测试 - 2.2、Mysql 查询公共组件 foundation.database.base.sql.async_mysql_conn_pool.py 公共继承 foundation.database.base.sql.async_mysql_base_dao.py AsyncBaseDAO #### 修正目前的问题 - 1、标准库数据结构 - 序号 - 标准号 - 标准名称 - 时效性 (XH 现行、试行 SX、 废止 FZ) - 2、标准数据来源 - 数据库查询(MySQL),可以一次查询所有 或 筛选 - 3、标准库数据处理在内存中初始化数据结构,通过MySQL一次查询所有数据,然后进行数据处理,处理结果保存在内存中,然后进行数据查询。 - 4、标准库匹配规则 是通过代码匹配标准库数据结构来实现的,而非通过数据库查询来实现,请调整代码逻辑,注意标准库匹配规则的逻辑实现 可维护性,不要在一个函数中写太多的逻辑代码 -- 存在问题的记录 DL/T1147-2018 电力高处作业防坠器 DL/T 1147-2018 《电力高处作业防坠器》 DL/T1147-2009 《电力高处作业防坠器》 DL/T 1147-2009 《电力高处作业防坠器》