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

7-11更新 1.添加日志 2.异常修复

parent 8c155ed9
......@@ -24,7 +24,7 @@ class Dispatcher:
class for group dispatch program.
"""
def __init__(self, truck: TruckInfo, dump: DumpInfo, excavator: ExcavatorInfo, pre_sch: PreSchedule, request_mode=False):
self.group_list = []
self.group_list = {}
self.truck = truck
self.dump = dump
self.excavator = excavator
......@@ -51,18 +51,19 @@ class Dispatcher:
Generate and initialize dispatch groups.
:return: None
"""
self.group_list = {}
groups = DispatchInfo.get_all_group()
for group_id in groups:
if group_id not in self.group_list:
group = Group(group_id, self.truck, self.pre_sch)
self.group_list.append(group)
self.group_list[group_id] = group
def group_info_update(self):
"""
Update group information.
:return: None
"""
for group in self.group_list:
for group in self.group_list.values():
group.info_update()
def group_dispatch(self):
......@@ -72,9 +73,16 @@ class Dispatcher:
"""
a = len(self.group_list)
aa = self.group_list
for group in self.group_list:
for group in self.group_list.values():
try:
truck_dispatch_plan_dict = group.group_dispatch(ExpectedTime)
except Exception as es:
self.logger.error(es)
self.logger.error(f'分组{group.group_id} 调度异常')
self.logger.info(f'调度分组: {group.group_id} {DispatchInfo.group_name[group.group_id]}')
self.submission.group_dispatch_to_redis(group, truck_dispatch_plan_dict)
......@@ -88,7 +96,7 @@ class DispatchSubmission:
"""
def __init__(self, dump, excavator, truck):
self.logger = self.logger = get_logger("zxt.submission")
self.logger = get_logger("zxt.submission")
self.dump = dump
self.excavator = excavator
self.truck = truck
......@@ -144,6 +152,8 @@ class DispatchSubmission:
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es:
self.logger.error("调度结果写入异常-矿卡空载")
......@@ -179,6 +189,8 @@ class DispatchSubmission:
record["haulFlag"] = -1
record["groupName"] = DispatchInfo.group_name[group_id]
self.logger.info(f'redis 注入 {record}')
redis5.set(truck_id, str(json.dumps(record)))
except Exception as es:
self.logger.error("调度结果写入异常-矿卡重载")
......
......@@ -195,6 +195,7 @@ class Group:
# 全智能模式
if self.group_mode == 1:
if truck_task in [-2, 3, 4]:
try:
next_excavator_value = s.solve(truck_info)
# next_excavator_value = s.solve(i, truck_task, truck_trip)
......@@ -207,16 +208,28 @@ class Group:
next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]]
truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
except Exception as es:
self.logger.error("重载车辆全智能模式-计算异常")
self.logger.error(es)
if truck_task in [0, 1]:
try:
bb = truck_task
next_unload_area_value = s.solve(truck_info)
min_index = np.argmin(next_unload_area_value)
next_unload_area_id = self.unload_area_uuid_index_dict.inverse[min_index]
next_excavator_id = self.excavator_uuid_index_dict.inverse[truck_trip[-1]]
truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
except Exception as es:
self.logger.error("空载车辆全智能模式-计算异常")
self.logger.error(es)
# 空车智能模式
elif self.group_mode == 2:
if truck_task in [-2, 3, 4]:
try:
next_excavator_value = s.solve(truck_info)
# min_index = next_excavator_list.index(min(next_excavator_list))
min_index = np.argmin(next_excavator_value)
......@@ -226,11 +239,24 @@ class Group:
else:
next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]]
truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
except Exception as es:
self.logger.error("重载车辆空车智能模式-计算异常")
self.logger.error(es)
if truck_task in [0, 1]:
try:
truck_dispatch[i] = DispatchInfo.get_truck_match(i)
except Exception as es:
self.logger.error("空载车辆空车智能模式-计算异常")
self.logger.error(es)
# 定铲派车
elif self.group_mode == 3:
try:
truck_dispatch[i] = DispatchInfo.get_truck_match(i)
except Exception as es:
self.logger.error("固定派车-计算异常")
self.logger.error(es)
elif self.group_mode == 4:
pass
......
......@@ -378,8 +378,8 @@ class TruckInfo(WalkManage):
# print(self.excavator_hold_truck_num)
self.truck_current_trip.flatten()
print("当前矿卡行程:")
print(self.truck_current_trip)
self.logger.info("当前矿卡行程:")
self.logger.info(self.truck_current_trip)
def update_eqp_hold_truck(self):
......
......@@ -68,12 +68,12 @@ def process(dispatcher):
global_period_para_update()
if get_value("dynamic_dump_num") * get_value("dynamic_excavator_num") == 0:
raise Exception("无动态派车计划可用")
return
if get_value("dynamic_truck_num") == 0:
raise Exception("无动态派车可用矿卡")
return
# if get_value("dynamic_dump_num") * get_value("dynamic_excavator_num") == 0:
# raise Exception("无动态派车计划可用")
# return
# if get_value("dynamic_truck_num") == 0:
# raise Exception("无动态派车可用矿卡")
# return
# 清空数据库缓存
session_mysql.commit()
......
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