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}") |