Commit 8c37fda5 authored by 张晓彤's avatar 张晓彤 Committed by z5335534 Ao Guo

group, info 层修改

parent 6594fd44
...@@ -116,8 +116,8 @@ class Group: ...@@ -116,8 +116,8 @@ class Group:
""" """
self.update_group_mode() self.update_group_mode()
self.update_group_device() self.update_group_device()
self.update_group_road_network()
self.update_group_device_map() self.update_group_device_map()
self.update_group_road_network()
def group_dispatch(self, solver: object): def group_dispatch(self, solver: object):
""" """
......
...@@ -92,58 +92,102 @@ class DispatchInfo: ...@@ -92,58 +92,102 @@ class DispatchInfo:
# build excavator group map # build excavator group map
# try:
# for item in session_postgre.query(DiggingWorkArea).all():
#
# if item.ExactorUuid is not None:
# cls.load_excavator_dict[str(item.Id)] = item.ExactorUuid
# cls.excavator_load_dict[item.ExactorUuid] = str(item.Id)
# aa = cls.load_excavator_dict
# except Exception as es:
# logger.error("挖机和装载区映射更新异常")
# logger.error(es)
try: try:
for item in session_postgre.query(DiggingWorkArea).all(): for item in session_mysql.query(DispatchSetting).all():
if item.ExactorUuid is not None: cls.load_excavator_dict[item.load_area_id] = item.exactor_id
cls.load_excavator_dict[str(item.Id)] = item.ExactorUuid cls.excavator_load_dict[item.exactor_id] = item.load_area_id
cls.excavator_load_dict[item.ExactorUuid] = str(item.Id) # aa = cls.load_excavator_dict
except Exception as es: except Exception as es:
logger.error("挖机和装载区映射更新异常") logger.error("挖机和装载区映射更新异常")
logger.error(es) logger.error(es)
# update excavator<->group and dump<->group map # update excavator<->group and dump<->group map
try: try:
for item in session_mysql.query(DispatchMatch).filter_by(group_type=1).all(): for item in session_mysql.query(DispatchSetting).filter_by(group_type=1).all():
# if item.group_code not in cls.group_excavator_dict.keys(): # if item.group_code not in cls.group_excavator_dict.keys():
# cls.group_excavator_dict[item.group_code] = item.excavator_id # cls.group_excavator_dict[item.group_code] = item.excavator_id
# else: # else:
# cls.group_excavator_dict[item.group_code].append(item.excavator_id) # cls.group_excavator_dict[item.group_code].append(item.excavator_id)
# cls.excavator_group_dict[item.excavator_id] = item.group_code # cls.excavator_group_dict[item.excavator_id] = item.group_code
if item.load_area_id is not None and item.dump_id is not None: # if item.load_area_id is not None and item.dump_id is not None:
if item.group_code not in cls.group_excavator_dict.keys(): if item.group_code not in cls.group_excavator_dict.keys():
cls.group_excavator_dict[item.group_code] = [item.exactor_id] cls.group_excavator_dict[item.group_id] = [item.exactor_id]
else: else:
cls.group_excavator_dict[item.group_code].append(item.exactor_id) cls.group_excavator_dict[item.group_id].append(item.exactor_id)
cls.excavator_group_dict[item.exactor_id] = item.group_code cls.excavator_group_dict[item.exactor_id] = item.group_id
if item.group_code not in cls.group_dump_dict.keys(): if item.group_id not in cls.group_dump_dict.keys():
cls.group_dump_dict[item.group_code] = [item.unload_area_id] cls.group_dump_dict[item.group_id] = [item.unload_area_id]
else: else:
cls.group_dump_dict[item.group_code].append(item.unload_area_id) cls.group_dump_dict[item.group_id].append(item.unload_area_id)
cls.dump_group_dict[item.unload_area_id] = item.group_code cls.dump_group_dict[item.unload_area_id] = item.group_id
except Exception as es:
logger.error("挖机/卸载区与group_id映射更新异常")
logger.error(es)
# update truck<->group map if item.group_id not in cls.group_truck_dict.keys():
try: cls.group_truck_dict[item.group_id] = [item.truck_id]
for item in session_mysql.query(DispatchEquipment).filter_by(group_type=1).all():
if item.group_code not in cls.group_truck_dict.keys():
cls.group_truck_dict[item.group_code] = [item.equipment_id]
else: else:
cls.group_truck_dict[item.group_code].append(item.equipment_id) cls.group_truck_dict[item.group_id].append(item.truck_id)
cls.truck_group_dict[item.equipment_id] = item.group_code cls.truck_group_dict[item.truck_id] = item.group_id
hh = cls.group_excavator_dict
except Exception as es: except Exception as es:
logger.error("矿卡与group_id映射更新异常") logger.error("挖机/卸载区/矿卡与group_id映射更新异常")
logger.error(es) logger.error(es)
# update group set
try: try:
cls.group_set = set(cls.group_excavator_dict.keys()) cls.group_set = set(cls.group_excavator_dict.keys())
except Exception as es: except Exception as es:
logger.error(es) logger.error(es)
# try:
# for item in session_mysql.query(DispatchMatch).filter_by(group_type=1).all():
#
# # if item.group_code not in cls.group_excavator_dict.keys():
# # cls.group_excavator_dict[item.group_code] = item.excavator_id
# # else:
# # cls.group_excavator_dict[item.group_code].append(item.excavator_id)
# # cls.excavator_group_dict[item.excavator_id] = item.group_code
# if item.load_area_id is not None and item.dump_id is not None:
# if item.group_code not in cls.group_excavator_dict.keys():
# cls.group_excavator_dict[item.group_code] = [item.exactor_id]
# else:
# cls.group_excavator_dict[item.group_code].append(item.exactor_id)
# cls.excavator_group_dict[item.exactor_id] = item.group_code
#
# if item.group_code not in cls.group_dump_dict.keys():
# cls.group_dump_dict[item.group_code] = [item.unload_area_id]
# else:
# cls.group_dump_dict[item.group_code].append(item.unload_area_id)
# cls.dump_group_dict[item.unload_area_id] = item.group_code
# except Exception as es:
# logger.error("挖机/卸载区与group_id映射更新异常")
# logger.error(es)
# update truck<->group map
# try:
# for item in session_mysql.query(DispatchEquipment).filter_by(group_type=1).all():
# if item.group_code not in cls.group_truck_dict.keys():
# cls.group_truck_dict[item.group_code] = [item.equipment_id]
# else:
# cls.group_truck_dict[item.group_code].append(item.equipment_id)
# cls.truck_group_dict[item.equipment_id] = item.group_code
# except Exception as es:
# logger.error("矿卡与group_id映射更新异常")
# logger.error(es)
# update group set
# try: # try:
# # group_dump_dict = {} -->> {team_id:[unload_area_id,unload_area_id],...} # # group_dump_dict = {} -->> {team_id:[unload_area_id,unload_area_id],...}
...@@ -363,11 +407,20 @@ class DispatchInfo: ...@@ -363,11 +407,20 @@ class DispatchInfo:
@classmethod @classmethod
def get_park_to_excavator_distance(cls, group_id): def get_park_to_excavator_distance(cls, group_id):
excavators = cls.group_excavator_dict[group_id] excavators = cls.group_excavator_dict[group_id]
park_matrix = np.zeros((1, len(excavators))) park_matrix = np.ones((1, len(excavators)))
try:
for i in range(len(excavators)): for i in range(len(excavators)):
load_area_id = cls.excavator_load_dict[excavators[i]] load_area_id = cls.excavator_load_dict[excavators[i]]
try:
distance = session_postgre.query(WalkTimePark).filter_by(load_area_id=load_area_id).first().park_load_distance distance = session_postgre.query(WalkTimePark).filter_by(load_area_id=load_area_id).first().park_load_distance
park_matrix[0][i] = distance park_matrix[0][i] = distance
except Exception as es:
logger.error("查询不到距离,设置为100000000")
logger.error(es)
park_matrix[0][i] = 100000000 # 设置为一个很大的数字
except Exception as es:
logger.error("park->load距离更新异常, 存在备停区不可达的装载区")
logger.error(es)
return park_matrix return park_matrix
......
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