Commit 7852b5be authored by Allvey's avatar Allvey

修复未知BUG

parent 2ae19283
......@@ -64,26 +64,26 @@ class DumpInfo(WalkManage):
for dump_id in self.dump_uuid_to_index_dict.keys():
ave_unload_time = 0
unload_count = 0
try:
for query in (
session_mysql.query(JobRecord.start_time, JobRecord.end_time)
.join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
.filter(Equipment.id == dump_id, JobRecord.end_time != None)
.order_by(JobRecord.start_time.desc())
.limit(10)
):
ave_unload_time = ave_unload_time + float(
(query.end_time - query.start_time)
/ timedelta(hours=0, minutes=1, seconds=0)
)
unload_count = unload_count + 1
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = (
ave_unload_time / unload_count
)
except Exception as es:
logger.error(f"卸载设备 {dump_id} 卸载时间信息缺失, 已设为默认值(1min)")
logger.error(es)
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = 5.00
# try:
# for query in (
# session_mysql.query(JobRecord.start_time, JobRecord.end_time)
# .join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
# .filter(Equipment.id == dump_id, JobRecord.end_time != None)
# .order_by(JobRecord.start_time.desc())
# .limit(10)
# ):
# ave_unload_time = ave_unload_time + float(
# (query.end_time - query.start_time)
# / timedelta(hours=0, minutes=1, seconds=0)
# )
# unload_count = unload_count + 1
# self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = (
# ave_unload_time / unload_count
# )
# except Exception as es:
# logger.error(f"卸载设备 {dump_id} 卸载时间信息缺失, 已设为默认值(1min)")
# logger.error(es)
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = 5.00
# print("average_unload_time: ", self.unloading_time[self.dump_uuid_to_index_dict[dump_id]])
# 更新卸载设备出入时间
......@@ -93,24 +93,24 @@ class DumpInfo(WalkManage):
now = datetime.now().strftime("%Y-%m-%d")
for dump_id in self.dump_uuid_to_index_dict.keys():
try:
for query in (
session_mysql.query(WorkRecord)
.filter(
WorkRecord.equipment_id == dump_id, WorkRecord.work_day >= now
)
.first()
):
self.entrance_time[self.dump_uuid_to_index_dict[dump_id]] = float(
query.load_entrance_time / query.load_entrance_count
)
self.exit_time[self.dump_uuid_to_index_dict[dump_id]] = float(
query.exit_entrance_time / query.exit_entrance_count
)
except Exception as es:
logger.error(f"卸载设备 {dump_id} 出入场时间信息缺失, 已设为默认值(1min)")
logger.error(es)
self.entrance_time[self.dump_uuid_to_index_dict[dump_id]] = 0.50
# try:
# for query in (
# session_mysql.query(WorkRecord)
# .filter(
# WorkRecord.equipment_id == dump_id, WorkRecord.work_day >= now
# )
# .first()
# ):
# self.entrance_time[self.dump_uuid_to_index_dict[dump_id]] = float(
# query.load_entrance_time / query.load_entrance_count
# )
# self.exit_time[self.dump_uuid_to_index_dict[dump_id]] = float(
# query.exit_entrance_time / query.exit_entrance_count
# )
# except Exception as es:
# logger.error(f"卸载设备 {dump_id} 出入场时间信息缺失, 已设为默认值(1min)")
# logger.error(es)
self.entrance_time[self.dump_uuid_to_index_dict[dump_id]] = 0.50
self.exit_time[self.dump_uuid_to_index_dict[dump_id]] = 0.50
def update_dump_material(self):
......
......@@ -30,9 +30,9 @@ class ExcavatorInfo(WalkManage):
# 挖机对应物料类型
self.excavator_material = {}
# 挖机设备优先级
self.excavator_priority_coefficient = np.ones(dynamic_excavator_num)
self.excavator_priority_coefficient = np.ones(self.dynamic_excavator_num)
# 挖机物料优先级
self.excavator_material_priority = np.ones(dynamic_excavator_num)
self.excavator_material_priority = np.ones(self.dynamic_excavator_num)
# 初始化读取映射及路网
self.period_map_para_load()
......@@ -58,28 +58,30 @@ class ExcavatorInfo(WalkManage):
for excavator_id in self.excavator_uuid_to_index_dict.keys():
ave_load_time = 0
load_count = 0
try:
for query in (
session_mysql.query(JobRecord.start_time, JobRecord.end_time)
.join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
.filter(Equipment.id == excavator_id, JobRecord.end_time != None)
.order_by(JobRecord.start_time.desc())
.limit(10)
):
ave_load_time = ave_load_time + float(
(query.end_time - query.start_time)
/ timedelta(hours=0, minutes=1, seconds=0)
)
load_count = load_count + 1
self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = (
ave_load_time / load_count
)
except Exception as es:
logger.error(f"挖机 {excavator_id} 装载时间信息缺失, 已设为默认值(1min)")
logger.error(es)
print("loading_time", self.loading_time)
print("excavator_uuid_to_index_dict", self.excavator_uuid_to_index_dict)
self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = 5.00
# try:
# for query in (
# session_mysql.query(JobRecord.start_time, JobRecord.end_time)
# .join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
# .filter(Equipment.id == excavator_id, JobRecord.end_time != None)
# .order_by(JobRecord.start_time.desc())
# .limit(10)
# ):
# ave_load_time = ave_load_time + float(
# (query.end_time - query.start_time)
# / timedelta(hours=0, minutes=1, seconds=0)
# )
# load_count = load_count + 1
# self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = (
# ave_load_time / load_count
# )
# except Exception as es:
# logger.error(f"挖机 {excavator_id} 装载时间信息缺失, 已设为默认值(1min)")
# logger.error(es)
logger.info("loading_time")
logger.info(self.loading_time)
logger.info("excavator_uuid_to_index_dict")
logger.info(self.excavator_uuid_to_index_dict)
self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = 5.00
# 更新挖机设备出入时间
def update_excavator_entrance_exit_time(self):
......@@ -88,28 +90,28 @@ class ExcavatorInfo(WalkManage):
now = datetime.now().strftime("%Y-%m-%d")
for excavator_id in self.excavator_uuid_to_index_dict.keys():
try:
for query in (
session_mysql.query(WorkRecord)
.filter(
WorkRecord.equipment_id == excavator_id,
WorkRecord.work_day >= now,
)
.first()
):
self.entrance_time[
self.excavator_uuid_to_index_dict[excavator_id]
] = float(query.load_entrance_time / query.load_entrance_count)
self.exit_time[
self.excavator_uuid_to_index_dict[excavator_id]
] = float(query.exit_entrance_time / query.exit_entrance_count)
except Exception as es:
logger.error(f"挖机设备 {excavator_id} 出入场时间信息缺失, 已设为默认值(1min)")
logger.error(es)
self.entrance_time[
self.excavator_uuid_to_index_dict[excavator_id]
] = 0.50
self.exit_time[self.excavator_uuid_to_index_dict[excavator_id]] = 0.50
# try:
# for query in (
# session_mysql.query(WorkRecord)
# .filter(
# WorkRecord.equipment_id == excavator_id,
# WorkRecord.work_day >= now,
# )
# .first()
# ):
# self.entrance_time[
# self.excavator_uuid_to_index_dict[excavator_id]
# ] = float(query.load_entrance_time / query.load_entrance_count)
# self.exit_time[
# self.excavator_uuid_to_index_dict[excavator_id]
# ] = float(query.exit_entrance_time / query.exit_entrance_count)
# except Exception as es:
# logger.error(f"挖机设备 {excavator_id} 出入场时间信息缺失, 已设为默认值(1min)")
# logger.error(es)
self.entrance_time[
self.excavator_uuid_to_index_dict[excavator_id]
] = 0.50
self.exit_time[self.excavator_uuid_to_index_dict[excavator_id]] = 0.50
# 读取出入场时间
def get_loading_task_time(self):
......@@ -124,7 +126,8 @@ class ExcavatorInfo(WalkManage):
return loading_task_time
def update_excavator_material(self):
print("here", self.dynamic_excavator_set)
logger.info("self.dynamic_excavator_set")
logger.info(self.dynamic_excavator_set)
for excavator_id in self.dynamic_excavator_set:
try:
load_area_id = session_mysql.query(Dispatch).filter_by(exactor_id=excavator_id, isdeleted=0, isauto=1).first().load_area_id
......@@ -135,12 +138,13 @@ class ExcavatorInfo(WalkManage):
def update_excavator_priority(self):
print("dynamic_excavator_set", self.dynamic_excavator_set)
logger.info("dynamic_excavator_set")
logger.info(self.dynamic_excavator_set)
for excavator_id in self.dynamic_excavator_set:
item = session_mysql.query(Equipment).filter_by(id=excavator_id).first()
print("excavator_priority_coefficient", self.excavator_priority_coefficient)
print(self.excavator_uuid_to_index_dict)
logger.info("excavator_priority_coefficient")
logger.info(self.excavator_priority_coefficient)
self.excavator_priority_coefficient[self.excavator_uuid_to_index_dict[excavator_id]] = item.priority + 1
# 物料优先级控制
......
......@@ -65,9 +65,9 @@ class TruckInfo(WalkManage):
# 矿卡绑定物料
self.truck_material_bind = {}
# 矿卡绑定物料modify
self.dump_material_bind_modify = np.full((self.dynamic_truck_num, dynamic_dump_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, dynamic_excavator_num), 0)
self.excavator_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0)
# 初始化读取映射及路网
self.period_map_para_load()
self.period_walk_para_load()
......@@ -226,61 +226,61 @@ class TruckInfo(WalkManage):
except Exception as es:
logger.warning(es)
try:
# 若矿卡状态为空运
if task in empty_task_set:
last_unload_time = self.relative_last_unload_time[
self.truck_index_to_uuid_dict[i]
]
# 开始区域id
start_area_id = self.dump_uuid_to_unload_area_uuid_dict[
item.dump_id
]
# 开始区域序号
start_area_index = unload_area_uuid_to_index_dict[start_area_id]
end_area_id = self.excavator_uuid_to_load_area_uuid_dict[
item.exactor_id
]
end_area_index = load_area_uuid_to_index_dict[end_area_id]
self.truck_current_trip[i] = [
self.dump_uuid_to_index_dict[item.dump_id],
self.excavator_uuid_to_index_dict[item.exactor_id],
]
self.cur_truck_reach_excavator[i] = (
last_unload_time
+ walk_time_to_load_area[start_area_index][end_area_index]
)
# 若矿卡状态为重载
elif task in heavy_task_set:
# print("读取重载行程")
# print(item.exactor_id, item.dump_id)
last_load_time = self.relative_last_load_time[
self.truck_index_to_uuid_dict[i]
]
# 开始区域id
start_area_id = self.excavator_uuid_to_load_area_uuid_dict[
item.exactor_id
]
# 开始区域序号
start_area_index = load_area_uuid_to_index_dict[start_area_id]
# 结束区域id
end_area_id = self.dump_uuid_to_unload_area_uuid_dict[item.dump_id]
# 结束区域序号
end_area_index = unload_area_uuid_to_index_dict[end_area_id]
self.truck_current_trip[i] = [
self.excavator_uuid_to_index_dict[item.exactor_id],
self.dump_uuid_to_index_dict[item.dump_id],
]
self.cur_truck_reach_dump[i] = (
last_load_time
+ walk_time_to_unload_area[end_area_index][start_area_index]
)
# 其他状态,矿卡状态为-2,equipment_pair表不存在该矿卡
else:
pass
except Exception as es:
logger.error("矿卡行程读取异常")
logger.error(es)
# try:
# 若矿卡状态为空运
if task in empty_task_set:
last_unload_time = self.relative_last_unload_time[
self.truck_index_to_uuid_dict[i]
]
# 开始区域id
start_area_id = self.dump_uuid_to_unload_area_uuid_dict[
item.dump_id
]
# 开始区域序号
start_area_index = unload_area_uuid_to_index_dict[start_area_id]
end_area_id = self.excavator_uuid_to_load_area_uuid_dict[
item.exactor_id
]
end_area_index = load_area_uuid_to_index_dict[end_area_id]
self.truck_current_trip[i] = [
self.dump_uuid_to_index_dict[item.dump_id],
self.excavator_uuid_to_index_dict[item.exactor_id],
]
self.cur_truck_reach_excavator[i] = (
last_unload_time
+ walk_time_to_load_area[start_area_index][end_area_index]
)
# 若矿卡状态为重载
elif task in heavy_task_set:
# print("读取重载行程")
# print(item.exactor_id, item.dump_id)
last_load_time = self.relative_last_load_time[
self.truck_index_to_uuid_dict[i]
]
# 开始区域id
start_area_id = self.excavator_uuid_to_load_area_uuid_dict[
item.exactor_id
]
# 开始区域序号
start_area_index = load_area_uuid_to_index_dict[start_area_id]
# 结束区域id
end_area_id = self.dump_uuid_to_unload_area_uuid_dict[item.dump_id]
# 结束区域序号
end_area_index = unload_area_uuid_to_index_dict[end_area_id]
self.truck_current_trip[i] = [
self.excavator_uuid_to_index_dict[item.exactor_id],
self.dump_uuid_to_index_dict[item.dump_id],
]
self.cur_truck_reach_dump[i] = (
last_load_time
+ walk_time_to_unload_area[end_area_index][start_area_index]
)
# 其他状态,矿卡状态为-2,equipment_pair表不存在该矿卡
else:
pass
# except Exception as es:
# logger.error("矿卡行程读取异常")
# logger.error(es)
self.truck_current_trip.flatten()
# print("当前矿卡行程:")
......@@ -365,7 +365,7 @@ class TruckInfo(WalkManage):
self.truck_excavator_exclude = {}
self.excavator_exclude_modify = np.full(
(self.dynamic_truck_num, dynamic_excavator_num), 0
(self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0
)
try:
......@@ -421,7 +421,7 @@ class TruckInfo(WalkManage):
truck_index = self.truck_uuid_to_index_dict[truck_id]
print("excavator_material_bind_modify", self.excavator_material_bind_modify)
# print("excavator_material_bind_modify", self.excavator_material_bind_modify)
if truck_id in self.truck_material_bind:
......@@ -480,9 +480,9 @@ class TruckInfo(WalkManage):
# 矿卡绑定物料
self.truck_material_bind = {}
# 矿卡绑定物料modify
self.dump_material_bind_modify = np.full((self.dynamic_truck_num, dynamic_excavator_num), 0)
self.dump_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0)
# self.excavator_material_bind_modify =np.zeros(self.dynamic_truck_num)
self.excavator_material_bind_modify = np.full((self.dynamic_truck_num, dynamic_excavator_num), 0)
self.excavator_material_bind_modify = np.full((self.dynamic_truck_num, get_value("dynamic_excavator_num")), 0)
def para_period_update(self):
......
......@@ -477,18 +477,19 @@ def period_para_update():
global_dict["distance_park_to_excavator"] = walk_manage.distance_park_to_excavator
global_dict["distance_to_dump"] = walk_manage.distance_to_dump
print("walk_manage_para")
print("distance_to_excavator", walk_manage.distance_to_excavator)
print("distance_park_to_excavator", walk_manage.distance_park_to_excavator)
print("distance_to_dump", walk_manage.distance_to_dump)
print("excavator_uuid_to_index_dict", walk_manage.excavator_uuid_to_index_dict)
print("dump_uuid_to_index_dict", walk_manage.dump_uuid_to_index_dict)
print("here5", walk_manage.distance_park_to_excavator)
logger.info("walk_manage_para")
logger.info("distance_to_excavator")
logger.info(walk_manage.distance_to_excavator)
logger.info("distance_park_to_excavator")
logger.info(walk_manage.distance_park_to_excavator)
logger.info("distance_to_dump")
logger.info(walk_manage.distance_to_dump)
logger.info("excavator_uuid_to_index_dict")
logger.info(walk_manage.excavator_uuid_to_index_dict)
logger.info("dump_uuid_to_index_dict")
logger.info(walk_manage.dump_uuid_to_index_dict)
logger.info("walk_manage.distance_park_to_excavator")
logger.info(walk_manage.distance_park_to_excavator)
def get_value(name):
return global_dict[name]
......@@ -170,7 +170,8 @@ class PathPlanner(WalkManage):
cost_to_dump = np.zeros_like(get_value("distance_to_dump"))
cost_park_to_excavator = np.zeros_like(get_value("distance_park_to_excavator"))
print("here4", self.distance_park_to_excavator)
logger.info("distance_park_to_excavator")
logger.info(self.distance_park_to_excavator)
# try:
# 路网权重
......@@ -179,9 +180,11 @@ class PathPlanner(WalkManage):
# 路网禁用关系
walk_available = available_walk()
print("path_weight", walk_weight)
logger.info("path_weight")
logger.info(walk_weight)
print("walk_avail", walk_available)
logger.info("walk_avail")
logger.info(walk_available)
# except Exception as es:
# logger.error("无派车计划可用")
......@@ -190,8 +193,8 @@ class PathPlanner(WalkManage):
for j in range(get_value("dynamic_excavator_num")):
load_area_index = self.excavator_index_to_load_area_index_dict[j]
unload_area_index = self.dump_index_to_unload_area_index_dict[i]
print("here6", cost_to_excavator)
print("here7", self.cost_to_load_area)
logger.info("cost_to_excavator")
logger.info(cost_to_excavator)
cost_to_excavator[i][j] = self.cost_to_load_area[unload_area_index][load_area_index] / walk_weight[i][j]
cost_to_dump[i][j] = self.cost_to_unload_area[unload_area_index][load_area_index] / walk_weight[i][j] * walk_available[i][j]
......
......@@ -126,7 +126,7 @@ class Dispatcher(WalkManage):
# 初始化挖机可用时间
self.cur_excavator_ava_time = np.full(
dynamic_excavator_num,
get_value("dynamic_excavator_num"),
(datetime.now() - self.start_time)
/ timedelta(hours=0, minutes=1, seconds=0),
)
......@@ -236,61 +236,60 @@ class Dispatcher(WalkManage):
(dynamic_dump_num, dynamic_excavator_num)
)
# try:
try:
for i in range(dynamic_truck_num):
task = truck_current_task[truck.truck_index_to_uuid_dict[i]]
end_area_index = truck_current_trip[i][1]
start_area_index = truck_current_trip[i][0]
for i in range(dynamic_truck_num):
task = truck_current_task[truck.truck_index_to_uuid_dict[i]]
end_area_index = truck_current_trip[i][1]
start_area_index = truck_current_trip[i][0]
if task in heavy_task_set:
self.goto_dump_truck_num[start_area_index][end_area_index] += 1
self.actual_goto_dump_traffic_flow[start_area_index][end_area_index] += float(payload[i])
if task in heavy_task_set:
self.goto_dump_truck_num[start_area_index][end_area_index] += 1
self.actual_goto_dump_traffic_flow[start_area_index][end_area_index] += float(payload[i])
# logger.info("debug2")
# logger.info("debug2")
if task in empty_task_set:
self.goto_excavator_truck_num[start_area_index][end_area_index] += 1
self.actual_goto_excavator_traffic_flow[start_area_index][end_area_index] += float(payload[i])
if task in empty_task_set:
self.goto_excavator_truck_num[start_area_index][end_area_index] += 1
self.actual_goto_excavator_traffic_flow[start_area_index][end_area_index] += float(payload[i])
self.actual_goto_dump_traffic_flow = self.actual_goto_dump_traffic_flow / (
self.distance_to_dump.reshape(dynamic_excavator_num, dynamic_dump_num)
/ (1000 * empty_speed)
+ np.expand_dims(unloading_task_time, axis=0).repeat(
dynamic_excavator_num, axis=0
self.actual_goto_dump_traffic_flow = self.actual_goto_dump_traffic_flow / (
self.distance_to_dump.reshape(dynamic_excavator_num, dynamic_dump_num)
/ (1000 * empty_speed)
+ np.expand_dims(unloading_task_time, axis=0).repeat(
dynamic_excavator_num, axis=0
)
)
)
self.actual_goto_excavator_traffic_flow = (
self.actual_goto_excavator_traffic_flow
/ (
self.distance_to_excavator.reshape(
dynamic_dump_num, dynamic_excavator_num
)
/ (1000 * heavy_speed)
+ np.expand_dims(loading_task_time, axis=0).repeat(
dynamic_dump_num, axis=0
self.actual_goto_excavator_traffic_flow = (
self.actual_goto_excavator_traffic_flow
/ (
self.distance_to_excavator.reshape(
dynamic_dump_num, dynamic_excavator_num
)
/ (1000 * heavy_speed)
+ np.expand_dims(loading_task_time, axis=0).repeat(
dynamic_dump_num, axis=0
)
)
)
)
logger.info("self.goto_dump_truck_num")
logger.info(self.goto_dump_truck_num)
logger.info("self.goto_dump_truck_num")
logger.info(self.goto_dump_truck_num)
logger.info("self.actual_goto_dump_traffic_flow")
logger.info(self.actual_goto_dump_traffic_flow)
logger.info("self.goto_excavator_truck_num")
logger.info(self.goto_excavator_truck_num)
logger.info("self.actual_goto_dump_traffic_flow")
logger.info(self.actual_goto_dump_traffic_flow)
logger.info("self.actual_goto_excavator_traffic_flow")
logger.info(self.actual_goto_excavator_traffic_flow)
logger.info("self.goto_excavator_truck_num")
logger.info(self.goto_excavator_truck_num)
logger.info("self.actual_goto_excavator_traffic_flow")
logger.info(self.actual_goto_excavator_traffic_flow)
# except Exception as es:
# logger.error("更新不及时1")
# logger.error(es)
except Exception as es:
logger.error("未知错误001")
logger.error(es)
# print("驶往卸点实际载重")
# print(self.actual_goto_dump_traffic_flow)
......@@ -409,8 +408,6 @@ class Dispatcher(WalkManage):
self.cur_excavator_ava_time = np.zeros(excavator.get_excavator_num())
self.cur_dump_ava_time = np.zeros(dump.get_dump_num())
# 卡车完成装载及卸载时间(矿卡可用时间)
print("here1")
print(truck.get_truck_num())
self.cur_truck_ava_time = np.zeros(truck.get_truck_num())
# 模拟矿卡可用时间
self.sim_truck_ava_time = np.zeros(truck.get_truck_num())
......@@ -512,7 +509,7 @@ class Dispatcher(WalkManage):
else:
transport_value = self.cost_park_to_excavator
print("here3", self.cost_park_to_excavator)
print("self.cost_park_to_excavator", self.cost_park_to_excavator)
logger.info("transport_value")
logger.info(transport_value)
......@@ -714,7 +711,7 @@ class Dispatcher(WalkManage):
self.reset()
print("here2", self.cur_truck_ava_time)
print("self.cur_truck_ava_time", self.cur_truck_ava_time)
# try:
......@@ -758,22 +755,22 @@ class Dispatcher(WalkManage):
for truck_index in index:
if len(Seq[truck_index]) > 0:
# try:
try:
task = truck_current_task[truck.truck_index_to_uuid_dict[truck_index]]
task = truck_current_task[truck.truck_index_to_uuid_dict[truck_index]]
# 矿卡结束当前派车计划后的目的地
end_eq_index = truck_current_trip[truck_index][1]
# 矿卡结束当前派车计划后的目的地
end_eq_index = truck_current_trip[truck_index][1]
# 调用调度函数,得到最优目的地序号
target_eq_index = self.truck_schedule(truck.truck_index_to_uuid_dict[truck_index])
# 调用调度函数,得到最优目的地序号
target_eq_index = self.truck_schedule(truck.truck_index_to_uuid_dict[truck_index])
# 写入Seq序列
Seq[truck_index][1] = target_eq_index
# 写入Seq序列
Seq[truck_index][1] = target_eq_index
# except Exception as es:
# logger.error(f'矿卡 {truck_uuid_to_name_dict[truck_index_to_uuid_dict[truck]]} 派车计划计算异常')
# logger.error(es)
except Exception as es:
logger.error(f'矿卡 {truck_uuid_to_name_dict[self.truck_index_to_uuid_dict[truck]]} 派车计划计算异常')
logger.error(es)
try:
......@@ -896,6 +893,8 @@ def state_process(dispatcher):
print("state_process!")
logger.info("state_process!")
# 清空数据库缓存
session_mysql.commit()
session_mysql.flush()
......@@ -924,18 +923,21 @@ def state_process(dispatcher):
# 下面三个函数保证程序定期执行,不用管他
def process(dispatcher):
# try:
# 更新周期参数
period_para_update()
# if dynamic_dump_num * dynamic_excavator_num == 0:
# raise Exception("无动态派车计划可用")
para_process(dispatcher)
state_process(dispatcher)
# except Exception as es:
# logger.warning(es)
# logger.warning("外层异常捕获")
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)
except Exception as es:
logger.error(es)
scheduler = sched.scheduler(time.time, time.sleep)
......
......@@ -38,6 +38,7 @@ def build_work_area_uuid_index_map():
if unload_area_num < 1 or load_area_num < 1:
raise Exception("无路网信息")
except Exception as es:
raise Exception("路网读取")
logger.error(es)
return (
load_area_uuid_to_index_dict,
......@@ -64,6 +65,7 @@ def build_park_uuid_index_map():
if park_num < 1:
raise Exception("无备停区路网信息")
except Exception as es:
logger.info("备停区路网读取")
logger.error(es)
return park_uuid_to_index_dict, park_index_to_uuid_dict
......@@ -188,6 +190,7 @@ def update_total_truck():
if len(truck_list) < 1:
raise Exception("无矿卡设备可用-矿卡集合读取异常")
except Exception as es:
logger.info("矿卡读取")
logger.error(es)
return truck_list
......@@ -207,6 +210,7 @@ def update_fixdisp_truck():
if len(fixed_truck_list) < 1:
raise Exception("无固定派车计划可用-固定派车矿卡集合读取异常")
except Exception as es:
logger.info("派车计划读取")
logger.error(es)
return fixed_truck_list
......
......@@ -80,6 +80,7 @@ class Traffic_para(WalkManage):
# 设置卸载点信息
def extract_dump_info(self):
dynamic_dump_num = get_value("dynamic_dump_num")
try:
rule3 = session_mysql.query(DispatchRule).filter_by(id=3).first()
if not rule3.disabled:
......@@ -146,11 +147,10 @@ class Traffic_para(WalkManage):
self.goto_unload_area_factor[load_area_index][unload_area_index] = \
(cost_to_unload_area[unload_area_index][load_area_index] / (heavy_speed * 1000)) / self.payload
print((cost_to_unload_area[unload_area_index][load_area_index] / (heavy_speed * 1000)))
print(self.payload)
print("goto_unload_area_factor", self.goto_unload_area_factor)
print("cost_to_unload_area", cost_to_unload_area)
logger.info("goto_unload_area_factor")
logger.info(self.goto_unload_area_factor)
logger.info("cost_to_unload_area")
logger.info(cost_to_unload_area)
except Exception as es:
logger.error(es)
logger.error("车流规划信息计算异常")
......
......@@ -144,8 +144,8 @@ def traffic_flow_plan():
# try:
if (load_area_num * unload_area_num * excavator_num * dump_num == 0):
raise Exception("无派车计划可用")
# if (load_area_num * unload_area_num * excavator_num * dump_num == 0):
# raise Exception("无派车计划可用")
# 初始化参量
traffic_programme_para = Traffic_para_init(load_area_num, unload_area_num, excavator_num, dump_num)
# traffic_programme_para = traffic_programme_para_init(load_area_num, unload_area_num, excavator_num, dump_num)
......
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