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
edbff274
Commit
edbff274
authored
Nov 24, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] redis处理
parent
f8141189
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
456 additions
and
56 deletions
+456
-56
RedisConfig.java
...rvice/src/main/java/net/wanji/opt/common/RedisConfig.java
+107
-0
RedisUtils.java
...ervice/src/main/java/net/wanji/opt/common/RedisUtils.java
+320
-29
ConsumerHandler.java
...ce/src/main/java/net/wanji/opt/kafka/ConsumerHandler.java
+4
-4
StrategyGreenBeltController.java
...opt/synthesis/controller/StrategyGreenBeltController.java
+6
-17
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+0
-4
GreenBeltChartVO.java
...vice/src/main/java/net/wanji/opt/vo/GreenBeltChartVO.java
+18
-1
bootstrap-docker.yaml
...optimize-service/src/main/resources/bootstrap-docker.yaml
+1
-1
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/common/RedisConfig.java
0 → 100644
View file @
edbff274
package
net
.
wanji
.
opt
.
common
;
import
com.fasterxml.jackson.annotation.JsonAutoDetect
;
import
com.fasterxml.jackson.annotation.JsonTypeInfo
;
import
com.fasterxml.jackson.annotation.PropertyAccessor
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.autoconfigure.EnableAutoConfiguration
;
import
org.springframework.cache.CacheManager
;
import
org.springframework.cache.annotation.CachingConfigurerSupport
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.data.redis.cache.RedisCacheConfiguration
;
import
org.springframework.data.redis.cache.RedisCacheManager
;
import
org.springframework.data.redis.cache.RedisCacheWriter
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
redis.clients.jedis.JedisPool
;
import
redis.clients.jedis.JedisPoolConfig
;
@Configuration
@EnableAutoConfiguration
public
class
RedisConfig
extends
CachingConfigurerSupport
{
@Value
(
"${spring.redis.host}"
)
private
String
host
;
@Value
(
"${spring.redis.port}"
)
private
int
port
;
@Value
(
"${spring.redis.password}"
)
private
String
password
;
@Value
(
"${spring.redis.database}"
)
private
int
database
;
@Value
(
"${spring.redis.timeout}"
)
private
int
timeout
;
@Value
(
"${spring.redis.jedis.pool.max-idle}"
)
private
int
maxIdle
;
@Value
(
"${spring.redis.jedis.pool.max-active}"
)
private
int
maxTotal
;
@Value
(
"${spring.redis.jedis.pool.min-idle}"
)
private
int
minIdle
;
@Value
(
"${spring.redis.jedis.pool.max-wait}"
)
private
long
maxWaitMillis
;
/**
* 获取Jedis连接工厂
* <p>用于创建Jedis对象</p>
* @return JedisPool
*/
@Bean
public
JedisPool
redisPoolFactory
()
{
JedisPoolConfig
jedisPoolConfig
=
new
JedisPoolConfig
();
jedisPoolConfig
.
setMaxTotal
(
maxTotal
);
jedisPoolConfig
.
setMaxIdle
(
maxIdle
);
jedisPoolConfig
.
setMaxWaitMillis
(
maxWaitMillis
);
jedisPoolConfig
.
setMinIdle
(
minIdle
);
jedisPoolConfig
.
setTestOnBorrow
(
false
);
jedisPoolConfig
.
setTestOnReturn
(
false
);
return
new
JedisPool
(
jedisPoolConfig
,
host
,
port
,
timeout
,
password
,
database
);
}
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
connectionFactory
)
{
RedisTemplate
<
String
,
Object
>
template
=
new
RedisTemplate
<>();
template
.
setConnectionFactory
(
connectionFactory
);
// 使用 Jackson2JsonRedisSerializer 替代默认的 JDK 序列化器
Jackson2JsonRedisSerializer
<
Object
>
serializer
=
new
Jackson2JsonRedisSerializer
<>(
Object
.
class
);
ObjectMapper
objectMapper
=
new
ObjectMapper
();
objectMapper
.
setVisibility
(
PropertyAccessor
.
ALL
,
JsonAutoDetect
.
Visibility
.
ANY
);
objectMapper
.
activateDefaultTyping
(
LaissezFaireSubTypeValidator
.
instance
,
ObjectMapper
.
DefaultTyping
.
NON_FINAL
,
JsonTypeInfo
.
As
.
WRAPPER_ARRAY
);
serializer
.
setObjectMapper
(
objectMapper
);
template
.
setKeySerializer
(
new
StringRedisSerializer
());
// 设置 Key 的序列化器
template
.
setValueSerializer
(
serializer
);
// 设置 Value 的序列化器
template
.
setHashKeySerializer
(
new
StringRedisSerializer
());
template
.
setHashValueSerializer
(
serializer
);
template
.
afterPropertiesSet
();
return
template
;
}
/**
* 选择redis作为默认缓存工具
* @param redisConnectionFactory
* @return
*/
@Bean
public
CacheManager
cacheManager
(
RedisConnectionFactory
redisConnectionFactory
)
{
RedisCacheConfiguration
redisCacheConfiguration
=
RedisCacheConfiguration
.
defaultCacheConfig
();
return
RedisCacheManager
.
builder
(
RedisCacheWriter
.
nonLockingRedisCacheWriter
(
redisConnectionFactory
))
.
cacheDefaults
(
redisCacheConfiguration
).
build
();
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/common/RedisUtils.java
View file @
edbff274
...
@@ -2,13 +2,22 @@ package net.wanji.opt.common;
...
@@ -2,13 +2,22 @@ package net.wanji.opt.common;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.DateStyle
;
import
net.wanji.opt.dto.CrossEventDTO
;
import
net.wanji.opt.dto.CrossEventDTO
;
import
org.springframework.data.redis.connection.DataType
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.ZSetOperations
;
import
org.springframework.data.redis.core.ZSetOperations
;
import
org.springframework.data.redis.support.atomic.RedisAtomicLong
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.text.DecimalFormat
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.concurrent.TimeUnit
;
/**
/**
* @description: redis工具类
* @description: redis工具类
...
@@ -20,34 +29,11 @@ import java.util.Set;
...
@@ -20,34 +29,11 @@ import java.util.Set;
@Slf4j
@Slf4j
public
class
RedisUtils
{
public
class
RedisUtils
{
@Resource
private
RedisTemplate
<
String
,
Object
>
redis7Template
;
/**
/**
*
7号库获取最大 score zset 元素
*
注入redisTemplate
*/
*/
public
Object
getMaxScoreElement
(
String
redisKey
)
throws
Exception
{
@Resource
try
{
private
RedisTemplate
<
String
,
Object
>
redisTemplate
;
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ZSetOperations
<
String
,
Object
>
zSetOps
=
redis7Template
.
opsForZSet
();
Set
<
Object
>
result
=
zSetOps
.
reverseRange
(
redisKey
,
0
,
-
1
);
if
(
result
!=
null
&&
!
result
.
isEmpty
())
{
for
(
Object
o
:
result
)
{
CrossEventDTO
dto
=
objectMapper
.
readValue
(
o
.
toString
(),
CrossEventDTO
.
class
);
String
msgType
=
dto
.
getMsgType
();
if
(
msgType
.
startsWith
(
"50"
))
{
return
o
;
}
}
}
log
.
error
(
"redis获取数据key:{}, 获取value:{}"
,
redisKey
,
result
);
}
catch
(
Exception
e
)
{
//throw new RuntimeException(e);
}
return
null
;
}
/**
/**
* @description: 判断是否存在Key
* @description: 判断是否存在Key
...
@@ -55,7 +41,7 @@ public class RedisUtils {
...
@@ -55,7 +41,7 @@ public class RedisUtils {
* @return boolean true:有 false:无
* @return boolean true:有 false:无
*/
*/
public
boolean
hasKey
(
String
key
)
{
public
boolean
hasKey
(
String
key
)
{
return
redis
7
Template
.
hasKey
(
key
);
return
redisTemplate
.
hasKey
(
key
);
}
}
/**
/**
...
@@ -64,7 +50,38 @@ public class RedisUtils {
...
@@ -64,7 +50,38 @@ public class RedisUtils {
* @param value 添加redis的value
* @param value 添加redis的value
*/
*/
public
void
set
(
String
key
,
String
value
)
{
public
void
set
(
String
key
,
String
value
)
{
redis7Template
.
opsForValue
().
set
(
key
,
value
);
redisTemplate
.
opsForValue
().
set
(
key
,
value
);
}
/**
* @description: 添加对象
* @param key redis的Key
* @param object 添加redis的value
*/
public
void
set
(
String
key
,
Object
object
)
{
redisTemplate
.
opsForValue
().
set
(
key
,
object
);
}
/**
* @description: 添加带生命周期的对象
* @param key redis的Key
* @param object 添加redis的value
* @param seconds 失效时间
*/
public
void
setAndExpire
(
String
key
,
Object
object
,
int
seconds
)
{
redisTemplate
.
opsForValue
().
set
(
key
,
object
);
redisTemplate
.
expire
(
key
,
seconds
,
TimeUnit
.
SECONDS
);
}
/**
* @description: 添加带生命周期的对象
* @param key redis的Key
* @param value 添加redis的value
* @param seconds 失效时间
*/
public
void
setAndExpire
(
String
key
,
String
value
,
int
seconds
)
{
redisTemplate
.
opsForValue
().
set
(
key
,
value
);
redisTemplate
.
expire
(
key
,
seconds
,
TimeUnit
.
SECONDS
);
}
}
/**
/**
...
@@ -73,6 +90,280 @@ public class RedisUtils {
...
@@ -73,6 +90,280 @@ public class RedisUtils {
* @return Object 返回对象
* @return Object 返回对象
*/
*/
public
Object
get
(
String
key
)
{
public
Object
get
(
String
key
)
{
return
redis7Template
.
opsForValue
().
get
(
key
);
return
redisTemplate
.
opsForValue
().
get
(
key
);
}
/**
* @description: 存入redis的hash
* @param key redis的Key
* @param field 字段值
* @param value 存入的值
*/
public
void
setHash
(
String
key
,
String
field
,
String
value
)
{
redisTemplate
.
opsForHash
().
put
(
key
,
field
,
value
);
}
/**
* @description: 存入redis的hash
* @param key redis的Key
* @param field 字段值
* @param value 存入的值
*/
public
void
setHash
(
String
key
,
String
field
,
Object
value
)
{
redisTemplate
.
opsForHash
().
put
(
key
,
field
,
value
);
}
/**
* @description: 根据key和字段值获取内容值
* @param key redis的Key
* @param field 字段值
* @return String 返回字符串
*/
public
String
getHash
(
String
key
,
String
field
)
{
return
(
String
)
redisTemplate
.
opsForHash
().
get
(
key
,
field
);
}
/**
* @description: 根据field删除值
* @param key redis的Key
* @param field 字段值
*/
public
void
delHashMap
(
String
key
,
String
field
)
{
redisTemplate
.
boundHashOps
(
key
).
delete
(
field
);
}
/**
* @description: 存入hash集合
* @param key redis的Key
* @param hashmap 存入的Map集合
*/
public
void
setHashMap
(
String
key
,
Map
<
String
,
Object
>
hashmap
){
redisTemplate
.
opsForHash
().
putAll
(
key
,
hashmap
);
}
/**
* @description: 取出hash集合
* @param key redis的Key
* @return Map<Object, Object> 返回Map集合
*/
public
Map
<
Object
,
Object
>
getHashMap
(
String
key
)
{
return
redisTemplate
.
opsForHash
().
entries
(
key
);
}
/**
* @description: 存入redis的Set
* @param key redis的Key
* @param object 对象
*/
public
void
setSet
(
String
key
,
Object
object
){
redisTemplate
.
opsForSet
().
add
(
key
,
object
);
}
/**
* @description: 获取redis的Set
* @param key redis的Key
* @return Set<Object> Set集合
*/
public
Set
<
Object
>
getSet
(
String
key
){
return
redisTemplate
.
opsForSet
().
members
(
key
);
}
/**
* @discription: 查看值是否是set成员
* @param key set的key
* @param value set的成员
* @return 是否是set成员
*/
public
Boolean
isSetMember
(
String
key
,
Object
value
)
{
return
redisTemplate
.
opsForSet
().
isMember
(
key
,
value
);
}
/**
* @description:设置key的过期时间,endTime格式:yyyy-MM-dd hh:mm:ss
* @param key redis的Key
* @param endTime 结束时间
*/
public
void
setExpire
(
String
key
,
Date
endTime
)
{
long
seconds
=
endTime
.
getTime
()
-
System
.
currentTimeMillis
();
redisTemplate
.
expire
(
key
,
(
int
)
(
seconds
/
1000
),
TimeUnit
.
SECONDS
);
}
/**
* @description: 设置key的过期时间
* @param key redis的Key
* @param time 过期时间(秒)
*/
public
void
setExpire
(
String
key
,
int
time
)
{
redisTemplate
.
expire
(
key
,
time
,
TimeUnit
.
SECONDS
);
}
}
/**
* <p>Discription:获取key的过期时间
* @param key redis的Key
* @return 过期时间(秒)
*/
public
Long
getExpire
(
String
key
)
{
return
redisTemplate
.
getExpire
(
key
,
TimeUnit
.
SECONDS
);
}
/**
* @description: 在redis消息队列队尾插入数据
* @param key redis的Key
* @param object 添加的对象
*/
public
void
tailPush
(
String
key
,
Object
object
){
redisTemplate
.
opsForList
().
rightPush
(
key
,
object
);
}
/**
* @description: 在redis消息队列对头插入数据
* @param key redis的Key
* @param object 添加的对象
*/
public
void
headPush
(
String
key
,
Object
object
){
redisTemplate
.
opsForList
().
leftPush
(
key
,
object
);
}
/**
* @description: 在redis消息队列队尾删除数据
* @param key redis的Key
* @return Object 删除的对象
*/
public
Object
tailPop
(
String
key
){
return
redisTemplate
.
opsForList
().
rightPop
(
key
);
}
/**
* @description: 在redis消息队列队头删除数据
* @param key redis的Key
* @return Object 删除的对象
*/
public
Object
headPop
(
String
key
){
return
redisTemplate
.
opsForList
().
leftPop
(
key
);
}
/**
* @description: 删除redis的值
* @param key redis的Key
*/
public
void
del
(
String
key
)
{
if
(
hasKey
(
key
))
{
redisTemplate
.
delete
(
key
);
}
}
/**
* @description: 清理redis缓存
*/
public
void
flushDB
(){
redisTemplate
.
getConnectionFactory
().
getConnection
().
flushDb
();
}
/**
* @description: 根据类型生成版本号
* @param type 类型key区分
* @return 版本号
* @author wanji
* @date 2019/5/5 19:26
*/
/**
* 自增ID
* @param key 建
* @param liveTime 过期时间
* @return 自增结果
*/
public
Long
getIncr
(
String
key
,
long
liveTime
)
{
RedisAtomicLong
entityIdCounter
=
new
RedisAtomicLong
(
key
,
redisTemplate
.
getConnectionFactory
());
Long
increment
=
entityIdCounter
.
getAndIncrement
();
if
((
null
==
increment
||
increment
.
longValue
()
==
0
)
&&
liveTime
>
0
)
{
//初始设置过期时间
entityIdCounter
.
expire
(
liveTime
,
TimeUnit
.
MILLISECONDS
);
//单位毫秒
}
return
increment
;
}
/**
* 获取全部Redis的key
* @return
*/
public
Set
<
String
>
keys
()
{
return
redisTemplate
.
keys
(
"*"
);
}
/**
* 获取key的类型
* @return
*/
public
DataType
keyType
(
String
key
)
{
return
redisTemplate
.
type
(
key
);
}
/**
* 获取全局ID范围
*
* @param key 建
* @param increment ID范围
* @return
*/
public
Long
getGlobalIdRange
(
String
key
,
long
increment
)
{
ValueOperations
<
String
,
Object
>
ops
=
redisTemplate
.
opsForValue
();
Long
newIdRangeStart
=
ops
.
increment
(
key
,
increment
);
// The range of IDs that are now reserved are from newIdRangeStart - increment + 1 to newIdRangeStart.
return
newIdRangeStart
-
increment
+
1
;
}
/**
* 带过期时间存入 zset
* @param ttlInMillis 存活时间毫秒数
*/
public
void
addToSortedSetWithExpiry
(
String
key
,
String
value
,
long
ttlInMillis
)
{
long
score
=
new
Date
().
getTime
()
+
ttlInMillis
;
redisTemplate
.
opsForZSet
().
add
(
key
,
value
,
score
);
}
/**
* 获取某个 zset 所有元素
*
* @return
*/
public
Set
<
Object
>
getZsetAll
(
String
key
)
{
return
redisTemplate
.
opsForZSet
().
range
(
key
,
0
,
-
1
);
}
/**
* 按 score 范围获取 zset 元素
*
* @return
*/
public
Set
<
Object
>
getZsetRange
(
String
key
,
long
start
,
long
end
)
{
return
redisTemplate
.
opsForZSet
().
rangeByScore
(
key
,
start
,
end
);
}
/**
* 7号库获取最大 score zset 元素
*/
public
Object
getMaxScoreElement
(
String
redisKey
)
throws
Exception
{
try
{
ObjectMapper
objectMapper
=
new
ObjectMapper
();
ZSetOperations
<
String
,
Object
>
zSetOps
=
redisTemplate
.
opsForZSet
();
Set
<
Object
>
result
=
zSetOps
.
reverseRange
(
redisKey
,
0
,
-
1
);
if
(
result
!=
null
&&
!
result
.
isEmpty
())
{
for
(
Object
o
:
result
)
{
CrossEventDTO
dto
=
objectMapper
.
readValue
(
o
.
toString
(),
CrossEventDTO
.
class
);
String
msgType
=
dto
.
getMsgType
();
if
(
msgType
.
startsWith
(
"50"
))
{
return
o
;
}
}
}
log
.
error
(
"redis获取数据key:{}, 获取value:{}"
,
redisKey
,
result
);
}
catch
(
Exception
e
)
{
//throw new RuntimeException(e);
}
return
null
;
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/kafka/ConsumerHandler.java
View file @
edbff274
...
@@ -45,7 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -45,7 +45,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
private
final
HoloForeignDeviceMapper
holoForeignDeviceMapper
;
private
final
HoloForeignDeviceMapper
holoForeignDeviceMapper
;
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_lane_data"
})
//
@KafkaListener(topics = {"cross_real_time_lane_data"})
public
void
receiveCrossRealTimeLaneData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeLaneData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeLaneData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeLaneData
=
String
.
valueOf
(
record
.
value
());
...
@@ -81,7 +81,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -81,7 +81,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_data"
})
//
@KafkaListener(topics = {"cross_real_time_data"})
public
void
receiveCrossRealTimeData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeData
=
String
.
valueOf
(
record
.
value
());
...
@@ -130,7 +130,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -130,7 +130,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_dir_data"
})
//
@KafkaListener(topics = {"cross_real_time_dir_data"})
public
void
receiveCrossRealTimeDirData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeDirData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeDirData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeDirData
=
String
.
valueOf
(
record
.
value
());
...
@@ -155,7 +155,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
...
@@ -155,7 +155,7 @@ public class ConsumerHandler implements KafkaListenerErrorHandler {
}
}
@Transactional
@Transactional
@KafkaListener
(
topics
=
{
"cross_real_time_turn_data"
})
//
@KafkaListener(topics = {"cross_real_time_turn_data"})
public
void
receiveCrossRealTimeTurnData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
public
void
receiveCrossRealTimeTurnData
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
acknowledgment
)
throws
Exception
{
try
{
try
{
String
crossRealTimeTurnData
=
String
.
valueOf
(
record
.
value
());
String
crossRealTimeTurnData
=
String
.
valueOf
(
record
.
value
());
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/controller/StrategyGreenBeltController.java
View file @
edbff274
...
@@ -11,10 +11,7 @@ import net.wanji.opt.common.RedisUtils;
...
@@ -11,10 +11,7 @@ import net.wanji.opt.common.RedisUtils;
import
net.wanji.opt.service.GreenBeltInfoService
;
import
net.wanji.opt.service.GreenBeltInfoService
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltChartVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
net.wanji.opt.vo.GreenBeltInfoVO
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.ws.rs.core.MediaType
;
import
javax.ws.rs.core.MediaType
;
...
@@ -36,19 +33,12 @@ public class StrategyGreenBeltController {
...
@@ -36,19 +33,12 @@ public class StrategyGreenBeltController {
@ApiOperation
(
value
=
"绿波时序图数据查询"
,
notes
=
"绿波时序图数据查询"
,
response
=
JsonViewObject
.
class
,
@ApiOperation
(
value
=
"绿波时序图数据查询"
,
notes
=
"绿波时序图数据查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/greenBletData"
,
@GetMapping
(
value
=
"/greenBletData"
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
})
public
JsonViewObject
greenBletData
(
@RequestBody
String
greenId
)
throws
Exception
{
public
JsonViewObject
greenBletData
(
String
greenId
)
throws
Exception
{
// todo 测试
GreenBeltInfoVO
greenBeltInfoVO1
=
greenBeltInfoService
.
convertData
(
null
);
greenBeltInfoService
.
save
(
greenBeltInfoVO1
);
String
key
=
Constants
.
GREEN_ID_OPT_KEY
.
concat
(
greenId
);
String
key
=
Constants
.
GREEN_ID_OPT_KEY
.
concat
(
greenId
);
redisUtils
.
set
(
key
,
JacksonUtils
.
getInstance
().
writeValueAsString
(
greenBeltInfoVO1
));
Object
obj
=
redisUtils
.
get
(
key
);
Object
obj
=
redisUtils
.
get
(
key
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
GreenBeltInfoVO
greenBeltInfoVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
),
GreenBeltInfoVO
.
class
);
GreenBeltInfoVO
greenBeltInfoVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
),
GreenBeltInfoVO
.
class
);
...
@@ -57,16 +47,15 @@ public class StrategyGreenBeltController {
...
@@ -57,16 +47,15 @@ public class StrategyGreenBeltController {
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/greenBeltChart"
,
@GetMapping
(
value
=
"/greenBeltChart"
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
})
public
JsonViewObject
greenBeltChart
(
@RequestBody
String
greenId
)
throws
Exception
{
public
JsonViewObject
greenBeltChart
(
String
greenId
)
throws
Exception
{
String
key
=
Constants
.
GREEN_ID_OPT_CHART_KEY
.
concat
(
greenId
);
String
key
=
Constants
.
GREEN_ID_OPT_CHART_KEY
.
concat
(
greenId
);
Object
obj
=
redisUtils
.
get
(
key
);
Object
obj
=
redisUtils
.
get
(
key
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
GreenBeltChartVO
greenBeltChartVO
=
JacksonUtils
.
getInstance
().
readValue
(
String
.
valueOf
(
obj
)
,
GreenBeltChartVO
.
class
);
GreenBeltChartVO
greenBeltChartVO
=
JacksonUtils
.
getInstance
().
readValue
(
(
String
)
obj
,
GreenBeltChartVO
.
class
);
return
jsonViewObject
.
success
(
greenBeltChartVO
);
return
jsonViewObject
.
success
(
greenBeltChartVO
);
}
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
deleted
100644 → 0
View file @
f8141189
package
net
.
wanji
.
opt
.
task
;
public
class
inducesMonitorTask
{
}
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenBeltChartVO.java
View file @
edbff274
package
net
.
wanji
.
opt
.
vo
;
package
net
.
wanji
.
opt
.
vo
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonIgnoreProperties
;
import
com.fasterxml.jackson.annotation.JsonProperty
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -15,13 +19,26 @@ import java.util.Map;
...
@@ -15,13 +19,26 @@ import java.util.Map;
@Data
@Data
@ApiModel
(
value
=
"GreenBeltChartVO"
,
description
=
"绿波时序图返回实体"
)
@ApiModel
(
value
=
"GreenBeltChartVO"
,
description
=
"绿波时序图返回实体"
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@JsonIgnoreProperties
(
ignoreUnknown
=
true
)
@AllArgsConstructor
@NoArgsConstructor
public
class
GreenBeltChartVO
{
public
class
GreenBeltChartVO
{
private
static
final
long
serialVersionUID
=
1L
;
@ApiModelProperty
(
"绿波路口红灯范围"
)
@ApiModelProperty
(
"绿波路口红灯范围"
)
Map
<
String
,
List
<
Double
[]>>
crossRedTimesMap
;
@JsonProperty
(
"crossRedTimesMap"
)
Map
<
String
,
List
<
List
<
Double
>>>
crossRedTimesMap
;
@ApiModelProperty
(
"反向绿波路口红灯范围"
)
@JsonProperty
(
"backCrossRedTimesMap"
)
Map
<
String
,
List
<
List
<
Double
>>>
backCrossRedTimesMap
;
@ApiModelProperty
(
"绿波路口绿波开始时间"
)
@ApiModelProperty
(
"绿波路口绿波开始时间"
)
@JsonProperty
(
"greenStartMap"
)
Map
<
String
,
Double
>
greenStartMap
;
Map
<
String
,
Double
>
greenStartMap
;
@ApiModelProperty
(
"反向绿波路口绿波开始时间"
)
Map
<
String
,
Double
>
BackGreenStartMap
;
@JsonProperty
(
"distanceMap"
)
@ApiModelProperty
(
"绿波路口距离下一个路口距离"
)
@ApiModelProperty
(
"绿波路口距离下一个路口距离"
)
Map
<
String
,
Double
>
distanceMap
;
Map
<
String
,
Double
>
distanceMap
;
@ApiModelProperty
(
"绿波带宽"
)
@ApiModelProperty
(
"绿波带宽"
)
private
Double
greenWidthTime
;
private
Double
greenWidthTime
;
@ApiModelProperty
(
"反向绿波带宽"
)
private
Double
BackGreenWidthTime
;
}
}
signal-optimize-service/src/main/resources/bootstrap-docker.yaml
View file @
edbff274
...
@@ -2,7 +2,7 @@ spring:
...
@@ -2,7 +2,7 @@ spring:
cloud
:
cloud
:
nacos
:
nacos
:
config
:
config
:
server-addr
:
173.17.0.1
:8848
server-addr
:
37.12.182.29
:8848
file-extension
:
yaml
file-extension
:
yaml
group
:
signal
group
:
signal
namespace
:
signal
namespace
:
signal
...
...
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