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
4e432e92
Commit
4e432e92
authored
Nov 15, 2022
by
张晓彤
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
代码优化
parent
430230f1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
108 additions
and
108 deletions
+108
-108
dispatchInfo.py
data/dispatchInfo.py
+108
-108
No files found.
data/dispatchInfo.py
View file @
4e432e92
...
...
@@ -323,116 +323,116 @@ class DispatchInfo:
cls
.
load_area_uuid_to_index_dict
=
{}
cls
.
unload_area_uuid_to_index_dict
=
{}
# try:
groups
=
cls
.
group_excavator_dict
.
keys
()
for
item
in
groups
:
try
:
# 每个组的 excavator_id 及对应 load_area_id
excavator_ids
=
cls
.
group_excavator_dict
[
item
]
load_areas
=
[]
for
excavator_id
in
excavator_ids
:
load_areas
.
append
(
cls
.
excavator_load_dict
[
excavator_id
])
# 每个组的unload_areas
unload_areas
=
cls
.
group_unload_area_dict
[
item
]
except
Exception
as
es
:
logger
.
error
(
"装卸载区统计异常"
)
logger
.
error
(
es
)
group_excavator_uuid_to_index
=
{}
group_dump_uuid_to_index
=
{}
group_load_area_uuid_to_index
=
{}
group_unload_area_uuid_to_index
=
{}
try
:
# # unload->load distance
# unload_load_distance = np.zeros((len(unload_areas), len(load_areas)))
# for truck_id in range(len(unload_areas)):
# for j in range(len(load_areas)):
# distance = int(session_postgre.query(WalkTime).filter_by(unload_area_id=unload_areas[truck_id], load_area_id=load_areas[j]).first().to_load_distance)
# unload_load_distance[truck_id][j] = distance
# cls.load_distance[item] = unload_load_distance
group_excavator_count
=
0
group_dump_count
=
0
group_load_area_count
=
0
group_unload_area_count
=
0
# unload->load distance
unload_load_distance
=
np
.
zeros
((
len
(
cls
.
group_dump_dict
[
item
]),
len
(
cls
.
group_excavator_dict
[
item
])))
for
excavator_id
in
cls
.
group_excavator_dict
[
item
]:
try
:
groups
=
cls
.
group_excavator_dict
.
keys
()
for
item
in
groups
:
try
:
# 每个组的 excavator_id 及对应 load_area_id
excavator_ids
=
cls
.
group_excavator_dict
[
item
]
load_areas
=
[]
for
excavator_id
in
excavator_ids
:
load_areas
.
append
(
cls
.
excavator_load_dict
[
excavator_id
])
# 每个组的unload_areas
unload_areas
=
cls
.
group_unload_area_dict
[
item
]
except
Exception
as
es
:
logger
.
error
(
"装卸载区统计异常"
)
logger
.
error
(
es
)
group_excavator_uuid_to_index
=
{}
group_dump_uuid_to_index
=
{}
group_load_area_uuid_to_index
=
{}
group_unload_area_uuid_to_index
=
{}
try
:
# # unload->load distance
# unload_load_distance = np.zeros((len(unload_areas), len(load_areas)))
# for truck_id in range(len(unload_areas)):
# for j in range(len(load_areas)):
# distance = int(session_postgre.query(WalkTime).filter_by(unload_area_id=unload_areas[truck_id], load_area_id=load_areas[j]).first().to_load_distance)
# unload_load_distance[truck_id][j] = distance
# cls.load_distance[item] = unload_load_distance
group_excavator_count
=
0
group_dump_count
=
0
group_load_area_count
=
0
group_unload_area_count
=
0
for
dump_id
in
cls
.
group_dump_dict
[
item
]:
unload_area_id
=
cls
.
dump_unload_area_dict
[
dump_id
]
load_area_id
=
cls
.
excavator_load_dict
[
excavator_id
]
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
unload_area_id
=
unload_area_id
,
load_area_id
=
load_area_id
)
.
first
()
.
to_load_distance
)
unload_load_distance
[
group_dump_count
][
group_excavator_count
]
=
distance
if
excavator_id
not
in
group_excavator_uuid_to_index
:
group_excavator_uuid_to_index
[
excavator_id
]
=
group_excavator_count
if
dump_id
not
in
group_dump_uuid_to_index
:
group_dump_uuid_to_index
[
dump_id
]
=
group_dump_count
if
load_area_id
not
in
group_load_area_uuid_to_index
:
group_load_area_uuid_to_index
[
load_area_id
]
=
group_load_area_count
if
unload_area_id
not
in
group_unload_area_uuid_to_index
:
group_unload_area_uuid_to_index
[
unload_area_id
]
=
group_unload_area_count
group_excavator_uuid_to_index
=
bidict
(
group_excavator_uuid_to_index
)
group_dump_uuid_to_index
=
bidict
(
group_dump_uuid_to_index
)
group_load_area_uuid_to_index
=
bidict
(
group_load_area_uuid_to_index
)
group_unload_area_uuid_to_index
=
bidict
(
group_unload_area_uuid_to_index
)
cls
.
excavator_uuid_to_index_dict
[
item
]
=
group_excavator_uuid_to_index
cls
.
dump_uuid_to_index_dict
[
item
]
=
group_dump_uuid_to_index
cls
.
load_area_uuid_to_index_dict
[
item
]
=
group_load_area_uuid_to_index
cls
.
unload_area_uuid_to_index_dict
[
item
]
=
group_unload_area_uuid_to_index
group_dump_count
+=
1
group_unload_area_count
+=
1
group_excavator_count
+=
1
group_load_area_count
+=
1
cls
.
load_distance
[
item
]
=
unload_load_distance
except
Exception
as
es
:
logger
.
warning
(
f
'{item} 分组装载路网异常'
)
cls
.
load_distance
[
item
]
=
np
.
full
((
len
(
unload_areas
),
len
(
load_areas
)),
10000
)
logger
.
warning
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
try
:
# load->unload distance
load_unload_distance
=
np
.
zeros
((
len
(
load_areas
),
len
(
unload_areas
)))
for
i
in
range
(
len
(
load_areas
)):
for
j
in
range
(
len
(
unload_areas
)):
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
load_area_id
=
load_areas
[
i
],
unload_area_id
=
unload_areas
[
j
])
.
first
()
.
to_unload_distance
)
load_unload_distance
[
i
][
j
]
=
distance
cls
.
unload_distance
[
item
]
=
load_unload_distance
except
Exception
as
es
:
logger
.
warning
(
f
'{item} 分组卸载路网异常'
)
cls
.
unload_distance
[
item
]
=
np
.
full
((
len
(
load_areas
),
len
(
unload_areas
)),
10000
)
logger
.
warning
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
# except Exception as es:
# logger.error("路网距离更新异常-调度部分和路网部分不一致")
# logger.error(es)
# unload->load distance
unload_load_distance
=
np
.
zeros
((
len
(
cls
.
group_dump_dict
[
item
]),
len
(
cls
.
group_excavator_dict
[
item
])))
for
excavator_id
in
cls
.
group_excavator_dict
[
item
]:
group_dump_count
=
0
group_unload_area_count
=
0
for
dump_id
in
cls
.
group_dump_dict
[
item
]:
unload_area_id
=
cls
.
dump_unload_area_dict
[
dump_id
]
load_area_id
=
cls
.
excavator_load_dict
[
excavator_id
]
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
unload_area_id
=
unload_area_id
,
load_area_id
=
load_area_id
)
.
first
()
.
to_load_distance
)
unload_load_distance
[
group_dump_count
][
group_excavator_count
]
=
distance
if
excavator_id
not
in
group_excavator_uuid_to_index
:
group_excavator_uuid_to_index
[
excavator_id
]
=
group_excavator_count
if
dump_id
not
in
group_dump_uuid_to_index
:
group_dump_uuid_to_index
[
dump_id
]
=
group_dump_count
if
load_area_id
not
in
group_load_area_uuid_to_index
:
group_load_area_uuid_to_index
[
load_area_id
]
=
group_load_area_count
if
unload_area_id
not
in
group_unload_area_uuid_to_index
:
group_unload_area_uuid_to_index
[
unload_area_id
]
=
group_unload_area_count
group_dump_count
+=
1
group_unload_area_count
+=
1
group_excavator_count
+=
1
group_load_area_count
+=
1
group_excavator_uuid_to_index
=
bidict
(
group_excavator_uuid_to_index
)
group_dump_uuid_to_index
=
bidict
(
group_dump_uuid_to_index
)
group_load_area_uuid_to_index
=
bidict
(
group_load_area_uuid_to_index
)
group_unload_area_uuid_to_index
=
bidict
(
group_unload_area_uuid_to_index
)
cls
.
excavator_uuid_to_index_dict
[
item
]
=
group_excavator_uuid_to_index
cls
.
dump_uuid_to_index_dict
[
item
]
=
group_dump_uuid_to_index
cls
.
load_area_uuid_to_index_dict
[
item
]
=
group_load_area_uuid_to_index
cls
.
unload_area_uuid_to_index_dict
[
item
]
=
group_unload_area_uuid_to_index
cls
.
load_distance
[
item
]
=
unload_load_distance
except
Exception
as
es
:
logger
.
warning
(
f
'{item} 分组装载路网异常'
)
cls
.
load_distance
[
item
]
=
np
.
full
((
len
(
unload_areas
),
len
(
load_areas
)),
10000
)
logger
.
warning
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
try
:
# load->unload distance
load_unload_distance
=
np
.
zeros
((
len
(
load_areas
),
len
(
unload_areas
)))
for
i
in
range
(
len
(
load_areas
)):
for
j
in
range
(
len
(
unload_areas
)):
distance
=
int
(
session_postgre
.
query
(
WalkTime
)
.
filter_by
(
load_area_id
=
load_areas
[
i
],
unload_area_id
=
unload_areas
[
j
])
.
first
()
.
to_unload_distance
)
load_unload_distance
[
i
][
j
]
=
distance
cls
.
unload_distance
[
item
]
=
load_unload_distance
except
Exception
as
es
:
logger
.
warning
(
f
'{item} 分组卸载路网异常'
)
cls
.
unload_distance
[
item
]
=
np
.
full
((
len
(
load_areas
),
len
(
unload_areas
)),
10000
)
logger
.
warning
(
es
)
session_postgre
.
rollback
()
session_mysql
.
rollback
()
except
Exception
as
es
:
logger
.
error
(
"路网距离更新异常-调度部分和路网部分不一致"
)
logger
.
error
(
es
)
# @classmethod
# def update_device_dict(cls):
...
...
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