Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
signal
traffic-signal-platform
Commits
952d7121
Commit
952d7121
authored
May 19, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 快速特勤,添加分组路线规划
parent
df137b3f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
55 additions
and
4 deletions
+55
-4
SpecialServiceServiceImpl.java
...net/wanji/web/service/impl/SpecialServiceServiceImpl.java
+55
-4
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/SpecialServiceServiceImpl.java
View file @
952d7121
...
...
@@ -701,10 +701,13 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
Integer
specialServiceId
=
specialServicePO
.
getId
();
List
<
SpecialServiceCrossPO
>
specialServiceCrossList
=
specialServiceCrossMapper
.
selectBySpecialServiceId
(
specialServiceId
);
int
crossNums
=
specialServiceCrossList
.
size
();
Map
<
String
,
List
<
SpecialServiceCrossPO
>>
map
=
specialServiceCrossList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
SpecialServiceCrossPO:
:
getGroupName
));
for
(
String
groupName
:
map
.
keySet
())
{
GroupListVO
.
GroupListElement
groupListElement
=
new
GroupListVO
.
GroupListElement
();
groupListElement
.
setGroupName
(
groupName
);
...
...
@@ -713,7 +716,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
Collections
.
sort
(
groupCrossList
,
Comparator
.
comparing
(
SpecialServiceCrossPO:
:
getSort
));
StringBuilder
wktBuilder
=
new
StringBuilder
();
List
<
SpecialServiceDetailVO
.
CrossListElement
>
crossList
=
new
ArrayList
<>();
buildWktAndCrosslist
(
wktBuilder
,
crossList
,
groupCrossList
,
groupName
);
buildWktAndCrosslist
(
wktBuilder
,
crossList
,
groupCrossList
,
groupName
,
specialServiceCrossList
);
groupListElement
.
setWkt
(
wktBuilder
.
toString
());
groupListElement
.
setCrossList
(
crossList
);
...
...
@@ -726,7 +729,10 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
}
private
void
buildWktAndCrosslist
(
StringBuilder
wktBuilder
,
List
<
CrossListElement
>
crossList
,
List
<
SpecialServiceCrossPO
>
groupCrossList
,
String
groupName
)
{
List
<
SpecialServiceCrossPO
>
groupCrossList
,
String
groupName
,
List
<
SpecialServiceCrossPO
>
specialServiceCrossList
)
{
int
crossNums
=
specialServiceCrossList
.
size
();
for
(
int
i
=
0
;
i
<
groupCrossList
.
size
();
i
++)
{
SpecialServiceCrossPO
currentCrossElement
=
groupCrossList
.
get
(
i
);
// 构造wkt
...
...
@@ -745,8 +751,53 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
crossListElement
.
setCrossName
(
currentCross
.
getName
());
crossListElement
.
setCrossId
(
currentCrossId
);
setElementStartEnd
(
groupCrossList
,
i
,
currentCrossId
,
crossListElement
);
Integer
sort
=
currentCrossElement
.
getSort
();
if
(
sort
==
1
)
{
crossListElement
.
setRouteStart
(
""
);
SpecialServiceCrossPO
nextCross
=
specialServiceCrossList
.
get
(
sort
);
String
nextCrossId
=
nextCross
.
getCrossId
();
// 构建路名+方向
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
currentCrossId
,
nextCrossId
);
String
name
=
ridInfoEntity
.
getName
();
// 西湖路:湘江中路@书院路路段
String
[]
split
=
name
.
split
(
":"
);
String
streetName
=
split
[
0
];
Integer
outDir
=
ridInfoEntity
.
getOutDir
();
String
ourDirMsg
=
CrossDirEnum
.
getMsgByCode
(
outDir
);
crossListElement
.
setRouteEnd
(
streetName
+
ourDirMsg
);
}
else
if
(
sort
==
crossNums
)
{
// 结束路口
SpecialServiceCrossPO
preCross
=
specialServiceCrossList
.
get
(
sort
-
2
);
String
preCrossId
=
preCross
.
getCrossId
();
// 构建路名+方向
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
preCrossId
,
currentCrossId
);
String
name
=
ridInfoEntity
.
getName
();
// 西湖路:湘江中路@书院路路段
String
[]
split
=
name
.
split
(
":"
);
String
streetName
=
split
[
0
];
Integer
inDir
=
ridInfoEntity
.
getInDir
();
String
inDirMsg
=
CrossDirEnum
.
getMsgByCode
(
inDir
);
crossListElement
.
setRouteStart
(
streetName
+
inDirMsg
);
crossListElement
.
setRouteEnd
(
""
);
}
else
{
// 中间路口
SpecialServiceCrossPO
preCross
=
specialServiceCrossList
.
get
(
sort
-
2
);
SpecialServiceCrossPO
nextCross
=
specialServiceCrossList
.
get
(
sort
);
String
preCrossId
=
preCross
.
getCrossId
();
String
nextCrossId
=
nextCross
.
getCrossId
();
// 路线起点
RidInfoEntity
ridInfoEntity
=
ridInfoMapper
.
selectByStartEnd
(
preCrossId
,
currentCrossId
);
String
name
=
ridInfoEntity
.
getName
();
// 西湖路:湘江中路@书院路路段
String
[]
split
=
name
.
split
(
":"
);
String
streetName
=
split
[
0
];
Integer
inDir
=
ridInfoEntity
.
getInDir
();
String
inDirMsg
=
CrossDirEnum
.
getMsgByCode
(
inDir
);
crossListElement
.
setRouteStart
(
streetName
+
inDirMsg
);
// 路线终点
RidInfoEntity
ridInfoEntity2
=
ridInfoMapper
.
selectByStartEnd
(
currentCrossId
,
nextCrossId
);
String
name2
=
ridInfoEntity2
.
getName
();
// 西湖路:湘江中路@书院路路段
String
[]
split2
=
name2
.
split
(
":"
);
String
streetName2
=
split2
[
0
];
Integer
outDir
=
ridInfoEntity2
.
getOutDir
();
String
ourDirMsg
=
CrossDirEnum
.
getMsgByCode
(
outDir
);
crossListElement
.
setRouteEnd
(
streetName2
+
ourDirMsg
);
}
crossListElement
.
setStatus
(
currentCrossElement
.
getStatus
());
crossListElement
.
setSort
(
currentCrossElement
.
getSort
());
crossList
.
add
(
crossListElement
);
...
...
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