Commit e857342b authored by 虢奥's avatar 虢奥

特殊穿越装载区

parent 9875a3db
{ {
"para": { "para": {
"log_path": "/usr/local/fleet-log/dispatch", "log_path": "/Users/guoao/Desktop/Log",
"empty_speed": 15, "empty_speed": 15,
"heavy_speed": 15, "heavy_speed": 15,
"dump_target_mass": 5000, "dump_target_mass": 5000,
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
"password": "Huituo@123" "password": "Huituo@123"
}, },
"gothrough": { "gothrough": {
"closer_area_name": "1025装载区01", "closer_area_name": "1025装载区02",
"further_area_name": "1025装载区-03" "further_area_name": "1025装载区-03"
} }
} }
\ No newline at end of file
This diff is collapsed.
...@@ -22,7 +22,7 @@ json_file = os.path.join(relative_path, "config.json") ...@@ -22,7 +22,7 @@ json_file = os.path.join(relative_path, "config.json")
# json_file = "config.json" # json_file = "config.json"
with open(json_file, encoding='UTF-8') as f: with open(json_file, encoding='UTF-8') as f:
load_vale = json.load(f, encoding='UTF-8') load_vale = json.load(f)
postgre_config = load_vale["postgresql"] postgre_config = load_vale["postgresql"]
......
No preview for this file type
...@@ -49,6 +49,8 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set ...@@ -49,6 +49,8 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set
logger.info("arrival_truck_list") logger.info("arrival_truck_list")
logger.info(arrival_truck_list) logger.info(arrival_truck_list)
logger.info(f"输入的closer_lane_set{closer_lane_set}")
closer_lane_set_nearest = [closer_lane_set[-1]]
# 统计不同状态车辆数量 # 统计不同状态车辆数量
goto_closer_area_num = 0 goto_closer_area_num = 0
goto_further_area_num = 0 goto_further_area_num = 0
...@@ -61,7 +63,7 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set ...@@ -61,7 +63,7 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set
# 前往远端装载区车辆数加1 # 前往远端装载区车辆数加1
goto_further_area_num += 1 goto_further_area_num += 1
# 车辆未经过近端装载区 # 车辆未经过近端装载区
elif truck_lane_id in closer_lane_set: elif truck_lane_id in closer_lane_set_nearest:
# 前往近端或近端装载区车辆数加1 # 前往近端或近端装载区车辆数加1
goto_closer_area_num += 1 goto_closer_area_num += 1
else: else:
...@@ -79,33 +81,46 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set ...@@ -79,33 +81,46 @@ def area_choose(excavators_id, closer_area_id, further_area_id, further_lane_set
logger.info(before_cross_num) logger.info(before_cross_num)
# # 近端挖机空闲
# if closer_excavator_state == 0 and goto_closer_area_num == 0:
# logger.info("近端挖机空闲, 调度车辆前往近端装载区")
# target_excavator = DispatchInfo.load_excavator_dict[closer_area_id]
# # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[closer_area_id])
# # 远端挖机空闲
# elif further_excavator_state == 0 and goto_further_area_num == 0:
# logger.info("远端挖机空闲, 调度车辆前往远端装载区")
# target_excavator = DispatchInfo.load_excavator_dict[further_area_id]
# # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[further_area_id])
# # 两挖机均不空闲
# else:
# # goto_further_area_num -= 1
# logger.info("goto_further_area_num-goto_closer_area_num")
# logger.info(goto_further_area_num)
# logger.info(goto_closer_area_num)
# # 默认当前请调车辆与近端装载点前没有车辆,因此前往近端装载区的车辆仅其本身
# # goto_closer_area_num = 1
# # 在远处排队等待的车辆更少
# if goto_closer_area_num + before_cross_num > goto_further_area_num:
# logger.info("远端挖机排队时间短, 调度车辆前往")
# target_excavator = DispatchInfo.load_excavator_dict[further_area_id]
# # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[further_area_id])
# else:
# logger.info("近端挖机排队时间短, 调度车辆前往")
# target_excavator = DispatchInfo.load_excavator_dict[closer_area_id]
# # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[closer_area_id])
# 近端挖机空闲 # 近端挖机空闲
if closer_excavator_state == 0 and goto_closer_area_num == 0: if closer_excavator_state == 0 and goto_closer_area_num == 0:
logger.info("近端挖机空闲, 调度车辆前往近端装载区") logger.info("近端挖机空闲, 调度车辆前往近端装载区")
target_excavator = DispatchInfo.load_excavator_dict[closer_area_id] target_excavator = DispatchInfo.load_excavator_dict[closer_area_id]
# truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[closer_area_id]) # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[closer_area_id])
# 远端挖机空闲 # 远端挖机空闲
elif further_excavator_state == 0 and goto_further_area_num == 0:
logger.info("远端挖机空闲, 调度车辆前往远端装载区")
target_excavator = DispatchInfo.load_excavator_dict[further_area_id]
# truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[further_area_id])
# 两挖机均不空闲
else: else:
# goto_further_area_num -= 1 logger.info("近端挖机占用, 调度车辆前往远端装载区")
logger.info("goto_further_area_num-goto_closer_area_num")
logger.info(goto_further_area_num)
logger.info(goto_closer_area_num)
# 默认当前请调车辆与近端装载点前没有车辆,因此前往近端装载区的车辆仅其本身
# goto_closer_area_num = 1
# 在远处排队等待的车辆更少
if goto_closer_area_num + before_cross_num > goto_further_area_num:
logger.info("远端挖机排队时间短, 调度车辆前往")
target_excavator = DispatchInfo.load_excavator_dict[further_area_id] target_excavator = DispatchInfo.load_excavator_dict[further_area_id]
# truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[further_area_id]) # truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[further_area_id])
else:
logger.info("近端挖机排队时间短, 调度车辆前往")
target_excavator = DispatchInfo.load_excavator_dict[closer_area_id]
# truck_dispatch_to_redis(request_truck_id, group_id, DispatchInfo.load_excavator_dict[closer_area_id])
return target_excavator return target_excavator
...@@ -250,6 +265,10 @@ def truck_dispatch_to_redis(truck_id, group_id, excavator_id): ...@@ -250,6 +265,10 @@ def truck_dispatch_to_redis(truck_id, group_id, excavator_id):
item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first()) item = (session_mysql.query(DispatchSetting).filter_by(group_id=group_id, isdeleted=0, ).first())
logger.error(es) logger.error(es)
logger.info(f"{type(truck_id)}")
logger.info(f"{type(item.truck_id)}")
if str(truck_id) != str(item.truck_id):
logger.info("无重复派车计划,重新生成中")
# 其余调度信息写入 # 其余调度信息写入
try: try:
# record["dispatchId"] = item.id # record["dispatchId"] = item.id
...@@ -270,6 +289,8 @@ def truck_dispatch_to_redis(truck_id, group_id, excavator_id): ...@@ -270,6 +289,8 @@ def truck_dispatch_to_redis(truck_id, group_id, excavator_id):
logger.error(es) logger.error(es)
finally: finally:
redis5.set(truck_id, str(json.dumps(record))) redis5.set(truck_id, str(json.dumps(record)))
else:
logger.info("调度计划相同,无需变更")
def get_lanes_between_entrances(closer_node_id, further_node_id): def get_lanes_between_entrances(closer_node_id, further_node_id):
......
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