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
72525d10
Commit
72525d10
authored
Jul 18, 2022
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.`调度系统部署说明`更新 2.路网异常修复 3.实时调度更新
parent
f9d005e2
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
89 additions
and
32 deletions
+89
-32
app.py
app.py
+85
-31
dispatchInfo.py
data/dispatchInfo.py
+4
-1
调度系统部署说明4.1.docx
调度系统部署说明4.1.docx
+0
-0
No files found.
app.py
View file @
72525d10
...
...
@@ -4,8 +4,12 @@ from para_config import *
from
equipment.truck
import
TruckInfo
from
equipment.excavator
import
ExcavatorInfo
from
equipment.dump
import
DumpInfo
from
dispatcher
import
Dispatcher
,
PreSchedule
,
DispatchSubmission
from
core.dispatcher
import
Dispatcher
,
PreSchedule
from
core.group
import
Group
from
flask_caching
import
Cache
from
alg.algorithm
import
ExpectedTime
from
data.dispatchInfo
import
DispatchInfo
from
core.dispatcher
import
DispatchSubmission
config
=
{
"DEBUG"
:
True
,
# some Flask specific configs
...
...
@@ -35,6 +39,9 @@ def dispatch_request():
# 获取日志器
logger
=
get_logger
(
"zxt.request"
)
# 更新周期参数
logger
.
info
(
"#####################################请求调度更新开始#####################################"
)
try
:
# 清空数据库缓存
...
...
@@ -47,7 +54,7 @@ def dispatch_request():
except
Exception
as
es
:
logger
.
error
(
"数据库访问异常"
)
logger
.
error
(
es
)
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
50
6
)
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
50
1
)
try
:
...
...
@@ -55,62 +62,109 @@ def dispatch_request():
global_period_para_update
()
# get_global_para_from_cache(cache)
except
Exception
as
es
:
logger
.
error
(
"全局参数更新异常"
)
logger
.
error
(
es
)
session_mysql
.
rollback
()
session_postgre
.
rollback
()
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
502
)
try
:
# 更新调度信息
DispatchInfo
.
reset
()
DispatchInfo
.
update_device_group_structure
()
if
group_id
not
in
DispatchInfo
.
group_set
:
raise
Exception
(
"请求调度分组不存在"
)
DispatchInfo
.
update_route_distance
()
DispatchInfo
.
update_group_mode
()
DispatchInfo
.
update_group_name
()
except
Exception
as
es
:
logger
.
error
(
"调度信息更新异常"
)
logger
.
error
(
es
)
session_mysql
.
rollback
()
session_postgre
.
rollback
()
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
503
)
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
)
try
:
# 实例化设备对象
dump
=
DumpInfo
()
excavator
=
ExcavatorInfo
()
truck
=
TruckInfo
(
dump
,
excavator
)
# 设备信息更新
dump
.
dump_para_period_update
()
excavator
.
excavator_para_period_update
()
truck
.
truck_para_period_update
(
dump
,
excavator
)
truck
.
state_period_update
()
# 实例化调度预测器
pre_sch
=
PreSchedule
(
truck
,
excavator
,
dump
)
# 实例化矿卡调度器
dispatcher
=
Dispatcher
(
dump
,
excavator
,
truck
,
pre_sch
,
True
)
# 实例化输出器
submission
=
DispatchSubmission
(
dump
,
excavator
,
truck
)
# 实例化调度分组
group
=
Group
(
group_id
,
truck
,
pre_sch
)
# 更新调度分组信息
group
.
info_update
()
# 周期更新
dispatcher
.
dispatcher_period_update
()
except
Exception
as
es
:
logger
.
error
(
"
参数更新
异常"
)
logger
.
error
(
"
对象实例化
异常"
)
logger
.
error
(
es
)
session_mysql
.
rollback
()
session_postgre
.
rollback
()
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
505
)
request_trucks
=
[]
try
:
request_trucks
=
dispatcher
.
group
.
group_dispatch_truck
[
group_id
]
except
Exception
as
es
:
logger
.
error
(
es
)
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
504
)
try
:
# 更新周期参数
logger
.
info
(
"#####################################请求调度更新开始#####################################"
)
if
get_value
(
"dynamic_dump_num"
)
*
get_value
(
"dynamic_excavator_num"
)
==
0
:
# raise Exception("无动态派车计划可用")
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
503
)
if
get_value
(
"dynamic_truck_num"
)
==
0
:
# raise Exception("无动态派车可用矿卡"
)
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
502
)
# 调度分组派车计划计算
try
:
truck_dispatch_plan_dict
=
group
.
group_dispatch
(
ExpectedTime
)
except
Exception
as
es
:
logger
.
error
(
es
)
logger
.
error
(
f
'分组{group.group_id} 调度计算异常'
)
# 更新请调矿卡派车计划
for
truck_id
in
request_trucks
:
# 调度计算
dispatcher
.
truck_request
(
truck_id
)
try
:
logger
.
info
(
"#####################################请求调度更新结束#####################################"
)
logger
.
info
(
f
'调度分组: {group.group_id} {DispatchInfo.group_name[group.group_id]}'
)
submission
.
group_dispatch_to_redis
(
group
,
truck_dispatch_plan_dict
)
except
Exception
as
es
:
logger
.
error
(
es
)
logger
.
error
(
f
'分组{group.group_id} 调度写入异常'
)
except
Exception
as
es
:
logger
.
error
(
"最外层异常捕获"
)
logger
.
error
(
es
)
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
501
)
# DBsession_postgre.close_all()
# DBsession_mysql.close_all()
return
jsonify
(
msg
=
"未知异常, 请联系管理员"
,
code
=
505
)
session_mysql
.
close
()
session_postgre
.
close
()
logger
.
info
(
"#####################################请求调度更新结束#####################################"
)
# 调度结束时间
rtd_end_time
=
datetime
.
now
()
...
...
data/dispatchInfo.py
View file @
72525d10
...
...
@@ -228,6 +228,9 @@ class DispatchInfo:
logger
.
error
(
"group_id->name更新异常"
)
logger
.
error
(
es
)
logger
.
info
(
"group_name"
)
logger
.
info
(
cls
.
group_name
)
@classmethod
# 距离-->>数据格式:矩阵-->>to_load_distance
def
update_route_distance
(
cls
):
...
...
@@ -267,7 +270,7 @@ class DispatchInfo:
except
Exception
as
es
:
logger
.
error
(
f
'{item} 分组装载路网异常'
)
cls
.
load_distance
[
item
]
=
np
.
zeros
((
len
(
unload_areas
),
len
(
load_areas
)),
10000
)
cls
.
load_distance
[
item
]
=
np
.
full
((
len
(
unload_areas
),
len
(
load_areas
)),
10000
)
logger
.
error
(
es
)
try
:
...
...
调度系统部署说明4.1.docx
View file @
72525d10
No preview for this file type
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