Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
integrated-scheduling
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
0
Merge Requests
0
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
Commits
7852b5be
Commit
7852b5be
authored
Oct 12, 2021
by
Allvey
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复未知BUG
parent
2ae19283
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
149 additions
and
135 deletions
+149
-135
dump.py
equipment/dump.py
+36
-36
excavator.py
equipment/excavator.py
+49
-45
truck.py
equipment/truck.py
+10
-10
para_config.py
para_config.py
+13
-12
path_plannner.py
path_plan/path_plannner.py
+8
-5
realtime_dispatch.py
realtime_dispatch.py
+22
-20
static_data_process.py
static_data_process.py
+4
-0
traffic_flow_info.py
traffic_flow/traffic_flow_info.py
+5
-5
traffic_flow_planner.py
traffic_flow/traffic_flow_planner.py
+2
-2
No files found.
equipment/dump.py
View file @
7852b5be
...
...
@@ -64,25 +64,25 @@ class DumpInfo(WalkManage):
for
dump_id
in
self
.
dump_uuid_to_index_dict
.
keys
():
ave_unload_time
=
0
unload_count
=
0
try
:
for
query
in
(
session_mysql
.
query
(
JobRecord
.
start_time
,
JobRecord
.
end_time
)
.
join
(
Equipment
,
JobRecord
.
equipment_id
==
Equipment
.
equipment_id
)
.
filter
(
Equipment
.
id
==
dump_id
,
JobRecord
.
end_time
!=
None
)
.
order_by
(
JobRecord
.
start_time
.
desc
())
.
limit
(
10
)
):
ave_unload_time
=
ave_unload_time
+
float
(
(
query
.
end_time
-
query
.
start_time
)
/
timedelta
(
hours
=
0
,
minutes
=
1
,
seconds
=
0
)
)
unload_count
=
unload_count
+
1
self
.
unloading_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
(
ave_unload_time
/
unload_count
)
except
Exception
as
es
:
logger
.
error
(
f
"卸载设备 {dump_id} 卸载时间信息缺失, 已设为默认值(1min)"
)
logger
.
error
(
es
)
#
try:
#
for query in (
#
session_mysql.query(JobRecord.start_time, JobRecord.end_time)
#
.join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
#
.filter(Equipment.id == dump_id, JobRecord.end_time != None)
#
.order_by(JobRecord.start_time.desc())
#
.limit(10)
#
):
#
ave_unload_time = ave_unload_time + float(
#
(query.end_time - query.start_time)
#
/ timedelta(hours=0, minutes=1, seconds=0)
#
)
#
unload_count = unload_count + 1
#
self.unloading_time[self.dump_uuid_to_index_dict[dump_id]] = (
#
ave_unload_time / unload_count
#
)
#
except Exception as es:
#
logger.error(f"卸载设备 {dump_id} 卸载时间信息缺失, 已设为默认值(1min)")
#
logger.error(es)
self
.
unloading_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
5.00
# print("average_unload_time: ", self.unloading_time[self.dump_uuid_to_index_dict[dump_id]])
...
...
@@ -93,23 +93,23 @@ class DumpInfo(WalkManage):
now
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d"
)
for
dump_id
in
self
.
dump_uuid_to_index_dict
.
keys
():
try
:
for
query
in
(
session_mysql
.
query
(
WorkRecord
)
.
filter
(
WorkRecord
.
equipment_id
==
dump_id
,
WorkRecord
.
work_day
>=
now
)
.
first
()
):
self
.
entrance_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
float
(
query
.
load_entrance_time
/
query
.
load_entrance_count
)
self
.
exit_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
float
(
query
.
exit_entrance_time
/
query
.
exit_entrance_count
)
except
Exception
as
es
:
logger
.
error
(
f
"卸载设备 {dump_id} 出入场时间信息缺失, 已设为默认值(1min)"
)
logger
.
error
(
es
)
#
try:
#
for query in (
#
session_mysql.query(WorkRecord)
#
.filter(
#
WorkRecord.equipment_id == dump_id, WorkRecord.work_day >= now
#
)
#
.first()
#
):
#
self.entrance_time[self.dump_uuid_to_index_dict[dump_id]] = float(
#
query.load_entrance_time / query.load_entrance_count
#
)
#
self.exit_time[self.dump_uuid_to_index_dict[dump_id]] = float(
#
query.exit_entrance_time / query.exit_entrance_count
#
)
#
except Exception as es:
#
logger.error(f"卸载设备 {dump_id} 出入场时间信息缺失, 已设为默认值(1min)")
#
logger.error(es)
self
.
entrance_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
0.50
self
.
exit_time
[
self
.
dump_uuid_to_index_dict
[
dump_id
]]
=
0.50
...
...
equipment/excavator.py
View file @
7852b5be
...
...
@@ -30,9 +30,9 @@ class ExcavatorInfo(WalkManage):
# 挖机对应物料类型
self
.
excavator_material
=
{}
# 挖机设备优先级
self
.
excavator_priority_coefficient
=
np
.
ones
(
dynamic_excavator_num
)
self
.
excavator_priority_coefficient
=
np
.
ones
(
self
.
dynamic_excavator_num
)
# 挖机物料优先级
self
.
excavator_material_priority
=
np
.
ones
(
dynamic_excavator_num
)
self
.
excavator_material_priority
=
np
.
ones
(
self
.
dynamic_excavator_num
)
# 初始化读取映射及路网
self
.
period_map_para_load
()
...
...
@@ -58,27 +58,29 @@ class ExcavatorInfo(WalkManage):
for
excavator_id
in
self
.
excavator_uuid_to_index_dict
.
keys
():
ave_load_time
=
0
load_count
=
0
try
:
for
query
in
(
session_mysql
.
query
(
JobRecord
.
start_time
,
JobRecord
.
end_time
)
.
join
(
Equipment
,
JobRecord
.
equipment_id
==
Equipment
.
equipment_id
)
.
filter
(
Equipment
.
id
==
excavator_id
,
JobRecord
.
end_time
!=
None
)
.
order_by
(
JobRecord
.
start_time
.
desc
())
.
limit
(
10
)
):
ave_load_time
=
ave_load_time
+
float
(
(
query
.
end_time
-
query
.
start_time
)
/
timedelta
(
hours
=
0
,
minutes
=
1
,
seconds
=
0
)
)
load_count
=
load_count
+
1
self
.
loading_time
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]]
=
(
ave_load_time
/
load_count
)
except
Exception
as
es
:
logger
.
error
(
f
"挖机 {excavator_id} 装载时间信息缺失, 已设为默认值(1min)"
)
logger
.
error
(
es
)
print
(
"loading_time"
,
self
.
loading_time
)
print
(
"excavator_uuid_to_index_dict"
,
self
.
excavator_uuid_to_index_dict
)
# try:
# for query in (
# session_mysql.query(JobRecord.start_time, JobRecord.end_time)
# .join(Equipment, JobRecord.equipment_id == Equipment.equipment_id)
# .filter(Equipment.id == excavator_id, JobRecord.end_time != None)
# .order_by(JobRecord.start_time.desc())
# .limit(10)
# ):
# ave_load_time = ave_load_time + float(
# (query.end_time - query.start_time)
# / timedelta(hours=0, minutes=1, seconds=0)
# )
# load_count = load_count + 1
# self.loading_time[self.excavator_uuid_to_index_dict[excavator_id]] = (
# ave_load_time / load_count
# )
# except Exception as es:
# logger.error(f"挖机 {excavator_id} 装载时间信息缺失, 已设为默认值(1min)")
# logger.error(es)
logger
.
info
(
"loading_time"
)
logger
.
info
(
self
.
loading_time
)
logger
.
info
(
"excavator_uuid_to_index_dict"
)
logger
.
info
(
self
.
excavator_uuid_to_index_dict
)
self
.
loading_time
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]]
=
5.00
# 更新挖机设备出入时间
...
...
@@ -88,24 +90,24 @@ class ExcavatorInfo(WalkManage):
now
=
datetime
.
now
()
.
strftime
(
"
%
Y-
%
m-
%
d"
)
for
excavator_id
in
self
.
excavator_uuid_to_index_dict
.
keys
():
try
:
for
query
in
(
session_mysql
.
query
(
WorkRecord
)
.
filter
(
WorkRecord
.
equipment_id
==
excavator_id
,
WorkRecord
.
work_day
>=
now
,
)
.
first
()
):
self
.
entrance_time
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]
]
=
float
(
query
.
load_entrance_time
/
query
.
load_entrance_count
)
self
.
exit_time
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]
]
=
float
(
query
.
exit_entrance_time
/
query
.
exit_entrance_count
)
except
Exception
as
es
:
logger
.
error
(
f
"挖机设备 {excavator_id} 出入场时间信息缺失, 已设为默认值(1min)"
)
logger
.
error
(
es
)
#
try:
#
for query in (
#
session_mysql.query(WorkRecord)
#
.filter(
#
WorkRecord.equipment_id == excavator_id,
#
WorkRecord.work_day >= now,
#
)
#
.first()
#
):
#
self.entrance_time[
#
self.excavator_uuid_to_index_dict[excavator_id]
#
] = float(query.load_entrance_time / query.load_entrance_count)
#
self.exit_time[
#
self.excavator_uuid_to_index_dict[excavator_id]
#
] = float(query.exit_entrance_time / query.exit_entrance_count)
#
except Exception as es:
#
logger.error(f"挖机设备 {excavator_id} 出入场时间信息缺失, 已设为默认值(1min)")
#
logger.error(es)
self
.
entrance_time
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]
]
=
0.50
...
...
@@ -124,7 +126,8 @@ class ExcavatorInfo(WalkManage):
return
loading_task_time
def
update_excavator_material
(
self
):
print
(
"here"
,
self
.
dynamic_excavator_set
)
logger
.
info
(
"self.dynamic_excavator_set"
)
logger
.
info
(
self
.
dynamic_excavator_set
)
for
excavator_id
in
self
.
dynamic_excavator_set
:
try
:
load_area_id
=
session_mysql
.
query
(
Dispatch
)
.
filter_by
(
exactor_id
=
excavator_id
,
isdeleted
=
0
,
isauto
=
1
)
.
first
()
.
load_area_id
...
...
@@ -135,12 +138,13 @@ class ExcavatorInfo(WalkManage):
def
update_excavator_priority
(
self
):
print
(
"dynamic_excavator_set"
,
self
.
dynamic_excavator_set
)
logger
.
info
(
"dynamic_excavator_set"
)
logger
.
info
(
self
.
dynamic_excavator_set
)
for
excavator_id
in
self
.
dynamic_excavator_set
:
item
=
session_mysql
.
query
(
Equipment
)
.
filter_by
(
id
=
excavator_id
)
.
first
()
print
(
"excavator_priority_coefficient"
,
self
.
excavator_priority_coefficient
)
print
(
self
.
excavator_uuid_to_index_dic
t
)
logger
.
info
(
"excavator_priority_coefficient"
)
logger
.
info
(
self
.
excavator_priority_coefficien
t
)
self
.
excavator_priority_coefficient
[
self
.
excavator_uuid_to_index_dict
[
excavator_id
]]
=
item
.
priority
+
1
# 物料优先级控制
...
...
equipment/truck.py
View file @
7852b5be
...
...
@@ -65,9 +65,9 @@ class TruckInfo(WalkManage):
# 矿卡绑定物料
self
.
truck_material_bind
=
{}
# 矿卡绑定物料modify
self
.
dump_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
dynamic_dump_num
),
0
)
self
.
dump_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
get_value
(
"dynamic_dump_num"
)
),
0
)
# self.excavator_material_bind_modify =np.zeros(self.dynamic_truck_num)
self
.
excavator_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
dynamic_excavator_num
),
0
)
self
.
excavator_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
get_value
(
"dynamic_excavator_num"
)
),
0
)
# 初始化读取映射及路网
self
.
period_map_para_load
()
self
.
period_walk_para_load
()
...
...
@@ -226,7 +226,7 @@ class TruckInfo(WalkManage):
except
Exception
as
es
:
logger
.
warning
(
es
)
try
:
#
try:
# 若矿卡状态为空运
if
task
in
empty_task_set
:
last_unload_time
=
self
.
relative_last_unload_time
[
...
...
@@ -278,9 +278,9 @@ class TruckInfo(WalkManage):
# 其他状态,矿卡状态为-2,equipment_pair表不存在该矿卡
else
:
pass
except
Exception
as
es
:
logger
.
error
(
"矿卡行程读取异常"
)
logger
.
error
(
es
)
#
except Exception as es:
#
logger.error("矿卡行程读取异常")
#
logger.error(es)
self
.
truck_current_trip
.
flatten
()
# print("当前矿卡行程:")
...
...
@@ -365,7 +365,7 @@ class TruckInfo(WalkManage):
self
.
truck_excavator_exclude
=
{}
self
.
excavator_exclude_modify
=
np
.
full
(
(
self
.
dynamic_truck_num
,
dynamic_excavator_num
),
0
(
self
.
dynamic_truck_num
,
get_value
(
"dynamic_excavator_num"
)
),
0
)
try
:
...
...
@@ -421,7 +421,7 @@ class TruckInfo(WalkManage):
truck_index
=
self
.
truck_uuid_to_index_dict
[
truck_id
]
print
(
"excavator_material_bind_modify"
,
self
.
excavator_material_bind_modify
)
#
print("excavator_material_bind_modify", self.excavator_material_bind_modify)
if
truck_id
in
self
.
truck_material_bind
:
...
...
@@ -480,9 +480,9 @@ class TruckInfo(WalkManage):
# 矿卡绑定物料
self
.
truck_material_bind
=
{}
# 矿卡绑定物料modify
self
.
dump_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
dynamic_excavator_num
),
0
)
self
.
dump_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
get_value
(
"dynamic_excavator_num"
)
),
0
)
# self.excavator_material_bind_modify =np.zeros(self.dynamic_truck_num)
self
.
excavator_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
dynamic_excavator_num
),
0
)
self
.
excavator_material_bind_modify
=
np
.
full
((
self
.
dynamic_truck_num
,
get_value
(
"dynamic_excavator_num"
)
),
0
)
def
para_period_update
(
self
):
...
...
para_config.py
View file @
7852b5be
...
...
@@ -477,18 +477,19 @@ def period_para_update():
global_dict
[
"distance_park_to_excavator"
]
=
walk_manage
.
distance_park_to_excavator
global_dict
[
"distance_to_dump"
]
=
walk_manage
.
distance_to_dump
print
(
"walk_manage_para"
)
print
(
"distance_to_excavator"
,
walk_manage
.
distance_to_excavator
)
print
(
"distance_park_to_excavator"
,
walk_manage
.
distance_park_to_excavator
)
print
(
"distance_to_dump"
,
walk_manage
.
distance_to_dump
)
print
(
"excavator_uuid_to_index_dict"
,
walk_manage
.
excavator_uuid_to_index_dict
)
print
(
"dump_uuid_to_index_dict"
,
walk_manage
.
dump_uuid_to_index_dict
)
print
(
"here5"
,
walk_manage
.
distance_park_to_excavator
)
logger
.
info
(
"walk_manage_para"
)
logger
.
info
(
"distance_to_excavator"
)
logger
.
info
(
walk_manage
.
distance_to_excavator
)
logger
.
info
(
"distance_park_to_excavator"
)
logger
.
info
(
walk_manage
.
distance_park_to_excavator
)
logger
.
info
(
"distance_to_dump"
)
logger
.
info
(
walk_manage
.
distance_to_dump
)
logger
.
info
(
"excavator_uuid_to_index_dict"
)
logger
.
info
(
walk_manage
.
excavator_uuid_to_index_dict
)
logger
.
info
(
"dump_uuid_to_index_dict"
)
logger
.
info
(
walk_manage
.
dump_uuid_to_index_dict
)
logger
.
info
(
"walk_manage.distance_park_to_excavator"
)
logger
.
info
(
walk_manage
.
distance_park_to_excavator
)
def
get_value
(
name
):
return
global_dict
[
name
]
path_plan/path_plannner.py
View file @
7852b5be
...
...
@@ -170,7 +170,8 @@ class PathPlanner(WalkManage):
cost_to_dump
=
np
.
zeros_like
(
get_value
(
"distance_to_dump"
))
cost_park_to_excavator
=
np
.
zeros_like
(
get_value
(
"distance_park_to_excavator"
))
print
(
"here4"
,
self
.
distance_park_to_excavator
)
logger
.
info
(
"distance_park_to_excavator"
)
logger
.
info
(
self
.
distance_park_to_excavator
)
# try:
# 路网权重
...
...
@@ -179,9 +180,11 @@ class PathPlanner(WalkManage):
# 路网禁用关系
walk_available
=
available_walk
()
print
(
"path_weight"
,
walk_weight
)
logger
.
info
(
"path_weight"
)
logger
.
info
(
walk_weight
)
print
(
"walk_avail"
,
walk_available
)
logger
.
info
(
"walk_avail"
)
logger
.
info
(
walk_available
)
# except Exception as es:
# logger.error("无派车计划可用")
...
...
@@ -190,8 +193,8 @@ class PathPlanner(WalkManage):
for
j
in
range
(
get_value
(
"dynamic_excavator_num"
)):
load_area_index
=
self
.
excavator_index_to_load_area_index_dict
[
j
]
unload_area_index
=
self
.
dump_index_to_unload_area_index_dict
[
i
]
print
(
"here6"
,
cost_to_excavator
)
print
(
"here7"
,
self
.
cost_to_load_area
)
logger
.
info
(
"cost_to_excavator"
)
logger
.
info
(
cost_to_excavator
)
cost_to_excavator
[
i
][
j
]
=
self
.
cost_to_load_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
cost_to_dump
[
i
][
j
]
=
self
.
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
walk_weight
[
i
][
j
]
*
walk_available
[
i
][
j
]
...
...
realtime_dispatch.py
View file @
7852b5be
...
...
@@ -126,7 +126,7 @@ class Dispatcher(WalkManage):
# 初始化挖机可用时间
self
.
cur_excavator_ava_time
=
np
.
full
(
dynamic_excavator_num
,
get_value
(
"dynamic_excavator_num"
)
,
(
datetime
.
now
()
-
self
.
start_time
)
/
timedelta
(
hours
=
0
,
minutes
=
1
,
seconds
=
0
),
)
...
...
@@ -236,7 +236,7 @@ class Dispatcher(WalkManage):
(
dynamic_dump_num
,
dynamic_excavator_num
)
)
#
try:
try
:
for
i
in
range
(
dynamic_truck_num
):
task
=
truck_current_task
[
truck
.
truck_index_to_uuid_dict
[
i
]]
...
...
@@ -287,10 +287,9 @@ class Dispatcher(WalkManage):
logger
.
info
(
"self.actual_goto_excavator_traffic_flow"
)
logger
.
info
(
self
.
actual_goto_excavator_traffic_flow
)
# except Exception as es:
# logger.error("更新不及时1")
# logger.error(es)
except
Exception
as
es
:
logger
.
error
(
"未知错误001"
)
logger
.
error
(
es
)
# print("驶往卸点实际载重")
# print(self.actual_goto_dump_traffic_flow)
...
...
@@ -409,8 +408,6 @@ class Dispatcher(WalkManage):
self
.
cur_excavator_ava_time
=
np
.
zeros
(
excavator
.
get_excavator_num
())
self
.
cur_dump_ava_time
=
np
.
zeros
(
dump
.
get_dump_num
())
# 卡车完成装载及卸载时间(矿卡可用时间)
print
(
"here1"
)
print
(
truck
.
get_truck_num
())
self
.
cur_truck_ava_time
=
np
.
zeros
(
truck
.
get_truck_num
())
# 模拟矿卡可用时间
self
.
sim_truck_ava_time
=
np
.
zeros
(
truck
.
get_truck_num
())
...
...
@@ -512,7 +509,7 @@ class Dispatcher(WalkManage):
else
:
transport_value
=
self
.
cost_park_to_excavator
print
(
"
here3
"
,
self
.
cost_park_to_excavator
)
print
(
"
self.cost_park_to_excavator
"
,
self
.
cost_park_to_excavator
)
logger
.
info
(
"transport_value"
)
logger
.
info
(
transport_value
)
...
...
@@ -714,7 +711,7 @@ class Dispatcher(WalkManage):
self
.
reset
()
print
(
"
here2
"
,
self
.
cur_truck_ava_time
)
print
(
"
self.cur_truck_ava_time
"
,
self
.
cur_truck_ava_time
)
# try:
...
...
@@ -758,7 +755,7 @@ class Dispatcher(WalkManage):
for
truck_index
in
index
:
if
len
(
Seq
[
truck_index
])
>
0
:
#
try:
try
:
task
=
truck_current_task
[
truck
.
truck_index_to_uuid_dict
[
truck_index
]]
...
...
@@ -771,9 +768,9 @@ class Dispatcher(WalkManage):
# 写入Seq序列
Seq
[
truck_index
][
1
]
=
target_eq_index
#
except Exception as es:
# logger.error(f'矿卡 {truck_uuid_to_name_dict[
truck_index_to_uuid_dict[truck]]} 派车计划计算异常')
#
logger.error(es)
except
Exception
as
es
:
logger
.
error
(
f
'矿卡 {truck_uuid_to_name_dict[self.
truck_index_to_uuid_dict[truck]]} 派车计划计算异常'
)
logger
.
error
(
es
)
try
:
...
...
@@ -896,6 +893,8 @@ def state_process(dispatcher):
print
(
"state_process!"
)
logger
.
info
(
"state_process!"
)
# 清空数据库缓存
session_mysql
.
commit
()
session_mysql
.
flush
()
...
...
@@ -924,18 +923,21 @@ def state_process(dispatcher):
# 下面三个函数保证程序定期执行,不用管他
def
process
(
dispatcher
):
#
try:
try
:
# 更新周期参数
period_para_update
()
# if dynamic_dump_num * dynamic_excavator_num == 0:
# raise Exception("无动态派车计划可用")
if
get_value
(
"dynamic_dump_num"
)
*
get_value
(
"dynamic_excavator_num"
)
==
0
:
raise
Exception
(
"无动态派车计划可用"
)
return
if
get_value
(
"dynamic_truck_num"
)
==
0
:
raise
Exception
(
"无动态派车可用矿卡"
)
return
para_process
(
dispatcher
)
state_process
(
dispatcher
)
# except Exception as es:
# logger.warning(es)
# logger.warning("外层异常捕获")
except
Exception
as
es
:
logger
.
error
(
es
)
scheduler
=
sched
.
scheduler
(
time
.
time
,
time
.
sleep
)
...
...
static_data_process.py
View file @
7852b5be
...
...
@@ -38,6 +38,7 @@ def build_work_area_uuid_index_map():
if
unload_area_num
<
1
or
load_area_num
<
1
:
raise
Exception
(
"无路网信息"
)
except
Exception
as
es
:
raise
Exception
(
"路网读取"
)
logger
.
error
(
es
)
return
(
load_area_uuid_to_index_dict
,
...
...
@@ -64,6 +65,7 @@ def build_park_uuid_index_map():
if
park_num
<
1
:
raise
Exception
(
"无备停区路网信息"
)
except
Exception
as
es
:
logger
.
info
(
"备停区路网读取"
)
logger
.
error
(
es
)
return
park_uuid_to_index_dict
,
park_index_to_uuid_dict
...
...
@@ -188,6 +190,7 @@ def update_total_truck():
if
len
(
truck_list
)
<
1
:
raise
Exception
(
"无矿卡设备可用-矿卡集合读取异常"
)
except
Exception
as
es
:
logger
.
info
(
"矿卡读取"
)
logger
.
error
(
es
)
return
truck_list
...
...
@@ -207,6 +210,7 @@ def update_fixdisp_truck():
if
len
(
fixed_truck_list
)
<
1
:
raise
Exception
(
"无固定派车计划可用-固定派车矿卡集合读取异常"
)
except
Exception
as
es
:
logger
.
info
(
"派车计划读取"
)
logger
.
error
(
es
)
return
fixed_truck_list
...
...
traffic_flow/traffic_flow_info.py
View file @
7852b5be
...
...
@@ -80,6 +80,7 @@ class Traffic_para(WalkManage):
# 设置卸载点信息
def
extract_dump_info
(
self
):
dynamic_dump_num
=
get_value
(
"dynamic_dump_num"
)
try
:
rule3
=
session_mysql
.
query
(
DispatchRule
)
.
filter_by
(
id
=
3
)
.
first
()
if
not
rule3
.
disabled
:
...
...
@@ -146,11 +147,10 @@ class Traffic_para(WalkManage):
self
.
goto_unload_area_factor
[
load_area_index
][
unload_area_index
]
=
\
(
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
))
/
self
.
payload
print
((
cost_to_unload_area
[
unload_area_index
][
load_area_index
]
/
(
heavy_speed
*
1000
)))
print
(
self
.
payload
)
print
(
"goto_unload_area_factor"
,
self
.
goto_unload_area_factor
)
print
(
"cost_to_unload_area"
,
cost_to_unload_area
)
logger
.
info
(
"goto_unload_area_factor"
)
logger
.
info
(
self
.
goto_unload_area_factor
)
logger
.
info
(
"cost_to_unload_area"
)
logger
.
info
(
cost_to_unload_area
)
except
Exception
as
es
:
logger
.
error
(
es
)
logger
.
error
(
"车流规划信息计算异常"
)
...
...
traffic_flow/traffic_flow_planner.py
View file @
7852b5be
...
...
@@ -144,8 +144,8 @@ def traffic_flow_plan():
# try:
if
(
load_area_num
*
unload_area_num
*
excavator_num
*
dump_num
==
0
):
raise
Exception
(
"无派车计划可用"
)
#
if (load_area_num * unload_area_num * excavator_num * dump_num == 0):
#
raise Exception("无派车计划可用")
# 初始化参量
traffic_programme_para
=
Traffic_para_init
(
load_area_num
,
unload_area_num
,
excavator_num
,
dump_num
)
# traffic_programme_para = traffic_programme_para_init(load_area_num, unload_area_num, excavator_num, dump_num)
...
...
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