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

测试问题修复

parent 75bc5a5a
......@@ -175,13 +175,16 @@ class ExpectedTime(AlgorithmBase):
self.logger.error("车辆调度信息读取异常")
self.logger.error(es)
self.logger.info("-----------------------------------Alg. Module-----------------------------------")
if task == -2:
################################################ 矿卡启动 ###############################################
try:
self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡启动或故障恢复")
self.logger.info(f"涉及挖机:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
self.logger.info(f"涉及挖机:{self.group.excavator}")
# self.logger.info(f"涉及挖机:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
except Exception as es:
self.logger.error(f"矿卡{truck_id}状态不匹配")
self.logger.error(es)
......@@ -192,6 +195,9 @@ class ExpectedTime(AlgorithmBase):
excavator_val_time = np.full(len(self.group.excavator), 0.0)
self.logger.info("self.group.excavator_uuid_index_dict")
self.logger.info(self.group.excavator_uuid_index_dict)
for excavator_id, excavator_index in self.group.excavator_uuid_index_dict.items():
excavator_val_time[excavator_index] = excavator_val_time_global[excavator_id]
......@@ -205,18 +211,21 @@ class ExpectedTime(AlgorithmBase):
# 计算行程时间
transport_value = truck_service_time - truck_avl_time
self.logger.info("expected_travelling_schedule-truck_avl_time")
self.logger.info(truck_avl_time)
self.logger.info("expected_travelling_schedule-truck_service_time")
self.logger.info(truck_service_time)
self.logger.info("expected_travelling_schedule-truck_reach_time")
self.logger.info(truck_reach_time)
self.logger.info("expected_travelling_schedule-excavator_val_time")
self.logger.info(excavator_val_time)
self.logger.info("expected_travelling_schedule-truck_service_time")
self.logger.info(truck_service_time)
self.logger.info("expected_travelling_schedule-truck_avl_time")
self.logger.info(truck_avl_time)
self.logger.info("expected_travelling_schedule-transport_value")
self.logger.info(transport_value)
# except Exception as es:
# self.logger.error("矿卡启动调度异常")
# self.logger.error(es)
......@@ -228,7 +237,8 @@ class ExpectedTime(AlgorithmBase):
try:
self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡空载")
self.logger.info(f"涉及卸载设备:{list(DeviceMap.dump_uuid_to_index_dict.keys())}")
self.logger.info(f"涉及卸载设备:{self.group.dump}")
# self.logger.info(f"涉及卸载设备:{list(DeviceMap.dump_uuid_to_index_dict.keys())}")
except Exception as es:
self.logger.error(f"矿卡{truck_id}状态不匹配")
self.logger.error(es)
......@@ -238,7 +248,7 @@ class ExpectedTime(AlgorithmBase):
dump_val_time_global = self.pre_sch.get_dump_avl_time()
# 局部卸点可用时间 list
dump_val_time = np.full(len(self.group.unload_area), 0)
dump_val_time = np.full(len(self.group.unload_area), 0.0)
bb = self.group.dump_uuid_index_dict
for dump_id, dump_index in self.group.dump_uuid_index_dict.items():
dump_val_time[dump_index] = dump_val_time_global[dump_id]
......@@ -259,18 +269,21 @@ class ExpectedTime(AlgorithmBase):
# 计算行程时间
transport_value = truck_service_time - truck_avl_time
self.logger.info("expected_travelling_schedule-truck_avl_time")
self.logger.info(truck_avl_time)
self.logger.info("expected_travelling_schedule-truck_service_time")
self.logger.info(truck_service_time)
self.logger.info("expected_travelling_schedule-truck_reach_time")
self.logger.info(truck_reach_time)
self.logger.info("expected_travelling_schedule-dump_val_time")
self.logger.info(dump_val_time)
self.logger.info("expected_travelling_schedule-truck_service_time")
self.logger.info(truck_service_time)
self.logger.info("expected_travelling_schedule-truck_avl_time")
self.logger.info(truck_avl_time)
self.logger.info("expected_travelling_schedule-transport_value")
self.logger.info(transport_value)
except Exception as es:
self.logger.error("矿卡空载调度异常")
self.logger.error(es)
......@@ -282,7 +295,8 @@ class ExpectedTime(AlgorithmBase):
try:
self.logger.info(f'矿卡 {truck_id}')
self.logger.info("矿卡状态:矿卡重载")
self.logger.info(f"涉及挖机设备:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
self.logger.info(f'涉及挖机设备:{self.group.excavator}')
# self.logger.info(f"涉及挖机设备:{list(DeviceMap.excavator_uuid_to_index_dict.keys())}")
except Exception as es:
self.logger.error(f"矿卡{truck_id}状态不匹配")
self.logger.error(es)
......@@ -291,7 +305,7 @@ class ExpectedTime(AlgorithmBase):
# 挖机可用时间
excavator_val_time_global = self.pre_sch.get_excavator_avl_time()
excavator_val_time = np.full(len(self.group.excavator), 0)
excavator_val_time = np.full(len(self.group.excavator), 0.0)
for excavator_id, excavator_index in self.group.excavator_uuid_index_dict.items():
excavator_val_time[excavator_index] = excavator_val_time_global[excavator_id]
......@@ -315,9 +329,25 @@ class ExpectedTime(AlgorithmBase):
# 计算行程时间
transport_value = truck_service_time - truck_avl_time
self.logger.info("expected_travelling_schedule-truck_reach_time")
self.logger.info(truck_reach_time)
self.logger.info("expected_travelling_schedule-excavator_val_time")
self.logger.info(excavator_val_time)
self.logger.info("expected_travelling_schedule-truck_service_time")
self.logger.info(truck_service_time)
self.logger.info("expected_travelling_schedule-truck_avl_time")
self.logger.info(truck_avl_time)
self.logger.info("expected_travelling_schedule-transport_value")
self.logger.info(transport_value)
except Exception as es:
self.logger.error("矿卡重载调度异常")
self.logger.error(es)
self.logger.error(es.__traceback__.tb_lineno)
transport_value = np.zeros(group_dynamic_unload_area_num)
return transport_value
......
......@@ -196,14 +196,14 @@ class DispatchSubmission:
if task == 3 and state == 2 and self.truck.get_truck_locate_dict()[truck_id] in self.topo.cross_bf_lanes:
# try:
if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
self.logger.info("二次调度前往卸载区")
record["isTemp"] = True
redis5.set(truck_id, str(json.dumps(record)))
POST(truck_id)
self.logger.info(f'redis 注入 {record}')
else:
self.logger.info("车辆已完成二次调度-无需更改派车计划")
# else:
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# except Exception as es:
# self.logger.error(es)
......@@ -258,15 +258,15 @@ class DispatchSubmission:
if task == 0 and state == 2 and self.truck.get_truck_locate_dict()[truck_id] in self.topo.cross_bf_lanes:
# 车辆停车等待
# try:
if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
self.logger.info("二次调度前往装载区")
record["isTemp"] = True
# 若尚未二次调度
redis5.set(truck_id, str(json.dumps(record)))
POST(truck_id)
self.logger.info(f'redis 注入 {record}')
else:
self.logger.info("车辆已完成二次调度-无需更改派车计划")
# else:
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# except Exception as es:
# self.logger.error(es)
# self.logger.error("二次调度失败")
......
......@@ -59,6 +59,7 @@ class Group:
self.logger = get_logger("zxt.Group")
# basic info.
self.group_id = group_id
self.group_name = DispatchInfo.group_name[self.group_id]
self.group_mode = 1
self.truck = truck
self.pre_sch = pre_sch
......@@ -126,8 +127,8 @@ class Group:
self.dump = DispatchInfo.get_dump(self.group_id)
self.truck_set = DispatchInfo.get_truck_set(self.group_id)
self.logger.info(f'group excavator {self.excavator}')
self.logger.info(f'group dump {self.dump}')
# self.logger.info(f'group excavator {self.excavator}')
# self.logger.info(f'group dump {self.dump}')
def update_group_road_network(self):
"""
......@@ -149,31 +150,31 @@ class Group:
"""
# excavator_index = 0
self.excavator_uuid_index_dict = {}
self.unload_area_uuid_index_dict = {}
self.truck_uuid_index_dict = {}
self.dump_uuid_index_dict = {}
for i in range(len(self.excavator)):
self.excavator_uuid_index_dict[list(self.excavator)[i]] = i
for i in range(len(self.unload_area)):
self.unload_area_uuid_index_dict[list(self.unload_area)[i]] = i
for i in range(len(self.dump)):
self.dump_uuid_index_dict[list(self.dump)[i]] = i
for i in range(len(self.truck_set)):
self.truck_uuid_index_dict[list(self.truck_set)[i]] = i
# self.excavator_uuid_index_dict = bidict(DispatchInfo.excavator_uuid_to_index_dict[self.group_id])
# self.unload_area_uuid_index_dict = bidict(DispatchInfo.unload_area_uuid_to_index_dict[self.group_id])
# self.dump_uuid_index_dict = bidict(DispatchInfo.dump_uuid_to_index_dict[self.group_id])
self.excavator_uuid_index_dict = bidict(self.excavator_uuid_index_dict)
self.unload_area_uuid_index_dict = bidict(self.unload_area_uuid_index_dict)
self.truck_uuid_index_dict = bidict(self.truck_uuid_index_dict)
self.dump_uuid_index_dict = bidict(self.dump_uuid_index_dict)
self.excavator_uuid_index_dict = DispatchInfo.get_group_excavator_dict(self.group_id)
self.unload_area_uuid_index_dict = DispatchInfo.get_group_unload_area_dict(self.group_id)
# self.truck_uuid_index_dict = DispatchInfo.get_group_truck_dict(self.group_id)
self.dump_uuid_index_dict = DispatchInfo.get_group_dump_dict(self.group_id)
# for i in range(len(self.excavator)):
# self.excavator_uuid_index_dict[list(self.excavator)[i]] = i
#
# for i in range(len(self.unload_area)):
# self.unload_area_uuid_index_dict[list(self.unload_area)[i]] = i
#
# for i in range(len(self.dump)):
# self.dump_uuid_index_dict[list(self.dump)[i]] = i
#
# for i in range(len(self.truck_set)):
# self.truck_uuid_index_dict[list(self.truck_set)[i]] = i
#
# # self.excavator_uuid_index_dict = bidict(DispatchInfo.excavator_uuid_to_index_dict[self.group_id])
# # self.unload_area_uuid_index_dict = bidict(DispatchInfo.unload_area_uuid_to_index_dict[self.group_id])
# # self.dump_uuid_index_dict = bidict(DispatchInfo.dump_uuid_to_index_dict[self.group_id])
#
# self.excavator_uuid_index_dict = bidict(self.excavator_uuid_index_dict)
# self.unload_area_uuid_index_dict = bidict(self.unload_area_uuid_index_dict)
# self.truck_uuid_index_dict = bidict(self.truck_uuid_index_dict)
# self.dump_uuid_index_dict = bidict(self.dump_uuid_index_dict)
# group_excavator_dict = {group_1: {excavator_1: load_area_1}, group_2: {excavator_2: load_area_2}}
......@@ -188,8 +189,8 @@ class Group:
try:
self.logger.info("物料兼容性")
self.logger.info(DispatchInfo.group_name[self.group_id])
# self.logger.info("物料兼容性")
# self.logger.info(DispatchInfo.group_name[self.group_id])
for dump_id in self.dump:
for excavator_id in self.excavator:
......@@ -203,11 +204,11 @@ class Group:
# self.logger.info(excavator_id)
# self.logger.info(self.excavator_info.excavator_material)
self.logger.info(self.excavator_info.excavator_material[excavator_id])
# self.logger.info(self.excavator_info.excavator_material[excavator_id])
# self.logger.info(dump_id)
# self.logger.info(self.dump_info.dump_material)
self.logger.info(self.dump_info.dump_material[dump_id])
# self.logger.info(self.dump_info.dump_material[dump_id])
if self.excavator_info.excavator_material[excavator_id] not in self.dump_info.dump_material[dump_id]:
self.group_walk_available[excavator_index][dump_index] = 10
......@@ -270,9 +271,12 @@ class Group:
assert issubclass(solver, AlgorithmBase)
s = solver(self, self.truck, self.pre_sch) # algorithm init
self.logger.info(f'分组 {self.group_name} 调度计算 调度模式 {self.group_mode}')
for i in list(self.truck_set):
self.logger.info("车辆调度程序")
self.logger.info(f'调度车辆 {i}')
try:
truck_trip = self.truck.get_truck_current_trip()[self.truck.truck_uuid_to_index_dict[i]]
truck_task = self.truck.get_truck_current_task()[i]
......@@ -289,19 +293,19 @@ class Group:
self.logger.error("车辆调度信息读取异常")
self.logger.error(es)
self.logger.info("self.excavator_uuid_index_dict")
self.logger.info(self.excavator_uuid_index_dict)
try:
# 全智能模式
if self.group_mode == 1:
self.logger.info("全智能模式调度")
self.full_dynamic_mode(i, s, truck_dispatch, truck_info, truck_task, truck_trip)
# 空车智能模式
elif self.group_mode == 2:
self.logger.info("空车智能模式调度")
self.semi_dynamic_mode(i, s, truck_dispatch, truck_info, truck_task, truck_trip)
# 定铲派车
elif self.group_mode == 3:
self.logger.info("固定模式调度")
try:
truck_dispatch[i] = DispatchInfo.get_truck_match(i)
except Exception as es:
......@@ -310,11 +314,11 @@ class Group:
# 分流配比模式
elif self.group_mode == 4:
self.logger.info("分流配比模式调度")
self.ratio_mode(i, truck_dispatch, truck_task)
except Exception as es:
self.logger.info(es)
self.logger.error(es)
# return dispatch plan
return truck_dispatch
......@@ -404,6 +408,8 @@ class Group:
min_index = np.argmin(next_excavator_value)
next_excavator_id = self.excavator_uuid_index_dict.inverse[min_index]
self.logger.info(f'目标挖机 {min_index} {next_excavator_id}')
if truck_task == -2:
next_unload_area_id = "Park"
else:
......@@ -419,12 +425,12 @@ class Group:
try:
next_excavator_id = get_value("excavator_index_to_uuid_dict")[truck_trip[-1]]
next_unload_area_value = s.solve(truck_info)
self.logger.info(f'车辆 {i}')
self.logger.info(f'group distance {self.to_unload_area_distance}')
self.logger.info(f'walk available {self.group_walk_available}')
self.logger.info(self.unload_area_uuid_index_dict)
self.logger.info(self.excavator_uuid_index_dict)
# self.logger.info(f'车辆 {i}')
# self.logger.info(f'group distance {self.to_unload_area_distance}')
# self.logger.info(f'walk available {self.group_walk_available}')
#
# self.logger.info(self.unload_area_uuid_index_dict)
# self.logger.info(self.excavator_uuid_index_dict)
if i in self.truck.truck_dump_bind:
dump_uuid_to_unload_area_uuid_dict = get_value("dump_uuid_to_unload_area_uuid_dict")
......@@ -432,15 +438,17 @@ class Group:
else:
tmp = self.group_walk_available[
self.excavator_uuid_index_dict[next_excavator_id], :].flatten()
self.logger.info(f'group_walk_available_pick {tmp}')
self.logger.info(f'next_excavator_id {next_excavator_id}')
self.logger.info(next_unload_area_value)
# self.logger.info(f'group_walk_available_pick {tmp}')
# self.logger.info(f'next_excavator_id {next_excavator_id}')
# self.logger.info(next_unload_area_value)
next_unload_area_value *= self.group_walk_available[
self.excavator_uuid_index_dict[next_excavator_id], :].flatten()
self.logger.info(next_unload_area_value)
# self.logger.info(next_unload_area_value)
min_index = np.argmin(next_unload_area_value)
next_unload_area_id = self.unload_area_uuid_index_dict.inverse[min_index]
self.logger.info(f'目标卸点 {min_index} {next_unload_area_id}')
# next_excavator_id = self.excavator_uuid_index_dict.inverse[truck_trip[-1]]
truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
......@@ -465,14 +473,17 @@ class Group:
self.logger.error("车辆临时字段异常")
self.logger.error(es)
# 车辆当前位于交叉路口前,且排队等待
self.logger.info("潜在二次调度车辆状态")
self.logger.info(f'车辆 {i}')
self.logger.info(f'车辆位置 {truck_locate}')
self.logger.info(f'车辆状态 {self.truck.truck_current_state[i]}')
self.logger.info(f'车辆临时 {truck_is_temp} {type(truck_is_temp)}')
self.logger.info(self.topo.cross_bf_lanes)
self.logger.info(self.truck.truck_current_state)
self.logger.info(truck_is_temp)
if (truck_locate in self.topo.cross_bf_lanes) and (self.truck.truck_current_state[i] == 2) \
and (not truck_is_temp):
# if (truck_locate in self.topo.cross_bf_lanes) and (self.truck.truck_current_state[i] == 2) \
# and (not truck_is_temp):
if (truck_locate in self.topo.cross_bf_lanes) and (self.truck.truck_current_state[i] == 2):
self.logger.info("触发二次调度")
# 当前绑定卸载区
# if truck_trip[0] == -1:
......@@ -584,7 +595,7 @@ class Group:
if value[-1] == 1 and unload_area in DispatchInfo.unload_area_dump_dict:
dump_id = DispatchInfo.unload_area_dump_dict[unload_area]
traveling_time = value[0] / self.truck.heavy_speed[i]
traveling_time = value[0] / heavy_speed
now = float(
(datetime.now() - self.pre_sch.start_time) / timedelta(hours=0, minutes=1,
......@@ -617,12 +628,15 @@ class Group:
"""
min_trip_time = 10000000
best_excavator_id = current_excavator_id
try:
for load_area, value in load_area_dict.items():
# 车辆不需要掉头
if load_area in DispatchInfo.load_excavator_dict:
excavator_id = DispatchInfo.load_excavator_dict[load_area]
else:
continue
if value[-1] == 1 and excavator_id in self.excavator:
# excavator_id = DispatchInfo.load_excavator_dict[load_area]
traveling_time = 60 * (value[0] / 1000) / self.truck.empty_speed[truck_id]
traveling_time = 60 * (value[0] / 1000) / empty_speed
self.logger.info(f'load_area {load_area}')
self.logger.info(f'traveling_time {traveling_time}')
......@@ -642,6 +656,11 @@ class Group:
if min_trip_time > trip_time:
best_excavator_id = excavator_id
min_trip_time = trip_time
except Exception as es:
self.logger.error("寻找最佳装载区异常")
self.logger.error(f'exception {es}')
self.logger.error(f'in line {es.__traceback__.tb_lineno}')
return best_excavator_id
def get_congestion_lanes(self):
......@@ -651,4 +670,7 @@ class Group:
for key, value in truck_locate_dict.items():
if self.truck.truck_current_state[key] == 2:
congestion_lane_list.append(value)
print("congestion_lane_list")
print(list(set(congestion_lane_list)))
return list(set(congestion_lane_list))
......@@ -183,8 +183,14 @@ class PreSchedule:
# self.truck_avl_time[int(tmp[i][1])] = now
# if abs(self.excavator_avl_time[excavator_index] - now) > 60:
# self.excavator_avl_time[excavator_index] = now
count = 0
self.logger.info("update_excavator_avl_time-excavator_avl_ls")
self.logger.info(excavator_avl_ls)
for excavator_id in self.excavator.excavator_uuid_to_index_dict.keys():
self.logger.info(f'{excavator_id} {excavator_avl_ls[count]}')
count += 1
# self.logger.info(get_value("dynamic_excavator_set"))
# self.logger.info(excavator_avl_ls)
except Exception as es:
self.logger.error("挖机可用时间计算异常")
self.logger.error(es)
......@@ -248,6 +254,14 @@ class PreSchedule:
# self.dump_avl_time[dump_index] = now
# if abs(self.truck_avl_time[int(tmp[i][1])] - now) > 60:
# self.truck_avl_time[int(tmp[i][1])] = now
count = 0
self.logger.info("update_dump_avl_time-dump_avl_ls")
for dump_id in get_value("dynamic_dump_set"):
self.logger.info(f'{dump_id} {dump_avl_ls[count]}')
count += 1
# self.logger.info(get_value("dynamic_dump_set"))
# self.logger.info(dump_avl_ls)
# except Exception as es:
# self.logger.error("卸载设备可用时间计算异常")
# self.logger.error(es)
......@@ -294,7 +308,7 @@ class PreSchedule:
return self.update_excavator_avl_time(excavator_avl_ls) \
[self.excavator.excavator_uuid_to_index_dict[excavator_id]]
else:
tmp = self.update_excavator_avl_time(excavator_avl_ls)
# tmp = self.update_excavator_avl_time(excavator_avl_ls)
return self.update_excavator_avl_time(excavator_avl_ls)
def get_truck_avl_time(self, truck_id=None):
......
......@@ -40,11 +40,25 @@ with open(json_file) as f:
#
# return POST(real_data)
# def get_cross_next_lanes(truck_locate):
# next_lane_list = []
# startNodeId = session_postgre.query(Lane).filter_by(Id=truck_locate).first().EndNodeId
# for item in session_postgre.query(Lane).filter_by(StartNodeId=startNodeId).all():
# next_lane_list.append(str(item.Id))
# return next_lane_list
def get_cross_next_lanes(truck_locate):
next_lane_list = []
startNodeId = session_postgre.query(Lane).filter_by(Id=truck_locate).first().EndNodeId
for item in session_postgre.query(Lane).filter_by(StartNodeId=startNodeId).all():
next_lane_list.append(str(item.Id))
next_lane_end_node = item.EndNodeId
for next_item in session_postgre.query(Lane).filter_by(StartNodeId=next_lane_end_node).all():
next_lane_list.append(str(next_item.Id))
print("next_lane_list")
print(next_lane_list)
return next_lane_list
......@@ -72,6 +86,9 @@ def get_lane_reach_load_areas(load_area_lane_dict, next_lane_list):
next_lane_load_area_dict[lane_id] = [key]
else:
next_lane_load_area_dict[lane_id].append(key)
print("next_lane_load_area_dict")
print(next_lane_load_area_dict)
return next_lane_load_area_dict
......
......@@ -9,7 +9,7 @@ import numpy as np
from settings import *
import pandas as pd
from tables import DispatchMatch, DispatchEquipment
import bidict
from bidict import bidict
logger = get_logger("zxt.dispatchInfo")
......@@ -387,6 +387,11 @@ class DispatchInfo:
if unload_area_id not in group_unload_area_uuid_to_index:
group_unload_area_uuid_to_index[unload_area_id] = group_unload_area_count
group_excavator_uuid_to_index = bidict(group_excavator_uuid_to_index)
group_dump_uuid_to_index = bidict(group_dump_uuid_to_index)
group_load_area_uuid_to_index = bidict(group_load_area_uuid_to_index)
group_unload_area_uuid_to_index = bidict(group_unload_area_uuid_to_index)
cls.excavator_uuid_to_index_dict[item] = group_excavator_uuid_to_index
cls.dump_uuid_to_index_dict[item] = group_dump_uuid_to_index
cls.load_area_uuid_to_index_dict[item] = group_load_area_uuid_to_index
......@@ -428,6 +433,51 @@ class DispatchInfo:
# logger.error("路网距离更新异常-调度部分和路网部分不一致")
# logger.error(es)
# @classmethod
# def update_device_dict(cls):
# cls.excavator_uuid_index_dict = {}
# cls.unload_area_uuid_index_dict = {}
# cls.truck_uuid_index_dict = {}
# cls.dump_uuid_index_dict = {}
# for group_id in cls.group_set:
# cls.excavator_uuid_index_dict = {}
# cls.unload_area_uuid_index_dict = {}
# cls.truck_uuid_index_dict = {}
# cls.dump_uuid_index_dict = {}
#
# for i in range(len(cls.group_excavator_dict[group_id])):
# cls.excavator_uuid_index_dict[group_id][list(cls.group_excavator_dict[group_id])[i]] = i
#
# for i in range(len(cls.group_unload_area_dict[group_id])):
# cls.unload_area_uuid_index_dict[group_id][list(cls.group_unload_area_dict[group_id])[i]] = i
#
# for i in range(len(cls.group_dump_dict[group_id])):
# cls.dump_uuid_index_dict[group_id][list(cls.group_dump_dict[group_id])[i]] = i
#
# for i in range(len(cls.group_truck_dict[group_id])):
# cls.truck_uuid_index_dict[group_id][list(cls.group_truck_dict[group_id])[i]] = i
#
# # self.excavator_uuid_index_dict = bidict(DispatchInfo.excavator_uuid_to_index_dict[self.group_id])
# # self.unload_area_uuid_index_dict = bidict(DispatchInfo.unload_area_uuid_to_index_dict[self.group_id])
# # self.dump_uuid_index_dict = bidict(DispatchInfo.dump_uuid_to_index_dict[self.group_id])
#
# cls.excavator_uuid_index_dict = bidict(cls.excavator_uuid_index_dict)
# cls.unload_area_uuid_index_dict = bidict(cls.unload_area_uuid_index_dict)
# cls.truck_uuid_index_dict = bidict(cls.truck_uuid_index_dict)
# cls.dump_uuid_index_dict = bidict(cls.dump_uuid_index_dict)
@classmethod
def get_group_excavator_dict(cls, group_id):
return cls.excavator_uuid_to_index_dict[group_id]
@classmethod
def get_group_dump_dict(cls, group_id):
return cls.dump_uuid_to_index_dict[group_id]
@classmethod
def get_group_unload_area_dict(cls, group_id):
return cls.unload_area_uuid_to_index_dict[group_id]
@classmethod
def get_all_group(cls):
return set(cls.group_excavator_dict.keys())
......
......@@ -334,7 +334,7 @@ def update_autodisp_excavator():
# 用于动态派车的挖机集合
dynamic_excavator_list = []
try:
for item in (session_mysql.query(DispatchSetting).filter_by().all()):
for item in (session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all()):
if item.exactor_id not in dynamic_excavator_list:
dynamic_excavator_list.append(item.exactor_id)
if len(dynamic_excavator_list) < 1:
......@@ -351,7 +351,7 @@ def update_autodisp_dump():
# 用于动态调度的卸载点集合
dynamic_dump_list = []
try:
for item in (session_mysql.query(DispatchSetting).filter_by().all()):
for item in (session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all()):
if item.dump_id not in dynamic_dump_list:
dynamic_dump_list.append(item.dump_id)
if len(dynamic_dump_list) < 1:
......
......@@ -84,7 +84,7 @@ class DumpInfo(WalkManage):
# except Exception as es:
# self.logger.error(f"卸载设备 {dump_id} 卸载时间信息缺失, 已设为默认值(1min)")
# self.logger.error(es)
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = 10.00
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = 5.00
# print("average_unload_time: ", self.unloading_time[self.dump_uuid_to_index_dict[dump_id]])
# 更新卸载设备出入时间
......@@ -117,7 +117,7 @@ class DumpInfo(WalkManage):
def update_dump_material(self):
self.dump_material = {}
for dump_id in get_value("dynamic_dump_set"):
# try:
try:
# unload_area_id = session_mysql.query(DispatchSetting).filter_by(dump_id=dump_id, isauto=1, isdeleted=0).first().unload_area_id
unload_area_id = session_mysql.query(DispatchSetting).filter_by(dump_id=dump_id, isdeleted=0).first().unload_area_id
dump_material_id = session_postgre.query(DumpArea).filter_by(Id=unload_area_id).first().Materials
......@@ -126,12 +126,12 @@ class DumpInfo(WalkManage):
else:
dump_material_id = list(dump_material_id)
self.dump_material[dump_id] = dump_material_id
# except Exception as es:
# self.logger.error("卸点物料更新异常")
# self.dump_material[dump_id] = {}
# self.logger.error(es)
# session_mysql.rollback()
# session_postgre.rollback()
except Exception as es:
self.logger.error(f'卸点物料更新异常 in {es.__traceback__.tb_lineno}')
self.logger.error(es)
self.dump_material[dump_id] = {}
session_mysql.rollback()
session_postgre.rollback()
def update_dump_priority(self):
unload_area_index_to_uuid_dict = get_value("unload_area_index_to_uuid_dict")
......
......@@ -82,7 +82,7 @@ class ExcavatorInfo(WalkManage):
self.logger.info(self.loading_time)
self.logger.info("excavator_uuid_to_index_dict")
self.logger.info(self.excavator_uuid_to_index_dict)
self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = 2.00
self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = 5.00
# 更新挖机设备出入时间
def update_excavator_entrance_exit_time(self):
......
......@@ -218,7 +218,7 @@ class TruckInfo(WalkManage):
self.logger.error(es)
self.truck_is_temp[truck_name_to_uuid_dict[item]] = True
print(f'here3 {item} {bool(isTemp)}')
# print(f'here3 {item} {bool(isTemp)}')
except Exception as es:
self.logger.warning("读取矿卡任务异常-reids读取异常")
self.logger.warning(es)
......
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