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
91ac566e
Commit
91ac566e
authored
Nov 13, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 海信相位灯组
parent
d7b97761
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
239 additions
and
25 deletions
+239
-25
ChannelControlEnum.java
...java/net/wanji/utc/hisense/common/ChannelControlEnum.java
+31
-0
HisenseTurnEnum.java
...in/java/net/wanji/utc/hisense/common/HisenseTurnEnum.java
+47
-0
HiseseDirEnum.java
...main/java/net/wanji/utc/hisense/common/HiseseDirEnum.java
+65
-0
VNtcipChannelPhaseDTO.java
...et/wanji/utc/hisense/pojo/view/VNtcipChannelPhaseDTO.java
+21
-21
StaticInfoServiceImpl.java
...wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
+75
-4
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/common/ChannelControlEnum.java
0 → 100644
View file @
91ac566e
package
net
.
wanji
.
utc
.
hisense
.
common
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
/**
* @author duanruiming
* @date 2024/11/12 14:16
* @decription 还行通道控制枚举
*/
@AllArgsConstructor
@Getter
public
enum
ChannelControlEnum
{
OTHER
(
1
,
"其他相位控制"
),
VEHICLE
(
2
,
"机动车相位控制"
),
PEDESTRIAN
(
3
,
"行人相位控制"
),
OVERLAP
(
4
,
"跟随相位控制"
);
private
Integer
code
;
private
String
desc
;
public
static
void
main
(
String
[]
args
)
{
String
dirTurn
=
Integer
.
toBinaryString
(
77
);
String
dir
=
dirTurn
.
substring
(
0
,
3
);
String
turn
=
dirTurn
.
substring
(
2
);
System
.
err
.
println
(
dir
);
System
.
err
.
println
(
turn
);
System
.
err
.
println
(
Integer
.
parseInt
(
dir
,
2
));
System
.
err
.
println
(
Integer
.
parseInt
(
turn
,
2
));
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/common/HisenseTurnEnum.java
0 → 100644
View file @
91ac566e
package
net
.
wanji
.
utc
.
hisense
.
common
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Objects
;
/**
* @author duanruiming
* @date 2024/11/12 15:14
*/
@Getter
@AllArgsConstructor
public
enum
HisenseTurnEnum
{
// '车道转向:1左转;2直行;3右转;4掉头;5直左;6直右;7左直右;8左右;9左转掉头;10直行掉头;
// 11右转掉头;12左直掉头;13直右掉头;14左直右掉头;15左右掉头', 0 默认没有匹配
TURN_1
(
1
,
1
,
"左"
),
TURN_2
(
2
,
2
,
"直"
),
TURN_3
(
3
,
3
,
"右"
),
TURN_4
(
4
,
4
,
"调头"
),
TURN_5
(
5
,
9
,
"左调头"
),
TURN_6
(
6
,
12
,
"左直"
),
TURN_7
(
7
,
8
,
"左右"
),
TURN_8
(
8
,
6
,
"直右"
),
TURN_9
(
9
,
7
,
"左直右"
),
TURN_10
(
10
,
10
,
"直调头"
),
TURN_11
(
11
,
0
,
"入口行人"
),
TURN_12
(
12
,
0
,
"出口行人"
),
TURN_13
(
13
,
0
,
"出入口行人"
),
TURN_14
(
14
,
12
,
"左直调头"
),
TURN_15
(
15
,
11
,
"右调头"
),
TURN_16
(
16
,
15
,
"左右调头"
),
TURN_17
(
17
,
13
,
"直右掉头"
),
TURN_18
(
18
,
14
,
"左直右掉头"
);
private
Integer
hisenseTurn
;
private
Integer
wjLightsTurn
;
private
String
desc
;
public
static
Integer
getWjLightsTurn
(
Integer
hisenseTurn
)
{
for
(
HisenseTurnEnum
value
:
HisenseTurnEnum
.
values
())
{
if
(
Objects
.
equals
(
hisenseTurn
,
value
.
getHisenseTurn
()))
{
return
value
.
getWjLightsTurn
();
}
}
return
0
;
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/common/HiseseDirEnum.java
0 → 100644
View file @
91ac566e
package
net
.
wanji
.
utc
.
hisense
.
common
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Objects
;
/**
* @author duanruiming
* @date 2024/11/12 15:04
*/
@Getter
@AllArgsConstructor
public
enum
HiseseDirEnum
{
// '灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北',
ZERO
(
0
,
1
,
"北"
),
ONE
(
1
,
3
,
"东"
),
TWO
(
2
,
5
,
"南"
),
THREE
(
3
,
7
,
"西"
),
FOUR
(
4
,
2
,
"东北"
),
FIVE
(
5
,
4
,
"东南"
),
SIX
(
6
,
6
,
"西南"
),
SEVEN
(
7
,
8
,
"西北"
);
private
Integer
hisenseDir
;
private
Integer
wjLightsDir
;
private
String
desc
;
public
static
Integer
getWjLightsDir
(
Integer
hisenseDir
)
{
for
(
HiseseDirEnum
value
:
HiseseDirEnum
.
values
())
{
if
(
Objects
.
equals
(
hisenseDir
,
value
.
getHisenseDir
()))
{
return
value
.
getWjLightsDir
();
}
}
return
0
;
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
String
format
=
String
.
format
(
"%16s"
,
Integer
.
toBinaryString
(
26
)).
replace
(
' '
,
'0'
);
char
[]
chars
=
format
.
toCharArray
();
List
<
Integer
>
result
=
new
ArrayList
<>();
int
length
=
chars
.
length
;
for
(
int
i
=
0
;
i
<
length
;
i
++)
{
if
(
chars
[
i
]
==
'1'
)
{
result
.
add
(
length
-
i
);
}
}
Collections
.
sort
(
result
);
result
.
forEach
(
i
->
{
System
.
err
.
println
(
i
);
});
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/pojo/view/VNtcipChannelPhaseDTO.java
View file @
91ac566e
...
@@ -11,63 +11,63 @@ import lombok.Data;
...
@@ -11,63 +11,63 @@ import lombok.Data;
public
class
VNtcipChannelPhaseDTO
{
public
class
VNtcipChannelPhaseDTO
{
@TableField
(
"CINTSID"
)
@TableField
(
"CINTSID"
)
private
String
cIntsID
;
private
Integer
cIntsID
;
@TableField
(
"NSTRATEGYNO"
)
@TableField
(
"NSTRATEGYNO"
)
private
String
nStrategyNo
;
private
Integer
nStrategyNo
;
@TableField
(
"NPHASENUMBER"
)
@TableField
(
"NPHASENUMBER"
)
private
String
nPhaseNumber
;
private
Integer
nPhaseNumber
;
// 行人放行时间
// 行人放行时间
@TableField
(
"NPHASEWALK"
)
@TableField
(
"NPHASEWALK"
)
private
String
nPhaseWalk
;
private
Integer
nPhaseWalk
;
// 行人清空时间
// 行人清空时间
@TableField
(
"NPHASEPEDESTRIANCLEAR"
)
@TableField
(
"NPHASEPEDESTRIANCLEAR"
)
private
String
nPhasePedestrianClear
;
private
Integer
nPhasePedestrianClear
;
// 最小绿
// 最小绿
@TableField
(
"NPHASEMINIMUMGREEN"
)
@TableField
(
"NPHASEMINIMUMGREEN"
)
private
String
nPhaseMiniNumGreen
;
private
Integer
nPhaseMiniNumGreen
;
// 单位延长绿
// 单位延长绿
@TableField
(
"NPHASEPASSAGE"
)
@TableField
(
"NPHASEPASSAGE"
)
private
String
nPhasePassage
;
private
Integer
nPhasePassage
;
// 最大绿1
// 最大绿1
@TableField
(
"NPHASEMAXIMUM1"
)
@TableField
(
"NPHASEMAXIMUM1"
)
private
String
nPhaseMaxiNum1
;
private
Integer
nPhaseMaxiNum1
;
// 最大绿2
// 最大绿2
@TableField
(
"NPHASEMAXIMUM2"
)
@TableField
(
"NPHASEMAXIMUM2"
)
private
String
nPhaseMaxiNum2
;
private
Integer
nPhaseMaxiNum2
;
// 相位黄灯时间
// 相位黄灯时间
@TableField
(
"NPHASEYELLOWCHANGE"
)
@TableField
(
"NPHASEYELLOWCHANGE"
)
private
String
nPhaseYellowChange
;
private
Integer
nPhaseYellowChange
;
// 相位红灯清空时间
// 相位红灯清空时间
@TableField
(
"NPHASEREDCLEAR"
)
@TableField
(
"NPHASEREDCLEAR"
)
private
String
nPhaseRedClear
;
private
Integer
nPhaseRedClear
;
// 红灯保护时间
// 红灯保护时间
@TableField
(
"NPHASEREDREVERT"
)
@TableField
(
"NPHASEREDREVERT"
)
private
String
nPhaseRedRevert
;
private
Integer
nPhaseRedRevert
;
// 用到该相位的 ring 表号
// 用到该相位的 ring 表号
@TableField
(
"NPHASERING"
)
@TableField
(
"NPHASERING"
)
private
String
nPhaseRing
;
private
Integer
nPhaseRing
;
// 并发相位
// 并发相位
@TableField
(
"NPHASECONCURRENCY"
)
@TableField
(
"NPHASECONCURRENCY"
)
private
String
nPhaseConCurrency
;
private
Integer
nPhaseConCurrency
;
// 并发相位长度
// 并发相位长度
@TableField
(
"NPHASECONCURRENCYLEN"
)
@TableField
(
"NPHASECONCURRENCYLEN"
)
private
String
nPhaseConCurrencyLen
;
private
Integer
nPhaseConCurrencyLen
;
// 红黄
// 红黄
@TableField
(
"NREDYELLOW"
)
@TableField
(
"NREDYELLOW"
)
private
String
nRedYellow
;
private
Integer
nRedYellow
;
// 绿闪
// 绿闪
@TableField
(
"NGREENFLASH"
)
@TableField
(
"NGREENFLASH"
)
private
String
nGreenFlash
;
private
Integer
nGreenFlash
;
// 安全红灯
// 安全红灯
@TableField
(
"NSAFERED"
)
@TableField
(
"NSAFERED"
)
private
String
nSafeRed
;
private
Integer
nSafeRed
;
// 通道号
// 通道号
@TableField
(
"NCHANNELNUMBER"
)
@TableField
(
"NCHANNELNUMBER"
)
private
String
nChannelNumber
;
private
Integer
nChannelNumber
;
// 通道类型
// 通道类型
@TableField
(
"NCHANNELCONTROLTYPE"
)
@TableField
(
"NCHANNELCONTROLTYPE"
)
private
String
nChannelControlType
;
private
Integer
nChannelControlType
;
// 通道灰度
// 通道灰度
@TableField
(
"NCHANNELDIM"
)
@TableField
(
"NCHANNELDIM"
)
private
String
nChannelDim
;
private
Integer
nChannelDim
;
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
View file @
91ac566e
...
@@ -6,8 +6,7 @@ import lombok.RequiredArgsConstructor;
...
@@ -6,8 +6,7 @@ import lombok.RequiredArgsConstructor;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.utils.tool.ScheduleUtil
;
import
net.wanji.common.utils.tool.ScheduleUtil
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dao.entity.CrossLightsPO
;
import
net.wanji.databus.dao.entity.*
;
import
net.wanji.databus.dao.entity.CrossSchedulesPO
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.dao.mapper.ManufacturerInfoMapper
;
import
net.wanji.databus.dao.mapper.ManufacturerInfoMapper
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.dto.*
;
...
@@ -16,6 +15,9 @@ import net.wanji.databus.po.CrossInfoPOExt;
...
@@ -16,6 +15,9 @@ import net.wanji.databus.po.CrossInfoPOExt;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
import
net.wanji.utc.hisense.common.ChannelControlEnum
;
import
net.wanji.utc.hisense.common.HisenseTurnEnum
;
import
net.wanji.utc.hisense.common.HiseseDirEnum
;
import
net.wanji.utc.hisense.common.OperationBaseDom
;
import
net.wanji.utc.hisense.common.OperationBaseDom
;
import
net.wanji.utc.hisense.common.constants.HttpConstants
;
import
net.wanji.utc.hisense.common.constants.HttpConstants
;
import
net.wanji.utc.hisense.mapper.*
;
import
net.wanji.utc.hisense.mapper.*
;
...
@@ -31,6 +33,7 @@ import org.dom4j.Document;
...
@@ -31,6 +33,7 @@ import org.dom4j.Document;
import
org.dom4j.DocumentHelper
;
import
org.dom4j.DocumentHelper
;
import
org.dom4j.Element
;
import
org.dom4j.Element
;
import
org.dom4j.Node
;
import
org.dom4j.Node
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
...
@@ -102,12 +105,81 @@ public class StaticInfoServiceImpl implements StaticInfoService {
...
@@ -102,12 +105,81 @@ public class StaticInfoServiceImpl implements StaticInfoService {
String
crossId
=
schemePhaseLightsDTO
.
getCrossId
();
String
crossId
=
schemePhaseLightsDTO
.
getCrossId
();
Map
<
String
,
CrossInfoPO
>
crossInfoCache
=
CrossInfoCache
.
getCrossInfoCache
();
Map
<
String
,
CrossInfoPO
>
crossInfoCache
=
CrossInfoCache
.
getCrossInfoCache
();
CrossInfoPO
crossInfoPO
=
crossInfoCache
.
get
(
crossId
);
CrossInfoPO
crossInfoPO
=
crossInfoCache
.
get
(
crossId
);
List
<
CrossLightsPO
>
crossLightsList
=
new
ArrayList
<>();
List
<
CrossLightsPO
>
crossLightsList
=
new
ArrayList
<>();
List
<
CrossPhasePO
>
crossPhaseList
=
new
ArrayList
<>();
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
new
ArrayList
<>();
List
<
CrossSchemePO
>
crossSchemeList
=
new
ArrayList
<>();
List
<
VNtcipChannelPhaseDTO
>
vNtcipChannelPhaseDTOS
=
vNtcipChannelViewMapper
.
selectChannelPhaseList
(
crossInfoPO
.
getCode
());
List
<
VNtcipChannelPhaseDTO
>
vNtcipChannelPhaseDTOS
=
vNtcipChannelViewMapper
.
selectChannelPhaseList
(
crossInfoPO
.
getCode
());
log
.
error
(
"======"
+
vNtcipChannelPhaseDTOS
);
if
(!
CollectionUtils
.
isEmpty
(
vNtcipChannelPhaseDTOS
))
{
for
(
VNtcipChannelPhaseDTO
vNtcipChannelPhaseDTO
:
vNtcipChannelPhaseDTOS
)
{
// 1灯组信息
// 通道号
Integer
nChannelControlType
=
vNtcipChannelPhaseDTO
.
getNChannelControlType
();
Integer
nChannelNumber
=
vNtcipChannelPhaseDTO
.
getNChannelNumber
();
Integer
nChannelDim
=
vNtcipChannelPhaseDTO
.
getNChannelDim
();
CrossLightsPO
crossLightsPO
=
getCrossLights
(
crossId
,
nChannelControlType
,
nChannelNumber
,
nChannelDim
);
crossLightsList
.
add
(
crossLightsPO
);;
crossLightsList
.
add
(
crossLightsPO
);;
// 环相位信息
Integer
nPhaseConCurrency
=
vNtcipChannelPhaseDTO
.
getNPhaseConCurrency
();
String
format
=
String
.
format
(
"%16s"
,
Integer
.
toBinaryString
(
nPhaseConCurrency
)).
replace
(
' '
,
'0'
);
// 2相位灯组信息
CrossPhaseLightsPO
crossPhaseLightsPO
=
getCrossPhaseLightsPO
(
crossId
,
vNtcipChannelPhaseDTO
,
nChannelNumber
);
crossPhaseLightsPOList
.
add
(
crossPhaseLightsPO
);
// 3
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setCrossId
(
crossId
);
crossSchemePO
.
setSchemeNo
(
null
);
crossSchemePO
.
setName
(
null
);
crossSchemePO
.
setCycle
(
null
);
crossSchemePO
.
setCoordPhase
(
null
);
crossSchemePO
.
setOffset
(
null
);
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setStatus
(
0
);
}
}
log
.
error
(
"======"
+
crossLightsList
);
return
null
;
return
null
;
}
}
@NotNull
private
static
CrossPhaseLightsPO
getCrossPhaseLightsPO
(
String
crossId
,
VNtcipChannelPhaseDTO
vNtcipChannelPhaseDTO
,
Integer
nChannelNumber
)
{
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
crossPhaseLightsPO
.
setPhaseId
(
vNtcipChannelPhaseDTO
.
getNPhaseNumber
());
CrossLightsPO
selectEntity
=
new
CrossLightsPO
();
selectEntity
.
setCrossId
(
crossId
);
selectEntity
.
setLightsNo
(
String
.
valueOf
(
nChannelNumber
));
crossPhaseLightsPO
.
setLightsId
(
null
);
crossPhaseLightsPO
.
setCrossId
(
crossId
);
return
crossPhaseLightsPO
;
}
private
static
CrossLightsPO
getCrossLights
(
String
crossId
,
Integer
nChannelControlType
,
Integer
nChannelNumber
,
Integer
nChannelDim
)
{
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
crossLightsPO
.
setLightsNo
(
String
.
valueOf
(
nChannelNumber
));
crossLightsPO
.
setName
(
"海信灯组"
+
nChannelNumber
);
if
(
Objects
.
equals
(
ChannelControlEnum
.
PEDESTRIAN
.
getCode
(),
nChannelControlType
))
{
crossLightsPO
.
setType
(
3
);
}
if
(
Objects
.
equals
(
ChannelControlEnum
.
VEHICLE
.
getCode
(),
nChannelControlType
))
{
crossLightsPO
.
setType
(
1
);
}
String
dirTurn
=
String
.
format
(
"%8s"
,
Integer
.
toBinaryString
(
nChannelDim
)).
replace
(
' '
,
'0'
);
if
(
StringUtils
.
isNotBlank
(
dirTurn
))
{
String
dir
=
dirTurn
.
substring
(
0
,
3
);
// 高三位 方向
String
turn
=
dirTurn
.
substring
(
3
);
// 低五位 转向
crossLightsPO
.
setDir
(
HiseseDirEnum
.
getWjLightsDir
(
Integer
.
parseInt
(
dir
,
2
)));
crossLightsPO
.
setTurn
(
HisenseTurnEnum
.
getWjLightsTurn
(
Integer
.
parseInt
(
turn
,
2
)));
crossLightsPO
.
setCrossId
(
crossId
);
}
return
crossLightsPO
;
}
@Override
@Override
public
List
<
PlanSectionVO
>
planSection
(
PlanSectionDTO
planSectionDTO
)
throws
Exception
{
public
List
<
PlanSectionVO
>
planSection
(
PlanSectionDTO
planSectionDTO
)
throws
Exception
{
LambdaQueryWrapper
<
VNtcipTimeBaseDayplanView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
LambdaQueryWrapper
<
VNtcipTimeBaseDayplanView
>
queryWrapper
=
new
LambdaQueryWrapper
<>();
...
@@ -120,7 +192,6 @@ public class StaticInfoServiceImpl implements StaticInfoService {
...
@@ -120,7 +192,6 @@ public class StaticInfoServiceImpl implements StaticInfoService {
List
<
VNtcipTimeBaseDayplanView
>
vNtcipTimeBaseDayplanViews
=
vNtcipTimeBaseDayplanMapper
.
selectList
(
queryWrapper
);
List
<
VNtcipTimeBaseDayplanView
>
vNtcipTimeBaseDayplanViews
=
vNtcipTimeBaseDayplanMapper
.
selectList
(
queryWrapper
);
return
null
;
return
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