1.推测工况修改

2.测点数据接口修改
This commit is contained in:
whm
2025-11-29 04:24:32 +08:00
parent c82c4b1dbe
commit 2263c8231f
4 changed files with 76 additions and 48 deletions

View File

@@ -11,69 +11,90 @@ class ConstructionMonitorUtils:
def __init__(self):
# 原始工况周期映射表(保持不变)
self.base_periods = {
"仰拱(底板)施工完成后第1个月": 7,
"仰拱(底板)施工完成后第2至3个月": 14,
"仰拱(底板)施工完成后3个月以后": 30,
"无砟轨道铺设后第1至3个月": 30,
"无砟轨道铺设后4至12个月": 90,
"无砟轨道铺设后12个月以后": 180,
"仰拱(底板)施工完成后,第1个月": 7,
"仰拱(底板)施工完成后,第2至3个月": 14,
"仰拱(底板)施工完成后,3个月以后": 30,
"无砟轨道铺设后,第1至3个月": 30,
"无砟轨道铺设后,4至12个月": 90,
"无砟轨道铺设后,12个月以后": 180,
"墩台施工到一定高度": 30,
"墩台混凝土施工": 30,
"预制梁桥架梁前": 30,
"预制梁桥预制梁架设前": 1,
"预制梁桥预制梁架设后": 7,
"桥位施工桥梁制梁前": 30,
"桥位施工桥梁上部结构施工中": 1,
"预制梁桥,架梁前": 30,
"预制梁桥,预制梁架设前": 1,
"预制梁桥,预制梁架设后": 7,
"桥位施工桥梁,制梁前": 30,
"桥位施工桥梁,上部结构施工中": 1,
"架桥机(运梁车)通过": 7,
"桥梁主体工程完工后,第1至3个月": 7, # 包含英文逗号的原始数据
"桥梁主体工程完工后第4至6个月": 14,
"桥梁主体工程完工后6个月以后": 30,
"轨道铺设期间": 30,
"轨道铺设期间": 14,
"轨道铺设完成后第1个月": 14,
"轨道铺设完成后2至3个月": 30,
"轨道铺设完成后4至12个月": 90,
"轨道铺设完成后12个月以后": 180,
"填筑或堆载一般情况": 1,
"填筑或堆载沉降量突变情况": 1,
"填筑或堆载两次填筑间隔时间较长情况": 3, # 该工况原周期为3天
"堆载预压或路基填筑完成第1至3个月": 7,
"堆载预压或路基填筑完成第4至6个月": 14,
"堆载预压或路基填筑完成6个月以后": 30,
"桥梁主体工程完工后,第4至6个月": 14,
"桥梁主体工程完工后,6个月以后": 30,
"轨道铺设期间,": 30,
"轨道铺设期间,": 14,
"轨道铺设完成后,第1个月": 14,
"轨道铺设完成后,2至3个月": 30,
"轨道铺设完成后,4至12个月": 90,
"轨道铺设完成后,12个月以后": 180,
"填筑或堆载,一般情况": 1,
"填筑或堆载,沉降量突变情况": 1,
"填筑或堆载,两次填筑间隔时间较长情况": 3, # 该工况原周期为3天
"堆载预压或路基填筑完成,第1至3个月": 7,
"堆载预压或路基填筑完成,第4至6个月": 14,
"堆载预压或路基填筑完成,6个月以后": 30,
"架桥机(运梁车)首次通过前": 1,
"架桥机(运梁车)首次通过后前3天": 1,
"架桥机(运梁车)首次通过后,前3天": 1,
"架桥机(运梁车)首次通过后": 7,
"轨道板(道床)铺设后第1个月": 14,
"轨道板(道床)铺设后第2至3个月": 30,
"轨道板(道床)铺设后3个月以后": 90,
"架桥机(运梁车) 首次通过后": 7,
"架桥机(运梁车) 首次通过前": 1,
"轨道板(道床)铺设后,第1个月": 14,
"轨道板(道床)铺设后,第2至3个月": 30,
"轨道板(道床)铺设后,3个月以后": 90
}
# 构建中英文括号+逗号兼容映射表
self.compatible_periods = self._build_compatible_brackets_map()
def _build_compatible_brackets_map(self) -> Dict[str, int]:
"""构建支持中英文括号、中英文逗号的兼容映射表"""
"""构建支持中英文括号、中英文逗号,且忽略所有空格的兼容映射表"""
compatible_map = {}
for original_key, period in self.base_periods.items():
# 1. 保留原始key
# ========== 第一步处理原始key的空格和符号生成基础变体 ==========
# 1. 清洗空格:去除首尾+全角空格+合并连续空格+最终删除所有空格
key_no_space = original_key.strip().replace(" ", " ").replace(" ", " ").replace(" ", "")
# 2. 原始key未清洗空格
compatible_map[original_key] = period
# 2. 生成中文括号版key
# 3. 无空格的原始符号key
if key_no_space not in compatible_map:
compatible_map[key_no_space] = period
# ========== 第二步:生成中文括号变体(含空格/无空格) ==========
# 带空格的中文括号key
chinese_bracket_key = original_key.replace("(", "").replace(")", "")
if chinese_bracket_key != original_key:
if chinese_bracket_key != original_key and chinese_bracket_key not in compatible_map:
compatible_map[chinese_bracket_key] = period
# 3. 生成英文逗号转中文逗号版key
# 无空格的中文括号key
chinese_bracket_no_space = key_no_space.replace("(", "").replace(")", "")
if chinese_bracket_no_space not in compatible_map:
compatible_map[chinese_bracket_no_space] = period
# ========== 第三步:生成中文逗号变体(含空格/无空格) ==========
# 带空格的中文逗号key
chinese_comma_key = original_key.replace(",", "")
if chinese_comma_key != original_key:
if chinese_comma_key != original_key and chinese_comma_key not in compatible_map:
compatible_map[chinese_comma_key] = period
# 4. 生成中文括号+中文逗号混合版key
# 无空格的中文逗号key
chinese_comma_no_space = key_no_space.replace(",", "")
if chinese_comma_no_space not in compatible_map:
compatible_map[chinese_comma_no_space] = period
# ========== 第四步:生成中文括号+逗号混合变体(含空格/无空格) ==========
# 带空格的混合变体key
mixed_key = chinese_bracket_key.replace(",", "")
if mixed_key != original_key and mixed_key not in compatible_map:
compatible_map[mixed_key] = period
# 无空格的混合变体key
mixed_no_space = chinese_bracket_no_space.replace(",", "")
if mixed_no_space not in compatible_map:
compatible_map[mixed_no_space] = period
return compatible_map
def get_due_data(self, input_data: List[List[Dict]], start: int = 0, end: int = 0, current_date: datetime = None) -> Dict[str, List[Dict]]: