Commit 73d461b0 authored by z5335534 Ao Guo's avatar z5335534 Ao Guo

修复部分异常

parent d151bae2
{ {
"para": { "para": {
"log_path": "/usr/local/fleet-log/dispatch", "log_path": "/Users/guoao/Desktop/work_log/Logs",
"empty_speed": 17, "empty_speed": 17,
"heavy_speed": 17, "heavy_speed": 17,
"dump_target_mass": 5000, "dump_target_mass": 5000,
...@@ -8,23 +8,23 @@ ...@@ -8,23 +8,23 @@
}, },
"mysql": { "mysql": {
"host": "192.168.9.152", "host": "172.16.0.103",
"port": "3306", "port": "3306",
"user": "root", "user": "root",
"password": "Huituo@123", "password": "Huituo@123",
"database": "waytous" "database": "ht_zhunneng_0913"
}, },
"postgresql": { "postgresql": {
"host": "192.168.9.152", "host": "172.16.0.103",
"port": "5432", "port": "5432",
"user": "postgres", "user": "postgres",
"password": "Huituo@123", "password": "Huituo@123",
"database": "shenbao_2021520" "database": "gis_zhunneng_0913"
}, },
"redis": { "redis": {
"host": "192.168.9.152", "host": "172.16.0.103",
"password": "Huituo@123" "password": "Huituo@123"
} }
} }
...@@ -263,6 +263,7 @@ class DispatchSubmission: ...@@ -263,6 +263,7 @@ class DispatchSubmission:
:param dispatch_plan_dict: (Dict) :param dispatch_plan_dict: (Dict)
:return: None :return: None
""" """
aa = dispatch_plan_dict
for truck_id, dispatch_plan in dispatch_plan_dict.items(): for truck_id, dispatch_plan in dispatch_plan_dict.items():
self.logger.info(f'======================================= 调度车辆 =======================================') self.logger.info(f'======================================= 调度车辆 =======================================')
self.logger.info(f'矿车编号 {get_value("truck_uuid_to_name_dict")[truck_id]} {truck_id}') self.logger.info(f'矿车编号 {get_value("truck_uuid_to_name_dict")[truck_id]} {truck_id}')
......
...@@ -187,6 +187,7 @@ class Group: ...@@ -187,6 +187,7 @@ class Group:
assert issubclass(solver, AlgorithmBase) assert issubclass(solver, AlgorithmBase)
s = solver(self, self.truck, self.pre_sch) # algorithm init s = solver(self, self.truck, self.pre_sch) # algorithm init
aa = self.truck_set
for i in list(self.truck_set): for i in list(self.truck_set):
truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]] truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]]
truck_task = self.truck.get_truck_current_task()[i] truck_task = self.truck.get_truck_current_task()[i]
...@@ -194,7 +195,7 @@ class Group: ...@@ -194,7 +195,7 @@ class Group:
self.truck_info_list[i] = truck_info self.truck_info_list[i] = truck_info
# 全智能模式 # 全智能模式
if self.group_mode == 1: if self.group_mode == 1:
if truck_task in [-2, 3, 4]: if truck_task in [-2, 2,3, 4]:
try: try:
next_excavator_value = s.solve(truck_info) next_excavator_value = s.solve(truck_info)
...@@ -212,7 +213,7 @@ class Group: ...@@ -212,7 +213,7 @@ class Group:
self.logger.error("重载车辆全智能模式-计算异常") self.logger.error("重载车辆全智能模式-计算异常")
self.logger.error(es) self.logger.error(es)
if truck_task in [0, 1]: if truck_task in [0, 1, 5]:
try: try:
bb = truck_task bb = truck_task
...@@ -227,7 +228,7 @@ class Group: ...@@ -227,7 +228,7 @@ class Group:
self.logger.error(es) self.logger.error(es)
# 空车智能模式 # 空车智能模式
elif self.group_mode == 2: elif self.group_mode == 2:
if truck_task in [-2, 3, 4]: if truck_task in [-2, 2,3, 4]:
try: try:
next_excavator_value = s.solve(truck_info) next_excavator_value = s.solve(truck_info)
...@@ -243,7 +244,7 @@ class Group: ...@@ -243,7 +244,7 @@ class Group:
except Exception as es: except Exception as es:
self.logger.error("重载车辆空车智能模式-计算异常") self.logger.error("重载车辆空车智能模式-计算异常")
self.logger.error(es) self.logger.error(es)
if truck_task in [0, 1]: if truck_task in [0, 1, 5]:
try: try:
truck_dispatch[i] = DispatchInfo.get_truck_match(i) truck_dispatch[i] = DispatchInfo.get_truck_match(i)
except Exception as es: except Exception as es:
...@@ -276,7 +277,7 @@ class Group: ...@@ -276,7 +277,7 @@ class Group:
# # b = truck_info._trip # # b = truck_info._trip
# # c = truck_info._task # # c = truck_info._task
# # d = truck_info._group_id # # d = truck_info._group_id
# if truck_task in [-2, 3, 4]: # if truck_task in [-2, 2,3, 4]:
# #
# next_excavator_value = s.solve(truck_info) # next_excavator_value = s.solve(truck_info)
# # next_excavator_value = s.solve(i, truck_task, truck_trip) # # next_excavator_value = s.solve(i, truck_task, truck_trip)
...@@ -289,7 +290,7 @@ class Group: ...@@ -289,7 +290,7 @@ class Group:
# next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]] # next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]]
# truck_dispatch[i] = [next_excavator_id, next_unload_area_id] # truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
# #
# if truck_task in [0, 1]: # if truck_task in [0, 1, 5]:
# bb = truck_task # bb = truck_task
# next_unload_area_value = s.solve(truck_info) # next_unload_area_value = s.solve(truck_info)
# min_index = np.argmin(next_unload_area_value) # min_index = np.argmin(next_unload_area_value)
...@@ -305,7 +306,7 @@ class Group: ...@@ -305,7 +306,7 @@ class Group:
# truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]] # truck_trip = self.truck.get_truck_current_trip()[self.truck_uuid_index_dict[i]]
# truck_task = self.truck.get_truck_current_task()[i] # truck_task = self.truck.get_truck_current_task()[i]
# truck_info = CurrentTruck(i, self.group_id, truck_trip, truck_task) # truck_info = CurrentTruck(i, self.group_id, truck_trip, truck_task)
# if truck_task in [-2, 3, 4]: # if truck_task in [-2, 2,3, 4]:
# next_excavator_value = s.solve(truck_info) # next_excavator_value = s.solve(truck_info)
# # min_index = next_excavator_list.index(min(next_excavator_list)) # # min_index = next_excavator_list.index(min(next_excavator_list))
# min_index = np.argmin(next_excavator_value) # min_index = np.argmin(next_excavator_value)
...@@ -315,7 +316,7 @@ class Group: ...@@ -315,7 +316,7 @@ class Group:
# else: # else:
# next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]] # next_unload_area_id = self.unload_area_uuid_index_dict.inverse[truck_trip[-1]]
# truck_dispatch[i] = [next_excavator_id, next_unload_area_id] # truck_dispatch[i] = [next_excavator_id, next_unload_area_id]
# if truck_task in [0, 1]: # if truck_task in [0, 1, 5]:
# truck_dispatch[i] = DispatchInfo.get_truck_match(i) # truck_dispatch[i] = DispatchInfo.get_truck_match(i)
# # 定铲派车 # # 定铲派车
# elif self.group_mode == 3: # elif self.group_mode == 3:
......
...@@ -261,14 +261,20 @@ class TruckInfo(WalkManage): ...@@ -261,14 +261,20 @@ class TruckInfo(WalkManage):
# 初始化矿卡行程, -1代表备停区 # 初始化矿卡行程, -1代表备停区
self.truck_current_trip = np.full((self.dynamic_truck_num, 2), -1) self.truck_current_trip = np.full((self.dynamic_truck_num, 2), -1)
ab = self.dynamic_truck_num
for i in range(self.dynamic_truck_num): for i in range(self.dynamic_truck_num):
try: try:
session_mysql.commit() session_mysql.commit()
truck_id = self.truck_index_to_uuid_dict[i] truck_id = self.truck_index_to_uuid_dict[i]
task = self.truck_current_task[self.truck_index_to_uuid_dict[i]] task = self.truck_current_task[self.truck_index_to_uuid_dict[i]]
# print("truck_task:", truck_id, task) # print("truck_task:", truck_id, task)
# item = (
# session_mysql.query(EquipmentPair)
# .filter_by(truck_id=truck_id, isdeleted=0)
# .first()
# )
item = ( item = (
session_mysql.query(EquipmentPair) session_mysql.query(DispatchSetting)
.filter_by(truck_id=truck_id, isdeleted=0) .filter_by(truck_id=truck_id, isdeleted=0)
.first() .first()
) )
...@@ -285,12 +291,18 @@ class TruckInfo(WalkManage): ...@@ -285,12 +291,18 @@ class TruckInfo(WalkManage):
try: try:
load_area_uuid_to_index_dict = get_value("load_area_uuid_to_index_dict") load_area_uuid_to_index_dict = get_value("load_area_uuid_to_index_dict")
unload_area_uuid_to_index_dict = get_value("unload_area_uuid_to_index_dict") unload_area_uuid_to_index_dict = get_value("unload_area_uuid_to_index_dict")
aa = task
tt = truck_id
# 若矿卡状态为空运 # 若矿卡状态为空运
if task in [0, 1, 2]: # 矿卡空载或仍未出装载区 if task in [0, 1, 2]: # 矿卡空载或仍未出装载区
# last_unload_time = self.relative_last_unload_time[
# self.truck_index_to_uuid_dict[i]
# ]
bb = self.relative_last_unload_time
last_unload_time = self.relative_last_unload_time[ last_unload_time = self.relative_last_unload_time[
self.truck_index_to_uuid_dict[i] truck_id
] ]
if item.dump_id in DeviceMap.dump_uuid_to_unload_area_uuid_dict: if item.dump_id in DeviceMap.dump_uuid_to_unload_area_uuid_dict:
start_area_id = self.dump_uuid_to_unload_area_uuid_dict[item.dump_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] start_area_index = unload_area_uuid_to_index_dict[start_area_id]
...@@ -390,11 +402,17 @@ class TruckInfo(WalkManage): ...@@ -390,11 +402,17 @@ class TruckInfo(WalkManage):
aa = self.truck_index_to_uuid_dict aa = self.truck_index_to_uuid_dict
bb = self.truck_current_task bb = self.truck_current_task
task = self.truck_current_task[self.truck_index_to_uuid_dict[i]] task = self.truck_current_task[self.truck_index_to_uuid_dict[i]]
# item = (
# session_mysql.query(EquipmentPair)
# .filter_by(truck_id=truck_id, isdeleted=0)
# .first()
# )
item = ( item = (
session_mysql.query(EquipmentPair) session_mysql.query(DispatchSetting)
.filter_by(truck_id=truck_id, isdeleted=0) .filter_by(truck_id=truck_id, isdeleted=0)
.first() .first()
) )
if task in empty_task_set + heavy_task_set and item is None: # 矿卡处于正常工作状态, 但查询不到派车计划 if task in empty_task_set + heavy_task_set and item is None: # 矿卡处于正常工作状态, 但查询不到派车计划
raise Exception(f"矿卡 {truck_id} 配对关系异常") raise Exception(f"矿卡 {truck_id} 配对关系异常")
except Exception as es: except Exception as es:
...@@ -675,8 +693,10 @@ class TruckInfo(WalkManage): ...@@ -675,8 +693,10 @@ class TruckInfo(WalkManage):
def truck_reset(self, dump, excavator): def truck_reset(self, dump, excavator):
# 更新矿卡数量 # 更新矿卡数量
self.dynamic_truck_num = get_value("dynamic_truck_num") self.dynamic_truck_num = get_value("dynamic_truck_num")
# 更新矿卡集合 # 更新矿卡集合
self.dynamic_truck_set = get_value("dynamic_truck_set") self.dynamic_truck_set = get_value("dynamic_truck_set")
aa = self.dynamic_truck_set
# 矿卡挖机绑定关系 # 矿卡挖机绑定关系
self.truck_excavator_bind = {} self.truck_excavator_bind = {}
# 矿卡卸点绑定关系 # 矿卡卸点绑定关系
......
...@@ -280,8 +280,8 @@ def update_dynamic_truck(): ...@@ -280,8 +280,8 @@ def update_dynamic_truck():
session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all() session_mysql.query(DispatchSetting).filter_by(isdeleted=0).all()
) )
for item in query: for item in query:
if item.truck_id is not None and item.truck_id not in dynamic_truck_list: # if item.truck_id is not None and item.truck_id not in dynamic_truck_list:
dynamic_truck_list.append(item.truck_id) dynamic_truck_list.append(item.truck_id)
except Exception as es: except Exception as es:
logger.error(es) logger.error(es)
......
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