Commit 7852b5be authored by Allvey's avatar Allvey

修复未知BUG

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