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
5d0b2c62
Commit
5d0b2c62
authored
Dec 07, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
e1feeee3
2fc0f812
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
105 additions
and
68 deletions
+105
-68
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+15
-15
GreenwaveInducesHistController.java
...opt/controller/induce/GreenwaveInducesHistController.java
+14
-12
DiagnoServiceImpl.java
...in/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
+23
-21
InduceSendServiceImpl.java
.../wanji/opt/service/induce/impl/InduceSendServiceImpl.java
+23
-18
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+13
-2
BaseCrossPhaseMapper.java
...va/net/wanji/databus/dao/mapper/BaseCrossPhaseMapper.java
+3
-0
BaseCrossPhaseMapper.xml
...atabus/src/main/resources/mapper/BaseCrossPhaseMapper.xml
+14
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
5d0b2c62
...
@@ -645,14 +645,14 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -645,14 +645,14 @@ public class PlanSendServiceImpl implements PlanSendService {
List
<
CrossSchemeInfoPO
>
crossSchemeInfoPOS
=
baseCrossSchemeMapper
.
selectSchemeInfoByCrossIdAndSchemeId
(
crossIdAndTimeDTO
.
getCrossId
(),
schemeId
);
List
<
CrossSchemeInfoPO
>
crossSchemeInfoPOS
=
baseCrossSchemeMapper
.
selectSchemeInfoByCrossIdAndSchemeId
(
crossIdAndTimeDTO
.
getCrossId
(),
schemeId
);
if
(
ObjectUtil
.
isNotEmpty
(
crossSchemeInfoPOS
))
{
if
(
ObjectUtil
.
isNotEmpty
(
crossSchemeInfoPOS
))
{
//根据相位号分组
//根据相位号分组
Map
<
String
,
List
<
CrossSchemeInfoPO
>>
collect
=
crossSchemeInfoPOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossSchemeInfoPO:
:
getPhaseNo
));
LinkedHashMap
<
String
,
List
<
CrossSchemeInfoPO
>>
collect
=
crossSchemeInfoPOS
.
stream
().
collect
(
Collectors
.
groupingBy
(
CrossSchemeInfoPO:
:
getPhaseNo
,
LinkedHashMap:
:
new
,
Collectors
.
toList
()
));
Set
<
String
>
set
=
collect
.
keySet
();
Set
<
String
>
set
=
collect
.
keySet
();
for
(
String
s
:
set
)
{
for
(
String
s
:
set
)
{
List
<
CrossSchemeInfoPO
>
infoPOS
=
collect
.
get
(
s
);
List
<
CrossSchemeInfoPO
>
infoPOS
=
collect
.
get
(
s
);
CrossSchemeInfoPO
crossSchemeInfoPO
=
infoPOS
.
get
(
0
);
CrossSchemeInfoPO
crossSchemeInfoPO
=
infoPOS
.
get
(
0
);
SaveSchemeConfigDTO
.
PhaseListElement
phaseListElement
=
new
SaveSchemeConfigDTO
.
PhaseListElement
();
SaveSchemeConfigDTO
.
PhaseListElement
phaseListElement
=
new
SaveSchemeConfigDTO
.
PhaseListElement
();
phaseListElement
.
setPhaseId
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getPhaseId
()));
phaseListElement
.
setPhaseId
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getPhaseId
()));
phaseListElement
.
setPhaseNo
(
crossSchemeInfoPO
.
getPhase
Time
());
phaseListElement
.
setPhaseNo
(
crossSchemeInfoPO
.
getPhase
No
());
phaseListElement
.
setGreenTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getGreenTime
()));
phaseListElement
.
setGreenTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getGreenTime
()));
phaseListElement
.
setYellowTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getYellowTime
()));
phaseListElement
.
setYellowTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getYellowTime
()));
phaseListElement
.
setRedTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getRedTime
()));
phaseListElement
.
setRedTime
(
Integer
.
valueOf
(
crossSchemeInfoPO
.
getRedTime
()));
...
@@ -702,22 +702,22 @@ public class PlanSendServiceImpl implements PlanSendService {
...
@@ -702,22 +702,22 @@ public class PlanSendServiceImpl implements PlanSendService {
List
<
CrossSchemeStageOptLogPO
>
crossSchedulesPOList
=
mapper
.
convertValue
(
optView
.
getContent
(),
new
TypeReference
<
List
<
CrossSchemeStageOptLogPO
>>()
{
List
<
CrossSchemeStageOptLogPO
>
crossSchedulesPOList
=
mapper
.
convertValue
(
optView
.
getContent
(),
new
TypeReference
<
List
<
CrossSchemeStageOptLogPO
>>()
{
});
});
if
(
ObjectUtils
.
isNotEmpty
(
crossSchedulesPOList
))
{
if
(
ObjectUtils
.
isNotEmpty
(
crossSchedulesPOList
))
{
optPhaseList
.
addAll
(
oriPhaseList
);
for
(
int
i
=
0
;
i
<
crossSchedulesPOList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
optPhaseList
.
size
();
i
++)
{
if
(
i
==
oriPhaseList
.
size
()){
if
(
i
==
crossSchedulesPOList
.
size
()){
break
;
break
;
}
}
CrossSchemeStageOptLogPO
optLogPO
=
crossSchedulesPOList
.
get
(
i
);
CrossSchemeStageOptLogPO
optLogPO
=
crossSchedulesPOList
.
get
(
i
);
SaveSchemeConfigDTO
.
PhaseListElement
optPhase
=
optPhaseList
.
get
(
i
);
SaveSchemeConfigDTO
.
PhaseListElement
phaseListElement
=
oriPhaseList
.
get
(
i
);
optPhase
.
setMinGreenTime
(
0
);
SaveSchemeConfigDTO
.
PhaseListElement
optPhase
=
new
SaveSchemeConfigDTO
.
PhaseListElement
();
optPhase
.
setMaxGreenTime
(
0
);
BeanUtils
.
copyProperties
(
phaseListElement
,
optPhase
);
optPhase
.
setGreenTime
(
optLogPO
.
getPhaseTime
());
Integer
yellowTime
=
phaseListElement
.
getYellowTime
();
optPhase
.
setGreenFlashTime
(
0
);
Integer
redTime
=
phaseListElement
.
getRedTime
();
optPhase
.
setYellowFlashTime
(
0
);
//相位时间
optPhase
.
setRedFlashTime
(
0
);
Integer
phaseTime
=
optLogPO
.
getPhaseTime
();
optPhase
.
setYellowTime
(
0
);
//绿灯时间
optPhase
.
setRedTime
(
0
);
int
greenTime
=
phaseTime
-
yellowTime
-
redTime
;
optPhase
.
setYellowFlash
(
0
);
optPhase
.
setGreenTime
(
greenTime
);
optPhaseList
.
add
(
optPhase
);
}
}
}
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/induce/GreenwaveInducesHistController.java
View file @
5d0b2c62
...
@@ -90,9 +90,11 @@ public class GreenwaveInducesHistController {
...
@@ -90,9 +90,11 @@ public class GreenwaveInducesHistController {
greenwaveInducesDTO
.
setWkt
(
x
.
getWkt
());
greenwaveInducesDTO
.
setWkt
(
x
.
getWkt
());
AtomicReference
<
Integer
>
equipCount
=
new
AtomicReference
<>(
0
);
AtomicReference
<
Integer
>
equipCount
=
new
AtomicReference
<>(
0
);
List
<
GreenwaveDirDTO
>
dirList
=
new
ArrayList
<>();
List
<
GreenwaveDirDTO
>
dirList
=
new
ArrayList
<>();
greenwaveInducesList
.
stream
().
filter
(
t
->
Objects
.
nonNull
(
t
.
getGreenId
())
&&
t
.
getGreenId
().
equals
(
x
.
getId
())).
collect
(
Collectors
.
groupingBy
(
GreenwaveInduces:
:
getDir
)).
entrySet
().
forEach
(
k
->
{
LambdaQueryWrapper
<
GreenwaveInducesHist
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
GreenwaveInducesHist
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
x
.
getId
());
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
x
.
getId
());
List
<
GreenwaveInducesHist
>
newGreenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
queryWrapper
);
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getDir
,
k
.
getKey
());
List
<
GreenwaveInducesHist
>
newGreenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
queryWrapper
);
newGreenwaveInducesHistList
.
stream
().
forEach
(
o
->
{
newGreenwaveInducesHistList
.
stream
().
forEach
(
o
->
{
GreenwaveDirDTO
greenwaveDirDTO
=
new
GreenwaveDirDTO
();
GreenwaveDirDTO
greenwaveDirDTO
=
new
GreenwaveDirDTO
();
greenwaveDirDTO
.
setDir
(
o
.
getDir
());
greenwaveDirDTO
.
setDir
(
o
.
getDir
());
...
@@ -139,7 +141,7 @@ public class GreenwaveInducesHistController {
...
@@ -139,7 +141,7 @@ public class GreenwaveInducesHistController {
equipCount
.
updateAndGet
(
v
->
v
+
induceDTOList
.
size
());
equipCount
.
updateAndGet
(
v
->
v
+
induceDTOList
.
size
());
dirList
.
add
(
greenwaveDirDTO
);
dirList
.
add
(
greenwaveDirDTO
);
});
});
//
});
});
greenwaveInducesDTO
.
setGreenwaveDirList
(
dirList
);
greenwaveInducesDTO
.
setGreenwaveDirList
(
dirList
);
greenwaveInducesDTO
.
setEquipCount
(
equipCount
.
get
());
greenwaveInducesDTO
.
setEquipCount
(
equipCount
.
get
());
greenwaveInfoList
.
add
(
greenwaveInducesDTO
);
greenwaveInfoList
.
add
(
greenwaveInducesDTO
);
...
@@ -186,12 +188,12 @@ public class GreenwaveInducesHistController {
...
@@ -186,12 +188,12 @@ public class GreenwaveInducesHistController {
greenwaveInducesDTO
.
setStatus
(
x
.
getStatus
());
greenwaveInducesDTO
.
setStatus
(
x
.
getStatus
());
AtomicReference
<
Integer
>
equipCount
=
new
AtomicReference
<>(
0
);
AtomicReference
<
Integer
>
equipCount
=
new
AtomicReference
<>(
0
);
List
<
GreenwaveDirDTO
>
dirList
=
new
ArrayList
<>();
List
<
GreenwaveDirDTO
>
dirList
=
new
ArrayList
<>();
greenwaveInduces
HistList
.
stream
().
filter
(
t
->
Objects
.
nonNull
(
t
.
getGreenId
())&&
t
.
getGreenId
().
equals
(
x
.
getId
())).
collect
(
Collectors
.
groupingBy
(
GreenwaveInducesHist:
:
getDir
)).
entrySet
().
forEach
(
k
->
{
greenwaveInduces
List
.
stream
().
filter
(
t
->
Objects
.
nonNull
(
t
.
getGreenId
())
&&
t
.
getGreenId
().
equals
(
x
.
getId
())).
collect
(
Collectors
.
groupingBy
(
GreenwaveInduces:
:
getDir
)).
entrySet
().
forEach
(
k
->
{
// greenwaveInducesList.stream().collect(Collectors.toMap(p -> p.getGreenId() + "_" + p.getDir(), p -> p, (existing, replacement) -> (existing.getGreenId() + "_" + existing.getDir()).equals(replacement.getGreenId() + "_" + replacement.getDir()) ? existing : replacement)).values().stream().distinct().collect(Collectors.toList()).stream().forEach(p -> {
// greenwaveInducesList.stream().collect(Collectors.toMap(p -> p.getGreenId() + "_" + p.getDir(), p -> p, (existing, replacement) -> (existing.getGreenId() + "_" + existing.getDir()).equals(replacement.getGreenId() + "_" + replacement.getDir()) ? existing : replacement)).values().stream().distinct().collect(Collectors.toList()).stream().forEach(p -> {
LambdaQueryWrapper
<
GreenwaveInducesHist
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
GreenwaveInducesHist
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
x
.
getId
());
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getGreenId
,
x
.
getId
());
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getDir
,
k
.
getKey
());
queryWrapper
.
eq
(
GreenwaveInducesHist:
:
getDir
,
k
.
getKey
());
List
<
GreenwaveInducesHist
>
newGreenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
queryWrapper
);
List
<
GreenwaveInducesHist
>
newGreenwaveInducesHistList
=
greenwaveInducesHistService
.
list
(
queryWrapper
);
newGreenwaveInducesHistList
.
stream
().
forEach
(
o
->
{
newGreenwaveInducesHistList
.
stream
().
forEach
(
o
->
{
// greenwaveInducesHistList.stream().filter(o -> Objects.isNull(o.getGreenId()) && Objects.equals(o.getGreenId(),x.getId())).forEach(o -> {
// greenwaveInducesHistList.stream().filter(o -> Objects.isNull(o.getGreenId()) && Objects.equals(o.getGreenId(),x.getId())).forEach(o -> {
GreenwaveDirDTO
greenwaveDirDTO
=
new
GreenwaveDirDTO
();
GreenwaveDirDTO
greenwaveDirDTO
=
new
GreenwaveDirDTO
();
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
View file @
5d0b2c62
...
@@ -18,6 +18,7 @@ import net.wanji.databus.bo.CrossIdBO;
...
@@ -18,6 +18,7 @@ import net.wanji.databus.bo.CrossIdBO;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dao.mapper.*
;
import
net.wanji.databus.dto.CrossSchemeRingsDTO
;
import
net.wanji.databus.dto.CrossSchemeRingsDTO
;
import
net.wanji.databus.dto.QueryByCrossIdAndTimeDTO
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.vo.SchemeOptSendVO
;
import
net.wanji.databus.vo.SchemeOptSendVO
;
import
net.wanji.databus.vo.SchemeSendVO
;
import
net.wanji.databus.vo.SchemeSendVO
;
...
@@ -40,7 +41,6 @@ import org.springframework.stereotype.Service;
...
@@ -40,7 +41,6 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.time.LocalDate
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -234,34 +234,37 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -234,34 +234,37 @@ public class DiagnoServiceImpl implements DiagnoService {
@Override
@Override
public
List
<
SchemeOptVO
.
PhaseOptTime
>
schemeComparison
(
CrossIdAndSchemeIdDTO
crossIdAndSchemeIdDTO
)
{
public
List
<
SchemeOptVO
.
PhaseOptTime
>
schemeComparison
(
CrossIdAndSchemeIdDTO
crossIdAndSchemeIdDTO
)
{
String
crossId
=
crossIdAndSchemeIdDTO
.
getCrossId
();
String
crossId
=
crossIdAndSchemeIdDTO
.
getCrossId
();
Integer
schemeId
=
crossIdAndSchemeIdDTO
.
getSchemeId
();
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
CrossSchemeRingsDTO
crossSchemeRingsDTO
=
new
CrossSchemeRingsDTO
();
QueryByCrossIdAndTimeDTO
queryByCrossIdAndTimeDTO
=
new
QueryByCrossIdAndTimeDTO
();
crossSchemeRingsDTO
.
setCrossId
(
crossId
);
queryByCrossIdAndTimeDTO
.
setCrossId
(
crossId
);
crossSchemeRingsDTO
.
setPattern
(
String
.
valueOf
(
schemeId
));
queryByCrossIdAndTimeDTO
.
setDatetime
(
new
Date
());
//查询路口当前方案
//查询当前路口运行的方案
JsonViewObject
jsonViewObjectScheme
=
utcFeignClients
.
selectSchemeByParams
(
queryByCrossIdAndTimeDTO
);
LocalDate
now
=
LocalDate
.
now
();
Integer
jsonViewObjectSchemeCode
=
jsonViewObjectScheme
.
getCode
();
int
week
=
now
.
getDayOfWeek
().
getValue
();
if
(
jsonViewObjectSchemeCode
!=
200
){
if
(
week
==
7
)
{
log
.
info
(
"未查询到当前路口号,crossId:{}"
,
crossId
);
//表中周日用0表示
return
phaseOptTimeList
;
week
=
0
;
}
}
//通过路口号和方案号查询方案id
ObjectMapper
mapper1
=
JacksonUtils
.
getInstance
();
CrossNowSchemePO
baseCrossSchemePO
=
baseCrossSchemeMapper
.
selectByCrossIdAndWeek
(
crossId
,
week
);
BaseCrossSchemePO
baseCrossSchemePO
=
mapper1
.
convertValue
(
jsonViewObjectScheme
.
getContent
(),
new
TypeReference
<
BaseCrossSchemePO
>()
{
});
if
(
ObjectUtils
.
isEmpty
(
baseCrossSchemePO
)){
if
(
ObjectUtils
.
isEmpty
(
baseCrossSchemePO
)){
return
phaseOptTimeList
;
return
phaseOptTimeList
;
}
}
Integer
schemeNo
=
baseCrossSchemePO
.
getSchemeId
(
);
Integer
schemeNo
=
Integer
.
valueOf
(
baseCrossSchemePO
.
getSchemeNo
()
);
if
(
ObjectUtil
.
isEmpty
(
schemeNo
)){
if
(
ObjectUtil
.
isEmpty
(
schemeNo
)
||
schemeNo
==
85
){
log
.
info
(
"当前路口为黃闪,crossId:{}"
,
crossId
);
log
.
info
(
"当前路口为黃闪,crossId:{}"
,
crossId
);
return
phaseOptTimeList
;
return
phaseOptTimeList
;
}
}
schemeNo
=
(
schemeNo
+
2
)/
3
;
List
<
CrossPhasePO
>
phasePOList
=
baseCrossPhaseMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
schemeNo
);
List
<
CrossPhasePO
>
phasePOList
=
baseCrossPhaseMapper
.
selectByCrossIdAndSchemeId
(
crossId
,
schemeNo
);
if
(
ObjectUtils
.
isEmpty
(
phasePOList
)
||
ObjectUtils
.
isEmpty
(
schemeNo
))
{
if
(
ObjectUtils
.
isEmpty
(
phasePOList
)
||
ObjectUtils
.
isEmpty
(
schemeNo
))
{
return
phaseOptTimeList
;
return
phaseOptTimeList
;
}
}
CrossSchemeRingsDTO
crossSchemeRingsDTO
=
new
CrossSchemeRingsDTO
();
crossSchemeRingsDTO
.
setCrossId
(
crossId
);
crossSchemeRingsDTO
.
setPattern
(
String
.
valueOf
(
schemeNo
));
JsonViewObject
jsonViewObject
=
utcFeignClients
.
schemeOptLog
(
crossSchemeRingsDTO
);
JsonViewObject
jsonViewObject
=
utcFeignClients
.
schemeOptLog
(
crossSchemeRingsDTO
);
Integer
code
=
jsonViewObject
.
getCode
();
Integer
code
=
jsonViewObject
.
getCode
();
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
ObjectMapper
mapper
=
JacksonUtils
.
getInstance
();
...
@@ -282,7 +285,7 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -282,7 +285,7 @@ public class DiagnoServiceImpl implements DiagnoService {
}
else
{
}
else
{
for
(
CrossPhasePO
crossPhasePO
:
phasePOList
)
{
for
(
CrossPhasePO
crossPhasePO
:
phasePOList
)
{
SchemeOptVO
.
PhaseOptTime
phaseOptTime
=
new
SchemeOptVO
.
PhaseOptTime
();
SchemeOptVO
.
PhaseOptTime
phaseOptTime
=
new
SchemeOptVO
.
PhaseOptTime
();
phaseOptTime
.
setPhaseNo
(
crossPhasePO
.
getPhaseNo
(
));
phaseOptTime
.
setPhaseNo
(
String
.
valueOf
(
crossPhasePO
.
getSort
()
));
Integer
oriPhaseTime
=
crossPhasePO
.
getPhaseTime
();
Integer
oriPhaseTime
=
crossPhasePO
.
getPhaseTime
();
phaseOptTime
.
setOriGreenTime
(
oriPhaseTime
);
phaseOptTime
.
setOriGreenTime
(
oriPhaseTime
);
List
<
CrossSchemeStageOptLogPO
>
list
=
crossSchedulesPOList
.
stream
().
filter
(
x
->
x
.
getPhaseNo
().
equals
(
String
.
valueOf
(
crossPhasePO
.
getSort
()))).
collect
(
Collectors
.
toList
());
List
<
CrossSchemeStageOptLogPO
>
list
=
crossSchedulesPOList
.
stream
().
filter
(
x
->
x
.
getPhaseNo
().
equals
(
String
.
valueOf
(
crossPhasePO
.
getSort
()))).
collect
(
Collectors
.
toList
());
...
@@ -293,8 +296,7 @@ public class DiagnoServiceImpl implements DiagnoService {
...
@@ -293,8 +296,7 @@ public class DiagnoServiceImpl implements DiagnoService {
CrossSchemeStageOptLogPO
optLogPO
=
list
.
get
(
0
);
CrossSchemeStageOptLogPO
optLogPO
=
list
.
get
(
0
);
Integer
optPhaseTime
=
optLogPO
.
getPhaseTime
();
Integer
optPhaseTime
=
optLogPO
.
getPhaseTime
();
phaseOptTime
.
setOptGreenTime
(
optPhaseTime
);
phaseOptTime
.
setOptGreenTime
(
optPhaseTime
);
//两个时间的绝对值
int
optTime
=
oriPhaseTime
-
optPhaseTime
;
int
optTime
=
Math
.
abs
(
oriPhaseTime
-
optPhaseTime
);
phaseOptTime
.
setOptTime
(
optTime
);
phaseOptTime
.
setOptTime
(
optTime
);
}
}
phaseOptTimeList
.
add
(
phaseOptTime
);
phaseOptTimeList
.
add
(
phaseOptTime
);
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/induce/impl/InduceSendServiceImpl.java
View file @
5d0b2c62
...
@@ -99,7 +99,9 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -99,7 +99,9 @@ public class InduceSendServiceImpl implements InduceSendService {
byte
[]
imageBytes
=
induceTemplate
.
getFileContent
();
byte
[]
imageBytes
=
induceTemplate
.
getFileContent
();
if
(
imageBytes
!=
null
||
imageBytes
.
length
>
0
)
{
if
(
imageBytes
!=
null
||
imageBytes
.
length
>
0
)
{
// 将字节数组转换为字节对象
// 将字节数组转换为字节对象
BufferedImage
image
=
ImageIO
.
read
(
new
ByteArrayInputStream
(
imageBytes
));
BufferedImage
image
=
null
;
try
{
image
=
ImageIO
.
read
(
new
ByteArrayInputStream
(
imageBytes
));
// 修改图像中文字
// 修改图像中文字
//addTextToImage(image, param.getContents(), induceTemplate.getTextX(), induceTemplate.getTextY(), induceTemplate.getTextSize(), induceTemplate.getTextSign());
//addTextToImage(image, param.getContents(), induceTemplate.getTextX(), induceTemplate.getTextY(), induceTemplate.getTextSize(), induceTemplate.getTextSign());
// 定义文字区域四个角的坐标
// 定义文字区域四个角的坐标
...
@@ -113,8 +115,11 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -113,8 +115,11 @@ public class InduceSendServiceImpl implements InduceSendService {
int
bottomRightX
=
Integer
.
parseInt
(
bottomRight
[
0
]);
int
bottomRightX
=
Integer
.
parseInt
(
bottomRight
[
0
]);
int
bottomRightY
=
Integer
.
parseInt
(
bottomRight
[
1
]);
int
bottomRightY
=
Integer
.
parseInt
(
bottomRight
[
1
]);
// 图片生成操作
// 图片生成操作
boolean
upDown
=
param
.
getContents
()[
0
].
contains
(
"▲"
)
||
param
.
getContents
()[
0
].
contains
(
"▼"
);
boolean
upDown
=
param
.
getContents
()[
0
].
contains
(
"▲"
)
||
param
.
getContents
()[
0
].
contains
(
"▼"
);
createImageWithText
(
induceTemplate
,
image
,
param
.
getContents
(),
induceTemplate
.
getTextSign
(),
upDown
,
topLeftX
,
topLeftY
,
bottomRightX
,
bottomRightY
);
createImageWithText
(
induceTemplate
,
image
,
param
.
getContents
(),
induceTemplate
.
getTextSign
(),
upDown
,
topLeftX
,
topLeftY
,
bottomRightX
,
bottomRightY
);
}
catch
(
Exception
ex
){
log
.
error
(
ex
.
getMessage
());
}
// 测试阶段保存图片到本地
// 测试阶段保存图片到本地
// ImageIO.write(image, "bmp", new File("D:\\tmp\\" + induceTemplate.getFileName()));
// ImageIO.write(image, "bmp", new File("D:\\tmp\\" + induceTemplate.getFileName()));
// 上传文件至ftp
// 上传文件至ftp
...
@@ -170,9 +175,9 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -170,9 +175,9 @@ public class InduceSendServiceImpl implements InduceSendService {
induceHist
.
setGreenId
(
param
.
getGreenId
());
induceHist
.
setGreenId
(
param
.
getGreenId
());
induceHistService
.
save
(
induceHist
);
induceHistService
.
save
(
induceHist
);
//保存诱导状态信息
//保存诱导状态信息
if
(
Objects
.
nonNull
(
greenwaveinduces
))
{
if
(
Objects
.
nonNull
(
greenwaveinduces
)
&&
param
.
getFlg
()==
1
)
{
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()
+
1
);
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()
+
((
param
.
getFlg
()==
1
)?
1
:
0
)
);
greenwaveinduces
.
setStatus
(
1
);
greenwaveinduces
.
setStatus
(
param
.
getFlg
()==
1
?
1
:
0
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
}
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
View file @
5d0b2c62
...
@@ -95,7 +95,7 @@ public class InducesMonitorTask {
...
@@ -95,7 +95,7 @@ public class InducesMonitorTask {
* #绿波调度计划扫描周期
* #绿波调度计划扫描周期
* 5 分钟 300000
* 5 分钟 300000
*/
*/
@Scheduled
(
fixedRate
=
30000
)
@Scheduled
(
fixedRate
=
30000
0
)
public
void
refresh
()
throws
Exception
{
public
void
refresh
()
throws
Exception
{
long
start
=
System
.
currentTimeMillis
();
long
start
=
System
.
currentTimeMillis
();
AtomicLong
synCount
=
new
AtomicLong
();
AtomicLong
synCount
=
new
AtomicLong
();
...
@@ -192,6 +192,16 @@ public class InducesMonitorTask {
...
@@ -192,6 +192,16 @@ public class InducesMonitorTask {
greenwaveInducesHist
.
setControlOptTimes
(
greenOptHistEntity
.
getControlTime
()
+
"|"
+
DateUtil
.
format
(
DateUtil
.
addSecond
(
greenOptHistEntity
.
getControlTime
(),
greenOptHistEntity
.
getControlDuration
()),
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_SECOND
));
//执行时段
greenwaveInducesHist
.
setControlOptTimes
(
greenOptHistEntity
.
getControlTime
()
+
"|"
+
DateUtil
.
format
(
DateUtil
.
addSecond
(
greenOptHistEntity
.
getControlTime
(),
greenOptHistEntity
.
getControlDuration
()),
Constants
.
DATE_FORMAT
.
E_DATE_FORMAT_SECOND
));
//执行时段
}
}
greenwaveInducesHist
.
setType
(
greenOptHistEntity
.
getType
());
// 执行策略
greenwaveInducesHist
.
setType
(
greenOptHistEntity
.
getType
());
// 执行策略
String
upDown
=
""
;
// 计算绿波速度变化趋势
if
(
Objects
.
nonNull
(
greenwaveInducesHist
.
getMinSpeed
())
&&
Objects
.
nonNull
(
greenwaveInducesHist
.
getMaxSpeed
())
&&
Objects
.
nonNull
(
greenOptHistEntity
.
getMinSpeed
())
&&
Objects
.
nonNull
(
greenOptHistEntity
.
getMaxSpeed
()))
{
if
(
greenwaveInducesHist
.
getMinSpeed
()
>
greenOptHistEntity
.
getMinSpeed
()
||
greenwaveInducesHist
.
getMaxSpeed
()
>
greenOptHistEntity
.
getMaxSpeed
())
{
upDown
=
"▼ "
;
}
if
(
greenwaveInducesHist
.
getMinSpeed
()
<
greenOptHistEntity
.
getMinSpeed
()
||
greenwaveInducesHist
.
getMaxSpeed
()
<
greenOptHistEntity
.
getMaxSpeed
())
{
upDown
=
"▲ "
;
}
}
greenwaveInducesHist
.
setMinSpeed
(
greenOptHistEntity
.
getMinSpeed
());
greenwaveInducesHist
.
setMinSpeed
(
greenOptHistEntity
.
getMinSpeed
());
greenwaveInducesHist
.
setMaxSpeed
(
greenOptHistEntity
.
getMaxSpeed
());
greenwaveInducesHist
.
setMaxSpeed
(
greenOptHistEntity
.
getMaxSpeed
());
// greenwaveInducesHist.setDir(greenOptHistEntity.getDirType());
// greenwaveInducesHist.setDir(greenOptHistEntity.getDirType());
...
@@ -208,7 +218,8 @@ public class InducesMonitorTask {
...
@@ -208,7 +218,8 @@ public class InducesMonitorTask {
MessageParam
messageParam
=
new
MessageParam
();
MessageParam
messageParam
=
new
MessageParam
();
messageParam
.
setFlg
(
1
);
messageParam
.
setFlg
(
1
);
messageParam
.
setGreenId
(
greenwaveInfoPO
.
getId
());
messageParam
.
setGreenId
(
greenwaveInfoPO
.
getId
());
messageParam
.
setContents
(
new
String
[]{(
Objects
.
nonNull
(
greenOptHistEntity
.
getMinSpeed
())?
greenOptHistEntity
.
getMinSpeed
().
intValue
()+
"-"
:
""
)+(
Objects
.
nonNull
(
greenOptHistEntity
.
getMaxSpeed
())?
greenOptHistEntity
.
getMaxSpeed
().
intValue
():
""
)+
"km/h"
});
messageParam
.
setContents
(
new
String
[]{(
upDown
+(
Objects
.
nonNull
(
greenOptHistEntity
.
getMinSpeed
())?
greenOptHistEntity
.
getMinSpeed
().
intValue
()+
"-"
:
""
)+(
Objects
.
nonNull
(
greenOptHistEntity
.
getMaxSpeed
())?
greenOptHistEntity
.
getMaxSpeed
().
intValue
():
""
))+
"km/h"
});
messageParam
.
setType
(
"TFMH"
);
messageParam
.
setType
(
"TFMH"
);
try
{
try
{
if
(
greenwaveInducesHist
.
getStatus
()==
0
||
greenwaveInducesHist
.
getModifyTime
().
before
(
greenOptHistEntity
.
getCreateTime
()))
{
if
(
greenwaveInducesHist
.
getStatus
()==
0
||
greenwaveInducesHist
.
getModifyTime
().
before
(
greenOptHistEntity
.
getCreateTime
()))
{
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/BaseCrossPhaseMapper.java
View file @
5d0b2c62
...
@@ -41,6 +41,9 @@ public interface BaseCrossPhaseMapper {
...
@@ -41,6 +41,9 @@ public interface BaseCrossPhaseMapper {
List
<
CrossPhasePO
>
selectByCrossIdAndSchemeId
(
@Param
(
"crossId"
)
String
crossId
,
List
<
CrossPhasePO
>
selectByCrossIdAndSchemeId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
);
@Param
(
"schemeId"
)
Integer
schemeId
);
List
<
CrossPhasePO
>
selectByCrossIdAndSchemeNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeNo"
)
Integer
schemeNo
);
void
update
(
CrossPhasePO
crossPhasePO
);
void
update
(
CrossPhasePO
crossPhasePO
);
void
insertBatch
(
List
<
CrossPhasePO
>
crossPhaseList
);
void
insertBatch
(
List
<
CrossPhasePO
>
crossPhaseList
);
...
...
wj-databus/src/main/resources/mapper/BaseCrossPhaseMapper.xml
View file @
5d0b2c62
...
@@ -172,4 +172,18 @@
...
@@ -172,4 +172,18 @@
order by sort
order by sort
</select>
</select>
<select
id=
"selectByCrossIdAndSchemeNo"
resultMap=
"BaseResultMap"
>
SELECT
phase.id,phase.phase_no,phase.NAME,phase.sort,phase.cross_id,phase.plan_id,phase.ring_no,phase.group_no,phase.phase_type,phase.control_mode,phase.phase_time,phase.green_time,phase.green_flash_time,phase.yellow_flash_time,phase.red_flash_time,phase.ped_flash_time,phase.yellow_time,phase.red_time,phase.min_green_time,phase.max_green_time,phase.gmt_create,phase.gmt_modified
FROM
t_base_cross_phase phase
LEFT JOIN t_base_cross_scheme scheme ON phase.cross_id = scheme.cross_id
AND phase.plan_id = scheme.id
WHERE
phase.cross_id = #{crossId}
AND scheme.scheme_no = #{schemeNo}
ORDER BY
sort
</select>
</mapper>
</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