Commit 287a4a43 authored by z5335534 Ao Guo's avatar z5335534 Ao Guo

dump修复,已经能跑通

parent 80c98bc3
No preview for this file type
...@@ -32,6 +32,7 @@ class ScheduleAlg(WalkManage): ...@@ -32,6 +32,7 @@ class ScheduleAlg(WalkManage):
# 行程预测对象 # 行程预测对象
self._pre_sch = pre_sch self._pre_sch = pre_sch
def truck_schedule(self, current_truck, alg): def truck_schedule(self, current_truck, alg):
""" """
计算矿卡驶往各目的地的调度价值 计算矿卡驶往各目的地的调度价值
......
...@@ -64,8 +64,17 @@ class DispatchInfo: ...@@ -64,8 +64,17 @@ class DispatchInfo:
@author:maqc @author:maqc
@desc:分组与卸载区、挖机、矿卡的映射和反映射 @desc:分组与卸载区、挖机、矿卡的映射和反映射
""" """
# 建立挖机和装载区映射
logger = get_logger("mqc.update_device_group_structure") logger = get_logger("mqc.update_device_group_structure")
try: try:
for value in session_postgre.query(DiggingWorkArea).all():
cls.load_exactor_dict[value.Id] = value.ExactorId
cls.exactor_load_dict[value.ExactorId] = value.Id
except Exception as es:
logger.error("挖机和装载区映射更新异常")
logger.error(es)
try:
# group_dump_dict = {} -->> {team_id:[unload_area_id,unload_area_id],...} # group_dump_dict = {} -->> {team_id:[unload_area_id,unload_area_id],...}
# dump_group_dict = {} # unload_area_id -> team_id # dump_group_dict = {} # unload_area_id -> team_id
group_code_dict = {} # group_code-->>team_id的映射 group_code_dict = {} # group_code-->>team_id的映射
...@@ -120,19 +129,19 @@ class DispatchInfo: ...@@ -120,19 +129,19 @@ class DispatchInfo:
logger.error("派车模式数据更新异常") logger.error("派车模式数据更新异常")
logger.error(es) logger.error(es)
@classmethod # @classmethod
def dispatch_group_init(cls): # def dispatch_group_init(cls):
""" # """
update basic paras (group_set, dict, num ...) # update basic paras (group_set, dict, num ...)
:return: # :return:
""" # """
try: # try:
for value in session_postgre.query(DiggingWorkArea).all(): # for value in session_postgre.query(DiggingWorkArea).all():
cls.load_exactor_dict[value.Id] = value.ExactorId # cls.load_exactor_dict[value.Id] = value.ExactorId
cls.exactor_load_dict[value.ExactorId] = value.Id # cls.exactor_load_dict[value.ExactorId] = value.Id
except Exception as es: # except Exception as es:
logger.error("初始化数据更新异常") # logger.error("初始化数据更新异常")
logger.error(es) # logger.error(es)
@classmethod @classmethod
# 距离-->>数据格式:矩阵-->>to_load_distance # 距离-->>数据格式:矩阵-->>to_load_distance
...@@ -144,11 +153,16 @@ class DispatchInfo: ...@@ -144,11 +153,16 @@ class DispatchInfo:
""" """
logger = get_logger("mqc.update_route_distance") logger = get_logger("mqc.update_route_distance")
try: try:
try:
df = pd.DataFrame() # 记录装载区与卸载区之间的距离 df = pd.DataFrame() # 记录装载区与卸载区之间的距离
for item in session_postgre.query(WalkTime).all(): for item in session_postgre.query(WalkTime).all():
temp = str(item.load_area_id), str(item.unload_area_id), item.to_load_distance, item.to_unload_distance temp = str(item.load_area_id), str(item.unload_area_id), item.to_load_distance, item.to_unload_distance
df = pd.concat([df, pd.DataFrame([temp])], axis=0, ignore_index=True) df = pd.concat([df, pd.DataFrame([temp])], axis=0, ignore_index=True)
except Exception as es:
logger.error("路网距离数据更新异常1")
logger.error(es)
# 距离矩阵
for team_id in list(cls.group_dump_dict.keys()): for team_id in list(cls.group_dump_dict.keys()):
unload_nums = list(set(cls.group_dump_dict[team_id])) # 获取同一个team_id对应的卸载区列表 unload_nums = list(set(cls.group_dump_dict[team_id])) # 获取同一个team_id对应的卸载区列表
exactor_nums = list(set(cls.group_excavator_dict[team_id])) # 获取同一个team_id对应的电铲列表 exactor_nums = list(set(cls.group_excavator_dict[team_id])) # 获取同一个team_id对应的电铲列表
...@@ -157,20 +171,30 @@ class DispatchInfo: ...@@ -157,20 +171,30 @@ class DispatchInfo:
(len(unload_nums), len(exactor_nums))) # 初始化距离矩阵,记录从卸载区-->>电铲的距离,即to_load_distance,空车模式 (len(unload_nums), len(exactor_nums))) # 初始化距离矩阵,记录从卸载区-->>电铲的距离,即to_load_distance,空车模式
load_exactor_matrix = np.array( load_exactor_matrix = np.array(
unload_exactor_matrix).T # 初始化距离矩阵,记录从装载区-->>电铲的距离,即to_unload_distance,重车模式 unload_exactor_matrix).T # 初始化距离矩阵,记录从装载区-->>电铲的距离,即to_unload_distance,重车模式
try:
for i in range(len(unload_nums)): for i in range(len(unload_nums)):
for j in range(len(exactor_nums)): for j in range(len(exactor_nums)):
id = set(df.loc[df[1] == str(unload_nums[i])].index.to_list()) & set( id = set(df.loc[df[1] == str(unload_nums[i])].index.to_list()) & set(
df.loc[df[0] == str(cls.exactor_load_dict[j])].index.to_list()) # 集合属性 df.loc[df[0] == str(cls.exactor_load_dict[j])].index.to_list()) # 集合属性
unload_exactor_matrix[i][j] = df.iloc[list(id)[0]][2] unload_exactor_matrix[i][j] = df.iloc[list(id)[0]][2]
except Exception as es:
logger.error("路网距离数据更新异常2")
logger.error(es)
try:
for m in range(len(exactor_nums)): for m in range(len(exactor_nums)):
for n in range(len(unload_nums)): for n in range(len(unload_nums)):
id = set(df.loc[df[0] == str(cls.exactor_load_dict[m])].index.to_list()) & set( id = set(df.loc[df[0] == str(cls.exactor_load_dict[m])].index.to_list()) & set(
df.loc[df[1] == str(unload_nums[n])].index.to_list()) df.loc[df[1] == str(unload_nums[n])].index.to_list())
load_exactor_matrix[m][n] = df.iloc[list(id)[0]][3] load_exactor_matrix[m][n] = df.iloc[list(id)[0]][3]
except Exception as es:
logger.error("路网距离数据更新异常3")
logger.error(es)
cls.load_distance[team_id] = unload_exactor_matrix cls.load_distance[team_id] = unload_exactor_matrix
cls.unload_distance[team_id] = load_exactor_matrix cls.unload_distance[team_id] = load_exactor_matrix
except Exception as es: except Exception as es:
logger.error("路网数据更新异常") logger.error("路网距离数据更新异常4")
logger.error(es) logger.error(es)
@classmethod @classmethod
......
...@@ -119,7 +119,7 @@ class DumpInfo(WalkManage): ...@@ -119,7 +119,7 @@ class DumpInfo(WalkManage):
for dump_id in get_value("dynamic_dump_set"): for dump_id in get_value("dynamic_dump_set"):
try: try:
unload_area_id = session_mysql.query(Dispatch).filter_by(dump_id=dump_id, isauto=1, isdeleted=0).first().unload_area_id unload_area_id = session_mysql.query(Dispatch).filter_by(dump_id=dump_id, isauto=1, isdeleted=0).first().unload_area_id
dump_material_id = session_postgre.query(DumpArea).filter_by(Id=unload_area_id).first().Material dump_material_id = session_postgre.query(DumpArea).filter_by(Id=unload_area_id).first().Materials
self.dump_material[dump_id] = dump_material_id self.dump_material[dump_id] = dump_material_id
except Exception as es: except Exception as es:
self.logger.error("卸点物料更新异常") self.logger.error("卸点物料更新异常")
......
...@@ -49,11 +49,9 @@ def process(dispatcher): ...@@ -49,11 +49,9 @@ def process(dispatcher):
global_period_para_update() global_period_para_update()
# 更新数据 # 更新数据库缓存
DispatchInfo.renew_set() DispatchInfo.renew_set()
DispatchInfo.dispatch_group_init()
DispatchInfo.update_device_group_structure() DispatchInfo.update_device_group_structure()
DispatchInfo.update_route_distance() DispatchInfo.update_route_distance()
......
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