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
2a4ab8e5
Commit
2a4ab8e5
authored
Mar 31, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reapply "海信方案环解析"
This reverts commit
757b153f
.
parent
757b153f
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
178 additions
and
2 deletions
+178
-2
RingPhaseInfoDTO.java
...rc/main/java/net/wanji/utc/dto/ring/RingPhaseInfoDTO.java
+33
-0
WanJiCommonStaticInfoServiceImpl.java
...ice/staticinfo/impl/WanJiCommonStaticInfoServiceImpl.java
+1
-1
HisenseSchemeRingTask.java
...c/main/java/net/wanji/utc/task/HisenseSchemeRingTask.java
+143
-0
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+1
-1
No files found.
signal-utc-service/src/main/java/net/wanji/utc/dto/ring/RingPhaseInfoDTO.java
0 → 100644
View file @
2a4ab8e5
package
net
.
wanji
.
utc
.
dto
.
ring
;
import
lombok.Data
;
/**
* @author duanruiming
* @date 2025/03/28 14:41
*/
@Data
public
class
RingPhaseInfoDTO
{
private
Integer
phaseId
;
private
Integer
phaseTime
;
private
Integer
redTime
;
private
Integer
yellowTime
;
private
Integer
greenTime
;
private
Integer
minGTime
;
private
Integer
maxGTime
;
private
Integer
direction
;
private
Integer
channel
;
private
Integer
concurrent
;
private
Integer
phaseStatus
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/impl/WanJiCommonStaticInfoServiceImpl.java
View file @
2a4ab8e5
...
...
@@ -245,7 +245,7 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
CrossSchemeRings
crossSchemeRings
=
mapper
.
convertValue
(
jsonViewObject
.
getContent
(),
CrossSchemeRings
.
class
);
// CrossSchemeRings
redisUtil
.
setHash
(
"utc_scheme_offset"
,
crossId
,
mapper
.
writeValueAsString
(
crossSchemeRings
));
}
catch
(
Exception
e
)
{
log
.
error
(
"方案换图请求存储redis失败:"
,
e
);
log
.
error
(
"方案换图请求存储redis失败:
{}
"
,
e
);
throw
new
RuntimeException
(
e
);
}
...
...
signal-utc-service/src/main/java/net/wanji/utc/task/HisenseSchemeRingTask.java
0 → 100644
View file @
2a4ab8e5
package
net
.
wanji
.
utc
.
task
;
import
com.alibaba.fastjson.JSONObject
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dto.CrossSchemeRingsDTO
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.CrossSchemeRings
;
import
net.wanji.feign.service.common.FeignCommon
;
import
net.wanji.utc.cache.CrossInfoCache
;
import
net.wanji.utc.cache.UtcFeignClientCache
;
import
net.wanji.utc.dto.ring.RingPhaseInfoDTO
;
import
net.wanji.utc.util.RedisUtil
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
* @author duanruiming
* @date 2025/03/26 10:00
* @description 每半小时同步海信信号机方案环图请求
*/
@Component
@Slf4j
public
class
HisenseSchemeRingTask
{
@Resource
private
RedisUtil
redisUtil
;
@Resource
private
CrossInfoCache
crossInfoCache
;
@Resource
private
UtcFeignClientCache
utcFeignClientCache
;
@Scheduled
(
fixedRate
=
1000
,
initialDelay
=
30
*
1000
)
public
void
getSchemeRing
()
throws
Exception
{
List
<
CrossInfoPO
>
crossInfoList
=
CrossInfoCache
.
crossInfoList
;
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
if
(!
CollectionUtils
.
isEmpty
(
crossInfoList
))
{
List
<
CrossInfoPO
>
collect
=
crossInfoList
.
stream
().
filter
(
po
->
Objects
.
equals
(
22
,
po
.
getManufacturerId
())).
collect
(
Collectors
.
toList
());
List
<
CrossInfoPO
>
testList
=
crossInfoList
.
stream
().
filter
(
po
->
Objects
.
equals
(
"13MOD0B5SI0"
,
po
.
getId
())).
collect
(
Collectors
.
toList
());
for
(
CrossInfoPO
crossInfoPO
:
testList
)
{
String
crossId
=
crossInfoPO
.
getId
();
String
manufacturerCode
=
crossInfoCache
.
getManufacturerCodeByCrossId
(
crossId
);
FeignCommon
utcFeignClientService
=
utcFeignClientCache
.
getUtcFeignClientService
(
manufacturerCode
);
CrossSchemeRingsDTO
crossSchemeRingsDTO
=
new
CrossSchemeRingsDTO
();
crossSchemeRingsDTO
.
setCrossId
(
crossId
);
JsonViewObject
jsonViewObject
=
null
;
try
{
jsonViewObject
=
utcFeignClientService
.
crossSchemeRings
(
crossSchemeRingsDTO
);
log
.
info
(
"方案环图请求,crossId:{}, result:{}"
,
crossId
,
jsonViewObject
);
if
(
Objects
.
nonNull
(
jsonViewObject
)
&&
Objects
.
equals
(
200
,
jsonViewObject
.
getCode
()))
{
Object
content
=
jsonViewObject
.
getContent
();
String
contentStr
=
mapper
.
writeValueAsString
(
content
);
CrossSchemeRings
crossSchemeRings
=
mapper
.
convertValue
(
jsonViewObject
.
getContent
(),
CrossSchemeRings
.
class
);
if
(
Objects
.
nonNull
(
crossSchemeRings
))
{
String
code
=
crossSchemeRings
.
getSpot
();
String
schemeNo
=
crossSchemeRings
.
getPattern
();
String
cycleLen
=
crossSchemeRings
.
getCycleLen
();
String
offset
=
crossSchemeRings
.
getOffset
();
String
ringCount
=
crossSchemeRings
.
getRingCount
();
JSONObject
cycleList
=
crossSchemeRings
.
getCycleList
();
// 中间容器 环号-相位号列表
Map
<
Integer
,
List
<
Integer
>>
ringPhaseMap
=
new
HashMap
<>();
for
(
Map
.
Entry
<
String
,
Object
>
jsonEntry
:
cycleList
.
entrySet
())
{
String
ringNoStr
=
jsonEntry
.
getKey
();
String
ringNo
=
""
;
String
value
=
(
String
)
jsonEntry
.
getValue
();
List
<
Integer
>
phaseList
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotBlank
(
ringNoStr
)
&&
StringUtils
.
isNotBlank
(
value
))
{
ringNo
=
ringNoStr
.
replaceAll
(
"Cycle"
,
""
);
String
tempStr
=
value
.
replaceAll
(
"_"
,
" "
);
String
[]
tempList
=
tempStr
.
split
(
" "
);
for
(
String
s
:
tempList
)
{
phaseList
.
add
(
Integer
.
valueOf
(
s
));
}
}
ringPhaseMap
.
put
(
Integer
.
valueOf
(
ringNo
),
phaseList
);
}
List
<
CrossSchemeRings
.
Phase
>
phaseList
=
crossSchemeRings
.
getPhaseList
();
if
(!
CollectionUtils
.
isEmpty
(
phaseList
))
{
List
<
Integer
>
greenTime
=
new
ArrayList
<>();
List
<
Integer
>
yellowTime
=
new
ArrayList
<>();
List
<
Integer
>
redTime
=
new
ArrayList
<>();
List
<
Integer
>
maxGTime
=
new
ArrayList
<>();
List
<
Integer
>
minGTime
=
new
ArrayList
<>();
List
<
Integer
>
direction
=
new
ArrayList
<>();
List
<
Integer
>
channelDim
=
new
ArrayList
<>();
List
<
Integer
>
concurrent
=
new
ArrayList
<>();
for
(
CrossSchemeRings
.
Phase
phase
:
phaseList
)
{
String
greenTimeStr
=
phase
.
getGreenTime
();
String
yellowTimeStr
=
phase
.
getYellowTime
();
String
redTimeStr
=
phase
.
getRedTime
();
String
maxGTimeStr
=
phase
.
getMaxGTime
();
String
minGTimeStr
=
phase
.
getMinGTime
();
String
directionStr
=
phase
.
getDirection
();
String
channelDimStr
=
phase
.
getChannelDim
();
String
concurrentStr
=
phase
.
getConcurrent
();
greenTime
=
getListInt
(
greenTimeStr
);
yellowTime
=
getListInt
(
yellowTimeStr
);
redTime
=
getListInt
(
redTimeStr
);
maxGTime
=
getListInt
(
maxGTimeStr
);
minGTime
=
getListInt
(
minGTimeStr
);
direction
=
getListInt
(
directionStr
);
channelDim
=
getListInt
(
channelDimStr
);
concurrent
=
getListInt
(
concurrentStr
);
}
List
<
RingPhaseInfoDTO
>
RingPhaseInfoDTOS
=
new
ArrayList
<
RingPhaseInfoDTO
>(
16
);
for
(
int
i
=
0
;
i
<
16
;
i
++)
{
RingPhaseInfoDTO
ringPhaseInfoDTO
=
new
RingPhaseInfoDTO
();
ringPhaseInfoDTO
.
setPhaseId
(
i
);
}
}
}
//redisUtil.setHash("utc_scheme_offset", crossId, mapper.writeValueAsString(crossSchemeRings));
}
else
{
log
.
error
(
"海信环图请求异常:{}"
,
jsonViewObject
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"远程调用海信环图请求失败:{}"
,
e
);
}
}
}
}
private
List
<
Integer
>
getListInt
(
String
str
)
{
List
<
Integer
>
list
=
new
ArrayList
<>();
if
(
StringUtils
.
isNotBlank
(
str
))
{
String
[]
s
=
str
.
split
(
" "
);
for
(
String
s1
:
s
)
{
list
.
add
(
Integer
.
valueOf
(
s1
));
}
}
return
list
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
2a4ab8e5
...
...
@@ -58,7 +58,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* @author Kent HAN
* @date 2022/11/21 9:01
*/
@Component
//
@Component
@Slf4j
@SuppressWarnings
(
"all"
)
public
class
SignalStatusTask
{
...
...
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