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
f1f0d70a
Commit
f1f0d70a
authored
Dec 09, 2022
by
wuxiaokai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
控制指令接口-下发相位参数
parent
75808894
Changes
19
Show whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
333 additions
and
444 deletions
+333
-444
Constants.java
...rc/main/java/net/wanji/utc/common/constant/Constants.java
+5
-0
ValidatorConfig.java
...e/src/main/java/net/wanji/utc/config/ValidatorConfig.java
+30
-0
ControlCommandController.java
...va/net/wanji/utc/controller/ControlCommandController.java
+15
-14
DownloadPlanSpandsDTO.java
...main/java/net/wanji/utc/dto/hk/DownloadPlanSpandsDTO.java
+3
-0
GlobalExceptionHandler.java
...in/java/net/wanji/utc/handler/GlobalExceptionHandler.java
+35
-4
ControlCommandService.java
.../net/wanji/utc/service/control/ControlCommandService.java
+2
-10
HKControlCommandServiceImpl.java
...utc/service/control/impl/HKControlCommandServiceImpl.java
+99
-148
ControlCommandVO.java
...vice/src/main/java/net/wanji/utc/vo/ControlCommandVO.java
+2
-3
PhaseTimingSendVO.java
...ice/src/main/java/net/wanji/utc/vo/PhaseTimingSendVO.java
+101
-0
PlanSendVO.java
...tc-service/src/main/java/net/wanji/utc/vo/PlanSendVO.java
+2
-0
ScheduleSendVO.java
...ervice/src/main/java/net/wanji/utc/vo/ScheduleSendVO.java
+2
-0
SchemeSendVO.java
...-service/src/main/java/net/wanji/utc/vo/SchemeSendVO.java
+37
-35
FixedLightGroupVo.java
...ain/java/net/wanji/utc/vo/timeplan/FixedLightGroupVo.java
+0
-24
Pdirection.java
...e/src/main/java/net/wanji/utc/vo/timeplan/Pdirection.java
+0
-23
Phase.java
...ervice/src/main/java/net/wanji/utc/vo/timeplan/Phase.java
+0
-64
Ring.java
...service/src/main/java/net/wanji/utc/vo/timeplan/Ring.java
+0
-21
Step.java
...service/src/main/java/net/wanji/utc/vo/timeplan/Step.java
+0
-20
TimePlanVO.java
...e/src/main/java/net/wanji/utc/vo/timeplan/TimePlanVO.java
+0
-56
Vdirection.java
...e/src/main/java/net/wanji/utc/vo/timeplan/Vdirection.java
+0
-22
No files found.
signal-utc-service/src/main/java/net/wanji/utc/common/constant/Constants.java
View file @
f1f0d70a
...
@@ -58,6 +58,11 @@ public class Constants {
...
@@ -58,6 +58,11 @@ public class Constants {
*/
*/
public
static
final
String
HK_CODE_KEY
=
"code"
;
public
static
final
String
HK_CODE_KEY
=
"code"
;
/**
* 海康返回成功码
*/
public
static
final
String
HK_SUCCESS_STRING_CODE
=
"0"
;
/**
/**
* 失败-false
* 失败-false
*/
*/
...
...
signal-utc-service/src/main/java/net/wanji/utc/config/ValidatorConfig.java
0 → 100644
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
config
;
import
org.hibernate.validator.HibernateValidator
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
javax.validation.Validation
;
import
javax.validation.Validator
;
import
javax.validation.ValidatorFactory
;
/**
* @author wuxiaokai
* @date 2022/11/28 15:49:45
*/
@Configuration
public
class
ValidatorConfig
{
/**
* Spring Validation默认会校验完所有字段,然后才抛出异常。可以通过一些简单的配置,开启Fail Fast模式,一旦校验失败就立即返回。
*/
@Bean
public
Validator
validator
()
{
ValidatorFactory
validatorFactory
=
Validation
.
byProvider
(
HibernateValidator
.
class
)
.
configure
()
// 快速失败模式
.
failFast
(
true
)
.
buildValidatorFactory
();
return
validatorFactory
.
getValidator
();
}
}
signal-utc-service/src/main/java/net/wanji/utc/controller/ControlCommandController.java
View file @
f1f0d70a
...
@@ -7,17 +7,11 @@ import io.swagger.annotations.ApiOperation;
...
@@ -7,17 +7,11 @@ import io.swagger.annotations.ApiOperation;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.service.control.ControlCommandService
;
import
net.wanji.utc.service.control.ControlCommandService
;
import
net.wanji.utc.vo.ControlCommandVO
;
import
net.wanji.utc.vo.*
;
import
net.wanji.utc.vo.PlanSendVO
;
import
net.wanji.utc.vo.ScheduleSendVO
;
import
net.wanji.utc.vo.SchemeSendVO
;
import
net.wanji.utc.vo.timeplan.TimePlanVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
import
static
net
.
wanji
.
utc
.
common
.
constant
.
Constants
.*;
import
static
net
.
wanji
.
utc
.
common
.
constant
.
Constants
.*;
/**
/**
...
@@ -73,17 +67,15 @@ public class ControlCommandController {
...
@@ -73,17 +67,15 @@ public class ControlCommandController {
}
}
/**
/**
* 相位配时下发
* 相位配时下发
-(下发相位参数)
*
*
* @param code 信号机id
* @param timePlans 配时方案实体类
* @return {@link Result}<{@link T}>
* @return {@link Result}<{@link T}>
* @throws InterruptedException 中断异常
* @throws InterruptedException 中断异常
*/
*/
@ApiOperation
(
value
=
"相位配时下发-
相位的绿灯、绿闪、行闪、黄灯、红灯配时下发"
,
notes
=
"相位配时下发-相位的绿灯、绿闪、行闪、黄灯、红灯配时下发
"
)
@ApiOperation
(
value
=
"相位配时下发-
(下发相位参数)"
,
notes
=
"相位配时下发-(下发相位参数)
"
)
@PostMapping
(
"/phaseTimingSend"
)
@PostMapping
(
"/phaseTimingSend"
)
public
<
T
>
Result
<
T
>
phaseTimingSend
(
@Request
Param
String
code
,
@RequestBody
List
<
TimePlanVO
>
timePlans
)
throws
Exception
{
public
<
T
>
Result
<
T
>
phaseTimingSend
(
@Request
Body
PhaseTimingSendVO
phaseTimingSendVO
)
throws
Exception
{
return
hkControlCommandService
.
phaseTimingSend
(
code
,
timePlans
);
return
hkControlCommandService
.
phaseTimingSend
(
phaseTimingSendVO
);
}
}
/**
/**
...
@@ -166,7 +158,16 @@ public class ControlCommandController {
...
@@ -166,7 +158,16 @@ public class ControlCommandController {
*/
*/
@ApiOperation
(
value
=
"锁定控制-相位锁定/解锁"
,
notes
=
"锁定控制-相位锁定/解锁"
)
@ApiOperation
(
value
=
"锁定控制-相位锁定/解锁"
,
notes
=
"锁定控制-相位锁定/解锁"
)
@PostMapping
(
"/lockControl"
)
@PostMapping
(
"/lockControl"
)
public
<
T
>
Result
<
T
>
lockControl
(
@RequestBody
ControlCommandVO
commandVO
)
throws
Exception
{
public
<
T
>
Result
<
T
>
lockControl
(
@RequestBody
@Validated
ControlCommandVO
commandVO
)
throws
Exception
{
return
hkControlCommandService
.
lockControl
(
commandVO
);
return
hkControlCommandService
.
lockControl
(
commandVO
);
}
}
/**
* 相位差下发
*/
@ApiOperation
(
value
=
"相位差下发"
,
notes
=
"相位差下发"
)
@PostMapping
(
"/phaseDiffSend"
)
public
<
T
>
Result
<
T
>
phaseDiffSend
()
{
return
hkControlCommandService
.
phaseDiffSend
();
}
}
}
signal-utc-service/src/main/java/net/wanji/utc/dto/hk/DownloadPlanSpandsDTO.java
View file @
f1f0d70a
...
@@ -15,6 +15,9 @@ import java.util.List;
...
@@ -15,6 +15,9 @@ import java.util.List;
@Getter
@Getter
public
class
DownloadPlanSpandsDTO
{
public
class
DownloadPlanSpandsDTO
{
/**
* 此code是信号机code,不是路口code
*/
private
String
crossCode
;
private
String
crossCode
;
private
List
<
Pattern
>
patternList
;
private
List
<
Pattern
>
patternList
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/handler/GlobalExceptionHandler.java
View file @
f1f0d70a
...
@@ -3,6 +3,8 @@ package net.wanji.utc.handler;
...
@@ -3,6 +3,8 @@ package net.wanji.utc.handler;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.common.exception.ControlException
;
import
net.wanji.utc.common.exception.ControlException
;
import
org.springframework.validation.FieldError
;
import
org.springframework.web.bind.MethodArgumentNotValidException
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
import
org.springframework.web.bind.annotation.RestControllerAdvice
;
...
@@ -32,8 +34,30 @@ public class GlobalExceptionHandler {
...
@@ -32,8 +34,30 @@ public class GlobalExceptionHandler {
*/
*/
@ExceptionHandler
(
value
=
NullPointerException
.
class
)
@ExceptionHandler
(
value
=
NullPointerException
.
class
)
public
Result
<
String
>
exceptionHandler
(
HttpServletRequest
req
,
NullPointerException
e
)
{
public
Result
<
String
>
exceptionHandler
(
HttpServletRequest
req
,
NullPointerException
e
)
{
log
.
error
(
"发生空指针异常!原因是:{}"
,
e
.
getMessage
());
Throwable
cause
=
e
.
getCause
();
return
Result
.
error
(
INTERNAL_SERVER_ERROR
.
getResultCode
(),
e
.
getMessage
());
String
errorMessage
;
if
(
cause
!=
null
)
{
errorMessage
=
cause
.
getMessage
();
}
else
{
StackTraceElement
element
=
e
.
getStackTrace
()[
0
];
errorMessage
=
element
.
getClassName
()
+
" "
+
element
.
getLineNumber
();
}
log
.
error
(
"发生空指针异常!位置在:{}"
,
errorMessage
);
return
Result
.
error
(
INTERNAL_SERVER_ERROR
.
getResultCode
(),
"发生空指针异常!位置在:"
+
errorMessage
);
}
/**
* 参数异常
*/
@ExceptionHandler
(
value
=
MethodArgumentNotValidException
.
class
)
public
Result
<
String
>
exceptionHandler
(
HttpServletRequest
req
,
MethodArgumentNotValidException
e
)
{
FieldError
fieldError
=
e
.
getBindingResult
().
getFieldError
();
String
errorMessage
=
INTERNAL_SERVER_ERROR
.
getResultMsg
();
if
(
fieldError
!=
null
)
{
errorMessage
=
fieldError
.
getDefaultMessage
();
}
log
.
error
(
"发生参数异常!原因是:{}"
,
errorMessage
);
return
Result
.
error
(
INTERNAL_SERVER_ERROR
.
getResultCode
(),
"发生参数异常!原因是:"
+
errorMessage
);
}
}
/**
/**
...
@@ -41,7 +65,14 @@ public class GlobalExceptionHandler {
...
@@ -41,7 +65,14 @@ public class GlobalExceptionHandler {
*/
*/
@ExceptionHandler
(
value
=
Exception
.
class
)
@ExceptionHandler
(
value
=
Exception
.
class
)
public
Result
<
String
>
exceptionHandler
(
HttpServletRequest
req
,
Exception
e
)
{
public
Result
<
String
>
exceptionHandler
(
HttpServletRequest
req
,
Exception
e
)
{
log
.
error
(
"未知异常!原因是:{}"
,
e
.
getMessage
());
Throwable
cause
=
e
.
getCause
();
return
Result
.
error
(
INTERNAL_SERVER_ERROR
.
getResultCode
(),
e
.
getMessage
());
String
errorMessage
;
if
(
cause
!=
null
)
{
errorMessage
=
cause
.
getMessage
();
}
else
{
errorMessage
=
e
.
getMessage
();
}
log
.
error
(
"未知异常!原因是:{}"
,
errorMessage
);
return
Result
.
error
(
INTERNAL_SERVER_ERROR
.
getResultCode
(),
"未知异常!原因是:"
+
errorMessage
);
}
}
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/control/ControlCommandService.java
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
service
.
control
;
package
net
.
wanji
.
utc
.
service
.
control
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.common.Result
;
import
net.wanji.utc.vo.ControlCommandVO
;
import
net.wanji.utc.vo.*
;
import
net.wanji.utc.vo.PlanSendVO
;
import
net.wanji.utc.vo.ScheduleSendVO
;
import
net.wanji.utc.vo.SchemeSendVO
;
import
net.wanji.utc.vo.timeplan.TimePlanVO
;
import
java.util.List
;
/**
/**
* 控制指令 service
* 控制指令 service
...
@@ -80,12 +74,10 @@ public interface ControlCommandService {
...
@@ -80,12 +74,10 @@ public interface ControlCommandService {
/**
/**
* 相位配时下发
* 相位配时下发
*
*
* @param code 信号机id
* @param timePlans 批量下发的配时数据
* @return {@link Result}<{@link T}>
* @return {@link Result}<{@link T}>
* @throws InterruptedException 中断异常
* @throws InterruptedException 中断异常
*/
*/
<
T
>
Result
<
T
>
phaseTimingSend
(
String
code
,
List
<
TimePlanVO
>
timePlans
)
throws
Exception
;
<
T
>
Result
<
T
>
phaseTimingSend
(
PhaseTimingSendVO
phaseTimingSendVO
)
throws
Exception
;
/**
/**
* 相位差下发
* 相位差下发
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HKControlCommandServiceImpl.java
→
signal-utc-service/src/main/java/net/wanji/utc/service/
control/
impl/HKControlCommandServiceImpl.java
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
service
.
impl
;
package
net
.
wanji
.
utc
.
service
.
control
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
...
@@ -21,12 +21,8 @@ import net.wanji.utc.po.*;
...
@@ -21,12 +21,8 @@ import net.wanji.utc.po.*;
import
net.wanji.utc.service.control.ControlCommandService
;
import
net.wanji.utc.service.control.ControlCommandService
;
import
net.wanji.utc.service.runninginfo.HkLightsStatusService
;
import
net.wanji.utc.service.runninginfo.HkLightsStatusService
;
import
net.wanji.utc.util.FieldUtil
;
import
net.wanji.utc.util.FieldUtil
;
import
net.wanji.utc.util.ListUtil
;
import
net.wanji.utc.util.PathUtil
;
import
net.wanji.utc.util.PathUtil
;
import
net.wanji.utc.vo.*
;
import
net.wanji.utc.vo.*
;
import
net.wanji.utc.vo.timeplan.Phase
;
import
net.wanji.utc.vo.timeplan.Ring
;
import
net.wanji.utc.vo.timeplan.TimePlanVO
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -75,17 +71,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -75,17 +71,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
schemeSend
(
SchemeSendVO
schemeSendVO
)
throws
Exception
{
public
<
T
>
Result
<
T
>
schemeSend
(
SchemeSendVO
schemeSendVO
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
schemeSendVO
.
getCrossCode
());
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
// 厂商 HK
// 厂商 HK
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
schemeSendVO
.
getCrossCode
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
// 1、组装参数, 下发海康信号机
// 1、组装参数, 下发海康信号机
DownloadPlanSpandsDTO
dto
=
new
DownloadPlanSpandsDTO
();
DownloadPlanSpandsDTO
dto
=
new
DownloadPlanSpandsDTO
();
dto
.
setCrossCode
(
schemeSendVO
.
getCrossCode
());
// 将路口code转换为信号机code
//dto.setCrossCode(schemeSendVO.getCrossCode());
dto
.
setCrossCode
(
manufacturerInfoPO
.
getName
());
List
<
DownloadPlanSpandsDTO
.
Pattern
>
patternList
=
new
ArrayList
<>();
List
<
DownloadPlanSpandsDTO
.
Pattern
>
patternList
=
new
ArrayList
<>();
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
DownloadPlanSpandsDTO
.
Pattern
pattern1
=
new
DownloadPlanSpandsDTO
.
Pattern
();
DownloadPlanSpandsDTO
.
Pattern
pattern1
=
new
DownloadPlanSpandsDTO
.
Pattern
();
...
@@ -123,7 +117,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -123,7 +117,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
if
(
obj
.
get
Integer
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS
_CODE
))
{
if
(
obj
.
get
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS_STRING
_CODE
))
{
// 入库操作
// 入库操作
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
schemeSendVO
.
getPatternList
().
forEach
(
pattern
->
{
...
@@ -169,7 +163,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -169,7 +163,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
return
Result
.
success
(
"下发信号机方案成功"
);
return
Result
.
success
(
"下发信号机方案成功"
);
}
}
return
Result
.
error
(
"下发信号机方案失败"
);
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
else
{
}
else
{
return
null
;
return
null
;
}
}
...
@@ -178,18 +172,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -178,18 +172,15 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
planSend
(
PlanSendVO
planSendVO
)
throws
Exception
{
public
<
T
>
Result
<
T
>
planSend
(
PlanSendVO
planSendVO
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
planSendVO
.
getCrossCode
());
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
// 厂商 HK
// 厂商 HK
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
planSendVO
.
getCrossCode
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
// 1、下发信号机计划拼接参数
// 1、下发信号机计划拼接参数
DownloadTimeSpandsDTO
downloadTimeSpandsDTO
=
new
DownloadTimeSpandsDTO
();
DownloadTimeSpandsDTO
downloadTimeSpandsDTO
=
new
DownloadTimeSpandsDTO
();
List
<
DownloadTimeSpandsDTO
.
Data
>
dataList
=
new
ArrayList
<>();
List
<
DownloadTimeSpandsDTO
.
Data
>
dataList
=
new
ArrayList
<>();
DownloadTimeSpandsDTO
.
Data
data
=
new
DownloadTimeSpandsDTO
.
Data
();
DownloadTimeSpandsDTO
.
Data
data
=
new
DownloadTimeSpandsDTO
.
Data
();
data
.
setCrossCode
(
planSendVO
.
getCrossCode
());
//data.setCrossCode(planSendVO.getCrossCode());
data
.
setCrossCode
(
manufacturerInfoPO
.
getName
());
List
<
DownloadTimeSpandsDTO
.
Data
.
Plan
>
planList
=
new
ArrayList
<>();
List
<
DownloadTimeSpandsDTO
.
Data
.
Plan
>
planList
=
new
ArrayList
<>();
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
DownloadTimeSpandsDTO
.
Data
.
Plan
plan1
=
new
DownloadTimeSpandsDTO
.
Data
.
Plan
();
DownloadTimeSpandsDTO
.
Data
.
Plan
plan1
=
new
DownloadTimeSpandsDTO
.
Data
.
Plan
();
...
@@ -217,7 +208,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -217,7 +208,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
path
,
path
,
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
if
(
obj
.
get
Integer
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS
_CODE
))
{
if
(
obj
.
get
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS_STRING
_CODE
))
{
// 2、入库操作
// 2、入库操作
List
<
CrossPlanPO
>
crossPlanPOList
=
new
ArrayList
<>();
List
<
CrossPlanPO
>
crossPlanPOList
=
new
ArrayList
<>();
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
planSendVO
.
getPlanList
().
forEach
(
plan
->
{
...
@@ -246,7 +237,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -246,7 +237,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
return
Result
.
success
(
"下发信号机计划成功"
);
return
Result
.
success
(
"下发信号机计划成功"
);
}
}
return
Result
.
error
(
"下发信号机计划失败"
);
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
else
{
}
else
{
// todo else
// todo else
return
null
;
return
null
;
...
@@ -255,16 +246,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -255,16 +246,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
scheduleSend
(
ScheduleSendVO
param
)
throws
Exception
{
public
<
T
>
Result
<
T
>
scheduleSend
(
ScheduleSendVO
param
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
param
.
getCrossCode
());
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
// 厂商 HK
// 厂商 HK
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
param
.
getCrossCode
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
// 1、通过获取当前运行的日期数据,获取最新的日期方案id
// 1、通过获取当前运行的日期数据,获取最新的日期方案id
JSONArray
body
=
new
JSONArray
();
JSONArray
body
=
new
JSONArray
();
body
.
add
(
param
.
getCrossCode
());
//body.add(param.getCrossCode());
body
.
add
(
manufacturerInfoPO
.
getName
());
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"uploadDate"
);
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"uploadDate"
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
path
,
...
@@ -272,7 +260,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -272,7 +260,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
JSONObject
object
=
JSON
.
parseObject
(
strResult
);
JSONObject
object
=
JSON
.
parseObject
(
strResult
);
// 日期 id
// 日期 id
int
id
=
1
;
int
id
=
1
;
if
(
object
.
get
Integer
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS
_CODE
))
{
if
(
object
.
get
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS_STRING
_CODE
))
{
// 获取日期列表
// 获取日期列表
JSONArray
schedulesArray
=
object
.
getJSONArray
(
"data"
).
getJSONObject
(
0
).
getJSONArray
(
"schedules"
);
JSONArray
schedulesArray
=
object
.
getJSONArray
(
"data"
).
getJSONObject
(
0
).
getJSONArray
(
"schedules"
);
JSONObject
scheduleObj
=
schedulesArray
.
getJSONObject
(
schedulesArray
.
size
()
-
1
);
JSONObject
scheduleObj
=
schedulesArray
.
getJSONObject
(
schedulesArray
.
size
()
-
1
);
...
@@ -280,7 +268,8 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -280,7 +268,8 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
}
// 下发信号机日期拼接参数
// 下发信号机日期拼接参数
DownloadScheduleDTO
dto
=
new
DownloadScheduleDTO
();
DownloadScheduleDTO
dto
=
new
DownloadScheduleDTO
();
dto
.
setCrossCode
(
param
.
getCrossCode
());
//dto.setCrossCode(param.getCrossCode());
dto
.
setCrossCode
(
manufacturerInfoPO
.
getName
());
List
<
DownloadScheduleDTO
.
Schedule
>
schedules
=
new
ArrayList
<>();
List
<
DownloadScheduleDTO
.
Schedule
>
schedules
=
new
ArrayList
<>();
for
(
ScheduleSendVO
.
Schedule
schedule
:
param
.
getSchedules
())
{
for
(
ScheduleSendVO
.
Schedule
schedule
:
param
.
getSchedules
())
{
List
<
ScheduleSendVO
.
Schedule
.
Week
>
scheduleWeeks
=
schedule
.
getWeeks
();
List
<
ScheduleSendVO
.
Schedule
.
Week
>
scheduleWeeks
=
schedule
.
getWeeks
();
...
@@ -327,12 +316,22 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -327,12 +316,22 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
dto
.
setSchedules
(
schedules
);
dto
.
setSchedules
(
schedules
);
// 2、下发时间表
// 2、下发时间表
Map
<
String
,
Object
>
fieldMap
=
FieldUtil
.
fieldMethod
(
dto
);
Map
<
String
,
Object
>
fieldMap
=
FieldUtil
.
fieldMethod
(
dto
);
for
(
DownloadScheduleDTO
.
Schedule
schedule
:
dto
.
getSchedules
())
{
List
<
Map
<
String
,
Object
>>
mapSchedules
=
(
List
<
Map
<
String
,
Object
>>)
fieldMap
.
get
(
"schedules"
);
for
(
Map
<
String
,
Object
>
mapSchedule
:
mapSchedules
)
{
if
(
mapSchedule
.
get
(
"planNo"
).
equals
(
schedule
.
getPlanNo
()))
{
mapSchedule
.
put
(
"weeks"
,
schedule
.
getWeeks
());
mapSchedule
.
put
(
"dates"
,
schedule
.
getDates
());
break
;
}
}
}
Map
<
String
,
String
>
downloadSchedulePath
=
PathUtil
.
getPathMapByApiCode
(
"downloadTimeSpands"
);
Map
<
String
,
String
>
downloadSchedulePath
=
PathUtil
.
getPathMapByApiCode
(
"downloadTimeSpands"
);
String
updateResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
String
updateResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
downloadSchedulePath
,
downloadSchedulePath
,
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
updateResult
);
JSONObject
obj
=
JSON
.
parseObject
(
updateResult
);
if
(
obj
.
get
Integer
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS
_CODE
))
{
if
(
obj
.
get
(
HK_CODE_KEY
).
equals
(
HK_SUCCESS_STRING
_CODE
))
{
// 1、入库操作
// 1、入库操作
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateStyle
.
YYYY_MM_DD
.
getValue
());
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
DateStyle
.
YYYY_MM_DD
.
getValue
());
...
@@ -370,7 +369,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -370,7 +369,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
return
Result
.
success
(
"时间表下发成功"
);
return
Result
.
success
(
"时间表下发成功"
);
}
}
return
Result
.
error
(
"时间表下发失败"
);
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
else
{
}
else
{
// todo else
// todo else
return
null
;
return
null
;
...
@@ -379,42 +378,42 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -379,42 +378,42 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
lockControl
(
ControlCommandVO
commandVO
)
throws
Exception
{
public
<
T
>
Result
<
T
>
lockControl
(
ControlCommandVO
commandVO
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
commandVO
.
getCrossCode
());
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
commandVO
.
getCrossCode
());
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
commandVO
.
getCommand
().
equals
(
TRUE
))
{
if
(
commandVO
.
getCommand
().
equals
(
TRUE
))
{
Map
<
String
,
Object
>
param
=
new
HashMap
<
String
,
Object
>()
{
Map
<
String
,
Object
>
param
=
new
HashMap
<
String
,
Object
>()
{
private
static
final
long
serialVersionUID
=
7462850358909460605L
;
private
static
final
long
serialVersionUID
=
7462850358909460605L
;
{
{
put
(
"crossCode"
,
commandVO
.
getCrossCode
());
//put("crossCode", commandVO.getCrossCode());
put
(
"crossCode"
,
manufacturerInfoPO
.
getName
());
put
(
"controlType"
,
LOCK_RUNNING_CONTROL
);
put
(
"controlType"
,
LOCK_RUNNING_CONTROL
);
}
}
};
};
// 控制命令为灯态锁定时,设置相关车道参数信息
// 控制命令为灯态锁定时,设置相关车道参数信息
// 获取当前运行方案的相位id
// 获取当前运行方案的相位id
List
<
SignalRunring
>
runrings
=
getSignalInfoVos
(
commandVO
.
getCrossCode
()).
get
(
0
).
getRunrings
();
//List<SignalRunring> runrings = getSignalInfoVos(commandVO.getCrossCode()).get(0).getRunrings();
List
<
SignalRunring
>
runrings
=
getSignalInfoVos
(
manufacturerInfoPO
.
getName
()).
get
(
0
).
getRunrings
();
// HK 为单环
// HK 为单环
Integer
phaseId
=
Integer
.
valueOf
(
runrings
.
get
(
0
).
getPhaseId
());
Integer
phaseId
=
Integer
.
valueOf
(
runrings
.
get
(
0
).
getPhaseId
());
// 获取某一路口下海康相位和车道关系
// 获取某一路口下海康相位和车道关系
Map
<
Integer
,
JSONArray
>
laneArrayMap
=
getPhaseRelationLanes
(
commandVO
.
getCrossCode
());
//Map<Integer, JSONArray> laneArrayMap = getPhaseRelationLanes(commandVO.getCrossCode());
Map
<
Integer
,
JSONArray
>
laneArrayMap
=
getPhaseRelationLanes
(
manufacturerInfoPO
.
getName
());
param
.
put
(
"laneInfos"
,
laneArrayMap
.
get
(
phaseId
));
param
.
put
(
"laneInfos"
,
laneArrayMap
.
get
(
phaseId
));
param
.
put
(
"controlNo"
,
0
);
param
.
put
(
"controlNo"
,
0
);
// 控制时长,单位 s,0 则持续控制
// 控制时长,单位 s,0 则持续控制
param
.
put
(
"duration"
,
0
);
param
.
put
(
"duration"
,
0
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
PathUtil
.
getPathMapByApiCode
(
"
S
etSignalControl"
),
PathUtil
.
getPathMapByApiCode
(
"
s
etSignalControl"
),
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
if
(
HK_SUCCESS_
CODE
.
equals
(
obj
.
getInteger
(
HK_CODE_KEY
)))
{
if
(
HK_SUCCESS_
STRING_CODE
.
equals
(
obj
.
get
(
HK_CODE_KEY
)))
{
return
Result
.
success
(
"相位锁定成功"
);
return
Result
.
success
(
"相位锁定成功"
);
}
}
return
Result
.
error
(
"相位锁定失败"
);
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
else
{
}
else
{
return
controlSignal
(
commandVO
.
getCrossCode
(),
UNLOCK_RUNNING_CONTROL
);
//return controlSignal(commandVO.getCrossCode(), UNLOCK_RUNNING_CONTROL);
return
controlSignal
(
manufacturerInfoPO
.
getName
(),
UNLOCK_RUNNING_CONTROL
);
}
}
}
else
{
}
else
{
// todo else
// todo else
...
@@ -435,10 +434,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -435,10 +434,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"crossCode"
,
crossCode
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
null
,
"application/json"
,
null
);
null
,
"application/json"
,
null
);
JSONObject
obj
ect
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
Map
<
Integer
,
JSONArray
>
laneArrayMap
=
new
HashMap
<>();
Map
<
Integer
,
JSONArray
>
laneArrayMap
=
new
HashMap
<>();
if
(
HK_SUCCESS_
CODE
.
equals
(
object
.
getInteger
(
HK_CODE_KEY
)))
{
if
(
HK_SUCCESS_
STRING_CODE
.
equals
(
obj
.
get
(
HK_CODE_KEY
)))
{
JSONObject
data
=
obj
ect
.
getJSONObject
(
"data"
);
JSONObject
data
=
obj
.
getJSONObject
(
"data"
);
JSONArray
phaseList
=
data
.
getJSONArray
(
"phaseList"
);
JSONArray
phaseList
=
data
.
getJSONArray
(
"phaseList"
);
for
(
int
i
=
0
;
i
<
phaseList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
phaseList
.
size
();
i
++)
{
JSONObject
lanesObject
=
phaseList
.
getJSONObject
(
i
);
JSONObject
lanesObject
=
phaseList
.
getJSONObject
(
i
);
...
@@ -447,31 +446,32 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -447,31 +446,32 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
// 存入相位与车道集合
// 存入相位与车道集合
laneArrayMap
.
put
(
phaseNo
,
laneList
);
laneArrayMap
.
put
(
phaseNo
,
laneList
);
}
}
}
else
{
throw
new
ControlException
(
obj
.
getString
(
"msg"
));
}
}
return
laneArrayMap
;
return
laneArrayMap
;
}
}
@Override
@Override
public
<
T
>
Result
<
T
>
stepControl
(
String
code
,
Integer
command
,
Integer
stepNum
)
throws
Exception
{
public
<
T
>
Result
<
T
>
stepControl
(
String
code
,
Integer
command
,
Integer
stepNum
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
code
);
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
code
);
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
command
.
equals
(
TRUE
))
{
if
(
command
.
equals
(
TRUE
))
{
Map
<
String
,
Object
>
param
=
new
HashMap
<
String
,
Object
>()
{
Map
<
String
,
Object
>
param
=
new
HashMap
<
String
,
Object
>()
{
private
static
final
long
serialVersionUID
=
-
4365720940762732691L
;
private
static
final
long
serialVersionUID
=
-
4365720940762732691L
;
{
{
put
(
"crossCode"
,
code
);
//put("crossCode", code);
put
(
"crossCode"
,
manufacturerInfoPO
.
getName
());
put
(
"controlType"
,
STEP_CONTROL
);
put
(
"controlType"
,
STEP_CONTROL
);
}
}
};
};
int
controlNo
=
0
;
int
controlNo
=
0
;
if
(
0
!=
stepNum
)
{
if
(
0
!=
stepNum
)
{
//根据当前实时灯态获取运行的相位
//根据当前实时灯态获取运行的相位
LightsStatusVO
lightsStatusVO
=
getSignalInfoVos
(
code
).
get
(
0
);
//LightsStatusVO lightsStatusVO = getSignalInfoVos(code).get(0);
LightsStatusVO
lightsStatusVO
=
getSignalInfoVos
(
manufacturerInfoPO
.
getName
()).
get
(
0
);
//暂时按单环处理
//暂时按单环处理
String
phaseId
=
lightsStatusVO
.
getRunrings
().
get
(
0
).
getPhaseId
();
String
phaseId
=
lightsStatusVO
.
getRunrings
().
get
(
0
).
getPhaseId
();
//获取方案数据列表
//获取方案数据列表
...
@@ -495,15 +495,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -495,15 +495,16 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
}
param
.
put
(
"controlNo"
,
controlNo
);
param
.
put
(
"controlNo"
,
controlNo
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
PathUtil
.
getPathMapByApiCode
(
"
S
etSignalControl"
),
PathUtil
.
getPathMapByApiCode
(
"
s
etSignalControl"
),
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
if
(
HK_SUCCESS_
CODE
.
equals
(
obj
.
getInteger
(
HK_CODE_KEY
)))
{
if
(
HK_SUCCESS_
STRING_CODE
.
equals
(
obj
.
get
(
HK_CODE_KEY
)))
{
return
Result
.
success
();
return
Result
.
success
();
}
}
return
Result
.
error
();
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
else
{
}
else
{
return
controlSignal
(
code
,
CANCEL_STEP_CONTROL
);
//return controlSignal(code, CANCEL_STEP_CONTROL);
return
controlSignal
(
manufacturerInfoPO
.
getName
(),
CANCEL_STEP_CONTROL
);
}
}
}
else
{
}
else
{
// todo else
// todo else
...
@@ -513,14 +514,11 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -513,14 +514,11 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
setSignalControl
(
String
code
,
Integer
command
,
Integer
commandType
)
throws
Exception
{
public
<
T
>
Result
<
T
>
setSignalControl
(
String
code
,
Integer
command
,
Integer
commandType
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
code
);
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
code
);
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
Integer
runningMode
=
command
.
equals
(
TRUE
)
?
commandType
:
NORMAL_RUNNING_CONTROL
;
Integer
runningMode
=
command
.
equals
(
TRUE
)
?
commandType
:
NORMAL_RUNNING_CONTROL
;
return
controlSignal
(
code
,
runningMode
);
//return controlSignal(code, runningMode);
return
controlSignal
(
manufacturerInfoPO
.
getName
(),
runningMode
);
}
else
{
}
else
{
// todo else
// todo else
return
null
;
return
null
;
...
@@ -529,13 +527,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -529,13 +527,10 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
@Override
@Override
public
<
T
>
Result
<
T
>
recoverSchedule
(
String
code
)
throws
Exception
{
public
<
T
>
Result
<
T
>
recoverSchedule
(
String
code
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
code
);
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
code
);
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
}
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
return
controlSignal
(
code
,
NORMAL_RUNNING_CONTROL
);
//return controlSignal(code, NORMAL_RUNNING_CONTROL);
return
controlSignal
(
manufacturerInfoPO
.
getName
(),
NORMAL_RUNNING_CONTROL
);
}
else
{
}
else
{
// todo else
// todo else
return
null
;
return
null
;
...
@@ -543,88 +538,27 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -543,88 +538,27 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
}
@Override
@Override
public
<
T
>
Result
<
T
>
phaseTimingSend
(
String
code
,
List
<
TimePlanVO
>
timePlans
)
throws
Exception
{
public
<
T
>
Result
<
T
>
phaseTimingSend
(
PhaseTimingSendVO
phaseTimingSendVO
)
throws
Exception
{
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByCode
(
code
);
ManufacturerInfoPO
manufacturerInfoPO
=
checkCrossCode
(
phaseTimingSendVO
.
getCrossCode
());
if
(
crossInfoPo
==
null
)
{
if
(
manufacturerInfoPO
.
getCode
().
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,信号机ID不正确。"
);
// 将路口code转换为信号机code
}
phaseTimingSendVO
.
setCrossCode
(
manufacturerInfoPO
.
getName
());
if
(
ListUtil
.
isEmpty
(
timePlans
))
{
Map
<
String
,
Object
>
param
=
FieldUtil
.
fieldMethod
(
phaseTimingSendVO
);
throw
new
ControlException
(
"参数错误,下发方案信息为空。"
);
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"setPhaseRlatLanes"
);
}
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
//开启适配服务
path
,
for
(
TimePlanVO
timePlanVo
:
timePlans
)
{
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
timePlanVo
.
setCode
(
crossInfoPo
.
getCode
());
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
timePlanVo
.
setManufacturerCode
(
crossInfoPo
.
getManufacturerId
()
+
""
);
if
(
HK_SUCCESS_STRING_CODE
.
equals
(
obj
.
get
(
HK_CODE_KEY
)))
{
}
Integer
manufacturerId
=
crossInfoPo
.
getManufacturerId
();
if
(
manufacturerId
.
equals
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
()))
{
for
(
TimePlanVO
timePlanVo
:
timePlans
)
{
if
(!
phaseTimingSend
(
timePlanVo
))
{
//发送失败
log
.
error
(
"批量下发配时方案信息到路口信号机或信号系统中异常!"
);
throw
new
ControlException
(
"批量下发配时方案信息到路口信号机或信号系统中异常!"
);
}
if
(
timePlans
.
size
()
>
1
)
{
//暂停1秒
Thread
.
sleep
(
1000
);
}
}
return
Result
.
success
();
return
Result
.
success
();
}
return
Result
.
error
(
obj
.
getString
(
"msg"
));
}
else
{
}
else
{
// todo else
// todo else
return
null
;
return
null
;
}
}
}
}
private
boolean
phaseTimingSend
(
TimePlanVO
timePlan
)
{
try
{
//获取某一路口下海康相位和车道关系
Map
<
Integer
,
JSONArray
>
laneArrayMap
=
getPhaseRelationLanes
(
timePlan
.
getCode
());
//拼接参数
JSONObject
bodyObjectParam
=
new
JSONObject
();
JSONArray
patternArrayParam
=
new
JSONArray
();
JSONObject
patternObjectParam
=
new
JSONObject
();
patternObjectParam
.
put
(
"patternNo"
,
timePlan
.
getTimePlanId
());
patternObjectParam
.
put
(
"offSet"
,
timePlan
.
getOffset
());
patternObjectParam
.
put
(
"cycle"
,
timePlan
.
getCycleLen
());
List
<
Ring
>
ringList
=
timePlan
.
getRings
();
JSONArray
ringsArrayParam
=
new
JSONArray
();
for
(
Ring
ring
:
ringList
)
{
List
<
Phase
>
phaseList
=
ring
.
getPhases
();
JSONArray
phaseArrayParam
=
new
JSONArray
();
for
(
Phase
phase
:
phaseList
)
{
JSONObject
phaseObjectParam
=
new
JSONObject
();
phaseObjectParam
.
put
(
"phaseNo"
,
phase
.
getPhaseId
());
phaseObjectParam
.
put
(
"phaseName"
,
phase
.
getPhaseName
());
phaseObjectParam
.
put
(
"phaseLength"
,
phase
.
getPhaseTime
());
phaseObjectParam
.
put
(
"phaseSequence"
,
phase
.
getPhaseOrderId
());
//车道列表参数,适配海康车道参数
if
(
laneArrayMap
.
containsKey
(
Integer
.
valueOf
(
phase
.
getPhaseId
())))
{
phaseObjectParam
.
put
(
"lanes"
,
laneArrayMap
.
get
(
Integer
.
valueOf
(
phase
.
getPhaseId
())));
}
phaseArrayParam
.
add
(
phaseObjectParam
);
}
JSONObject
ringObjectParam
=
new
JSONObject
();
ringObjectParam
.
put
(
"ringNo"
,
ring
.
getRingNo
());
ringObjectParam
.
put
(
"phaseList"
,
phaseArrayParam
);
ringsArrayParam
.
add
(
ringObjectParam
);
}
patternObjectParam
.
put
(
"rings"
,
ringsArrayParam
);
patternArrayParam
.
add
(
patternObjectParam
);
bodyObjectParam
.
put
(
"crossCode"
,
timePlan
.
getCode
());
bodyObjectParam
.
put
(
"patternList"
,
patternArrayParam
);
//获取下发配时方案的url
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
PathUtil
.
getPathMapByApiCode
(
"updateTimePlans"
),
bodyObjectParam
.
toJSONString
(),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
return
HK_SUCCESS_CODE
.
equals
(
obj
.
getInteger
(
HK_CODE_KEY
));
}
catch
(
Exception
e
)
{
log
.
error
(
"系统繁忙,服务器端内部错误!"
,
e
);
throw
new
ControlException
(
"系统繁忙,服务器端内部错误!"
);
}
}
@Override
@Override
public
<
T
>
Result
<
T
>
phaseDiffSend
()
{
public
<
T
>
Result
<
T
>
phaseDiffSend
()
{
return
null
;
return
null
;
...
@@ -661,13 +595,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -661,13 +595,13 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
}
}
};
};
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
PathUtil
.
getPathMapByApiCode
(
"
S
etSignalControl"
),
PathUtil
.
getPathMapByApiCode
(
"
s
etSignalControl"
),
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSON
.
toJSONString
(
param
),
null
,
null
,
"application/json"
,
null
);
JSONObject
obj
ect
=
JSON
.
parseObject
(
strResult
);
JSONObject
obj
=
JSON
.
parseObject
(
strResult
);
if
(
HK_SUCCESS_
CODE
.
equals
(
object
.
getInteger
(
HK_CODE_KEY
)))
{
if
(
HK_SUCCESS_
STRING_CODE
.
equals
(
obj
.
get
(
HK_CODE_KEY
)))
{
return
Result
.
success
();
return
Result
.
success
();
}
}
return
Result
.
error
(
"下发指令失败"
);
return
Result
.
error
(
obj
.
getString
(
"msg"
)
);
}
}
/**
/**
...
@@ -681,4 +615,21 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
...
@@ -681,4 +615,21 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
baseSignals
.
add
(
baseSignal
);
baseSignals
.
add
(
baseSignal
);
return
hkLightsStatusService
.
getHkLightsStatus
(
baseSignals
);
return
hkLightsStatusService
.
getHkLightsStatus
(
baseSignals
);
}
}
/**
* 通用方法-检查路口id
* 查询出信号机id
*/
private
ManufacturerInfoPO
checkCrossCode
(
String
crossCode
)
{
// 根据路口id查询
CrossInfoPO
crossInfoPo
=
crossInfoMapper
.
selectByPrimaryKey
(
crossCode
);
if
(
crossInfoPo
==
null
)
{
throw
new
ControlException
(
BODY_NOT_MATCH
.
getResultCode
(),
"参数错误,路口ID不正确。"
);
}
// 厂商 HK
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectById
(
crossInfoPo
.
getManufacturerId
());
// 路口code不是信号机code,此处为了方便,利用ManufacturerInfoPO的name属性做一下存储
manufacturerInfoPO
.
setName
(
crossInfoPo
.
getCode
());
return
manufacturerInfoPO
;
}
}
}
signal-utc-service/src/main/java/net/wanji/utc/vo/ControlCommandVO.java
View file @
f1f0d70a
...
@@ -3,7 +3,6 @@ package net.wanji.utc.vo;
...
@@ -3,7 +3,6 @@ package net.wanji.utc.vo;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.Data
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Max
;
import
javax.validation.constraints.Min
;
import
javax.validation.constraints.Min
;
...
@@ -26,8 +25,8 @@ public class ControlCommandVO{
...
@@ -26,8 +25,8 @@ public class ControlCommandVO{
/**
/**
* 1 锁定; 0 取消
* 1 锁定; 0 取消
*/
*/
@ApiModelProperty
(
value
=
"1
锁定;0 取消
"
)
@ApiModelProperty
(
value
=
"1
是;0否
"
)
@NotNull
(
message
=
"控制类型不可为空,1
锁定;0 取消
"
)
@NotNull
(
message
=
"控制类型不可为空,1
是;0否
"
)
@Max
(
value
=
1
,
message
=
"控制类型:1是;0否"
)
@Max
(
value
=
1
,
message
=
"控制类型:1是;0否"
)
@Min
(
value
=
0
,
message
=
"控制类型:1是;0否"
)
@Min
(
value
=
0
,
message
=
"控制类型:1是;0否"
)
private
Integer
command
;
private
Integer
command
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/vo/PhaseTimingSendVO.java
0 → 100644
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Setter
;
import
java.util.List
;
/**
* 下发相位参数VO
*
* @author wuxiaokai
* @date 2022/12/9 11:08:51
*/
@Setter
@Getter
@ApiModel
(
value
=
"下发相位参数输入参数"
,
description
=
"下发相位参数输入参数"
)
public
class
PhaseTimingSendVO
{
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
private
String
crossCode
;
@ApiModelProperty
(
value
=
"需要下发的相位列表"
,
notes
=
"需要下发的相位列表"
)
private
List
<
Phase
>
phaseList
;
/**
* 相位
*/
@Setter
@Getter
public
static
class
Phase
{
/**
* 相位号
*/
@ApiModelProperty
(
value
=
"相位号"
,
notes
=
"相位号"
)
private
Integer
phaseNo
;
/**
* 相位描述
*/
@ApiModelProperty
(
value
=
"相位描述"
,
notes
=
"相位描述"
)
private
String
desc
;
/**
* 黄灯
*/
@ApiModelProperty
(
value
=
"黄灯"
,
notes
=
"黄灯"
)
private
Integer
yellow
;
/**
* 全红
*/
@ApiModelProperty
(
value
=
"全红"
,
notes
=
"全红"
)
private
Integer
allred
;
/**
* 绿闪
*/
@ApiModelProperty
(
value
=
"绿闪"
,
notes
=
""
)
private
String
greenFlash
;
/**
* 红闪
*/
@ApiModelProperty
(
value
=
"红闪"
,
notes
=
""
)
private
String
redFlash
;
/**
* 最小绿
*/
@ApiModelProperty
(
value
=
"最小绿"
,
notes
=
""
)
private
String
minGreen
;
/**
* 最大绿
*/
@ApiModelProperty
(
value
=
"最大绿"
,
notes
=
""
)
private
String
maxGreen
;
/**
* 相位关联的车道列表
*/
@ApiModelProperty
(
value
=
"相位关联的车道列表"
,
notes
=
"相位关联的车道列表"
)
private
List
<
Lane
>
lanes
;
@Setter
@Getter
public
static
class
Lane
{
/**
* 车道号
*/
@ApiModelProperty
(
value
=
"车道号"
,
notes
=
"车道号"
)
private
Integer
laneNo
;
/**
* 方向
*/
@ApiModelProperty
(
value
=
"方向"
,
notes
=
"方向"
)
private
Integer
direction
;
/**
* 转向
*/
@ApiModelProperty
(
value
=
"转向"
,
notes
=
"转向"
)
private
Integer
turn
;
}
}
}
signal-utc-service/src/main/java/net/wanji/utc/vo/PlanSendVO.java
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
vo
;
package
net
.
wanji
.
utc
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -15,6 +16,7 @@ import java.util.List;
...
@@ -15,6 +16,7 @@ import java.util.List;
*/
*/
@Setter
@Setter
@Getter
@Getter
@ApiModel
(
value
=
"信号机计划下发输入参数"
,
description
=
"信号机计划下发输入参数"
)
public
class
PlanSendVO
{
public
class
PlanSendVO
{
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
...
...
signal-utc-service/src/main/java/net/wanji/utc/vo/ScheduleSendVO.java
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
vo
;
package
net
.
wanji
.
utc
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -14,6 +15,7 @@ import java.util.List;
...
@@ -14,6 +15,7 @@ import java.util.List;
*/
*/
@Setter
@Setter
@Getter
@Getter
@ApiModel
(
value
=
"信号机时间表下发输入参数"
,
description
=
"信号机时间表下发输入参数"
)
public
class
ScheduleSendVO
{
public
class
ScheduleSendVO
{
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
...
...
signal-utc-service/src/main/java/net/wanji/utc/vo/SchemeSendVO.java
View file @
f1f0d70a
package
net
.
wanji
.
utc
.
vo
;
package
net
.
wanji
.
utc
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
...
@@ -14,6 +15,7 @@ import java.util.List;
...
@@ -14,6 +15,7 @@ import java.util.List;
*/
*/
@Setter
@Setter
@Getter
@Getter
@ApiModel
(
value
=
"信号机方案下发输入参数"
,
description
=
"信号机方案下发输入参数"
)
public
class
SchemeSendVO
{
public
class
SchemeSendVO
{
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
@ApiModelProperty
(
value
=
"路口编号"
,
notes
=
"路口编号"
)
...
@@ -138,41 +140,41 @@ public class SchemeSendVO {
...
@@ -138,41 +140,41 @@ public class SchemeSendVO {
}
}
@Setter
//
@Setter
@Getter
//
@Getter
public
static
class
Lights
{
//
public static class Lights {
//
/**
//
/**
* 灯组号
//
* 灯组号
*/
//
*/
@ApiModelProperty
(
value
=
"灯组号"
,
notes
=
""
)
//
@ApiModelProperty(value = "灯组号", notes = "")
private
String
lightsNo
;
//
private String lightsNo;
/**
//
/**
* 灯组名称
//
* 灯组名称
*/
//
*/
@ApiModelProperty
(
value
=
"灯组名称"
,
notes
=
""
)
//
@ApiModelProperty(value = "灯组名称", notes = "")
private
String
name
;
//
private String name;
/**
//
/**
* 灯组类型:1箭头;2圆饼,3行人
//
* 灯组类型:1箭头;2圆饼,3行人
*/
//
*/
@ApiModelProperty
(
value
=
"灯组类型:1箭头2圆饼3行人"
,
notes
=
""
)
//
@ApiModelProperty(value = "灯组类型:1箭头2圆饼3行人", notes = "")
private
String
type
;
//
private String type;
/**
//
/**
* 灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北
//
* 灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北
*/
//
*/
@ApiModelProperty
(
value
=
"灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
//
@ApiModelProperty(value = "灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北", notes = "")
private
String
dir
;
//
private String dir;
/**
//
/**
* 灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人
//
* 灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人
*/
//
*/
@ApiModelProperty
(
value
=
"灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人"
,
notes
=
""
)
//
@ApiModelProperty(value = "灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人", notes = "")
private
String
turn
;
//
private String turn;
/**
//
/**
* 行人进出口:1进口;2出口,3进出口
//
* 行人进出口:1进口;2出口,3进出口
*/
//
*/
@ApiModelProperty
(
value
=
"行人进出口:1进口2出口,3进出口"
,
notes
=
""
)
//
@ApiModelProperty(value = "行人进出口:1进口2出口,3进出口", notes = "")
private
String
inOutType
;
//
private String inOutType;
}
//
}
}
}
}
}
...
...
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/FixedLightGroupVo.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
/**
* @author wanji
* @version 1.0
* Created on 2019/7/15 10:28
* @description: [固定灯色灯组方案下发]
*/
@Data
@ApiModel
(
value
=
"FixedLightGroupVo"
,
description
=
"固定灯色灯组实体"
)
public
class
FixedLightGroupVo
{
//灯组编号
@ApiModelProperty
(
value
=
"灯组编号,逗号分隔"
)
private
String
lightGroupNo
;
//固定灯色
@ApiModelProperty
(
value
=
"固定灯色"
)
private
Integer
color
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/Pdirection.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
/**
* @author wanji
* @version 1.0
* @Description: [行人方向]
* Created on 2019/4/19 17:20
*/
@Data
@ApiModel
(
value
=
"Pdirection"
,
description
=
"行人方向"
)
public
class
Pdirection
{
//方向
private
Integer
direction
;
private
Integer
second
;
private
Integer
inoutType
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/Phase.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author wanji
* @version 1.0
* @Description: [相位数据实体]
* Created on 2019/4/19 16:56
*/
@Data
@ApiModel
(
value
=
"Phase"
,
description
=
"相位数据实体"
)
public
class
Phase
{
//相位编号
@ApiModelProperty
(
value
=
"相位编号"
)
private
String
phaseId
;
//相位名称
@ApiModelProperty
(
value
=
"相位名称"
)
private
String
phaseName
;
//相位描述
@ApiModelProperty
(
value
=
"相位描述"
)
private
String
phaseDesc
;
//相位顺序号
@ApiModelProperty
(
value
=
"相位顺序号"
)
private
Integer
phaseOrderId
;
//原版本相位时长(绿信比)
@ApiModelProperty
(
value
=
"原版本相位时长(绿信比)"
)
private
Integer
originalTime
;
//相位时长(绿信比)
@ApiModelProperty
(
value
=
"相位时长(绿信比)"
)
private
Integer
phaseTime
;
//最大绿时间
@ApiModelProperty
(
value
=
"最大绿时间"
)
private
Integer
maxgreenTime
;
//最小绿时间
@ApiModelProperty
(
value
=
"最小绿时间"
)
private
Integer
mingreenTime
;
//灯组编号
@ApiModelProperty
(
value
=
"灯组编号"
)
private
String
lightGroupNo
;
//黄灯时间
@ApiModelProperty
(
value
=
"黄灯时间"
)
private
Integer
yellowTime
;
//红灯时间
@ApiModelProperty
(
value
=
"红灯时间"
)
private
Integer
redTime
;
//所有跟随相位,相位编号
@ApiModelProperty
(
value
=
"所有跟随相位,相位编号"
)
private
String
[]
followPhases
;
//步数据对象列表
@ApiModelProperty
(
value
=
"步数据对象列表"
)
private
List
<
Step
>
steps
;
//机动车方向
@ApiModelProperty
(
value
=
"机动车方向"
)
private
List
<
Vdirection
>
vdirections
;
//行人方向
@ApiModelProperty
(
value
=
"行人方向"
)
private
List
<
Pdirection
>
pdirections
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/Ring.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
lombok.Data
;
import
java.util.List
;
/**
* @author wanji
* @version 1.0
* @Description: [环数据对象]
* Created on 2019/4/22 15:54
*/
@Data
public
class
Ring
{
//环编号
private
String
ringNo
;
//相位对象列表
private
List
<
Phase
>
phases
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/Step.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
lombok.Data
;
/**
* @author wanji
* @version 1.0
* @Description: [步数据对象]
* Created on 2019/4/22 15:56
*/
@Data
public
class
Step
{
//步号:1,2,3,4,5,6
private
Integer
stepNo
;
//步类型:1 green 2 greenflash 3 pedflash 4 yellow 5 red 6 off
private
Integer
stepType
;
//步长
private
Integer
stepLen
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/TimePlanVO.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
net.wanji.utc.common.baseentity.BaseCrossInfo
;
import
java.util.List
;
/**
* @author wanji
* @version 1.0
* @Description: [配时方案实体类]
* Created on 2019/4/22 15:40
*/
@Data
@ApiModel
(
value
=
"TimePlanVo"
,
description
=
"配时方案实体类"
)
public
class
TimePlanVO
extends
BaseCrossInfo
{
//配时方案编号
@ApiModelProperty
(
value
=
"配时方案编号"
,
required
=
true
)
private
String
timePlanId
;
//配时方案描述
@ApiModelProperty
(
value
=
"配时方案描述"
)
private
String
timePlanDesc
;
//相位方案编号
@ApiModelProperty
(
value
=
"相位方案编号"
)
private
String
phasePlanId
;
//周期长度
@ApiModelProperty
(
value
=
"周期长度"
)
private
Integer
cycleLen
;
//协调相位编号
@ApiModelProperty
(
value
=
"协调相位编号"
)
private
String
coordPhaseId
;
//相位差
@ApiModelProperty
(
value
=
"相位差"
)
private
Integer
offset
;
//环数量 1 一环 2 两环
@ApiModelProperty
(
value
=
"环数量 1 一环 2 两环"
)
private
String
ringCount
;
//环数据对象列表
@ApiModelProperty
(
value
=
"环数据对象列表"
)
private
List
<
Ring
>
rings
;
//始终固定灯色的灯组(可选)
@ApiModelProperty
(
value
=
"始终固定灯色的灯组(可选)"
)
private
List
<
FixedLightGroupVo
>
fixedLightGroups
;
//是否启用信号机自适应功能(可选,默认为 false)
@ApiModelProperty
(
value
=
"是否启用信号机自适应功能(可选,默认为 false)"
)
private
Boolean
selfAdaptive
;
//操作类型 1:下发 2:恢复 3:下发返回300特殊处理 4:恢复返回300特殊处理
@ApiModelProperty
(
value
=
"操作类型 1:下发 2:恢复 3:下发返回300特殊处理 4:恢复返回300特殊处理"
)
private
Integer
optType
;
//顺序号
@ApiModelProperty
(
value
=
"顺序号"
)
private
Integer
orderId
;
}
signal-utc-service/src/main/java/net/wanji/utc/vo/timeplan/Vdirection.java
deleted
100644 → 0
View file @
75808894
package
net
.
wanji
.
utc
.
vo
.
timeplan
;
import
io.swagger.annotations.ApiModel
;
import
lombok.Data
;
/**
* @author wanji
* @version 1.0
* @Description: [机动车方向]
* Created on 2019/4/19 17:20
*/
@Data
@ApiModel
(
value
=
"Vdirection"
,
description
=
"机动车方向"
)
public
class
Vdirection
{
//方向, 方向:0 北 1 东北 2 东 3 东南 4 南 5 西南 6 西 7 西北
private
Integer
direction
;
//车辆类型
private
Integer
turnType
;
}
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