Commit 4e432e92 authored by 张晓彤's avatar 张晓彤

代码优化

parent 430230f1
......@@ -323,116 +323,116 @@ class DispatchInfo:
cls.load_area_uuid_to_index_dict = {}
cls.unload_area_uuid_to_index_dict = {}
# try:
groups = cls.group_excavator_dict.keys()
for item in groups:
try:
# 每个组的 excavator_id 及对应 load_area_id
excavator_ids = cls.group_excavator_dict[item]
load_areas = []
for excavator_id in excavator_ids:
load_areas.append(cls.excavator_load_dict[excavator_id])
# 每个组的unload_areas
unload_areas = cls.group_unload_area_dict[item]
except Exception as es:
logger.error("装卸载区统计异常")
logger.error(es)
group_excavator_uuid_to_index = {}
group_dump_uuid_to_index = {}
group_load_area_uuid_to_index = {}
group_unload_area_uuid_to_index = {}
try:
# # unload->load distance
# unload_load_distance = np.zeros((len(unload_areas), len(load_areas)))
# for truck_id in range(len(unload_areas)):
# for j in range(len(load_areas)):
# distance = int(session_postgre.query(WalkTime).filter_by(unload_area_id=unload_areas[truck_id], load_area_id=load_areas[j]).first().to_load_distance)
# unload_load_distance[truck_id][j] = distance
# cls.load_distance[item] = unload_load_distance
group_excavator_count = 0
group_dump_count = 0
group_load_area_count = 0
group_unload_area_count = 0
# unload->load distance
unload_load_distance = np.zeros((len(cls.group_dump_dict[item]), len(cls.group_excavator_dict[item])))
for excavator_id in cls.group_excavator_dict[item]:
try:
groups = cls.group_excavator_dict.keys()
for item in groups:
try:
# 每个组的 excavator_id 及对应 load_area_id
excavator_ids = cls.group_excavator_dict[item]
load_areas = []
for excavator_id in excavator_ids:
load_areas.append(cls.excavator_load_dict[excavator_id])
# 每个组的unload_areas
unload_areas = cls.group_unload_area_dict[item]
except Exception as es:
logger.error("装卸载区统计异常")
logger.error(es)
group_excavator_uuid_to_index = {}
group_dump_uuid_to_index = {}
group_load_area_uuid_to_index = {}
group_unload_area_uuid_to_index = {}
try:
# # unload->load distance
# unload_load_distance = np.zeros((len(unload_areas), len(load_areas)))
# for truck_id in range(len(unload_areas)):
# for j in range(len(load_areas)):
# distance = int(session_postgre.query(WalkTime).filter_by(unload_area_id=unload_areas[truck_id], load_area_id=load_areas[j]).first().to_load_distance)
# unload_load_distance[truck_id][j] = distance
# cls.load_distance[item] = unload_load_distance
group_excavator_count = 0
group_dump_count = 0
group_load_area_count = 0
group_unload_area_count = 0
for dump_id in cls.group_dump_dict[item]:
unload_area_id = cls.dump_unload_area_dict[dump_id]
load_area_id = cls.excavator_load_dict[excavator_id]
distance = int(session_postgre.query(WalkTime).filter_by(
unload_area_id=unload_area_id,
load_area_id=load_area_id).first().to_load_distance)
unload_load_distance[group_dump_count][group_excavator_count] = distance
if excavator_id not in group_excavator_uuid_to_index:
group_excavator_uuid_to_index[excavator_id] = group_excavator_count
if dump_id not in group_dump_uuid_to_index:
group_dump_uuid_to_index[dump_id] = group_dump_count
if load_area_id not in group_load_area_uuid_to_index:
group_load_area_uuid_to_index[load_area_id] = group_load_area_count
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
cls.unload_area_uuid_to_index_dict[item] = group_unload_area_uuid_to_index
group_dump_count += 1
group_unload_area_count += 1
group_excavator_count += 1
group_load_area_count += 1
cls.load_distance[item] = unload_load_distance
except Exception as es:
logger.warning(f'{item} 分组装载路网异常')
cls.load_distance[item] = np.full((len(unload_areas), len(load_areas)), 10000)
logger.warning(es)
session_postgre.rollback()
session_mysql.rollback()
try:
# load->unload distance
load_unload_distance = np.zeros((len(load_areas), len(unload_areas)))
for i in range(len(load_areas)):
for j in range(len(unload_areas)):
distance = int(session_postgre.query(WalkTime).filter_by(load_area_id=load_areas[i], unload_area_id=unload_areas[j]).first().to_unload_distance)
load_unload_distance[i][j] = distance
cls.unload_distance[item] = load_unload_distance
except Exception as es:
logger.warning(f'{item} 分组卸载路网异常')
cls.unload_distance[item] = np.full((len(load_areas), len(unload_areas)), 10000)
logger.warning(es)
session_postgre.rollback()
session_mysql.rollback()
# except Exception as es:
# logger.error("路网距离更新异常-调度部分和路网部分不一致")
# logger.error(es)
# unload->load distance
unload_load_distance = np.zeros((len(cls.group_dump_dict[item]), len(cls.group_excavator_dict[item])))
for excavator_id in cls.group_excavator_dict[item]:
group_dump_count = 0
group_unload_area_count = 0
for dump_id in cls.group_dump_dict[item]:
unload_area_id = cls.dump_unload_area_dict[dump_id]
load_area_id = cls.excavator_load_dict[excavator_id]
distance = int(session_postgre.query(WalkTime).filter_by(
unload_area_id=unload_area_id,
load_area_id=load_area_id).first().to_load_distance)
unload_load_distance[group_dump_count][group_excavator_count] = distance
if excavator_id not in group_excavator_uuid_to_index:
group_excavator_uuid_to_index[excavator_id] = group_excavator_count
if dump_id not in group_dump_uuid_to_index:
group_dump_uuid_to_index[dump_id] = group_dump_count
if load_area_id not in group_load_area_uuid_to_index:
group_load_area_uuid_to_index[load_area_id] = group_load_area_count
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_dump_count += 1
group_unload_area_count += 1
group_excavator_count += 1
group_load_area_count += 1
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
cls.unload_area_uuid_to_index_dict[item] = group_unload_area_uuid_to_index
cls.load_distance[item] = unload_load_distance
except Exception as es:
logger.warning(f'{item} 分组装载路网异常')
cls.load_distance[item] = np.full((len(unload_areas), len(load_areas)), 10000)
logger.warning(es)
session_postgre.rollback()
session_mysql.rollback()
try:
# load->unload distance
load_unload_distance = np.zeros((len(load_areas), len(unload_areas)))
for i in range(len(load_areas)):
for j in range(len(unload_areas)):
distance = int(session_postgre.query(WalkTime).filter_by(load_area_id=load_areas[i], unload_area_id=unload_areas[j]).first().to_unload_distance)
load_unload_distance[i][j] = distance
cls.unload_distance[item] = load_unload_distance
except Exception as es:
logger.warning(f'{item} 分组卸载路网异常')
cls.unload_distance[item] = np.full((len(load_areas), len(unload_areas)), 10000)
logger.warning(es)
session_postgre.rollback()
session_mysql.rollback()
except Exception as es:
logger.error("路网距离更新异常-调度部分和路网部分不一致")
logger.error(es)
# @classmethod
# def update_device_dict(cls):
......
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