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
ca26b13f
Commit
ca26b13f
authored
Nov 16, 2024
by
zhouleilei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
解决灯组id重复问题
parent
db0f71e3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
68 additions
and
13 deletions
+68
-13
StaticInfoServiceImpl.java
...wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
+68
-13
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
View file @
ca26b13f
...
...
@@ -23,10 +23,7 @@ import net.wanji.utc.hisense.pojo.dto.RingPhaseDTO;
import
net.wanji.utc.hisense.pojo.dto.StagePhaseDTO
;
import
net.wanji.utc.hisense.pojo.result.CoordinationStatus
;
import
net.wanji.utc.hisense.pojo.result.CrossSchemeRings
;
import
net.wanji.utc.hisense.pojo.view.VIntersectionView
;
import
net.wanji.utc.hisense.pojo.view.VNtcipChannelPhaseDTO
;
import
net.wanji.utc.hisense.pojo.view.VNtcipTimeBaseDayplanDTO
;
import
net.wanji.utc.hisense.pojo.view.VNtcipTimeBaseScheduleView
;
import
net.wanji.utc.hisense.pojo.view.*
;
import
net.wanji.utc.hisense.service.StaticInfoService
;
import
net.wanji.utc.hisense.util.CommonUtils
;
import
net.wanji.utc.hisense.util.OkHttpClientUtil
;
...
...
@@ -109,12 +106,70 @@ public class StaticInfoServiceImpl implements StaticInfoService {
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
new
ArrayList
<>();
List
<
CrossSchemePO
>
crossSchemeList
=
new
ArrayList
<>();
//查询该路口的所有方案
//TODO
// LambdaQueryWrapper<VIntersectionView> queryWrapper = new LambdaQueryWrapper<>();
// List<VIntersectionView> vIntersectionEntities = vIntersectionMapper.selectList(queryWrapper);
// vNtcipPatternMapper.selectList(null);
//从缓存中拿路口信息
CrossInfoPO
crossInfoPO
=
CrossInfoCache
.
getCrossInfoCache
().
get
(
crossId
);
LambdaQueryWrapper
<
VNtcipPatternView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
queryWrapper
.
eq
(
VNtcipPatternView:
:
getCIntsID
,
crossInfoPO
.
getCode
());
List
<
VNtcipPatternView
>
vNtcipPatternViews
=
vNtcipPatternMapper
.
selectList
(
queryWrapper
);
for
(
VNtcipPatternView
vNtcipPatternView
:
vNtcipPatternViews
)
{
CrossSchemeRingsDTO
crossSchemeRingsDTO
=
new
CrossSchemeRingsDTO
();
crossSchemeRingsDTO
.
setCrossId
(
crossId
);
crossSchemeRingsDTO
.
setPattern
(
vNtcipPatternView
.
getNPatternNumber
()+
""
);
//查询方案环图请求
CrossSchemeRings
crossSchemeRings
=
crossSchemeRings
(
crossSchemeRingsDTO
);
if
(
Optional
.
ofNullable
(
crossSchemeRings
).
isPresent
())
{
//环数
int
ringCount
=
Integer
.
parseInt
(
crossSchemeRings
.
getRingCount
());
//周期长度
String
cycleLen
=
crossSchemeRings
.
getCycleLen
();
JSONObject
cycleJSONObject
=
crossSchemeRings
.
getCycleList
();
//相位差
String
offset
=
crossSchemeRings
.
getOffset
();
int
cycle
=
Integer
.
valueOf
(
cycleLen
);
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
//方案号
int
schemeNo
=
(
Integer
.
valueOf
(
crossSchemeRings
.
getPattern
())
+
2
)
/
3
;
crossSchemePO
.
setSchemeNo
(
schemeNo
+
""
);
crossSchemePO
.
setName
(
"海信方案:"
+
schemeNo
);
crossSchemePO
.
setCrossId
(
crossId
);
crossSchemePO
.
setCycle
(
cycle
);
//协调相位id先默认给1
crossSchemePO
.
setCoordPhase
(
1
);
crossSchemePO
.
setOffset
(
Integer
.
valueOf
(
offset
));
//来源默认信号机
crossSchemePO
.
setSource
(
1
);
//默认给0
crossSchemePO
.
setIsDeleted
(
0
);
//默认给0
crossSchemePO
.
setStatus
(
0
);
crossSchemePO
.
setGmtCreate
(
null
);
crossSchemePO
.
setGmtModified
(
null
);
crossSchemeList
.
add
(
crossSchemePO
);
List
<
CrossSchemeRings
.
Phase
>
phaseList
=
crossSchemeRings
.
getPhaseList
();
CrossSchemeRings
.
Phase
phase
=
phaseList
.
get
(
0
);
//16 个相位的红灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
redTime
=
phase
.
getRedTime
().
split
(
" "
);
//16 个相位的绿灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
greenTime
=
phase
.
getGreenTime
().
split
(
" "
);
//16 个相位的黄灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
yellowTime
=
phase
.
getYellowTime
().
split
(
" "
);
//16 个相位的最小绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
minGTime
=
phase
.
getMinGTime
().
split
(
" "
);
//16 个相位的最大绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
maxGTime
=
phase
.
getMaxGTime
().
split
(
" "
);
//封装环和环上相位数据
Map
<
Integer
,
List
<
RingPhaseDTO
>>
ringPhasesMap
=
getRingPhasesMap
(
ringCount
,
cycleJSONObject
,
redTime
,
greenTime
,
yellowTime
,
minGTime
,
maxGTime
);
//16 个相位的放行方向,每个相位由 8 字节整型值存储(最多支持 7 个放行方向),每个字节表示一个放行方向,
String
[]
channelDim
=
phase
.
getChannelDim
().
split
(
" "
);
//数据处理
getStagesByRings
(
cycle
,
ringCount
,
crossId
,
schemeNo
,
ringPhasesMap
,
crossLightsList
,
crossPhaseList
,
crossPhaseLightsPOList
,
channelDim
);
}
}
//查询当前运行的方案
CoordinationStatus
coordinationStatus
=
crossPlan
(
crossId
);
/*
CoordinationStatus coordinationStatus = crossPlan(crossId);
if (Optional.ofNullable(coordinationStatus).isPresent()) {
CrossSchemeRingsDTO crossSchemeRingsDTO = new CrossSchemeRingsDTO();
crossSchemeRingsDTO.setCrossId(crossId);
...
...
@@ -170,7 +225,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//数据处理
getStagesByRings(cycle, ringCount, crossId, schemeNo, ringPhasesMap, crossLightsList, crossPhaseList, crossPhaseLightsPOList, channelDim);
}
}
}
*/
phaseLightsVO
.
setCrossPhaseLightsPOList
(
crossPhaseLightsPOList
);
phaseLightsVO
.
setCrossLightsList
(
crossLightsList
);
phaseLightsVO
.
setCrossSchemeList
(
crossSchemeList
);
...
...
@@ -429,8 +484,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//灯组
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
lightNum
.
getAndIncrement
();
crossLightsPO
.
setLightsNo
(
lightNum
.
get
()
+
""
);
crossLightsPO
.
setName
(
"灯组"
+
lightNum
.
get
());
crossLightsPO
.
setLightsNo
(
schemeNo
+
""
+
lightNum
.
get
()
);
crossLightsPO
.
setName
(
"灯组"
+
schemeNo
+
lightNum
.
get
());
//默认0
crossLightsPO
.
setType
(
0
);
if
(
wjPerson
!=
0
)
{
...
...
@@ -448,7 +503,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
//灯组与相位关系
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
crossPhaseLightsPO
.
setLightsId
(
lightNum
.
get
(
));
crossPhaseLightsPO
.
setLightsId
(
Integer
.
valueOf
(
schemeNo
+
""
+
lightNum
.
get
()
));
crossPhaseLightsPO
.
setPhaseId
(
phaseNum
.
get
());
crossPhaseLightsPO
.
setCrossId
(
crossId
);
crossPhaseLightsPO
.
setGmtCreate
(
null
);
...
...
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