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
1fc2f3c0
Commit
1fc2f3c0
authored
Nov 18, 2022
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
静态信息接口-方案数据-灯组信息、灯组相位关系
parent
716d3d0b
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
463 additions
and
98 deletions
+463
-98
HkLightsDirEnum.java
...n/java/net/wanji/utc/common/typeenum/HkLightsDirEnum.java
+39
-0
HkLightsTurnEnum.java
.../java/net/wanji/utc/common/typeenum/HkLightsTurnEnum.java
+37
-0
HkLightsTypeEnum.java
.../java/net/wanji/utc/common/typeenum/HkLightsTypeEnum.java
+33
-0
PhaseCache.java
.../src/main/java/net/wanji/utc/entity/cache/PhaseCache.java
+3
-0
CrossLightsMapper.java
...src/main/java/net/wanji/utc/mapper/CrossLightsMapper.java
+14
-0
CrossPhaseLightsMapper.java
...ain/java/net/wanji/utc/mapper/CrossPhaseLightsMapper.java
+17
-0
CrossLightsPO.java
...service/src/main/java/net/wanji/utc/po/CrossLightsPO.java
+44
-0
CrossPhaseLightsPO.java
...ce/src/main/java/net/wanji/utc/po/CrossPhaseLightsPO.java
+32
-0
HkSchemePhaseLightsServiceImpl.java
...anji/utc/service/impl/HkSchemePhaseLightsServiceImpl.java
+188
-98
CrossLightsMapper.xml
...c-service/src/main/resources/mapper/CrossLightsMapper.xml
+28
-0
CrossPhaseLightsMapper.xml
...vice/src/main/resources/mapper/CrossPhaseLightsMapper.xml
+28
-0
No files found.
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/HkLightsDirEnum.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
common
.
typeenum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Objects
;
/**
* @author Kent HAN
* @date 2022/11/18 13:33
*/
@Getter
@AllArgsConstructor
public
enum
HkLightsDirEnum
{
ONE
(
5
,
1
),
TWO
(
1
,
2
),
THREE
(
3
,
3
),
FOUR
(
7
,
4
),
FIVE
(
6
,
5
),
SIX
(
8
,
6
),
SEVEN
(
4
,
7
),
EIGHT
(
2
,
8
),
NINE
(
1
,
9
),
TEN
(
5
,
10
),
ELEVEN
(
7
,
11
),
TWELVE
(
3
,
12
);
private
Integer
code
;
private
Integer
hkCode
;
public
static
Integer
getCodeByHkCode
(
Integer
hkCode
)
{
for
(
HkLightsDirEnum
value
:
values
())
{
if
(
Objects
.
equals
(
hkCode
,
value
.
getHkCode
()))
{
return
value
.
getCode
();
}
}
return
null
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/HkLightsTurnEnum.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
common
.
typeenum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Objects
;
/**
* @author Kent HAN
* @date 2022/11/18 13:33
*/
@Getter
@AllArgsConstructor
public
enum
HkLightsTurnEnum
{
ONE
(
3
,
1
),
TWO
(
1
,
2
),
THREE
(
2
,
3
),
FOUR
(
4
,
4
),
FIVE
(
5
,
5
),
SIX
(
6
,
6
),
SEVEN
(
20
,
7
),
EIGHT
(
14
,
8
),
NINE
(
15
,
9
),
TEN
(
10
,
10
);
private
Integer
code
;
private
Integer
hkCode
;
public
static
Integer
getCodeByHkCode
(
Integer
hkCode
)
{
for
(
HkLightsTurnEnum
value
:
values
())
{
if
(
Objects
.
equals
(
hkCode
,
value
.
getHkCode
()))
{
return
value
.
getCode
();
}
}
return
null
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/common/typeenum/HkLightsTypeEnum.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
common
.
typeenum
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
java.util.Objects
;
/**
* @author Kent HAN
* @date 2022/11/18 13:33
*/
@Getter
@AllArgsConstructor
public
enum
HkLightsTypeEnum
{
TEN
(
2
,
10
),
ELEVEN
(
1
,
11
),
TWELVE
(
1
,
12
),
THIRTEEN
(
1
,
13
),
FOURTEEN
(
1
,
14
),
THIRTY_ONE
(
3
,
31
);
private
Integer
code
;
private
Integer
hkCode
;
public
static
Integer
getCodeByHkCode
(
Integer
hkCode
)
{
for
(
HkLightsTypeEnum
value
:
values
())
{
if
(
Objects
.
equals
(
hkCode
,
value
.
getHkCode
()))
{
return
value
.
getCode
();
}
}
return
null
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/entity/cache/PhaseCache.java
View file @
1fc2f3c0
...
...
@@ -2,6 +2,8 @@ package net.wanji.utc.entity.cache;
import
lombok.Data
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/18 9:12
...
...
@@ -15,4 +17,5 @@ public class PhaseCache {
private
Integer
phaseLength
;
// 相位时间
private
Integer
schemeId
;
// 方案ID
private
Integer
phaseId
;
// 相位ID
private
List
<
Integer
>
laneNoList
;
// 车道号列表
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossLightsMapper.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
mapper
;
import
net.wanji.utc.po.CrossLightsPO
;
import
org.apache.ibatis.annotations.Param
;
/**
* @author Kent HAN
* @date 2022/11/18 14:10
*/
public
interface
CrossLightsMapper
{
void
deleteOne
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"lightsNo"
)
String
lightsNo
);
void
insertOne
(
CrossLightsPO
crossLightsPO
);
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossPhaseLightsMapper.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
mapper
;
import
net.wanji.utc.po.CrossPhaseLightsPO
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2022/11/18 14:10
*/
public
interface
CrossPhaseLightsMapper
{
void
deleteByCrossId
(
@Param
(
"crossId"
)
String
crossId
);
void
insertBatch
(
@Param
(
"entities"
)
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
);
}
signal-utc-service/src/main/java/net/wanji/utc/po/CrossLightsPO.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
po
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author Kent HAN
* @date 2022/11/18 13:20
*/
@Data
public
class
CrossLightsPO
{
/** 灯组ID */
@ApiModelProperty
(
name
=
"灯组ID"
,
notes
=
""
)
private
Integer
id
;
/** 灯组号 */
@ApiModelProperty
(
name
=
"灯组号"
,
notes
=
""
)
private
String
lightsNo
;
/** 灯组名称 */
@ApiModelProperty
(
name
=
"灯组名称"
,
notes
=
""
)
private
String
name
;
/** 灯组类型:1箭头;2圆饼,3行人 */
@ApiModelProperty
(
name
=
"灯组类型:1箭头2圆饼3行人"
,
notes
=
""
)
private
Integer
type
;
/** 灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北 */
@ApiModelProperty
(
name
=
"灯组方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北"
,
notes
=
""
)
private
Integer
dir
;
/** 灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人 */
@ApiModelProperty
(
name
=
"灯组转向:1左转;2右转;3直行;4左掉头;5直左;6直右;7右掉头;8向左合流;9向右合流;10左转加掉头;11右转加掉头;12直行加左掉头;13直行加右掉头;14左转右转;15左直右;16左转右转加掉头;17左直掉头;18左直右掉头;20行人"
,
notes
=
""
)
private
Integer
turn
;
/** 路口ID */
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
/** 行人进出口:1进口;2出口,3进出口 */
@ApiModelProperty
(
name
=
"行人进出口:1进口2出口,3进出口"
,
notes
=
""
)
private
Integer
inOutType
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
signal-utc-service/src/main/java/net/wanji/utc/po/CrossPhaseLightsPO.java
0 → 100644
View file @
1fc2f3c0
package
net
.
wanji
.
utc
.
po
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
java.util.Date
;
/**
* @author Kent HAN
* @date 2022/11/18 14:32
*/
@Data
public
class
CrossPhaseLightsPO
{
/** 主键 */
@ApiModelProperty
(
name
=
"主键"
,
notes
=
""
)
private
Integer
id
;
/** 灯组ID */
@ApiModelProperty
(
name
=
"灯组ID"
,
notes
=
""
)
private
Integer
lightsId
;
/** 相位ID */
@ApiModelProperty
(
name
=
"相位ID"
,
notes
=
""
)
private
Integer
phaseId
;
/** 路口ID */
@ApiModelProperty
(
name
=
"路口ID"
,
notes
=
""
)
private
String
crossId
;
/** 创建时间 */
@ApiModelProperty
(
name
=
"创建时间"
,
notes
=
""
)
private
Date
gmtCreate
;
/** 修改时间 */
@ApiModelProperty
(
name
=
"修改时间"
,
notes
=
""
)
private
Date
gmtModified
;
}
signal-utc-service/src/main/java/net/wanji/utc/service/impl/HkSchemePhaseLightsServiceImpl.java
View file @
1fc2f3c0
...
...
@@ -8,9 +8,16 @@ import com.hikvision.artemis.sdk.config.ArtemisConfig;
import
net.wanji.utc.common.commonentity.HttpRequest
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.typeenum.BasicEnum
;
import
net.wanji.utc.common.typeenum.HkLightsDirEnum
;
import
net.wanji.utc.common.typeenum.HkLightsTurnEnum
;
import
net.wanji.utc.common.typeenum.HkLightsTypeEnum
;
import
net.wanji.utc.entity.cache.PhaseCache
;
import
net.wanji.utc.mapper.CrossLightsMapper
;
import
net.wanji.utc.mapper.CrossPhaseLightsMapper
;
import
net.wanji.utc.mapper.CrossPhaseMapper
;
import
net.wanji.utc.mapper.CrossSchemeMapper
;
import
net.wanji.utc.po.CrossLightsPO
;
import
net.wanji.utc.po.CrossPhaseLightsPO
;
import
net.wanji.utc.po.CrossPhasePO
;
import
net.wanji.utc.po.CrossSchemePO
;
import
net.wanji.utc.service.HkSchemePhaseLightsService
;
...
...
@@ -18,10 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
/**
* 方案数据-方案信息、相位信息
...
...
@@ -31,7 +35,7 @@ import java.util.Map;
*/
@Service
public
class
HkSchemePhaseLightsServiceImpl
implements
HkSchemePhaseLightsService
{
// 相位信息缓存
// 相位信息缓存
,key-相位号,value-相位信息对象
public
static
Map
<
Integer
,
PhaseCache
>
phaseCacheMap
=
new
HashMap
<>();
@Value
(
"${signal.manufacturer.hk.artemisPath}"
)
...
...
@@ -42,73 +46,119 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
CrossSchemeMapper
crossSchemeMapper
;
@Autowired
CrossPhaseMapper
crossPhaseMapper
;
@Autowired
CrossLightsMapper
crossLightsMapper
;
@Autowired
CrossPhaseLightsMapper
crossPhaseLightsMapper
;
@Override
public
void
hkSchemePhaseLights
(
String
crossId
,
String
crossCode
)
throws
Exception
{
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
// 请求3.1.3接口
Map
<
String
,
String
>
path
313
=
getPathMapByApiCode
(
"uploadPatternCodeList"
);
Map
<
String
,
String
>
queryMap
313
=
new
HashMap
<>();
queryMap
313
.
put
(
"crossCode"
,
crossCode
);
String
Result
313
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path313
,
null
,
queryMap313
,
// 请求3.1.3接口
,获取并处理方案数据
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"uploadPatternCodeList"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
null
,
"application/json"
,
null
);
JSONObject
object313
=
JSON
.
parseObject
(
Result313
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object313
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data313
=
object313
.
getJSONArray
(
"data"
);
for
(
int
i
=
0
;
i
<
data313
.
size
();
i
++)
{
JSONObject
obj313
=
data313
.
getJSONObject
(
i
);
Integer
patternNo
=
obj313
.
getInteger
(
"patternNo"
);
String
patternName
=
obj313
.
getString
(
"patternName"
);
// 请求3.1.4接口
Map
<
String
,
String
>
path314
=
getPathMapByApiCode
(
"getCrossPlanDetail"
);
Map
<
String
,
String
>
queryMap314
=
new
HashMap
<>();
queryMap314
.
put
(
"crossCode"
,
crossCode
);
queryMap314
.
put
(
"patternNo"
,
patternNo
.
toString
());
String
Result314
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path314
,
null
,
queryMap314
,
JSONObject
object
=
JSON
.
parseObject
(
Result
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data
=
object
.
getJSONArray
(
"data"
);
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
JSONObject
obj
=
data
.
getJSONObject
(
i
);
Integer
patternNo
=
obj
.
getInteger
(
"patternNo"
);
String
patternName
=
obj
.
getString
(
"patternName"
);
// 请求3.1.4接口,获取并处理方案数据
handleSchemeData
(
crossId
,
crossCode
,
crossSchemePOList
,
patternNo
,
patternName
);
}
}
// 请求3.1.11接口,获取并处理相位数据
handlePhaseData
(
crossId
,
crossCode
);
// 请求3.1.2接口,获取并处理灯组数据
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
handleLightsData
(
crossId
,
crossCode
);
// 更新相位-灯组关系
crossPhaseLightsMapper
.
deleteByCrossId
(
crossId
);
crossPhaseLightsMapper
.
insertBatch
(
crossPhaseLightsPOList
);
}
private
List
<
CrossPhaseLightsPO
>
handleLightsData
(
String
crossId
,
String
crossCode
)
throws
Exception
{
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getCrossInfo"
);
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
new
ArrayList
<>();
JSONObject
requestContent
=
new
JSONObject
();
// 海康固定入参字段名
requestContent
.
put
(
"pageNo"
,
1
);
requestContent
.
put
(
"pageSize"
,
9999
);
JSONObject
searchObj
=
new
JSONObject
();
requestContent
.
put
(
"searchObj"
,
searchObj
);
ArrayList
<
String
>
codeLst
=
new
ArrayList
<>();
codeLst
.
add
(
crossCode
);
searchObj
.
put
(
"codeLst"
,
codeLst
);
String
body
=
requestContent
.
toJSONString
();
// 请求参数
String
responseStr
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
body
,
null
,
null
,
"application/json"
,
null
);
JSONObject
object314
=
JSON
.
parseObject
(
Result314
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object314
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data314
=
object314
.
getJSONArray
(
"data"
);
for
(
int
j
=
0
;
j
<
data314
.
size
();
j
++)
{
JSONObject
obj314
=
data314
.
getJSONObject
(
j
);
Integer
cycle
=
obj314
.
getInteger
(
"cycle"
);
Integer
coordPhase
=
obj314
.
getInteger
(
"coordPhase"
);
Integer
offset
=
obj314
.
getInteger
(
"offset"
);
// 构造数据库记录
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setSchemeNo
(
patternNo
.
toString
());
crossSchemePO
.
setName
(
patternName
);
crossSchemePO
.
setCrossId
(
crossId
);
crossSchemePO
.
setCycle
(
cycle
);
crossSchemePO
.
setCoordPhase
(
coordPhase
);
crossSchemePO
.
setOffset
(
offset
);
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePOList
.
add
(
crossSchemePO
);
JSONObject
responseObj
=
JSON
.
parseObject
(
responseStr
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
responseObj
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONObject
data
=
responseObj
.
getJSONObject
(
"data"
);
JSONArray
list
=
data
.
getJSONArray
(
"list"
);
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++){
JSONObject
crossObj
=
list
.
getJSONObject
(
i
);
JSONArray
laneEles
=
crossObj
.
getJSONArray
(
"laneEles"
);
for
(
int
j
=
0
;
j
<
laneEles
.
size
();
j
++)
{
JSONObject
laneObj
=
laneEles
.
getJSONObject
(
j
);
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
String
lightsNo
=
laneObj
.
getString
(
"elementId"
);
crossLightsPO
.
setLightsNo
(
lightsNo
);
Integer
lampGroupType
=
laneObj
.
getInteger
(
"lampGroupType"
);
Integer
type
=
HkLightsTypeEnum
.
getCodeByHkCode
(
lampGroupType
);
crossLightsPO
.
setType
(
type
);
Integer
direction
=
laneObj
.
getInteger
(
"direction"
);
Integer
dir
=
HkLightsDirEnum
.
getCodeByHkCode
(
direction
);
crossLightsPO
.
setDir
(
dir
);
Integer
turn
=
laneObj
.
getInteger
(
"turn"
);
turn
=
HkLightsTurnEnum
.
getCodeByHkCode
(
turn
);
crossLightsPO
.
setTurn
(
turn
);
crossLightsPO
.
setCrossId
(
crossId
);
crossLightsPO
.
setInOutType
(
3
);
// 海康都是进出口
// 插入数据返回自增ID
crossSchemeMapper
.
deleteOne
(
crossId
,
patternNo
.
toString
());
crossSchemeMapper
.
insertOne
(
crossSchemePO
);
Integer
schemePOId
=
crossSchemePO
.
getId
();
// 缓存相位信息,key-相位号,value-相位信息对象
putPhaseCache
(
obj314
,
schemePOId
);
crossLightsMapper
.
deleteOne
(
crossId
,
lightsNo
);
crossLightsMapper
.
insertOne
(
crossLightsPO
);
Integer
crossLightsPOId
=
crossLightsPO
.
getId
();
// 匹配缓存信息,构造相位灯组关系对象列表
Integer
laneNo
=
laneObj
.
getInteger
(
"laneNo"
);
Collection
<
PhaseCache
>
phaseCaches
=
phaseCacheMap
.
values
();
for
(
PhaseCache
phaseCache
:
phaseCaches
)
{
List
<
Integer
>
laneNoList
=
phaseCache
.
getLaneNoList
();
for
(
Integer
laneNoInCache
:
laneNoList
)
{
if
(
Objects
.
equals
(
laneNo
,
laneNoInCache
))
{
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
crossPhaseLightsPO
.
setLightsId
(
crossLightsPOId
);
crossPhaseLightsPO
.
setPhaseId
(
phaseCache
.
getPhaseId
());
crossPhaseLightsPO
.
setCrossId
(
crossId
);
crossPhaseLightsPOList
.
add
(
crossPhaseLightsPO
);
}
}
}
}
}
}
return
crossPhaseLightsPOList
;
}
// 请求3.1.11接口,获取并处理相位数据
Map
<
String
,
String
>
path3111
=
getPathMapByApiCode
(
"getPhaseRlatLanes"
);
Map
<
String
,
String
>
queryMap3111
=
new
HashMap
<>();
queryMap3111
.
put
(
"crossCode"
,
crossCode
);
String
Result3111
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path3111
,
null
,
queryMap3111
,
private
void
handlePhaseData
(
String
crossId
,
String
crossCode
)
throws
Exception
{
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getPhaseRlatLanes"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
null
,
"application/json"
,
null
);
JSONObject
object3111
=
JSON
.
parseObject
(
Result3111
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object3111
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONObject
data3111
=
object3111
.
getJSONObject
(
"data"
);
JSONArray
list3111
=
data3111
.
getJSONArray
(
"phaseList"
);
for
(
int
k
=
0
;
k
<
list3111
.
size
();
k
++)
{
JSONObject
object
=
JSON
.
parseObject
(
Result
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
JSONArray
list
=
data
.
getJSONArray
(
"phaseList"
);
for
(
int
k
=
0
;
k
<
list
.
size
();
k
++)
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
JSONObject
phase3111
=
list3111
.
getJSONObject
(
k
);
Integer
phaseNo
=
phase3111
.
getInteger
(
"phaseNo"
);
JSONObject
phase
=
list
.
getJSONObject
(
k
);
Integer
phaseNo
=
phase
.
getInteger
(
"phaseNo"
);
// 从缓存中获取数据
PhaseCache
phaseCache
=
phaseCacheMap
.
get
(
phaseNo
);
crossPhasePO
.
setPhaseNo
(
phaseCache
.
getPhaseNo
().
toString
());
...
...
@@ -121,37 +171,68 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
Integer
phaseLength
=
phaseCache
.
getPhaseLength
();
crossPhasePO
.
setPhaseTime
(
phaseLength
);
// 从接口返回对象中获取数据
Integer
greenFlash
=
phase3111
.
getInteger
(
"greenFlash"
);
Integer
greenFlash
=
phase
.
getInteger
(
"greenFlash"
);
crossPhasePO
.
setGreenFlashTime
(
greenFlash
);
Integer
yellow
=
phase3111
.
getInteger
(
"yellow"
);
Integer
yellow
=
phase
.
getInteger
(
"yellow"
);
crossPhasePO
.
setYellowTime
(
yellow
);
Integer
allred
=
phase3111
.
getInteger
(
"allred"
);
Integer
allred
=
phase
.
getInteger
(
"allred"
);
crossPhasePO
.
setRedTime
(
allred
);
int
green
=
phaseLength
-
greenFlash
-
yellow
-
allred
;
crossPhasePO
.
setGreenTime
(
green
);
Integer
minGreen
=
phase3111
.
getInteger
(
"minGreen"
);
Integer
minGreen
=
phase
.
getInteger
(
"minGreen"
);
crossPhasePO
.
setMinGreenTime
(
minGreen
);
Integer
maxGreen
=
phase3111
.
getInteger
(
"maxGreen"
);
Integer
maxGreen
=
phase
.
getInteger
(
"maxGreen"
);
crossPhasePO
.
setMaxGreenTime
(
maxGreen
);
// 插入数据返回自增ID,更新缓存
crossPhaseMapper
.
deleteOne
(
crossId
,
phaseNo
.
toString
());
crossPhaseMapper
.
insertOne
(
crossPhasePO
);
Integer
crossPhasePOId
=
crossPhasePO
.
getId
();
PhaseCache
phaseCache3111
=
phaseCacheMap
.
get
(
phaseNo
);
phaseCache3111
.
setPhaseId
(
crossPhasePOId
);
}
phaseCache
.
setPhaseId
(
crossPhasePOId
);
}
}
}
// 返回路口、相位、车道列表,用于构造相位-灯组关系表
private
void
handleSchemeData
(
String
crossId
,
String
crossCode
,
List
<
CrossSchemePO
>
crossSchemePOList
,
Integer
patternNo
,
String
patternName
)
throws
Exception
{
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getCrossPlanDetail"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"patternNo"
,
patternNo
.
toString
());
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
null
,
"application/json"
,
null
);
JSONObject
object
=
JSON
.
parseObject
(
Result
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data
=
object
.
getJSONArray
(
"data"
);
for
(
int
j
=
0
;
j
<
data
.
size
();
j
++)
{
JSONObject
obj
=
data
.
getJSONObject
(
j
);
Integer
cycle
=
obj
.
getInteger
(
"cycle"
);
Integer
coordPhase
=
obj
.
getInteger
(
"coordPhase"
);
Integer
offset
=
obj
.
getInteger
(
"offset"
);
// 构造数据库记录
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setSchemeNo
(
patternNo
.
toString
());
crossSchemePO
.
setName
(
patternName
);
crossSchemePO
.
setCrossId
(
crossId
);
crossSchemePO
.
setCycle
(
cycle
);
crossSchemePO
.
setCoordPhase
(
coordPhase
);
crossSchemePO
.
setOffset
(
offset
);
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePOList
.
add
(
crossSchemePO
);
// 插入数据返回自增ID
crossSchemeMapper
.
deleteOne
(
crossId
,
patternNo
.
toString
());
crossSchemeMapper
.
insertOne
(
crossSchemePO
);
Integer
schemePOId
=
crossSchemePO
.
getId
();
// 缓存相位信息
putPhaseCache
(
obj
,
schemePOId
);
}
}
}
private
void
putPhaseCache
(
JSONObject
obj
,
Integer
schemePOId
)
{
phaseCacheMap
.
clear
();
JSONArray
phases
=
obj
.
getJSONArray
(
"phaseInfos"
);
for
(
int
n
=
0
;
n
<
phases
.
size
();
n
++)
{
JSONObject
phase
=
phases
.
getJSONObject
(
n
);
for
(
int
i
=
0
;
i
<
phases
.
size
();
i
++)
{
JSONObject
phase
=
phases
.
getJSONObject
(
i
);
PhaseCache
phaseCache
=
new
PhaseCache
();
Integer
ringNo
=
phase
.
getInteger
(
"ringNo"
);
phaseCache
.
setRingNo
(
ringNo
);
...
...
@@ -164,6 +245,15 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
Integer
phaseLength
=
phase
.
getInteger
(
"phaseLength"
);
phaseCache
.
setPhaseLength
(
phaseLength
);
phaseCache
.
setSchemeId
(
schemePOId
);
// 获取车道列表
JSONArray
lanes
=
phase
.
getJSONArray
(
"lanes"
);
List
<
Integer
>
laneNoList
=
new
ArrayList
<>();
for
(
int
j
=
0
;
j
<
lanes
.
size
();
j
++)
{
JSONObject
lane
=
lanes
.
getJSONObject
(
j
);
Integer
laneNo
=
lane
.
getInteger
(
"laneNo"
);
laneNoList
.
add
(
laneNo
);
}
phaseCache
.
setLaneNoList
(
laneNoList
);
phaseCacheMap
.
put
(
phaseNo
,
phaseCache
);
}
}
...
...
signal-utc-service/src/main/resources/mapper/CrossLightsMapper.xml
0 → 100644
View file @
1fc2f3c0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.utc.mapper.CrossLightsMapper"
>
<resultMap
type=
"net.wanji.utc.po.CrossLightsPO"
id=
"BaseResultMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"lightsNo"
column=
"lights_no"
/>
<result
property=
"name"
column=
"name"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"dir"
column=
"dir"
/>
<result
property=
"turn"
column=
"turn"
/>
<result
property=
"crossId"
column=
"cross_id"
/>
<result
property=
"inOutType"
column=
"in_out_type"
/>
<result
property=
"gmtCreate"
column=
"gmt_create"
/>
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<insert
id=
"insertOne"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into t_cross_lights(lights_no,name,type,dir,turn,cross_id,in_out_type)
values (#{lightsNo},#{name},#{type},#{dir},#{turn},#{crossId},#{inOutType})
</insert>
<delete
id=
"deleteOne"
>
delete from t_cross_lights
where cross_id = #{crossId} and lights_no = #{lightsNo}
</delete>
</mapper>
signal-utc-service/src/main/resources/mapper/CrossPhaseLightsMapper.xml
0 → 100644
View file @
1fc2f3c0
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"net.wanji.utc.mapper.CrossPhaseLightsMapper"
>
<resultMap
type=
"net.wanji.utc.po.CrossPhaseLightsPO"
id=
"BaseResultMap"
>
<result
property=
"id"
column=
"id"
/>
<result
property=
"lightsId"
column=
"lights_id"
/>
<result
property=
"phaseId"
column=
"phase_id"
/>
<result
property=
"crossId"
column=
"cross_id"
/>
<result
property=
"gmtCreate"
column=
"gmt_create"
/>
<result
property=
"gmtModified"
column=
"gmt_modified"
/>
</resultMap>
<!-- 批量新增数据 -->
<insert
id=
"insertBatch"
keyProperty=
"id"
useGeneratedKeys=
"true"
>
insert into t_cross_phase_lights(lights_id,phase_id,cross_id)
values
<foreach
collection=
"entities"
item=
"entity"
separator=
","
>
(#{entity.lightsId},#{entity.phaseId},#{entity.crossId})
</foreach>
</insert>
<delete
id=
"deleteByCrossId"
>
delete from t_cross_phase_lights
where cross_id = #{crossId}
</delete>
</mapper>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment