diff --git a/main.py b/main.py index f07040f..59122bb 100644 --- a/main.py +++ b/main.py @@ -15,6 +15,12 @@ from config.settings import ( ) from utils.helpers import cleanup_old_timestamps +# 假设同事提供的函数 +def save_to_custom_table(misid, flag, task_id, produce_mix_id, project_name, beton_grade, adjusted_volume, artifact_id): + """保存到自定义数据表的函数""" + # 这里应该是同事提供的实际实现 + print(f"保存到自定义数据表: MISID={misid}, Flag={flag}, TaskID={task_id}, 调整后方量={adjusted_volume}") + def start_api_service(): """启动配比重量API服务""" api = MixWeightAPI() @@ -83,26 +89,18 @@ def main(): # 步骤5:连接SQL Server数据库并插入数据 sql_db = SQLServerDB() try: - # 准备插入数据 - insert_data = { - "ErpID": erp_id, - "Code": task_info["TaskID"], - "DatTim": datetime.now(), - "Recipe": task_info["ProduceMixID"], - "MorRec": "", - "ProdMete": task["beton_volume"], - "MorMete": 0.0, - "TotVehs": 0, - "TotMete": task_info["PlannedVolume"], - "Qualitor": "", - "Acceptor": "", - "Attamper": "", - "Flag": "1", - "Note": "" - } + # 检查 block_number 是否为 "补方" + if task["block_number"] == "补方": + print(f"任务 {task['artifact_id']} 的 block_number 为 '补方',跳过派单") + task_service.insert_into_produce_table(sql_db, task_info, task["beton_volume"], erp_id, + task["artifact_id"], 0) + continue - sql_db.insert_produce_data(insert_data) - print(f"数据已成功插入到Produce表中,ERP ID: {erp_id}") + print(f"处理新任务: {task['artifact_id']}") + + # 步骤3:获取任务单信息 + task_service.insert_into_produce_table(sql_db, task_info, task["beton_volume"], erp_id, + task["artifact_id"], 1) finally: sql_db.close() diff --git a/services/monitoring_service.py b/services/monitoring_service.py index 248838a..c02059b 100644 --- a/services/monitoring_service.py +++ b/services/monitoring_service.py @@ -114,7 +114,7 @@ class MonitoringService: # 调用同事提供的状态更新函数 try: print(1) - # update_custom_table_status(erp_id, "未进行生产") + update_custom_table_status(erp_id, "未进行生产") except Exception as e: print(f"更新状态时出错: {e}") @@ -134,7 +134,7 @@ class MonitoringService: # 调用同事提供的状态更新函数 try: print(2) - # update_custom_table_status(erp_id, "正在生产中") + update_custom_table_status(erp_id, "正在生产中") except Exception as e: print(f"更新状态时出错: {e}") @@ -158,7 +158,7 @@ class MonitoringService: # 调用同事提供的状态更新函数 try: print(3) - # update_custom_table_status(erp_id, "生产完毕") + update_custom_table_status(erp_id, "生产完毕") except Exception as e: print(f"更新状态时出错: {e}") @@ -182,7 +182,7 @@ class MonitoringService: # 调用同事提供的状态更新函数 try: print(4) - # update_custom_table_status(erp_id, "生产中断") + update_custom_table_status(erp_id, "生产中断") except Exception as e: print(f"更新状态时出错: {e}") diff --git a/services/task_service.py b/services/task_service.py index 4e8770b..00da6a9 100644 --- a/services/task_service.py +++ b/services/task_service.py @@ -301,3 +301,66 @@ class TaskService: for artifact_id in current_artifact_ids: if artifact_id not in self.artifact_timestamps: self.artifact_timestamps[artifact_id] = datetime.now() + + def insert_into_produce_table(self, connection, task_info, beton_volume, erp_id, artifact_id, status): + """插入数据到Produce表""" + sql_db = SQLServerDB() + if status == "1": + # 准备插入数据 + insert_data = { + "ErpID": erp_id, + "Code": task_info["TaskID"], + "DatTim": datetime.now(), + "Recipe": task_info["ProduceMixID"], + "MorRec": "", + "ProdMete": beton_volume, + "MorMete": 0.0, # 砂浆方量,根据实际需求填写 + "TotVehs": 0, # 累计车次,根据实际需求填写 + "TotMete": task_info["PlannedVolume"], # 累计方量 + "Qualitor": "", # 质检员,根据实际需求填写 + "Acceptor": "", # 现场验收,根据实际需求填写 + "Attamper": "", # 调度员,根据实际需求填写 + "Flag": "1", # 标识,根据实际需求填写 + "Note": "" # 备注,根据实际需求填写 + } + + sql_db.insert_produce_data(insert_data) + print(f"数据已成功插入到Produce表中,ERP ID: {erp_id}") + + # 调用同事提供的保存函数,将数据保存到自定义数据表 + try: + # 假设同事提供的函数名为 save_to_custom_table + # 参数包括: MISID(即erp_id), Flag, TaskID, ProduceMixID, ProjectName, BetonGrade, 调整后的方量 + save_to_custom_table( + misid=erp_id, + flag="1", # 初始Flag值 + task_id=task_info["TaskID"], + produce_mix_id=task_info["ProduceMixID"], + project_name=task_info["ProjectName"], + beton_grade=task_info["BetonGrade"], + adjusted_volume=beton_volume, + artifact_id=artifact_id + # 已经调整后的方量 + ) + print(f"任务 {erp_id} 的数据已保存到自定义数据表") + except Exception as e: + print(f"调用保存函数时出错: {e}") + + return erp_id + else: + try: + # 假设同事提供的函数名为 save_to_custom_table + # 参数包括: MISID(即erp_id), Flag, TaskID, ProduceMixID, ProjectName, BetonGrade, 调整后的方量 + save_to_custom_table( + misid=erp_id, + flag="1", # 初始Flag值 + task_id=task_info["TaskID"], + produce_mix_id=task_info["ProduceMixID"], + project_name=task_info["ProjectName"], + beton_grade=task_info["BetonGrade"], + adjusted_volume=beton_volume, + artifact_id=artifact_id + ) + print(f"任务 {erp_id} 的数据已保存到自定义数据表") + except Exception as e: + print(f"调用保存函数时出错: {e}")