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
8afc75d0
Commit
8afc75d0
authored
Sep 13, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 增加相位方向转向缓存
parent
62e1cf9a
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
115 additions
and
4 deletions
+115
-4
CrossPhaseDirTurnCache.java
...a/net/wanji/utc/hisense/cache/CrossPhaseDirTurnCache.java
+94
-0
DataBrainTurnEnum.java
...net/wanji/utc/hisense/common/enums/DataBrainTurnEnum.java
+3
-3
CrossPhaseDirTurnPojo.java
...ava/net/wanji/utc/hisense/pojo/CrossPhaseDirTurnPojo.java
+18
-0
SignalStatusServiceImpl.java
...nji/utc/hisense/service/impl/SignalStatusServiceImpl.java
+0
-1
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/cache/CrossPhaseDirTurnCache.java
0 → 100644
View file @
8afc75d0
package
net
.
wanji
.
utc
.
hisense
.
cache
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.databus.dao.entity.CrossLightsPO
;
import
net.wanji.databus.dao.entity.CrossPhaseLightsPO
;
import
net.wanji.databus.dao.entity.CrossPhasePO
;
import
net.wanji.databus.dao.entity.CrossSchemePO
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.utc.hisense.pojo.CrossPhaseDirTurnPojo
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author duanruiming
* @date 2023/09/11 17:42
*/
@Slf4j
@Component
@SuppressWarnings
(
"unchecked"
)
@RequiredArgsConstructor
public
class
CrossPhaseDirTurnCache
implements
CommandLineRunner
{
private
final
CrossInfoMapper
crossInfoMapper
;
private
final
CrossPhaseMapper
crossPhaseMapper
;
private
final
CrossSchemeMapper
crossSchemeMapper
;
private
final
CrossPhaseLightsMapper
crossPhaseLightsMapper
;
private
final
CrossLightsMapper
crossLightsMapper
;
private
static
final
Map
<
String
,
List
<
CrossPhaseDirTurnPojo
>>
crossInfoMap
=
new
HashMap
<>();
public
static
List
<
CrossPhaseDirTurnPojo
>
getCrossPhaseDirTurnCache
(
String
crossId
)
{
if
(!
crossInfoMap
.
isEmpty
())
{
return
crossInfoMap
.
get
(
crossId
);
}
return
null
;
}
@Override
public
void
run
(
String
...
args
)
throws
Exception
{
init
();
}
public
void
init
()
{
List
<
CrossInfoPO
>
crossInfoPOList
=
crossInfoMapper
.
selectAll
();
if
(!
CollectionUtils
.
isEmpty
(
crossInfoPOList
))
{
for
(
CrossInfoPO
crossInfoPO
:
crossInfoPOList
)
{
String
crossId
=
crossInfoPO
.
getId
();
List
<
CrossSchemePO
>
crossSchemePOS
=
crossSchemeMapper
.
selectByCrossId
(
crossId
);
Map
<
Integer
,
String
>
schemeIdNoMap
=
crossSchemePOS
.
stream
().
collect
(
Collectors
.
toMap
(
CrossSchemePO:
:
getId
,
CrossSchemePO:
:
getSchemeNo
));
List
<
CrossPhasePO
>
crossPhasePOS
=
crossPhaseMapper
.
selectByCrossId
(
crossId
);
if
(!
CollectionUtils
.
isEmpty
(
crossPhasePOS
))
{
List
<
CrossPhaseDirTurnPojo
>
results
=
new
ArrayList
<>();
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOS
)
{
CrossPhaseDirTurnPojo
crossPhaseDirTurnPojo
=
new
CrossPhaseDirTurnPojo
();
String
phaseNo
=
crossPhasePO
.
getPhaseNo
();
crossPhaseDirTurnPojo
.
setCrossId
(
crossId
);
crossPhaseDirTurnPojo
.
setPhaseNo
(
Integer
.
valueOf
(
phaseNo
));
Integer
planId
=
crossPhasePO
.
getPlanId
();
String
schemeNo
=
schemeIdNoMap
.
get
(
planId
);
if
(
StringUtils
.
isNotBlank
(
schemeNo
))
{
crossPhaseDirTurnPojo
.
setSchemeNo
(
Integer
.
valueOf
(
schemeNo
));
}
Integer
phaseId
=
crossPhasePO
.
getId
();
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
crossPhaseLightsMapper
.
selectByCrossId
(
crossId
);
List
<
Integer
>
phaseLightsList
=
crossPhaseLightsPOList
.
stream
()
.
filter
(
po
->
Objects
.
equals
(
po
.
getPhaseId
(),
phaseId
))
.
map
(
CrossPhaseLightsPO:
:
getLightsId
).
collect
(
Collectors
.
toList
());
List
<
CrossLightsPO
>
crossLightsPOS
=
crossLightsMapper
.
selectByCrossId
(
crossId
);
Map
<
Integer
,
List
<
CrossLightsPO
>>
phaseDirMap
=
crossLightsPOS
.
stream
().
filter
(
po
->
phaseLightsList
.
contains
(
po
.
getId
())).
collect
(
Collectors
.
groupingBy
(
CrossLightsPO:
:
getDir
));
Map
<
Integer
,
List
<
Integer
>>
dirTurnMap
=
new
HashMap
<>();
for
(
Map
.
Entry
<
Integer
,
List
<
CrossLightsPO
>>
entry
:
phaseDirMap
.
entrySet
())
{
Integer
dir
=
entry
.
getKey
();
List
<
Integer
>
turnList
=
entry
.
getValue
().
stream
().
map
(
CrossLightsPO:
:
getTurn
).
collect
(
Collectors
.
toList
());
dirTurnMap
.
put
(
dir
,
turnList
);
crossPhaseDirTurnPojo
.
setDirTurnMap
(
dirTurnMap
);
}
results
.
add
(
crossPhaseDirTurnPojo
);
}
crossInfoMap
.
put
(
crossId
,
results
);
}
}
}
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/common/enums/DataBrainTurnEnum.java
View file @
8afc75d0
...
@@ -14,9 +14,9 @@ import java.util.Objects;
...
@@ -14,9 +14,9 @@ import java.util.Objects;
@AllArgsConstructor
@AllArgsConstructor
@RequiredArgsConstructor
@RequiredArgsConstructor
public
enum
DataBrainTurnEnum
{
public
enum
DataBrainTurnEnum
{
LEFT
(
12
,
1
),
LEFT
(
12
,
1
),
// 左转
RIGHT
(
13
,
2
),
RIGHT
(
13
,
2
),
//右转
STRAIGHT
(
11
,
3
),
STRAIGHT
(
11
,
3
),
// 直行
TURN
(
31
,
4
),
TURN
(
31
,
4
),
OTHER
(
99
,
99
);
OTHER
(
99
,
99
);
private
Integer
hisenseTurn
;
private
Integer
hisenseTurn
;
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/pojo/CrossPhaseDirTurnPojo.java
0 → 100644
View file @
8afc75d0
package
net
.
wanji
.
utc
.
hisense
.
pojo
;
import
lombok.Data
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author duanruiming
* @date 2023/09/12 10:24
*/
@Data
public
class
CrossPhaseDirTurnPojo
{
private
String
crossId
;
private
Integer
phaseNo
;
private
Integer
schemeNo
;
private
Map
<
Integer
,
List
<
Integer
>>
dirTurnMap
;
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/SignalStatusServiceImpl.java
View file @
8afc75d0
...
@@ -118,7 +118,6 @@ public class SignalStatusServiceImpl implements SignalStatusService {
...
@@ -118,7 +118,6 @@ public class SignalStatusServiceImpl implements SignalStatusService {
if
(
StringUtils
.
endsWithIgnoreCase
(
lampStatus
,
"23"
))
{
if
(
StringUtils
.
endsWithIgnoreCase
(
lampStatus
,
"23"
))
{
lightsStatusVO
.
setPhaseId
(
"0"
);
lightsStatusVO
.
setPhaseId
(
"0"
);
lightsStatusVO
.
setCyclePhaseCountDown
(
countDown
);
lightsStatusVO
.
setCyclePhaseCountDown
(
countDown
);
break
;
}
}
turnMap
.
put
(
String
.
valueOf
(
DataBrainTurnEnum
.
getWjTurn
(
roadFlowDirection
)),
DataBrainLampStatusEnum
.
getWjLampStatus
(
lampStatus
));
turnMap
.
put
(
String
.
valueOf
(
DataBrainTurnEnum
.
getWjTurn
(
roadFlowDirection
)),
DataBrainLampStatusEnum
.
getWjLampStatus
(
lampStatus
));
}
}
...
...
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