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
3a049925
Commit
3a049925
authored
Mar 13, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] opt优化
parent
a0e43a4d
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
290 additions
and
379 deletions
+290
-379
CrossInfoPO.java
...vice/src/main/java/net/wanji/opt/po/base/CrossInfoPO.java
+0
-41
CrossInfoService.java
...src/main/java/net/wanji/opt/service/CrossInfoService.java
+1
-6
CrossInfoServiceImpl.java
...java/net/wanji/opt/service/impl/CrossInfoServiceImpl.java
+9
-18
CrossOptimizeServiceImpl.java
.../net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
+89
-85
DiagnoServiceImpl.java
...in/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
+4
-16
EvaluateServiceImpl.java
.../java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
+2
-2
TrendServiceImpl.java
...ain/java/net/wanji/opt/service/impl/TrendServiceImpl.java
+4
-18
FeignProxyServiceImpl.java
...opt/service/signalcontrol/impl/FeignProxyServiceImpl.java
+1
-1
CrossMonitorTask.java
...ce/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
+4
-28
SchemeOptSendVO.java
...rvice/src/main/java/net/wanji/opt/vo/SchemeOptSendVO.java
+1
-1
CrossInfoMapper.xml
...ize-service/src/main/resources/mapper/CrossInfoMapper.xml
+0
-80
CrossInfoMapper.java
...in/java/net/wanji/databus/dao/mapper/CrossInfoMapper.java
+53
-0
CrossDataRealtimePO.java
...c/main/java/net/wanji/databus/po/CrossDataRealtimePO.java
+122
-83
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/po/base/CrossInfoPO.java
deleted
100644 → 0
View file @
a0e43a4d
package
net
.
wanji
.
opt
.
po
.
base
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author hfx
* @date 2023/01/12 13:29:39
* @desc 路口基础信息
*/
@Data
public
class
CrossInfoPO
{
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
id
;
@ApiModelProperty
(
name
=
"路口名称"
,
notes
=
""
)
private
String
name
;
@ApiModelProperty
(
name
=
"路口类型"
,
notes
=
""
)
private
Integer
type
;
@ApiModelProperty
(
name
=
"路口级别"
,
notes
=
""
)
private
Integer
level
;
@ApiModelProperty
(
name
=
"行政区划代码"
,
notes
=
""
)
private
Integer
areaCode
;
@ApiModelProperty
(
name
=
"路口位置"
,
notes
=
""
)
private
String
location
;
@ApiModelProperty
(
name
=
"是否信控路口:1是;0否"
,
notes
=
""
)
private
Integer
isSignal
;
@ApiModelProperty
(
name
=
"是否启动优化:1是;0否"
,
notes
=
""
)
private
Integer
isStart
;
@ApiModelProperty
(
name
=
"是否下发方案:1是;0否"
,
notes
=
""
)
private
Integer
isSend
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/CrossInfoService.java
View file @
3a049925
package
net
.
wanji
.
opt
.
service
;
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.opt.dto.CrossInfoDTO
;
import
net.wanji.opt.query.CrossQuery
;
import
java.util.List
;
/**
/**
* @author hfx
* @author hfx
* @date 2023/1/12 15:12
* @date 2023/1/12 15:12
...
@@ -17,6 +12,6 @@ public interface CrossInfoService {
...
@@ -17,6 +12,6 @@ public interface CrossInfoService {
* 查询路口基础信息列表
* 查询路口基础信息列表
* @return
* @return
*/
*/
List
<
CrossInfoDTO
>
listCrossInfo
(
CrossQuery
query
);
//
List<CrossInfoDTO> listCrossInfo(CrossQuery query);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossInfoServiceImpl.java
View file @
3a049925
package
net
.
wanji
.
opt
.
service
.
impl
;
package
net
.
wanji
.
opt
.
service
.
impl
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dto.CrossInfoDTO
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
net.wanji.opt.query.CrossQuery
;
import
net.wanji.opt.service.CrossInfoService
;
import
net.wanji.opt.service.CrossInfoService
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
/**
* @author hfx
* @author hfx
* @date 2023/1/12 15:12
* @date 2023/1/12 15:12
...
@@ -20,14 +11,14 @@ import java.util.List;
...
@@ -20,14 +11,14 @@ import java.util.List;
@Service
@Service
public
class
CrossInfoServiceImpl
implements
CrossInfoService
{
public
class
CrossInfoServiceImpl
implements
CrossInfoService
{
@Resource
//
@Resource
CrossInfoMapper
crossInfoMapper
;
//
CrossInfoMapper crossInfoMapper;
//
public
List
<
CrossInfoDTO
>
listCrossInfo
(
CrossQuery
query
)
{
//
public List<CrossInfoDTO> listCrossInfo(CrossQuery query) {
//
// 获取数据库数据
//
// 获取数据库数据
List
<
CrossInfoPO
>
crossInfoPOList
=
crossInfoMapper
.
listCrossInfo
(
query
);
//
List<CrossInfoPO> crossInfoPOList = crossInfoMapper.listCrossInfo(query);
return
BeanListUtils
.
populateList
(
crossInfoPOList
,
new
ArrayList
<>(),
CrossInfoDTO
.
class
);
//
return BeanListUtils.populateList(crossInfoPOList, new ArrayList<>(), CrossInfoDTO.class);
}
//
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
View file @
3a049925
package
net
.
wanji
.
opt
.
service
.
impl
;
package
net
.
wanji
.
opt
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.tool.BeanListUtils
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossTurnDataRealtimeMapper
;
import
net.wanji.databus.dto.CrossDirInfoDTO
;
import
net.wanji.databus.dto.CrossDirInfoDTO
;
import
net.wanji.databus.dto.CrossTurnInfoDTO
;
import
net.wanji.databus.dto.CrossTurnInfoDTO
;
import
net.wanji.databus.entity.develop.servicedevelop.develop.StatusCodeEnum
;
import
net.wanji.databus.entity.develop.servicedevelop.develop.StatusCodeEnum
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.feign.pojo.vo.SchemeSendVO
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
net.wanji.feign.pojo.vo.SignalStatusVO
;
import
net.wanji.databus.po.CrossTurnDataRealtimePO
;
import
net.wanji.databus.vo.SchemeSendVO
;
import
net.wanji.databus.vo.SignalStatusVO
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.opt.cache.CrossDirTurnPhaseCache
;
import
net.wanji.opt.cache.CrossDirTurnPhaseCache
;
import
net.wanji.opt.cache.CrossRidInfoCache
;
import
net.wanji.opt.cache.CrossRidInfoCache
;
...
@@ -31,18 +38,9 @@ import org.springframework.stereotype.Service;
...
@@ -31,18 +38,9 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.ZoneOffset
;
import
java.time.ZoneOffset
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Collections
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
import
static
net
.
wanji
.
opt
.
cache
.
CrossPhaseInfoCache
.
getCrossPhaseCacheByCrossId
;
import
static
net
.
wanji
.
opt
.
cache
.
CrossPhaseInfoCache
.
getCrossPhaseCacheByCrossId
;
...
@@ -54,19 +52,17 @@ import static net.wanji.opt.cache.CrossSchemeInfoCache.geteSchemePOCache;
...
@@ -54,19 +52,17 @@ import static net.wanji.opt.cache.CrossSchemeInfoCache.geteSchemePOCache;
* @desc CrossOptimizeServiceImpl
* @desc CrossOptimizeServiceImpl
*/
*/
@Service
@Service
@RequiredArgsConstructor
@Slf4j
@Slf4j
public
class
CrossOptimizeServiceImpl
implements
CrossOptimizeService
{
public
class
CrossOptimizeServiceImpl
implements
CrossOptimizeService
{
@Resource
private
final
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
;
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
;
private
final
UtcFeignClients
utcFeignClients
;
@Resource
private
final
CrossDirTurnPhaseCache
crossDirTurnPhaseCache
;
UtcFeignClients
utcFeignClients
;
private
final
CrossRidInfoCache
crossRidInfoCache
;
@Resource
private
final
SceneService
sceneService
;
CrossDirTurnPhaseCache
crossDirTurnPhaseCache
;
private
final
CrossTurnDataRealtimeMapper
crossTurnDataRealtimeMapper
;
@Resource
private
final
CrossDirDataRealtimeMapper
crossDirDataRealtimeMapper
;
CrossRidInfoCache
crossRidInfoCache
;
@Resource
SceneService
sceneService
;
@Value
(
"${crossOptParam.maxVehheadDist}"
)
@Value
(
"${crossOptParam.maxVehheadDist}"
)
private
Double
maxVehheadDist
;
private
Double
maxVehheadDist
;
...
@@ -89,6 +85,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -89,6 +85,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
try
{
try
{
// todo 当前路口不是信控路口,需要跳过
// todo 当前路口不是信控路口,需要跳过
// utcFeignClients.listCrossInfo()
// todo 系统管理,路口管理,信控标志关闭,优化下发也要关闭
// todo 系统管理,路口管理,信控标志关闭,优化下发也要关闭
// 相位配时信息,key: 路口编号_方向类型_转向类型,value: 相位配时信息
// 相位配时信息,key: 路口编号_方向类型_转向类型,value: 相位配时信息
...
@@ -98,7 +95,11 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -98,7 +95,11 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
setTurnList
(
crossDataRealtimePOList
,
phaseMap
);
setTurnList
(
crossDataRealtimePOList
,
phaseMap
);
// 获取所有信控路口转向实时数据,包括异常路口和正常路口
// 获取所有信控路口转向实时数据,包括异常路口和正常路口
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
turnDataRealtime
=
listTurnDataRealtime
(
crossDataRealtimePOList
);
// Map<String, List<CrossTurnDataRealtimeDTO>> turnDataRealtimeMap = listTurnDataRealtime(crossDataRealtimePOList);
List
<
CrossTurnDataRealtimePO
>
crossTurnDataRealtimePOS
=
crossTurnDataRealtimeMapper
.
selectList
(
new
LambdaQueryWrapper
<
CrossTurnDataRealtimePO
>());
ArrayList
<
CrossTurnDataRealtimeDTO
>
turnDataRealtimeList
=
new
ArrayList
<>();
BeanListUtils
.
populateList
(
crossTurnDataRealtimePOS
,
turnDataRealtimeList
,
CrossTurnDataRealtimeDTO
.
class
);
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
turnDataRealtimeMap
=
turnDataRealtimeList
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossTurnDataRealtimeDTO:
:
getCrossId
));
// 恢复优化路口原始方案:上一批次优化后,路口正常需要恢复原始方案
// 恢复优化路口原始方案:上一批次优化后,路口正常需要恢复原始方案
// todo 方案运行时间,恢复时当前时间是否在远方案运行时间内,否则phaseMap数据不准确
// todo 方案运行时间,恢复时当前时间是否在远方案运行时间内,否则phaseMap数据不准确
...
@@ -107,15 +108,15 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -107,15 +108,15 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
Map
<
Integer
,
List
<
CrossDataRealtimePO
>>
crossDataMap
=
abnormalCrossList
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossDataRealtimePO:
:
getStatus
));
Map
<
Integer
,
List
<
CrossDataRealtimePO
>>
crossDataMap
=
abnormalCrossList
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossDataRealtimePO:
:
getStatus
));
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
SPILLOVER
.
getCode
());
// 溢出
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
SPILLOVER
.
getCode
());
// 溢出
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
spilloverOpt
(
abnormalCrossList
,
turnDataRealtime
,
phaseMap
);
spilloverOpt
(
abnormalCrossList
,
turnDataRealtime
Map
,
phaseMap
);
}
}
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
CONGESTION
.
getCode
());
// 拥堵
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
CONGESTION
.
getCode
());
// 拥堵
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
congestionOpt
(
abnormalCrossList
,
turnDataRealtime
,
phaseMap
);
congestionOpt
(
abnormalCrossList
,
turnDataRealtime
Map
,
phaseMap
);
}
}
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
UNBALANCE
.
getCode
());
// 失衡
abnormalCrossList
=
crossDataMap
.
get
(
CrossStatusEnum
.
UNBALANCE
.
getCode
());
// 失衡
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
if
(
abnormalCrossList
!=
null
&&
!
abnormalCrossList
.
isEmpty
())
{
unbalanceOpt
(
abnormalCrossList
,
turnDataRealtime
,
phaseMap
);
unbalanceOpt
(
abnormalCrossList
,
turnDataRealtime
Map
,
phaseMap
);
}
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
...
@@ -155,16 +156,15 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -155,16 +156,15 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
}
}
// 判断路口是否是绿波
// 判断路口是否是绿波
// 路口拥堵进口方向,dir
// 路口拥堵进口方向,dir
List
<
String
>
optCrossDirList
=
getOptCrossInDirList
(
cross
);
List
<
Integer
>
optCrossDirList
=
getOptCrossInDirList
(
crossId
);
// 溢出当前路口方向转向减少时间 10s
// 溢出当前路口方向转向减少时间 10s
// 计算路口各转向所需的通行时长(秒)
// 计算路口各转向所需的通行时长(秒)
List
<
CrossTurnDataRealtimeDTO
>
crossTurnDataRealtimeDTOS
=
turnDataRealtimeMap
.
get
(
crossId
);
List
<
CrossTurnDataRealtimeDTO
>
crossTurnDataRealtimeDTOS
=
turnDataRealtimeMap
.
get
(
crossId
);
for
(
String
dir
:
optCrossDirList
)
{
for
(
Integer
dir
:
optCrossDirList
)
{
for
(
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
:
crossTurnDataRealtimeDTOS
)
{
for
(
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
:
crossTurnDataRealtimeDTOS
)
{
Integer
inDir
=
crossTurnDataRealtimeDTO
.
getInDir
();
Integer
inDir
=
crossTurnDataRealtimeDTO
.
getInDir
();
String
turnType
=
crossTurnDataRealtimeDTO
.
getTurnType
();
if
(
Objects
.
equals
(
dir
,
inDir
))
{
if
(
Objects
.
equals
(
dir
,
String
.
valueOf
(
inDir
)))
{
crossTurnDataRealtimeDTO
.
setPassTime
(-
10.0
);
crossTurnDataRealtimeDTO
.
setPassTime
(-
10.0
);
}
}
}
}
...
@@ -179,8 +179,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -179,8 +179,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
if
(
CollectionUtils
.
isEmpty
(
ridInfoEntities
))
{
if
(
CollectionUtils
.
isEmpty
(
ridInfoEntities
))
{
continue
;
continue
;
}
}
for
(
String
dirTurn
:
optCrossDirList
)
{
for
(
Integer
dir
:
optCrossDirList
)
{
Integer
dir
=
Integer
.
valueOf
(
dirTurn
);
for
(
RidInfoEntity
ridInfoEntity
:
ridInfoEntities
)
{
for
(
RidInfoEntity
ridInfoEntity
:
ridInfoEntities
)
{
Integer
inDir
=
ridInfoEntity
.
getInDir
();
Integer
inDir
=
ridInfoEntity
.
getInDir
();
if
(!
congestCrossMap
.
containsKey
(
ridInfoEntity
.
getEndCrossId
())
&&
Objects
.
equals
(
inDir
,
dir
))
{
if
(!
congestCrossMap
.
containsKey
(
ridInfoEntity
.
getEndCrossId
())
&&
Objects
.
equals
(
inDir
,
dir
))
{
...
@@ -234,7 +233,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -234,7 +233,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
}
}
// 路口拥堵方向转向,dir_turn
// 路口拥堵方向转向,dir_turn
List
<
String
>
optCrossDirList
=
getOptCrossInDirList
(
cross
);
List
<
Integer
>
optCrossDirList
=
getOptCrossInDirList
(
crossId
);
// 判断当前路口是否已优化
// 判断当前路口是否已优化
if
(
CROSS_OPT
.
contains
(
crossId
))
{
if
(
CROSS_OPT
.
contains
(
crossId
))
{
...
@@ -248,9 +247,8 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -248,9 +247,8 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
continue
;
continue
;
}
}
// 当前路口拥堵方向,优化当前路口方向的上游路口的直行和左转方向
// 当前路口拥堵方向,优化当前路口方向的上游路口的直行和左转方向
for
(
String
congestionDir
:
optCrossDirList
)
{
for
(
Integer
intCongestionDir
:
optCrossDirList
)
{
Integer
intCongestionDir
=
Integer
.
valueOf
(
congestionDir
);
// 拥堵路口对上游路口进 行优化
// 拥堵路口对上游路口进行优化
for
(
RidInfoEntity
ridInfoEntity
:
ridInfoEntities
)
{
for
(
RidInfoEntity
ridInfoEntity
:
ridInfoEntities
)
{
String
startCrossId
=
ridInfoEntity
.
getStartCrossId
();
String
startCrossId
=
ridInfoEntity
.
getStartCrossId
();
...
@@ -328,33 +326,41 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -328,33 +326,41 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
}
}
}
}
/**
// /**
* 当前路口异常转向列表 element:进口方向
// * 当前路口异常转向列表 element:进口方向
*
// *
* @param cross
// * @param cross
* @return
// * @return
*/
// */
private
static
List
<
String
>
getOptCrossInDirList
(
CrossDataRealtimePO
cross
)
{
// private static List<String> getOptCrossInDirList(CrossDataRealtimePO cross) {
List
<
String
>
crossIdDirList
=
new
ArrayList
<>();
// List<String> crossIdDirList = new ArrayList<>();
List
<
CrossDirInfoDTO
>
dirList
=
cross
.
getDirList
();
// List<CrossDirInfoDTO> dirList = cross.getDirList();
List
<
CrossTurnInfoDTO
>
turnList
=
cross
.
getTurnList
();
// List<CrossTurnInfoDTO> turnList = cross.getTurnList();
if
(!
CollectionUtils
.
isEmpty
(
dirList
)
&&
!
CollectionUtils
.
isEmpty
(
turnList
))
{
// if (!CollectionUtils.isEmpty(dirList) && !CollectionUtils.isEmpty(turnList)) {
for
(
CrossDirInfoDTO
crossDirInfoDTO
:
dirList
)
{
// for (CrossDirInfoDTO crossDirInfoDTO : dirList) {
Integer
dirType
=
crossDirInfoDTO
.
getDirType
();
// Integer dirType = crossDirInfoDTO.getDirType();
Integer
inOutType
=
crossDirInfoDTO
.
getInOutType
();
// Integer inOutType = crossDirInfoDTO.getInOutType();
for
(
CrossTurnInfoDTO
crossTurnInfoDTO
:
turnList
)
{
// for (CrossTurnInfoDTO crossTurnInfoDTO : turnList) {
Integer
inDir
=
crossTurnInfoDTO
.
getInDir
();
// Integer inDir = crossTurnInfoDTO.getInDir();
// 路口方向进口=驶入方向
// // 路口方向进口=驶入方向
if
(
Objects
.
equals
(
dirType
,
inDir
)
&&
Objects
.
equals
(
1
,
inOutType
))
{
// if (Objects.equals(dirType, inDir) && Objects.equals(1, inOutType)) {
String
str
=
String
.
valueOf
(
crossDirInfoDTO
.
getDirType
());
// String str = String.valueOf(crossDirInfoDTO.getDirType());
if
(!
crossIdDirList
.
contains
(
str
))
{
// if (!crossIdDirList.contains(str)) {
crossIdDirList
.
add
(
str
);
// crossIdDirList.add(str);
}
// }
}
// }
}
// }
}
// }
}
// }
return
crossIdDirList
;
// return crossIdDirList;
// }
private
List
<
Integer
>
getOptCrossInDirList
(
String
crossId
)
{
LambdaQueryWrapper
<
CrossDirDataRealtimePO
>
dirWrapper
=
new
LambdaQueryWrapper
<>();
dirWrapper
.
eq
(
CrossDirDataRealtimePO:
:
getCrossId
,
crossId
);
dirWrapper
.
eq
(
CrossDirDataRealtimePO:
:
getInOutType
,
1
);
List
<
CrossDirDataRealtimePO
>
crossDirDataRealtimePOS
=
crossDirDataRealtimeMapper
.
selectList
(
dirWrapper
);
List
<
Integer
>
optCrossDirList
=
crossDirDataRealtimePOS
.
stream
().
map
(
CrossDirDataRealtimePO:
:
getDirType
).
collect
(
Collectors
.
toList
());
return
optCrossDirList
;
}
}
/**
/**
...
@@ -389,8 +395,6 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -389,8 +395,6 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
turnList
.
add
(
crossTurnInfoDTO
);
turnList
.
add
(
crossTurnInfoDTO
);
}
}
}
}
crossDataRealtimeDTO
.
setDirList
(
dirList
.
stream
().
distinct
().
collect
(
Collectors
.
toList
()));
crossDataRealtimeDTO
.
setTurnList
(
turnList
);
}
}
}
}
...
@@ -744,26 +748,26 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
...
@@ -744,26 +748,26 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
*
*
* @return
* @return
*/
*/
public
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
listTurnDataRealtime
(
List
<
CrossDataRealtimePO
>
abnormalCrossList
)
{
//
public Map<String, List<CrossTurnDataRealtimeDTO>> listTurnDataRealtime(List<CrossDataRealtimePO> abnormalCrossList) {
Map
<
String
,
List
<
CrossTurnDataRealtimeDTO
>>
turnDataRealtimeDTOList
=
new
HashMap
<>();
//
Map<String, List<CrossTurnDataRealtimeDTO>> turnDataRealtimeDTOList = new HashMap<>();
//
abnormalCrossList
.
forEach
(
entry
->
{
//
abnormalCrossList.forEach(entry -> {
List
<
CrossTurnDataRealtimeDTO
>
crossTurnDataRealtimeDTOS
=
new
ArrayList
<>();
//
List<CrossTurnDataRealtimeDTO> crossTurnDataRealtimeDTOS = new ArrayList<>();
String
crossId
=
entry
.
getCrossId
();
//
String crossId = entry.getCrossId();
List
<
CrossTurnInfoDTO
>
turnList
=
entry
.
getTurnList
();
//
List<CrossTurnInfoDTO> turnList = entry.getTurnList();
turnList
.
forEach
(
crossTurnInfoDTO
->
{
//
turnList.forEach(crossTurnInfoDTO -> {
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
=
new
CrossTurnDataRealtimeDTO
();
//
CrossTurnDataRealtimeDTO crossTurnDataRealtimeDTO = new CrossTurnDataRealtimeDTO();
BeanUtils
.
copyProperties
(
entry
,
crossTurnDataRealtimeDTO
);
//
BeanUtils.copyProperties(entry, crossTurnDataRealtimeDTO);
crossTurnDataRealtimeDTO
.
setTurnType
(
crossTurnInfoDTO
.
getTurnType
());
//
crossTurnDataRealtimeDTO.setTurnType(crossTurnInfoDTO.getTurnType());
crossTurnDataRealtimeDTO
.
setInDir
(
crossTurnInfoDTO
.
getInDir
());
//
crossTurnDataRealtimeDTO.setInDir(crossTurnInfoDTO.getInDir());
crossTurnDataRealtimeDTO
.
setOutDir
(
crossTurnInfoDTO
.
getOutDir
());
//
crossTurnDataRealtimeDTO.setOutDir(crossTurnInfoDTO.getOutDir());
crossTurnDataRealtimeDTOS
.
add
(
crossTurnDataRealtimeDTO
);
//
crossTurnDataRealtimeDTOS.add(crossTurnDataRealtimeDTO);
});
//
});
turnDataRealtimeDTOList
.
put
(
crossId
,
crossTurnDataRealtimeDTOS
);
//
turnDataRealtimeDTOList.put(crossId, crossTurnDataRealtimeDTOS);
});
//
});
//
return
turnDataRealtimeDTOList
;
//
return turnDataRealtimeDTOList;
}
//
}
/**
/**
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
View file @
3a049925
...
@@ -10,16 +10,13 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -10,16 +10,13 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.feign.pojo.vo.SchemeSendVO
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.vo.SchemeSendVO
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
...
@@ -30,7 +27,6 @@ import net.wanji.opt.dto.OptDataExtend;
...
@@ -30,7 +27,6 @@ import net.wanji.opt.dto.OptDataExtend;
import
net.wanji.opt.dto.SendManualDTO
;
import
net.wanji.opt.dto.SendManualDTO
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.dto.strategy.QuerySceneDTO
;
import
net.wanji.opt.dto.strategy.QuerySceneDTO
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
net.wanji.opt.po.base.CrossPhasePO
;
import
net.wanji.opt.po.base.CrossPhasePO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.po.base.CrossSchemePO
;
import
net.wanji.opt.po.base.CrossSchemePO
;
...
@@ -44,15 +40,7 @@ import net.wanji.opt.vo.SchemeOptSendVO;
...
@@ -44,15 +40,7 @@ import net.wanji.opt.vo.SchemeOptSendVO;
import
net.wanji.opt.vo.SchemeOptVO
;
import
net.wanji.opt.vo.SchemeOptVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Collection
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.TreeSet
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/EvaluateServiceImpl.java
View file @
3a049925
...
@@ -13,13 +13,13 @@ import net.wanji.databus.bo.CrossDirDataHistAvgBO;
...
@@ -13,13 +13,13 @@ import net.wanji.databus.bo.CrossDirDataHistAvgBO;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDirDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataRealtimePO
;
import
net.wanji.
opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.
databus.po.CrossInfoPO
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.dto.CrossIdAndMinutesDTO
;
import
net.wanji.opt.dto.OptDataExtend
;
import
net.wanji.opt.dto.OptDataExtend
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.service.EvaluateService
;
import
net.wanji.opt.service.EvaluateService
;
import
net.wanji.opt.vo.EvaluateCrossDetailVO
;
import
net.wanji.opt.vo.EvaluateCrossDetailVO
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/TrendServiceImpl.java
View file @
3a049925
...
@@ -9,39 +9,25 @@ import net.wanji.common.enums.EventAlarmEnum;
...
@@ -9,39 +9,25 @@ import net.wanji.common.enums.EventAlarmEnum;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.enums.EventAlarmSourceEnum
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.CrossDirDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossTurnDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.CrossTurnDataRealtimePO
;
import
net.wanji.databus.po.CrossTurnDataRealtimePO
;
import
net.wanji.databus.vo.AbnormalCrossListVO
;
import
net.wanji.databus.vo.AbnormalCrossListVO
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.EventAlarmMapper
;
import
net.wanji.opt.dao.mapper.trend.EventAlarmMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dao.mapper.trend.GreenwaveInfoMapper
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.AbnormalCrossListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.dto.trend.GreenwaveListDTO
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
net.wanji.opt.po.trend.EventAlarmPO
;
import
net.wanji.opt.po.trend.EventAlarmPO
;
import
net.wanji.opt.service.TrendService
;
import
net.wanji.opt.service.TrendService
;
import
net.wanji.opt.vo.AbnormalCrossDetailVO
;
import
net.wanji.opt.vo.*
;
import
net.wanji.opt.vo.AbnormalCrossStats
;
import
net.wanji.opt.vo.AbnormalCrossVO
;
import
net.wanji.opt.vo.EventAlarmVO
;
import
net.wanji.opt.vo.GreenwaveListVO
;
import
net.wanji.opt.vo.GreenwaveStats
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/signalcontrol/impl/FeignProxyServiceImpl.java
View file @
3a049925
...
@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -4,7 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.framework.exception.FeignServiceException
;
import
net.wanji.common.framework.exception.FeignServiceException
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.entity.develop.servicedevelop.develop.StatusCodeEnum
;
import
net.wanji.databus.entity.develop.servicedevelop.develop.StatusCodeEnum
;
import
net.wanji.
feign.pojo
.vo.SchemeSendVO
;
import
net.wanji.
databus
.vo.SchemeSendVO
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.opt.cache.CrossDirTurnPhaseCache
;
import
net.wanji.opt.cache.CrossDirTurnPhaseCache
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/CrossMonitorTask.java
View file @
3a049925
package
net
.
wanji
.
opt
.
task
;
package
net
.
wanji
.
opt
.
task
;
import
com.
alibaba.fastjson.JSONObject
;
import
com.
baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
lombok.RequiredArgsConstructor
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.dao.mapper.CrossDataRealtimeMapper
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.databus.po.CrossDataRealtimePO
;
import
net.wanji.opt.dto.CrossTurnDataRealtimeDTO
;
import
net.wanji.opt.dto.LaneInfoDTO
;
import
net.wanji.opt.kafka.ConsumerHandler
;
import
net.wanji.opt.kafka.ConsumerHandler
;
import
net.wanji.opt.po.kafka.LanePeriodicDataPO
;
import
net.wanji.opt.query.LaneQuery
;
import
net.wanji.opt.service.CrossOptimizeService
;
import
net.wanji.opt.service.CrossOptimizeService
;
import
net.wanji.opt.service.impl.LaneInfoServiceImpl
;
import
net.wanji.opt.service.impl.LaneInfoServiceImpl
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.BeanUtils
;
...
@@ -92,40 +88,20 @@ public class CrossMonitorTask {
...
@@ -92,40 +88,20 @@ public class CrossMonitorTask {
BeanUtils
.
copyProperties
(
po
,
dto
);
BeanUtils
.
copyProperties
(
po
,
dto
);
dto
.
setCrossId
(
po
.
getCrossId
());
dto
.
setCrossId
(
po
.
getCrossId
());
dto
.
setStatus
(
status
);
dto
.
setStatus
(
status
);
dto
.
setDirList
(
null
);
dto
.
setTurnList
(
null
);
dtoList
.
add
(
dto
);
dtoList
.
add
(
dto
);
}
}
return
dtoList
;
return
dtoList
;
}
}
/**
/**
* 获取路口实时监测数据
* 获取路口实时监测数据
,获取数据中心存入到数据库中的数据
* (暂定从数据中心kafka获取)
* (暂定从数据中心kafka获取)
*
*
* @return
* @return
*/
*/
public
List
<
CrossDataRealtimePO
>
listCrossDataRealtime
()
{
public
List
<
CrossDataRealtimePO
>
listCrossDataRealtime
()
{
List
<
CrossDataRealtimePO
>
crossDataRealtimePOS
=
crossDataRealtimeMapper
.
selectList
(
new
LambdaQueryWrapper
<>());
// todo test数据
return
crossDataRealtimePOS
;
List
<
CrossDataRealtimePO
>
crossDataRealtimePOList
=
new
ArrayList
<>(
1
);
CrossDataRealtimePO
crossDataRealtimePO
=
crossDataRealtimeMapper
.
selectByCrossId
(
"14Q1409IRF0"
);
CrossDataRealtimePO
crossDataRealtimePO1
=
crossDataRealtimeMapper
.
selectByCrossId
(
"14Q0S09IQB0"
);
crossDataRealtimePOList
.
add
(
crossDataRealtimePO
);
crossDataRealtimePOList
.
add
(
crossDataRealtimePO1
);
String
lanePeriodicData
=
consumerHandler
.
getTopicMessage
(
"JN040001LanePeriodicData"
);
LanePeriodicDataPO
lanePeriodicDataPO
=
JSONObject
.
parseObject
(
lanePeriodicData
,
LanePeriodicDataPO
.
class
);
// todo 对数据进行处理,可能主要是CrossTurnDataRealtimeDTO中的车间距,车时距等配置修改
CrossTurnDataRealtimeDTO
crossTurnDataRealtimeDTO
=
new
CrossTurnDataRealtimeDTO
();
// 查询车道信息表
LaneQuery
laneQuery
=
new
LaneQuery
();
List
<
LaneInfoDTO
>
laneInfoDTOS
=
laneInfoService
.
listLaneInfo
(
laneQuery
);
// 将车道信息表转存路口实时数据CrossDataRealtimePO,转向数据CrossTurnDataRealtimeDTO,方向数据CrossDirDataHistPO
// 通过数据进行优化
return
crossDataRealtimePOList
;
}
}
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/vo/SchemeOptSendVO.java
View file @
3a049925
...
@@ -3,7 +3,7 @@ package net.wanji.opt.vo;
...
@@ -3,7 +3,7 @@ package net.wanji.opt.vo;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
net.wanji.
feign.pojo
.vo.SchemeSendVO
;
import
net.wanji.
databus
.vo.SchemeSendVO
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotBlank
;
import
javax.validation.constraints.NotEmpty
;
import
javax.validation.constraints.NotEmpty
;
...
...
signal-optimize-service/src/main/resources/mapper/CrossInfoMapper.xml
deleted
100644 → 0
View file @
a0e43a4d
<?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.opt.dao.mapper.CrossInfoMapper"
>
<!-- 通用查询映射结果 -->
<resultMap
id=
"BaseResultMap"
type=
"net.wanji.opt.po.base.CrossInfoPO"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"level"
column=
"level"
/>
<result
property=
"areaCode"
column=
"area_code"
/>
<result
property=
"location"
column=
"location"
/>
<result
property=
"isSignal"
column=
"is_signal"
/>
<result
property=
"isStart"
column=
"is_start"
/>
<result
property=
"isSend"
column=
"is_send"
/>
</resultMap>
<!-- 查询路口列表信息 -->
<select
id=
"listCrossInfo"
parameterType=
"net.wanji.opt.query.CrossQuery"
resultMap=
"BaseResultMap"
>
select
id
,name
,type
,level
,area_code
,location
,is_signal
,is_start
,is_send
from
t_base_cross_info
where 1 = 1
<if
test=
"isSignal != null and isSignal != '' "
>
and is_signal = #{isSignal}
</if>
<if
test=
"isStart != null and isStart != '' "
>
and is_start = #{isStart}
</if>
<if
test=
"isSend != null and isSend != '' "
>
and is_send = #{isSend}
</if>
</select>
<select
id=
"selectByCrossIds"
resultType=
"net.wanji.opt.po.base.CrossInfoPO"
>
select
id,name,type,level,area_code,is_signal,is_start,is_send,location
from t_base_cross_info
where id IN
<foreach
collection=
"crossIdList"
item=
"crossId"
separator=
","
open=
"("
close=
")"
>
#{crossId}
</foreach>
</select>
<select
id=
"selectById"
resultType=
"net.wanji.opt.po.base.CrossInfoPO"
>
select
id,name,type,level,area_code,is_signal,is_start,is_send,location
from t_base_cross_info
where id = #{crossId}
</select>
<select
id=
"selectByName"
resultType=
"net.wanji.opt.po.base.CrossInfoPO"
>
select
id,name,type,level,area_code,is_signal,is_start,is_send,location
from t_base_cross_info
<where>
<if
test=
"name != null and name != ''"
>
AND name LIKE CONCAT('%',#{name},'%')
</if>
</where>
order by id
</select>
<select
id=
"selectAll"
resultType=
"net.wanji.opt.po.base.CrossInfoPO"
>
select
id,name,type,level,area_code,is_signal,is_start,is_send,location
from t_base_cross_info
order by id
</select>
</mapper>
signal-optimize-service/src/main/java/net/wanji/opt
/dao/mapper/CrossInfoMapper.java
→
wj-databus/src/main/java/net/wanji/databus
/dao/mapper/CrossInfoMapper.java
View file @
3a049925
package
net
.
wanji
.
opt
.
dao
.
mapper
;
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.opt.query.CrossQuery
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.TBaseCrossInfo
;
import
net.wanji.databus.vo.CrossDeviceStatusInfoOutVO
;
import
net.wanji.databus.vo.CrossInfoVO
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
import
java.util.List
;
...
@@ -12,14 +15,14 @@ import java.util.List;
...
@@ -12,14 +15,14 @@ import java.util.List;
* @desc CrossInfoMapper
* @desc CrossInfoMapper
*/
*/
@Repository
@Repository
public
interface
CrossInfoMapper
{
public
interface
CrossInfoMapper
extends
BaseMapper
<
TBaseCrossInfo
>
{
/**
/**
* 查询路口列表信息
* 查询路口列表信息
* @param query
* @param query
* @return
* @return
*/
*/
List
<
CrossInfoPO
>
listCrossInfo
(
CrossQuery
query
);
//
List<CrossInfoPO> listCrossInfo(CrossQuery query);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
crossIdList
);
List
<
CrossInfoPO
>
selectByCrossIds
(
List
<
String
>
crossIdList
);
...
@@ -28,4 +31,23 @@ public interface CrossInfoMapper {
...
@@ -28,4 +31,23 @@ public interface CrossInfoMapper {
List
<
CrossInfoPO
>
selectByName
(
String
name
);
List
<
CrossInfoPO
>
selectByName
(
String
name
);
List
<
CrossInfoPO
>
selectAll
();
List
<
CrossInfoPO
>
selectAll
();
int
deleteByPrimaryKey
(
String
id
);
@Override
int
insert
(
TBaseCrossInfo
record
);
int
insertSelective
(
TBaseCrossInfo
record
);
TBaseCrossInfo
selectByPrimaryKey
(
String
id
);
int
updateByPrimaryKeySelective
(
TBaseCrossInfo
record
);
int
updateByPrimaryKey
(
TBaseCrossInfo
record
);
List
<
CrossInfoPO
>
selectAll
(
CrossInfoVO
crossInfoVO
);
Integer
countSelectAll
(
CrossInfoVO
crossInfoVO
);
List
<
CrossDeviceStatusInfoOutVO
>
listCrossDeviceStatusInfo
();
}
}
wj-databus/src/main/java/net/wanji/databus/po/CrossDataRealtimePO.java
View file @
3a049925
...
@@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
...
@@ -4,11 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
net.wanji.databus.dto.CrossDirInfoDTO
;
import
net.wanji.databus.dto.CrossTurnInfoDTO
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* @author duanruiming
* @author duanruiming
...
@@ -18,84 +15,126 @@ import java.util.List;
...
@@ -18,84 +15,126 @@ import java.util.List;
@TableName
(
"t_cross_data_realtime"
)
@TableName
(
"t_cross_data_realtime"
)
@ApiModel
(
value
=
"CrossDataRealtimePO"
,
description
=
"路口实时数据"
)
@ApiModel
(
value
=
"CrossDataRealtimePO"
,
description
=
"路口实时数据"
)
public
class
CrossDataRealtimePO
{
public
class
CrossDataRealtimePO
{
/** 路口编号 */
/**
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
""
)
* 路口编号
private
String
crossId
;
*/
/** 路口状态:0正常;1失衡;2拥堵;3溢出;4死锁 */
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"路口状态:0正常;1失衡;2拥堵;3溢出;4死锁"
,
notes
=
""
)
private
String
crossId
;
private
Integer
status
;
/**
/** 拥堵类型:1常规;2异常 */
* 路口状态:0正常;1失衡;2拥堵;3溢出;4死锁
@ApiModelProperty
(
value
=
"拥堵类型:1常规;2异常"
,
notes
=
""
)
*/
private
Integer
type
;
@ApiModelProperty
(
value
=
"路口状态:0正常;1失衡;2拥堵;3溢出;4死锁"
,
notes
=
""
)
/** 交通指数(1~10) */
private
Integer
status
;
@ApiModelProperty
(
value
=
"交通指数(1~10)"
,
notes
=
""
)
/**
private
Double
trafficIndex
;
* 拥堵类型:1常规;2异常
/** 开始时间:yyyy-MM-dd HH;mm:ss */
*/
@ApiModelProperty
(
value
=
"开始时间:yyyy-MM-dd HH:mm:ss"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"拥堵类型:1常规;2异常"
,
notes
=
""
)
private
Date
startTime
;
private
Integer
type
;
@ApiModelProperty
(
value
=
"持续时间(单位:分钟)"
,
notes
=
""
)
/**
private
Integer
duration
;
* 交通指数(1~10)
/** 是否失衡:0否;1是 */
*/
@ApiModelProperty
(
value
=
"是否失衡:0否;1是"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"交通指数(1~10)"
,
notes
=
""
)
private
Integer
isUnbalance
;
private
Double
trafficIndex
;
/** 是否溢出:0否;1是 */
/**
@ApiModelProperty
(
value
=
"是否溢出:0否;1是"
,
notes
=
""
)
* 开始时间:yyyy-MM-dd HH;mm:ss
private
Integer
isSpillover
;
*/
/** 是否拥堵:0否;1是 */
@ApiModelProperty
(
value
=
"开始时间:yyyy-MM-dd HH:mm:ss"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"是否拥堵:0否;1是"
,
notes
=
""
)
private
Date
startTime
;
private
Integer
isCongestion
;
@ApiModelProperty
(
value
=
"持续时间(单位:分钟)"
,
notes
=
""
)
/** 失衡指数 */
private
Integer
duration
;
@ApiModelProperty
(
value
=
"失衡指数"
,
notes
=
""
)
/**
private
Double
unbalanceIndex
;
* 是否失衡:0否;1是
/** 溢出指数 */
*/
@ApiModelProperty
(
value
=
"溢出指数"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"是否失衡:0否;1是"
,
notes
=
""
)
private
Double
spilloverIndex
;
private
Integer
isUnbalance
;
/** 拥堵指数 */
/**
@ApiModelProperty
(
value
=
"拥堵指数"
,
notes
=
""
)
* 是否溢出:0否;1是
private
Double
congestionIndex
;
*/
/** 路口失衡方向:1,2,3... */
@ApiModelProperty
(
value
=
"是否溢出:0否;1是"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"路口失衡方向:1,2,3..."
,
notes
=
""
)
private
Integer
isSpillover
;
private
String
unbalanceDirs
;
/**
/** 路口溢出方向:1,2,3... */
* 是否拥堵:0否;1是
@ApiModelProperty
(
value
=
"路口溢出方向:1,2,3..."
,
notes
=
""
)
*/
private
String
spilloverDirs
;
@ApiModelProperty
(
value
=
"是否拥堵:0否;1是"
,
notes
=
""
)
/** 路口拥堵方向:1,2,3... */
private
Integer
isCongestion
;
@ApiModelProperty
(
value
=
"路口拥堵方向:1,2,3..."
,
notes
=
""
)
/**
private
String
congestionDirs
;
* 失衡指数
/** 交通流量(辆) */
*/
@ApiModelProperty
(
value
=
"交通流量(辆)"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"失衡指数"
,
notes
=
""
)
private
Integer
flow
;
private
Double
unbalanceIndex
;
/** 交通流率/h */
/**
@ApiModelProperty
(
value
=
"交通流率/h"
,
notes
=
""
)
* 溢出指数
private
Double
flowRate
;
*/
/** 平均速度(km/h) */
@ApiModelProperty
(
value
=
"溢出指数"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
spilloverIndex
;
private
Double
speed
;
/**
/** 最大排队(米) */
* 拥堵指数
@ApiModelProperty
(
value
=
"最大排队(米)"
,
notes
=
""
)
*/
private
Double
queueLength
;
@ApiModelProperty
(
value
=
"拥堵指数"
,
notes
=
""
)
/** 停车次数(次) */
private
Double
congestionIndex
;
@ApiModelProperty
(
value
=
"停车次数(次)"
,
notes
=
""
)
/**
private
Double
stopTimes
;
* 路口失衡方向:1,2,3...
/** 延误时间(秒) */
*/
@ApiModelProperty
(
value
=
"延误时间(秒)"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"路口失衡方向:1,2,3..."
,
notes
=
""
)
private
Integer
delayTime
;
private
String
unbalanceDirs
;
/** 饱和度 */
/**
@ApiModelProperty
(
value
=
"饱和度"
,
notes
=
""
)
* 路口溢出方向:1,2,3...
private
Double
sturation
;
*/
/** 采集时间(10位时间戳) */
@ApiModelProperty
(
value
=
"路口溢出方向:1,2,3..."
,
notes
=
""
)
@ApiModelProperty
(
value
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
String
spilloverDirs
;
private
Integer
batchTime
;
/**
/** 创建时间 */
* 路口拥堵方向:1,2,3...
@ApiModelProperty
(
value
=
"创建时间"
,
notes
=
""
)
*/
private
Date
gmtCreate
;
@ApiModelProperty
(
value
=
"路口拥堵方向:1,2,3..."
,
notes
=
""
)
/** 修改时间 */
private
String
congestionDirs
;
@ApiModelProperty
(
value
=
"修改时间"
,
notes
=
""
)
/**
private
Date
gmtModified
;
* 交通流量(辆)
*/
@ApiModelProperty
(
name
=
"路口方向列表"
,
notes
=
""
)
@ApiModelProperty
(
value
=
"交通流量(辆)"
,
notes
=
""
)
List
<
CrossDirInfoDTO
>
dirList
;
private
Integer
flow
;
/**
@ApiModelProperty
(
name
=
"路口转向列表"
,
notes
=
""
)
* 交通流率/h
List
<
CrossTurnInfoDTO
>
turnList
;
*/
@ApiModelProperty
(
value
=
"交通流率/h"
,
notes
=
""
)
private
Double
flowRate
;
/**
* 平均速度(km/h)
*/
@ApiModelProperty
(
value
=
"平均速度(km/h)"
,
notes
=
""
)
private
Double
speed
;
/**
* 最大排队(米)
*/
@ApiModelProperty
(
value
=
"最大排队(米)"
,
notes
=
""
)
private
Double
queueLength
;
/**
* 停车次数(次)
*/
@ApiModelProperty
(
value
=
"停车次数(次)"
,
notes
=
""
)
private
Double
stopTimes
;
/**
* 延误时间(秒)
*/
@ApiModelProperty
(
value
=
"延误时间(秒)"
,
notes
=
""
)
private
Integer
delayTime
;
/**
* 饱和度
*/
@ApiModelProperty
(
value
=
"饱和度"
,
notes
=
""
)
private
Double
sturation
;
/**
* 采集时间(10位时间戳)
*/
@ApiModelProperty
(
value
=
"采集时间(10位时间戳)"
,
notes
=
""
)
private
Integer
batchTime
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/**
* 修改时间
*/
@ApiModelProperty
(
value
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
}
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