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
ef86feb1
Commit
ef86feb1
authored
Dec 06, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
b11f9c93
c21f74ae
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
161 additions
and
42 deletions
+161
-42
GreenwaveHistRestServer.java
...ava/net/wanji/opt/controller/GreenwaveHistRestServer.java
+27
-0
GreenwaveInducesHistController.java
...opt/controller/induce/GreenwaveInducesHistController.java
+5
-5
GreenwaveHistoryMapper.java
...java/net/wanji/opt/dao/mapper/GreenwaveHistoryMapper.java
+9
-0
GreenwaveHistProvider.java
...ain/java/net/wanji/opt/service/GreenwaveHistProvider.java
+9
-0
GreenwaveHistProviderImpl.java
...net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
+47
-23
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+18
-14
GreenWaveRunStateVO.java
...e/src/main/java/net/wanji/opt/vo/GreenWaveRunStateVO.java
+29
-0
GreenwaveHistMapper.xml
...service/src/main/resources/mapper/GreenwaveHistMapper.xml
+10
-0
GreenwaveInfoMapper.xml
wj-databus/src/main/resources/mapper/GreenwaveInfoMapper.xml
+7
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/GreenwaveHistRestServer.java
View file @
ef86feb1
...
...
@@ -16,6 +16,7 @@ import net.wanji.common.framework.rest.JsonViewObject;
import
net.wanji.common.framework.rest.impl.AbstractRestServerImpl
;
import
net.wanji.opt.entity.GreenwaveHist
;
import
net.wanji.opt.service.GreenwaveHistProvider
;
import
net.wanji.opt.vo.GreenWaveRunStateVO
;
import
net.wanji.opt.vo.GreenwaveCrossMetricsVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -49,6 +50,32 @@ public class GreenwaveHistRestServer {
private
GreenwaveHistProvider
greenwaveHistProvider
;
@GetMapping
(
"/findGreenWaveRunState"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"绿波干线运行状态查询"
,
notes
=
""
)
@ApiImplicitParams
({
@ApiImplicitParam
(
name
=
"greenId"
,
value
=
"绿波ID"
,
required
=
true
,
dataType
=
"Integer"
,
defaultValue
=
"1"
),
@ApiImplicitParam
(
name
=
"startTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2024-12-04 00:00:00"
),
@ApiImplicitParam
(
name
=
"endTime"
,
value
=
"截止时间,格式:yyyy-MM-dd HH:mm:ss"
,
required
=
false
,
dataType
=
"String"
,
defaultValue
=
"2024-12-05 00:00:00"
)
})
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
GreenWaveRunStateVO
.
class
,
responseHeaders
=
{
@ResponseHeader
(
name
=
"Content-Type"
,
description
=
"application/json"
)})
})
public
JsonViewObject
findGreenWaveRunState
(
Integer
greenId
,
@RequestParam
(
defaultValue
=
"2024-12-04 00:00:00"
)
String
startTime
,
@RequestParam
(
defaultValue
=
"2024-12-05 00:00:00"
)
String
endTime
)
{
JsonViewObject
jsonView
=
JsonViewObject
.
newInstance
();
long
start
=
System
.
currentTimeMillis
();
try
{
List
<
GreenWaveRunStateVO
>
list
=
greenwaveHistProvider
.
findGreenWaveRunState
(
greenId
,
startTime
,
endTime
);
jsonView
.
success
(
list
);
}
catch
(
DubboProviderException
e
)
{
jsonView
.
fail
(
I18nResourceBundle
.
getConstants
(
"GET_FAILED_MSG"
));
log
.
error
(
"{} getAll error"
,
this
.
getClass
().
getSimpleName
(),
e
);
}
return
jsonView
;
}
@GetMapping
(
"/findStatisticIndexTrend"
)
@ApiOperation
(
httpMethod
=
"GET"
,
value
=
"绿波历史数据-数据指标统计"
,
notes
=
""
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/induce/GreenwaveInducesHistController.java
View file @
ef86feb1
...
...
@@ -102,7 +102,7 @@ public class GreenwaveInducesHistController {
greenwaveDirDTO
.
setStrategyName
(
o
.
getStrategyName
());
greenwaveDirDTO
.
setMinSpeed
(
o
.
getMinSpeed
());
greenwaveDirDTO
.
setM
in
Speed
(
o
.
getMaxSpeed
());
greenwaveDirDTO
.
setM
ax
Speed
(
o
.
getMaxSpeed
());
if
(
Objects
.
nonNull
(
o
.
getControlOptTimes
())
&&
o
.
getControlOptTimes
().
split
(
"\\|"
).
length
>
0
)
{
try
{
String
startTime
=
DateUtil
.
format
(
DateUtil
.
parse
(
o
.
getControlOptTimes
().
split
(
"\\|"
)[
0
],
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_SECOND
),
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_TIME
);
...
...
@@ -117,13 +117,13 @@ public class GreenwaveInducesHistController {
}
//获取诱导屏列表
List
<
InduceDTO
>
induceDTOList
=
new
ArrayList
<>();
greenwaveInducesList
.
stream
().
filter
(
l
->
Objects
.
nonNull
(
l
.
getGreenId
())
&&
l
.
getGreenId
().
equals
(
o
.
getGreenId
())).
forEach
(
n
->
{
greenwaveInducesList
.
stream
().
filter
(
l
->
Objects
.
nonNull
(
l
.
getGreenId
())
&&
l
.
getGreenId
().
equals
(
o
.
getGreenId
())
&&
Objects
.
nonNull
(
l
.
getDir
())
&&
l
.
getDir
().
equals
(
o
.
getDir
())
).
forEach
(
n
->
{
InduceDTO
induceDTO
=
new
InduceDTO
();
induceDTO
.
setId
(
n
.
getId
());
induceDTO
.
setEquipCode
(
n
.
getEquipCode
());
induceDTO
.
setStatus
(
o
.
getStatus
());
//获取屏幕的设备信息
List
<
DeviceInduces
>
deviceInduces
=
deviceInducesList
.
stream
().
filter
(
m
->
Objects
.
nonNull
(
m
.
getEquipCode
())
&&
m
.
getEquipCode
().
equals
(
n
.
getEquipCode
())).
collect
(
Collectors
.
toList
());
// 过滤条件// 收集结果
List
<
DeviceInduces
>
deviceInduces
=
deviceInducesList
.
stream
().
filter
(
m
->
Objects
.
nonNull
(
m
.
getEquipCode
())
&&
m
.
getEquipCode
().
equals
(
n
.
getEquipCode
())
).
collect
(
Collectors
.
toList
());
// 过滤条件// 收集结果
if
(
Objects
.
nonNull
(
deviceInduces
)
&&
deviceInduces
.
size
()
>
0
)
{
induceDTO
.
setEquipName
(
deviceInduces
.
get
(
0
).
getEquipName
());
induceDTO
.
setRidDir
(
n
.
getDir
());
//
...
...
@@ -195,7 +195,7 @@ public class GreenwaveInducesHistController {
greenwaveDirDTO
.
setStrategyId
(
o
.
getStrategyId
());
greenwaveDirDTO
.
setStrategyName
(
o
.
getStrategyName
());
greenwaveDirDTO
.
setMinSpeed
(
o
.
getMinSpeed
());
greenwaveDirDTO
.
setM
in
Speed
(
o
.
getMaxSpeed
());
greenwaveDirDTO
.
setM
ax
Speed
(
o
.
getMaxSpeed
());
if
(
Objects
.
nonNull
(
o
.
getControlOptTimes
())
&&
o
.
getControlOptTimes
().
split
(
"\\|"
).
length
>
0
)
{
try
{
String
startTime
=
DateUtil
.
format
(
DateUtil
.
parse
(
o
.
getControlOptTimes
().
split
(
"\\|"
)[
0
],
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_SECOND
),
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_TIME
);
...
...
@@ -210,7 +210,7 @@ public class GreenwaveInducesHistController {
}
//获取诱导屏列表
List
<
InduceDTO
>
induceDTOList
=
new
ArrayList
<>();
greenwaveInducesList
.
stream
().
filter
(
l
->
Objects
.
nonNull
(
l
.
getGreenId
())
&&
l
.
getGreenId
().
equals
(
o
.
getGreenId
())).
forEach
(
n
->
{
greenwaveInducesList
.
stream
().
filter
(
l
->
Objects
.
nonNull
(
l
.
getGreenId
())
&&
l
.
getGreenId
().
equals
(
o
.
getGreenId
())
&&
Objects
.
nonNull
(
l
.
getDir
())
&&
l
.
getDir
().
equals
(
o
.
getDir
())
).
forEach
(
n
->
{
InduceDTO
induceDTO
=
new
InduceDTO
();
induceDTO
.
setId
(
n
.
getId
());
induceDTO
.
setEquipCode
(
n
.
getEquipCode
());
...
...
signal-optimize-service/src/main/java/net/wanji/opt/dao/mapper/GreenwaveHistoryMapper.java
View file @
ef86feb1
...
...
@@ -5,6 +5,8 @@ import net.wanji.common.framework.mapper.BaseInterfaceMapper;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.opt.entity.GreenwaveHist
;
import
net.wanji.opt.vo.GreenWaveRunStateVO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -53,5 +55,12 @@ public interface GreenwaveHistoryMapper extends BaseInterfaceMapper<GreenwaveHis
*/
List
<
CrossDataHistPO
>
findGreenWaveCrossIndex
(
Map
<
String
,
Object
>
params
);
/**
* 干线运行状态查询
* @param params
* @return
*/
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Map
<
String
,
Object
>
params
);
}
signal-optimize-service/src/main/java/net/wanji/opt/service/GreenwaveHistProvider.java
View file @
ef86feb1
...
...
@@ -5,6 +5,7 @@ import net.wanji.common.framework.dubbointerface.BaseDubboInterface;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.databus.po.CrossDirDataHistPO
;
import
net.wanji.opt.entity.GreenwaveHist
;
import
net.wanji.opt.vo.GreenWaveRunStateVO
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -70,4 +71,12 @@ public interface GreenwaveHistProvider extends BaseDubboInterface<GreenwaveHist>
*/
JSONObject
findGreenWaveCrossIndex
(
String
crossId
,
String
startTime
,
String
endTime
,
String
groupType
)
throws
DubboProviderException
;
/**
* 干线运行状态查询
* @param greenId
* @param startTime
* @param endTime
* @return
*/
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
startTime
,
String
endTime
)
throws
DubboProviderException
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
View file @
ef86feb1
...
...
@@ -12,6 +12,7 @@ import net.wanji.databus.po.CrossDirDataHistPO;
import
net.wanji.opt.dao.mapper.GreenwaveHistoryMapper
;
import
net.wanji.opt.entity.GreenwaveHist
;
import
net.wanji.opt.service.GreenwaveHistProvider
;
import
net.wanji.opt.vo.GreenWaveRunStateVO
;
import
org.apache.dubbo.config.annotation.DubboService
;
import
org.springframework.stereotype.Component
;
...
...
@@ -103,23 +104,23 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
@Override
public
List
<
Map
<
String
,
Object
>>
findGreenCross
(
Integer
greenId
)
throws
DubboProviderException
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"greenId"
,
greenId
);
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"greenId"
,
greenId
);
List
<
Map
<
String
,
Object
>>
list
=
greenwaveHistoryMapper
.
findGreenCross
(
params
);
String
dirs
=
list
.
stream
().
map
(
o
->
o
.
get
(
"inDir"
).
toString
()).
distinct
().
collect
(
Collectors
.
joining
(
","
));
List
<
Map
<
String
,
Object
>>
list
=
greenwaveHistoryMapper
.
findGreenCross
(
params
);
String
dirs
=
list
.
stream
().
map
(
o
->
o
.
get
(
"inDir"
).
toString
()).
distinct
().
collect
(
Collectors
.
joining
(
","
));
return
list
;
return
list
;
}
@Override
public
JSONObject
findUnCoordinateCrossIndex
(
String
crossId
,
String
greenDir
,
String
startTime
,
String
endTime
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"greenDir"
,
greenDir
);
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"greenDir"
,
greenDir
);
List
<
GreenwaveHist
>
list
=
greenwaveHistoryMapper
.
findUnCoordinateCrossIndex
(
params
);
...
...
@@ -166,12 +167,12 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
}
@Override
public
JSONObject
findGreenWaveCrossDirIndex
(
String
crossId
,
String
startTime
,
String
endTime
,
String
groupType
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"groupType"
,
groupType
);
public
JSONObject
findGreenWaveCrossDirIndex
(
String
crossId
,
String
startTime
,
String
endTime
,
String
groupType
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"groupType"
,
groupType
);
List
<
CrossDirDataHistPO
>
list
=
greenwaveHistoryMapper
.
findGreenWaveCrossDirIndex
(
params
);
...
...
@@ -218,14 +219,13 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
}
@Override
public
JSONObject
findGreenWaveCrossIndex
(
String
crossId
,
String
startTime
,
String
endTime
,
String
groupType
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"groupType"
,
groupType
);
public
JSONObject
findGreenWaveCrossIndex
(
String
crossId
,
String
startTime
,
String
endTime
,
String
groupType
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"crossId"
,
crossId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"groupType"
,
groupType
);
List
<
CrossDataHistPO
>
list
=
greenwaveHistoryMapper
.
findGreenWaveCrossIndex
(
params
);
...
...
@@ -246,4 +246,28 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
return
jsonObject
;
}
@Override
public
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
startTime
,
String
endTime
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"greenId"
,
greenId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
int
[]
stateList
=
new
int
[]{
1
,
2
,
3
};
List
<
GreenWaveRunStateVO
>
list
=
greenwaveHistoryMapper
.
findGreenWaveRunState
(
params
);
Map
<
Integer
,
GreenWaveRunStateVO
>
groupList
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
o
->
o
.
getState
(),
o
->
o
));
for
(
int
state
:
stateList
)
{
if
(!
groupList
.
containsKey
(
state
))
{
GreenWaveRunStateVO
tmp
=
new
GreenWaveRunStateVO
();
tmp
.
setState
(
state
);
tmp
.
setGreenId
(
greenId
);
list
.
add
(
tmp
);
}
}
return
list
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
View file @
ef86feb1
package
net
.
wanji
.
opt
.
task
;
import
com.alibaba.druid.support.json.JSONUtils
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.fasterxml.jackson.core.JsonProcessingException
;
import
com.fasterxml.jackson.core.type.TypeReference
;
...
...
@@ -95,25 +96,27 @@ public class InducesMonitorTask {
* #绿波调度计划扫描周期
* 5 分钟 300000
*/
@Scheduled
(
fixedRate
=
30000
0
)
@Scheduled
(
fixedRate
=
30000
)
public
void
refresh
()
throws
Exception
{
long
start
=
System
.
currentTimeMillis
();
AtomicLong
synCount
=
new
AtomicLong
();
try
{
log
.
info
(
"每5分钟刷新绿波优化下发数据..................."
);
List
<
GreenwaveInfoPO
>
greenwaveInfoPOList
=
greenwaveInfoMapper
.
selectAll
();
List
<
GreenwaveInducesHist
>
greenwaveInducesHistss
=
greenwaveInducesHistService
.
list
();
for
(
GreenwaveInfoPO
greenwaveInfoPO
:
greenwaveInfoPOList
)
{
AtomicBoolean
flag
=
new
AtomicBoolean
(
false
);
//是否已发布优化
AtomicReference
<
Integer
>
strategyId
=
new
AtomicReference
<
Integer
>(
0
);
//1、查询所有绿波带路口信息,获取路口下的绿波策略计划
List
<
GreenwaveCrossPO
>
greenwaveCrossList
=
greenwaveCrossMapper
.
selectByGreenwaveId
(
greenwaveInfoPO
.
getId
());
greenwaveCrossList
.
stream
().
forEach
(
o
->
{
//System.out.println("绿波路口--->"+
o.getGreenwaveName
()+"=="+o.getCrossId());
//System.out.println("绿波路口--->"+
greenwaveInfoPO.getId
()+"=="+o.getCrossId());
//创建路口策略列表
List
<
StrategyPlanInfoEntity
>
strategyPlanInfoEntityList
=
strategyPlanInfoMapper
.
selectByCrossId
(
o
.
getCrossId
());
//strategyPlanInfoEntityList.stream().filter(x->Objects.nonNull(x.getCrossId()) && x.getCrossId().equals(o.getCrossId()) ).forEach(x->
for
(
StrategyPlanInfoEntity
strategyPlanInfoEntity
:
strategyPlanInfoEntityList
)
{
//System.out.println("策略计划--->"+x.getCrossId()+"=="+x
.getPlanDetails());
System
.
out
.
println
(
"策略计划--->"
+
greenwaveInfoPO
.
getId
()+
"=="
+
strategyPlanInfoEntity
.
getPlanDetails
());
//2、检查绿波时段,判断是否在绿波时段内,如果不在,则判断是否执行过上屏操作,如果执行过,则调用下屏服务(此出屏幕自动处理,无需逻辑)
//[{"dailyPlanId":1,"weeks":[1,2,3,4,5]}]
List
<
StrategyControlDetailList
.
ExecutePlan
.
PlanDetail
>
planDetails
=
new
ArrayList
<>();
...
...
@@ -151,8 +154,7 @@ public class InducesMonitorTask {
// 判断当前时间是否在范围内
if
(
LocalTime
.
now
().
isAfter
(
startTime
)
&&
LocalTime
.
now
().
isBefore
(
endTime
))
{
System
.
out
.
println
(
"当前时间在范围内: "
+
LocalTime
.
now
());
//3、如果在绿波时段内,未上屏,则获取固定配时绿波信息
//4、获取优化绿波方案,如果不存在,则执行固定绿波方案
//System.out.println("绿波路口--->"+greenwaveInfoPO.getId()+"=="+o.getCrossId());
flag
.
set
(
true
);
strategyId
.
set
(
p
.
getDailyPlanId
());
}
...
...
@@ -164,19 +166,21 @@ public class InducesMonitorTask {
}
}
});
//3、如果在绿波时段内,未上屏,则获取固定配时绿波信息
//4、获取优化绿波方案,如果不存在,则执行固定绿波方案
//如果在绿波时段内,未上屏,则获取固定配时绿波信息
if
(
flag
.
get
())
{
List
<
StrategyGreenOptHistEntity
>
strategyGreenOptHistEntitiesList
=
strategyGreenOptHistMapper
.
selectByGreenId
(
String
.
valueOf
(
greenwaveInfoPO
.
getId
())).
stream
().
distinct
().
collect
(
Collectors
.
toList
());
if
(
Objects
.
nonNull
(
strategyGreenOptHistEntitiesList
))
{
for
(
StrategyGreenOptHistEntity
greenOptHistEntity
:
strategyGreenOptHistEntitiesList
)
{
LambdaQueryWrapper
<
GreenwaveInducesHist
>
greenwaveInducesHistQueryWrapper
=
new
LambdaQueryWrapper
<>();
greenwaveInducesHistQueryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
greenwaveInfoPO
.
getId
());
greenwaveInducesHistQueryWrapper
.
eq
(
GreenwaveInducesHist:
:
getDir
,
getDir
(
greenOptHistEntity
.
getDir
()));
List
<
GreenwaveInducesHist
>
greenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
greenwaveInducesHistQueryWrapper
);
//
LambdaQueryWrapper<GreenwaveInducesHist> greenwaveInducesHistQueryWrapper = new LambdaQueryWrapper<>();
//
greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getGreenId, greenwaveInfoPO.getId());
//
greenwaveInducesHistQueryWrapper.eq(GreenwaveInducesHist::getDir, getDir(greenOptHistEntity.getDir()));
List
<
GreenwaveInducesHist
>
greenwaveInducesHistList
=
greenwaveInducesHistss
.
stream
().
filter
(
g
->
g
.
getGreenId
().
equals
(
greenwaveInfoPO
.
getId
())
&&
g
.
getDir
().
equals
(
getDir
(
greenOptHistEntity
.
getDir
()))).
collect
(
Collectors
.
toList
()
);
GreenwaveInducesHist
greenwaveInducesHist
=
null
;
if
(
Objects
.
isNull
(
greenwaveInducesHistList
)
||
greenwaveInducesHistList
.
size
()<
1
)
{
greenwaveInducesHist
=
new
GreenwaveInducesHist
();
greenwaveInducesHist
.
setCreateTime
(
new
Dat
e
());
greenwaveInducesHist
.
setCreateTime
(
greenOptHistEntity
.
getCreateTim
e
());
greenwaveInducesHist
.
setGreenId
(
greenwaveInfoPO
.
getId
());
greenwaveInducesHist
.
setDir
(
getDir
(
greenOptHistEntity
.
getDir
()));
}
else
{
...
...
@@ -232,21 +236,21 @@ public class InducesMonitorTask {
}
}
greenwaveInducesHist
.
setStatus
(
1
);
greenwaveInducesHist
.
setModifyTime
(
greenOptHistEntity
.
getCreateTime
());
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
TemplateException
e
)
{
log
.
info
(
"发送上屏信息异常"
+
e
.
getMessage
());
}
greenwaveInducesHist
.
setModifyTime
(
greenOptHistEntity
.
getCreateTime
());
greenwaveInducesHistService
.
saveOrUpdate
(
greenwaveInducesHist
);
synCount
.
getAndIncrement
();
log
.
info
(
"同步绿波状态信息成功->"
+
greenwaveInfoPO
.
getName
()+
green
OptHistEntity
.
getDir
());
log
.
info
(
"同步绿波状态信息成功->"
+
greenwaveInfoPO
.
getName
()+
green
waveInducesHist
.
getDir
());
}
}
}
//如果没有绿波方案则调用下屏服务
if
(!
flag
.
get
())
{
else
{
LambdaQueryWrapper
<
GreenwaveInducesHist
>
greenwaveInducesHistQueryWrapper
=
new
LambdaQueryWrapper
<>();
greenwaveInducesHistQueryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
greenwaveInfoPO
.
getId
());
List
<
GreenwaveInducesHist
>
greenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
greenwaveInducesHistQueryWrapper
);
...
...
@@ -281,7 +285,7 @@ public class InducesMonitorTask {
n
.
setStatus
(
0
);
n
.
setModifyTime
(
new
Date
());
greenwaveInducesHistService
.
saveOrUpdate
(
n
);
log
.
info
(
"同步绿波状态信息(下屏)->"
+
greenwaveInfoPO
.
getName
());
log
.
info
(
"同步绿波状态信息(下屏)->"
+
greenwaveInfoPO
.
getName
()
+
"####"
+
n
.
getDir
()
);
synCount
.
getAndIncrement
();
});
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenWaveRunStateVO.java
0 → 100644
View file @
ef86feb1
package
net
.
wanji
.
opt
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.models.auth.In
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
net.wanji.databus.vo.AbnormalCrossListVO
;
import
java.util.List
;
@NoArgsConstructor
@Data
@ApiModel
(
value
=
"GreenWaveRunStateVO"
,
description
=
"干线运行状态"
)
public
class
GreenWaveRunStateVO
{
@ApiModelProperty
(
value
=
"干线ID"
)
private
Integer
greenId
;
@ApiModelProperty
(
value
=
"干线运行状态 1:畅通 2:缓行 3:拥堵"
)
private
int
state
;
@ApiModelProperty
(
value
=
"状态持续时长,单位秒"
)
private
int
duration
;
@ApiModelProperty
(
value
=
"分析时段总时长,单位秒"
)
private
int
totalTime
;
}
signal-optimize-service/src/main/resources/mapper/GreenwaveHistMapper.xml
View file @
ef86feb1
...
...
@@ -171,6 +171,16 @@
) t
GROUP BY t.cross_id,unit_time
</select>
<!-- 查看干线拥堵运行状态 -->
<select
id=
"findGreenWaveRunState"
resultType=
"net.wanji.opt.vo.GreenWaveRunStateVO"
>
select type as state,
SUM(TIMESTAMPDIFF(SECOND,start_time, end_time)) duration,
TIMESTAMPDIFF(SECOND,#{startDate}, #{endDate}) total_time
from t_event_info t
where
<!-- type in (705,706) and -->
start_time > #{startDate}
and start_time
<
#{endDate}
GROUP BY type
</select>
<!--新增操作 -->
<insert
id=
"save"
parameterType=
"net.wanji.opt.entity.GreenwaveHist"
>
...
...
wj-databus/src/main/resources/mapper/GreenwaveInfoMapper.xml
View file @
ef86feb1
...
...
@@ -52,9 +52,16 @@
<select
id=
"findByMap"
resultType=
"net.wanji.databus.dao.entity.GreenwaveInfoPO"
parameterType=
"java.util.Map"
>
SELECT
<include
refid=
"Base_Column_List"
></include>
FROM t_greenwave_info WHERE 1=1
<include
refid=
"sql_query"
/>
<if
test=
"keyword != null and keyword != ''"
>
AND ( locate(#{keyword,jdbcType=VARCHAR}, `name`)>0 )
</if>
</select>
<sql
id=
"sql_query"
>
<if
test=
"greenId != null "
>
<![CDATA[ and `id` = #{greenId} ]]>
</if>
</sql>
</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