diff --git a/app/utils/construction_monitor.py b/app/utils/construction_monitor.py index 16b78ac..ace84ad 100644 --- a/app/utils/construction_monitor.py +++ b/app/utils/construction_monitor.py @@ -4,42 +4,43 @@ import warnings import copy # 注意:根据实际项目路径调整导入,若本地测试可注释掉 from ..core.logging_config import get_logger - +import json logger = get_logger(__name__) class ConstructionMonitorUtils: def __init__(self): # 原始工况周期映射表(保持不变) self.base_periods = { - "仰拱(底板)施工完成后,第1个月": 7, # 原:仰拱(底板)施工完成后,第1个月 - "仰拱(底板)施工完成后,第2至3个月": 14, # 原:仰拱(底板)施工完成后,第2至3个月 - "仰拱(底板)施工完成后,3个月以后": 30, # 原:仰拱(底板)施工完成后,3个月以后 - "无砟轨道铺设后,第1至3个月": 30, # 原:无砟轨道铺设后,第1至3个月 - "无砟轨道铺设后,4至12个月": 90, # 原:无砟轨道铺设后,4至12个月 - "无砟轨道铺设后,12个月以后": 180, # 原:无砟轨道铺设后,12个月以后 + "仰拱(底板)施工完成后,第1个月": 7, # 原:仰拱(底板)施工完成后,第1个月 + "仰拱(底板)施工完成后,第2至3个月": 14, # 原:仰拱(底板)施工完成后,第2至3个月 + "仰拱(底板)施工完成后,3个月以后": 30, # 原:仰拱(底板)施工完成后,3个月以后 + "无砟轨道铺设后,第1至3个月": 30, # 原:无砟轨道铺设后,第1至3个月 + "无砟轨道铺设后,4至12个月": 90, # 原:无砟轨道铺设后,4至12个月 + "无砟轨道铺设后,12个月以后": 180, # 原:无砟轨道铺设后,12个月以后 "墩台施工到一定高度": 30, # 无格式差异,保留原样 "墩台混凝土施工": 30, # 无格式差异,保留原样 - "预制梁桥,架梁前": 30, # 原:预制梁桥,架梁前 - "预制梁桥,预制梁架设前": 1, # 原:预制梁桥,预制梁架设前 - "预制梁桥,预制梁架设后": 7, # 原:预制梁桥,预制梁架设后 - "桥位施工桥梁,制梁前": 30, # 原:桥位施工桥梁,制梁前 - "桥位施工桥梁,上部结构施工中": 1, # 原:桥位施工桥梁,上部结构施工中 + "预制梁桥,架梁前": 30, # 原:预制梁桥,架梁前 + "预制梁桥,预制梁架设前": 1, # 原:预制梁桥,预制梁架设前 + "预制梁桥,预制梁架设后": 7, # 原:预制梁桥,预制梁架设后 + "桥位施工桥梁,制梁前": 30, # 原:桥位施工桥梁,制梁前 + "桥位施工桥梁,上部结构施工中": 1, # 原:桥位施工桥梁,上部结构施工中 "架桥机(运梁车)通过": 7, # 无格式差异,保留原样 "桥梁主体工程完工后,第1至3个月": 7, # 原:桥梁主体工程完工后,第1至3个月 - "桥梁主体工程完工后,第4至6个月": 14, # 原:桥梁主体工程完工后,第4至6个月 - "桥梁主体工程完工后,6个月以后": 30, # 原:桥梁主体工程完工后,6个月以后 - "轨道铺设期间,前": 30, - "轨道铺设期间,后": 14, - "轨道铺设完成后,第1个月": 14, - "轨道铺设完成后,2至3个月": 30, - "轨道铺设完成后,4至12个月": 90, - "轨道铺设完成后,12个月以后": 180, - "填筑或堆载,一般情况": 1, - "填筑或堆载,沉降量突变情况": 1, - "填筑或堆载,两次填筑间隔时间较长情况": 3, - "堆载预压或路基填筑完成, 第1至3个月":7, # 原:堆载预压或路基填筑完成,第1至3个月 + "桥梁主体工程完工后,第4至6个月": 14, # 原:桥梁主体工程完工后,第4至6个月 + "桥梁主体工程完工后,6个月以后": 30, # 原:桥梁主体工程完工后,6个月以后 '' + "轨道铺设期间,前": 30, + "轨道铺设期间,后": 14, + "轨道铺设完成后,第1个月": 14, + "轨道铺设完成后,2至3个月": 30, + "轨道铺设完成后,4至12个月": 90, + "轨道铺设完成后,12个月以后": 180, + "铺路或堆载,一般情况": 1, + "铺路或堆载,沉降量突变情况": 1, + "填筑或堆载,两次填筑间隔时间较长情况":3, + "铺路或堆载,两次铺路间隔时间较长情况": 3, + "堆载预压或路基填筑完成, 第1至3个月":7, # 原:堆载预压或路基铺路完成,第1至3个月 "堆载预压或路基填筑完成,第4至6个月": 14, # 原:堆载预压或路基铺路完成,第4至6个月 - " 堆载预压或路基填筑完成,6个月以后": 30, # 原:堆载预压或路基铺路完成,6个月以后 + "堆载预压或路基填筑完成,6个月以后": 30, # 原:堆载预压或路基铺路完成,6个月以后 "架桥机(运梁车) 首次通过前": 1, # 原:架桥机(运梁车)首次通过前(仅加空格) "架桥机(运梁车) 首次通过后,前3天": 1, # 原:架桥机(运梁车)首次通过后,前3天 "架桥机(运梁车) 首次通过后": 7, # 原:架桥机(运梁车)首次通过后(仅加空格) @@ -130,6 +131,9 @@ class ConstructionMonitorUtils: if latest_condition != "冬休": if latest_condition not in self.compatible_periods: result["error_data"].append(latest_item) + with open("error_data.txt", "a", encoding="utf-8") as f: + json.dump(latest_condition, f, ensure_ascii=False, indent=4) + f.write("\n") warnings.warn(f"【数据错误】测点{point_idx}最新数据存在未定义工况: {latest_condition}", UserWarning) continue base_condition = latest_condition @@ -144,6 +148,9 @@ class ConstructionMonitorUtils: if history_condition != "冬休": if history_condition not in self.compatible_periods: result["error_data"].append(history_item) + with open("error_data.txt", "a", encoding="utf-8") as f: + json.dump(history_condition, f, ensure_ascii=False, indent=4) + f.write("\n") warnings.warn(f"【数据错误】测点{point_idx}历史数据存在未定义工况: {history_condition}", UserWarning) base_condition = None break