修正接口故障时程序报错的问题
This commit is contained in:
@ -24,6 +24,10 @@ class TaskService:
|
||||
def process_not_pour_info(self):
|
||||
"""处理未浇筑信息"""
|
||||
artifact_list = self.api_client.get_not_pour_info()
|
||||
|
||||
# 如果API调用失败,返回空列表而不是抛出异常
|
||||
if artifact_list is None:
|
||||
return [], [], [], self.half_volume
|
||||
|
||||
if not artifact_list:
|
||||
return [], [], [], self.half_volume
|
||||
@ -37,8 +41,12 @@ class TaskService:
|
||||
|
||||
# 处理当前任务
|
||||
current_task = self._process_current_task(artifact_list[0])
|
||||
|
||||
# 如果获取任务信息失败,则返回空结果
|
||||
if current_task is None:
|
||||
return [], [], [], self.half_volume
|
||||
|
||||
# 根据F块情况处理任务
|
||||
# 根据F块情况处理任务
|
||||
task_result = self._handle_tasks_by_f_blocks(
|
||||
f_block_count, f_positions, current_task,
|
||||
f_blocks, total_f_volume, artifact_list
|
||||
@ -69,6 +77,11 @@ class TaskService:
|
||||
def _process_current_task(self, latest_artifact):
|
||||
"""处理当前任务信息"""
|
||||
task_data = self.api_client.get_task_info(latest_artifact["BetonTaskID"])
|
||||
|
||||
# 如果API调用失败,返回None
|
||||
if task_data is None:
|
||||
return None
|
||||
|
||||
return {
|
||||
"beton_task_id": latest_artifact["BetonTaskID"],
|
||||
"beton_volume": latest_artifact["BetonVolume"],
|
||||
@ -252,27 +265,31 @@ class TaskService:
|
||||
|
||||
if second_task:
|
||||
task_data_second = self.api_client.get_task_info(second_task["BetonTaskID"])
|
||||
send_list.append({
|
||||
"beton_task_id": second_task["BetonTaskID"],
|
||||
"beton_volume": volumes[0],
|
||||
"artifact_id": second_task["ArtifactActionID"],
|
||||
"block_number": second_task["BlockNumber"],
|
||||
"beton_grade": task_data_second["BetonGrade"],
|
||||
"mix_id": task_data_second["MixID"],
|
||||
"time": self.artifact_timestamps.get(second_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
# 如果获取任务信息失败,跳过该任务
|
||||
if task_data_second is not None:
|
||||
send_list.append({
|
||||
"beton_task_id": second_task["BetonTaskID"],
|
||||
"beton_volume": volumes[0],
|
||||
"artifact_id": second_task["ArtifactActionID"],
|
||||
"block_number": second_task["BlockNumber"],
|
||||
"beton_grade": task_data_second["BetonGrade"],
|
||||
"mix_id": task_data_second["MixID"],
|
||||
"time": self.artifact_timestamps.get(second_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
|
||||
if third_task:
|
||||
task_data_third = self.api_client.get_task_info(third_task["BetonTaskID"])
|
||||
send_list.append({
|
||||
"beton_task_id": third_task["BetonTaskID"],
|
||||
"beton_volume": volumes[1],
|
||||
"artifact_id": third_task["ArtifactActionID"],
|
||||
"block_number": third_task["BlockNumber"],
|
||||
"beton_grade": task_data_third["BetonGrade"],
|
||||
"mix_id": task_data_third["MixID"],
|
||||
"time": self.artifact_timestamps.get(third_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
# 如果获取任务信息失败,跳过该任务
|
||||
if task_data_third is not None:
|
||||
send_list.append({
|
||||
"beton_task_id": third_task["BetonTaskID"],
|
||||
"beton_volume": volumes[1],
|
||||
"artifact_id": third_task["ArtifactActionID"],
|
||||
"block_number": third_task["BlockNumber"],
|
||||
"beton_grade": task_data_third["BetonGrade"],
|
||||
"mix_id": task_data_third["MixID"],
|
||||
"time": self.artifact_timestamps.get(third_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
|
||||
def _append_additional_tasks_for_single_f(self, send_list, artifact_list, f_positions):
|
||||
"""为单个F块情况添加额外任务"""
|
||||
@ -281,30 +298,34 @@ class TaskService:
|
||||
|
||||
if second_task:
|
||||
task_data_second = self.api_client.get_task_info(second_task["BetonTaskID"])
|
||||
volume = (third_task["BetonVolume"] if third_task else 0) if f_positions != [2] else (
|
||||
second_task["BetonVolume"] + self.half_volume[1])
|
||||
send_list.append({
|
||||
"beton_task_id": second_task["BetonTaskID"],
|
||||
"beton_volume": volume,
|
||||
"artifact_id": second_task["ArtifactActionID"],
|
||||
"block_number": second_task["BlockNumber"],
|
||||
"beton_grade": task_data_second["BetonGrade"],
|
||||
"mix_id": task_data_second["MixID"],
|
||||
"time": self.artifact_timestamps.get(second_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
# 如果获取任务信息失败,跳过该任务
|
||||
if task_data_second is not None:
|
||||
volume = (third_task["BetonVolume"] if third_task else 0) if f_positions != [2] else (
|
||||
second_task["BetonVolume"] + self.half_volume[1])
|
||||
send_list.append({
|
||||
"beton_task_id": second_task["BetonTaskID"],
|
||||
"beton_volume": volume,
|
||||
"artifact_id": second_task["ArtifactActionID"],
|
||||
"block_number": second_task["BlockNumber"],
|
||||
"beton_grade": task_data_second["BetonGrade"],
|
||||
"mix_id": task_data_second["MixID"],
|
||||
"time": self.artifact_timestamps.get(second_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
|
||||
if third_task:
|
||||
task_data_third = self.api_client.get_task_info(third_task["BetonTaskID"])
|
||||
volume = third_task["BetonVolume"] if f_positions in [[1], [0]] else 0
|
||||
send_list.append({
|
||||
"beton_task_id": third_task["BetonTaskID"],
|
||||
"beton_volume": volume,
|
||||
"artifact_id": third_task["ArtifactActionID"],
|
||||
"block_number": third_task["BlockNumber"],
|
||||
"beton_grade": task_data_third["BetonGrade"],
|
||||
"mix_id": task_data_third["MixID"],
|
||||
"time": self.artifact_timestamps.get(third_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
# 如果获取任务信息失败,跳过该任务
|
||||
if task_data_third is not None:
|
||||
volume = third_task["BetonVolume"] if f_positions in [[1], [0]] else 0
|
||||
send_list.append({
|
||||
"beton_task_id": third_task["BetonTaskID"],
|
||||
"beton_volume": volume,
|
||||
"artifact_id": third_task["ArtifactActionID"],
|
||||
"block_number": third_task["BlockNumber"],
|
||||
"beton_grade": task_data_third["BetonGrade"],
|
||||
"mix_id": task_data_third["MixID"],
|
||||
"time": self.artifact_timestamps.get(third_task["ArtifactActionID"], datetime.now())
|
||||
})
|
||||
|
||||
def _update_artifact_timestamps(self, send_list):
|
||||
"""更新artifact时间戳"""
|
||||
@ -431,4 +452,3 @@ class TaskService:
|
||||
except Exception as e:
|
||||
print(f"发送状态更新到另一台电脑时出错: {e}")
|
||||
print(f"原计划更新自定义数据表状态: ERP ID={erp_id}, 状态={status}")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user