93 lines
4.4 KiB
Python
93 lines
4.4 KiB
Python
|
|
"""
|
|||
|
|
API接口
|
|||
|
|
"""
|
|||
|
|
import sys
|
|||
|
|
import os
|
|||
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|||
|
|
import time
|
|||
|
|
from busisness.blls import ArtifactBll,PDRecordBll
|
|||
|
|
from busisness.models import ArtifactInfoModel,PDRecordModel
|
|||
|
|
from service.mould_service import app_web_service
|
|||
|
|
|
|||
|
|
|
|||
|
|
_model_task=None
|
|||
|
|
artifact_bll=ArtifactBll()
|
|||
|
|
pdrecord_bll=PDRecordBll()
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
try:
|
|||
|
|
# 初始化三个列表用于跟踪ArtifactActionID
|
|||
|
|
processed_artifact_actions = [] # 已处理的ArtifactActionID列表
|
|||
|
|
processed_pd_records = [] # 已插入PDRecord表的ArtifactActionID列表
|
|||
|
|
|
|||
|
|
# db = SQLiteHandler.get_instance("db/three.db", max_readers=50, busy_timeout=4000)
|
|||
|
|
while True:
|
|||
|
|
# 测试获取未浇筑管片信息
|
|||
|
|
try:
|
|||
|
|
not_poured = app_web_service.get_not_pour_artifacts()
|
|||
|
|
if not_poured:
|
|||
|
|
for item in reversed(not_poured):
|
|||
|
|
# 检查MouldCode是否已处理
|
|||
|
|
if item.MouldCode in processed_artifact_actions:
|
|||
|
|
print(f"待浇筑:MouldCode {item.MouldCode} 已处理,跳过")
|
|||
|
|
continue
|
|||
|
|
|
|||
|
|
_model_data = ArtifactInfoModel(**item.__dict__)
|
|||
|
|
artifact_bll.insert_artifact_task(_model_data)
|
|||
|
|
# 标记为已处理
|
|||
|
|
processed_artifact_actions.append(item.MouldCode)
|
|||
|
|
# 限制最多保存3条记录,删除最旧的
|
|||
|
|
if len(processed_artifact_actions) > 3:
|
|||
|
|
processed_artifact_actions.pop(0)
|
|||
|
|
print(f"待浇筑:已处理MouldCode {item.MouldCode}")
|
|||
|
|
|
|||
|
|
if item.MouldCode in processed_pd_records:
|
|||
|
|
print(f"派单:MouldCode {item.MouldCode} 已处理,跳过")
|
|||
|
|
continue
|
|||
|
|
|
|||
|
|
if item.BetonTaskID is not None and item.BetonTaskID != '':
|
|||
|
|
#获取taskid
|
|||
|
|
if _model_task is None or item.BetonTaskID != _model_task.TaskID:
|
|||
|
|
_model_task = app_web_service.get_task_info(item.BetonTaskID)
|
|||
|
|
if _model_task is None:
|
|||
|
|
print(f"异常:BetonTaskID {item.BetonTaskID} 不存在,跳过")
|
|||
|
|
continue
|
|||
|
|
|
|||
|
|
_pd_record_data = PDRecordModel(
|
|||
|
|
ArtifactID=item.ArtifactID,
|
|||
|
|
TaskID=_model_task.TaskID,
|
|||
|
|
ProjectName=_model_task.ProjectName,
|
|||
|
|
ProduceMixID=_model_task.ProduceMixID,
|
|||
|
|
BetonGrade=_model_task.BetonGrade,
|
|||
|
|
BetonVolume=item.BetonVolume,
|
|||
|
|
MouldCode=item.MouldCode,
|
|||
|
|
SkeletonID=item.SkeletonID,
|
|||
|
|
RingTypeCode=item.RingTypeCode,
|
|||
|
|
SizeSpecification=item.SizeSpecification,
|
|||
|
|
BuriedDepth=item.BuriedDepth,
|
|||
|
|
BlockNumber=item.BlockNumber
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
pdrecord_bll.insert_PD_record(_pd_record_data)
|
|||
|
|
# 标记为已处理
|
|||
|
|
processed_pd_records.append(item.MouldCode)
|
|||
|
|
# 限制最多保存3条记录,删除最旧的
|
|||
|
|
if len(processed_pd_records) > 3:
|
|||
|
|
processed_pd_records.pop(0)
|
|||
|
|
print(f"派单:已处理MouldCode {item.MouldCode}")
|
|||
|
|
else:
|
|||
|
|
print(f"异常:MouldCode {item.MouldCode} 无BetonTaskID,跳过")
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"处理MouldCode {item.MouldCode} 时发生错误: {e}")
|
|||
|
|
|
|||
|
|
time.sleep(5)
|
|||
|
|
except KeyboardInterrupt:
|
|||
|
|
|
|||
|
|
print("\n测试被用户中断")
|
|||
|
|
except Exception as e:
|
|||
|
|
|
|||
|
|
print(f"测试过程中发生错误: {e}")
|