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("二次调度失败")
......
This diff is collapsed.
......@@ -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