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
jinan
traffic-signal-platform
Commits
acd2428d
Commit
acd2428d
authored
Jan 06, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
方案管理-方案配置,保存相位方案和配时方案
parent
3513e9bc
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
69 additions
and
32 deletions
+69
-32
LaneListElement.java
...vice/src/main/java/net/wanji/web/dto/LaneListElement.java
+2
-0
LedConfigListElement.java
...src/main/java/net/wanji/web/dto/LedConfigListElement.java
+2
-0
SaveSchemeConfigDTO.java
.../src/main/java/net/wanji/web/dto/SaveSchemeConfigDTO.java
+19
-14
CrossLaneLightsMapper.java
...va/net/wanji/web/mapper/scheme/CrossLaneLightsMapper.java
+1
-1
CrossPhaseMapper.java
...in/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
+3
-1
CrossSchemeMapper.java
...n/java/net/wanji/web/mapper/scheme/CrossSchemeMapper.java
+4
-0
LaneInfoMapper.java
...main/java/net/wanji/web/mapper/scheme/LaneInfoMapper.java
+3
-2
CrossConfigServiceImpl.java
...wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
+3
-1
SchemeConfigServiceImpl.java
...anji/web/service/scheme/impl/SchemeConfigServiceImpl.java
+23
-10
CrossPhaseMapper.xml
...ice/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
+1
-1
CrossSchemeMapper.xml
...ce/src/main/resources/mapper/scheme/CrossSchemeMapper.xml
+6
-0
LaneInfoMapper.xml
...rvice/src/main/resources/mapper/scheme/LaneInfoMapper.xml
+2
-2
No files found.
signal-control-service/src/main/java/net/wanji/web/dto/LaneListElement.java
View file @
acd2428d
...
...
@@ -7,6 +7,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public
class
LaneListElement
{
@ApiModelProperty
(
value
=
"车道ID(路口ID_方向_车道类型_序号)"
,
required
=
true
)
private
String
id
;
@ApiModelProperty
(
value
=
"0无方向 箭头 1:直行2:左转,3:右转,4:掉头,5:左直,6:右直,7:左转掉头,8:左直掉头, 9:左直右, 10:左右转 11:左弯 12:右弯"
,
required
=
true
)
private
Integer
direction
;
@ApiModelProperty
(
value
=
"车道代码"
,
required
=
true
)
...
...
signal-control-service/src/main/java/net/wanji/web/dto/LedConfigListElement.java
View file @
acd2428d
...
...
@@ -11,6 +11,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@Data
public
class
LedConfigListElement
{
@ApiModelProperty
(
value
=
"灯组ID"
,
required
=
true
)
private
Integer
id
;
@ApiModelProperty
(
value
=
"灯组代码"
,
required
=
true
)
private
String
code
;
@ApiModelProperty
(
value
=
"灯组类型 1机动车;2非机动车;3公交专用;4行人"
,
required
=
true
)
...
...
signal-control-service/src/main/java/net/wanji/web/dto/SaveSchemeConfigDTO.java
View file @
acd2428d
...
...
@@ -26,27 +26,30 @@ public class SaveSchemeConfigDTO {
private
String
schemeNo
;
@ApiModelProperty
(
value
=
"方案名称"
,
required
=
true
)
private
String
name
;
private
List
<
Ring
>
ringList
;
// 环列表
private
List
<
Ring
ListElement
>
ringList
;
// 环列表
@Data
public
static
class
Ring
{
public
static
class
Ring
ListElement
{
@ApiModelProperty
(
value
=
"环号"
,
required
=
true
)
private
Integer
ringNo
;
List
<
Phase
>
phaseList
;
// 相位列表
public
static
class
Phase
{
@ApiModelProperty
(
value
=
"相位序号"
,
required
=
true
)
List
<
PhaseListElement
>
phaseList
;
// 相位列表
@Data
public
static
class
PhaseListElement
{
@ApiModelProperty
(
value
=
"相位序号"
,
required
=
false
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"相位号"
,
required
=
true
)
private
String
phaseNo
;
private
List
<
Lane
>
laneList
;
// 车道列表
private
List
<
Lane
ListElement
>
laneList
;
// 车道列表
@Data
public
static
class
Lane
{
public
static
class
Lane
ListElement
{
@ApiModelProperty
(
value
=
"车道序号,从左车道开始编号11、12、13..."
,
required
=
true
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
required
=
true
)
private
Integer
dir
;
@ApiModelProperty
(
value
=
"车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头"
,
required
=
true
)
private
Integer
turn
;
@ApiModelProperty
(
value
=
"车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐"
,
required
=
true
)
private
Integer
category
;
}
}
}
...
...
@@ -64,25 +67,27 @@ public class SaveSchemeConfigDTO {
private
Integer
cycle
;
@ApiModelProperty
(
value
=
"相位差"
,
required
=
true
)
private
Integer
offset
;
private
List
<
Ring
>
ringList
;
// 环列表
private
List
<
TimeRingListElement
>
ringList
;
// 环列表
@Data
public
static
class
Ring
{
public
static
class
TimeRingListElement
{
@ApiModelProperty
(
value
=
"环号"
,
required
=
true
)
private
Integer
ringNo
;
List
<
Phase
>
phaseList
;
// 相位列表
List
<
TimePhaseListElement
>
phaseList
;
// 相位列表
@Data
public
static
class
Phase
{
@ApiModelProperty
(
value
=
"相位序号"
,
required
=
tru
e
)
public
static
class
TimePhaseListElement
{
@ApiModelProperty
(
value
=
"相位序号"
,
required
=
fals
e
)
private
Integer
sort
;
@ApiModelProperty
(
value
=
"相位号"
,
required
=
true
)
private
String
phaseNo
;
private
List
<
Lane
>
laneList
;
// 车道列表
private
List
<
TimeLaneListElement
>
laneList
;
// 车道列表
@Data
public
static
class
Lane
{
public
static
class
TimeLaneListElement
{
@ApiModelProperty
(
value
=
"车道方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
required
=
true
)
private
Integer
dir
;
@ApiModelProperty
(
value
=
"车道转向:1左转;2直行;3右转;4掉头;5左直;6直右;7左直右;8左右;9左转掉头;10直行掉头;11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头"
,
required
=
true
)
private
Integer
turn
;
@ApiModelProperty
(
value
=
"车道类别:1机动车;2非机动车;3公交专用;4可变;5潮汐"
,
required
=
true
)
private
Integer
category
;
}
@ApiModelProperty
(
value
=
"最小绿灯时间"
,
required
=
true
)
private
Integer
minGreenTime
=
0
;
...
...
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossLaneLightsMapper.java
View file @
acd2428d
...
...
@@ -20,5 +20,5 @@ public interface CrossLaneLightsMapper {
String
selectLightsCodeByLaneId
(
@Param
(
"laneId"
)
String
laneId
);
Integer
selectLightsIdByLaneId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"laneId"
)
Integer
laneId
);
Integer
selectLightsIdByLaneId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"laneId"
)
String
laneId
);
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossPhaseMapper.java
View file @
acd2428d
...
...
@@ -12,7 +12,9 @@ import org.springframework.stereotype.Repository;
@Repository
public
interface
CrossPhaseMapper
{
Integer
selectIdByCrossIdAndPhaseNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"coordPhaseNo"
)
String
coordPhaseNo
);
Integer
selectIdByCrossIdAndPhaseNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
Integer
schemeId
,
@Param
(
"coordPhaseNo"
)
String
coordPhaseNo
);
void
insertOne
(
CrossPhasePO
crossPhasePO
);
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/CrossSchemeMapper.java
View file @
acd2428d
...
...
@@ -19,4 +19,8 @@ public interface CrossSchemeMapper {
void
insertBatch
(
@Param
(
"entities"
)
List
<
CrossSchemePO
>
entities
);
Integer
selectIdByCrossIdAndSchemeNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeNo"
)
String
schemeNo
);
void
updateCoordPhase
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeNo"
)
String
schemeNo
,
@Param
(
"phaseId"
)
Integer
phaseId
);
}
signal-control-service/src/main/java/net/wanji/web/mapper/scheme/LaneInfoMapper.java
View file @
acd2428d
...
...
@@ -24,7 +24,8 @@ public interface LaneInfoMapper {
@Param
(
"dir"
)
Integer
dir
,
@Param
(
"code"
)
String
code
);
Integer
selectIdByCrossIdDirTurn
(
@Param
(
"crossId"
)
String
crossId
,
String
selectIdByCrossIdDirTurn
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"dir"
)
Integer
dir
,
@Param
(
"turn"
)
Integer
turn
);
@Param
(
"turn"
)
Integer
turn
,
@Param
(
"category"
)
Integer
category
);
}
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/CrossConfigServiceImpl.java
View file @
acd2428d
...
...
@@ -257,6 +257,7 @@ public class CrossConfigServiceImpl implements CrossConfigService {
// 赋值给ledConfigList
for
(
CrossLightsPO
crossLightsPO
:
crossLightsPOList
)
{
LedConfigListElement
ledConfigListElement
=
new
LedConfigListElement
();
ledConfigListElement
.
setId
(
crossLightsPO
.
getId
());
ledConfigListElement
.
setOrder
(
crossLightsPO
.
getSort
());
ledConfigListElement
.
setCode
(
crossLightsPO
.
getLightsNo
());
// 处理type
...
...
@@ -321,11 +322,12 @@ public class CrossConfigServiceImpl implements CrossConfigService {
List
<
LaneListElement
>
laneListElementList
=
new
ArrayList
<>();
for
(
LaneInfoPO
laneInfoPO
:
value
)
{
LaneListElement
laneListElement
=
new
LaneListElement
();
String
laneId
=
laneInfoPO
.
getId
();
laneListElement
.
setId
(
laneId
);
laneListElement
.
setDirection
(
laneInfoPO
.
getTurn
());
laneListElement
.
setLaneType
(
laneInfoPO
.
getCategory
());
laneListElement
.
setName
(
laneInfoPO
.
getCode
());
// 根据laneId获取灯组代码
String
laneId
=
laneInfoPO
.
getId
();
String
lightsCode
=
crossLaneLightsMapper
.
selectLightsCodeByLaneId
(
laneId
);
if
(
lightsCode
!=
null
)
{
laneListElement
.
setLedNum
(
lightsCode
);
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/SchemeConfigServiceImpl.java
View file @
acd2428d
...
...
@@ -56,18 +56,32 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
updateCrossScheme
(
saveSchemeConfigDTO
);
// 更新相位基础表、相位灯组关系表
updateCrossPhase
(
saveSchemeConfigDTO
);
// 更新协调相位ID
updateCoordPhase
(
saveSchemeConfigDTO
);
}
private
void
updateCoordPhase
(
SaveSchemeConfigDTO
saveSchemeConfigDTO
)
{
String
crossId
=
saveSchemeConfigDTO
.
getCrossId
();
List
<
SaveSchemeConfigDTO
.
TimeScheme
>
timeSchemeList
=
saveSchemeConfigDTO
.
getTimeSchemeList
();
for
(
SaveSchemeConfigDTO
.
TimeScheme
timeScheme
:
timeSchemeList
)
{
String
schemeNo
=
timeScheme
.
getSchemeNo
();
Integer
schemeId
=
crossSchemeMapper
.
selectIdByCrossIdAndSchemeNo
(
crossId
,
schemeNo
);
String
coordPhaseNo
=
timeScheme
.
getCoordPhaseNo
();
Integer
phaseId
=
crossPhaseMapper
.
selectIdByCrossIdAndPhaseNo
(
crossId
,
schemeId
,
coordPhaseNo
);
crossSchemeMapper
.
updateCoordPhase
(
crossId
,
schemeNo
,
phaseId
);
}
}
private
void
updateCrossPhase
(
SaveSchemeConfigDTO
saveSchemeConfigDTO
)
{
String
crossId
=
saveSchemeConfigDTO
.
getCrossId
();
for
(
SaveSchemeConfigDTO
.
TimeScheme
timeScheme
:
saveSchemeConfigDTO
.
getTimeSchemeList
())
{
String
schemeNo
=
timeScheme
.
getSchemeNo
();
List
<
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
>
ringList
=
timeScheme
.
getRingList
();
for
(
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
ring
:
ringList
)
{
List
<
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
>
ringList
=
timeScheme
.
getRingList
();
for
(
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
ring
:
ringList
)
{
Integer
ringNo
=
ring
.
getRingNo
();
List
<
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
.
Phase
>
phaseList
=
ring
.
getPhaseList
();
List
<
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
.
TimePhaseListElement
>
phaseList
=
ring
.
getPhaseList
();
for
(
int
i
=
0
;
i
<
phaseList
.
size
();
i
++)
{
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
.
Phase
phase
=
phaseList
.
get
(
i
);
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
.
TimePhaseListElement
phase
=
phaseList
.
get
(
i
);
String
phaseNo
=
phase
.
getPhaseNo
();
Integer
yellowFlash
=
phase
.
getYellowFlash
();
Integer
redFlash
=
phase
.
getRedFlash
();
...
...
@@ -110,15 +124,17 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
}
}
private
void
updateCrossPhaseLights
(
String
crossId
,
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
.
Phase
phase
,
private
void
updateCrossPhaseLights
(
String
crossId
,
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
.
TimePhaseListElement
phase
,
Integer
phaseId
)
{
Set
<
CrossPhaseLightsPO
>
crossPhaseLightsPOSet
=
new
HashSet
<>();
for
(
SaveSchemeConfigDTO
.
TimeScheme
.
Ring
.
Phase
.
Lane
lane
:
phase
.
getLaneList
())
{
for
(
SaveSchemeConfigDTO
.
TimeScheme
.
TimeRingListElement
.
TimePhaseListElement
.
TimeLaneListElement
lane
:
phase
.
getLaneList
())
{
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
Integer
dir
=
lane
.
getDir
();
Integer
turn
=
lane
.
getTurn
();
Integer
category
=
lane
.
getCategory
();
// 根据车道获得灯组ID
Integer
laneId
=
laneInfoMapper
.
selectIdByCrossIdDirTurn
(
crossId
,
dir
,
turn
);
String
laneId
=
laneInfoMapper
.
selectIdByCrossIdDirTurn
(
crossId
,
dir
,
turn
,
category
);
Integer
lightsId
=
crossLaneLightsMapper
.
selectLightsIdByLaneId
(
crossId
,
laneId
);
crossPhaseLightsPO
.
setLightsId
(
lightsId
);
crossPhaseLightsPO
.
setPhaseId
(
phaseId
);
...
...
@@ -146,9 +162,6 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
String
schemeNoInTime
=
timeScheme
.
getSchemeNo
();
if
(
Objects
.
equals
(
schemeNo
,
schemeNoInTime
))
{
crossSchemePO
.
setCycle
(
timeScheme
.
getCycle
());
String
coordPhaseNo
=
timeScheme
.
getCoordPhaseNo
();
Integer
coordPhaseId
=
crossPhaseMapper
.
selectIdByCrossIdAndPhaseNo
(
crossId
,
coordPhaseNo
);
crossSchemePO
.
setCoordPhase
(
coordPhaseId
);
crossSchemePO
.
setOffset
(
timeScheme
.
getOffset
());
}
}
...
...
signal-control-service/src/main/resources/mapper/scheme/CrossPhaseMapper.xml
View file @
acd2428d
...
...
@@ -31,7 +31,7 @@
<select
id=
"selectIdByCrossIdAndPhaseNo"
resultType=
"java.lang.Integer"
>
select id from t_base_cross_phase
where cross_id = #{crossId} and phase_no = #{coordPhaseNo}
where cross_id = #{crossId} and p
lan_id = #{schemeId} and p
hase_no = #{coordPhaseNo}
</select>
...
...
signal-control-service/src/main/resources/mapper/scheme/CrossSchemeMapper.xml
View file @
acd2428d
...
...
@@ -25,6 +25,12 @@
</foreach>
</insert>
<update
id=
"updateCoordPhase"
>
update t_base_cross_scheme
set coord_phase = #{phaseId}
where cross_id = #{crossId} and scheme_no = #{schemeNo}
</update>
<delete
id=
"deleteByCrossId"
>
delete from t_base_cross_scheme
where cross_id = #{crossId}
...
...
signal-control-service/src/main/resources/mapper/scheme/LaneInfoMapper.xml
View file @
acd2428d
...
...
@@ -53,10 +53,10 @@
where cross_id = #{crossId} and dir = #{dir} and code = #{code}
</select>
<select
id=
"selectIdByCrossIdDirTurn"
resultType=
"java.lang.
Integer
"
>
<select
id=
"selectIdByCrossIdDirTurn"
resultType=
"java.lang.
String
"
>
select id
from t_base_lane_info
where cross_id = #{crossId} and dir = #{dir} and turn = #{turn}
where cross_id = #{crossId} and dir = #{dir} and turn = #{turn}
and category = #{category}
limit 1
</select>
...
...
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