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
a2c65e20
Commit
a2c65e20
authored
Dec 07, 2024
by
董国亮
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化处理异常,增加绿波变化趋势需求
parent
fc0728d1
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
29 deletions
+47
-29
GreenwaveInducesHistController.java
...opt/controller/induce/GreenwaveInducesHistController.java
+14
-12
InduceSendServiceImpl.java
.../wanji/opt/service/induce/impl/InduceSendServiceImpl.java
+20
-15
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+13
-2
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/induce/GreenwaveInducesHistController.java
View file @
a2c65e20
...
@@ -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/induce/impl/InduceSendServiceImpl.java
View file @
a2c65e20
...
@@ -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
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
View file @
a2c65e20
...
@@ -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
()))
{
...
...
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