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
430230f1
Commit
430230f1
authored
Nov 12, 2022
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
二次调度不再绑定启动
parent
dcdedf9e
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
151 additions
and
218 deletions
+151
-218
dispatcher.py
core/dispatcher.py
+12
-4
group.py
core/group.py
+59
-52
submit.py
core/submit.py
+43
-39
dispatchInfo.py
data/dispatchInfo.py
+1
-0
para_config.py
data/para_config.py
+1
-0
static_data_process.py
data/static_data_process.py
+1
-0
dump.py
equipment/dump.py
+1
-0
excavator.py
equipment/excavator.py
+1
-0
topo_graph.py
graph/topo_graph.py
+1
-0
realtime_dispatch.py
realtime_dispatch.py
+12
-1
realtime_dispatch_test.py
realtime_dispatch_test.py
+14
-1
settings.py
settings.py
+2
-0
start.sh
start.sh
+2
-2
tables.py
tables.py
+1
-119
No files found.
core/dispatcher.py
View file @
430230f1
...
@@ -20,16 +20,21 @@ class Dispatcher:
...
@@ -20,16 +20,21 @@ class Dispatcher:
"""
"""
class for group dispatch program.
class for group dispatch program.
"""
"""
def
__init__
(
self
,
truck
:
TruckInfo
,
dump
:
DumpInfo
,
excavator
:
ExcavatorInfo
,
pre_sch
:
PreSchedule
,
request_mode
=
False
):
def
__init__
(
self
,
truck
:
TruckInfo
,
dump
:
DumpInfo
,
excavator
:
ExcavatorInfo
,
pre_sch
:
PreSchedule
,
request_mode
=
False
,
active
=
False
):
self
.
group_list
=
{}
self
.
group_list
=
{}
self
.
truck
=
truck
self
.
truck
=
truck
self
.
dump
=
dump
self
.
dump
=
dump
self
.
excavator
=
excavator
self
.
excavator
=
excavator
self
.
pre_sch
=
pre_sch
self
.
pre_sch
=
pre_sch
self
.
request_mode
=
request_mode
self
.
request_mode
=
request_mode
self
.
topo
=
graph_construct
()
self
.
submission
=
DispatchSubmission
(
dump
,
excavator
,
truck
,
self
.
topo
)
self
.
logger
=
get_logger
(
"zxt.dispatcher"
)
self
.
logger
=
get_logger
(
"zxt.dispatcher"
)
self
.
redispatch_active
=
active
if
self
.
redispatch_active
:
self
.
topo
=
graph_construct
()
else
:
self
.
topo
=
None
self
.
submission
=
DispatchSubmission
(
dump
,
excavator
,
truck
,
self
.
topo
)
def
period_update
(
self
):
def
period_update
(
self
):
"""
"""
...
@@ -41,7 +46,10 @@ class Dispatcher:
...
@@ -41,7 +46,10 @@ class Dispatcher:
self
.
excavator
.
excavator_para_period_update
()
self
.
excavator
.
excavator_para_period_update
()
self
.
truck
.
truck_para_period_update
(
self
.
dump
,
self
.
excavator
)
self
.
truck
.
truck_para_period_update
(
self
.
dump
,
self
.
excavator
)
self
.
truck
.
state_period_update
()
self
.
truck
.
state_period_update
()
self
.
topo
=
graph_construct
()
if
self
.
redispatch_active
:
self
.
topo
=
graph_construct
()
else
:
self
.
topo
=
None
def
group_generate
(
self
):
def
group_generate
(
self
):
"""
"""
...
...
core/group.py
View file @
430230f1
...
@@ -323,7 +323,8 @@ class GroupDispatcher:
...
@@ -323,7 +323,8 @@ class GroupDispatcher:
"""
"""
self
.
logger
=
logging
.
getLogger
(
"zxt.GroupDispatcher"
)
self
.
logger
=
logging
.
getLogger
(
"zxt.GroupDispatcher"
)
self
.
group
=
group
self
.
group
=
group
self
.
redispatcher
=
ReDispatcher
(
self
.
group
)
if
self
.
group
.
topo
is
not
None
:
self
.
redispatcher
=
ReDispatcher
(
self
.
group
)
def
group_dispatch
(
self
,
Solver
)
->
Mapping
[
str
,
List
[
str
]]:
def
group_dispatch
(
self
,
Solver
)
->
Mapping
[
str
,
List
[
str
]]:
"""
"""
...
@@ -566,60 +567,66 @@ class GroupDispatcher:
...
@@ -566,60 +567,66 @@ class GroupDispatcher:
self
.
logger
.
error
(
es
)
self
.
logger
.
error
(
es
)
truck_dispatch
[
i
]
=
[
None
,
None
]
truck_dispatch
[
i
]
=
[
None
,
None
]
elif
truck_task
==
0
:
elif
truck_task
==
0
:
if
i
in
self
.
group
.
truck
.
get_truck_locate_dict
():
if
self
.
group
.
topo
is
not
None
:
truck_locate
=
self
.
group
.
truck
.
get_truck_locate_dict
()[
i
]
if
i
in
self
.
group
.
truck
.
get_truck_locate_dict
():
truck_locate
=
self
.
group
.
truck
.
get_truck_locate_dict
()[
i
]
else
:
self
.
logger
.
error
(
f
'车辆 {i} 位置信息丢失'
)
truck_dispatch
[
i
]
=
[
None
,
None
]
return
self
.
logger
.
info
(
self
.
group
.
truck
.
truck_is_temp
)
try
:
truck_is_temp
=
self
.
group
.
truck
.
truck_is_temp
[
i
]
except
Exception
as
es
:
truck_is_temp
=
False
self
.
logger
.
error
(
"车辆临时字段异常"
)
self
.
logger
.
error
(
es
)
# 车辆当前位于交叉路口前,且排队等待
self
.
logger
.
info
(
"潜在二次调度车辆状态"
)
self
.
logger
.
info
(
f
'车辆 {i}'
)
self
.
logger
.
info
(
f
'车辆位置 {truck_locate}'
)
self
.
logger
.
info
(
f
'车辆状态 {self.group.truck.truck_current_state[i]}'
)
self
.
logger
.
info
(
f
'车辆临时 {truck_is_temp} {type(truck_is_temp)}'
)
self
.
logger
.
info
(
self
.
group
.
topo
.
cross_bf_lanes
)
self
.
logger
.
info
(
self
.
group
.
truck
.
truck_current_state
)
self
.
logger
.
info
(
truck_is_temp
)
# if (truck_locate in self.topo.cross_bf_lanes) and (self.truck.truck_current_state[truck_id] == 2) \
# and (not truck_is_temp):
if
(
truck_locate
in
self
.
group
.
topo
.
cross_bf_lanes
)
and
(
self
.
group
.
truck
.
truck_current_state
[
i
]
==
2
):
self
.
logger
.
info
(
"触发二次调度"
)
# self.redispatch_to_excavator(i, truck_dispatch, truck_locate)
self
.
redispatcher
.
redispatch_to_excavator
(
i
,
truck_dispatch
,
truck_locate
)
else
:
else
:
self
.
logger
.
error
(
f
'车辆 {i} 位置信息丢失'
)
pass
truck_dispatch
[
i
]
=
[
None
,
None
]
return
self
.
logger
.
info
(
self
.
group
.
truck
.
truck_is_temp
)
try
:
truck_is_temp
=
self
.
group
.
truck
.
truck_is_temp
[
i
]
except
Exception
as
es
:
truck_is_temp
=
False
self
.
logger
.
error
(
"车辆临时字段异常"
)
self
.
logger
.
error
(
es
)
# 车辆当前位于交叉路口前,且排队等待
self
.
logger
.
info
(
"潜在二次调度车辆状态"
)
self
.
logger
.
info
(
f
'车辆 {i}'
)
self
.
logger
.
info
(
f
'车辆位置 {truck_locate}'
)
self
.
logger
.
info
(
f
'车辆状态 {self.group.truck.truck_current_state[i]}'
)
self
.
logger
.
info
(
f
'车辆临时 {truck_is_temp} {type(truck_is_temp)}'
)
self
.
logger
.
info
(
self
.
group
.
topo
.
cross_bf_lanes
)
self
.
logger
.
info
(
self
.
group
.
truck
.
truck_current_state
)
self
.
logger
.
info
(
truck_is_temp
)
# if (truck_locate in self.topo.cross_bf_lanes) and (self.truck.truck_current_state[truck_id] == 2) \
# and (not truck_is_temp):
if
(
truck_locate
in
self
.
group
.
topo
.
cross_bf_lanes
)
and
(
self
.
group
.
truck
.
truck_current_state
[
i
]
==
2
):
self
.
logger
.
info
(
"触发二次调度"
)
# self.redispatch_to_excavator(i, truck_dispatch, truck_locate)
self
.
redispatcher
.
redispatch_to_excavator
(
i
,
truck_dispatch
,
truck_locate
)
elif
truck_task
==
3
:
elif
truck_task
==
3
:
try
:
if
self
.
group
.
topo
is
not
None
:
truck_locate
=
self
.
group
.
truck
.
get_truck_locate_dict
()[
i
]
try
:
except
Exception
as
es
:
truck_locate
=
self
.
group
.
truck
.
get_truck_locate_dict
()[
i
]
self
.
logger
.
error
(
"车辆位置信息丢失"
)
except
Exception
as
es
:
self
.
logger
.
error
(
es
)
self
.
logger
.
error
(
"车辆位置信息丢失"
)
truck_dispatch
[
i
]
=
[
None
,
None
]
self
.
logger
.
error
(
es
)
return
truck_dispatch
[
i
]
=
[
None
,
None
]
try
:
return
truck_is_temp
=
self
.
group
.
truck
.
truck_is_temp
[
i
]
try
:
except
Exception
as
es
:
truck_is_temp
=
self
.
group
.
truck
.
truck_is_temp
[
i
]
truck_is_temp
=
False
except
Exception
as
es
:
self
.
logger
.
error
(
"车辆临时字段异常"
)
truck_is_temp
=
False
self
.
logger
.
error
(
es
)
self
.
logger
.
error
(
"车辆临时字段异常"
)
self
.
logger
.
info
(
f
'车辆位置 {truck_locate}'
)
self
.
logger
.
error
(
es
)
self
.
logger
.
info
(
f
'车辆状态 {self.group.truck.truck_current_state[i]}'
)
self
.
logger
.
info
(
f
'车辆位置 {truck_locate}'
)
self
.
logger
.
info
(
f
'车辆临时 {truck_is_temp} {type(truck_is_temp)}'
)
self
.
logger
.
info
(
f
'车辆状态 {self.group.truck.truck_current_state[i]}'
)
# 车辆当前位于交叉路口前,且排队等待
self
.
logger
.
info
(
f
'车辆临时 {truck_is_temp} {type(truck_is_temp)}'
)
if
(
truck_locate
in
self
.
group
.
topo
.
cross_bf_lanes
)
and
(
self
.
group
.
truck
.
truck_current_state
[
i
]
==
2
)
\
# 车辆当前位于交叉路口前,且排队等待
and
(
not
truck_is_temp
):
if
(
truck_locate
in
self
.
group
.
topo
.
cross_bf_lanes
)
and
(
self
.
group
.
truck
.
truck_current_state
[
i
]
==
2
)
\
and
(
not
truck_is_temp
):
# self.redispatch_to_dump(i, truck_dispatch, truck_locate, truck_trip)
self
.
redispatcher
.
redispatch_to_dump
(
i
,
truck_dispatch
,
truck_locate
,
truck_trip
)
# self.redispatch_to_dump(i, truck_dispatch, truck_locate, truck_trip)
self
.
redispatcher
.
redispatch_to_dump
(
i
,
truck_dispatch
,
truck_locate
,
truck_trip
)
else
:
pass
# def redispatch_to_dump(self, truck_id: str, truck_dispatch: Mapping[str, List[str]], truck_locate: str, truck_trip: List[int]):
# def redispatch_to_dump(self, truck_id: str, truck_dispatch: Mapping[str, List[str]], truck_locate: str, truck_trip: List[int]):
# """
# """
...
...
core/submit.py
View file @
430230f1
...
@@ -124,25 +124,27 @@ class DispatchSubmission:
...
@@ -124,25 +124,27 @@ class DispatchSubmission:
# TODO:
# TODO:
# 判断了两次是否拥堵,需要改善
# 判断了两次是否拥堵,需要改善
# 车辆重载等待,且前方道路阻塞
if
self
.
topo
is
not
None
:
if
task
==
3
and
state
==
2
and
truck_id
in
self
.
truck
.
get_truck_locate_dict
()
and
\
self
.
truck
.
get_truck_locate_dict
()[
truck_id
]
in
self
.
topo
.
cross_bf_lanes
:
# 车辆重载等待,且前方道路阻塞
# try:
if
task
==
3
and
state
==
2
and
truck_id
in
self
.
truck
.
get_truck_locate_dict
()
and
\
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
self
.
truck
.
get_truck_locate_dict
()[
truck_id
]
in
self
.
topo
.
cross_bf_lanes
:
self
.
logger
.
info
(
"二次调度前往卸载区"
)
# try:
record
[
"isTemp"
]
=
True
# 避免反复修改
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
POST
(
truck_id
)
self
.
logger
.
info
(
"二次调度前往卸载区"
)
# else:
record
[
"isTemp"
]
=
True
# 避免反复修改
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
POST
(
truck_id
)
# else:
# except Exception as es:
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# self.logger.error(es)
# self.logger.error("二次调度失败")
# except Exception as es:
# record["isTemp"] = False
# self.logger.error(es)
# redis5.set(truck_id, str(json.dumps(record)))
# self.logger.error("二次调度失败")
else
:
# record["isTemp"] = False
self
.
logger
.
info
(
"正常调度前往卸载区"
)
# redis5.set(truck_id, str(json.dumps(record)))
record
[
"isTemp"
]
=
False
else
:
self
.
logger
.
info
(
"正常调度前往卸载区"
)
record
[
"isTemp"
]
=
False
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
...
@@ -180,26 +182,28 @@ class DispatchSubmission:
...
@@ -180,26 +182,28 @@ class DispatchSubmission:
# try:
# try:
record
=
redis_format
(
truck_id
,
group_id
,
str
(
uuid
.
uuid1
()),
item
)
record
=
redis_format
(
truck_id
,
group_id
,
str
(
uuid
.
uuid1
()),
item
)
# 车辆重载等待,且前方道路阻塞
if
self
.
topo
is
not
None
:
if
task
==
0
and
state
==
2
and
truck_id
in
self
.
truck
.
get_truck_locate_dict
()
and
\
self
.
truck
.
get_truck_locate_dict
()[
truck_id
]
in
self
.
topo
.
cross_bf_lanes
:
# 车辆重载等待,且前方道路阻塞
# 车辆停车等待
if
task
==
0
and
state
==
2
and
truck_id
in
self
.
truck
.
get_truck_locate_dict
()
and
\
# try:
self
.
truck
.
get_truck_locate_dict
()[
truck_id
]
in
self
.
topo
.
cross_bf_lanes
:
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
# 车辆停车等待
self
.
logger
.
info
(
"二次调度前往装载区"
)
# try:
record
[
"isTemp"
]
=
True
# 避免反复修改
# if truck_id in self.truck.truck_is_temp and not self.truck.truck_is_temp[truck_id]:
POST
(
truck_id
)
self
.
logger
.
info
(
"二次调度前往装载区"
)
# else:
record
[
"isTemp"
]
=
True
# 避免反复修改
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
POST
(
truck_id
)
# except Exception as es:
# else:
# self.logger.error(es)
# self.logger.info("车辆已完成二次调度-无需更改派车计划")
# self.logger.error("二次调度失败")
# except Exception as es:
# record["isTemp"] = False
# self.logger.error(es)
# redis5.set(truck_id, str(json.dumps(record)))
# self.logger.error("二次调度失败")
# record["isTemp"] = False
else
:
# redis5.set(truck_id, str(json.dumps(record)))
self
.
logger
.
info
(
"正常调度前往装载区"
)
record
[
"isTemp"
]
=
False
else
:
self
.
logger
.
info
(
"正常调度前往装载区"
)
record
[
"isTemp"
]
=
False
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
self
.
logger
.
info
(
f
'redis 注入 {record}'
)
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
redis5
.
set
(
truck_id
,
str
(
json
.
dumps
(
record
)))
...
...
data/dispatchInfo.py
View file @
430230f1
...
@@ -7,6 +7,7 @@
...
@@ -7,6 +7,7 @@
import
numpy
as
np
import
numpy
as
np
from
settings
import
*
from
settings
import
*
from
tables
import
*
import
pandas
as
pd
import
pandas
as
pd
from
tables
import
DispatchMatch
,
DispatchEquipment
from
tables
import
DispatchMatch
,
DispatchEquipment
from
bidict
import
bidict
from
bidict
import
bidict
...
...
data/para_config.py
View file @
430230f1
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
from
data.static_data_process
import
*
from
data.static_data_process
import
*
from
settings
import
*
from
settings
import
*
from
tables
import
*
import
numpy
as
np
import
numpy
as
np
# 全局参数设定
# 全局参数设定
...
...
data/static_data_process.py
View file @
430230f1
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
# 静态数据处理(函数名即为注释)
# 静态数据处理(函数名即为注释)
from
settings
import
*
from
settings
import
*
from
tables
import
*
logger
=
get_logger
(
"zxt.static_data_process"
)
logger
=
get_logger
(
"zxt.static_data_process"
)
...
...
equipment/dump.py
View file @
430230f1
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
from
data.para_config
import
*
from
data.para_config
import
*
from
settings
import
*
from
settings
import
*
from
tables
import
*
# 卸载设备类
# 卸载设备类
...
...
equipment/excavator.py
View file @
430230f1
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
from
data.para_config
import
*
from
data.para_config
import
*
from
settings
import
*
from
settings
import
*
from
tables
import
*
# 挖机设备类
# 挖机设备类
...
...
graph/topo_graph.py
View file @
430230f1
# from para_config import *
# from para_config import *
from
settings
import
*
from
settings
import
*
from
tables
import
*
import
numpy
as
np
import
numpy
as
np
import
sched
import
sched
import
time
import
time
...
...
realtime_dispatch.py
View file @
430230f1
...
@@ -19,6 +19,7 @@ from core.schedule import PreSchedule
...
@@ -19,6 +19,7 @@ from core.schedule import PreSchedule
from
data.dispatchInfo
import
DispatchInfo
from
data.dispatchInfo
import
DispatchInfo
from
util
import
CoreException
from
util
import
CoreException
from
core.group
import
direct2redis
from
core.group
import
direct2redis
import
argparse
def
process
(
dispatcher
):
def
process
(
dispatcher
):
...
@@ -130,6 +131,16 @@ def main(inc, dispatcher):
...
@@ -130,6 +131,16 @@ def main(inc, dispatcher):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
# 创建参数解析器
parser
=
argparse
.
ArgumentParser
(
description
=
'argparse some parameters.'
)
# 添加参数
parser
.
add_argument
(
'--active'
,
action
=
'store_true'
,
help
=
'active re-dispatch?'
)
# 参数解析
args
=
parser
.
parse_args
()
redispatch_active
=
args
.
active
# 初始化日志
# 初始化日志
set_log
()
set_log
()
# 获取日志器
# 获取日志器
...
@@ -150,7 +161,7 @@ if __name__ == "__main__":
...
@@ -150,7 +161,7 @@ if __name__ == "__main__":
pre_sch
=
PreSchedule
(
truck
,
excavator
,
dump
)
pre_sch
=
PreSchedule
(
truck
,
excavator
,
dump
)
# 实例化矿卡调度器
# 实例化矿卡调度器
dispatcher
=
Dispatcher
(
truck
,
dump
,
excavator
,
pre_sch
,
False
)
dispatcher
=
Dispatcher
(
truck
,
dump
,
excavator
,
pre_sch
,
False
,
redispatch_active
)
logger
.
info
(
" "
)
logger
.
info
(
" "
)
logger
.
info
(
"调度系统启动"
)
logger
.
info
(
"调度系统启动"
)
...
...
realtime_dispatch_test.py
View file @
430230f1
...
@@ -17,6 +17,7 @@ import time
...
@@ -17,6 +17,7 @@ import time
from
core.dispatcher
import
Dispatcher
from
core.dispatcher
import
Dispatcher
from
core.schedule
import
PreSchedule
from
core.schedule
import
PreSchedule
from
data.dispatchInfo
import
DispatchInfo
from
data.dispatchInfo
import
DispatchInfo
import
argparse
def
direct2redis
():
def
direct2redis
():
...
@@ -150,6 +151,18 @@ def main(inc, dispatcher):
...
@@ -150,6 +151,18 @@ def main(inc, dispatcher):
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
# 创建参数解析器
parser
=
argparse
.
ArgumentParser
(
description
=
'argparse some parameters.'
)
# 添加参数
parser
.
add_argument
(
'--active'
,
action
=
'store_true'
,
help
=
'active re-dispatch?'
)
parser
.
add_argument
(
'--sqlserver'
,
action
=
'store_true'
,
help
=
'use SQLserver?'
)
# 参数解析
args
=
parser
.
parse_args
()
redispatch_active
=
args
.
active
# 初始化日志
# 初始化日志
set_log
()
set_log
()
# 获取日志器
# 获取日志器
...
@@ -170,7 +183,7 @@ if __name__ == "__main__":
...
@@ -170,7 +183,7 @@ if __name__ == "__main__":
pre_sch
=
PreSchedule
(
truck
,
excavator
,
dump
)
pre_sch
=
PreSchedule
(
truck
,
excavator
,
dump
)
# 实例化矿卡调度器
# 实例化矿卡调度器
dispatcher
=
Dispatcher
(
truck
,
dump
,
excavator
,
pre_sch
,
False
)
dispatcher
=
Dispatcher
(
truck
,
dump
,
excavator
,
pre_sch
,
False
,
redispatch_active
)
logger
.
info
(
" "
)
logger
.
info
(
" "
)
logger
.
info
(
"调度系统启动"
)
logger
.
info
(
"调度系统启动"
)
...
...
settings.py
View file @
430230f1
...
@@ -19,6 +19,8 @@ from datetime import datetime, timedelta
...
@@ -19,6 +19,8 @@ from datetime import datetime, timedelta
import
copy
import
copy
import
json
import
json
global
redispatch_active
json_file
=
"config.json"
json_file
=
"config.json"
with
open
(
json_file
)
as
f
:
with
open
(
json_file
)
as
f
:
...
...
start.sh
View file @
430230f1
#!/bin/bash
#!/bin/bash
python3 topo_update_server.py
python3 topo_update_server.py
nohup
python3 realtime_dispatch.py
>
/dev/null 2>&1 &
nohup
python3 realtime_dispatch.py
--active
>
/dev/null 2>&1 &
\ No newline at end of file
\ No newline at end of file
tables.py
View file @
430230f1
...
@@ -15,6 +15,7 @@ from sqlalchemy.orm import sessionmaker, scoped_session
...
@@ -15,6 +15,7 @@ from sqlalchemy.orm import sessionmaker, scoped_session
from
sqlalchemy.ext.declarative
import
declarative_base
from
sqlalchemy.ext.declarative
import
declarative_base
from
urllib.parse
import
quote
from
urllib.parse
import
quote
import
json
,
os
import
json
,
os
from
settings
import
*
relative_path
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
# 获取当前文件夹的绝对路径
relative_path
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
# 获取当前文件夹的绝对路径
json_file
=
os
.
path
.
join
(
relative_path
,
"config.json"
)
json_file
=
os
.
path
.
join
(
relative_path
,
"config.json"
)
...
@@ -83,63 +84,6 @@ session_postgre.expire_on_commit = False
...
@@ -83,63 +84,6 @@ session_postgre.expire_on_commit = False
# 定义对象:
# 定义对象:
# class Excavator(Base):
# __tablename__ = 'excavator_property'
#
# excavator_id = Column(VARCHAR(36), primary_key=True)
# load_area_id = Column(VARCHAR(36))
# average_load_time = Column(Integer)
# target_mass = Column(Float(2))
# actual_mass = Column(Float(2))
# # virtual_mass = Column(Float(2))
# # last_load_time = Column(DateTime)
#
# def __init__(self, excavator_id, load_area_id, average_load_time, target_mass, actual_mass):
# self.excavator_id = excavator_id
# self.load_area_id = load_area_id
# self.average_load_time = average_load_time
# self.target_mass = target_mass
# self.actual_mass = actual_mass
# # self.virtual_mass = virtual_mass
# # self.last_load_time = last_load_time
# class Dump(Base):
# __tablename__ = 'dump_property'
#
# dump_id = Column(VARCHAR(36), primary_key=True)
# unload_area_id = Column(VARCHAR(36))
# average_unload_time = Column(Integer)
# target_mass = Column(Float(2))
# actual_mass = Column(Float(2))
# # virtual_mass = Column(Float(2))
# # last_unload_time = Column(DateTime)
#
# def __init__(self, dump_id, unload_area_id, average_unload_time, target_mass, actual_mass):
# self.dump_id = dump_id
# self.unload_area_id = unload_area_id
# self.average_unload_time = average_unload_time
# self.target_mass = target_mass
# self.actual_mass = actual_mass
# # self.virtual_mass = virtual_mass
# # self.last_unload_time = last_unload_time
# class Walk_time(Base):
# __tablename__ = 'walk_time'
#
# Rid = Column(VARCHAR(36), primary_key=True)
# load_area_id = Column(VARCHAR(36))
# unload_area_id = Column(VARCHAR(36))
# walktime_load = Column(Float(2))
# walktime_unload = Column(Float(2))
#
# def __init__(self, Rid, load_area_id, unload_area_id, walktime_load, walktime_unload):
# self.Rid = Rid
# self.load_area_id = load_area_id
# self.unload_area_id = unload_area_id
# self.walktime_load = walktime_load
# self.walktime_unload = walktime_unload
class
WalkTime
(
Base
):
class
WalkTime
(
Base
):
__tablename__
=
'work_area_distance'
__tablename__
=
'work_area_distance'
...
@@ -164,61 +108,6 @@ class WalkTime(Base):
...
@@ -164,61 +108,6 @@ class WalkTime(Base):
self
.
to_unload_lanes
=
to_unload_lanes
self
.
to_unload_lanes
=
to_unload_lanes
self
.
to_load_lanes
=
to_load_lanes
self
.
to_load_lanes
=
to_load_lanes
# Rid = Column(VARCHAR(36), primary_key=True)
# load_area_id = Column(VARCHAR(36))
# unload_area_id = Column(VARCHAR(36))
# walktime_load = Column(Float(2))
# walktime_unload = Column(Float(2))
#
# def __init__(self, Rid, load_area_id, unload_area_id, walktime_load, walktime_unload):
# self.Rid = Rid
# self.load_area_id = load_area_id
# self.unload_area_id = unload_area_id
# self.walktime_load = walktime_load
# self.walktime_unload = walktime_unload
# class Truck(Base):
# __tablename__ = 'truck_status'
#
# truck_id = Column(VARCHAR(36), primary_key=True)
# # dispatch_id = Column(VARCHAR(36))
# current_task = Column(Integer)
# # reach_time = Column(DateTime)
# last_load_time = Column(DateTime)
# last_unload_time = Column(DateTime)
# payload = Column(Float(2))
#
# def __init__(self, truck_id, current_task, last_load_time, last_unload_time, payload):
# self.truck_id = truck_id
# # self.dispatch_id = dispatch_id
# self.current_task = current_task
# # self.reach_time = reach_time
# self.last_load_time = last_load_time
# self.last_unload_time = last_unload_time
# self.payload = payload
#
# def check_existing(self):
# existing = session_mysql.query(Truck).filter_by(truck_id=self.truck_id).first()
# if not existing:
# truck = Truck(self.truck_id, self.dispatch_id, self.status, self.reach_time, self.last_load_time, self.last_unload_time, self.payload)
# else:
# truck = existing
# session_mysql.close()
# return truck
# class Dispatch(Base):
# __tablename__ = 'dispatch_pair'
#
# dispatch_id = Column(VARCHAR(36), primary_key=True)
# excavator_id = Column(VARCHAR(36))
# dump_id = Column(VARCHAR(36))
#
# def __init__(self, dispatch_id, excavator_id, dump_id):
# self.dispatch_id = dispatch_id
# self.excavator_id = excavator_id
# self.dump_id = dump_id
class
EquipmentPair
(
Base
):
class
EquipmentPair
(
Base
):
__tablename__
=
'sys_equipment_pair'
__tablename__
=
'sys_equipment_pair'
...
@@ -368,13 +257,6 @@ class WalkTimePark(Base):
...
@@ -368,13 +257,6 @@ class WalkTimePark(Base):
self
.
park_load_lanes
=
park_load_lanes
self
.
park_load_lanes
=
park_load_lanes
# class DispatchSetting(Base):
# __tablename__ = 'sys_dispatch_setting_v'
# id = Column(VARCHAR(36), primary_key=True)
#
# def __init__(self, id):
# self.id = id
class
Equipment
(
Base
):
class
Equipment
(
Base
):
__tablename__
=
'sys_equipment'
__tablename__
=
'sys_equipment'
...
...
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