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):
# 行程预测对象
self._pre_sch = pre_sch
def truck_schedule(self, current_truck, alg):
"""
计算矿卡驶往各目的地的调度价值
......
......@@ -64,8 +64,17 @@ class DispatchInfo:
@author:maqc
@desc:分组与卸载区、挖机、矿卡的映射和反映射
"""
# 建立挖机和装载区映射
logger = get_logger("mqc.update_device_group_structure")
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],...}
# dump_group_dict = {} # unload_area_id -> team_id
group_code_dict = {} # group_code-->>team_id的映射
......@@ -120,19 +129,19 @@ class DispatchInfo:
logger.error("派车模式数据更新异常")
logger.error(es)
@classmethod
def dispatch_group_init(cls):
"""
update basic paras (group_set, dict, num ...)
:return:
"""
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)
# @classmethod
# def dispatch_group_init(cls):
# """
# update basic paras (group_set, dict, num ...)
# :return:
# """
# 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)
@classmethod
# 距离-->>数据格式:矩阵-->>to_load_distance
......@@ -144,11 +153,16 @@ class DispatchInfo:
"""
logger = get_logger("mqc.update_route_distance")
try:
try:
df = pd.DataFrame() # 记录装载区与卸载区之间的距离
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
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()):
unload_nums = list(set(cls.group_dump_dict[team_id])) # 获取同一个team_id对应的卸载区列表
exactor_nums = list(set(cls.group_excavator_dict[team_id])) # 获取同一个team_id对应的电铲列表
......@@ -157,20 +171,30 @@ class DispatchInfo:
(len(unload_nums), len(exactor_nums))) # 初始化距离矩阵,记录从卸载区-->>电铲的距离,即to_load_distance,空车模式
load_exactor_matrix = np.array(
unload_exactor_matrix).T # 初始化距离矩阵,记录从装载区-->>电铲的距离,即to_unload_distance,重车模式
try:
for i in range(len(unload_nums)):
for j in range(len(exactor_nums)):
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()) # 集合属性
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 n in range(len(unload_nums)):
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())
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.unload_distance[team_id] = load_exactor_matrix
except Exception as es:
logger.error("路网数据更新异常")
logger.error("路网距离数据更新异常4")
logger.error(es)
@classmethod
......
......@@ -119,7 +119,7 @@ class DumpInfo(WalkManage):
for dump_id in get_value("dynamic_dump_set"):
try:
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
except Exception as es:
self.logger.error("卸点物料更新异常")
......
......@@ -49,11 +49,9 @@ def process(dispatcher):
global_period_para_update()
# 更新数据
# 更新数据库缓存
DispatchInfo.renew_set()
DispatchInfo.dispatch_group_init()
DispatchInfo.update_device_group_structure()
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