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
b7ed83de
Commit
b7ed83de
authored
Apr 03, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 下发相位参数
parent
cf16f7a1
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
162 additions
and
38 deletions
+162
-38
PlanSendServiceImpl.java
.../java/net/wanji/web/service/impl/PlanSendServiceImpl.java
+37
-13
SchemeConfigServiceImpl.java
...anji/web/service/scheme/impl/SchemeConfigServiceImpl.java
+6
-25
CrossLightsDirEnum.java
...ava/net/wanji/utc/common/typeenum/CrossLightsDirEnum.java
+39
-0
CrossLightsTurnEnum.java
...va/net/wanji/utc/common/typeenum/CrossLightsTurnEnum.java
+41
-0
HkLightsDirEnum.java
...n/java/net/wanji/utc/common/typeenum/HkLightsDirEnum.java
+9
-0
HKControlCommandServiceImpl.java
...utc/service/control/impl/HKControlCommandServiceImpl.java
+30
-0
No files found.
signal-control-service/src/main/java/net/wanji/web/service/impl/PlanSendServiceImpl.java
View file @
b7ed83de
...
...
@@ -12,6 +12,7 @@ import net.wanji.feign.service.UtcFeignClients;
import
net.wanji.web.dto.*
;
import
net.wanji.web.mapper.scheme.*
;
import
net.wanji.web.po.scheme.*
;
import
net.wanji.web.service.FeignProxyService
;
import
net.wanji.web.service.PlanSendService
;
import
net.wanji.web.service.scheme.impl.RunningPlanServiceImpl
;
import
net.wanji.web.service.scheme.impl.SchemeConfigServiceImpl
;
...
...
@@ -33,6 +34,7 @@ import java.util.stream.Collectors;
@Service
public
class
PlanSendServiceImpl
implements
PlanSendService
{
private
final
UtcFeignClients
utcFeignClients
;
private
final
FeignProxyService
feignProxyService
;
private
final
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
;
private
final
CrossPlanMapper
crossPlanMapper
;
private
final
CrossSchemeMapper
crossSchemeMapper
;
...
...
@@ -50,7 +52,13 @@ public class PlanSendServiceImpl implements PlanSendService {
private
Gson
gson
=
new
GsonBuilder
().
setDateFormat
(
"yyyy-MM-dd"
).
create
();
public
PlanSendServiceImpl
(
@Qualifier
(
"net.wanji.feign.service.UtcFeignClients"
)
UtcFeignClients
utcFeignClients
,
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
,
CrossPlanMapper
crossPlanMapper
,
CrossSchemeMapper
crossSchemeMapper
,
CrossPhaseMapper
crossPhaseMapper
,
CrossLightsMapper
crossLightsMapper
,
CrossPhaseLightsMapper
crossPhaseLightsMapper
,
RunningPlanServiceImpl
runningPlanServiceImpl
,
SchemeConfigServiceImpl
schemeConfigServiceImpl
,
CrossSchedulesMapper
crossSchedulesMapper
,
CrossLaneLightsMapper
crossLaneLightsMapper
,
CrossSectionMapper
crossSectionMapper
)
{
public
PlanSendServiceImpl
(
@Qualifier
(
"net.wanji.feign.service.UtcFeignClients"
)
UtcFeignClients
utcFeignClients
,
CrossSchedulesPlanMapper
crossSchedulesPlanMapper
,
CrossPlanMapper
crossPlanMapper
,
CrossSchemeMapper
crossSchemeMapper
,
CrossPhaseMapper
crossPhaseMapper
,
CrossLightsMapper
crossLightsMapper
,
CrossPhaseLightsMapper
crossPhaseLightsMapper
,
RunningPlanServiceImpl
runningPlanServiceImpl
,
SchemeConfigServiceImpl
schemeConfigServiceImpl
,
CrossSchedulesMapper
crossSchedulesMapper
,
CrossLaneLightsMapper
crossLaneLightsMapper
,
CrossSectionMapper
crossSectionMapper
,
FeignProxyService
feignProxyService
)
{
this
.
utcFeignClients
=
utcFeignClients
;
this
.
crossSchedulesPlanMapper
=
crossSchedulesPlanMapper
;
this
.
crossPlanMapper
=
crossPlanMapper
;
...
...
@@ -63,10 +71,28 @@ public class PlanSendServiceImpl implements PlanSendService {
this
.
crossSchedulesMapper
=
crossSchedulesMapper
;
this
.
crossLaneLightsMapper
=
crossLaneLightsMapper
;
this
.
crossSectionMapper
=
crossSectionMapper
;
this
.
feignProxyService
=
feignProxyService
;
}
public
JsonViewObject
PhaseLaneSend
(
String
crossId
,
String
schemeId
)
{
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
/**
* 相位车道参数下发
*
* @param crossId
* @return
*/
public
JsonViewObject
phaseLaneSend
(
String
crossId
)
{
PhaseTimingSendVO
phaseTimingSendVO
=
buiPhaseTimingSendVO
(
crossId
);
JsonViewObject
jsonViewObject
=
feignProxyService
.
phaseTimingSend
(
phaseTimingSendVO
);
return
jsonViewObject
;
}
/**
* 构建下发相位参数
*
* @param crossId
* @return
*/
private
PhaseTimingSendVO
buiPhaseTimingSendVO
(
String
crossId
)
{
PhaseTimingSendVO
phaseTimingSendVO
=
new
PhaseTimingSendVO
();
phaseTimingSendVO
.
setCrossCode
(
crossId
);
List
<
PhaseTimingSendVO
.
Phase
>
phaseList
=
new
ArrayList
<>();
...
...
@@ -97,9 +123,9 @@ public class PlanSendServiceImpl implements PlanSendService {
for
(
CrossLightsPO
lightsPO
:
crossLightsPOS
)
{
if
(
Objects
.
equals
(
lightsId
,
lightsPO
.
getId
()))
{
PhaseTimingSendVO
.
Phase
.
Lane
lane
=
new
PhaseTimingSendVO
.
Phase
.
Lane
();
lane
.
setLaneNo
(
Integer
.
valueOf
(
lightsPO
.
getLightsNo
()));
//
lane.setLaneNo(Integer.valueOf(lightsPO.getLightsNo()));
lane
.
setDirection
(
lightsPO
.
getDir
());
lane
.
setTurn
(
lightsPO
.
getT
urn
());
lane
.
setTurn
(
lightsPO
.
getT
ype
());
lanes
.
add
(
lane
);
}
}
...
...
@@ -108,13 +134,9 @@ public class PlanSendServiceImpl implements PlanSendService {
phase
.
setLanes
(
lanes
);
phaseList
.
add
(
phase
);
}
phaseTimingSendVO
.
setPhaseList
(
phaseList
);
JsonViewObject
phaseTimingSendResult
=
utcFeignClients
.
phaseTimingSend
(
phaseTimingSendVO
);
if
(
Objects
.
isNull
(
phaseTimingSendResult
)
||
phaseTimingSendResult
.
getCode
()
!=
200
)
{
return
jsonViewObject
.
fail
(
"信号机方案下发-相位参数下发UTC服务调用异常"
);
}
return
jsonViewObject
.
success
(
phaseTimingSendResult
);
return
phaseTimingSendVO
;
}
@Override
...
...
@@ -138,8 +160,8 @@ public class PlanSendServiceImpl implements PlanSendService {
if
(
Objects
.
isNull
(
planSendResult
)
||
planSendResult
.
getCode
()
!=
200
)
{
return
jsonViewObject
.
fail
(
"信号机方案下发-日计划下发UTC服务调用异常"
);
}
// 下发相位
// 下发
车道
相位
phaseLaneSend
(
crossId
);
// 更新时间表状态为已执行
crossSchedulesMapper
.
resetStatus
(
crossId
);
...
...
@@ -201,6 +223,8 @@ public class PlanSendServiceImpl implements PlanSendService {
if
(
Objects
.
isNull
(
jsonViewObject
)
||
jsonViewObject
.
getCode
()
!=
200
)
{
return
jsonViewObject
.
fail
(
"信号机方案下发-基础方案下发UTC服务调用异常"
);
}
// 下发车道相位
phaseLaneSend
(
crossId
);
// 更新方案表状态为已执行
crossSchemeMapper
.
resetStatus
(
crossId
);
crossSchemeMapper
.
updateStatus
(
schemeId
);
...
...
signal-control-service/src/main/java/net/wanji/web/service/scheme/impl/SchemeConfigServiceImpl.java
View file @
b7ed83de
...
...
@@ -4,40 +4,20 @@ import cn.hutool.core.collection.CollectionUtil;
import
cn.hutool.core.util.ObjectUtil
;
import
net.wanji.common.dto.CrossIdDTO
;
import
net.wanji.web.common.constant.ControlModeConst
;
import
net.wanji.web.common.enums.CrossLisghtsLaneDirEnum
;
import
net.wanji.web.common.exception.NoLanesException
;
import
net.wanji.web.common.exception.PhaseNoNotUniqueException
;
import
net.wanji.web.dto.LaneIdDTO
;
import
net.wanji.web.dto.LightIdDTO
;
import
net.wanji.web.dto.SaveSchemeConfigDTO
;
import
net.wanji.web.mapper.scheme.CrossAccompanyPhaseMapper
;
import
net.wanji.web.mapper.scheme.CrossLaneLightsMapper
;
import
net.wanji.web.mapper.scheme.CrossLightsMapper
;
import
net.wanji.web.mapper.scheme.CrossPhaseLightsMapper
;
import
net.wanji.web.mapper.scheme.CrossPhaseMapper
;
import
net.wanji.web.mapper.scheme.CrossSchemeMapper
;
import
net.wanji.web.mapper.scheme.LaneInfoMapper
;
import
net.wanji.web.po.scheme.CrossAccompanyPhasePO
;
import
net.wanji.web.po.scheme.CrossLaneLightsPO
;
import
net.wanji.web.po.scheme.CrossLightsPO
;
import
net.wanji.web.po.scheme.CrossPhaseLightsPO
;
import
net.wanji.web.po.scheme.CrossPhasePO
;
import
net.wanji.web.po.scheme.CrossSchemePO
;
import
net.wanji.web.po.scheme.LaneInfoPO
;
import
net.wanji.web.mapper.scheme.*
;
import
net.wanji.web.po.scheme.*
;
import
net.wanji.web.service.scheme.SchemeConfigService
;
import
net.wanji.web.vo.scheme.LaneIdsVO
;
import
net.wanji.web.vo.scheme.LightIdVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.util.ArrayList
;
import
java.util.Comparator
;
import
java.util.HashMap
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Set
;
import
java.util.*
;
import
java.util.stream.Collectors
;
/**
...
...
@@ -352,8 +332,9 @@ public class SchemeConfigServiceImpl implements SchemeConfigService {
}
for
(
Integer
dir
:
dirSet
)
{
SaveSchemeConfigDTO
.
DirListElement
dirListElement
=
new
SaveSchemeConfigDTO
.
DirListElement
();
Integer
laneDir
=
CrossLisghtsLaneDirEnum
.
getLaneDirByLightsDir
(
dir
);
dirListElement
.
setDir
(
laneDir
);
// 前端灯组方向就是车道方向
// Integer laneDir = CrossLisghtsLaneDirEnum.getLaneDirByLightsDir(dir);
dirListElement
.
setDir
(
dir
);
// 是否有行人相位
List
<
CrossLightsPO
>
crossLightsPOList
=
crossLightsMapper
.
selectByCrossIdAndDir
(
crossId
,
dir
);
for
(
CrossLightsPO
crossLightsPO
:
crossLightsPOList
)
{
...
...
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/CrossLightsDirEnum.java
0 → 100644
View file @
b7ed83de
package
net
.
wanji
.
utc
.
common
.
typeenum
;
import
java.util.Objects
;
/**
* @author duanruiming
* @date 2023/04/03 16:26
*/
public
enum
CrossLightsDirEnum
{
ONE
(
1
,
1
),
// 由南向北
TWO
(
3
,
4
),
// 由西向东
THREE
(
5
,
2
),
// 由北向南
FOUR
(
7
,
3
);
// 由东向西
private
final
Integer
lightsCode
;
private
final
Integer
hkLightsCode
;
CrossLightsDirEnum
(
Integer
lightsCode
,
Integer
hkLightsCode
)
{
this
.
lightsCode
=
lightsCode
;
this
.
hkLightsCode
=
hkLightsCode
;
}
public
Integer
getLightsCode
()
{
return
lightsCode
;
}
public
Integer
getHkLightsCode
()
{
return
hkLightsCode
;
}
public
static
Integer
getHkLightsCode
(
Integer
lightsCode
)
{
for
(
CrossLightsDirEnum
value
:
values
())
{
if
(
Objects
.
equals
(
lightsCode
,
value
.
getLightsCode
()))
{
return
value
.
getHkLightsCode
();
}
}
return
null
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/CrossLightsTurnEnum.java
0 → 100644
View file @
b7ed83de
package
net
.
wanji
.
utc
.
common
.
typeenum
;
import
java.util.Objects
;
/**
* @author duanruiming
* @date 2023/04/03 13:26
*/
public
enum
CrossLightsTurnEnum
{
ONE
(
1
,
1
),
// 圆饼灯
TWO
(
2
,
2
),
// 左转灯
THREE
(
3
,
1
),
// 直行灯
FOUR
(
4
,
3
),
// 右转灯
FIVE
(
20
,
9
);
// 行人
public
static
Integer
getHkTurnByLightsType
(
Integer
lightTurn
)
{
CrossLightsTurnEnum
[]
values
=
CrossLightsTurnEnum
.
values
();
for
(
CrossLightsTurnEnum
value
:
values
)
{
if
(
Objects
.
equals
(
lightTurn
,
value
.
lightType
))
{
return
value
.
getHkTurn
();
}
}
return
null
;
}
CrossLightsTurnEnum
(
int
lightTurn
,
int
hkTurn
)
{
this
.
lightType
=
lightTurn
;
this
.
hkTurn
=
hkTurn
;
}
private
final
Integer
lightType
;
private
final
Integer
hkTurn
;
public
int
getLightType
()
{
return
lightType
;
}
public
int
getHkTurn
()
{
return
hkTurn
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/HkLightsDirEnum.java
View file @
b7ed83de
...
...
@@ -36,4 +36,13 @@ public enum HkLightsDirEnum {
}
return
null
;
}
public
static
Integer
getHkCodeByCode
(
Integer
code
)
{
for
(
HkLightsDirEnum
value
:
values
())
{
if
(
Objects
.
equals
(
code
,
value
.
getCode
()))
{
return
value
.
getHkCode
();
}
}
return
null
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/control/impl/HKControlCommandServiceImpl.java
View file @
b7ed83de
...
...
@@ -11,6 +11,8 @@ import net.wanji.common.framework.rest.JsonViewObject;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
net.wanji.utc.common.exception.ControlException
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.common.typeenum.CrossLightsDirEnum
;
import
net.wanji.utc.common.typeenum.CrossLightsTurnEnum
;
import
net.wanji.utc.dto.hk.DownloadPlanSpandsDTO
;
import
net.wanji.utc.dto.hk.DownloadScheduleDTO
;
import
net.wanji.utc.dto.hk.DownloadTimeSpandsDTO
;
...
...
@@ -409,6 +411,34 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
if
(
Objects
.
isNull
(
crossInfoPO
))
{
return
jsonViewObject
.
fail
(
"当前路口编号有误,路口信息不存在"
);
}
// 海康车道转换
List
<
PhaseTimingSendVO
.
Phase
>
phaseList
=
phaseTimingSendVO
.
getPhaseList
();
for
(
PhaseTimingSendVO
.
Phase
phase
:
phaseList
)
{
List
<
PhaseTimingSendVO
.
Phase
.
Lane
>
lanes
=
phase
.
getLanes
();
for
(
PhaseTimingSendVO
.
Phase
.
Lane
lane
:
lanes
)
{
Integer
type
=
lane
.
getTurn
();
//web端发送的是灯组类型
Integer
turn
=
CrossLightsTurnEnum
.
getHkTurnByLightsType
(
type
);
if
(!
Objects
.
equals
(
turn
,
9
))
{
// 行人
lane
.
setTurn
(
turn
);
}
else
{
if
(
Objects
.
equals
(
lane
.
getDirection
(),
1
))
{
lane
.
setDirection
(
9
);
}
if
(
Objects
.
equals
(
lane
.
getDirection
(),
3
))
{
lane
.
setDirection
(
11
);
}
if
(
Objects
.
equals
(
lane
.
getDirection
(),
5
))
{
lane
.
setDirection
(
10
);
}
if
(
Objects
.
equals
(
lane
.
getDirection
(),
7
))
{
lane
.
setDirection
(
12
);
}
}
Integer
hkCodeByCode
=
CrossLightsDirEnum
.
getHkLightsCode
(
lane
.
getDirection
());
lane
.
setDirection
(
hkCodeByCode
);
}
}
String
signalCode
=
crossInfoPO
.
getCode
();
// 将路口code转换为信号机code
phaseTimingSendVO
.
setCrossCode
(
signalCode
);
...
...
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