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

代码优化

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