Commit d9c18bb7 authored by 张晓彤's avatar 张晓彤

修复修BUG

parent b95e895f
......@@ -614,7 +614,7 @@ class TruckInfo(WalkManage):
# 矿卡绑定物料
self.truck_material_bind = {}
# 矿卡绑定物料modify
self.dump_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0)
self.dump_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_dump_num")), 0)
# self.excavator_material_bind_modify =np.zeros(self.dynamic_truck_num)
self.excavator_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0)
# # group_id
......
......@@ -852,37 +852,37 @@ class Dispatcher(WalkManage):
for truck_index in index:
if len(Seq[truck_index]) > 0:
try:
# 获取矿卡id
truck_id = truck.truck_index_to_uuid_dict[truck_index]
# 判断矿卡是否禁用
if truck_id in truck.update_truck_disable_list():
continue
# try:
# 获取矿卡id
truck_id = truck.truck_index_to_uuid_dict[truck_index]
# 获取矿卡当前任务
task = truck_current_task[truck.truck_index_to_uuid_dict[truck_index]]
# 判断矿卡是否禁用
if truck_id in truck.update_truck_disable_list():
continue
# 矿卡结束当前派车计划后的目的地
end_eq_index = truck_current_trip[truck_index][1]
# 获取矿卡当前任务
task = truck_current_task[truck.truck_index_to_uuid_dict[truck_index]]
# 调用调度函数,得到最优目的地序号
target_eq_index = self.truck_schedule(truck.truck_index_to_uuid_dict[truck_index])
# 矿卡结束当前派车计划后的目的地
end_eq_index = truck_current_trip[truck_index][1]
# 写入Seq序列
Seq[truck_index][1] = target_eq_index
# 调用调度函数,得到最优目的地序号
target_eq_index = self.truck_schedule(truck.truck_index_to_uuid_dict[truck_index])
try:
group_id = self.group.dispatch_truck_group[truck_id]
except Exception as es:
logger.error("非动态调度矿卡")
logger.error(es)
# 写入Seq序列
Seq[truck_index][1] = target_eq_index
try:
group_id = self.group.dispatch_truck_group[truck_id]
except Exception as es:
# logger.error(f'矿卡 {truck_uuid_to_name_dict[self.truck_index_to_uuid_dict[truck_index]]} 派车计划计算异常')
logger.error(f'矿卡派车计划计算异常')
logger.error("非动态调度矿卡")
logger.error(es)
# except Exception as es:
# # logger.error(f'矿卡 {truck_uuid_to_name_dict[self.truck_index_to_uuid_dict[truck_index]]} 派车计划计算异常')
# logger.error(f'矿卡派车计划计算异常')
# logger.error(es)
try:
if task in empty_task_set:
......@@ -1064,43 +1064,44 @@ class Group(WalkManage):
opt_goto_dump_traffic_flow, opt_goto_excavator_traffic_flow = traffic_flow_plan(truck)
# try:
try:
print("uuid_to_index_dict")
print(dump.dump_uuid_to_index_dict)
print(excavator.excavator_uuid_to_index_dict)
print("uuid_to_index_dict")
print(dump.dump_uuid_to_index_dict)
print(excavator.excavator_uuid_to_index_dict)
for group_id in self.group_set:
dump_group = self.device_group[group_id][0]
excavator_group = self.device_group[group_id][1]
print("group")
print(self.device_group)
local_opt_goto_dump_traffic_flow = np.zeros((len(excavator_group), len(dump_group)))
local_opt_goto_excavator_traffic_flow = np.zeros((len(dump_group), len(excavator_group)))
local_actual_goto_dump_traffic_flow = np.zeros((len(excavator_group), len(dump_group)))
local_actual_goto_excavator_traffic_flow = np.zeros((len(dump_group), len(excavator_group)))
for excavator_id in excavator_group:
for dump_id in dump_group:
dump_group_index = self.group_dump_uuid_to_index_dict[group_id][dump_id]
excavator_group_index = self.group_excavator_uuid_to_index_dict[group_id][excavator_id]
local_opt_goto_dump_traffic_flow[excavator_group_index][dump_group_index] = \
opt_goto_dump_traffic_flow[excavator.excavator_uuid_to_index_dict[excavator_id]][dump.dump_uuid_to_index_dict[dump_id]]
for group_id in self.group_set:
dump_group = self.device_group[group_id][0] # group 类最后更新,读取派车计划及分组情况,和前面的uuid 可能不一致
excavator_group = self.device_group[group_id][1]
print("group")
print(self.device_group)
local_opt_goto_dump_traffic_flow = np.zeros((len(excavator_group), len(dump_group)))
local_opt_goto_excavator_traffic_flow = np.zeros((len(dump_group), len(excavator_group)))
local_actual_goto_dump_traffic_flow = np.zeros((len(excavator_group), len(dump_group)))
local_actual_goto_excavator_traffic_flow = np.zeros((len(dump_group), len(excavator_group)))
for excavator_id in excavator_group:
for dump_id in dump_group:
dump_group_index = self.group_dump_uuid_to_index_dict[group_id][dump_id]
excavator_group_index = self.group_excavator_uuid_to_index_dict[group_id][excavator_id]
local_opt_goto_dump_traffic_flow[excavator_group_index][dump_group_index] = \
opt_goto_dump_traffic_flow[excavator.excavator_uuid_to_index_dict[excavator_id]][dump.dump_uuid_to_index_dict[dump_id]]
local_opt_goto_excavator_traffic_flow[dump_group_index][excavator_group_index] = \
opt_goto_excavator_traffic_flow[dump.dump_uuid_to_index_dict[dump_id]][excavator.excavator_uuid_to_index_dict[excavator_id]]
local_opt_goto_excavator_traffic_flow[dump_group_index][excavator_group_index] = \
opt_goto_excavator_traffic_flow[dump.dump_uuid_to_index_dict[dump_id]][excavator.excavator_uuid_to_index_dict[excavator_id]]
local_actual_goto_dump_traffic_flow[excavator_group_index][dump_group_index] = \
actual_goto_dump_traffic_flow[excavator.excavator_uuid_to_index_dict[excavator_id]][dump.dump_uuid_to_index_dict[dump_id]]
local_actual_goto_dump_traffic_flow[excavator_group_index][dump_group_index] = \
actual_goto_dump_traffic_flow[excavator.excavator_uuid_to_index_dict[excavator_id]][dump.dump_uuid_to_index_dict[dump_id]]
local_actual_goto_excavator_traffic_flow[dump_group_index][excavator_group_index] = \
actual_goto_excavator_traffic_flow[dump.dump_uuid_to_index_dict[dump_id]][excavator.excavator_uuid_to_index_dict[excavator_id]]
local_actual_goto_excavator_traffic_flow[dump_group_index][excavator_group_index] = \
actual_goto_excavator_traffic_flow[dump.dump_uuid_to_index_dict[dump_id]][excavator.excavator_uuid_to_index_dict[excavator_id]]
self.group_opt_goto_dump_traffic_flow[group_id] = local_opt_goto_dump_traffic_flow
self.group_opt_goto_excavator_traffic_flow[group_id] = local_opt_goto_excavator_traffic_flow
self.group_actual_goto_dump_traffic_flow[group_id] = local_actual_goto_dump_traffic_flow
self.group_actual_goto_excavator_traffic_flow[group_id] = local_actual_goto_excavator_traffic_flow
# except Exception as es:
# logger.info(es)
self.group_opt_goto_dump_traffic_flow[group_id] = local_opt_goto_dump_traffic_flow
self.group_opt_goto_excavator_traffic_flow[group_id] = local_opt_goto_excavator_traffic_flow
self.group_actual_goto_dump_traffic_flow[group_id] = local_actual_goto_dump_traffic_flow
self.group_actual_goto_excavator_traffic_flow[group_id] = local_actual_goto_excavator_traffic_flow
except Exception as es:
logger.error(es)
logger.error("分组车流更新异常")
logger.info("group_opt_traffic_flow")
logger.info(self.group_opt_goto_dump_traffic_flow)
......@@ -1218,6 +1219,8 @@ class Group(WalkManage):
for group_dump_index in range(group_dump_num):
dump_index = dump.dump_uuid_to_index_dict[self.group_dump_index_to_uuid_dict[group_id][group_dump_index]]
print(truck.dump_material_bind_modify, truck_index, dump_index)
print(truck.dump_material_bind_modify[truck_index][dump_index], truck_index, dump_index)
dump_material_bind_modify[group_dump_index] = truck.dump_material_bind_modify[truck_index][dump_index]
self.group_excavator_exclude_modify[truck_id] = excavator_exclude_modify
......@@ -1318,51 +1321,51 @@ class Group(WalkManage):
# 下面三个函数保证程序定期执行,不用管他
def process(dispatcher):
try:
# 更新周期参数
logger.info("#####################################周期更新开始#####################################")
period_para_update()
if get_value("dynamic_dump_num") * get_value("dynamic_excavator_num") == 0:
raise Exception("无动态派车计划可用")
return
if get_value("dynamic_truck_num") == 0:
raise Exception("无动态派车可用矿卡")
return
# para_process(dispatcher)
#
# state_process(dispatcher)
# 清空数据库缓存
session_mysql.commit()
session_mysql.flush()
# 清空数据库缓存
session_postgre.commit()
session_postgre.flush()
#
# # 周期更新
# dispatcher.para_period_update()
# 周期更新
dispatcher.dispatcher_period_update()
# 参数重置
dispatcher.sim_para_reset()
# try:
# 更新周期参数
logger.info("#####################################周期更新开始#####################################")
# try:
period_para_update()
if get_value("dynamic_dump_num") * get_value("dynamic_excavator_num") == 0:
raise Exception("无动态派车计划可用")
return
if get_value("dynamic_truck_num") == 0:
raise Exception("无动态派车可用矿卡")
return
# para_process(dispatcher)
#
# state_process(dispatcher)
# 调度计算
dispatcher.schedule_construct()
# 清空数据库缓存
session_mysql.commit()
session_mysql.flush()
# except Exception as es:
# logger.error("更新不及时")
# logger.error(es)
# 清空数据库缓存
session_postgre.commit()
session_postgre.flush()
#
# # 周期更新
# dispatcher.para_period_update()
# 周期更新
dispatcher.dispatcher_period_update()
# 参数重置
dispatcher.sim_para_reset()
# try:
# 调度计算
dispatcher.schedule_construct()
# except Exception as es:
# logger.error("更新不及时")
# logger.error(es)
logger.info("#####################################周期更新结束#####################################")
logger.info("#####################################周期更新结束#####################################")
except Exception as es:
logger.error(es)
# except Exception as es:
# logger.error(es)
scheduler = sched.scheduler(time.time, time.sleep)
......
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