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
2c9b3651
Commit
2c9b3651
authored
Dec 08, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
3d1cfd73
b36ca044
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
190 additions
and
108 deletions
+190
-108
CrossDirChangeEnum.java
...n/java/net/wanji/web/common/enums/CrossDirChangeEnum.java
+46
-0
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+26
-46
EventAbnormalEnum.java
...c/main/java/net/wanji/opt/constant/EventAbnormalEnum.java
+50
-0
GreenwaveHistRestServer.java
...ava/net/wanji/opt/controller/GreenwaveHistRestServer.java
+3
-2
RunningEvaluateController.java
...a/net/wanji/opt/controller/RunningEvaluateController.java
+7
-1
GreenwaveHistProvider.java
...ain/java/net/wanji/opt/service/GreenwaveHistProvider.java
+1
-1
RunningEvaluateService.java
...in/java/net/wanji/opt/service/RunningEvaluateService.java
+2
-1
GreenwaveHistProviderImpl.java
...net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
+11
-2
RunningEvaluateServiceImpl.java
...et/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
+32
-51
GreenWaveRunStateVO.java
...e/src/main/java/net/wanji/opt/vo/GreenWaveRunStateVO.java
+4
-1
GreenwaveHistMapper.xml
...service/src/main/resources/mapper/GreenwaveHistMapper.xml
+8
-3
No files found.
signal-control-service/src/main/java/net/wanji/web/common/enums/CrossDirChangeEnum.java
0 → 100644
View file @
2c9b3651
package
net
.
wanji
.
web
.
common
.
enums
;
import
lombok.Getter
;
import
lombok.Setter
;
/**
* @author zhouleilei
* @date 2024/12/7 22:03
*/
public
enum
CrossDirChangeEnum
{
ONE
(
1
,
5
,
"北"
),
TWO
(
2
,
6
,
"东北"
),
THREE
(
3
,
7
,
"东"
),
FOUR
(
4
,
8
,
"东南"
),
FIVE
(
5
,
1
,
"南"
),
SIX
(
6
,
2
,
"西南"
),
SEVEN
(
7
,
3
,
"西"
),
EIGHT
(
8
,
4
,
"西北"
);
@Getter
@Setter
private
final
int
code
;
@Getter
@Setter
private
final
int
dir
;
@Getter
@Setter
private
final
String
msg
;
CrossDirChangeEnum
(
int
code
,
int
dir
,
String
msg
)
{
this
.
code
=
code
;
this
.
dir
=
dir
;
this
.
msg
=
msg
;
}
public
static
CrossDirChangeEnum
getMsgByCode
(
int
code
)
{
for
(
CrossDirChangeEnum
value
:
CrossDirChangeEnum
.
values
())
{
if
(
value
.
code
==
code
)
{
return
value
;
}
}
return
null
;
}
}
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
2c9b3651
...
...
@@ -15,10 +15,10 @@ import net.wanji.databus.dao.entity.*;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.BaseCrossLightsPO
;
import
net.wanji.databus.po.CrossSchemeInfoPO
;
import
net.wanji.databus.po.SaveToUtcPO
;
import
net.wanji.databus.vo.*
;
import
net.wanji.feign.service.UtcFeignClients
;
import
net.wanji.web.common.enums.CrossDirChangeEnum
;
import
net.wanji.web.dto.*
;
import
net.wanji.web.po.RingPhasePO
;
import
net.wanji.web.service.FeignProxyService
;
...
...
@@ -642,53 +642,33 @@ public class PlanSendServiceImpl implements PlanSendService {
return
ringPhasePO
;
}
int
schemeId
=
Integer
.
valueOf
(
content
.
getSchemeNo
());
List
<
CrossSchemeInfoPO
>
crossSchemeInfoPOS
=
baseCrossSchemeMapper
.
selectSchemeInfoByCrossIdAndSchemeId
(
crossIdAndTimeDTO
.
getCrossId
(),
schemeId
);
if
(
ObjectUtil
.
isNotEmpty
(
crossSchemeInfoPOS
))
{
//根据相位号分组
LinkedHashMap
<
String
,
List
<
CrossSchemeInfoPO
>>
collect
=
crossSchemeInfoPOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossSchemeInfoPO:
:
getPhaseNo
,
LinkedHashMap:
:
new
,
Collectors
.
toList
()));
Set
<
String
>
set
=
collect
.
keySet
();
for
(
String
s
:
set
)
{
List
<
CrossSchemeInfoPO
>
infoPOS
=
collect
.
get
(
s
);
CrossSchemeInfoPO
crossSchemeInfoPO
=
infoPOS
.
get
(
0
);
SaveSchemeConfigDTO
.
PhaseListElement
phaseListElement
=
new
SaveSchemeConfigDTO
.
PhaseListElement
();
phaseListElement
.
setPhaseId
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getPhaseId
()));
phaseListElement
.
setPhaseNo
(
crossSchemeInfoPO
.
getPhaseNo
());
phaseListElement
.
setGreenTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getGreenTime
()));
phaseListElement
.
setYellowTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getYellowTime
()));
phaseListElement
.
setRedTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getRedTime
()));
List
<
SaveSchemeConfigDTO
.
DirListElement
>
dirListElements
=
new
ArrayList
<>();
Map
<
String
,
List
<
CrossSchemeInfoPO
>>
dircollect
=
infoPOS
.
stream
().
filter
(
x
->
x
.
getDir
()
!=
null
).
collect
(
Collectors
.
groupingBy
(
CrossSchemeInfoPO:
:
getDir
));
if
(
ObjectUtil
.
isNotEmpty
(
dircollect
))
{
Set
<
String
>
dirSet
=
dircollect
.
keySet
();
for
(
String
string
:
dirSet
)
{
List
<
CrossSchemeInfoPO
>
crossSchemeInfoPOS1
=
dircollect
.
get
(
string
);
CrossSchemeInfoPO
po
=
crossSchemeInfoPOS1
.
get
(
0
);
SaveSchemeConfigDTO
.
DirListElement
dirListElement
=
new
SaveSchemeConfigDTO
.
DirListElement
();
dirListElement
.
setDir
(
Integer
.
valueOf
(
po
.
getDir
()));
List
<
SaveSchemeConfigDTO
.
LaneListElement
>
laneList
=
new
ArrayList
<>();
Map
<
String
,
List
<
CrossSchemeInfoPO
>>
laneCollect
=
crossSchemeInfoPOS1
.
stream
().
filter
(
x
->
x
.
getLandId
()
!=
null
).
collect
(
Collectors
.
groupingBy
(
CrossSchemeInfoPO:
:
getLandId
));
if
(
ObjectUtil
.
isNotEmpty
(
laneCollect
))
{
Set
<
String
>
stringSet
=
laneCollect
.
keySet
();
for
(
String
s1
:
stringSet
)
{
List
<
CrossSchemeInfoPO
>
crossSchemeInfoPOS2
=
laneCollect
.
get
(
s1
);
CrossSchemeInfoPO
schemeInfoPO
=
crossSchemeInfoPOS2
.
get
(
0
);
SaveSchemeConfigDTO
.
LaneListElement
laneListElement
=
new
SaveSchemeConfigDTO
.
LaneListElement
();
laneListElement
.
setDirection
(
Integer
.
valueOf
(
schemeInfoPO
.
getDir
()));
laneListElement
.
setLaneType
(
Integer
.
valueOf
(
schemeInfoPO
.
getLaneType
()));
laneListElement
.
setLaneId
(
schemeInfoPO
.
getLandId
());
laneListElement
.
setLightsId
(
Integer
.
valueOf
(
schemeInfoPO
.
getLightsId
()));
laneList
.
add
(
laneListElement
);
}
}
dirListElement
.
setLaneList
(
laneList
);
dirListElements
.
add
(
dirListElement
);
}
}
phaseListElement
.
setDirList
(
dirListElements
);
oriPhaseList
.
add
(
phaseListElement
);
}
//黃闪
if
(
schemeId
==
85
){
return
ringPhasePO
;
}
CrossIdBO
crossIdBO
=
new
CrossIdBO
();
crossIdBO
.
setCrossId
(
crossIdAndTimeDTO
.
getCrossId
());
SaveSchemeConfigDTO
saveSchemeConfigDTO
=
schemeConfigServiceImpl
.
listSchemeConfig
(
crossIdBO
);
List
<
SaveSchemeConfigDTO
.
PhaseScheme
>
phaseSchemeList
=
saveSchemeConfigDTO
.
getPhaseSchemeList
();
if
(
ObjectUtil
.
isEmpty
(
phaseSchemeList
)){
return
ringPhasePO
;
}
List
<
SaveSchemeConfigDTO
.
PhaseScheme
>
collected
=
phaseSchemeList
.
stream
().
filter
(
x
->
x
.
getSchemeNo
().
equals
(
content
.
getSchemeNo
())).
collect
(
Collectors
.
toList
());
SaveSchemeConfigDTO
.
PhaseScheme
phaseScheme
=
collected
.
get
(
0
);
SaveSchemeConfigDTO
.
RingListElement
ringListElement
=
phaseScheme
.
getRingList
().
get
(
0
);
List
<
SaveSchemeConfigDTO
.
GroupListElement
>
groupList
=
ringListElement
.
getGroupList
();
SaveSchemeConfigDTO
.
GroupListElement
groupListElement
=
groupList
.
get
(
0
);
oriPhaseList
=
groupListElement
.
getPhaseList
();
if
(
ObjectUtil
.
isNotEmpty
(
oriPhaseList
))
{
//修改方向
oriPhaseList
.
forEach
(
x
->
{
List
<
SaveSchemeConfigDTO
.
DirListElement
>
dirList
=
x
.
getDirList
();
if
(
ObjectUtil
.
isNotNull
(
dirList
)){
dirList
.
forEach
(
dir
->
{
dir
.
setDir
(
CrossDirChangeEnum
.
getMsgByCode
(
dir
.
getDir
()).
getDir
());
});
}
});
CrossSchemeRingsDTO
crossSchemeRingsDTO
=
new
CrossSchemeRingsDTO
();
crossSchemeRingsDTO
.
setCrossId
(
crossIdAndTimeDTO
.
getCrossId
());
crossSchemeRingsDTO
.
setPattern
(
String
.
valueOf
(
schemeId
));
...
...
signal-optimize-service/src/main/java/net/wanji/opt/constant/EventAbnormalEnum.java
0 → 100644
View file @
2c9b3651
package
net
.
wanji
.
opt
.
constant
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @ClassName EventAbnormalEnum
* @Description
* @Date 2021/4/15 11:13
* @Version 1.0
*/
public
enum
EventAbnormalEnum
{
CROSS_PHASE_EMPTY
(
701
,
"相位空放"
),
CROSS_UNBALANCE
(
702
,
"路口失衡"
),
CROSS_OVERFLOW
(
703
,
"路口溢出"
),
CROSS_DEADLOCK
(
704
,
"路口死锁"
),
GREEN_WAVE_SLOW_RUN
(
705
,
"干线-缓行"
),
GREEN_WAVE_CONGEST
(
706
,
"干线-拥堵"
),
;
public
final
static
double
step_default
=
1
;
Integer
type
;
String
desc
;
EventAbnormalEnum
(
Integer
type
,
String
desc
)
{
this
.
type
=
type
;
this
.
desc
=
desc
;
}
public
Integer
getType
(){
return
type
;
}
public
String
getDesc
()
{
return
desc
;
}
public
static
EventAbnormalEnum
getByType
(
String
type
){
for
(
EventAbnormalEnum
abnormalEnum
:
EventAbnormalEnum
.
values
())
{
if
(
abnormalEnum
.
getType
().
equals
(
type
)){
return
abnormalEnum
;
}
}
return
null
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/controller/GreenwaveHistRestServer.java
View file @
2c9b3651
...
...
@@ -62,11 +62,12 @@ public class GreenwaveHistRestServer {
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
)
{
@RequestParam
(
defaultValue
=
"2024-12-05 00:00:00"
)
String
endTime
,
@RequestParam
(
defaultValue
=
"705,706"
)
String
eventType
)
{
JsonViewObject
jsonView
=
JsonViewObject
.
newInstance
();
long
start
=
System
.
currentTimeMillis
();
try
{
List
<
GreenWaveRunStateVO
>
list
=
greenwaveHistProvider
.
findGreenWaveRunState
(
greenId
,
startTime
,
endTim
e
);
List
<
GreenWaveRunStateVO
>
list
=
greenwaveHistProvider
.
findGreenWaveRunState
(
greenId
,
null
,
startTime
,
endTime
,
eventTyp
e
);
jsonView
.
success
(
list
);
}
catch
(
DubboProviderException
e
)
{
jsonView
.
fail
(
I18nResourceBundle
.
getConstants
(
"GET_FAILED_MSG"
));
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/RunningEvaluateController.java
View file @
2c9b3651
...
...
@@ -4,6 +4,7 @@ import io.swagger.annotations.Api;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.bo.CrossIdAndStartEndDateBO
;
import
net.wanji.databus.bo.CrossIdBO
;
...
...
@@ -57,7 +58,12 @@ public class RunningEvaluateController {
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
RunningEvaluateCrossEvaluateVO
.
class
),
})
public
JsonViewObject
crossEvaluate
(
@RequestBody
CrossIdAndStartEndDateBO
bo
)
{
RunningEvaluateCrossEvaluateVO
res
=
runningEvaluateService
.
crossEvaluate
(
bo
);
RunningEvaluateCrossEvaluateVO
res
=
null
;
try
{
res
=
runningEvaluateService
.
crossEvaluate
(
bo
);
}
catch
(
DubboProviderException
e
)
{
e
.
printStackTrace
();
}
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/GreenwaveHistProvider.java
View file @
2c9b3651
...
...
@@ -78,5 +78,5 @@ public interface GreenwaveHistProvider extends BaseDubboInterface<GreenwaveHist>
* @param endTime
* @return
*/
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
startTime
,
String
endTim
e
)
throws
DubboProviderException
;
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
crossId
,
String
startTime
,
String
endTime
,
String
eventTyp
e
)
throws
DubboProviderException
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/RunningEvaluateService.java
View file @
2c9b3651
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.databus.bo.CrossIdAndStartEndDateBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.HeatMapBO
;
...
...
@@ -13,7 +14,7 @@ import java.util.List;
public
interface
RunningEvaluateService
{
List
<
RunningEvaluateCrossListVO
>
crossList
(
CrossNameBO
crossNameBO
);
RunningEvaluateCrossEvaluateVO
crossEvaluate
(
CrossIdAndStartEndDateBO
bo
);
RunningEvaluateCrossEvaluateVO
crossEvaluate
(
CrossIdAndStartEndDateBO
bo
)
throws
DubboProviderException
;
RunningEvaluateStatusVO
congestionStatus
(
CrossIdAndStartEndDateBO
bo
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/GreenwaveHistProviderImpl.java
View file @
2c9b3651
...
...
@@ -13,15 +13,18 @@ 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.commons.lang3.StringUtils
;
import
org.apache.dubbo.config.annotation.DubboService
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.TreeMap
;
import
java.util.TreeSet
;
...
...
@@ -247,13 +250,19 @@ public class GreenwaveHistProviderImpl extends BaseDubboInterfaceImpl<GreenwaveH
}
@Override
public
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
startTime
,
String
endTim
e
)
{
public
List
<
GreenWaveRunStateVO
>
findGreenWaveRunState
(
Integer
greenId
,
String
crossId
,
String
startTime
,
String
endTime
,
String
eventTyp
e
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"greenId"
,
greenId
);
params
.
put
(
"startDate"
,
startTime
);
params
.
put
(
"endDate"
,
endTime
);
params
.
put
(
"crossId"
,
crossId
);
if
(
Objects
.
nonNull
(
eventType
))
{
String
[]
arr
=
StringUtils
.
split
(
eventType
,
","
);
params
.
put
(
"eventTypeList"
,
Arrays
.
asList
(
arr
));
}
int
[]
stateList
=
new
int
[]{
1
,
2
,
3
};
int
[]
stateList
=
new
int
[]{
704
,
705
};
List
<
GreenWaveRunStateVO
>
list
=
greenwaveHistoryMapper
.
findGreenWaveRunState
(
params
);
Map
<
Integer
,
GreenWaveRunStateVO
>
groupList
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
o
->
o
.
getState
(),
o
->
o
));
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/RunningEvaluateServiceImpl.java
View file @
2c9b3651
...
...
@@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.CrossStatusEnum
;
import
net.wanji.common.enums.TurnConvertEnum
;
import
net.wanji.common.framework.exception.DubboProviderException
;
import
net.wanji.common.utils.tool.CrossUtil
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.common.utils.tool.TimeArrayUtil
;
...
...
@@ -26,7 +27,9 @@ import net.wanji.databus.vo.RunningEvaluateCrossListVO;
import
net.wanji.opt.bo.CrossNameBO
;
import
net.wanji.opt.bo.MetricsDetailBO
;
import
net.wanji.opt.common.KafkaConsumerUtil
;
import
net.wanji.opt.constant.EventAbnormalEnum
;
import
net.wanji.opt.dto.PhaseEmptyResult
;
import
net.wanji.opt.service.GreenwaveHistProvider
;
import
net.wanji.opt.service.RunningEvaluateService
;
import
net.wanji.opt.vo.*
;
import
org.jetbrains.annotations.NotNull
;
...
...
@@ -34,6 +37,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.text.DecimalFormat
;
...
...
@@ -75,6 +79,9 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
private
final
CrossTurnDataHistMapper
crossTurnDataHistMapper
;
private
final
CrossLaneDataHistMapper
crossLaneDataHistMapper
;
@Resource
private
GreenwaveHistProvider
greenwaveHistProvider
;
SimpleDateFormat
HOUR_SDF
=
new
SimpleDateFormat
(
"HH:mm"
);
SimpleDateFormat
DAY_SDF
=
new
SimpleDateFormat
(
"yyyy-MM-dd"
);
...
...
@@ -138,12 +145,18 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
}
@Override
public
RunningEvaluateCrossEvaluateVO
crossEvaluate
(
CrossIdAndStartEndDateBO
bo
)
{
public
RunningEvaluateCrossEvaluateVO
crossEvaluate
(
CrossIdAndStartEndDateBO
bo
)
throws
DubboProviderException
{
RunningEvaluateCrossEvaluateVO
vo
=
new
RunningEvaluateCrossEvaluateVO
();
String
crossId
=
bo
.
getCrossId
();
List
<
CrossDataHistPO
>
crossDataHistPOList
=
buildCrossDataHistPOList
(
bo
,
crossId
);
String
startTime
=
net
.
wanji
.
common
.
utils
.
tool
.
DateUtil
.
formatDate
(
bo
.
getStartDate
(),
"yyyy-MM-dd HH:mm:ss"
);
String
endTime
=
net
.
wanji
.
common
.
utils
.
tool
.
DateUtil
.
formatDate
(
bo
.
getEndDate
(),
"yyyy-MM-dd HH:mm:ss"
);
List
<
GreenWaveRunStateVO
>
runStateList
=
greenwaveHistProvider
.
findGreenWaveRunState
(
null
,
bo
.
getCrossId
(),
startTime
,
endTime
,
"701,702,703"
);
Map
<
Integer
,
GreenWaveRunStateVO
>
groupList
=
runStateList
.
stream
().
collect
(
Collectors
.
toMap
(
o
->
o
.
getState
(),
o
->
o
));
// 服务水平
double
sumA
=
crossDataHistPOList
.
stream
()
.
filter
(
po
->
isInTimeRange
(
po
.
getBatchTime
()))
...
...
@@ -160,63 +173,31 @@ public class RunningEvaluateServiceImpl implements RunningEvaluateService {
vo
.
setServiceLevel
(
serviceLevel
);
List
<
CrossDataHistPO
>
congestionEventList
=
buildCongestionEvents
(
crossDataHistPOList
);
// 获取拥堵事件集合
vo
.
setCongestionTimes
(
congestionEventList
.
size
());
int
congestionSum
=
congestionEventList
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
CrossDataHistPO:
:
getDuration
)
.
filter
(
Objects:
:
nonNull
)
.
mapToInt
(
Integer:
:
intValue
)
.
sum
();
vo
.
setCongestionSum
(
congestionSum
);
List
<
CrossDataHistPO
>
unbalanceEventList
=
buildUnbalanceEvents
(
crossDataHistPOList
);
// 获取失衡事件集合
vo
.
setUnbalanceTimes
(
unbalanceEventList
.
size
());
int
unbalanceSum
=
unbalanceEventList
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
CrossDataHistPO:
:
getDuration
)
.
filter
(
Objects:
:
nonNull
)
.
mapToInt
(
Integer:
:
intValue
)
.
sum
();
// List<CrossDataHistPO> congestionEventList = buildCongestionEvents(crossDataHistPOList); // 获取拥堵事件集合
// vo.setCongestionTimes(congestionEventList.size());
// int congestionSum = congestionEventList.stream()
// .filter(Objects::nonNull)
// .map(CrossDataHistPO::getDuration)
// .filter(Objects::nonNull)
// .mapToInt(Integer::intValue)
// .sum();
// vo.setCongestionSum(congestionSum);
vo
.
setUnbalanceTimes
(
groupList
.
get
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
()).
getCount
());
int
unbalanceSum
=
groupList
.
get
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_UNBALANCE
.
getType
()).
getDuration
();
vo
.
setUnbalanceSum
(
unbalanceSum
);
List
<
CrossDataHistPO
>
spilloverEventList
=
buildSpilloverEvents
(
crossDataHistPOList
);
// 获取溢出事件集合
vo
.
setSpilloverTimes
(
spilloverEventList
.
size
());
int
spilloverSum
=
spilloverEventList
.
stream
()
.
filter
(
Objects:
:
nonNull
)
.
map
(
CrossDataHistPO:
:
getDuration
)
.
filter
(
Objects:
:
nonNull
)
.
mapToInt
(
Integer:
:
intValue
)
.
sum
();
vo
.
setSpilloverTimes
(
groupList
.
get
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
()).
getCount
());
int
spilloverSum
=
groupList
.
get
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_OVERFLOW
.
getType
()).
getDuration
();
vo
.
setSpilloverSum
(
spilloverSum
);
// 相位空放指标
Date
startDate
=
bo
.
getStartDate
();
Date
endDate
=
bo
.
getEndDate
();
if
(
isZeros
(
endDate
))
{
endDate
=
DateUtil
.
offsetDay
(
endDate
,
1
);
// 包含最后一天
}
long
startTime
=
startDate
.
getTime
();
long
endTime
=
endDate
.
getTime
();
KafkaConsumerUtil
kafkaConsumerUtil
=
new
KafkaConsumerUtil
(
bootstrapServers
,
"empty-phase-evaluate"
);
List
<
PhaseEmptyResult
>
phaseEmptyResults
=
kafkaConsumerUtil
.
consumeEmptyPhaseForTimeRange
(
emptyPhaseTopic
,
0
,
startTime
,
endTime
);
int
emptyPhaseCount
=
(
int
)
phaseEmptyResults
.
stream
()
.
filter
(
result
->
result
!=
null
&&
crossId
.
equals
(
result
.
getCrossId
()))
.
count
();
int
emptyPhaseSum
=
phaseEmptyResults
.
stream
()
.
filter
(
result
->
result
!=
null
&&
crossId
.
equals
(
result
.
getCrossId
()))
.
map
(
PhaseEmptyResult:
:
getDuration
)
.
filter
(
Objects:
:
nonNull
)
.
mapToInt
(
Integer:
:
intValue
)
.
sum
();
int
emptyPhaseCount
=
groupList
.
get
(
EventAbnormalEnum
.
CROSS_PHASE_EMPTY
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_PHASE_EMPTY
.
getType
()).
getCount
();
int
emptyPhaseSum
=
groupList
.
get
(
EventAbnormalEnum
.
CROSS_PHASE_EMPTY
.
getType
())==
null
?
0
:
groupList
.
get
(
EventAbnormalEnum
.
CROSS_PHASE_EMPTY
.
getType
()).
getDuration
();
vo
.
setEmptyPhaseTimes
(
emptyPhaseCount
);
vo
.
setEmptyPhaseSum
(
emptyPhaseSum
);
Integer
schemeProblems
=
calcSchemeProblems
(
congestionEventList
,
unbalanceEventList
,
spilloverEventList
,
crossId
);
// 计算方案问题
vo
.
setSchemeProblems
(
schemeProblems
);
return
vo
;
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/GreenWaveRunStateVO.java
View file @
2c9b3651
...
...
@@ -17,12 +17,15 @@ public class GreenWaveRunStateVO {
@ApiModelProperty
(
value
=
"干线ID"
)
private
Integer
greenId
;
@ApiModelProperty
(
value
=
"干线运行状态
1:畅通 2:缓行 3:
拥堵"
)
@ApiModelProperty
(
value
=
"干线运行状态
701相位空放 702路口失衡 703路口溢出 704路口死锁 705干线-缓行 706干线-
拥堵"
)
private
int
state
;
@ApiModelProperty
(
value
=
"状态持续时长,单位秒"
)
private
int
duration
;
@ApiModelProperty
(
value
=
"状态发送次数"
)
private
int
count
;
@ApiModelProperty
(
value
=
"分析时段总时长,单位秒"
)
private
int
totalTime
;
...
...
signal-optimize-service/src/main/resources/mapper/GreenwaveHistMapper.xml
View file @
2c9b3651
...
...
@@ -173,12 +173,17 @@
</select>
<!-- 查看干线拥堵运行状态 -->
<select
id=
"findGreenWaveRunState"
resultType=
"net.wanji.opt.vo.GreenWaveRunStateVO"
>
select type as state,
select type as state,
count(*) count,
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}
where start_time > #{startDate} and start_time
<
#{endDate}
<if
test=
"eventTypeList!=null and eventTypeList.size>0"
>
and t.type in
<foreach
collection=
"eventTypeList"
item=
"item"
index=
"index"
open=
"("
close=
")"
separator=
","
>
#{item}
</foreach>
</if>
GROUP BY type
</select>
...
...
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