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
88dd9f6a
Commit
88dd9f6a
authored
Nov 23, 2024
by
zhouleilei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
神思现场测试相位步进和延长步进功能,加上真实下发海信逻辑。下发方案优化策略开发
parent
d98ac14a
Changes
5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
189 additions
and
66 deletions
+189
-66
ControlCommandServiceImpl.java
...i/utc/hisense/service/impl/ControlCommandServiceImpl.java
+92
-29
StaticInfoServiceImpl.java
...wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
+29
-37
CrossSchemeOptLogPO.java
...ava/net/wanji/databus/dao/entity/CrossSchemeOptLogPO.java
+49
-0
CrossSchemeOptLogMapper.java
...net/wanji/databus/dao/mapper/CrossSchemeOptLogMapper.java
+13
-0
CrossSchemeOptLogMapper.xml
...bus/src/main/resources/mapper/CrossSchemeOptLogMapper.xml
+6
-0
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/ControlCommandServiceImpl.java
View file @
88dd9f6a
This diff is collapsed.
Click to expand it.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
View file @
88dd9f6a
...
...
@@ -152,18 +152,9 @@ public class StaticInfoServiceImpl implements StaticInfoService {
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
,
maxGTim
e
);
Map
<
Integer
,
List
<
RingPhaseDTO
>>
ringPhasesMap
=
getRingPhasesMap
(
ringCount
,
cycleJSONObject
,
phas
e
);
//16 个相位的放行方向,每个相位由 8 字节整型值存储(最多支持 7 个放行方向),每个字节表示一个放行方向,
String
[]
channelDim
=
phase
.
getChannelDim
().
split
(
" "
);
//数据处理
...
...
@@ -186,7 +177,18 @@ public class StaticInfoServiceImpl implements StaticInfoService {
* @Param greenTime 绿
* @Param yellowTime 黄
**/
private
Map
<
Integer
,
List
<
RingPhaseDTO
>>
getRingPhasesMap
(
int
ringCount
,
JSONObject
cycleJSONObject
,
String
[]
redTime
,
String
[]
greenTime
,
String
[]
yellowTime
,
String
[]
minGTime
,
String
[]
maxGTime
)
{
public
static
Map
<
Integer
,
List
<
RingPhaseDTO
>>
getRingPhasesMap
(
int
ringCount
,
JSONObject
cycleJSONObject
,
CrossSchemeRings
.
Phase
phaseDto
)
{
//16 个相位的红灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
redTime
=
phaseDto
.
getRedTime
().
split
(
" "
);
//16 个相位的绿灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
greenTime
=
phaseDto
.
getGreenTime
().
split
(
" "
);
//16 个相位的黄灯时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
yellowTime
=
phaseDto
.
getYellowTime
().
split
(
" "
);
//16 个相位的最小绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
minGTime
=
phaseDto
.
getMinGTime
().
split
(
" "
);
//16 个相位的最大绿时间(单位秒),中间用空格隔开,不存在的相位置 0。
String
[]
maxGTime
=
phaseDto
.
getMaxGTime
().
split
(
" "
);
Map
<
Integer
,
List
<
RingPhaseDTO
>>
map
=
new
HashMap
<>();
for
(
int
i
=
1
;
i
<=
ringCount
;
i
++)
{
//取出环中的数据,并去掉空格和_,得到相位
...
...
@@ -220,27 +222,6 @@ public class StaticInfoServiceImpl implements StaticInfoService {
ringPhase
.
setPhaseTime
(
red
+
green
+
yellow
);
ringPhaseDTOS
.
add
(
ringPhase
);
}
/*char[] charArray = ringPhases.toCharArray();
for (int i1 = 0; i1 < charArray.length; i1++) {
RingPhaseDTO ringPhase = new RingPhaseDTO();
int phaseId = Character.getNumericValue(charArray[i1]);
int red = Integer.valueOf(redTime[phaseId - 1]);
int green = Integer.valueOf(greenTime[phaseId - 1]);
int yellow = Integer.valueOf(yellowTime[phaseId - 1]);
int minG = Integer.valueOf(minGTime[phaseId - 1]);
int maxG = Integer.valueOf(maxGTime[phaseId - 1]);
ringPhase.setPhaseId(phaseId);
ringPhase.setPhaseStatus(0);
ringPhase.setRedTime(red);
ringPhase.setGreenTime(green);
ringPhase.setYellowTime(yellow);
ringPhase.setMaxGTime(maxG);
ringPhase.setMinGTime(minG);
ringPhase.setPhaseTime(red + green + yellow);
ringPhaseDTOS.add(ringPhase);
}*/
map
.
put
(
i
,
ringPhaseDTOS
);
}
return
map
;
...
...
@@ -253,6 +234,20 @@ public class StaticInfoServiceImpl implements StaticInfoService {
* @Param phasesTime 各个相位的红绿黄时间和
**/
private
void
getStagesByRings
(
Map
<
String
,
Integer
>
lightsMap
,
AtomicInteger
lightNum
,
int
cycle
,
int
ringCount
,
String
crossId
,
int
schemeNo
,
Map
<
Integer
,
List
<
RingPhaseDTO
>>
ringPhasesMap
,
List
<
CrossLightsPO
>
crossLightsList
,
List
<
CrossPhasePO
>
crossPhaseList
,
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
,
String
[]
channelDim
)
{
//环转阶段
List
<
StagePhaseDTO
>
stagePhaseList
=
stagePhaseList
(
cycle
,
ringCount
,
ringPhasesMap
);
if
(
CollectionUtil
.
isNotEmpty
(
stagePhaseList
))
{
//将结果组装到结果集
doView
(
lightsMap
,
lightNum
,
cycle
,
ringCount
,
crossId
,
schemeNo
,
stagePhaseList
,
crossLightsList
,
crossPhaseList
,
crossPhaseLightsPOList
,
channelDim
);
}
}
/**
* @Description 环封装阶段
* @Param [cycle, ringCount, ringPhasesMap]
* @return java.util.List<net.wanji.utc.hisense.pojo.dto.StagePhaseDTO>
**/
public
static
List
<
StagePhaseDTO
>
stagePhaseList
(
int
cycle
,
int
ringCount
,
Map
<
Integer
,
List
<
RingPhaseDTO
>>
ringPhasesMap
){
//已经计算的阶段时长
int
stageTime
=
0
;
//循环次数,也代表阶段号
...
...
@@ -362,10 +357,7 @@ public class StaticInfoServiceImpl implements StaticInfoService {
stagePhaseList
.
add
(
stagePhase
);
count
++;
}
if
(
CollectionUtil
.
isNotEmpty
(
stagePhaseList
))
{
//将结果组装到结果集
doView
(
lightsMap
,
lightNum
,
cycle
,
ringCount
,
crossId
,
schemeNo
,
stagePhaseList
,
crossLightsList
,
crossPhaseList
,
crossPhaseLightsPOList
,
channelDim
);
}
return
stagePhaseList
;
}
/**
...
...
wj-databus/src/main/java/net/wanji/databus/dao/entity/CrossSchemeOptLogPO.java
0 → 100644
View file @
88dd9f6a
package
net
.
wanji
.
databus
.
dao
.
entity
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.sql.Date
;
/**
* @ClassName CrossSchemeOptLog
* @Description 路口方案优化记录表
* @Author zhouleilei
* @Date 2024/11/23 14:23
*/
@Data
public
class
CrossSchemeOptLogPO
{
@ApiModelProperty
(
value
=
"主键id"
)
private
Integer
id
;
@ApiModelProperty
(
value
=
""
)
private
String
crossId
;
@ApiModelProperty
(
value
=
""
)
private
Integer
schemeId
;
@ApiModelProperty
(
value
=
""
)
private
Integer
offset
;
@ApiModelProperty
(
value
=
""
)
private
String
phaseNo
;
@ApiModelProperty
(
value
=
""
)
private
Integer
oriPhaseTime
;
@ApiModelProperty
(
value
=
""
)
private
Integer
optPhaseTime
;
@ApiModelProperty
(
value
=
""
)
private
Integer
optTime
;
@ApiModelProperty
(
value
=
"优化结果:1-成功 2-失败"
)
private
String
optResult
;
@ApiModelProperty
(
value
=
""
)
private
Integer
batchTime
;
@ApiModelProperty
(
value
=
""
)
private
Date
insertTime
;
}
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossSchemeOptLogMapper.java
0 → 100644
View file @
88dd9f6a
package
net
.
wanji
.
databus
.
dao
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wanji.databus.dao.entity.CrossSchemeOptLogPO
;
/**
* @ClassName CrossSchemeOptLogMapper
* @Description CrossSchemeOptLogMapper
* @Author zhouleilei
* @Date 2024/11/23 14:34
*/
public
interface
CrossSchemeOptLogMapper
extends
BaseMapper
<
CrossSchemeOptLogPO
>
{
}
wj-databus/src/main/resources/mapper/CrossSchemeOptLogMapper.xml
0 → 100644
View file @
88dd9f6a
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.databus.dao.mapper.CrossSchemeOptLogMapper"
>
</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