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
13585937
Commit
13585937
authored
Jan 12, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
方案管理-获取方案配置列表
parent
69a0745d
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
451 additions
and
7 deletions
+451
-7
LightsModifyException.java
...net/wanji/web/common/exception/LightsModifyException.java
+19
-0
SignalGlobalExceptionHandler.java
...ji/web/common/exception/SignalGlobalExceptionHandler.java
+6
-0
SchemeConfigController.java
...t/wanji/web/controller/scheme/SchemeConfigController.java
+15
-0
SaveSchemeConfigDTO.java
.../src/main/java/net/wanji/web/dto/SaveSchemeConfigDTO.java
+5
-7
CrossAccompanyPhaseMapper.java
...et/wanji/web/mapper/scheme/CrossAccompanyPhaseMapper.java
+2
-0
CrossLaneLightsMapper.java
...va/net/wanji/web/mapper/scheme/CrossLaneLightsMapper.java
+2
-0
CrossLightsMapper.java
...n/java/net/wanji/web/mapper/scheme/CrossLightsMapper.java
+5
-0
CrossPhaseLightsMapper.java
...a/net/wanji/web/mapper/scheme/CrossPhaseLightsMapper.java
+5
-0
CrossPhaseMapper.java
...in/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
+18
-0
CrossSchemeMapper.java
...n/java/net/wanji/web/mapper/scheme/CrossSchemeMapper.java
+2
-0
LaneInfoMapper.java
...main/java/net/wanji/web/mapper/scheme/LaneInfoMapper.java
+2
-0
SchemeConfigService.java
...ava/net/wanji/web/service/scheme/SchemeConfigService.java
+3
-0
SchemeConfigServiceImpl.java
...anji/web/service/scheme/impl/SchemeConfigServiceImpl.java
+267
-0
CrossAccompanyPhaseMapper.xml
...ain/resources/mapper/scheme/CrossAccompanyPhaseMapper.xml
+6
-0
CrossLaneLightsMapper.xml
...rc/main/resources/mapper/scheme/CrossLaneLightsMapper.xml
+7
-0
CrossLightsMapper.xml
...ce/src/main/resources/mapper/scheme/CrossLightsMapper.xml
+17
-0
CrossPhaseLightsMapper.xml
...c/main/resources/mapper/scheme/CrossPhaseLightsMapper.xml
+14
-0
CrossPhaseMapper.xml
...ice/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
+39
-0
CrossSchemeMapper.xml
...ce/src/main/resources/mapper/scheme/CrossSchemeMapper.xml
+7
-0
LaneInfoMapper.xml
...rvice/src/main/resources/mapper/scheme/LaneInfoMapper.xml
+10
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/common/exception/LightsModifyException.java
0 → 100644
View file @
13585937
package
net
.
wanji
.
web
.
common
.
exception
;
/**
* 路段关系异常
*
* @author Kent HAN
* @date 2022/11/10 9:09
*/
public
class
LightsModifyException
extends
RuntimeException
{
public
LightsModifyException
(
String
message
)
{
super
(
message
);
}
public
LightsModifyException
(
String
message
,
Exception
e
)
{
super
(
message
,
e
);
}
}
signal-control-service/src/main/java/net/wanji/web/common/exception/SignalGlobalExceptionHandler.java
View file @
13585937
...
@@ -23,4 +23,10 @@ public class SignalGlobalExceptionHandler {
...
@@ -23,4 +23,10 @@ public class SignalGlobalExceptionHandler {
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
fail
(
e
);
return
jsonViewObject
.
fail
(
e
);
}
}
@ExceptionHandler
(
value
=
LightsModifyException
.
class
)
public
JsonViewObject
lightsModifyExceptionHandler
(
LightsModifyException
e
)
{
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
fail
(
e
);
}
}
}
\ No newline at end of file
signal-control-service/src/main/java/net/wanji/web/controller/scheme/SchemeConfigController.java
View file @
13585937
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
...
@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.feign.pojo.entity.JsonViewObject
;
import
net.wanji.feign.pojo.entity.JsonViewObject
;
import
net.wanji.web.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
@@ -73,4 +74,18 @@ public class SchemeConfigController {
...
@@ -73,4 +74,18 @@ public class SchemeConfigController {
return
jsonViewObject
.
success
(
laneIdsVO
);
return
jsonViewObject
.
success
(
laneIdsVO
);
}
}
@ApiOperation
(
value
=
"方案配置列表"
,
notes
=
"方案配置列表"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/listSchemeConfig"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SaveSchemeConfigDTO
.
class
),
})
public
JsonViewObject
listSchemeConfig
(
@RequestBody
CrossIdDTO
crossIdDTO
)
{
SaveSchemeConfigDTO
saveSchemeConfigDTO
=
schemeConfigService
.
listSchemeConfig
(
crossIdDTO
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
saveSchemeConfigDTO
);
}
}
}
signal-control-service/src/main/java/net/wanji/web/dto/SaveSchemeConfigDTO.java
View file @
13585937
...
@@ -54,8 +54,6 @@ public class SaveSchemeConfigDTO {
...
@@ -54,8 +54,6 @@ public class SaveSchemeConfigDTO {
public
static
class
PhaseListElement
{
public
static
class
PhaseListElement
{
@ApiModelProperty
(
value
=
"相位号"
,
required
=
true
)
@ApiModelProperty
(
value
=
"相位号"
,
required
=
true
)
private
String
phaseNo
;
private
String
phaseNo
;
@ApiModelProperty
(
value
=
"相位序号"
,
required
=
false
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"相位类型 1实相位 2虚相位 3伴随相位"
,
required
=
true
)
@ApiModelProperty
(
value
=
"相位类型 1实相位 2虚相位 3伴随相位"
,
required
=
true
)
private
Integer
phaseType
;
private
Integer
phaseType
;
@ApiModelProperty
(
value
=
"最小绿灯时间"
,
required
=
true
)
@ApiModelProperty
(
value
=
"最小绿灯时间"
,
required
=
true
)
...
@@ -75,13 +73,13 @@ public class SaveSchemeConfigDTO {
...
@@ -75,13 +73,13 @@ public class SaveSchemeConfigDTO {
@ApiModelProperty
(
value
=
"红灯时间"
,
required
=
true
)
@ApiModelProperty
(
value
=
"红灯时间"
,
required
=
true
)
private
Integer
redTime
;
private
Integer
redTime
;
@ApiModelProperty
(
value
=
"是否黄闪 0否 1是"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否黄闪 0否 1是"
,
required
=
true
)
private
Integer
yellowFlash
;
private
Integer
yellowFlash
=
0
;
@ApiModelProperty
(
value
=
"是否红灯 0否 1是"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否红灯 0否 1是"
,
required
=
true
)
private
Integer
isRed
;
private
Integer
isRed
=
0
;
@ApiModelProperty
(
value
=
"是否绿灯 0否 1是"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否绿灯 0否 1是"
,
required
=
true
)
private
Integer
isGreen
;
private
Integer
isGreen
=
0
;
@ApiModelProperty
(
value
=
"是否绿闪 0否 1是"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否绿闪 0否 1是"
,
required
=
true
)
private
Integer
greenFlash
;
private
Integer
greenFlash
=
0
;
@ApiModelProperty
(
value
=
"母相位号列表"
,
required
=
true
)
@ApiModelProperty
(
value
=
"母相位号列表"
,
required
=
true
)
List
<
String
>
accompanyPhaseNoList
;
List
<
String
>
accompanyPhaseNoList
;
private
List
<
DirListElement
>
dirList
;
// 方向列表
private
List
<
DirListElement
>
dirList
;
// 方向列表
...
@@ -92,7 +90,7 @@ public class SaveSchemeConfigDTO {
...
@@ -92,7 +90,7 @@ public class SaveSchemeConfigDTO {
@ApiModelProperty
(
value
=
"车道进口方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
required
=
true
)
@ApiModelProperty
(
value
=
"车道进口方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
required
=
true
)
private
Integer
dir
;
private
Integer
dir
;
@ApiModelProperty
(
value
=
"是否有行人相位:0否;1是"
,
required
=
true
)
@ApiModelProperty
(
value
=
"是否有行人相位:0否;1是"
,
required
=
true
)
private
Integer
hasPersonPhase
;
private
Integer
hasPersonPhase
=
0
;
private
List
<
LaneListElement
>
laneList
;
// 车道列表
private
List
<
LaneListElement
>
laneList
;
// 车道列表
}
}
...
...
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossAccompanyPhaseMapper.java
View file @
13585937
...
@@ -15,4 +15,6 @@ public interface CrossAccompanyPhaseMapper {
...
@@ -15,4 +15,6 @@ public interface CrossAccompanyPhaseMapper {
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
insertBatch
(
@Param
(
"entities"
)
List
<
CrossAccompanyPhasePO
>
entities
);
void
insertBatch
(
@Param
(
"entities"
)
List
<
CrossAccompanyPhasePO
>
entities
);
List
<
Integer
>
selectByPhaseId
(
@Param
(
"phaseId"
)
Integer
phaseId
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossLaneLightsMapper.java
View file @
13585937
...
@@ -24,4 +24,6 @@ public interface CrossLaneLightsMapper {
...
@@ -24,4 +24,6 @@ public interface CrossLaneLightsMapper {
List
<
CrossLaneLightsPO
>
selectLanesByLightId
(
@Param
(
"crossId"
)
String
crossId
,
List
<
CrossLaneLightsPO
>
selectLanesByLightId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"lightId"
)
Integer
lightId
);
@Param
(
"lightId"
)
Integer
lightId
);
List
<
CrossLaneLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossLightsMapper.java
View file @
13585937
...
@@ -23,4 +23,9 @@ public interface CrossLightsMapper {
...
@@ -23,4 +23,9 @@ public interface CrossLightsMapper {
List
<
CrossLightsPO
>
selectByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
List
<
CrossLightsPO
>
selectByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
List
<
CrossLightsPO
>
selectByCrossIdAndDir
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"dir"
)
Integer
dir
);
List
<
CrossLightsPO
>
selectByCrossIdAndDir
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"dir"
)
Integer
dir
);
CrossLightsPO
selectById
(
@Param
(
"id"
)
Integer
id
);
List
<
CrossLightsPO
>
selectByLightsIdsAndDir
(
@Param
(
"lightsIds"
)
List
<
Integer
>
lightsIds
,
@Param
(
"dir"
)
Integer
dir
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossPhaseLightsMapper.java
View file @
13585937
...
@@ -4,6 +4,7 @@ import io.lettuce.core.dynamic.annotation.Param;
...
@@ -4,6 +4,7 @@ import io.lettuce.core.dynamic.annotation.Param;
import
net.wanji.web.po.scheme.CrossPhaseLightsPO
;
import
net.wanji.web.po.scheme.CrossPhaseLightsPO
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
...
@@ -16,4 +17,8 @@ public interface CrossPhaseLightsMapper {
...
@@ -16,4 +17,8 @@ public interface CrossPhaseLightsMapper {
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
insertBatchBySet
(
@Param
(
"entities"
)
Set
<
CrossPhaseLightsPO
>
entities
);
void
insertBatchBySet
(
@Param
(
"entities"
)
Set
<
CrossPhaseLightsPO
>
entities
);
List
<
CrossPhaseLightsPO
>
selectByPhaseId
(
@Param
(
"phaseId"
)
Integer
phaseId
);
List
<
CrossPhaseLightsPO
>
selectByLightsId
(
@Param
(
"lightsId"
)
Integer
lightsId
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
View file @
13585937
...
@@ -4,6 +4,8 @@ import io.lettuce.core.dynamic.annotation.Param;
...
@@ -4,6 +4,8 @@ import io.lettuce.core.dynamic.annotation.Param;
import
net.wanji.web.po.scheme.CrossPhasePO
;
import
net.wanji.web.po.scheme.CrossPhasePO
;
import
org.springframework.stereotype.Repository
;
import
org.springframework.stereotype.Repository
;
import
java.util.List
;
/**
/**
* 相位基础信息;(t_base_cross_phase)表数据库访问层
* 相位基础信息;(t_base_cross_phase)表数据库访问层
* @author : hanbing
* @author : hanbing
...
@@ -19,4 +21,20 @@ public interface CrossPhaseMapper {
...
@@ -19,4 +21,20 @@ public interface CrossPhaseMapper {
void
insertOne
(
CrossPhasePO
crossPhasePO
);
void
insertOne
(
CrossPhasePO
crossPhasePO
);
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
CrossPhasePO
selectById
(
@Param
(
"coordPhaseId"
)
Integer
coordPhaseId
);
List
<
Integer
>
selectRingNumbersByCrossIdAndSchemeId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
);
List
<
Integer
>
selectGroupNumbers
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
,
@Param
(
"ringNo"
)
Integer
ringNo
);
List
<
CrossPhasePO
>
selectByGroupNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
,
@Param
(
"ringNo"
)
Integer
ringNo
,
@Param
(
"groupNumber"
)
Integer
groupNumber
);
List
<
CrossPhasePO
>
selectByIds
(
@Param
(
"ids"
)
List
<
Integer
>
ids
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossSchemeMapper.java
View file @
13585937
...
@@ -23,4 +23,6 @@ public interface CrossSchemeMapper {
...
@@ -23,4 +23,6 @@ public interface CrossSchemeMapper {
void
updateCoordPhase
(
@Param
(
"crossId"
)
String
crossId
,
void
updateCoordPhase
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeNo"
)
String
schemeNo
,
@Param
(
"schemeNo"
)
String
schemeNo
,
@Param
(
"phaseId"
)
Integer
phaseId
);
@Param
(
"phaseId"
)
Integer
phaseId
);
List
<
CrossSchemePO
>
selectByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
}
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/LaneInfoMapper.java
View file @
13585937
...
@@ -28,4 +28,6 @@ public interface LaneInfoMapper {
...
@@ -28,4 +28,6 @@ public interface LaneInfoMapper {
@Param
(
"dir"
)
Integer
dir
,
@Param
(
"dir"
)
Integer
dir
,
@Param
(
"turn"
)
Integer
turn
,
@Param
(
"turn"
)
Integer
turn
,
@Param
(
"category"
)
Integer
category
);
@Param
(
"category"
)
Integer
category
);
List
<
LaneInfoPO
>
selectByLaneIds
(
@Param
(
"laneIds"
)
List
<
String
>
laneIds
);
}
}
signal-control-service/src/main/java/net/wanji/web/service/scheme/SchemeConfigService.java
View file @
13585937
package
net
.
wanji
.
web
.
service
.
scheme
;
package
net
.
wanji
.
web
.
service
.
scheme
;
import
net.wanji.web.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
@@ -16,4 +17,6 @@ public interface SchemeConfigService {
...
@@ -16,4 +17,6 @@ public interface SchemeConfigService {
LightIdVO
getLightByLane
(
LaneIdDTO
laneIdDTO
);
LightIdVO
getLightByLane
(
LaneIdDTO
laneIdDTO
);
LaneIdsVO
getLanesByLight
(
LightIdDTO
lightIdDTO
);
LaneIdsVO
getLanesByLight
(
LightIdDTO
lightIdDTO
);
SaveSchemeConfigDTO
listSchemeConfig
(
CrossIdDTO
crossIdDTO
);
}
}
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/SchemeConfigServiceImpl.java
View file @
13585937
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
package
net
.
wanji
.
web
.
service
.
scheme
.
impl
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.exception.LightsModifyException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.dto.CrossIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
...
@@ -18,6 +20,7 @@ import net.wanji.web.po.scheme.CrossLightsPO;
...
@@ -18,6 +20,7 @@ import net.wanji.web.po.scheme.CrossLightsPO;
import
net.wanji.web.po.scheme.CrossPhaseLightsPO
;
import
net.wanji.web.po.scheme.CrossPhaseLightsPO
;
import
net.wanji.web.po.scheme.CrossPhasePO
;
import
net.wanji.web.po.scheme.CrossPhasePO
;
import
net.wanji.web.po.scheme.CrossSchemePO
;
import
net.wanji.web.po.scheme.CrossSchemePO
;
import
net.wanji.web.po.scheme.LaneInfoPO
;
import
net.wanji.web.service.scheme.SchemeConfigService
;
import
net.wanji.web.service.scheme.SchemeConfigService
;
import
net.wanji.web.vo.scheme.LaneIdsVO
;
import
net.wanji.web.vo.scheme.LaneIdsVO
;
import
net.wanji.web.vo.scheme.LightIdVO
;
import
net.wanji.web.vo.scheme.LightIdVO
;
...
@@ -25,11 +28,13 @@ import org.springframework.stereotype.Service;
...
@@ -25,11 +28,13 @@ import org.springframework.stereotype.Service;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.TreeSet
;
import
java.util.stream.Collectors
;
import
java.util.stream.Collectors
;
/**
/**
...
@@ -96,6 +101,266 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
...
@@ -96,6 +101,266 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
return
laneIdsVO
;
return
laneIdsVO
;
}
}
@Override
@Transactional
public
SaveSchemeConfigDTO
listSchemeConfig
(
CrossIdDTO
crossIdDTO
)
{
String
crossId
=
crossIdDTO
.
getCrossId
();
SaveSchemeConfigDTO
saveSchemeConfigDTO
=
new
SaveSchemeConfigDTO
();
saveSchemeConfigDTO
.
setCrossId
(
crossId
);
// 构造方案列表
List
<
SaveSchemeConfigDTO
.
PhaseScheme
>
phaseSchemeList
=
buildPhaseSchemeList
(
crossId
);
saveSchemeConfigDTO
.
setPhaseSchemeList
(
phaseSchemeList
);
// // 定义环式还是阶段式
// if (saveSchemeConfigDTO.getTimeType() == null) {
// saveSchemeConfigDTO.setTimeType();
// }
return
saveSchemeConfigDTO
;
}
/**
* 构造方案列表
*
* @author Kent HAN
* @date 2023/1/12 9:23
* @param crossId
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.PhaseScheme>
*/
private
List
<
SaveSchemeConfigDTO
.
PhaseScheme
>
buildPhaseSchemeList
(
String
crossId
)
{
List
<
SaveSchemeConfigDTO
.
PhaseScheme
>
phaseSchemeList
=
new
ArrayList
<>();
List
<
CrossSchemePO
>
crossSchemePOList
=
crossSchemeMapper
.
selectByCrossId
(
crossId
);
for
(
CrossSchemePO
crossSchemePO
:
crossSchemePOList
)
{
SaveSchemeConfigDTO
.
PhaseScheme
phaseScheme
=
new
SaveSchemeConfigDTO
.
PhaseScheme
();
phaseScheme
.
setSchemeNo
(
crossSchemePO
.
getSchemeNo
());
phaseScheme
.
setName
(
crossSchemePO
.
getName
());
// 获取协调相位号
Integer
coordPhaseId
=
crossSchemePO
.
getCoordPhase
();
CrossPhasePO
crossPhasePO
=
crossPhaseMapper
.
selectById
(
coordPhaseId
);
phaseScheme
.
setCoordPhaseNo
(
crossPhasePO
.
getPhaseNo
());
phaseScheme
.
setCycle
(
crossSchemePO
.
getCycle
());
phaseScheme
.
setOffset
(
crossSchemePO
.
getOffset
());
// 构造环列表
String
schemeNo
=
phaseScheme
.
getSchemeNo
();
Integer
schemeId
=
crossSchemeMapper
.
selectIdByCrossIdAndSchemeNo
(
crossId
,
schemeNo
);
List
<
SaveSchemeConfigDTO
.
RingListElement
>
ringList
=
buildRingList
(
crossId
,
schemeId
);
phaseScheme
.
setRingList
(
ringList
);
// 构造特殊控制列表
// phaseScheme.setSpecialControlModeList();
phaseSchemeList
.
add
(
phaseScheme
);
}
return
phaseSchemeList
;
}
/**
* 构造环列表
*
* @author Kent HAN
* @date 2023/1/12 9:28
* @param crossId
* @param schemeId
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.RingListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
RingListElement
>
buildRingList
(
String
crossId
,
Integer
schemeId
)
{
List
<
SaveSchemeConfigDTO
.
RingListElement
>
ringlist
=
new
ArrayList
<>();
List
<
Integer
>
ringNoList
=
crossPhaseMapper
.
selectRingNumbersByCrossIdAndSchemeId
(
crossId
,
schemeId
);
for
(
Integer
ringNo
:
ringNoList
)
{
SaveSchemeConfigDTO
.
RingListElement
ringListElement
=
new
SaveSchemeConfigDTO
.
RingListElement
();
if
(
ringNo
!=
0
)
{
ringListElement
.
setRingNo
(
ringNo
);
// 构造组列表
List
<
SaveSchemeConfigDTO
.
GroupListElement
>
groupList
=
buildGroupList
(
crossId
,
schemeId
,
ringNo
);
ringListElement
.
setGroupList
(
groupList
);
ringlist
.
add
(
ringListElement
);
}
}
return
ringlist
;
}
/**
* 构造组列表
*
* @author Kent HAN
* @date 2023/1/12 9:42
* @param crossId
* @param schemeId
* @param ringNo
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.GroupListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
GroupListElement
>
buildGroupList
(
String
crossId
,
Integer
schemeId
,
Integer
ringNo
)
{
List
<
SaveSchemeConfigDTO
.
GroupListElement
>
groupList
=
new
ArrayList
<>();
List
<
Integer
>
groupNumbers
=
crossPhaseMapper
.
selectGroupNumbers
(
crossId
,
schemeId
,
ringNo
);
for
(
Integer
groupNumber
:
groupNumbers
)
{
SaveSchemeConfigDTO
.
GroupListElement
groupListElement
=
new
SaveSchemeConfigDTO
.
GroupListElement
();
groupListElement
.
setGroupNo
(
groupNumber
);
// 构造相位列表
List
<
SaveSchemeConfigDTO
.
PhaseListElement
>
phaseList
=
buildPhaseList
(
crossId
,
schemeId
,
ringNo
,
groupNumber
);
groupListElement
.
setPhaseList
(
phaseList
);
groupList
.
add
(
groupListElement
);
}
return
groupList
;
}
/**
* 构造相位列表
*
* @author Kent HAN
* @date 2023/1/12 14:58
* @param crossId
* @param schemeId
* @param ringNo
* @param groupNumber
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.PhaseListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
PhaseListElement
>
buildPhaseList
(
String
crossId
,
Integer
schemeId
,
Integer
ringNo
,
Integer
groupNumber
)
{
List
<
SaveSchemeConfigDTO
.
PhaseListElement
>
phaseList
=
new
ArrayList
<>();
List
<
CrossPhasePO
>
crossPhasePOList
=
crossPhaseMapper
.
selectByGroupNo
(
crossId
,
schemeId
,
ringNo
,
groupNumber
);
for
(
CrossPhasePO
crossPhasePO
:
crossPhasePOList
)
{
SaveSchemeConfigDTO
.
PhaseListElement
phaseListElement
=
new
SaveSchemeConfigDTO
.
PhaseListElement
();
String
phaseNo
=
crossPhasePO
.
getPhaseNo
();
phaseListElement
.
setPhaseNo
(
phaseNo
);
Integer
phaseType
=
crossPhasePO
.
getPhaseType
();
phaseListElement
.
setPhaseType
(
phaseType
);
phaseListElement
.
setMinGreenTime
(
crossPhasePO
.
getMinGreenTime
());
phaseListElement
.
setMaxGreenTime
(
crossPhasePO
.
getMaxGreenTime
());
phaseListElement
.
setGreenTime
(
crossPhasePO
.
getGreenTime
());
phaseListElement
.
setGreenFlashTime
(
crossPhasePO
.
getGreenFlashTime
());
phaseListElement
.
setYellowFlashTime
(
crossPhasePO
.
getYellowFlashTime
());
phaseListElement
.
setRedFlashTime
(
crossPhasePO
.
getRedFlashTime
());
phaseListElement
.
setYellowTime
(
crossPhasePO
.
getYellowTime
());
phaseListElement
.
setRedTime
(
crossPhasePO
.
getRedTime
());
// 特殊控制
Integer
controlMode
=
crossPhasePO
.
getControlMode
();
if
(
controlMode
==
7
)
{
phaseListElement
.
setYellowFlash
(
1
);
}
else
if
(
controlMode
==
4
)
{
phaseListElement
.
setIsRed
(
1
);
}
else
if
(
controlMode
==
2
)
{
phaseListElement
.
setIsGreen
(
1
);
}
else
if
(
controlMode
==
6
)
{
phaseListElement
.
setGreenFlash
(
1
);
}
// 伴随相位的母相位列表
Integer
phaseId
=
crossPhaseMapper
.
selectIdByCrossIdAndPhaseNo
(
crossId
,
schemeId
,
phaseNo
);
if
(
phaseType
==
3
)
{
List
<
String
>
accompanyPhaseNoList
=
new
ArrayList
<>();
List
<
Integer
>
superIdList
=
crossAccompanyPhaseMapper
.
selectByPhaseId
(
phaseId
);
List
<
CrossPhasePO
>
superList
=
crossPhaseMapper
.
selectByIds
(
superIdList
);
for
(
CrossPhasePO
phasePO
:
superList
)
{
accompanyPhaseNoList
.
add
(
phasePO
.
getPhaseNo
());
}
phaseListElement
.
setAccompanyPhaseNoList
(
accompanyPhaseNoList
);
}
// 构造方向列表
List
<
SaveSchemeConfigDTO
.
DirListElement
>
dirList
=
buildDirList
(
crossId
,
phaseId
);
phaseListElement
.
setDirList
(
dirList
);
phaseList
.
add
(
phaseListElement
);
}
return
phaseList
;
}
/**
* 构造方向列表
*
* @author Kent HAN
* @date 2023/1/12 15:02
* @param crossId
* @param phaseId
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.DirListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
DirListElement
>
buildDirList
(
String
crossId
,
Integer
phaseId
)
{
List
<
SaveSchemeConfigDTO
.
DirListElement
>
dirList
=
new
ArrayList
<>();
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
crossPhaseLightsMapper
.
selectByPhaseId
(
phaseId
);
Set
<
Integer
>
dirSet
=
new
HashSet
<>();
for
(
CrossPhaseLightsPO
crossPhaseLightsPO
:
crossPhaseLightsPOList
)
{
Integer
lightsId
=
crossPhaseLightsPO
.
getLightsId
();
CrossLightsPO
crossLightsPO
=
crossLightsMapper
.
selectById
(
lightsId
);
if
(
crossLightsPO
==
null
)
{
throw
new
LightsModifyException
(
"灯组配置已修改,需重新配置方案"
);
}
Integer
dir
=
crossLightsPO
.
getDir
();
dirSet
.
add
(
dir
);
}
for
(
Integer
dir
:
dirSet
)
{
SaveSchemeConfigDTO
.
DirListElement
dirListElement
=
new
SaveSchemeConfigDTO
.
DirListElement
();
dirListElement
.
setDir
(
dir
);
// 是否有行人相位
List
<
CrossLightsPO
>
crossLightsPOList
=
crossLightsMapper
.
selectByCrossIdAndDir
(
crossId
,
dir
);
for
(
CrossLightsPO
crossLightsPO
:
crossLightsPOList
)
{
Integer
type
=
crossLightsPO
.
getType
();
if
(
type
>=
20
&&
type
<
30
)
{
Integer
lightsId
=
crossLightsPO
.
getId
();
if
(
hasLightsId
(
lightsId
))
{
dirListElement
.
setHasPersonPhase
(
1
);
}
}
}
// 构造车道列表
List
<
SaveSchemeConfigDTO
.
LaneListElement
>
laneList
=
buildLaneList
(
crossId
,
dir
,
phaseId
);
dirListElement
.
setLaneList
(
laneList
);
dirList
.
add
(
dirListElement
);
}
return
dirList
;
}
/**
* 构造车道列表
*
* @author Kent HAN
* @date 2023/1/12 15:02
* @param crossId
* @param dir
* @param phaseId
* @return java.util.List<net.wanji.web.dto.SaveSchemeConfigDTO.LaneListElement>
*/
private
List
<
SaveSchemeConfigDTO
.
LaneListElement
>
buildLaneList
(
String
crossId
,
Integer
dir
,
Integer
phaseId
)
{
List
<
SaveSchemeConfigDTO
.
LaneListElement
>
laneList
=
new
ArrayList
<>();
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
crossPhaseLightsMapper
.
selectByPhaseId
(
phaseId
);
List
<
Integer
>
lightsIds
=
crossPhaseLightsPOList
.
stream
()
.
map
(
CrossPhaseLightsPO:
:
getLightsId
)
.
collect
(
Collectors
.
toList
());
List
<
CrossLightsPO
>
crossLightsPOList
=
crossLightsMapper
.
selectByLightsIdsAndDir
(
lightsIds
,
dir
);
for
(
CrossLightsPO
crossLightsPO
:
crossLightsPOList
)
{
Integer
type
=
crossLightsPO
.
getType
();
if
(
type
<
20
||
type
>=
30
)
{
// 非行人灯
Integer
lightsId
=
crossLightsPO
.
getId
();
List
<
CrossLaneLightsPO
>
crossLaneLightsPOList
=
crossLaneLightsMapper
.
selectByLightsId
(
lightsId
);
List
<
String
>
laneIds
=
crossLaneLightsPOList
.
stream
()
.
map
(
CrossLaneLightsPO:
:
getLaneId
)
.
collect
(
Collectors
.
toList
());
List
<
LaneInfoPO
>
laneInfoPOList
=
laneInfoMapper
.
selectByLaneIds
(
laneIds
);
// 根据转向去重
TreeSet
<
LaneInfoPO
>
laneInfoPOTreeSet
=
laneInfoPOList
.
stream
()
.
collect
(
Collectors
.
toCollection
(
()
->
new
TreeSet
<>(
Comparator
.
comparing
(
LaneInfoPO:
:
getTurn
))));
for
(
LaneInfoPO
laneInfoPO
:
laneInfoPOTreeSet
)
{
SaveSchemeConfigDTO
.
LaneListElement
laneListElement
=
new
SaveSchemeConfigDTO
.
LaneListElement
();
laneListElement
.
setDirection
(
laneInfoPO
.
getTurn
());
laneListElement
.
setLaneType
(
laneInfoPO
.
getCategory
());
laneList
.
add
(
laneListElement
);
}
}
}
return
laneList
;
}
private
boolean
hasLightsId
(
Integer
lightsId
)
{
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
crossPhaseLightsMapper
.
selectByLightsId
(
lightsId
);
if
(
crossPhaseLightsPOList
==
null
||
crossPhaseLightsPOList
.
size
()
==
0
)
{
return
false
;
}
return
true
;
}
private
void
handleRingTime
(
SaveSchemeConfigDTO
saveSchemeConfigDTO
)
{
private
void
handleRingTime
(
SaveSchemeConfigDTO
saveSchemeConfigDTO
)
{
// 更新方案基础信息表
// 更新方案基础信息表
updateCrossScheme
(
saveSchemeConfigDTO
);
updateCrossScheme
(
saveSchemeConfigDTO
);
...
@@ -242,6 +507,8 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
...
@@ -242,6 +507,8 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
crossAccompanyPhasePOList
.
add
(
crossAccompanyPhasePO
);
crossAccompanyPhasePOList
.
add
(
crossAccompanyPhasePO
);
}
}
crossAccompanyPhaseMapper
.
insertBatch
(
crossAccompanyPhasePOList
);
crossAccompanyPhaseMapper
.
insertBatch
(
crossAccompanyPhasePOList
);
// 更新相位灯组关系表
updateCrossPhaseLights
(
crossId
,
phase
,
accompanyPhaseId
);
}
}
}
}
}
}
...
...
signal-control-service/src/main/resources/mapper/scheme/CrossAccompanyPhaseMapper.xml
View file @
13585937
...
@@ -25,5 +25,11 @@
...
@@ -25,5 +25,11 @@
where cross_id = #{crossId}
where cross_id = #{crossId}
</delete>
</delete>
<select
id=
"selectByPhaseId"
resultType=
"java.lang.Integer"
>
select super_id
from t_base_cross_accompany_phase
where phase_id = #{phaseId}
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/CrossLaneLightsMapper.xml
View file @
13585937
...
@@ -56,5 +56,12 @@
...
@@ -56,5 +56,12 @@
where cross_id = #{crossId} and lights_id = #{lightId}
where cross_id = #{crossId} and lights_id = #{lightId}
</select>
</select>
<select
id=
"selectByLightsId"
resultMap=
"BaseResultMap"
>
select
id,lights_id,lane_id,cross_id,gmt_create,gmt_modified
from t_base_cross_lane_lights
where lights_id = #{lightsId}
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/CrossLightsMapper.xml
View file @
13585937
...
@@ -48,4 +48,21 @@
...
@@ -48,4 +48,21 @@
where cross_id = #{crossId} and dir = #{dir}
where cross_id = #{crossId} and dir = #{dir}
</select>
</select>
<select
id=
"selectById"
resultMap=
"BaseResultMap"
>
select
id,lights_no,type,dir,sort,cross_id,gmt_create,gmt_modified
from t_base_cross_lights
where id = #{id}
</select>
<select
id=
"selectByLightsIdsAndDir"
resultMap=
"BaseResultMap"
>
select
id,lights_no,type,dir,sort,cross_id,gmt_create,gmt_modified
from t_base_cross_lights
where dir = #{dir} and id in
<foreach
collection=
"lightsIds"
item=
"lightsId"
separator=
","
open=
"("
close=
")"
>
#{lightsId}
</foreach>
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/CrossPhaseLightsMapper.xml
View file @
13585937
...
@@ -25,5 +25,19 @@
...
@@ -25,5 +25,19 @@
where cross_id = #{crossId}
where cross_id = #{crossId}
</delete>
</delete>
<select
id=
"selectByPhaseId"
resultMap=
"BaseResultMap"
>
select
id,lights_id,phase_id,cross_id,gmt_create,gmt_modified
from t_base_cross_phase_lights
where phase_id = #{phaseId}
</select>
<select
id=
"selectByLightsId"
resultMap=
"BaseResultMap"
>
select
id,lights_id,phase_id,cross_id,gmt_create,gmt_modified
from t_base_cross_phase_lights
where lights_id = #{lightsId}
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
View file @
13585937
...
@@ -41,5 +41,44 @@
...
@@ -41,5 +41,44 @@
where cross_id = #{crossId} and plan_id = #{schemeId} and phase_no = #{coordPhaseNo}
where cross_id = #{crossId} and plan_id = #{schemeId} and phase_no = #{coordPhaseNo}
</select>
</select>
<select
id=
"selectById"
resultMap=
"BaseResultMap"
>
select
id,phase_no,name,sort,cross_id,plan_id,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time,gmt_create,gmt_modified
from t_base_cross_phase
where id = #{coordPhaseId}
</select>
<select
id=
"selectRingNumbersByCrossIdAndSchemeId"
resultType=
"java.lang.Integer"
>
select distinct ring_no
from t_base_cross_phase
where cross_id = #{crossId} and plan_id = #{schemeId}
order by ring_no
</select>
<select
id=
"selectGroupNumbers"
resultType=
"java.lang.Integer"
>
select distinct group_no
from t_base_cross_phase
where cross_id = #{crossId} and plan_id = #{schemeId} and ring_no = #{ringNo}
order by group_no
</select>
<select
id=
"selectByGroupNo"
resultMap=
"BaseResultMap"
>
select
id,phase_no,name,sort,cross_id,plan_id,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time,gmt_create,gmt_modified
from t_base_cross_phase
where cross_id = #{crossId} and plan_id = #{schemeId} and ring_no = #{ringNo} and group_no = #{groupNumber}
order by sort
</select>
<select
id=
"selectByIds"
resultMap=
"BaseResultMap"
>
select
id,phase_no,name,sort,cross_id,plan_id,ring_no,group_no,phase_type,control_mode,phase_time,green_time,green_flash_time,yellow_flash_time,red_flash_time,ped_flash_time,yellow_time,red_time,min_green_time,max_green_time,gmt_create,gmt_modified
from t_base_cross_phase
where id in
<foreach
collection=
"ids"
item=
"id"
separator=
","
open=
"("
close=
")"
>
#{id}
</foreach>
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/CrossSchemeMapper.xml
View file @
13585937
...
@@ -41,5 +41,12 @@
...
@@ -41,5 +41,12 @@
where cross_id = #{crossId} and scheme_no = #{schemeNo}
where cross_id = #{crossId} and scheme_no = #{schemeNo}
</select>
</select>
<select
id=
"selectByCrossId"
resultMap=
"BaseResultMap"
>
select
id,scheme_no,name,cross_id,cycle,coord_phase,offset,source,is_deleted,gmt_create,gmt_modified
from t_base_cross_scheme
where cross_id = #{crossId}
</select>
</mapper>
</mapper>
signal-control-service/src/main/resources/mapper/scheme/LaneInfoMapper.xml
View file @
13585937
...
@@ -60,4 +60,14 @@
...
@@ -60,4 +60,14 @@
limit 1
limit 1
</select>
</select>
<select
id=
"selectByLaneIds"
resultMap=
"BaseResultMap"
>
select id,code,sort,type,dir,turn,category,cross_id,rid,length,width,gmt_create,gmt_modified
from t_base_lane_info
where id in
<foreach
collection=
"laneIds"
item=
"laneId"
separator=
","
open=
"("
close=
")"
>
#{laneId}
</foreach>
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