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
4e0dce3b
Commit
4e0dce3b
authored
Mar 03, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 诊断优化,根据强制方案返回调整时间
parent
9ea30edc
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
79 additions
and
5 deletions
+79
-5
DiagnoController.java
.../main/java/net/wanji/opt/controller/DiagnoController.java
+13
-0
CrossIdAndSchemeIdDTO.java
...rc/main/java/net/wanji/opt/dto/CrossIdAndSchemeIdDTO.java
+18
-0
DiagnoService.java
...ce/src/main/java/net/wanji/opt/service/DiagnoService.java
+3
-0
DiagnoServiceImpl.java
...in/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
+45
-2
CrossPhaseMapper.xml
...ze-service/src/main/resources/mapper/CrossPhaseMapper.xml
+0
-3
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/DiagnoController.java
View file @
4e0dce3b
...
...
@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiResponse;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.opt.dto.CrossIdAndSchemeIdDTO
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.service.DiagnoService
;
import
net.wanji.opt.vo.CrossIdAndLocationVO
;
...
...
@@ -70,4 +71,16 @@ public class DiagnoController {
SchemeOptVO
schemeOptVO
=
diagnoService
.
querySchemeOpt
(
crossIdDTO
);
return
JsonViewObject
.
newInstance
().
success
(
schemeOptVO
);
}
@ApiOperation
(
value
=
"根据强制方案返回调整时间"
,
notes
=
"根据强制方案返回调整时间"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/queryOptTime"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SchemeOptVO
.
PhaseOptTime
.
class
),
})
public
JsonViewObject
queryOptTime
(
@RequestBody
CrossIdAndSchemeIdDTO
crossIdAndSchemeIdDTO
)
{
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
diagnoService
.
queryOptTime
(
crossIdAndSchemeIdDTO
);
return
JsonViewObject
.
newInstance
().
success
(
phaseOptTimeList
);
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/dto/CrossIdAndSchemeIdDTO.java
0 → 100644
View file @
4e0dce3b
package
net
.
wanji
.
opt
.
dto
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* 方案管理-路口配置-获取路口方向列表输入参数
*
* @author Kent HAN
* @date 2022/12/20 10:17
*/
@Data
public
class
CrossIdAndSchemeIdDTO
{
@ApiModelProperty
(
value
=
"路口ID,如:14Q1409IRF0"
,
required
=
true
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"强制方案ID"
,
required
=
true
)
private
Integer
schemeId
;
}
signal-optimize-service/src/main/java/net/wanji/opt/service/DiagnoService.java
View file @
4e0dce3b
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.opt.dto.CrossIdAndSchemeIdDTO
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.vo.CrossIdAndLocationVO
;
import
net.wanji.opt.vo.SchemeOptVO
;
...
...
@@ -17,4 +18,6 @@ public interface DiagnoService {
List
<
CrossIdAndLocationVO
>
queryNeighborCross
(
CrossIdDTO
crossIdDTO
);
SchemeOptVO
querySchemeOpt
(
CrossIdDTO
crossIdDTO
);
List
<
SchemeOptVO
.
PhaseOptTime
>
queryOptTime
(
CrossIdAndSchemeIdDTO
crossIdAndSchemeIdDTO
);
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/DiagnoServiceImpl.java
View file @
4e0dce3b
...
...
@@ -8,14 +8,16 @@ import net.wanji.databus.dao.entity.RidInfoEntity;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossDirInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossInfoMapper
;
import
net.wanji.opt.dao.mapper.CrossPhaseMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeMapper
;
import
net.wanji.opt.dao.mapper.CrossSchemeOptLogMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper
;
import
net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper
;
import
net.wanji.opt.dto.CrossIdAndSchemeIdDTO
;
import
net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO
;
import
net.wanji.opt.dto.strategy.QuerySceneDTO
;
import
net.wanji.opt.po.base.CrossInfoPO
;
import
net.wanji.opt.po.base.CrossPhasePO
;
import
net.wanji.opt.po.base.CrossSchemeOptLogPO
;
import
net.wanji.opt.po.base.CrossSchemePO
;
import
net.wanji.opt.po.strategy.ScenePO
;
...
...
@@ -30,6 +32,7 @@ import org.springframework.stereotype.Service;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Optional
;
/**
...
...
@@ -48,9 +51,12 @@ public class DiagnoServiceImpl implements DiagnoService {
private
final
RidInfoMapper
ridInfoMapper
;
private
final
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
;
private
final
CrossSchemeMapper
crossSchemeMapper
;
private
final
CrossPhaseMapper
crossPhaseMapper
;
public
DiagnoServiceImpl
(
CrossInfoMapper
crossInfoMapper
,
CrossDataRealtimeMapper
crossDataRealtimeMapper
,
SceneService
sceneService
,
SceneStrategyMapper
sceneStrategyMapper
,
SceneMapper
sceneMapper
,
CrossDirInfoMapper
crossDirInfoMapper
,
RidInfoMapper
ridInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
CrossSchemeMapper
crossSchemeMapper
)
{
SceneService
sceneService
,
SceneMapper
sceneMapper
,
CrossDirInfoMapper
crossDirInfoMapper
,
RidInfoMapper
ridInfoMapper
,
CrossSchemeOptLogMapper
crossSchemeOptLogMapper
,
CrossSchemeMapper
crossSchemeMapper
,
CrossPhaseMapper
crossPhaseMapper
)
{
this
.
crossInfoMapper
=
crossInfoMapper
;
this
.
crossDataRealtimeMapper
=
crossDataRealtimeMapper
;
this
.
sceneService
=
sceneService
;
...
...
@@ -59,6 +65,7 @@ public class DiagnoServiceImpl implements DiagnoService {
this
.
ridInfoMapper
=
ridInfoMapper
;
this
.
crossSchemeOptLogMapper
=
crossSchemeOptLogMapper
;
this
.
crossSchemeMapper
=
crossSchemeMapper
;
this
.
crossPhaseMapper
=
crossPhaseMapper
;
}
@Override
...
...
@@ -116,6 +123,7 @@ public class DiagnoServiceImpl implements DiagnoService {
SchemeOptVO
schemeOptVO
=
new
SchemeOptVO
();
schemeOptVO
.
setCrossId
(
crossId
);
List
<
CrossSchemeOptLogPO
>
crossSchemeOptLogPOList
=
crossSchemeOptLogMapper
.
selectByCrossId
(
crossId
);
// 选择数据批次时间最大的记录
Optional
<
CrossSchemeOptLogPO
>
max
=
crossSchemeOptLogPOList
.
stream
()
.
max
(
Comparator
.
comparing
(
CrossSchemeOptLogPO:
:
getDataBatchTime
));
List
<
CrossSchemeOptLogPO
>
maxList
=
getMaxList
(
crossSchemeOptLogPOList
,
max
);
...
...
@@ -132,6 +140,41 @@ public class DiagnoServiceImpl implements DiagnoService {
return
schemeOptVO
;
}
@Override
public
List
<
SchemeOptVO
.
PhaseOptTime
>
queryOptTime
(
CrossIdAndSchemeIdDTO
crossIdAndSchemeIdDTO
)
{
String
crossId
=
crossIdAndSchemeIdDTO
.
getCrossId
();
Integer
schemeId
=
crossIdAndSchemeIdDTO
.
getSchemeId
();
List
<
SchemeOptVO
.
PhaseOptTime
>
phaseOptTimeList
=
new
ArrayList
<>();
List
<
CrossSchemeOptLogPO
>
crossSchemeOptLogPOList
=
crossSchemeOptLogMapper
.
selectByCrossId
(
crossId
);
// 选择数据批次时间最大的记录
Optional
<
CrossSchemeOptLogPO
>
max
=
crossSchemeOptLogPOList
.
stream
()
.
max
(
Comparator
.
comparing
(
CrossSchemeOptLogPO:
:
getDataBatchTime
));
List
<
CrossSchemeOptLogPO
>
maxList
=
getMaxList
(
crossSchemeOptLogPOList
,
max
);
for
(
CrossSchemeOptLogPO
crossSchemeOptLogPO
:
maxList
)
{
SchemeOptVO
.
PhaseOptTime
phaseOptTime
=
new
SchemeOptVO
.
PhaseOptTime
();
String
phaseNo
=
crossSchemeOptLogPO
.
getPhaseNo
();
phaseOptTime
.
setPhaseNo
(
phaseNo
);
Integer
oriGreenTime
=
crossSchemeOptLogPO
.
getOriGreenTime
();
phaseOptTime
.
setOriGreenTime
(
oriGreenTime
);
Integer
optGreenTime
=
getNewGreenTime
(
crossId
,
schemeId
,
phaseNo
);
phaseOptTime
.
setOptGreenTime
(
optGreenTime
);
phaseOptTime
.
setOptTime
(
optGreenTime
-
oriGreenTime
);
phaseOptTimeList
.
add
(
phaseOptTime
);
}
return
phaseOptTimeList
;
}
private
Integer
getNewGreenTime
(
String
crossId
,
Integer
schemeId
,
String
phaseNo
)
{
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
listCrossPhase
(
crossId
,
String
.
valueOf
(
schemeId
));
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
String
newPhaseNo
=
crossPhasePO
.
getPhaseNo
();
if
(
Objects
.
equals
(
phaseNo
,
newPhaseNo
))
{
return
crossPhasePO
.
getGreenTime
();
}
}
return
0
;
}
@NotNull
private
static
List
<
CrossSchemeOptLogPO
>
getMaxList
(
List
<
CrossSchemeOptLogPO
>
crossSchemeOptLogPOList
,
Optional
<
CrossSchemeOptLogPO
>
max
)
{
...
...
signal-optimize-service/src/main/resources/mapper/CrossPhaseMapper.xml
View file @
4e0dce3b
...
...
@@ -25,7 +25,6 @@
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<select
id=
"listCrossPhase"
resultMap=
"BaseResultMap"
>
select
id
...
...
@@ -55,6 +54,4 @@
and plan_id = #{schemeId}
</if>
</select>
</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