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
77c41809
Commit
77c41809
authored
Nov 30, 2024
by
zhouleilei
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
eb95cab1
75d367da
Changes
17
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
284 additions
and
46 deletions
+284
-46
GreenWaveInfoCache.java
...src/main/java/net/wanji/opt/cache/GreenWaveInfoCache.java
+42
-0
GreenwaveInducesHistController.java
...opt/controller/induce/GreenwaveInducesHistController.java
+1
-0
InduceSendController.java
...net/wanji/opt/controller/induce/InduceSendController.java
+4
-2
GreenBeltController.java
...t/wanji/opt/controller/signalopt/GreenBeltController.java
+16
-0
GreenwaveInducesDTO.java
...in/java/net/wanji/opt/dto/induce/GreenwaveInducesDTO.java
+3
-0
CrossIndexServiceImpl.java
...ava/net/wanji/opt/service/impl/CrossIndexServiceImpl.java
+1
-1
InduceSendServiceImpl.java
.../wanji/opt/service/induce/impl/InduceSendServiceImpl.java
+20
-8
StrategyControlController.java
...i/opt/synthesis/controller/StrategyControlController.java
+14
-1
StrategyGreenBeltController.java
...opt/synthesis/controller/StrategyGreenBeltController.java
+0
-14
StrategyControlHistVO.java
...a/net/wanji/opt/synthesis/pojo/StrategyControlHistVO.java
+28
-0
StrategyHistReq.java
...net/wanji/opt/synthesis/pojo/request/StrategyHistReq.java
+20
-0
StrategyControlService.java
...t/wanji/opt/synthesis/service/StrategyControlService.java
+2
-0
StrategyControlServiceImpl.java
...pt/synthesis/service/impl/StrategyControlServiceImpl.java
+128
-7
InducesMonitorTask.java
.../src/main/java/net/wanji/opt/task/InducesMonitorTask.java
+4
-3
CrossRunSchemeCache.java
...java/net/wanji/utc/hisense/cache/CrossRunSchemeCache.java
+1
-2
CrossDirDataRealtimeMapper.java
.../wanji/databus/dao/mapper/CrossDirDataRealtimeMapper.java
+0
-1
CrossDirDataRealtimeMapper.xml
.../src/main/resources/mapper/CrossDirDataRealtimeMapper.xml
+0
-7
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/cache/GreenWaveInfoCache.java
0 → 100644
View file @
77c41809
package
net
.
wanji
.
opt
.
cache
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.mapper.GreenwaveInfoMapper
;
import
org.springframework.boot.CommandLineRunner
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* @author duanruiming
* @date 2024/11/29 11:19
*/
@Component
@Slf4j
public
class
GreenWaveInfoCache
implements
CommandLineRunner
{
public
static
final
Map
<
Integer
,
GreenwaveInfoPO
>
greenWaveMap
=
new
HashMap
<>();
@Resource
private
GreenwaveInfoMapper
greenwaveInfoMapper
;
@Override
public
void
run
(
String
...
args
)
throws
Exception
{
try
{
List
<
GreenwaveInfoPO
>
greenWaveInfoPOS
=
greenwaveInfoMapper
.
selectAll
();
if
(!
CollectionUtils
.
isEmpty
(
greenWaveInfoPOS
))
{
for
(
GreenwaveInfoPO
greenWaveInfoPO
:
greenWaveInfoPOS
)
{
greenWaveMap
.
put
(
greenWaveInfoPO
.
getId
(),
greenWaveInfoPO
);
}
}
}
catch
(
Exception
e
)
{
log
.
error
(
"绿波信息初始化失败:"
,
e
);
throw
new
RuntimeException
(
"绿波信息初始化失败!"
);
}
}
}
signal-optimize-service/src/main/java/net/wanji/opt/controller/induce/GreenwaveInducesHistController.java
View file @
77c41809
...
...
@@ -167,6 +167,7 @@ public class GreenwaveInducesHistController {
if
(
Objects
.
nonNull
(
greenwaveInfoByGreenId
)
&&
greenwaveInfoByGreenId
.
size
()
>
0
)
{
greenwaveInducesDTO
.
setGreenName
(
greenwaveInfoByGreenId
.
get
(
0
).
getName
());
greenwaveInducesDTO
.
setDesignSpeed
(
greenwaveInfoByGreenId
.
get
(
0
).
getDesignSpeed
());
greenwaveInducesDTO
.
setWkt
(
greenwaveInfoByGreenId
.
get
(
0
).
getWkt
());
}
greenwaveInducesDTO
.
setStatus
(
o
.
getStatus
());
greenwaveInducesDTO
.
setStrategyId
(
o
.
getStrategyId
());
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/induce/InduceSendController.java
View file @
77c41809
...
...
@@ -28,6 +28,7 @@ import java.io.IOException;
import
java.nio.charset.StandardCharsets
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Objects
;
@Api
(
value
=
"InduceSendController"
,
description
=
"诱导屏-下发消息接口(对接易华录)"
)
@RestController
...
...
@@ -101,9 +102,10 @@ public class InduceSendController {
// 根据 equipCode 获取文件名
LambdaQueryWrapper
<
InduceHist
>
InduceHistQueryWrapper
=
new
LambdaQueryWrapper
<>();
InduceHistQueryWrapper
.
eq
(
InduceHist:
:
getEquipCode
,
equipCode
);
InduceHistQueryWrapper
.
orderByDesc
(
InduceHist:
:
getCreateTime
);
InduceHistQueryWrapper
.
orderByAsc
(
InduceHist:
:
getCreateTime
);
// InduceHist pictureFile=this.induceHistService.getOne(InduceHistQueryWrapper);
InduceHist
pictureFile
=
this
.
induceHistService
.
getOne
(
InduceHistQueryWrapper
,
false
);
if
(
pictureFile
==
null
)
{
if
(
Objects
.
isNull
(
pictureFile
)
&&
pictureFile
.
getFilePath
()
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
.
body
(
"无效的文件ID"
.
getBytes
(
StandardCharsets
.
UTF_8
));
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/controller/signalopt/GreenBeltController.java
0 → 100644
View file @
77c41809
package
net
.
wanji
.
opt
.
controller
.
signalopt
;
import
io.swagger.annotations.Api
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* @author duanruiming
* @date 2024/11/28 16:03
*/
@Api
(
value
=
"CrossIndexController"
,
description
=
"路口指标控制器"
)
@RequestMapping
(
"/crossIndex"
)
@RestController
public
class
GreenBeltController
{
}
signal-optimize-service/src/main/java/net/wanji/opt/dto/induce/GreenwaveInducesDTO.java
View file @
77c41809
...
...
@@ -46,5 +46,8 @@ public class GreenwaveInducesDTO {
@ApiModelProperty
(
name
=
"诱导屏列表"
)
private
List
<
InduceDTO
>
induceList
;
@ApiModelProperty
(
name
=
"绿波带坐标"
)
private
String
wkt
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossIndexServiceImpl.java
View file @
77c41809
...
...
@@ -30,7 +30,7 @@ public class CrossIndexServiceImpl implements CrossIndexService {
@Override
public
Map
<
Integer
,
CrossDirDataRealtimePO
>
crossDirIndex
(
CrossIdBO
crossIdBO
)
{
List
<
CrossDirDataRealtimePO
>
crossDirDataRealtimePOS
=
crossDirDataRealtimeMapper
.
select
MaxBatchTime
(
crossIdBO
.
getCrossId
());
List
<
CrossDirDataRealtimePO
>
crossDirDataRealtimePOS
=
crossDirDataRealtimeMapper
.
select
BycrossId
(
crossIdBO
.
getCrossId
());
if
(!
CollectionUtils
.
isEmpty
(
crossDirDataRealtimePOS
))
{
Map
<
Integer
,
CrossDirDataRealtimePO
>
dirDataMap
=
new
HashMap
<>(
crossDirDataRealtimePOS
.
size
());
for
(
CrossDirDataRealtimePO
crossDirDataRealtimePO
:
crossDirDataRealtimePOS
)
{
...
...
signal-optimize-service/src/main/java/net/wanji/opt/service/induce/impl/InduceSendServiceImpl.java
View file @
77c41809
...
...
@@ -70,10 +70,14 @@ public class InduceSendServiceImpl implements InduceSendService {
@Value
(
"${spring.rabbitmq.queue-name}"
)
private
String
queueName
;
/**
* 是否下发屏幕
*/
@Value
(
"${spring.rabbitmq.sending}"
)
private
Boolean
sending
=
false
;
private
FTPClient
ftpClient
;
@Override
public
void
send
(
MessageParam
param
)
throws
IOException
,
TemplateException
{
//生成诱导屏推送sourceId
...
...
@@ -88,8 +92,10 @@ public class InduceSendServiceImpl implements InduceSendService {
LambdaQueryWrapper
<
DeviceInduces
>
deviceQueryWrapper
=
new
LambdaQueryWrapper
<>();
deviceQueryWrapper
.
eq
(
DeviceInduces:
:
getEquipCode
,
induceTemplate
.
getEquipCode
());
DeviceInduces
deviceInduces
=
deviceInducesService
.
getOne
(
deviceQueryWrapper
);
param
.
setResolutionWidth
(
deviceInduces
.
getResolutionWidth
().
intValue
());
param
.
setResolutionHeight
(
deviceInduces
.
getResolutionHeight
().
intValue
());
if
(
Objects
.
nonNull
(
deviceInduces
))
{
param
.
setResolutionWidth
(
deviceInduces
.
getResolutionWidth
().
intValue
());
param
.
setResolutionHeight
(
deviceInduces
.
getResolutionHeight
().
intValue
());
}
}
// 获取图片字节数组
byte
[]
imageBytes
=
induceTemplate
.
getFileContent
();
...
...
@@ -107,7 +113,9 @@ public class InduceSendServiceImpl implements InduceSendService {
String
filePath
=
uploadFile
(
image
,
dirName
,
fileName
);
param
.
setFtpPath
(
filePath
);
induceHist
.
setFilePath
(
PATH
+
dirName
+
"/"
+
fileName
);
greenwaveinduces
.
setSourceId
(
PATH
+
dirName
+
"/"
+
fileName
);
if
(
Objects
.
nonNull
(
greenwaveinduces
))
{
greenwaveinduces
.
setSourceId
(
PATH
+
dirName
+
"/"
+
fileName
);
}
}
log
.
info
(
"上传文件至ftp-filePath:{}"
,
param
.
getFtpPath
());
// //如果已发布,则调用下屏服务
...
...
@@ -138,16 +146,20 @@ public class InduceSendServiceImpl implements InduceSendService {
// messageProperties.setContentType("text/plain"); // 设置内容类型为text/plain
// 创建Message并设置内容
// Message messageSend = new Message(message.getBytes(), messageProperties);
//rabbitTemplate.convertAndSend("",queueName, message);
if
(
sending
)
{
rabbitTemplate
.
convertAndSend
(
""
,
queueName
,
message
);
}
log
.
info
(
"mqtt发送信息-topic:{},queueName:{},message:{}"
,
queueName
,
message
);
//1、增加下发记录log 2、计数 3、标记已发布状体
induceHist
.
setEquipCode
(
induceTemplate
.
getEquipCode
());
induceHist
.
setGreenId
(
param
.
getGreenId
());
induceHistService
.
save
(
induceHist
);
//保存诱导状态信息
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()+
1
);
greenwaveinduces
.
setStatus
(
1
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
if
(
Objects
.
nonNull
(
greenwaveinduces
))
{
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()
+
1
);
greenwaveinduces
.
setStatus
(
1
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/controller/StrategyControlController.java
View file @
77c41809
...
...
@@ -10,6 +10,7 @@ import net.wanji.opt.synthesis.pojo.StrategyControlDataEntity;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.request.StrategyHistReq
;
import
net.wanji.opt.synthesis.service.StrategyControlService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -22,7 +23,7 @@ import javax.ws.rs.core.MediaType;
* @date 2024/11/03 12:42
* @description 神思电子获取1.1策略计划基础信息
*/
@Api
(
value
=
"
StrategyControlController
"
,
description
=
"策略控制"
)
@Api
(
value
=
"
strategyControl
"
,
description
=
"策略控制"
)
@RequestMapping
(
"/strategyControl"
)
@RestController
public
class
StrategyControlController
{
...
...
@@ -59,6 +60,18 @@ public class StrategyControlController {
@ApiOperation
(
value
=
"策略控制查询列表"
,
notes
=
"策略控制查询列表"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/crossStrategyHistList"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
StrategyControlDataEntity
.
class
),
})
public
JsonViewObject
crossStrategyHistList
()
throws
Exception
{
return
strategyControlService
.
crossStrategyHistList
();
}
@ApiOperation
(
value
=
"策略控制历史查询列表"
,
notes
=
"策略控制历史查询列表"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/crossStrategyInfoList"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
StrategyControlDataEntity
.
class
),
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/controller/StrategyGreenBeltController.java
View file @
77c41809
...
...
@@ -27,20 +27,6 @@ public class StrategyGreenBeltController {
@Resource
private
StrategyGreenBeltServiceImpl
strategyGreenBeltService
;
@ApiOperation
(
value
=
"绿波时序图数据查询"
,
notes
=
"绿波时序图数据查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenBletData"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
GreenBeltInfoVO
.
class
),
})
public
JsonViewObject
greenBletData
(
String
greenId
)
throws
Exception
{
//String key = Constants.GREEN_ID_OPT_KEY.concat(greenId);
//Object obj = redisUtils.get(key);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
//GreenBeltInfoVO greenBeltInfoVO = JacksonUtils.getInstance().readValue(String.valueOf(obj), GreenBeltInfoVO.class);
return
jsonViewObject
.
success
(
null
);
}
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenBeltChart"
)
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/pojo/StrategyControlHistVO.java
0 → 100644
View file @
77c41809
package
net
.
wanji
.
opt
.
synthesis
.
pojo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author duanruiming
* @date 2024/11/29 11:03
*/
@Data
@ApiModel
(
value
=
"StrategyControlHistVO"
,
description
=
"策略控制操作实体"
)
public
class
StrategyControlHistVO
{
@ApiModelProperty
(
"路口编号干线编号"
)
private
String
id
;
@ApiModelProperty
(
"路口名称干线名称"
)
private
String
name
;
@ApiModelProperty
(
"策略号"
)
private
Integer
strategy
;
@ApiModelProperty
(
"策略名称"
)
private
String
strategyName
;
@ApiModelProperty
(
"优化时间"
)
private
String
optTime
;
@ApiModelProperty
(
"优化结果"
)
private
String
result
;
@ApiModelProperty
(
"经纬度"
)
private
String
wkt
;
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/pojo/request/StrategyHistReq.java
0 → 100644
View file @
77c41809
package
net
.
wanji
.
opt
.
synthesis
.
pojo
.
request
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author duanruiming
* @date 2024/11/29 11:10
*/
@Data
@ApiModel
(
value
=
"StrategyHistReq"
,
description
=
"策略控制历史请求实体"
)
public
class
StrategyHistReq
{
@ApiModelProperty
(
"路口编号/干线编号"
)
private
String
id
;
@ApiModelProperty
(
"当前日期,为空查询时间"
)
private
Date
currentDate
;
}
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/StrategyControlService.java
View file @
77c41809
...
...
@@ -5,6 +5,7 @@ import net.wanji.opt.synthesis.pojo.StrategyControlDataEntity;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.request.StrategyHistReq
;
/**
* @author duanruiming
...
...
@@ -15,6 +16,7 @@ public interface StrategyControlService {
JsonViewObject
strategyInfoPageList
(
StrategyControlDataEntity
entity
)
throws
Exception
;
JsonViewObject
crossStrategyInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
crossStrategyHistList
()
throws
Exception
;
JsonViewObject
crossOptInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
strategyPlanDetail
(
String
crossId
)
throws
Exception
;
...
...
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/StrategyControlServiceImpl.java
View file @
77c41809
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
View file @
77c41809
...
...
@@ -81,7 +81,7 @@ public class InducesMonitorTask {
* #绿波调度计划扫描周期
* 5 分钟 300000
*/
//@Scheduled(fixedRate = 30000)
//@Scheduled(fixedRate = 30000
0
)
public
void
refresh
()
throws
Exception
{
long
start
=
System
.
currentTimeMillis
();
AtomicLong
synCount
=
new
AtomicLong
();
...
...
@@ -200,7 +200,8 @@ public class InducesMonitorTask {
messageParam
.
setEquipCode
(
v
.
getEquipCode
());
messageParam
.
setSourceId
(
v
.
getSourceId
());
messageParam
.
setType
(
"TFMH"
);
//induceSendService.send(messageParam);//临时屏蔽此处功能,因为上屏的时候可以设置生效时间
//屏蔽此处功能,因为上屏的时候可以设置生效时间
//induceSendService.send(messageParam);
log
.
info
(
"发送下屏信息成功."
);
});
}
...
...
@@ -208,7 +209,7 @@ public class InducesMonitorTask {
log
.
error
(
"发送下屏信息失败"
);
}
//保存绿波状态
n
.
setStatus
(
0
);
//
n.setStatus(0);
//greenwaveInducesHistService.saveOrUpdate(n);
log
.
info
(
"同步绿波状态信息(下屏)->"
+
o
.
getPlanName
());
synCount
.
getAndIncrement
();
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/cache/CrossRunSchemeCache.java
View file @
77c41809
...
...
@@ -62,8 +62,7 @@ public class CrossRunSchemeCache implements CommandLineRunner {
Integer
schemeId
=
getCurrentSchemeId
(
crossSectionPOS
,
currentTime
,
currentPlanId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectSchemePOById
(
schemeId
);
if
(
Objects
.
nonNull
(
crossSchemePO
))
{
currentRunSchemeNoCache
.
put
(
crossId
,
crossSchemePO
.
getSchemeNo
());
}
}
}
}
}
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDirDataRealtimeMapper.java
View file @
77c41809
...
...
@@ -29,5 +29,4 @@ public interface CrossDirDataRealtimeMapper extends BaseMapper<CrossDirDataRealt
CrossDirDataRealtimePO
selectByCrossIdAndDirs
(
String
crossId
,
List
<
Integer
>
dirCodeList
);
List
<
CrossDirDataRealtimePO
>
selectMaxBatchTime
(
String
crossId
);
}
wj-databus/src/main/resources/mapper/CrossDirDataRealtimeMapper.xml
View file @
77c41809
...
...
@@ -97,11 +97,4 @@
and in_out_type = 1
</select>
<select
id=
"selectMaxBatchTime"
resultType=
"net.wanji.databus.po.CrossDirDataRealtimePO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_realtime
where cross_id = #{crossId} and in_out_type = 1
and batch_time in (select max(batch_time) from t_cross_dir_data_realtime where cross_id = #{crossId})
</select>
</mapper>
\ No newline at end of file
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