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
bf6e293e
Commit
bf6e293e
authored
Nov 21, 2022
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
运行信息接口-信号运行状态数据-订阅信号运行状态
parent
e8a16e03
Changes
45
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
2607 additions
and
28 deletions
+2607
-28
pom.xml
pom.xml
+7
-0
pom.xml
signal-utc-service/pom.xml
+5
-0
BaseCrossInfo.java
...n/java/net/wanji/utc/common/baseentity/BaseCrossInfo.java
+1
-1
Constants.java
...rc/main/java/net/wanji/utc/common/constant/Constants.java
+28
-0
RedisKeyConst.java
...ain/java/net/wanji/utc/common/constant/RedisKeyConst.java
+45
-0
DateStyle.java
...rc/main/java/net/wanji/utc/common/typeenum/DateStyle.java
+56
-0
RedisConfig.java
...rvice/src/main/java/net/wanji/utc/config/RedisConfig.java
+122
-0
StaticInfoController.java
...n/java/net/wanji/utc/controller/StaticInfoController.java
+1
-1
SignalLampStatus.java
.../src/main/java/net/wanji/utc/entity/SignalLampStatus.java
+51
-0
SignalRunring.java
...ice/src/main/java/net/wanji/utc/entity/SignalRunring.java
+66
-0
CrossInfoMapper.java
...e/src/main/java/net/wanji/utc/mapper/CrossInfoMapper.java
+6
-1
CrossLightsMapper.java
...src/main/java/net/wanji/utc/mapper/CrossLightsMapper.java
+6
-1
ManufacturerInfoMapper.java
...ain/java/net/wanji/utc/mapper/ManufacturerInfoMapper.java
+5
-0
SignalStatusLogMapper.java
...main/java/net/wanji/utc/mapper/SignalStatusLogMapper.java
+14
-0
SignalStatusLogPO.java
...ice/src/main/java/net/wanji/utc/po/SignalStatusLogPO.java
+32
-0
HkLightsStatusService.java
.../wanji/utc/service/runninginfo/HkLightsStatusService.java
+14
-0
HkRunningStatusService.java
...wanji/utc/service/runninginfo/HkRunningStatusService.java
+14
-0
SignalStatusService.java
...et/wanji/utc/service/runninginfo/SignalStatusService.java
+11
-0
HkLightsStatusServiceImpl.java
...c/service/runninginfo/impl/HkLightsStatusServiceImpl.java
+166
-0
HkRunningStatusServiceImpl.java
.../service/runninginfo/impl/HkRunningStatusServiceImpl.java
+88
-0
SignalStatusServiceImpl.java
...utc/service/runninginfo/impl/SignalStatusServiceImpl.java
+123
-0
HkCrossSchedulesService.java
...wanji/utc/service/staticinfo/HkCrossSchedulesService.java
+1
-1
HkPlanSectionService.java
...et/wanji/utc/service/staticinfo/HkPlanSectionService.java
+1
-1
HkSchemePhaseLightsService.java
...ji/utc/service/staticinfo/HkSchemePhaseLightsService.java
+1
-1
HkStaticInfoService.java
...net/wanji/utc/service/staticinfo/HkStaticInfoService.java
+1
-1
OthersStaticInfoService.java
...wanji/utc/service/staticinfo/OthersStaticInfoService.java
+1
-1
StaticInfoService.java
...a/net/wanji/utc/service/staticinfo/StaticInfoService.java
+1
-1
HkCrossSchedulesServiceImpl.java
.../service/staticinfo/impl/HkCrossSchedulesServiceImpl.java
+2
-3
HkPlanSectionServiceImpl.java
...utc/service/staticinfo/impl/HkPlanSectionServiceImpl.java
+2
-2
HkSchemePhaseLightsServiceImpl.java
...rvice/staticinfo/impl/HkSchemePhaseLightsServiceImpl.java
+6
-4
HkStaticInfoServiceImpl.java
.../utc/service/staticinfo/impl/HkStaticInfoServiceImpl.java
+2
-2
OthersStaticInfoServiceImpl.java
.../service/staticinfo/impl/OthersStaticInfoServiceImpl.java
+2
-2
StaticInfoServiceImpl.java
...ji/utc/service/staticinfo/impl/StaticInfoServiceImpl.java
+3
-3
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+30
-0
DateUtils.java
...c-service/src/main/java/net/wanji/utc/util/DateUtils.java
+1197
-0
FastJson2JsonRedisSerializer.java
...java/net/wanji/utc/util/FastJson2JsonRedisSerializer.java
+36
-0
RedisUtil.java
...c-service/src/main/java/net/wanji/utc/util/RedisUtil.java
+297
-0
CrossLanesVO.java
...-service/src/main/java/net/wanji/utc/vo/CrossLanesVO.java
+20
-0
LightsStatusVO.java
...ervice/src/main/java/net/wanji/utc/vo/LightsStatusVO.java
+74
-0
RunningStatusVO.java
...rvice/src/main/java/net/wanji/utc/vo/RunningStatusVO.java
+22
-0
application-dev.yml
signal-utc-service/src/main/resources/application-dev.yml
+1
-1
CrossInfoMapper.xml
...utc-service/src/main/resources/mapper/CrossInfoMapper.xml
+11
-0
CrossLightsMapper.xml
...c-service/src/main/resources/mapper/CrossLightsMapper.xml
+8
-1
ManufacturerInfoMapper.xml
...vice/src/main/resources/mapper/ManufacturerInfoMapper.xml
+5
-0
SignalStatusLogMapper.xml
...rvice/src/main/resources/mapper/SignalStatusLogMapper.xml
+22
-0
No files found.
pom.xml
View file @
bf6e293e
...
...
@@ -49,6 +49,7 @@
<collections.version>
3.2.2
</collections.version>
<beanutils.version>
1.9.4
</beanutils.version>
<httpclient.version>
4.5.13
</httpclient.version>
<jedis.version>
3.3.0
</jedis.version>
</properties>
<!-- 依赖声明 -->
...
...
@@ -141,6 +142,12 @@
<artifactId>
httpclient
</artifactId>
<version>
${httpclient.version}
</version>
</dependency>
<!-- jedis -->
<dependency>
<groupId>
redis.clients
</groupId>
<artifactId>
jedis
</artifactId>
<version>
${jedis.version}
</version>
</dependency>
</dependencies>
</dependencyManagement>
...
...
signal-utc-service/pom.xml
View file @
bf6e293e
...
...
@@ -129,6 +129,11 @@
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
</dependency>
<!-- jedis -->
<dependency>
<groupId>
redis.clients
</groupId>
<artifactId>
jedis
</artifactId>
</dependency>
</dependencies>
<build>
...
...
signal-utc-service/src/main/java/net/wanji/utc/common/baseentity/BaseCrossInfo.java
View file @
bf6e293e
...
...
@@ -12,7 +12,7 @@ import lombok.Data;
@ApiModel
(
value
=
"BaseCrossInfo"
,
description
=
"查询信号路口基础信息输出参数"
)
public
class
BaseCrossInfo
{
@ApiModelProperty
(
value
=
"信号机ID"
)
private
String
telesemeId
;
private
String
code
;
@ApiModelProperty
(
value
=
"厂商缩写"
)
private
String
manufacturerAbbr
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/common/constant/Constants.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
common
.
constant
;
import
net.wanji.utc.po.ApiInfoPO
;
import
net.wanji.utc.vo.CrossLanesVO
;
import
java.util.List
;
import
java.util.concurrent.ConcurrentHashMap
;
public
class
Constants
{
...
...
@@ -10,6 +12,11 @@ public class Constants {
*/
private
static
ConcurrentHashMap
<
String
,
ApiInfoPO
>
manufacturerUrlMap
=
new
ConcurrentHashMap
<>();
/**
* 海康信号机车道关系
*/
private
static
ConcurrentHashMap
<
String
,
List
<
CrossLanesVO
>>
telesemeLaneRealMap
=
new
ConcurrentHashMap
<>();
/**
* 系统缩写
*/
...
...
@@ -21,6 +28,23 @@ public class Constants {
**/
public
static
final
String
SEPARATOR_UNDER_LINE
=
"_"
;
/**
* 分隔符:逗号
**/
public
static
final
String
SEPARATOR_COMMA
=
","
;
/**
* 分隔符:减号
**/
public
static
final
String
SEPARATOR_MINUS
=
"-"
;
/**
* 分隔符:冒号
**/
public
static
final
String
SEPARATOR_COLON
=
":"
;
/**
* 海康返回成功码
*/
...
...
@@ -37,4 +61,8 @@ public class Constants {
public
static
void
putManufacturerUrlMap
(
String
key
,
ApiInfoPO
value
)
{
manufacturerUrlMap
.
put
(
key
,
value
);
}
public
static
ConcurrentHashMap
<
String
,
List
<
CrossLanesVO
>>
getTelesemeLaneRealMap
()
{
return
telesemeLaneRealMap
;
}
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/common/constant/RedisKeyConst.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
common
.
constant
;
public
interface
RedisKeyConst
{
/**
* Redis存储Key前缀
*/
String
KEY_PREFIX
=
"utcsystem_"
;
//token常量名称
String
TOKEN
=
"qs_token"
;
//redis时段方案版本号
String
SECTIM_VERSION
=
"sectim_version_"
;
//redis相位方案版本号
String
PHASE_VERSION
=
"phase_version_"
;
//token存储Redis有效时长
int
TOKEN_EXPIRE_TIME
=
7200
;
// 信号机状态
String
TELESEME_STATUS
=
"teleseme_status"
;
// 告警
String
ALARM
=
"alarm"
;
// 灯态
String
LIGHTS_STATUS
=
"lights_status"
;
//信号机灯组方向信息
String
CROSS_LIGHTS
=
"cross_lights"
;
//信号灯线圈车道
String
CROSS_COIL_LANE
=
"cross_coil_lane"
;
//信号机列表
String
SIGNAL_LIST
=
"signal_list"
;
//优化配置管理
String
SET_OPT_CONFIG
=
"set_opt_config"
;
//最小绿时长
String
MIN_GREEN_TIME
=
"min_green_time"
;
//最大绿时长
String
MAX_GREEN_TIME
=
"max_green_time"
;
//绿信比是否下发
String
IS_SEND
=
"is_send"
;
//绿信比优化时段
String
OPT_TIME
=
"opt_time"
;
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/DateStyle.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
common
.
typeenum
;
public
enum
DateStyle
{
YYYY_MM
(
"yyyy-MM"
,
false
),
YYYY_MM_DD
(
"yyyy-MM-dd"
,
false
),
YYYY_MM_DD_HH_MM
(
"yyyy-MM-dd HH:mm"
,
false
),
YYYY_MM_DD_HH_MM_SS
(
"yyyy-MM-dd HH:mm:ss"
,
false
),
YYYYMMDDHHMMSS
(
"yyyyMMddHHmmss"
,
false
),
YYYYMMDDHHMMSSSSS
(
"yyyyMMddHHmmssSSS"
,
false
),
YYYYMMDD
(
"yyyyMMdd"
,
false
),
YYYY_MM_EN
(
"yyyy/MM"
,
false
),
YYYY_MM_DD_EN
(
"yyyy/MM/dd"
,
false
),
YYYY_MM_DD_HH_MM_EN
(
"yyyy/MM/dd HH:mm"
,
false
),
YYYY_MM_DD_HH_MM_SS_EN
(
"yyyy/MM/dd HH:mm:ss"
,
false
),
DD_MM_YYYY_EN
(
"dd/MM/yyyy"
,
false
),
YYYY_MM_CN
(
"yyyy年MM月"
,
false
),
YYYY_MM_DD_CN
(
"yyyy年MM月dd日"
,
false
),
YYYY_MM_DD_HH_MM_CN
(
"yyyy年MM月dd日 HH:mm"
,
false
),
YYYY_MM_DD_HH_MM_SS_CN
(
"yyyy年MM月dd日 HH:mm:ss"
,
false
),
HH_MM
(
"HH:mm"
,
true
),
HH_MM_SS
(
"HH:mm:ss"
,
true
),
MM_DD
(
"MM-dd"
,
true
),
MM_DD_HH_MM
(
"MM-dd HH:mm"
,
true
),
MM_DD_HH_MM_SS
(
"MM-dd HH:mm:ss"
,
true
),
MM_DD_EN
(
"MM/dd"
,
true
),
MM_DD_HH_MM_EN
(
"MM/dd HH:mm"
,
true
),
MM_DD_HH_MM_SS_EN
(
"MM/dd HH:mm:ss"
,
true
),
MM_DD_CN
(
"MM月dd日"
,
true
),
MM_DD_HH_MM_CN
(
"MM月dd日 HH:mm"
,
true
),
MM_DD_HH_MM_SS_CN
(
"MM月dd日 HH:mm:ss"
,
true
);
private
String
value
;
private
boolean
isShowOnly
;
DateStyle
(
String
value
,
boolean
isShowOnly
)
{
this
.
value
=
value
;
this
.
isShowOnly
=
isShowOnly
;
}
public
String
getValue
()
{
return
value
;
}
public
boolean
isShowOnly
()
{
return
isShowOnly
;
}
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/config/RedisConfig.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
config
;
import
net.wanji.utc.util.FastJson2JsonRedisSerializer
;
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.GenericJackson2JsonRedisSerializer
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
import
redis.clients.jedis.Jedis
;
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
);
}
/**
* retemplate相关配置
* @param factory
* @return
*/
@Bean
public
RedisTemplate
<
String
,
Object
>
redisTemplate
(
RedisConnectionFactory
factory
)
{
RedisTemplate
<
String
,
Object
>
template
=
new
RedisTemplate
<>();
// 配置连接工厂
template
.
setConnectionFactory
(
factory
);
//不开启事务
template
.
setEnableTransactionSupport
(
false
);
// 值采用json序列化value
template
.
setValueSerializer
(
fastJson2JsonRedisSerializer
());
//使用StringRedisSerializer来序列化和反序列化redis的key值
template
.
setKeySerializer
(
new
StringRedisSerializer
());
// 设置hash key 和value序列化模式
template
.
setHashKeySerializer
(
new
StringRedisSerializer
());
template
.
setHashValueSerializer
(
new
GenericJackson2JsonRedisSerializer
());
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
();
}
/**
* @description: 自定义Redis序列化类
* @date 2019/4/29 20:23
*/
@Bean
public
RedisSerializer
fastJson2JsonRedisSerializer
()
{
return
new
FastJson2JsonRedisSerializer
(
Object
.
class
);
}
@Bean
public
Jedis
jedis
()
{
Jedis
jedis
=
new
Jedis
(
"10.100.1.74"
,
6379
);
jedis
.
auth
(
"Wanji300552"
);
return
jedis
;
}
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/controller/StaticInfoController.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
controller
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.service.StaticInfoService
;
import
net.wanji.utc.service.
staticinfo.
StaticInfoService
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.vo.CrossInfoInVO
;
import
net.wanji.utc.common.genericentity.OutVO
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/entity/SignalLampStatus.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
entity
;
import
lombok.Data
;
import
java.util.HashMap
;
@Data
public
class
SignalLampStatus
{
//信号机编号
private
String
signalId
;
//运行模式
private
Integer
runmodel
;
//方案号
private
String
planId
;
//周期
private
Integer
cycleLen
;
//当前步
private
Integer
stepNo
;
//周期剩余时长
private
Integer
cycleCountDown
;
//相位号
private
String
phaseId
;
//当前步已走时间
private
Integer
stepGoneTime
;
//方向灯组状态
private
HashMap
<
String
,
HashMap
<
String
,
String
>>
dirLampGroupMap
;
//存放当前方案每个相位的时长
HashMap
<
String
,
Integer
>
phaseMap
;
//记录灯态变更时间
Long
updateTime
=
Long
.
valueOf
(
0
);
/**
* 信号机厂商编号
*/
private
String
signalType
;
/**
* 当前步长
*/
private
Integer
stepLen
;
/**
* 当前步剩余时长
*/
private
Integer
stepSurplusTime
;
/**
* 相位内步号
*/
private
Integer
stepNum
;
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/entity/SignalRunring.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
entity
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
@Data
@ApiModel
(
value
=
"SignalRunring"
,
description
=
"信号机运行环数实体"
)
public
class
SignalRunring
{
//绿灯1
@ApiModelProperty
(
value
=
"绿灯1时长"
)
private
Integer
oneTime
;
//绿灯2
@ApiModelProperty
(
value
=
"绿灯2时长"
)
private
Integer
twoTime
;
//绿灯3
@ApiModelProperty
(
value
=
"绿灯3时长"
)
private
Integer
threeTime
;
//黄灯4
@ApiModelProperty
(
value
=
"黄灯4时长"
)
private
Integer
fourTime
;
//红灯5
@ApiModelProperty
(
value
=
"红灯5时长"
)
private
Integer
fiveTime
;
//环号
@ApiModelProperty
(
value
=
"环号"
)
private
String
runringNo
;
//当前相位编号
@ApiModelProperty
(
value
=
"当前相位编号"
)
private
String
phaseId
;
//相位时长
@ApiModelProperty
(
value
=
"相位时长"
)
private
Integer
phaseLen
;
//相位剩余时长
@ApiModelProperty
(
value
=
"相位剩余时长"
)
private
Integer
phaseLeft
;
//当前步号
@ApiModelProperty
(
value
=
"当前步号"
)
private
Integer
stepNo
;
//当前步类型
@ApiModelProperty
(
value
=
"当前步类型"
)
private
Integer
stepType
;
//当前步长
@ApiModelProperty
(
value
=
"当前步长"
)
private
Integer
stepLen
;
//当前步剩余时间
@ApiModelProperty
(
value
=
"当前步剩余时间"
)
private
Integer
stepLeft
;
//下一相位id
@ApiModelProperty
(
value
=
"下一相位id"
)
private
String
nextPhaseId
;
//相位顺序号
@ApiModelProperty
(
value
=
"相位顺序号"
)
private
Integer
phaseOrderId
;
//当前灯色
@ApiModelProperty
(
value
=
"当前灯色"
)
private
Integer
lampStatus
;
//当前说明
// 11 灭灯
// 21 红灯
// 22 黄灯
// 23 绿灯
// 31 红黄
@ApiModelProperty
(
value
=
"当前灯色"
)
private
String
lampStatusName
;
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossInfoMapper.java
View file @
bf6e293e
...
...
@@ -3,6 +3,7 @@ package net.wanji.utc.mapper;
import
net.wanji.utc.po.CrossInfoPO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Arrays
;
import
java.util.List
;
/**
...
...
@@ -16,5 +17,9 @@ public interface CrossInfoMapper {
List
<
String
>
selectCrossCodesByIds
(
@Param
(
"entities"
)
List
<
String
>
crossIdList
);
String
selectIdByCode
(
@Param
(
"crossCode"
)
String
crossCode
);
String
selectIdByCode
(
@Param
(
"crossCode"
)
String
crossCode
);
List
<
CrossInfoPO
>
selectByManufacturerId
(
@Param
(
"manufacturerId"
)
Integer
manufacturerId
);
List
<
CrossInfoPO
>
selectAll
();
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossLightsMapper.java
View file @
bf6e293e
...
...
@@ -3,12 +3,17 @@ package net.wanji.utc.mapper;
import
net.wanji.utc.po.CrossLightsPO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/18 14:10
*/
public
interface
CrossLightsMapper
{
void
deleteOne
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"lightsNo"
)
String
lightsNo
);
void
deleteOne
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"elementId"
)
String
elementId
);
void
insertOne
(
CrossLightsPO
crossLightsPO
);
List
<
CrossLightsPO
>
selectByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/ManufacturerInfoMapper.java
View file @
bf6e293e
...
...
@@ -3,6 +3,9 @@ package net.wanji.utc.mapper;
import
net.wanji.utc.po.ManufacturerInfoPO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.Arrays
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/15 16:48
...
...
@@ -12,4 +15,6 @@ public interface ManufacturerInfoMapper {
ManufacturerInfoPO
selectByAbbr
(
@Param
(
"abbr"
)
String
abbr
);
ManufacturerInfoPO
selectById
(
@Param
(
"manufacturerId"
)
Integer
manufacturerId
);
List
<
ManufacturerInfoPO
>
selectAll
();
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/SignalStatusLogMapper.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
mapper
;
import
net.wanji.utc.po.SignalStatusLogPO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/21 11:48
*/
public
interface
SignalStatusLogMapper
{
void
insertBatch
(
@Param
(
"entities"
)
List
<
SignalStatusLogPO
>
signalStatusLogPOList
);
}
signal-utc-service/src/main/java/net/wanji/utc/po/SignalStatusLogPO.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
po
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author Kent HAN
* @date 2022/11/21 11:18
*/
@Data
public
class
SignalStatusLogPO
{
/** 日志ID */
@ApiModelProperty
(
name
=
"日志ID"
,
notes
=
""
)
private
Integer
id
;
/** 信号机ID */
@ApiModelProperty
(
name
=
"信号机ID"
,
notes
=
""
)
private
String
signalId
;
/** 信号状态:0离线;1在线 */
@ApiModelProperty
(
name
=
"信号状态:0离线;1在线"
,
notes
=
""
)
private
Integer
status
;
/** 故障类型:0正常;1检测器故障;2时钟故障;3电源故障;4驱动模块故障;5信号灯故障;6箱门开启;7方案错误;8绿冲突;9红全熄;10行人红熄; */
@ApiModelProperty
(
name
=
"故障类型:0正常;1检测器故障;2时钟故障;3电源故障;4驱动模块故障;5信号灯故障;6箱门开启;7方案错误;8绿冲突;9红全熄;10行人红熄;"
,
notes
=
""
)
private
Integer
faultType
;
/** 控制类型:1时间表;2全红;3黄闪;4锁定;5中心优化;6MEC优化;7现场手动 */
@ApiModelProperty
(
name
=
"控制类型:1时间表;2全红;3黄闪;4锁定;5中心优化;6MEC优化;7现场手动"
,
notes
=
""
)
private
Integer
controlType
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/HkLightsStatusService.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.vo.LightsStatusVO
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/21 14:07
*/
public
interface
HkLightsStatusService
{
List
<
LightsStatusVO
>
getHkLightsStatus
(
List
<
BaseCrossInfo
>
baseCrossInfoList
);
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/HkRunningStatusService.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.po.SignalStatusLogPO
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/21 10:04
*/
public
interface
HkRunningStatusService
{
List
<
SignalStatusLogPO
>
getHkRunningStatus
(
List
<
BaseCrossInfo
>
baseCrossInfoList
);
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/SignalStatusService.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
;
/**
* @author Kent HAN
* @date 2022/11/21 9:09
*/
public
interface
SignalStatusService
{
void
runningStatusAlarm
();
void
lightStatus
();
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/impl/HkLightsStatusServiceImpl.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.commonentity.HttpRequest
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.mapper.CrossInfoMapper
;
import
net.wanji.utc.mapper.CrossLightsMapper
;
import
net.wanji.utc.po.CrossLightsPO
;
import
net.wanji.utc.service.runninginfo.HkLightsStatusService
;
import
net.wanji.utc.vo.LightsStatusVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Kent HAN
* @date 2022/11/21 14:07
*/
@Service
@Slf4j
public
class
HkLightsStatusServiceImpl
implements
HkLightsStatusService
{
@Value
(
"${signal.manufacturer.hk.artemisPath}"
)
private
String
artemisPath
;
@Autowired
private
ArtemisConfig
artemisConfig
;
@Autowired
private
CrossLightsMapper
crossLightsMapper
;
@Autowired
CrossInfoMapper
crossInfoMapper
;
@Override
public
List
<
LightsStatusVO
>
getHkLightsStatus
(
List
<
BaseCrossInfo
>
baseCrossInfoList
)
{
List
<
LightsStatusVO
>
result
=
new
ArrayList
<>();
LightsStatusVO
infoVo
;
try
{
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getRealtimeSchemeStateInfo"
);
for
(
BaseCrossInfo
entity
:
baseCrossInfoList
)
{
JSONObject
jsonBody
=
new
JSONObject
();
jsonBody
.
put
(
"pageNo"
,
1
);
jsonBody
.
put
(
"pageSize"
,
9999
);
JSONObject
searchObj
=
new
JSONObject
();
JSONArray
crossCodes
=
new
JSONArray
();
crossCodes
.
add
(
entity
.
getCode
());
searchObj
.
put
(
"crossCodes"
,
crossCodes
);
jsonBody
.
put
(
"searchObj"
,
searchObj
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
jsonBody
.
toJSONString
(),
null
,
null
,
"application/json"
,
null
);
JSONObject
object
=
JSON
.
parseObject
(
strResult
);
String
crossId
=
crossInfoMapper
.
selectIdByCode
(
entity
.
getCode
());
List
<
CrossLightsPO
>
crossLightsPOList
=
crossLightsMapper
.
selectByCrossId
(
crossId
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
JSONArray
list
=
data
.
getJSONArray
(
"list"
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
infoVo
=
new
LightsStatusVO
();
JSONObject
jsonObject
=
list
.
getJSONObject
(
i
);
String
patternNo
=
jsonObject
.
getString
(
"patternNo"
);
// 方案编号
JSONArray
rings
=
jsonObject
.
getJSONArray
(
"rings"
);
// 环列表
JSONArray
channelState
=
jsonObject
.
getJSONArray
(
"channelState"
);
// 灯组列表
infoVo
.
setRunMode
(
jsonObject
.
getString
(
"controlType"
));
// 控制模式
infoVo
.
setPhasePlanId
(
patternNo
);
// 相位方案号
int
cycleLen
=
jsonObject
.
getIntValue
(
"cycle"
);
// 周期时长
int
curRunTime
=
jsonObject
.
getIntValue
(
"curRunTime"
);
// 当前运行时长
int
cycleCountDown
=
cycleLen
-
curRunTime
;
// 周期剩余时长
infoVo
.
setCode
(
entity
.
getCode
());
infoVo
.
setManufacturerAbbr
(
entity
.
getManufacturerAbbr
());
infoVo
.
setCycleCountDown
(
cycleCountDown
);
infoVo
.
setCycleLen
(
cycleLen
);
// 循环相位列表
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
for
(
int
j
=
0
;
j
<
rings
.
size
();
j
++)
{
JSONObject
jsonObj
=
rings
.
getJSONObject
(
j
);
JSONArray
phaseList
=
jsonObj
.
getJSONArray
(
"phaseList"
);
for
(
int
k
=
0
;
k
<
phaseList
.
size
();
k
++)
{
JSONObject
phase
=
phaseList
.
getJSONObject
(
k
);
String
phaseNo
=
phase
.
getString
(
"phaseNo"
);
Integer
vehicleStatus
=
phase
.
getInteger
(
"vehicleStatus"
);
Integer
phaseLength
=
phase
.
getInteger
(
"phaseLength"
);
Integer
red
=
phase
.
getInteger
(
"red"
);
Integer
yellow
=
phase
.
getInteger
(
"yellow"
);
Integer
green
=
phaseLength
-
yellow
-
red
;
phaseMap
.
put
(
phaseNo
,
green
);
if
(
2
!=
vehicleStatus
){
// 2红灯
infoVo
.
setPhaseId
(
phaseNo
);
}
}
}
infoVo
.
setPhaseMap
(
phaseMap
);
Map
<
String
,
Object
>
dirLampGroupMap
=
new
HashMap
<>();
// 循环构建灯组对象(从灯组表获取灯组信息)
for
(
int
k
=
0
;
k
<
channelState
.
size
();
k
++)
{
JSONObject
channelObj
=
channelState
.
getJSONObject
(
k
);
int
channelNo
=
channelObj
.
getIntValue
(
"channelNo"
);
String
color
=
transferHKLampGroup
(
channelObj
.
getIntValue
(
"state"
));
for
(
CrossLightsPO
po
:
crossLightsPOList
){
if
(
Integer
.
parseInt
(
po
.
getLightsNo
())
==
channelNo
)
{
String
direction
=
po
.
getDir
().
toString
();
String
turn
=
po
.
getTurn
().
toString
();
if
(
dirLampGroupMap
.
get
(
direction
)
!=
null
){
Map
<
String
,
String
>
mstr
=
(
Map
<
String
,
String
>)
dirLampGroupMap
.
get
(
direction
);
mstr
.
put
(
turn
,
color
);
dirLampGroupMap
.
put
(
direction
,
mstr
);
}
else
{
Map
<
String
,
String
>
lamp
=
new
HashMap
<>();
lamp
.
put
(
turn
,
color
);
dirLampGroupMap
.
put
(
direction
,
lamp
);
}
}
}
}
infoVo
.
setDirLampGroupMap
(
dirLampGroupMap
);
result
.
add
(
infoVo
);
}
}
}
}
catch
(
Exception
e
){
log
.
error
(
"系统繁忙,服务器端内部错误!"
,
e
);
}
return
result
;
}
/**
* 灯组颜色转换
* @param state
* @return
*/
private
String
transferHKLampGroup
(
int
state
){
String
color
=
""
;
switch
(
state
)
{
case
1
:
color
=
"green"
;
break
;
case
2
:
color
=
"red"
;
break
;
case
3
:
color
=
"yellow"
;
break
;
case
4
:
color
=
"greenFlash"
;
break
;
case
5
:
color
=
"yellowFlash"
;
break
;
case
6
:
color
=
"red"
;
break
;
case
7
:
color
=
"lightsOut"
;
break
;
case
8
:
color
=
"redFlash"
;
break
;
case
9
:
color
=
"redYellow"
;
break
;
default
:
color
=
""
;
break
;
}
return
color
;
}
private
Map
<
String
,
String
>
getPathMapByApiCode
(
String
apiCode
)
{
Map
<
String
,
String
>
res
=
new
HashMap
<>();
HttpRequest
httpRequest
=
new
HttpRequest
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getAbbr
(),
apiCode
);
res
.
put
(
"http://"
,
artemisPath
+
httpRequest
.
getUrl
());
return
res
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/impl/HkRunningStatusServiceImpl.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.commonentity.HttpRequest
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.po.SignalStatusLogPO
;
import
net.wanji.utc.service.runninginfo.HkRunningStatusService
;
import
net.wanji.utc.vo.RunningStatusVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Kent HAN
* @date 2022/11/21 10:05
*/
@Slf4j
@Service
public
class
HkRunningStatusServiceImpl
implements
HkRunningStatusService
{
@Value
(
"${signal.manufacturer.hk.artemisPath}"
)
private
String
artemisPath
;
@Autowired
private
ArtemisConfig
artemisConfig
;
@Override
public
List
<
SignalStatusLogPO
>
getHkRunningStatus
(
List
<
BaseCrossInfo
>
baseCrossInfoList
)
{
List
<
SignalStatusLogPO
>
result
=
new
ArrayList
<>();
SignalStatusLogPO
po
;
try
{
Map
<
String
,
String
>
runningPath
=
getPathMapByApiCode
(
"getWorkingStateBatch"
);
for
(
BaseCrossInfo
baseCrossInfo
:
baseCrossInfoList
)
{
JSONArray
jsonBody
=
new
JSONArray
();
jsonBody
.
add
(
baseCrossInfo
.
getCode
());
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
runningPath
,
jsonBody
.
toJSONString
(),
null
,
null
,
"application/json"
,
null
);
JSONObject
object
=
JSON
.
parseObject
(
strResult
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data
=
object
.
getJSONArray
(
"data"
);
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
JSONObject
obj
=
data
.
getJSONObject
(
i
);
po
=
new
SignalStatusLogPO
();
po
.
setSignalId
(
baseCrossInfo
.
getCode
());
po
.
setStatus
(
transferStatus
(
obj
.
getInteger
(
"state"
)));
// 告警信息
Integer
hasFault
=
obj
.
getInteger
(
"hasFault"
);
if
(
hasFault
==
0
)
{
po
.
setFaultType
(
hasFault
);
}
// todo 从Redis中查询控制类型
result
.
add
(
po
);
}
}
}
}
catch
(
Exception
e
){
log
.
error
(
"系统繁忙,服务器端内部错误!"
,
e
);
}
return
result
;
}
private
Map
<
String
,
String
>
getPathMapByApiCode
(
String
apiCode
)
{
Map
<
String
,
String
>
res
=
new
HashMap
<>();
HttpRequest
httpRequest
=
new
HttpRequest
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getAbbr
(),
apiCode
);
res
.
put
(
"http://"
,
artemisPath
+
httpRequest
.
getUrl
());
return
res
;
}
/**
* 转换海康信号机运行状态,0 离线 1 在线
* @param state 海康信号机状态定义 0 在线 1 离线
* @return
*/
private
int
transferStatus
(
int
state
)
{
return
0
==
state
?
1
:
0
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/impl/SignalStatusServiceImpl.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
runninginfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.constant.RedisKeyConst
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.mapper.CrossInfoMapper
;
import
net.wanji.utc.mapper.ManufacturerInfoMapper
;
import
net.wanji.utc.mapper.SignalStatusLogMapper
;
import
net.wanji.utc.po.CrossInfoPO
;
import
net.wanji.utc.po.ManufacturerInfoPO
;
import
net.wanji.utc.po.SignalStatusLogPO
;
import
net.wanji.utc.service.runninginfo.HkLightsStatusService
;
import
net.wanji.utc.service.runninginfo.HkRunningStatusService
;
import
net.wanji.utc.service.runninginfo.SignalStatusService
;
import
net.wanji.utc.util.ListUtil
;
import
net.wanji.utc.util.RedisUtil
;
import
net.wanji.utc.vo.LightsStatusVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
/**
* @date 2022/11/21 9:11
*/
@Service
public
class
SignalStatusServiceImpl
implements
SignalStatusService
{
@Autowired
ManufacturerInfoMapper
manufacturerInfoMapper
;
@Autowired
CrossInfoMapper
crossInfoMapper
;
@Autowired
HkRunningStatusService
hkRunningStatusService
;
@Autowired
HkLightsStatusService
hkLightsStatusService
;
@Autowired
RedisUtil
redisUtil
;
@Autowired
SignalStatusLogMapper
signalStatusLogMapper
;
@Override
public
void
runningStatusAlarm
()
{
BasicEnum
.
ManufacturerEnum
[]
manufacturerEnums
=
BasicEnum
.
ManufacturerEnum
.
values
();
for
(
BasicEnum
.
ManufacturerEnum
manufacturerEnum
:
manufacturerEnums
)
{
List
<
BaseCrossInfo
>
baseCrossInfoList
=
getBaseCrossInfoList
(
manufacturerEnum
);
if
(
baseCrossInfoList
==
null
)
continue
;
List
<
SignalStatusLogPO
>
signalStatusLogPOList
=
null
;
if
(
manufacturerEnum
.
getAbbr
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getAbbr
()))
{
// 海康
// 3.2.5信号机运行状态和告警信息
signalStatusLogPOList
=
hkRunningStatusService
.
getHkRunningStatus
(
baseCrossInfoList
);
}
else
{
// todo 其他厂商
// ParamEntity<List<BaseSignal>> param = new ParamEntity<>();
// param.setDatacontent(baseSignals);
// param.setSourcetype(vendorTypeEnum.getNick());
// param.setSystemtype(Const.SYSTEM_TYPE);
// param.setUpdatetime(new Date());
// statusVos = signalRunService.queryRunState(param).getDatacontent();
}
// 更新Redis
if
(
null
!=
signalStatusLogPOList
)
{
for
(
SignalStatusLogPO
signalStatusLogPO
:
signalStatusLogPOList
)
{
String
field
=
manufacturerEnum
.
getAbbr
()
+
Constants
.
SEPARATOR_UNDER_LINE
+
signalStatusLogPO
.
getSignalId
();
redisUtil
.
setHash
(
RedisKeyConst
.
KEY_PREFIX
+
RedisKeyConst
.
TELESEME_STATUS
,
field
,
signalStatusLogPO
.
getStatus
()+
""
);
}
// 更新日志数据库
if
(
ListUtil
.
isNotEmpty
(
signalStatusLogPOList
))
{
signalStatusLogMapper
.
insertBatch
(
signalStatusLogPOList
);
}
}
}
}
@Override
public
void
lightStatus
()
{
BasicEnum
.
ManufacturerEnum
[]
manufacturerEnums
=
BasicEnum
.
ManufacturerEnum
.
values
();
for
(
BasicEnum
.
ManufacturerEnum
manufacturerEnum
:
manufacturerEnums
)
{
List
<
BaseCrossInfo
>
baseCrossInfoList
=
getBaseCrossInfoList
(
manufacturerEnum
);
if
(
baseCrossInfoList
==
null
)
continue
;
List
<
LightsStatusVO
>
lightsStatusVOList
=
null
;
if
(
manufacturerEnum
.
getAbbr
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getAbbr
()))
{
// 海康
// 3.2.4灯态
lightsStatusVOList
=
hkLightsStatusService
.
getHkLightsStatus
(
baseCrossInfoList
);
}
else
{
// todo 其他厂商
}
// 更新Redis
if
(
lightsStatusVOList
!=
null
)
{
for
(
LightsStatusVO
lightsStatusVO
:
lightsStatusVOList
)
{
String
field
=
manufacturerEnum
.
getAbbr
()
+
Constants
.
SEPARATOR_UNDER_LINE
+
lightsStatusVO
.
getCode
();
redisUtil
.
setHash
(
RedisKeyConst
.
KEY_PREFIX
+
RedisKeyConst
.
LIGHTS_STATUS
,
field
,
JSON
.
toJSONString
(
lightsStatusVO
));
}
}
}
}
private
List
<
BaseCrossInfo
>
getBaseCrossInfoList
(
BasicEnum
.
ManufacturerEnum
manufacturerEnum
)
{
// 查询路口信息
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectByAbbr
(
manufacturerEnum
.
getAbbr
());
Integer
manufacturerId
=
manufacturerInfoPO
.
getId
();
List
<
CrossInfoPO
>
crossInfoPOList
=
crossInfoMapper
.
selectByManufacturerId
(
manufacturerId
);
if
(
ListUtil
.
isEmpty
(
crossInfoPOList
))
{
return
null
;
}
// 信号机接口入参
List
<
BaseCrossInfo
>
baseCrossInfoList
=
new
ArrayList
<>();
for
(
CrossInfoPO
infoPO
:
crossInfoPOList
)
{
BaseCrossInfo
baseCrossInfo
=
new
BaseCrossInfo
();
baseCrossInfo
.
setCode
(
infoPO
.
getCode
());
baseCrossInfo
.
setManufacturerAbbr
(
manufacturerEnum
.
getAbbr
());
baseCrossInfoList
.
add
(
baseCrossInfo
);
}
return
baseCrossInfoList
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/HkCrossSchedulesService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
HkCrossSchedulesService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
import
java.util.List
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/HkPlanSectionService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
HkPlanSectionService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
/**
* @author Kent HAN
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/HkSchemePhaseLightsService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
HkSchemePhaseLightsService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
/**
* @author Kent HAN
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/HkStaticInfoService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
HkStaticInfoService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
import
net.wanji.utc.po.CrossInfoPO
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/OthersStaticInfoService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
OthersStaticInfoService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
import
net.wanji.utc.common.genericentity.ManufacturerRes
;
import
net.wanji.utc.vo.DetailCrossInfoVO
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/StaticInfoService.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
StaticInfoService.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.genericentity.ManufacturerRes
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HkCrossSchedulesServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/HkCrossSchedulesServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
...
...
@@ -14,7 +13,7 @@ import net.wanji.utc.mapper.CrossInfoMapper;
import
net.wanji.utc.mapper.CrossPlanMapper
;
import
net.wanji.utc.mapper.CrossSchedulesMapper
;
import
net.wanji.utc.po.CrossSchedulesPO
;
import
net.wanji.utc.service.HkCrossSchedulesService
;
import
net.wanji.utc.service.
staticinfo.
HkCrossSchedulesService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HkPlanSectionServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/HkPlanSectionServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
...
...
@@ -15,7 +15,7 @@ import net.wanji.utc.mapper.CrossSectionMapper;
import
net.wanji.utc.po.CrossPlanPO
;
import
net.wanji.utc.po.CrossSchemePO
;
import
net.wanji.utc.po.CrossSectionPO
;
import
net.wanji.utc.service.HkPlanSectionService
;
import
net.wanji.utc.service.
staticinfo.
HkPlanSectionService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HkSchemePhaseLightsServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/HkSchemePhaseLightsServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
...
...
@@ -11,7 +11,7 @@ import net.wanji.utc.common.typeenum.*;
import
net.wanji.utc.entity.cache.PhaseCache
;
import
net.wanji.utc.mapper.*
;
import
net.wanji.utc.po.*
;
import
net.wanji.utc.service.HkSchemePhaseLightsService
;
import
net.wanji.utc.service.
staticinfo.
HkSchemePhaseLightsService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -98,8 +98,10 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
for
(
int
j
=
0
;
j
<
laneEles
.
size
();
j
++)
{
JSONObject
laneObj
=
laneEles
.
getJSONObject
(
j
);
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
String
lightsNo
=
laneObj
.
getString
(
"
elementId
"
);
String
lightsNo
=
laneObj
.
getString
(
"
channelNo
"
);
crossLightsPO
.
setLightsNo
(
lightsNo
);
String
elementId
=
laneObj
.
getString
(
"elementId"
);
crossLightsPO
.
setName
(
elementId
);
Integer
lampGroupType
=
laneObj
.
getInteger
(
"lampGroupType"
);
Integer
type
=
HkLightsTypeEnum
.
getCodeByHkCode
(
lampGroupType
);
crossLightsPO
.
setType
(
type
);
...
...
@@ -112,7 +114,7 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
crossLightsPO
.
setCrossId
(
crossId
);
crossLightsPO
.
setInOutType
(
3
);
// 海康都是进出口
// 插入数据返回自增ID
crossLightsMapper
.
deleteOne
(
crossId
,
lightsNo
);
crossLightsMapper
.
deleteOne
(
crossId
,
elementId
);
crossLightsMapper
.
insertOne
(
crossLightsPO
);
Integer
crossLightsPOId
=
crossLightsPO
.
getId
();
// 匹配缓存信息,构造相位灯组关系对象列表
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HkStaticInfoServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/HkStaticInfoServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
cn.hutool.core.util.IdUtil
;
import
com.alibaba.fastjson.JSON
;
...
...
@@ -14,7 +14,7 @@ import net.wanji.utc.mapper.CrossInfoMapper;
import
net.wanji.utc.mapper.ManufacturerInfoMapper
;
import
net.wanji.utc.po.CrossInfoPO
;
import
net.wanji.utc.po.ManufacturerInfoPO
;
import
net.wanji.utc.service.HkStaticInfoService
;
import
net.wanji.utc.service.
staticinfo.
HkStaticInfoService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/OthersStaticInfoServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/OthersStaticInfoServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.TypeReference
;
import
net.wanji.utc.common.commonentity.HttpRequest
;
import
net.wanji.utc.common.genericentity.ManufacturerRes
;
import
net.wanji.utc.service.OthersStaticInfoService
;
import
net.wanji.utc.service.
staticinfo.
OthersStaticInfoService
;
import
net.wanji.utc.util.HttpRestUtil
;
import
net.wanji.utc.util.StringUtils
;
import
net.wanji.utc.vo.DetailCrossInfoVO
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/StaticInfoServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
staticinfo/
impl/StaticInfoServiceImpl.java
View file @
bf6e293e
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
staticinfo
.
impl
;
import
net.wanji.utc.common.genericentity.ManufacturerRes
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
...
...
@@ -6,9 +6,9 @@ import net.wanji.utc.mapper.CrossInfoMapper;
import
net.wanji.utc.mapper.ManufacturerInfoMapper
;
import
net.wanji.utc.po.CrossInfoPO
;
import
net.wanji.utc.po.ManufacturerInfoPO
;
import
net.wanji.utc.service.*
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.genericentity.OutVO
;
import
net.wanji.utc.service.staticinfo.*
;
import
net.wanji.utc.util.ListUtil
;
import
net.wanji.utc.vo.CrossSchedulesInVO
;
import
net.wanji.utc.vo.DetailCrossInfoVO
;
...
...
@@ -59,7 +59,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
return
null
;
}
for
(
DetailCrossInfoVO
vo
:
dataContent
)
{
String
id
=
vo
.
get
TelesemeId
();
String
id
=
vo
.
get
Code
();
CrossInfoPO
crossInfoPO
=
crossInfoMapper
.
selectByPrimaryKey
(
id
);
if
(
null
!=
crossInfoPO
)
{
continue
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
task
;
import
net.wanji.utc.service.runninginfo.SignalStatusService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
/**
* 订阅信号运行状态、告警、灯态
*
* @author Kent HAN
* @date 2022/11/21 9:01
*/
@Component
public
class
SignalStatusTask
{
@Autowired
SignalStatusService
signalStatusService
;
// 运行状态、告警,5分钟一次
@Scheduled
(
fixedRate
=
5
*
60
*
1000
)
public
void
runningStatusAlarm
()
{
signalStatusService
.
runningStatusAlarm
();
}
// 灯态,5秒一次
@Scheduled
(
fixedRate
=
5
*
1000
)
public
void
lightStatus
()
{
signalStatusService
.
lightStatus
();
}
}
signal-utc-service/src/main/java/net/wanji/utc/util/DateUtils.java
0 → 100644
View file @
bf6e293e
This diff is collapsed.
Click to expand it.
signal-utc-service/src/main/java/net/wanji/utc/util/FastJson2JsonRedisSerializer.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
util
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.serializer.SerializerFeature
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.SerializationException
;
import
java.nio.charset.Charset
;
public
class
FastJson2JsonRedisSerializer
<
T
>
implements
RedisSerializer
<
T
>
{
public
static
final
Charset
DEFAULT_CHARSET
=
Charset
.
forName
(
"UTF-8"
);
private
Class
<
T
>
clazz
;
public
FastJson2JsonRedisSerializer
(
Class
<
T
>
clazz
)
{
super
();
this
.
clazz
=
clazz
;
}
@Override
public
byte
[]
serialize
(
T
t
)
throws
SerializationException
{
if
(
t
==
null
)
{
return
new
byte
[
0
];
}
return
JSON
.
toJSONString
(
t
,
SerializerFeature
.
WriteClassName
).
getBytes
(
DEFAULT_CHARSET
);
}
@Override
public
T
deserialize
(
byte
[]
bytes
)
throws
SerializationException
{
if
(
bytes
==
null
||
bytes
.
length
<=
0
)
{
return
null
;
}
String
str
=
new
String
(
bytes
,
DEFAULT_CHARSET
);
return
(
T
)
JSON
.
parseObject
(
str
,
clazz
);
}
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/util/RedisUtil.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
util
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.constant.RedisKeyConst
;
import
net.wanji.utc.common.typeenum.DateStyle
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.support.atomic.RedisAtomicLong
;
import
org.springframework.stereotype.Component
;
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.concurrent.TimeUnit
;
@Component
public
class
RedisUtil
{
/**
* 注入redisTemplate
*/
@Resource
private
RedisTemplate
<
String
,
Object
>
redisTemplate
;
/**
* @description: 判断是否存在Key
* @param key redis的Key
* @return boolean true:有 false:无
*/
public
boolean
hasKey
(
String
key
)
{
return
redisTemplate
.
hasKey
(
key
);
}
/**
* @description: 添加字符串
* @param key redis的Key
* @param value 添加redis的value
*/
public
void
set
(
String
key
,
String
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
);
}
/**
* @description: 获取对象
* @param key redis的Key
* @return Object 返回对象
*/
public
Object
get
(
String
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 hfx
* @date 2019/5/5 19:26
*/
public
String
getVersion
(
String
type
)
{
String
formatDate
=
DateUtils
.
dateToString
(
new
Date
(),
DateStyle
.
YYYYMMDD
);
String
key
=
RedisKeyConst
.
KEY_PREFIX
+
type
+
formatDate
;
//当前时间到第二天还剩多少时间
Date
newDate
=
DateUtils
.
dateForMat
(
DateUtils
.
addDay
(
new
Date
(),
1
),
DateStyle
.
YYYY_MM_DD
);
int
liveTime
=
DateUtils
.
dayDiff
(
newDate
,
new
Date
(),
Calendar
.
MILLISECOND
);
//获取自增号
Long
incr
=
getIncr
(
key
,
liveTime
);
if
(
incr
==
0
)
{
incr
=
getIncr
(
key
,
liveTime
);
//从001开始
}
DecimalFormat
df
=
new
DecimalFormat
(
"000"
);
//三位序列号
return
formatDate
+
Constants
.
SEPARATOR_MINUS
+
df
.
format
(
incr
);
}
/**
* 自增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
(
"*"
);
}
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/vo/CrossLanesVO.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
vo
;
import
lombok.Data
;
import
lombok.ToString
;
@Data
@ToString
public
class
CrossLanesVO
{
/** 通道号 */
private
Integer
channelNo
;
/** 车道号 */
private
Integer
laneNo
;
/** 方向 */
private
Integer
direction
;
/** 转向 */
private
Integer
turn
;
/** 灯组类型 */
private
Integer
lampGroupType
;
}
\ No newline at end of file
signal-utc-service/src/main/java/net/wanji/utc/vo/LightsStatusVO.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.entity.SignalRunring
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author Kent HAN
* @date 2022/11/21 14:04
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
LightsStatusVO
extends
BaseCrossInfo
{
//运行模式
@ApiModelProperty
(
value
=
"运行模式 `2=手动锁定当前相位`,`3=手动全红`,`4=手动黄闪`,`5=手动关灯`,"
+
"`6=全红闪控制`,`7=全黄控制`,`8=正常按计划运行`,`9=手动步进控制`,`10=自动步进控制`,`11=恢复时间表`,`255=临时控制方案`"
)
private
String
runMode
;
//控制模式
@ApiModelProperty
(
value
=
"控制模式"
)
private
String
controlMode
;
//相位方案号
@ApiModelProperty
(
value
=
"相位方案号"
)
private
String
phasePlanId
;
//相位配时方案
@ApiModelProperty
(
value
=
"相位配时方案"
)
private
String
timePlanId
;
//方案开始时间
@ApiModelProperty
(
value
=
"方案开始时间"
)
private
String
planStartTime
;
//方案运行时间
@ApiModelProperty
(
value
=
"方案运行时间"
)
private
Integer
runTime
;
//相位周期剩余时长
@ApiModelProperty
(
value
=
"相位周期剩余时长"
)
private
Integer
cycleCountDown
;
//相位周期时长
@ApiModelProperty
(
value
=
"相位周期时长"
)
private
Integer
cycleLen
;
//运行环数组
private
List
<
SignalRunring
>
runrings
;
//相位编号
@ApiModelProperty
(
value
=
"当前相位号"
)
private
String
phaseId
;
//方案编号
@ApiModelProperty
(
value
=
"当前方案号"
)
private
String
planId
;
//灯组状态
@ApiModelProperty
(
value
=
"灯组状态"
)
private
Map
<
String
,
Object
>
dirLampGroupMap
;
//相位对象:key:相位编号,value:绿灯时长
@ApiModelProperty
(
value
=
"相位对象:key相位编号,value绿灯时长"
)
private
Map
<
String
,
Object
>
phaseMap
;
public
void
setCycleCountDown
(
Integer
cycleCountDown
)
{
if
(
null
==
cycleCountDown
)
{
this
.
cycleCountDown
=
-
1
;
}
else
{
this
.
cycleCountDown
=
cycleCountDown
;
}
}
public
Integer
getCycleCountDown
()
{
if
(
null
==
cycleCountDown
)
{
return
-
1
;
}
return
cycleCountDown
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/vo/RunningStatusVO.java
0 → 100644
View file @
bf6e293e
package
net
.
wanji
.
utc
.
vo
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
/**
* @author Kent HAN
* @date 2022/11/21 9:44
*/
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
RunningStatusVO
extends
BaseCrossInfo
{
// 信号状态:0离线;1在线
private
Integer
status
;
// 故障类型:0正常;1检测器故障;2时钟故障;3电源故障;4驱动模块故障;5信号灯故障;6箱门开启;7方案错误;8绿冲突;9红全熄;10行人红熄
private
Integer
faultType
;
// 控制模式:1时间表;2全红;3黄闪;4锁定;5中心优化;6MEC优化;7现场手动
private
Integer
controlType
;
}
signal-utc-service/src/main/resources/application-dev.yml
View file @
bf6e293e
...
...
@@ -30,7 +30,7 @@ spring:
max-idle
:
20
min-idle
:
10
timeout
:
5000
database
:
3
database
:
5
# 信号平台
signal
:
...
...
signal-utc-service/src/main/resources/mapper/CrossInfoMapper.xml
View file @
bf6e293e
...
...
@@ -46,4 +46,15 @@
from t_cross_info
where code = #{crossCode}
</select>
<select
id=
"selectByManufacturerId"
resultMap=
"BaseResultMap"
>
select id,name,code,manufacturer_id,ip,port,location,version,model,install_time,gmt_create,gmt_modified
from t_cross_info
where manufacturer_id = #{manufacturerId}
</select>
<select
id=
"selectAll"
resultMap=
"BaseResultMap"
>
select id,name,code,manufacturer_id,ip,port,location,version,model,install_time,gmt_create,gmt_modified
from t_cross_info
</select>
</mapper>
signal-utc-service/src/main/resources/mapper/CrossLightsMapper.xml
View file @
bf6e293e
...
...
@@ -21,8 +21,15 @@
<delete
id=
"deleteOne"
>
delete from t_cross_lights
where cross_id = #{crossId} and
lights_no = #{lightsNo
}
where cross_id = #{crossId} and
name = #{elementId
}
</delete>
<select
id=
"selectByCrossId"
resultMap=
"BaseResultMap"
>
select
id,lights_no,name,type,dir,turn,cross_id,in_out_type,gmt_create,gmt_modified
from t_cross_lights
where cross_id = #{crossId}
</select>
</mapper>
signal-utc-service/src/main/resources/mapper/ManufacturerInfoMapper.xml
View file @
bf6e293e
...
...
@@ -25,4 +25,9 @@
from t_manufacturer_info
where id = #{manufacturerId}
</select>
<select
id=
"selectAll"
resultMap=
"BaseResultMap"
>
select
id,code,name,nick_name,address,maintenance_unit,gmt_create,gmt_modified
from t_manufacturer_info
</select>
</mapper>
signal-utc-service/src/main/resources/mapper/SignalStatusLogMapper.xml
0 → 100644
View file @
bf6e293e
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.utc.mapper.SignalStatusLogMapper"
>
<resultMap
type=
"net.wanji.utc.po.SignalStatusLogPO"
id=
"BaseResultMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"signalId"
column=
"signal_id"
/>
<result
property=
"status"
column=
"status"
/>
<result
property=
"faultType"
column=
"fault_type"
/>
<result
property=
"controlType"
column=
"control_type"
/>
<result
property=
"gmtCreate"
column=
"gmt_create"
/>
</resultMap>
<!-- 批量新增数据 -->
<insert
id=
"insertBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into t_signal_status_log(signal_id,status,fault_type,control_type)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.signalId},#{entity.status},#{entity.faultType},#{entity.controlType})
</foreach>
</insert>
</mapper>
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