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