1.修改推测的时间
2.修改入库逻辑
This commit is contained in:
@@ -11,24 +11,23 @@ class ConstructionMonitorUtils:
|
||||
def __init__(self):
|
||||
# 原始工况周期映射表(保持不变)
|
||||
self.base_periods = {
|
||||
|
||||
"仰拱(底板)施工完成后,第1个月": 7,
|
||||
"仰拱(底板)施工完成后,第2至3个月": 14,
|
||||
"仰拱(底板)施工完成后,3个月以后": 30,
|
||||
"无砟轨道铺设后,第1至3个月": 30,
|
||||
"无砟轨道铺设后,4至12个月": 90,
|
||||
"无砟轨道铺设后,12个月以后": 180,
|
||||
"墩台施工到一定高度": 30,
|
||||
"墩台混凝土施工": 30,
|
||||
"预制梁桥,架梁前": 30,
|
||||
"预制梁桥,预制梁架设前": 1,
|
||||
"预制梁桥,预制梁架设后": 7,
|
||||
"桥位施工桥梁,制梁前": 30,
|
||||
"桥位施工桥梁,上部结构施工中": 1,
|
||||
"架桥机(运梁车)通过": 7,
|
||||
"桥梁主体工程完工后,第1至3个月": 7, # 包含英文逗号的原始数据
|
||||
"桥梁主体工程完工后,第4至6个月": 14,
|
||||
"桥梁主体工程完工后,6个月以后": 30,
|
||||
"仰拱(底板)施工完成后,第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, # 原:桥位施工桥梁,上部结构施工中
|
||||
"架桥机(运梁车)通过": 7, # 无格式差异,保留原样
|
||||
"桥梁主体工程完工后,第1至3个月": 7, # 原:桥梁主体工程完工后,第1至3个月
|
||||
"桥梁主体工程完工后,第4至6个月": 14, # 原:桥梁主体工程完工后,第4至6个月
|
||||
"桥梁主体工程完工后,6个月以后": 30, # 原:桥梁主体工程完工后,6个月以后
|
||||
"轨道铺设期间,前": 30,
|
||||
"轨道铺设期间,后": 14,
|
||||
"轨道铺设完成后,第1个月": 14,
|
||||
@@ -37,16 +36,16 @@ class ConstructionMonitorUtils:
|
||||
"轨道铺设完成后,12个月以后": 180,
|
||||
"填筑或堆载,一般情况": 1,
|
||||
"填筑或堆载,沉降量突变情况": 1,
|
||||
"填筑或堆载,两次填筑间隔时间较长情况": 3, # 该工况原周期为3天
|
||||
"堆载预压或路基填筑完成,第1至3个月": 7,
|
||||
"堆载预压或路基填筑完成,第4至6个月": 14,
|
||||
"堆载预压或路基填筑完成,6个月以后": 30,
|
||||
"架桥机(运梁车)首次通过前": 1,
|
||||
"架桥机(运梁车)首次通过后,前3天": 1,
|
||||
"架桥机(运梁车)首次通过后": 7,
|
||||
"轨道板(道床)铺设后,第1个月": 14,
|
||||
"轨道板(道床)铺设后,第2至3个月": 30,
|
||||
"轨道板(道床)铺设后,3个月以后": 90
|
||||
"填筑或堆载,两次填筑间隔时间较长情况": 3,
|
||||
"堆载预压或路基填筑完成,第1至3个月": 7, # 原:堆载预压或路基填筑完成,第1至3个月
|
||||
"堆载预压或路基填筑完成,第4至6个月": 14, # 原:堆载预压或路基填筑完成,第4至6个月
|
||||
"堆载预压或路基填筑完成,6个月以后": 30, # 原:堆载预压或路基填筑完成,6个月以后
|
||||
"架桥机(运梁车) 首次通过前": 1, # 原:架桥机(运梁车)首次通过前(仅加空格)
|
||||
"架桥机(运梁车) 首次通过后,前3天": 1, # 原:架桥机(运梁车)首次通过后,前3天
|
||||
"架桥机(运梁车) 首次通过后": 7, # 原:架桥机(运梁车)首次通过后(仅加空格)
|
||||
"轨道板(道床)铺设后,第1个月": 14, # 原:轨道板(道床)铺设后,第1个月
|
||||
"轨道板(道床)铺设后,第2至3个月": 30, # 原:轨道板(道床)铺设后,第2至3个月
|
||||
"轨道板(道床)铺设后,3个月以后": 90 # 未出现在待处理集,保留原始格式
|
||||
}
|
||||
# 构建中英文括号+逗号兼容映射表
|
||||
self.compatible_periods = self._build_compatible_brackets_map()
|
||||
@@ -153,10 +152,10 @@ class ConstructionMonitorUtils:
|
||||
break
|
||||
|
||||
item_copy = copy.deepcopy(latest_item)
|
||||
create_date_val = latest_item.get("createdate")
|
||||
create_date_val = latest_item.get("MTIME_W")
|
||||
if not create_date_val:
|
||||
result["error_data"].append(item_copy)
|
||||
warnings.warn(f"【数据错误】测点{point_idx}的最新数据缺少'createdate'字段", UserWarning)
|
||||
warnings.warn(f"【数据错误】测点{point_idx}的最新数据缺少'MTIME_W'字段", UserWarning)
|
||||
continue
|
||||
|
||||
try:
|
||||
@@ -215,5 +214,9 @@ class ConstructionMonitorUtils:
|
||||
nyid_min_remaining[nyid] = record
|
||||
|
||||
result["data"] = list(nyid_min_remaining.values())
|
||||
|
||||
# logger.warning(f"【数据错误】共发现{len(result['error_data'])}条错误数据")
|
||||
# logger.warning(result)
|
||||
# import json
|
||||
# with open("./error_data.json", "w", encoding="utf-8") as f:
|
||||
# json.dump(result["error_data"], f, ensure_ascii=False, indent=4)
|
||||
return result
|
||||
@@ -230,8 +230,7 @@ def scheduled_get_max_nyid_by_point_id(start: int = 0,end: int = 0):
|
||||
# 核心新增:清空DailyData表所有数据
|
||||
# delete_count = db.query(DailyData).delete()
|
||||
# db.commit()
|
||||
db.execute(text(f"TRUNCATE TABLE {DailyData.__tablename__}"))
|
||||
db.commit() # 必须提交事务
|
||||
|
||||
# logger.info(f"DailyData表清空完成,共删除{delete_count}条历史记录")
|
||||
|
||||
# 1. 获取沉降数据(返回 List[List[dict]])
|
||||
@@ -242,7 +241,6 @@ def scheduled_get_max_nyid_by_point_id(start: int = 0,end: int = 0):
|
||||
monitor = ConstructionMonitorUtils()
|
||||
daily_data = monitor.get_due_data(result,start=start,end=end)
|
||||
print(daily_data)
|
||||
# time.sleep(10000)
|
||||
data = daily_data['data']
|
||||
error_data = daily_data['error_data']
|
||||
|
||||
@@ -257,6 +255,8 @@ def scheduled_get_max_nyid_by_point_id(start: int = 0,end: int = 0):
|
||||
print(max_num)
|
||||
# 提取冬休数据的point_id列表
|
||||
new_list = [int(w['point_id']) for w in winters]
|
||||
if new_list == []:
|
||||
break
|
||||
# 获取更多历史记录
|
||||
nyid_list = daily_service.get_nyid_by_point_id(db, new_list, max_num)
|
||||
w_list = monitor.get_due_data(nyid_list,start=start,end=end)
|
||||
@@ -319,12 +319,17 @@ def scheduled_get_max_nyid_by_point_id(start: int = 0,end: int = 0):
|
||||
nyids.append(d['NYID'])
|
||||
daily_create_data.append(tem)
|
||||
# 批量创建记录
|
||||
print(daily_create_data)
|
||||
if daily_create_data:
|
||||
db.execute(text(f"TRUNCATE TABLE {DailyData.__tablename__}"))
|
||||
db.commit() # 必须提交事务
|
||||
# with open('data.json', 'w', encoding='utf-8') as f:
|
||||
# json.dump(daily_create_data, f, ensure_ascii=False, indent=4)
|
||||
created_records = daily_service.batch_create_by_account_nyid(db, daily_create_data)
|
||||
logger.info(f"定时任务完成:成功创建{len(created_records)}条DailyData记录,共处理{len(data)}个point_id数据")
|
||||
else:
|
||||
db.execute(text(f"TRUNCATE TABLE {DailyData.__tablename__}"))
|
||||
db.commit() # 必须提交事务
|
||||
logger.warning("定时任务完成:无有效数据可创建DailyData记录")
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user