Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling-v3
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张晓彤
integrated-scheduling-v3
Commits
3cf7fbbf
Commit
3cf7fbbf
authored
Aug 28, 2023
by
Allvey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
注释优化
parent
1f0fe212
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
61 additions
and
73 deletions
+61
-73
algorithm.py
alg/algorithm.py
+1
-1
group.py
core/group.py
+10
-4
schedule.py
core/schedule.py
+10
-4
submit.py
core/submit.py
+16
-43
excavator.py
equipment/excavator.py
+3
-5
truck.py
equipment/truck.py
+0
-0
realtime_dispatch_test.py
realtime_dispatch_test.py
+21
-16
No files found.
alg/algorithm.py
View file @
3cf7fbbf
...
...
@@ -166,7 +166,7 @@ class ExpectedTime(AlgorithmBase):
# self.logger.error("车辆调度信息读取异常")
# self.logger.error(es)
self
.
logger
.
info
(
"-----------------------------------Alg. Module-----------------------------------"
)
self
.
logger
.
info
(
f
'======================================= 期望行程计算 ======================================='
)
if
task
==
-
2
:
################################################ 矿卡启动 ###############################################
...
...
core/group.py
View file @
3cf7fbbf
...
...
@@ -412,6 +412,9 @@ class GroupDispatcher:
assert
issubclass
(
Solver
,
AlgorithmBase
)
solver
=
Solver
(
self
.
group
,
self
.
group
.
truck
,
self
.
group
.
pre_sch
)
# solver algorithm init
self
.
logger
.
info
(
f
'================================== 分组调度开始 {self.group.group_name} =================================='
)
self
.
logger
.
info
(
f
'分组 {self.group.group_name} 调度计算-调度模式 {self.group.group_mode}'
)
for
truck_id
in
list
(
self
.
group
.
group_trucks
):
...
...
@@ -419,7 +422,8 @@ class GroupDispatcher:
# construct CurrentTruck obj.
current_truck
=
self
.
truck_construct
(
truck_id
)
self
.
logger
.
info
(
f
'======================= 开始处理调度车辆 {current_truck.get_name()} ======================='
)
self
.
logger
.
info
(
f
'============================= 车辆调度开始 {current_truck.get_name()} ============================='
)
try
:
# 全智能模式
...
...
@@ -449,7 +453,11 @@ class GroupDispatcher:
self
.
logger
.
error
(
"调度调用异常"
)
self
.
logger
.
error
(
es
)
self
.
logger
.
info
(
f
'======================= 派车计划计算结束 {current_truck.get_name()} ======================='
)
self
.
logger
.
info
(
f
'============================= 车辆调度结束 {current_truck.get_name()} ============================='
)
self
.
logger
.
info
(
f
'================================== 分组调度结束 {self.group.group_name} =================================='
)
return
truck_dispatch
...
...
@@ -713,8 +721,6 @@ class GroupDispatcher:
and store them in a dictionary.
"""
self
.
logger
.
info
(
f
'调度车辆 {truck_id}'
)
# try:
# get truck index from mapping
if
truck_id
not
in
self
.
group
.
truck
.
truck_uuid_to_index_dict
:
...
...
core/schedule.py
View file @
3cf7fbbf
...
...
@@ -131,6 +131,8 @@ class PreSchedule:
loading_task_time
=
self
.
excavator
.
get_loading_task_time
()
excavator_uuid_to_name_dict
=
get_value
(
"excavator_uuid_to_name_dict"
)
try
:
now
=
float
(
...
...
@@ -189,9 +191,10 @@ class PreSchedule:
# self.excavator_avl_time[excavator_index] = now
count
=
0
self
.
logger
.
info
(
"
update_excavator_avl_time-
excavator_avl_ls"
)
self
.
logger
.
info
(
"excavator_avl_ls"
)
for
excavator_id
in
self
.
excavator
.
excavator_uuid_to_index_dict
.
keys
():
self
.
logger
.
info
(
f
'{excavator_id} {excavator_avl_ls[count]}'
)
excavator_name
=
excavator_uuid_to_name_dict
[
excavator_id
]
self
.
logger
.
info
(
f
'{excavator_name} {excavator_avl_ls[count]}'
)
count
+=
1
# self.logger.info(get_value("dynamic_excavator_set"))
# self.logger.info(excavator_avl_ls)
...
...
@@ -227,6 +230,8 @@ class PreSchedule:
unloading_task_time
=
self
.
dump
.
get_unloading_task_time
()
dump_uuid_to_name_dict
=
get_value
(
"dump_uuid_to_name_dict"
)
# try:
now
=
float
(
...
...
@@ -260,9 +265,10 @@ class PreSchedule:
# self.truck_avl_time[int(tmp[truck_id][1])] = now
count
=
0
self
.
logger
.
info
(
"
update_dump_avl_time-
dump_avl_ls"
)
self
.
logger
.
info
(
"dump_avl_ls"
)
for
dump_id
in
get_value
(
"dynamic_dump_set"
):
self
.
logger
.
info
(
f
'{dump_id} {dump_avl_ls[count]}'
)
dump_name
=
dump_uuid_to_name_dict
[
dump_id
]
self
.
logger
.
info
(
f
'{dump_name} {dump_avl_ls[count]}'
)
count
+=
1
# self.logger.info(get_value("dynamic_dump_set"))
# self.logger.info(dump_avl_ls)
...
...
core/submit.py
View file @
3cf7fbbf
...
...
@@ -62,12 +62,6 @@ class DispatchSubmission:
record
=
{
"truckId"
:
truck_id
}
# if group_id is None or DispatchInfo.get_group_mode(group_id) is None:
# group_mode = 3
# self.logger.error("调度模式读取异常-设置为固定派车模式")
# else:
# group_mode = DispatchInfo.get_group_mode(group_id)
self
.
logger
.
info
(
f
'调度模式 {group_mode}'
)
if
group_mode
==
3
:
...
...
@@ -97,10 +91,10 @@ class DispatchSubmission:
"""
if
(
task
in
[
1
,
2
])
or
(
task
==
3
and
state
==
2
):
# 车辆位于装载区,或车辆重载等待
if
task
in
[
1
,
2
]:
self
.
logger
.
info
(
f
'车辆 {truck_id} 装载区调度'
)
else
:
self
.
logger
.
info
(
f
'车辆 {truck_id} 重载二次调度'
)
#
if task in [1, 2]:
#
self.logger.info(f'车辆 {truck_id} 装载区调度')
#
else:
#
self.logger.info(f'车辆 {truck_id} 重载二次调度')
# 查询车辆相关派车计划 dispatch_seq[next_excavator_id, next_unload_area_id]
if
dispatch_seq
[
1
]
is
None
or
(
dispatch_seq
[
1
]
not
in
DispatchInfo
.
unload_area_dump_dict
):
...
...
@@ -126,12 +120,6 @@ class DispatchSubmission:
# TODO: 判断了两次是否拥堵,需要改善
# # 车辆重载等待,且前方道路阻塞
# if self.topo is not None \
# and task == 3 \
# and truck_id in self.truck.get_truck_lane_locate_dict() \
# and self.truck.get_truck_lane_locate_dict()[truck_id] in self.topo.cross_bf_lanes:
# 车辆重载等待,且前方道路阻塞
if
self
.
topo
is
not
None
and
redispatch
:
# try:
...
...
@@ -143,14 +131,7 @@ class DispatchSubmission:
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
POST
(
truck_id
)
# else:
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# except Exception as es:
# self.logger.error(es)
# self.logger.error("二次调度失败")
# record["isTemp"] = False
# redis5.set(truck_id, str(json.dumps(record)))
else
:
self
.
logger
.
info
(
"正常调度前往卸载区"
)
record
[
"isTemp"
]
=
False
...
...
@@ -161,12 +142,12 @@ class DispatchSubmission:
elif
(
task
in
[
-
2
,
4
,
5
])
or
(
task
==
0
and
state
==
2
):
# 车辆位于备停区或位于卸载区,或车辆空载等待
if
task
==
-
2
:
self
.
logger
.
info
(
f
'车辆 {truck_id} 备停区调度'
)
elif
task
in
[
4
,
5
]:
self
.
logger
.
info
(
f
'车辆 {truck_id} 卸载区调度'
)
else
:
self
.
logger
.
info
(
f
'车辆 {truck_id} 空载二次调度'
)
#
if task == -2:
#
self.logger.info(f'车辆 {truck_id} 备停区调度')
#
elif task in [4, 5]:
#
self.logger.info(f'车辆 {truck_id} 卸载区调度')
#
else:
#
self.logger.info(f'车辆 {truck_id} 空载二次调度')
# 查询车辆相关派车计划 dispatch_seq[next_excavator_id, next_unload_area_id]
if
dispatch_seq
[
0
]
is
None
:
...
...
@@ -192,12 +173,6 @@ class DispatchSubmission:
if
self
.
topo
is
not
None
:
# # 车辆重载等待,且前方道路阻塞
# if self.topo is not None \
# and task == 0 \
# and truck_id in self.truck.get_truck_lane_locate_dict() \
# and self.truck.get_truck_lane_locate_dict()[truck_id] in self.topo.cross_bf_lanes:
# 车辆重载等待,且前方道路阻塞
if
self
.
topo
is
not
None
and
redispatch
:
# 车辆停车等待
...
...
@@ -210,13 +185,6 @@ class DispatchSubmission:
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
POST
(
truck_id
)
# else:
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# except Exception as es:
# self.logger.error(es)
# self.logger.error("二次调度失败")
# record["isTemp"] = False
# redis5.set(truck_id, str(json.dumps(record)))
else
:
self
.
logger
.
info
(
"正常调度前往装载区"
)
...
...
@@ -224,7 +192,12 @@ class DispatchSubmission:
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
# self.logger.error("调度结果写入异常-矿卡重载")
else
:
self
.
logger
.
info
(
"正常调度前往装载区"
)
record
[
"isTemp"
]
=
False
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
else
:
pass
...
...
equipment/excavator.py
View file @
3cf7fbbf
...
...
@@ -149,9 +149,9 @@ class ExcavatorInfo(WalkManage):
for
excavator_id
in
get_value
(
"dynamic_excavator_set"
):
try
:
item
=
session_mysql
.
query
(
Equipment
)
.
filter_by
(
id
=
excavator_id
)
.
first
()
self
.
logger
.
info
(
"excavator_priority_coefficient"
)
self
.
logger
.
info
(
self
.
excavator_priority_coefficient
)
self
.
excavator_priority_coefficient
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]]
=
item
.
priority
+
1
#
self.logger.info("excavator_priority_coefficient")
#
self.logger.info(self.excavator_priority_coefficient)
#
self.excavator_priority_coefficient[self.excavator_uuid_to_index_dict[excavator_id]] = item.priority + 1
# 物料优先级控制
rule
=
2
...
...
@@ -236,8 +236,6 @@ class ExcavatorInfo(WalkManage):
self
.
logger
.
info
(
"物料优先级规则"
)
self
.
logger
.
info
(
rule7
)
print
(
"truck.excavator_uuid_index_dict"
)
print
(
self
.
excavator_uuid_to_index_dict
)
# # 用于动态调度的挖机设备
# self.dynamic_excavator_set = set(update_autodisp_excavator())
#
...
...
equipment/truck.py
View file @
3cf7fbbf
This diff is collapsed.
Click to expand it.
realtime_dispatch_test.py
View file @
3cf7fbbf
...
...
@@ -64,6 +64,8 @@ def process(dispatcher):
# 更新周期参数
logger
.
info
(
"#####################################周期更新开始#####################################"
)
logger
.
info
(
f
'================================== 全局信息读取 =================================='
)
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
...
...
@@ -75,6 +77,9 @@ def process(dispatcher):
# 更新全局参数信息
global_period_para_update
()
logger
.
info
(
f
'================================== 调度信息读取 =================================='
)
# 更新调度信息
DispatchInfo
.
reset
()
...
...
@@ -86,22 +91,22 @@ def process(dispatcher):
DispatchInfo
.
update_group_name
()
# 打印日志信息
logger
.
info
(
"Dispatchinfo,更新后信息"
)
logger
.
info
(
"group_set"
)
logger
.
info
(
DispatchInfo
.
group_set
)
logger
.
info
(
"group_excavator_dict"
)
logger
.
info
(
DispatchInfo
.
group_excavator_dict
)
logger
.
info
(
"group_unload_area_dict"
)
logger
.
info
(
DispatchInfo
.
group_unload_area_dict
)
logger
.
info
(
"group_truck_dict"
)
logger
.
info
(
DispatchInfo
.
group_truck_dict
)
logger
.
info
(
"group_mode"
)
logger
.
info
(
DispatchInfo
.
group_mode
)
logger
.
info
(
"load_distance"
)
logger
.
info
(
DispatchInfo
.
load_distance
)
logger
.
info
(
"unload_distance"
)
logger
.
info
(
DispatchInfo
.
unload_distance
)
#
#
打印日志信息
#
logger.info("Dispatchinfo,更新后信息")
#
logger.info("group_set")
#
logger.info(DispatchInfo.group_set)
#
logger.info("group_excavator_dict")
#
logger.info(DispatchInfo.group_excavator_dict)
#
logger.info("group_unload_area_dict")
#
logger.info(DispatchInfo.group_unload_area_dict)
#
logger.info("group_truck_dict")
#
logger.info(DispatchInfo.group_truck_dict)
#
logger.info("group_mode")
#
logger.info(DispatchInfo.group_mode)
#
logger.info("load_distance")
#
logger.info(DispatchInfo.load_distance)
#
logger.info("unload_distance")
#
logger.info(DispatchInfo.unload_distance)
# logger.info("load_excavator_dict")
# logger.info(DispatchInfo.load_excavator_dict)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment