Commit b6382451 authored by 张晓彤's avatar 张晓彤

定铲派车写入分离

parent 50748bf6
......@@ -16,6 +16,7 @@ from equipment import TruckInfo, ExcavatorInfo, DumpInfo
from core.schedule import PreSchedule
import json
import uuid
from tables import session_mysql, session_postgre
import numpy as np
from datetime import datetime, timedelta
......@@ -115,120 +116,106 @@ class DispatchSubmission:
record = {"truckId": truck_id}
task = self.truck.get_truck_current_task()[truck_id]
except Exception as es:
self.logger.error("调度结果写入异常-读取矿卡信息异常(uuid, group id, task)")
self.logger.error(es)
if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地
# 查询车辆相关派车计划
try:
dump_id = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
item = (session_mysql.query(DispatchSetting).filter_by(dump_id=dump_id, group_id=group_id,
isdeleted=0, ).first())
if item is None:
raise Exception("调度计划配置异常")
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
try:
group_mode = DispatchInfo.get_group_mode(group_id)
except Exception as es:
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first())
self.logger.error(es)
except Exception as es:
self.logger.error("调度模式读取异常")
self.logger.error(es)
group_mode = 3
# # 调度目的地写入
# try:
# if dispatch_seq[0] is None:
# raise Exception("调度计划表与实时监控不匹配")
# record["dumpId"] = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
# record["unloadAreaId"] = dispatch_seq[1]
# except Exception as es:
# # item = (session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first())
# record["dumpId"] = item.dump_id
# record["unloadAreaId"] = item.unload_area_id
# self.logger.error(es)
# 其余调度信息写入
if group_mode == 3:
try:
# record["dispatchId"] = item.id
record["dispatchId"] = str(uuid.uuid1())
item = session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first()
record["dispatchId"] = item.id
record["exactorId"] = item.exactor_id
record["loadAreaId"] = item.load_area_id
record["dumpId"] = item.dump_id
record["loadAreaId"] = item.load_area_id
record["unloadAreaId"] = item.unload_area_id
record["groupId"] = group_id
record["groupId"] = item.group_id
record["isdeleted"] = False
record["isTemp"] = False
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
self.logger.info("调度结果")
self.logger.info(record)
except Exception as es:
self.logger.error("调度结果写入异常-矿卡空载")
self.logger.error(es)
session_postgre.rollback()
session_mysql.rollback()
finally:
redis5.set(truck_id, str(json.dumps(record)))
else:
elif task in [3, 4, 5]: # 卡车重载或在卸载区出场前, 可变更装载目的地
if task in [0, 1, 2]: # 卡车空载或在装载区出场前, 可变更卸载目的地
# 查询车辆相关派车计划
try:
item = (session_mysql.query(DispatchSetting).filter_by(exactor_id=dispatch_seq[0], group_id=group_id,
isdeleted=0, ).first())
if item is None:
raise Exception("调度计划配置异常")
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
except Exception as es:
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first())
self.logger.error(es)
# 查询车辆相关派车计划
try:
dump_id = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
item = (session_mysql.query(DispatchSetting).filter_by(dump_id=dump_id, group_id=group_id,
isdeleted=0, ).first())
# # 调度目的地写入
# try:
# if dispatch_seq[0] is None:
# raise Exception("调度计划表与实时监控不匹配")
# record["exactorId"] = dispatch_seq[0]
# record["loadAreaId"] = DispatchInfo.excavator_load_dict[dispatch_seq[0]]
# except Exception as es:
# # item = (session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first())
# record["exactorId"] = item.exactor_id
# record["loadAreaId"] = item.load_area_id
# self.logger.error(es)
# 调度信息写入
try:
# record["dispatchId"] = item.id
record["dispatchId"] = str(uuid.uuid1())
record["exactorId"] = item.exactor_id
record["loadAreaId"] = item.load_area_id
record["dumpId"] = item.dump_id
record["unloadAreaId"] = item.unload_area_id
record["groupId"] = group_id
record["isdeleted"] = False
record["isTemp"] = False
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
if item is None:
raise Exception("调度计划配置异常")
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
self.logger.info(f'redis 注入 {record}')
except Exception as es:
self.logger.error("调度结果写入异常-矿卡重载")
finally:
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es:
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first())
self.logger.error(es)
elif task == -2:
try:
# # 调度目的地写入
# try:
# if dispatch_seq[0] is None:
# raise Exception("调度计划表与实时监控不匹配")
# record["dumpId"] = DispatchInfo.unload_area_dump_dict[dispatch_seq[1]]
# record["unloadAreaId"] = dispatch_seq[1]
# except Exception as es:
# # item = (session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first())
# record["dumpId"] = item.dump_id
# record["unloadAreaId"] = item.unload_area_id
# self.logger.error(es)
# 其余调度信息写入
try:
# record["dispatchId"] = item.id
record["dispatchId"] = str(uuid.uuid1())
record["exactorId"] = item.exactor_id
record["loadAreaId"] = item.load_area_id
record["dumpId"] = item.dump_id
record["unloadAreaId"] = item.unload_area_id
record["groupId"] = group_id
record["isdeleted"] = False
record["isTemp"] = False
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
except Exception as es:
self.logger.error("调度结果写入异常-矿卡空载")
self.logger.error(es)
finally:
redis5.set(truck_id, str(json.dumps(record)))
elif task in [3, 4, 5]: # 卡车重载或在卸载区出场前, 可变更装载目的地
# 查询车辆相关派车计划
try:
item = (session_mysql.query(DispatchSetting).filter_by(exactor_id=dispatch_seq[0],
group_id=group_id, isdeleted=0).first())
item = (session_mysql.query(DispatchSetting).filter_by(exactor_id=dispatch_seq[0], group_id=group_id,
isdeleted=0, ).first())
if item is None:
raise Exception("调度计划配置异常")
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
except Exception as es:
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id,
isdeleted=0, ).first())
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first())
self.logger.error(es)
# # 调度目的地写入
......@@ -238,16 +225,12 @@ class DispatchSubmission:
# record["exactorId"] = dispatch_seq[0]
# record["loadAreaId"] = DispatchInfo.excavator_load_dict[dispatch_seq[0]]
# except Exception as es:
# item = (
# session_mysql.query(DispatchSetting)
# .filter_by(truck_id=truck_id,
# isdeleted=0).first())
# # item = (session_mysql.query(DispatchSetting).filter_by(truck_id=truck_id, isdeleted=0, ).first())
# record["exactorId"] = item.exactor_id
# record["loadAreaId"] = item.load_area_id
# self.logger.error(es)
# 调度信息写入
try:
# record["dispatchId"] = item.id
record["dispatchId"] = str(uuid.uuid1())
......@@ -262,20 +245,72 @@ class DispatchSubmission:
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
# record["createtime"] = datetime.now().strftime(
# "%b %d, %Y %I:%M:%S %p")
except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区-redis写入异常")
self.logger.error(es)
self.logger.error("调度结果写入异常-矿卡重载")
finally:
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区")
self.logger.error(es)
else:
pass
elif task == -2:
try:
# 查询车辆相关派车计划
try:
item = (session_mysql.query(DispatchSetting).filter_by(exactor_id=dispatch_seq[0],
group_id=group_id, isdeleted=0).first())
if item is None:
raise Exception("调度计划配置异常")
if dispatch_seq[0] is None:
raise Exception("调度计划表与实时监控不匹配")
except Exception as es:
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id,
isdeleted=0, ).first())
self.logger.error(es)
# # 调度目的地写入
# try:
# if dispatch_seq[0] is None:
# raise Exception("调度计划表与实时监控不匹配")
# record["exactorId"] = dispatch_seq[0]
# record["loadAreaId"] = DispatchInfo.excavator_load_dict[dispatch_seq[0]]
# except Exception as es:
# item = (
# session_mysql.query(DispatchSetting)
# .filter_by(truck_id=truck_id,
# isdeleted=0).first())
# record["exactorId"] = item.exactor_id
# record["loadAreaId"] = item.load_area_id
# self.logger.error(es)
# 调度信息写入
try:
# record["dispatchId"] = item.id
record["dispatchId"] = str(uuid.uuid1())
record["exactorId"] = item.exactor_id
record["loadAreaId"] = item.load_area_id
record["dumpId"] = item.dump_id
record["unloadAreaId"] = item.unload_area_id
record["groupId"] = group_id
record["isdeleted"] = False
record["isTemp"] = False
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
# record["createtime"] = datetime.now().strftime(
# "%b %d, %Y %I:%M:%S %p")
except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区-redis写入异常")
self.logger.error(es)
finally:
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es:
self.logger.error("调度结果写入异常-矿卡故障或备停区")
self.logger.error(es)
else:
pass
except Exception as es:
self.logger.error("调度结果写入异常")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment