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
Show 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 {
...
@@ -167,6 +167,7 @@ public class GreenwaveInducesHistController {
if
(
Objects
.
nonNull
(
greenwaveInfoByGreenId
)
&&
greenwaveInfoByGreenId
.
size
()
>
0
)
{
if
(
Objects
.
nonNull
(
greenwaveInfoByGreenId
)
&&
greenwaveInfoByGreenId
.
size
()
>
0
)
{
greenwaveInducesDTO
.
setGreenName
(
greenwaveInfoByGreenId
.
get
(
0
).
getName
());
greenwaveInducesDTO
.
setGreenName
(
greenwaveInfoByGreenId
.
get
(
0
).
getName
());
greenwaveInducesDTO
.
setDesignSpeed
(
greenwaveInfoByGreenId
.
get
(
0
).
getDesignSpeed
());
greenwaveInducesDTO
.
setDesignSpeed
(
greenwaveInfoByGreenId
.
get
(
0
).
getDesignSpeed
());
greenwaveInducesDTO
.
setWkt
(
greenwaveInfoByGreenId
.
get
(
0
).
getWkt
());
}
}
greenwaveInducesDTO
.
setStatus
(
o
.
getStatus
());
greenwaveInducesDTO
.
setStatus
(
o
.
getStatus
());
greenwaveInducesDTO
.
setStrategyId
(
o
.
getStrategyId
());
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;
...
@@ -28,6 +28,7 @@ import java.io.IOException;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
@Api
(
value
=
"InduceSendController"
,
description
=
"诱导屏-下发消息接口(对接易华录)"
)
@Api
(
value
=
"InduceSendController"
,
description
=
"诱导屏-下发消息接口(对接易华录)"
)
@RestController
@RestController
...
@@ -101,9 +102,10 @@ public class InduceSendController {
...
@@ -101,9 +102,10 @@ public class InduceSendController {
// 根据 equipCode 获取文件名
// 根据 equipCode 获取文件名
LambdaQueryWrapper
<
InduceHist
>
InduceHistQueryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
InduceHist
>
InduceHistQueryWrapper
=
new
LambdaQueryWrapper
<>();
InduceHistQueryWrapper
.
eq
(
InduceHist:
:
getEquipCode
,
equipCode
);
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
);
InduceHist
pictureFile
=
this
.
induceHistService
.
getOne
(
InduceHistQueryWrapper
,
false
);
if
(
pictureFile
==
null
)
{
if
(
Objects
.
isNull
(
pictureFile
)
&&
pictureFile
.
getFilePath
()
==
null
)
{
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
return
ResponseEntity
.
status
(
HttpStatus
.
OK
)
.
body
(
"无效的文件ID"
.
getBytes
(
StandardCharsets
.
UTF_8
));
.
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 {
...
@@ -46,5 +46,8 @@ public class GreenwaveInducesDTO {
@ApiModelProperty
(
name
=
"诱导屏列表"
)
@ApiModelProperty
(
name
=
"诱导屏列表"
)
private
List
<
InduceDTO
>
induceList
;
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 {
...
@@ -30,7 +30,7 @@ public class CrossIndexServiceImpl implements CrossIndexService {
@Override
@Override
public
Map
<
Integer
,
CrossDirDataRealtimePO
>
crossDirIndex
(
CrossIdBO
crossIdBO
)
{
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
))
{
if
(!
CollectionUtils
.
isEmpty
(
crossDirDataRealtimePOS
))
{
Map
<
Integer
,
CrossDirDataRealtimePO
>
dirDataMap
=
new
HashMap
<>(
crossDirDataRealtimePOS
.
size
());
Map
<
Integer
,
CrossDirDataRealtimePO
>
dirDataMap
=
new
HashMap
<>(
crossDirDataRealtimePOS
.
size
());
for
(
CrossDirDataRealtimePO
crossDirDataRealtimePO
:
crossDirDataRealtimePOS
)
{
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 {
...
@@ -70,10 +70,14 @@ public class InduceSendServiceImpl implements InduceSendService {
@Value
(
"${spring.rabbitmq.queue-name}"
)
@Value
(
"${spring.rabbitmq.queue-name}"
)
private
String
queueName
;
private
String
queueName
;
/**
* 是否下发屏幕
*/
@Value
(
"${spring.rabbitmq.sending}"
)
private
Boolean
sending
=
false
;
private
FTPClient
ftpClient
;
private
FTPClient
ftpClient
;
@Override
@Override
public
void
send
(
MessageParam
param
)
throws
IOException
,
TemplateException
{
public
void
send
(
MessageParam
param
)
throws
IOException
,
TemplateException
{
//生成诱导屏推送sourceId
//生成诱导屏推送sourceId
...
@@ -88,9 +92,11 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -88,9 +92,11 @@ public class InduceSendServiceImpl implements InduceSendService {
LambdaQueryWrapper
<
DeviceInduces
>
deviceQueryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
DeviceInduces
>
deviceQueryWrapper
=
new
LambdaQueryWrapper
<>();
deviceQueryWrapper
.
eq
(
DeviceInduces:
:
getEquipCode
,
induceTemplate
.
getEquipCode
());
deviceQueryWrapper
.
eq
(
DeviceInduces:
:
getEquipCode
,
induceTemplate
.
getEquipCode
());
DeviceInduces
deviceInduces
=
deviceInducesService
.
getOne
(
deviceQueryWrapper
);
DeviceInduces
deviceInduces
=
deviceInducesService
.
getOne
(
deviceQueryWrapper
);
if
(
Objects
.
nonNull
(
deviceInduces
))
{
param
.
setResolutionWidth
(
deviceInduces
.
getResolutionWidth
().
intValue
());
param
.
setResolutionWidth
(
deviceInduces
.
getResolutionWidth
().
intValue
());
param
.
setResolutionHeight
(
deviceInduces
.
getResolutionHeight
().
intValue
());
param
.
setResolutionHeight
(
deviceInduces
.
getResolutionHeight
().
intValue
());
}
}
}
// 获取图片字节数组
// 获取图片字节数组
byte
[]
imageBytes
=
induceTemplate
.
getFileContent
();
byte
[]
imageBytes
=
induceTemplate
.
getFileContent
();
if
(
imageBytes
!=
null
||
imageBytes
.
length
>
0
)
{
if
(
imageBytes
!=
null
||
imageBytes
.
length
>
0
)
{
...
@@ -107,7 +113,9 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -107,7 +113,9 @@ public class InduceSendServiceImpl implements InduceSendService {
String
filePath
=
uploadFile
(
image
,
dirName
,
fileName
);
String
filePath
=
uploadFile
(
image
,
dirName
,
fileName
);
param
.
setFtpPath
(
filePath
);
param
.
setFtpPath
(
filePath
);
induceHist
.
setFilePath
(
PATH
+
dirName
+
"/"
+
fileName
);
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
());
log
.
info
(
"上传文件至ftp-filePath:{}"
,
param
.
getFtpPath
());
// //如果已发布,则调用下屏服务
// //如果已发布,则调用下屏服务
...
@@ -138,18 +146,22 @@ public class InduceSendServiceImpl implements InduceSendService {
...
@@ -138,18 +146,22 @@ public class InduceSendServiceImpl implements InduceSendService {
// messageProperties.setContentType("text/plain"); // 设置内容类型为text/plain
// messageProperties.setContentType("text/plain"); // 设置内容类型为text/plain
// 创建Message并设置内容
// 创建Message并设置内容
// Message messageSend = new Message(message.getBytes(), messageProperties);
// 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
);
log
.
info
(
"mqtt发送信息-topic:{},queueName:{},message:{}"
,
queueName
,
message
);
//1、增加下发记录log 2、计数 3、标记已发布状体
//1、增加下发记录log 2、计数 3、标记已发布状体
induceHist
.
setEquipCode
(
induceTemplate
.
getEquipCode
());
induceHist
.
setEquipCode
(
induceTemplate
.
getEquipCode
());
induceHist
.
setGreenId
(
param
.
getGreenId
());
induceHist
.
setGreenId
(
param
.
getGreenId
());
induceHistService
.
save
(
induceHist
);
induceHistService
.
save
(
induceHist
);
//保存诱导状态信息
//保存诱导状态信息
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()+
1
);
if
(
Objects
.
nonNull
(
greenwaveinduces
))
{
greenwaveinduces
.
setInducesCount
(
Objects
.
isNull
(
greenwaveinduces
.
getInducesCount
())
?
0
:
greenwaveinduces
.
getInducesCount
()
+
1
);
greenwaveinduces
.
setStatus
(
1
);
greenwaveinduces
.
setStatus
(
1
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
greenwaveInducesService
.
saveOrUpdate
(
greenwaveinduces
);
}
}
}
}
}
@Override
@Override
public
String
uploadFile
(
BufferedImage
image
,
String
directoryName
,
String
fileName
)
{
public
String
uploadFile
(
BufferedImage
image
,
String
directoryName
,
String
fileName
)
{
...
...
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;
...
@@ -10,6 +10,7 @@ import net.wanji.opt.synthesis.pojo.StrategyControlDataEntity;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.request.StrategyHistReq
;
import
net.wanji.opt.synthesis.service.StrategyControlService
;
import
net.wanji.opt.synthesis.service.StrategyControlService
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
...
@@ -22,7 +23,7 @@ import javax.ws.rs.core.MediaType;
...
@@ -22,7 +23,7 @@ import javax.ws.rs.core.MediaType;
* @date 2024/11/03 12:42
* @date 2024/11/03 12:42
* @description 神思电子获取1.1策略计划基础信息
* @description 神思电子获取1.1策略计划基础信息
*/
*/
@Api
(
value
=
"
StrategyControlController
"
,
description
=
"策略控制"
)
@Api
(
value
=
"
strategyControl
"
,
description
=
"策略控制"
)
@RequestMapping
(
"/strategyControl"
)
@RequestMapping
(
"/strategyControl"
)
@RestController
@RestController
public
class
StrategyControlController
{
public
class
StrategyControlController
{
...
@@ -59,6 +60,18 @@ public class StrategyControlController {
...
@@ -59,6 +60,18 @@ public class StrategyControlController {
@ApiOperation
(
value
=
"策略控制查询列表"
,
notes
=
"策略控制查询列表"
,
@ApiOperation
(
value
=
"策略控制查询列表"
,
notes
=
"策略控制查询列表"
,
response
=
JsonViewObject
.
class
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
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"
)
@GetMapping
(
value
=
"/crossStrategyInfoList"
)
@ApiResponses
({
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
StrategyControlDataEntity
.
class
),
@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 {
...
@@ -27,20 +27,6 @@ public class StrategyGreenBeltController {
@Resource
@Resource
private
StrategyGreenBeltServiceImpl
strategyGreenBeltService
;
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
,
@ApiOperation
(
value
=
"绿波时序图图形查询"
,
notes
=
"绿波时序图图形查询"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@GetMapping
(
value
=
"/greenBeltChart"
)
@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;
...
@@ -5,6 +5,7 @@ import net.wanji.opt.synthesis.pojo.StrategyControlDataEntity;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlDetailList
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyControlVO
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.StrategyFactoryEntity
;
import
net.wanji.opt.synthesis.pojo.request.StrategyHistReq
;
/**
/**
* @author duanruiming
* @author duanruiming
...
@@ -15,6 +16,7 @@ public interface StrategyControlService {
...
@@ -15,6 +16,7 @@ public interface StrategyControlService {
JsonViewObject
strategyInfoPageList
(
StrategyControlDataEntity
entity
)
throws
Exception
;
JsonViewObject
strategyInfoPageList
(
StrategyControlDataEntity
entity
)
throws
Exception
;
JsonViewObject
crossStrategyInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
crossStrategyInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
crossStrategyHistList
()
throws
Exception
;
JsonViewObject
crossOptInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
crossOptInfoList
(
Integer
type
)
throws
Exception
;
JsonViewObject
strategyPlanDetail
(
String
crossId
)
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
...
@@ -11,16 +11,17 @@ import lombok.extern.slf4j.Slf4j;
...
@@ -11,16 +11,17 @@ import lombok.extern.slf4j.Slf4j;
import
net.wanji.common.enums.DateStyle
;
import
net.wanji.common.enums.DateStyle
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.licenseUtils.DateUtils
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.common.utils.tool.JacksonUtils
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.entity.GreenwaveInfoPO
;
import
net.wanji.databus.dao.mapper.BaseCrossInfoMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossInfoMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveInfoMapper
;
import
net.wanji.databus.dao.mapper.GreenwaveInfoMapper
;
import
net.wanji.databus.po.BaseCrossInfoPO
;
import
net.wanji.databus.po.BaseCrossInfoPO
;
import
net.wanji.opt.dao.mapper.StrategyControlInfoMapper
;
import
net.wanji.opt.cache.GreenWaveInfoCache
;
import
net.wanji.opt.dao.mapper.StrategyDailyPlanInfoMapper
;
import
net.wanji.opt.dao.mapper.*
;
import
net.wanji.opt.dao.mapper.StrategyFactoryMapper
;
import
net.wanji.opt.po.StrategyGreenOptHistEntity
;
import
net.wanji.opt.dao.mapper.StrategyPlanInfoMapper
;
import
net.wanji.opt.synthesis.pojo.*
;
import
net.wanji.opt.synthesis.pojo.*
;
import
net.wanji.opt.synthesis.pojo.request.StrategyHistReq
;
import
net.wanji.opt.synthesis.service.PushStrategyControlService
;
import
net.wanji.opt.synthesis.service.PushStrategyControlService
;
import
net.wanji.opt.synthesis.service.StrategyControlService
;
import
net.wanji.opt.synthesis.service.StrategyControlService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
...
@@ -31,6 +32,9 @@ import org.springframework.util.CollectionUtils;
...
@@ -31,6 +32,9 @@ import org.springframework.util.CollectionUtils;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.lang.reflect.InvocationTargetException
;
import
java.lang.reflect.InvocationTargetException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.temporal.ChronoUnit
;
import
java.util.*
;
import
java.util.*
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
...
@@ -56,6 +60,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -56,6 +60,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
private
StrategyFactoryMapper
strategyFactoryMapper
;
private
StrategyFactoryMapper
strategyFactoryMapper
;
@Resource
@Resource
private
GreenwaveInfoMapper
greenwaveInfoMapper
;
private
GreenwaveInfoMapper
greenwaveInfoMapper
;
@Resource
private
StrategyGreenOptHistMapper
strategyGreenOptHistMapper
;
@Override
@Override
...
@@ -102,7 +108,6 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -102,7 +108,6 @@ public class StrategyControlServiceImpl implements StrategyControlService {
private
StrategyControlReq
convertReq
(
StrategyControlVO
vo
)
throws
Exception
{
private
StrategyControlReq
convertReq
(
StrategyControlVO
vo
)
throws
Exception
{
try
{
try
{
ObjectMapper
instance
=
JacksonUtils
.
getInstance
();
List
<
StrategyControlDataVO
>
dataList
=
vo
.
getDataList
();
List
<
StrategyControlDataVO
>
dataList
=
vo
.
getDataList
();
StrategyControlReq
req
=
new
StrategyControlReq
();
StrategyControlReq
req
=
new
StrategyControlReq
();
if
(!
CollectionUtils
.
isEmpty
(
dataList
))
{
if
(!
CollectionUtils
.
isEmpty
(
dataList
))
{
...
@@ -158,10 +163,121 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -158,10 +163,121 @@ public class StrategyControlServiceImpl implements StrategyControlService {
return
JsonViewObject
.
newInstance
().
success
(
pageInfo
.
getRecords
());
return
JsonViewObject
.
newInstance
().
success
(
pageInfo
.
getRecords
());
}
}
@Override
public
JsonViewObject
crossStrategyHistList
()
throws
Exception
{
List
<
StrategyControlHistVO
>
results
=
new
ArrayList
<>();
LocalDate
currentDate
=
LocalDate
.
now
();
LocalDateTime
midnight
=
currentDate
.
atStartOfDay
();
LambdaQueryWrapper
<
StrategyGreenOptHistEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
midnight
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
);
Map
<
Integer
,
GreenwaveInfoPO
>
greenWaveMap
=
GreenWaveInfoCache
.
greenWaveMap
;
for
(
StrategyGreenOptHistEntity
entity
:
entities
)
{
StrategyControlHistVO
histVO
=
new
StrategyControlHistVO
();
histVO
.
setId
(
String
.
valueOf
(
entity
.
getGreenId
()));
if
(
greenWaveMap
.
isEmpty
())
{
continue
;
}
String
controlTime
=
entity
.
getControlTime
();
Date
parse
=
format
.
parse
(
controlTime
);
GreenwaveInfoPO
greenwaveInfoPO
=
greenWaveMap
.
get
(
entity
.
getGreenId
());
if
(
Objects
.
nonNull
(
greenwaveInfoPO
))
{
histVO
.
setName
(
greenwaveInfoPO
.
getName
());
histVO
.
setWkt
(
greenwaveInfoPO
.
getWkt
());
}
LambdaQueryWrapper
<
StrategyControlDataEntity
>
strategyQuery
=
new
LambdaQueryWrapper
<>();
strategyQuery
.
eq
(
StrategyControlDataEntity:
:
getBizId
,
entity
.
getGreenId
());
strategyQuery
.
eq
(
StrategyControlDataEntity:
:
getBizType
,
1
);
strategyQuery
.
le
(
StrategyControlDataEntity:
:
getScheduleStart
,
parse
);
strategyQuery
.
ge
(
StrategyControlDataEntity:
:
getScheduleEnd
,
parse
);
// 应该是下发时间在调度下发时间内,但是目前神思下发可能没有走策略
List
<
StrategyControlDataEntity
>
strategyList
=
strategyControlInfoMapper
.
selectList
(
strategyQuery
);
if
(!
CollectionUtils
.
isEmpty
(
strategyList
))
{
StrategyControlDataEntity
strategyControlDataEntity
=
strategyList
.
get
(
0
);
histVO
.
setStrategy
(
strategyControlDataEntity
.
getStrategy
());
histVO
.
setStrategyName
(
"绿波带"
);
}
histVO
.
setOptTime
(
entity
.
getControlTime
());
histVO
.
setResult
(
Objects
.
equals
(
1
,
entity
.
getControlMethod
())
?
"失败"
:
"成功"
);
results
.
add
(
histVO
);
}
}
//LambdaQueryWrapper<StrategyControlDataEntity> queryWrapper = new LambdaQueryWrapper<>();
//queryWrapper.isNotNull(StrategyControlDataEntity::getScheduleStart);
//queryWrapper.orderByDesc(StrategyControlDataEntity::getScheduleEnd);
//List<StrategyControlDataEntity> entities = strategyControlInfoMapper.selectList(queryWrapper);
//if (!CollectionUtils.isEmpty(entities)) {
// for (StrategyControlDataEntity entity : entities) {
// Integer type = entity.getBizType();
// if (type == 0) {
// BaseCrossInfoPO baseCrossInfoPO = baseCrossInfoMapper.selectById(entity.getBizId());
// entity.setCrossName(baseCrossInfoPO.getName());
// String location = baseCrossInfoPO.getLocation();
// location = location.replace("POINT(", "").replace(" ", ",").replace(")", "");
// entity.setWkt(location);
// }
// if (type == 1) {
// GreenwaveInfoPO greenwaveInfoPO = greenwaveInfoMapper.selectById(Integer.valueOf(entity.getBizId()));
// entity.setCrossName(greenwaveInfoPO.getName());
// entity.setWkt(greenwaveInfoPO.getWkt());
// }
// results.add(entity);
// }
//}
return
JsonViewObject
.
newInstance
().
success
(
results
);
}
@Override
@Override
public
JsonViewObject
crossStrategyInfoList
(
Integer
type
)
throws
Exception
{
public
JsonViewObject
crossStrategyInfoList
(
Integer
type
)
throws
Exception
{
try
{
try
{
List
<
StrategyControlDataEntity
>
results
=
getCurrentStrateInfoList
(
type
);
List
<
StrategyControlDataEntity
>
results
=
new
ArrayList
<>();
List
<
StrategyControlDataEntity
>
entities
=
getCurrentStrateInfoList
(
type
);
Map
<
String
,
StrategyControlDataEntity
>
map
=
entities
.
stream
().
collect
(
Collectors
.
toMap
(
StrategyControlDataEntity:
:
getBizId
,
entity
->
entity
));
// 路口
if
(
Objects
.
equals
(
0
,
type
))
{
List
<
BaseCrossInfoPO
>
baseCrossInfoPOS
=
baseCrossInfoMapper
.
selectAll
();
if
(!
CollectionUtils
.
isEmpty
(
baseCrossInfoPOS
))
{
for
(
BaseCrossInfoPO
baseCrossInfoPO
:
baseCrossInfoPOS
)
{
StrategyControlDataEntity
strategyControlDataEntity
=
new
StrategyControlDataEntity
();
String
crossId
=
baseCrossInfoPO
.
getId
();
strategyControlDataEntity
.
setBizType
(
0
);
strategyControlDataEntity
.
setBizId
(
baseCrossInfoPO
.
getId
());
strategyControlDataEntity
.
setStrategy
(
null
);
strategyControlDataEntity
.
setTime
(
null
);
strategyControlDataEntity
.
setStatus
(
0
);
strategyControlDataEntity
.
setCrossName
(
baseCrossInfoPO
.
getName
());
String
location
=
baseCrossInfoPO
.
getLocation
();
location
=
location
.
replace
(
"POINT("
,
""
).
replace
(
" "
,
","
).
replace
(
")"
,
""
);
strategyControlDataEntity
.
setWkt
(
location
);
if
(
map
.
containsKey
(
crossId
))
{
strategyControlDataEntity
=
map
.
get
(
crossId
);
}
results
.
add
(
strategyControlDataEntity
);
}
}
}
// 干线
if
(
Objects
.
equals
(
1
,
type
))
{
List
<
GreenwaveInfoPO
>
greenwaveInfoPOS
=
greenwaveInfoMapper
.
selectAll
();
if
(!
CollectionUtils
.
isEmpty
(
greenwaveInfoPOS
))
{
for
(
GreenwaveInfoPO
greenwaveInfoPO
:
greenwaveInfoPOS
)
{
StrategyControlDataEntity
strategyControlDataEntity
=
new
StrategyControlDataEntity
();
Integer
greenId
=
greenwaveInfoPO
.
getId
();
strategyControlDataEntity
.
setBizType
(
1
);
strategyControlDataEntity
.
setBizId
(
String
.
valueOf
(
greenId
));
strategyControlDataEntity
.
setStrategy
(
null
);
strategyControlDataEntity
.
setTime
(
null
);
strategyControlDataEntity
.
setStatus
(
0
);
strategyControlDataEntity
.
setCrossName
(
greenwaveInfoPO
.
getName
());
strategyControlDataEntity
.
setWkt
(
greenwaveInfoPO
.
getWkt
());
if
(
map
.
containsKey
(
greenId
))
{
strategyControlDataEntity
=
map
.
get
(
greenId
);
}
results
.
add
(
strategyControlDataEntity
);
}
}
}
return
JsonViewObject
.
newInstance
().
success
(
results
);
return
JsonViewObject
.
newInstance
().
success
(
results
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"策略控制查询列表:{}"
,
e
);
log
.
error
(
"策略控制查询列表:{}"
,
e
);
...
@@ -173,6 +289,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -173,6 +289,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
ObjectMapper
instance
=
JacksonUtils
.
getInstance
();
ObjectMapper
instance
=
JacksonUtils
.
getInstance
();
LambdaQueryWrapper
<
StrategyControlDataEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
StrategyControlDataEntity
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
StrategyControlDataEntity:
:
getBizType
,
type
);
queryWrapper
.
eq
(
StrategyControlDataEntity:
:
getBizType
,
type
);
queryWrapper
.
ge
(
StrategyControlDataEntity:
:
getScheduleStart
,
new
Date
());
queryWrapper
.
le
(
StrategyControlDataEntity:
:
getScheduleEnd
,
new
Date
());
List
<
StrategyControlDataEntity
>
entities
=
strategyControlInfoMapper
.
selectList
(
queryWrapper
);
List
<
StrategyControlDataEntity
>
entities
=
strategyControlInfoMapper
.
selectList
(
queryWrapper
);
List
<
StrategyControlDataEntity
>
results
=
new
ArrayList
<>(
entities
.
size
());
List
<
StrategyControlDataEntity
>
results
=
new
ArrayList
<>(
entities
.
size
());
Date
current
=
new
Date
();
Date
current
=
new
Date
();
...
@@ -205,7 +323,10 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -205,7 +323,10 @@ public class StrategyControlServiceImpl implements StrategyControlService {
DateTime
endHourDate
=
DateUtil
.
parse
(
entHour
,
"HH:mm"
);
DateTime
endHourDate
=
DateUtil
.
parse
(
entHour
,
"HH:mm"
);
if
(
currentTime
.
before
(
startHourDate
)
||
currentTime
.
after
(
endHourDate
))
{
if
(
currentTime
.
before
(
startHourDate
)
||
currentTime
.
after
(
endHourDate
))
{
result
.
setTime
(
hour
);
result
.
setTime
(
hour
);
result
.
setStatus
(
1
);
}
}
// 如果有调度策略在执行,设置为开启,否则关闭,提供前端过滤配置和未配置
result
.
setStatus
(
0
);
}
}
}
}
}
}
...
@@ -241,7 +362,7 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -241,7 +362,7 @@ public class StrategyControlServiceImpl implements StrategyControlService {
BeanUtils
.
copyProperties
(
strategyControlDataEntity
,
strategyControlDataExt
);
BeanUtils
.
copyProperties
(
strategyControlDataEntity
,
strategyControlDataExt
);
String
strategyName
=
""
;
String
strategyName
=
""
;
for
(
StrategyFactoryEntity
strategyFactoryEntity
:
strategyFactoryEntities
)
{
for
(
StrategyFactoryEntity
strategyFactoryEntity
:
strategyFactoryEntities
)
{
if
(
strategy
==
strategyFactoryEntity
.
getScene
(
))
{
if
(
Objects
.
equals
(
strategy
,
strategyFactoryEntity
.
getScene
()
))
{
strategyName
=
strategyFactoryEntity
.
getStrategyName
();
strategyName
=
strategyFactoryEntity
.
getStrategyName
();
}
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/task/InducesMonitorTask.java
View file @
77c41809
...
@@ -81,7 +81,7 @@ public class InducesMonitorTask {
...
@@ -81,7 +81,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
();
...
@@ -200,7 +200,8 @@ public class InducesMonitorTask {
...
@@ -200,7 +200,8 @@ public class InducesMonitorTask {
messageParam
.
setEquipCode
(
v
.
getEquipCode
());
messageParam
.
setEquipCode
(
v
.
getEquipCode
());
messageParam
.
setSourceId
(
v
.
getSourceId
());
messageParam
.
setSourceId
(
v
.
getSourceId
());
messageParam
.
setType
(
"TFMH"
);
messageParam
.
setType
(
"TFMH"
);
//induceSendService.send(messageParam);//临时屏蔽此处功能,因为上屏的时候可以设置生效时间
//屏蔽此处功能,因为上屏的时候可以设置生效时间
//induceSendService.send(messageParam);
log
.
info
(
"发送下屏信息成功."
);
log
.
info
(
"发送下屏信息成功."
);
});
});
}
}
...
@@ -208,7 +209,7 @@ public class InducesMonitorTask {
...
@@ -208,7 +209,7 @@ public class InducesMonitorTask {
log
.
error
(
"发送下屏信息失败"
);
log
.
error
(
"发送下屏信息失败"
);
}
}
//保存绿波状态
//保存绿波状态
n
.
setStatus
(
0
);
//
n.setStatus(0);
//greenwaveInducesHistService.saveOrUpdate(n);
//greenwaveInducesHistService.saveOrUpdate(n);
log
.
info
(
"同步绿波状态信息(下屏)->"
+
o
.
getPlanName
());
log
.
info
(
"同步绿波状态信息(下屏)->"
+
o
.
getPlanName
());
synCount
.
getAndIncrement
();
synCount
.
getAndIncrement
();
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/cache/CrossRunSchemeCache.java
View file @
77c41809
...
@@ -62,7 +62,6 @@ public class CrossRunSchemeCache implements CommandLineRunner {
...
@@ -62,7 +62,6 @@ public class CrossRunSchemeCache implements CommandLineRunner {
Integer
schemeId
=
getCurrentSchemeId
(
crossSectionPOS
,
currentTime
,
currentPlanId
);
Integer
schemeId
=
getCurrentSchemeId
(
crossSectionPOS
,
currentTime
,
currentPlanId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectSchemePOById
(
schemeId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectSchemePOById
(
schemeId
);
if
(
Objects
.
nonNull
(
crossSchemePO
))
{
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
...
@@ -29,5 +29,4 @@ public interface CrossDirDataRealtimeMapper extends BaseMapper<CrossDirDataRealt
CrossDirDataRealtimePO
selectByCrossIdAndDirs
(
String
crossId
,
List
<
Integer
>
dirCodeList
);
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 @@
...
@@ -97,11 +97,4 @@
and in_out_type = 1
and in_out_type = 1
</select>
</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>
</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