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
b66424ec
Commit
b66424ec
authored
Apr 23, 2025
by
zhouleilei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增 - 根据路口号和方案号查询环转阶段
parent
3d9fdd71
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
219 additions
and
5 deletions
+219
-5
FeignCommon.java
...main/java/net/wanji/feign/service/common/FeignCommon.java
+8
-0
StaticInfoController.java
...et/wanji/utc/hisense/controller/StaticInfoController.java
+19
-0
StaticInfoService.java
...java/net/wanji/utc/hisense/service/StaticInfoService.java
+10
-2
ControlCommandServiceImpl.java
...i/utc/hisense/service/impl/ControlCommandServiceImpl.java
+1
-1
StaticInfoServiceImpl.java
...wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
+98
-0
StaticInfoController.java
...n/java/net/wanji/utc/controller/StaticInfoController.java
+9
-1
StaticInfoService.java
...a/net/wanji/utc/service/staticinfo/StaticInfoService.java
+1
-0
WanJiCommonStaticInfoService.java
.../utc/service/staticinfo/WanJiCommonStaticInfoService.java
+1
-1
StaticInfoServiceImpl.java
...ji/utc/service/staticinfo/impl/StaticInfoServiceImpl.java
+6
-0
WanJiCommonStaticInfoServiceImpl.java
...ice/staticinfo/impl/WanJiCommonStaticInfoServiceImpl.java
+17
-0
CrossSchemeRingsToStagesPO.java
...java/net/wanji/databus/vo/CrossSchemeRingsToStagesPO.java
+49
-0
No files found.
signal-feign-service/src/main/java/net/wanji/feign/service/common/FeignCommon.java
View file @
b66424ec
...
...
@@ -163,4 +163,12 @@ public interface FeignCommon {
@PostMapping
(
"/signalStatus/lightStatusOneHist"
)
JsonViewObject
selectLightStatusHist
(
@RequestBody
CrossIdDateTimeDTO
crossIdDateTimeDTO
);
/**
* 根据路口号和方案号查询环转阶段
* @param crossIdDateTimeDTO
* @return
*/
@PostMapping
(
"/staticInfo/selectCrossSchemeRingsToStages"
)
JsonViewObject
selectCrossSchemeRingsToStages
(
@RequestBody
CrossSchemeRingsDTO
crossSchemeRingsDTO
);
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/controller/StaticInfoController.java
View file @
b66424ec
...
...
@@ -12,6 +12,7 @@ import net.wanji.databus.dao.entity.CrossSchedulesPO;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.CoordinationStatus
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.vo.CrossSchemeRingsToStagesPO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.databus.po.CrossSchemeRings
;
...
...
@@ -149,4 +150,22 @@ public class StaticInfoController {
public
JsonViewObject
selectSchemeByParams
(
@RequestBody
@Validated
QueryByCrossIdAndTimeDTO
queryByCrossIdAndTimeDTO
)
throws
Exception
{
return
JsonViewObject
.
newInstance
().
success
(
staticInfoService
.
selectSchemeByParams
(
queryByCrossIdAndTimeDTO
));
}
@AspectLog
(
description
=
"根据路口号和方案号查询环转阶段"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
@PostMapping
(
value
=
"/selectCrossSchemeRingsToStages"
)
@ApiOperation
(
value
=
"根据路口号和方案号查询环转阶段"
,
notes
=
"根据路口号和方案号查询环转阶段"
,
response
=
CrossSchemeRings
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
CrossSchemeRings
.
class
)
})
public
JsonViewObject
selectCrossSchemeRingsToStages
(
@RequestBody
@Validated
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
{
if
(
ObjectUtils
.
isEmpty
(
crossSchemeRingsDTO
.
getPattern
()))
{
return
JsonViewObject
.
newInstance
().
fail
(
"方案号不能为空"
);
}
CrossSchemeRingsToStagesPO
crossSchemeRingsToStagesPO
=
staticInfoService
.
selectCrossSchemeRingsToStages
(
crossSchemeRingsDTO
);
if
(
ObjectUtils
.
isEmpty
(
crossSchemeRingsToStagesPO
))
{
return
JsonViewObject
.
newInstance
().
fail
(
"获取海信方案环图失败"
);
}
return
JsonViewObject
.
newInstance
().
success
(
crossSchemeRingsToStagesPO
);
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/StaticInfoService.java
View file @
b66424ec
...
...
@@ -4,11 +4,12 @@ import net.wanji.databus.dao.entity.BaseCrossSchemePO;
import
net.wanji.databus.dao.entity.CrossSchedulesPO
;
import
net.wanji.databus.dao.entity.CrossSchemeStageOptLogPO
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.CoordinationStatus
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.databus.po.CrossSchemeRings
;
import
net.wanji.databus.vo.CrossSchemeRingsToStagesPO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.databus.po.CoordinationStatus
;
import
net.wanji.databus.po.CrossSchemeRings
;
import
java.util.List
;
@SuppressWarnings
(
"all"
)
...
...
@@ -47,4 +48,11 @@ public interface StaticInfoService {
**/
BaseCrossSchemePO
selectSchemeByParams
(
QueryByCrossIdAndTimeDTO
queryByCrossIdAndTimeDTO
)
throws
Exception
;
/**
* @Description : 根据路口号和方案号查询环转阶段
* @Param crossId 路口编号
* @Param pattern 方案号
**/
CrossSchemeRingsToStagesPO
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
;
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/ControlCommandServiceImpl.java
View file @
b66424ec
...
...
@@ -755,7 +755,7 @@ public class ControlCommandServiceImpl implements ControlCommandService {
* @Description 默认的相位时间
* @Param []
**/
p
rivate
String
getDefaultPhaseTime
()
{
p
ublic
String
getDefaultPhaseTime
()
{
StringBuilder
str
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
16
;
i
++)
{
str
.
append
(
"0"
).
append
(
" "
);
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/StaticInfoServiceImpl.java
View file @
b66424ec
...
...
@@ -17,6 +17,7 @@ import net.wanji.databus.dao.mapper.CrossSchemeStageOptLogMapper;
import
net.wanji.databus.dao.mapper.ManufacturerInfoMapper
;
import
net.wanji.databus.dto.*
;
import
net.wanji.databus.po.*
;
import
net.wanji.databus.vo.CrossSchemeRingsToStagesPO
;
import
net.wanji.databus.vo.PlanSectionVO
;
import
net.wanji.databus.vo.SchemePhaseLightsVO
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
...
...
@@ -78,6 +79,8 @@ public class StaticInfoServiceImpl implements StaticInfoService {
@Resource
private
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
public
static
Map
<
String
,
Integer
>
planMap
=
new
HashMap
<>();
@Resource
private
StaticInfoServiceImpl
staticInfoServiceImpl
;
@Override
public
List
<
CrossInfoPO
>
crossBasicInfo
(
CrossInfoDTO
crossInfoDTO
)
throws
Exception
{
...
...
@@ -1085,4 +1088,99 @@ public class StaticInfoServiceImpl implements StaticInfoService {
}
return
baseCrossSchemePO
;
}
@Override
public
CrossSchemeRingsToStagesPO
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
{
CrossSchemeRingsToStagesPO
crossSchemeRingsToStagesPO
=
new
CrossSchemeRingsToStagesPO
();
String
crossId
=
crossSchemeRingsDTO
.
getCrossId
();
int
pattern
=
Integer
.
valueOf
(
crossSchemeRingsDTO
.
getPattern
());
crossSchemeRingsToStagesPO
.
setCrossId
(
crossId
);
crossSchemeRingsToStagesPO
.
setSchemeId
(
String
.
valueOf
(
pattern
));
//海信方案号
String
schemeId
=
String
.
valueOf
(
pattern
*
3
-
2
);
crossSchemeRingsDTO
.
setPattern
(
schemeId
);
//查询方案环图请求
CrossSchemeRings
crossSchemeRings
=
crossSchemeRingsHisen
(
crossSchemeRingsDTO
);
if
(
ObjectUtil
.
isEmpty
(
crossSchemeRings
))
{
return
null
;
}
String
cycleLen
=
crossSchemeRings
.
getCycleLen
();
String
ringCount
=
crossSchemeRings
.
getRingCount
();
crossSchemeRingsToStagesPO
.
setRingCount
(
ringCount
);
crossSchemeRingsToStagesPO
.
setCycleLen
(
cycleLen
);
crossSchemeRingsToStagesPO
.
setOffset
(
crossSchemeRings
.
getOffset
());
List
<
CrossSchemeRings
.
Phase
>
phaseList
=
crossSchemeRings
.
getPhaseList
();
CrossSchemeRings
.
Phase
phase
=
phaseList
.
get
(
0
);
String
redTime
=
phase
.
getRedTime
();
String
greenTime
=
phase
.
getGreenTime
();
String
yellowTime
=
phase
.
getYellowTime
();
crossSchemeRingsToStagesPO
.
setSplit
(
getPhaseTime
(
redTime
,
greenTime
,
yellowTime
));
JSONObject
cycleJSONObject
=
crossSchemeRings
.
getCycleList
();
List
<
StagePhaseDTO
>
stagePhaseDTOList
=
null
;
try
{
//封装环和环上相位数据
Map
<
Integer
,
List
<
RingPhaseDTO
>>
ringPhasesMap
=
staticInfoServiceImpl
.
getRingPhasesMap
(
Integer
.
valueOf
(
ringCount
),
cycleJSONObject
,
phase
);
//环封装阶段
stagePhaseDTOList
=
staticInfoServiceImpl
.
stagePhaseList
(
Integer
.
valueOf
(
cycleLen
),
Integer
.
valueOf
(
ringCount
),
ringPhasesMap
);
}
catch
(
Exception
e
)
{
return
null
;
}
List
<
CrossSchemeRingsToStagesPO
.
Phase
>
phasePOlist
=
new
ArrayList
<>();
if
(
ObjectUtil
.
isNotEmpty
(
stagePhaseDTOList
))
{
for
(
StagePhaseDTO
stagePhaseDTO
:
stagePhaseDTOList
)
{
CrossSchemeRingsToStagesPO
.
Phase
phasePO
=
new
CrossSchemeRingsToStagesPO
.
Phase
();
phasePO
.
setPhaseNo
(
String
.
valueOf
(
stagePhaseDTO
.
getStageId
()));
phasePO
.
setPhaseTime
(
stagePhaseDTO
.
getStageTime
());
CrossSchemeStageOptLogPO
crossSchemeStageOptLogPO
=
new
CrossSchemeStageOptLogPO
();
crossSchemeStageOptLogPO
.
setCrossId
(
crossId
);
crossSchemeStageOptLogPO
.
setPhaseNo
(
stagePhaseDTO
.
getStageId
()
+
""
);
crossSchemeStageOptLogPO
.
setPhaseTime
(
stagePhaseDTO
.
getStageTime
());
List
<
RingPhaseDTO
>
ringPhaseList
=
stagePhaseDTO
.
getRingPhaseList
();
List
<
Integer
>
list
=
new
ArrayList
<>();
for
(
RingPhaseDTO
ringPhaseDTO
:
ringPhaseList
)
{
if
(
ObjectUtil
.
isNotEmpty
(
ringPhaseDTO
))
{
list
.
add
(
ringPhaseDTO
.
getPhaseId
());
}
}
if
(
ObjectUtil
.
isNotEmpty
(
list
))
{
String
phases
=
CollectionUtil
.
join
(
list
,
","
);
crossSchemeStageOptLogPO
.
setPhaseList
(
phases
);
phasePO
.
setPhaseList
(
phases
);
}
phasePOlist
.
add
(
phasePO
);
}
}
crossSchemeRingsToStagesPO
.
setPhaseList
(
phasePOlist
);
return
crossSchemeRingsToStagesPO
;
}
/**
* @Description 通过红灯、绿灯、黄灯时间,计算相位时间
* @Param [redTime, greenTime, yellowTime]
* @return java.lang.String
**/
public
String
getPhaseTime
(
String
redTime
,
String
greenTime
,
String
yellowTime
){
// 将字符串拆分为数组,处理可能的首尾空格
String
[]
redArray
=
redTime
.
trim
().
split
(
"\\s+"
);
String
[]
greenArray
=
greenTime
.
trim
().
split
(
"\\s+"
);
String
[]
yellowArray
=
yellowTime
.
trim
().
split
(
"\\s+"
);
StringBuilder
result
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
16
;
i
++)
{
// 将对应位置的数值求和
int
sum
=
Integer
.
parseInt
(
redArray
[
i
])
+
Integer
.
parseInt
(
greenArray
[
i
])
+
Integer
.
parseInt
(
yellowArray
[
i
]);
// 拼接结果,用空格分隔
if
(
i
>
0
)
{
result
.
append
(
" "
);
}
result
.
append
(
sum
);
}
return
result
.
toString
();
}
}
signal-utc-service/src/main/java/net/wanji/utc/controller/StaticInfoController.java
View file @
b66424ec
...
...
@@ -195,6 +195,14 @@ public class StaticInfoController {
public
JsonViewObject
selectSchemeOptLogByParams
(
@Validated
@RequestBody
CrossSchemeQueryDTO
crossSchemeQueryDTO
)
throws
Exception
{
return
staticInfoService
.
selectSchemeOptLogByParams
(
crossSchemeQueryDTO
);
}
@AspectLog
(
description
=
"根据路口号和方案号查询环转阶段"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
@PostMapping
(
value
=
"/selectCrossSchemeRingsToStages"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@ApiOperation
(
value
=
"根据路口号和方案号查询环转阶段"
,
notes
=
"根据路口号和方案号查询环转阶段"
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
CrossSchedulesPO
.
class
)
})
public
JsonViewObject
selectCrossSchemeRingsToStages
(
@Validated
@RequestBody
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
{
return
staticInfoService
.
selectCrossSchemeRingsToStages
(
crossSchemeRingsDTO
);
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/StaticInfoService.java
View file @
b66424ec
...
...
@@ -34,5 +34,6 @@ public interface StaticInfoService {
JsonViewObject
schemeOptLog
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
;
JsonViewObject
selectSchemeByParams
(
QueryByCrossIdAndTimeDTO
queryByCrossIdAndTimeDTO
)
throws
Exception
;
JsonViewObject
selectSchemeOptLogByParams
(
CrossSchemeQueryDTO
crossSchemeQueryDT
)
throws
Exception
;
JsonViewObject
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/WanJiCommonStaticInfoService.java
View file @
b66424ec
...
...
@@ -58,5 +58,5 @@ public interface WanJiCommonStaticInfoService {
JsonViewObject
schemeOptLog
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
;
JsonViewObject
selectSchemeByParams
(
QueryByCrossIdAndTimeDTO
queryByCrossIdAndTimeDTO
)
throws
Exception
;
JsonViewObject
selectSchemeOptLogByParams
(
CrossSchemeQueryDTO
crossSchemeQueryDT
)
throws
Exception
;
JsonViewObject
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/impl/StaticInfoServiceImpl.java
View file @
b66424ec
...
...
@@ -251,4 +251,10 @@ public class StaticInfoServiceImpl implements StaticInfoService {
jsonViewObject
=
wanjiCommonStaticInfoService
.
selectSchemeOptLogByParams
(
crossSchemeQueryDT
);
return
jsonViewObject
;
}
@Override
public
JsonViewObject
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
{
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
jsonViewObject
=
wanjiCommonStaticInfoService
.
selectCrossSchemeRingsToStages
(
crossSchemeRingsDTO
);
return
jsonViewObject
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/impl/WanJiCommonStaticInfoServiceImpl.java
View file @
b66424ec
...
...
@@ -401,6 +401,23 @@ public class WanJiCommonStaticInfoServiceImpl implements WanJiCommonStaticInfoSe
return
JsonViewObject
.
newInstance
().
success
(
schemeOptLogPO
);
}
@Override
public
JsonViewObject
selectCrossSchemeRingsToStages
(
CrossSchemeRingsDTO
crossSchemeRingsDTO
)
throws
Exception
{
String
manufacturerIdCode
=
crossInfoCache
.
getManufacturerCodeByCrossId
(
crossSchemeRingsDTO
.
getCrossId
());
JsonViewObject
jsonViewObject
=
null
;
if
(
"HISENSE"
.
equals
(
manufacturerIdCode
))
{
FeignCommon
utcFeignClientService
=
utcFeignClientCache
.
getUtcFeignClientService
(
manufacturerIdCode
);
jsonViewObject
=
utcFeignClientService
.
selectCrossSchemeRingsToStages
(
crossSchemeRingsDTO
);
}
else
{
//TODO 易华录及其它厂家
}
if
(
Objects
.
isNull
(
jsonViewObject
)
||
jsonViewObject
.
getCode
()
!=
200
)
{
throw
new
Exception
(
"根据时间和路口号查询方案号远程服务调用异常,异常信息"
+
jsonViewObject
.
getMessage
());
}
return
jsonViewObject
;
}
/**
* @return net.wanji.databus.dao.entity.BaseCrossSchemePO
* @Description 获取方案号
...
...
wj-databus/src/main/java/net/wanji/databus/vo/CrossSchemeRingsToStagesPO.java
0 → 100644
View file @
b66424ec
package
net
.
wanji
.
databus
.
vo
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @ClassName CrossSchemeOptLog
* @Description 方案
* @Author zhouleilei
* @Date 2024/11/23 14:23
*/
@Data
public
class
CrossSchemeRingsToStagesPO
{
@ApiModelProperty
(
value
=
"路口编号"
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"方案号"
)
private
String
schemeId
;
@ApiModelProperty
(
value
=
"环数"
)
private
String
ringCount
;
@ApiModelProperty
(
value
=
"周期长,单位秒"
)
private
String
cycleLen
;
@ApiModelProperty
(
value
=
"相位差"
)
private
String
offset
;
@ApiModelProperty
(
value
=
"绿信比"
)
private
String
split
;
@ApiModelProperty
(
value
=
"划分后的相位"
)
private
List
<
Phase
>
phaseList
;
@Data
public
static
class
Phase
{
@ApiModelProperty
(
value
=
"相位编号"
)
private
String
phaseNo
;
@ApiModelProperty
(
value
=
"阶段对应的相位号"
)
private
String
phaseList
;
@ApiModelProperty
(
value
=
"相位时长"
)
private
Integer
phaseTime
;
}
}
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