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
b6203261
Commit
b6203261
authored
Nov 29, 2022
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
获取方案信息逻辑修改
parent
4261c952
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
122 additions
and
124 deletions
+122
-124
PhaseCache.java
.../src/main/java/net/wanji/utc/entity/cache/PhaseCache.java
+8
-9
CrossPhaseMapper.java
.../src/main/java/net/wanji/utc/mapper/CrossPhaseMapper.java
+3
-1
CrossSchemeMapper.java
...src/main/java/net/wanji/utc/mapper/CrossSchemeMapper.java
+2
-2
HkSchemePhaseLightsServiceImpl.java
...rvice/staticinfo/impl/HkSchemePhaseLightsServiceImpl.java
+102
-110
CrossPhaseMapper.xml
...tc-service/src/main/resources/mapper/CrossPhaseMapper.xml
+7
-2
No files found.
signal-utc-service/src/main/java/net/wanji/utc/entity/cache/PhaseCache.java
View file @
b6203261
...
@@ -2,20 +2,19 @@ package net.wanji.utc.entity.cache;
...
@@ -2,20 +2,19 @@ package net.wanji.utc.entity.cache;
import
lombok.Data
;
import
lombok.Data
;
import
java.util.List
;
/**
/**
* @author Kent HAN
* @author Kent HAN
* @date 2022/11/18 9:12
* @date 2022/11/18 9:12
*/
*/
@Data
@Data
public
class
PhaseCache
{
public
class
PhaseCache
{
private
Integer
ringNo
;
// 环号
private
Integer
phaseNo
;
// 相位号
private
String
phaseName
;
// "北向进口通行"
private
Integer
phaseSequence
;
// 相位序
private
Integer
phaseLength
;
// 相位时间
private
Integer
schemeId
;
// 方案ID
private
Integer
phaseId
;
// 相位ID
private
Integer
phaseId
;
// 相位ID
private
List
<
Integer
>
laneNoList
;
// 车道号列表
private
Integer
phaseNo
;
// 相位号
private
String
desc
;
// "北向进口通行"
private
Integer
yellow
;
// 黄灯时间
private
Integer
allred
;
// 红灯时间
private
Integer
greenFlash
;
// 绿闪时间
private
Integer
redFlash
;
// 红闪时间
private
Integer
minGreen
;
// 最小绿灯时间
private
Integer
maxGreen
;
// 最大绿灯时间
}
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossPhaseMapper.java
View file @
b6203261
...
@@ -10,9 +10,11 @@ import java.util.List;
...
@@ -10,9 +10,11 @@ import java.util.List;
* @date 2022/11/18 10:44
* @date 2022/11/18 10:44
*/
*/
public
interface
CrossPhaseMapper
{
public
interface
CrossPhaseMapper
{
void
delete
One
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"phaseNo"
)
String
phaseNo
);
void
delete
Batch
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeId"
)
String
schemeId
);
void
insertOne
(
CrossPhasePO
crossPhasePO
);
void
insertOne
(
CrossPhasePO
crossPhasePO
);
List
<
CrossPhasePO
>
selectByCrossIdAndPlanId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"planId"
)
String
planId
);
List
<
CrossPhasePO
>
selectByCrossIdAndPlanId
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"planId"
)
String
planId
);
List
<
Integer
>
selectIdsByPhaseNo
(
@Param
(
"phaseNo"
)
Integer
phaseNo
);
}
}
signal-utc-service/src/main/java/net/wanji/utc/mapper/CrossSchemeMapper.java
View file @
b6203261
...
@@ -16,6 +16,6 @@ public interface CrossSchemeMapper {
...
@@ -16,6 +16,6 @@ public interface CrossSchemeMapper {
void
deleteOne
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"patternNo"
)
String
patternNo
);
void
deleteOne
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"patternNo"
)
String
patternNo
);
CrossSchemePO
selectByCrossIdAndSchemeNo
(
@Param
(
"crossId"
)
String
crossId
,
CrossSchemePO
selectByCrossIdAndSchemeNo
(
@Param
(
"crossId"
)
String
crossId
,
@Param
(
"schemeNo"
)
Integer
schemeNo
);
@Param
(
"schemeNo"
)
Integer
schemeNo
);
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/impl/HkSchemePhaseLightsServiceImpl.java
View file @
b6203261
...
@@ -5,15 +5,14 @@ import com.alibaba.fastjson.JSONArray;
...
@@ -5,15 +5,14 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.ArtemisHttpUtil
;
import
com.hikvision.artemis.sdk.config.ArtemisConfig
;
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.constant.Constants
;
import
net.wanji.utc.common.typeenum.*
;
import
net.wanji.utc.common.typeenum.*
;
import
net.wanji.utc.entity.cache.PhaseCache
;
import
net.wanji.utc.entity.cache.PhaseCache
;
import
net.wanji.utc.mapper.*
;
import
net.wanji.utc.mapper.*
;
import
net.wanji.utc.po.*
;
import
net.wanji.utc.po.*
;
import
net.wanji.utc.service.staticinfo.HkSchemePhaseLightsService
;
import
net.wanji.utc.service.staticinfo.HkSchemePhaseLightsService
;
import
net.wanji.utc.util.PathUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
import
java.util.*
;
...
@@ -26,11 +25,6 @@ import java.util.*;
...
@@ -26,11 +25,6 @@ import java.util.*;
*/
*/
@Service
@Service
public
class
HkSchemePhaseLightsServiceImpl
implements
HkSchemePhaseLightsService
{
public
class
HkSchemePhaseLightsServiceImpl
implements
HkSchemePhaseLightsService
{
// 相位信息缓存,key-相位号,value-相位信息对象
public
static
Map
<
Integer
,
PhaseCache
>
phaseCacheMap
=
new
HashMap
<>();
@Value
(
"${signal.manufacturer.hk.artemisPath}"
)
private
String
artemisPath
;
@Autowired
@Autowired
private
ArtemisConfig
artemisConfig
;
private
ArtemisConfig
artemisConfig
;
@Autowired
@Autowired
...
@@ -44,10 +38,13 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -44,10 +38,13 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
@Override
@Override
public
void
hkSchemePhaseLights
(
String
crossId
,
String
crossCode
)
throws
Exception
{
public
void
hkSchemePhaseLights
(
String
crossId
,
String
crossCode
)
throws
Exception
{
List
<
CrossSchemePO
>
crossSchemePOList
=
new
ArrayList
<>();
// 匹配用缓存
Map
<
Integer
,
PhaseCache
>
phaseNoMap
=
new
HashMap
<>();
// 请求3.1.3接口,获取并处理方案数据
Map
<
Integer
,
PhaseCache
>
laneNoMap
=
new
HashMap
<>();
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"uploadPatternCodeList"
);
// 请求3.1.11接口,获取并缓存全量相位数据
handlePhaseData
(
crossCode
,
phaseNoMap
,
laneNoMap
);
// 请求3.1.3接口,获取并处理方案列表
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"uploadPatternCodeList"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"crossCode"
,
crossCode
);
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
...
@@ -59,21 +56,16 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -59,21 +56,16 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
JSONObject
obj
=
data
.
getJSONObject
(
i
);
JSONObject
obj
=
data
.
getJSONObject
(
i
);
Integer
patternNo
=
obj
.
getInteger
(
"patternNo"
);
Integer
patternNo
=
obj
.
getInteger
(
"patternNo"
);
String
patternName
=
obj
.
getString
(
"patternName"
);
String
patternName
=
obj
.
getString
(
"patternName"
);
// 请求3.1.4接口,获取并处理方案数据
handleSchemeData
(
crossId
,
crossCode
,
patternNo
,
patternName
,
phaseNoMap
);
handleSchemeData
(
crossId
,
crossCode
,
crossSchemePOList
,
patternNo
,
patternName
);
}
}
}
}
// 请求3.1.11接口,获取并处理相位数据
handlePhaseData
(
crossId
,
crossCode
);
// 请求3.1.2接口,获取并处理灯组数据
// 请求3.1.2接口,获取并处理灯组数据
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
handleLightsData
(
crossId
,
crossCode
);
handleLightsData
(
crossId
,
crossCode
,
laneNoMap
);
// 更新相位-灯组关系
crossPhaseLightsMapper
.
deleteByCrossId
(
crossId
);
crossPhaseLightsMapper
.
insertBatch
(
crossPhaseLightsPOList
);
}
}
private
List
<
CrossPhaseLightsPO
>
handleLightsData
(
String
crossId
,
String
crossCode
)
throws
Exception
{
private
void
handleLightsData
(
String
crossId
,
String
crossCode
,
Map
<
Integer
,
PhaseCache
>
laneNoMap
)
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getCrossInfo"
);
throws
Exception
{
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"getCrossInfo"
);
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
new
ArrayList
<>();
List
<
CrossPhaseLightsPO
>
crossPhaseLightsPOList
=
new
ArrayList
<>();
JSONObject
requestContent
=
new
JSONObject
();
JSONObject
requestContent
=
new
JSONObject
();
// 海康固定入参字段名
// 海康固定入参字段名
...
@@ -100,8 +92,8 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -100,8 +92,8 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
CrossLightsPO
crossLightsPO
=
new
CrossLightsPO
();
String
lightsNo
=
laneObj
.
getString
(
"channelNo"
);
String
lightsNo
=
laneObj
.
getString
(
"channelNo"
);
crossLightsPO
.
setLightsNo
(
lightsNo
);
crossLightsPO
.
setLightsNo
(
lightsNo
);
String
elementId
=
laneObj
.
getString
(
"elementId
"
);
String
laneNo
=
laneObj
.
getString
(
"laneNo
"
);
crossLightsPO
.
setName
(
elementId
);
crossLightsPO
.
setName
(
laneNo
);
Integer
lampGroupType
=
laneObj
.
getInteger
(
"lampGroupType"
);
Integer
lampGroupType
=
laneObj
.
getInteger
(
"lampGroupType"
);
Integer
type
=
HkLightsTypeEnum
.
getCodeByHkCode
(
lampGroupType
);
Integer
type
=
HkLightsTypeEnum
.
getCodeByHkCode
(
lampGroupType
);
crossLightsPO
.
setType
(
type
);
crossLightsPO
.
setType
(
type
);
...
@@ -114,19 +106,19 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -114,19 +106,19 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
crossLightsPO
.
setCrossId
(
crossId
);
crossLightsPO
.
setCrossId
(
crossId
);
crossLightsPO
.
setInOutType
(
3
);
// 海康都是进出口
crossLightsPO
.
setInOutType
(
3
);
// 海康都是进出口
// 插入数据返回自增ID
// 插入数据返回自增ID
crossLightsMapper
.
deleteOne
(
crossId
,
elementId
);
crossLightsMapper
.
deleteOne
(
crossId
,
laneNo
);
crossLightsMapper
.
insertOne
(
crossLightsPO
);
crossLightsMapper
.
insertOne
(
crossLightsPO
);
Integer
crossLightsPOId
=
crossLightsPO
.
getId
();
Integer
crossLightsPOId
=
crossLightsPO
.
getId
();
// 匹配缓存信息,构造相位灯组关系对象列表
// 匹配缓存信息,构造相位灯组关系对象列表
Integer
laneNo
=
laneObj
.
getInteger
(
"laneNo"
);
PhaseCache
phaseCache
=
laneNoMap
.
get
(
Integer
.
parseInt
(
laneNo
)
);
Collection
<
PhaseCache
>
phaseCaches
=
phaseCacheMap
.
values
();
if
(
phaseCache
!=
null
)
{
for
(
PhaseCache
phaseCache
:
phaseCaches
)
{
Integer
phaseNo
=
phaseCache
.
getPhaseNo
();
List
<
Integer
>
laneNoList
=
phaseCache
.
getLaneNoList
(
);
List
<
Integer
>
ids
=
crossPhaseMapper
.
selectIdsByPhaseNo
(
phaseNo
);
for
(
Integer
laneNoInCache
:
laneNoList
)
{
if
(
ids
!=
null
)
{
if
(
Objects
.
equals
(
laneNo
,
laneNoInCache
)
)
{
for
(
Integer
id
:
ids
)
{
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
CrossPhaseLightsPO
crossPhaseLightsPO
=
new
CrossPhaseLightsPO
();
crossPhaseLightsPO
.
setLightsId
(
crossLightsPOId
);
crossPhaseLightsPO
.
setLightsId
(
crossLightsPOId
);
crossPhaseLightsPO
.
setPhaseId
(
phaseCache
.
getPhaseId
()
);
crossPhaseLightsPO
.
setPhaseId
(
id
);
crossPhaseLightsPO
.
setCrossId
(
crossId
);
crossPhaseLightsPO
.
setCrossId
(
crossId
);
crossPhaseLightsPOList
.
add
(
crossPhaseLightsPO
);
crossPhaseLightsPOList
.
add
(
crossPhaseLightsPO
);
}
}
...
@@ -135,11 +127,14 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -135,11 +127,14 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
}
}
}
}
}
}
return
crossPhaseLightsPOList
;
// 更新相位-灯组关系
crossPhaseLightsMapper
.
deleteByCrossId
(
crossId
);
crossPhaseLightsMapper
.
insertBatch
(
crossPhaseLightsPOList
);
}
}
private
void
handlePhaseData
(
String
crossId
,
String
crossCode
)
throws
Exception
{
private
void
handlePhaseData
(
String
crossCode
,
Map
<
Integer
,
PhaseCache
>
phaseNoMap
,
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getPhaseRlatLanes"
);
Map
<
Integer
,
PhaseCache
>
laneNoMap
)
throws
Exception
{
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"getPhaseRlatLanes"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"crossCode"
,
crossCode
);
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
String
Result
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
null
,
queryMap
,
...
@@ -148,45 +143,43 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -148,45 +143,43 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
JSONObject
data
=
object
.
getJSONObject
(
"data"
);
JSONArray
list
=
data
.
getJSONArray
(
"phaseList"
);
JSONArray
list
=
data
.
getJSONArray
(
"phaseList"
);
for
(
int
k
=
0
;
k
<
list
.
size
();
k
++)
{
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
PhaseCache
phaseCache
=
new
PhaseCache
();
JSONObject
phase
=
list
.
getJSONObject
(
k
);
JSONObject
phase
=
list
.
getJSONObject
(
i
);
Integer
phaseNo
=
phase
.
getInteger
(
"phaseNo"
);
// 从缓存中获取数据
PhaseCache
phaseCache
=
phaseCacheMap
.
get
(
phaseNo
);
crossPhasePO
.
setPhaseNo
(
phaseCache
.
getPhaseNo
().
toString
());
crossPhasePO
.
setName
(
phaseCache
.
getPhaseName
());
crossPhasePO
.
setSort
(
phaseCache
.
getPhaseSequence
());
crossPhasePO
.
setCrossId
(
crossId
);
crossPhasePO
.
setPlanId
(
phaseCache
.
getSchemeId
());
crossPhasePO
.
setRingNo
(
phaseCache
.
getRingNo
());
crossPhasePO
.
setControlMode
(
1
);
// 海康均为定周期
Integer
phaseLength
=
phaseCache
.
getPhaseLength
();
crossPhasePO
.
setPhaseTime
(
phaseLength
);
// 从接口返回对象中获取数据
// 从接口返回对象中获取数据
Integer
greenFlash
=
phase
.
getInteger
(
"greenFlash"
);
Integer
phaseNo
=
phase
.
getInteger
(
"phaseNo"
);
crossPhasePO
.
setGreenFlashTime
(
greenFlash
);
phaseCache
.
setPhaseNo
(
phaseNo
);
String
desc
=
phase
.
getString
(
"desc"
);
phaseCache
.
setDesc
(
desc
);
Integer
yellow
=
phase
.
getInteger
(
"yellow"
);
Integer
yellow
=
phase
.
getInteger
(
"yellow"
);
crossPhasePO
.
setYellowTime
(
yellow
);
phaseCache
.
setYellow
(
yellow
);
Integer
allred
=
phase
.
getInteger
(
"allred"
);
Integer
allred
=
phase
.
getInteger
(
"allred"
);
crossPhasePO
.
setRedTime
(
allred
);
phaseCache
.
setAllred
(
allred
);
int
green
=
phaseLength
-
greenFlash
-
yellow
-
allred
;
Integer
greenFlash
=
phase
.
getInteger
(
"greenFlash"
);
crossPhasePO
.
setGreenTime
(
green
);
phaseCache
.
setGreenFlash
(
greenFlash
);
Integer
redFlash
=
phase
.
getInteger
(
"redFlash"
);
phaseCache
.
setRedFlash
(
redFlash
);
Integer
minGreen
=
phase
.
getInteger
(
"minGreen"
);
Integer
minGreen
=
phase
.
getInteger
(
"minGreen"
);
crossPhasePO
.
setMinGreenTime
(
minGreen
);
phaseCache
.
setMinGreen
(
minGreen
);
Integer
maxGreen
=
phase
.
getInteger
(
"maxGreen"
);
Integer
maxGreen
=
phase
.
getInteger
(
"maxGreen"
);
crossPhasePO
.
setMaxGreenTime
(
maxGreen
);
phaseCache
.
setMaxGreen
(
maxGreen
);
// 插入数据返回自增ID,更新缓存
phaseNoMap
.
put
(
phaseNo
,
phaseCache
);
crossPhaseMapper
.
deleteOne
(
crossId
,
phaseNo
.
toString
());
// 构造车道Map
crossPhaseMapper
.
insertOne
(
crossPhasePO
);
JSONArray
lanes
=
phase
.
getJSONArray
(
"lanes"
);
Integer
crossPhasePOId
=
crossPhasePO
.
getId
();
for
(
int
j
=
0
;
j
<
lanes
.
size
();
j
++)
{
phaseCache
.
setPhaseId
(
crossPhasePOId
);
JSONObject
lane
=
lanes
.
getJSONObject
(
j
);
Integer
laneNo
=
lane
.
getInteger
(
"laneNo"
);
laneNoMap
.
put
(
laneNo
,
phaseCache
);
}
}
}
}
}
}
}
private
void
handleSchemeData
(
String
crossId
,
String
crossCode
,
List
<
CrossSchemePO
>
crossSchemePOList
,
Integer
patternNo
,
String
patternName
)
throws
Exception
{
private
void
handleSchemeData
(
String
crossId
,
String
crossCode
,
Integer
patternNo
,
String
patternName
,
Map
<
String
,
String
>
path
=
getPathMapByApiCode
(
"getCrossPlanDetail"
);
Map
<
Integer
,
PhaseCache
>
phaseNoMap
)
throws
Exception
{
// 请求3.1.4接口,获取并处理方案详情
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"getCrossPlanDetail"
);
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
Map
<
String
,
String
>
queryMap
=
new
HashMap
<>();
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"crossCode"
,
crossCode
);
queryMap
.
put
(
"patternNo"
,
patternNo
.
toString
());
queryMap
.
put
(
"patternNo"
,
patternNo
.
toString
());
...
@@ -195,11 +188,11 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -195,11 +188,11 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
JSONObject
object
=
JSON
.
parseObject
(
Result
);
JSONObject
object
=
JSON
.
parseObject
(
Result
);
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
if
(
Constants
.
HK_SUCCESS_CODE
.
equals
(
object
.
getInteger
(
Constants
.
HK_CODE_KEY
)))
{
JSONArray
data
=
object
.
getJSONArray
(
"data"
);
JSONArray
data
=
object
.
getJSONArray
(
"data"
);
for
(
int
j
=
0
;
j
<
data
.
size
();
j
++)
{
for
(
int
i
=
0
;
i
<
data
.
size
();
i
++)
{
JSONObject
obj
=
data
.
getJSONObject
(
j
);
JSONObject
scheme
=
data
.
getJSONObject
(
i
);
Integer
cycle
=
obj
.
getInteger
(
"cycle"
);
Integer
cycle
=
scheme
.
getInteger
(
"cycle"
);
Integer
coordPhase
=
obj
.
getInteger
(
"coordPhase"
);
Integer
coordPhase
=
scheme
.
getInteger
(
"coordPhase"
);
Integer
offset
=
obj
.
getInteger
(
"offset"
);
Integer
offset
=
scheme
.
getInteger
(
"offset"
);
// 构造数据库记录
// 构造数据库记录
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
CrossSchemePO
crossSchemePO
=
new
CrossSchemePO
();
crossSchemePO
.
setSchemeNo
(
patternNo
.
toString
());
crossSchemePO
.
setSchemeNo
(
patternNo
.
toString
());
...
@@ -210,51 +203,50 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
...
@@ -210,51 +203,50 @@ public class HkSchemePhaseLightsServiceImpl implements HkSchemePhaseLightsServic
crossSchemePO
.
setOffset
(
offset
);
crossSchemePO
.
setOffset
(
offset
);
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setSource
(
2
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePO
.
setIsDeleted
(
0
);
crossSchemePOList
.
add
(
crossSchemePO
);
// 插入方案数据返回自增ID
// 插入数据返回自增ID
CrossSchemePO
crossSchemePO1
=
crossSchemeMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
patternNo
);
if
(
crossSchemePO1
!=
null
)
{
Integer
schemeId
=
crossSchemePO1
.
getId
();
crossPhaseMapper
.
deleteBatch
(
crossId
,
schemeId
.
toString
());
crossSchemeMapper
.
deleteOne
(
crossId
,
patternNo
.
toString
());
crossSchemeMapper
.
deleteOne
(
crossId
,
patternNo
.
toString
());
}
crossSchemeMapper
.
insertOne
(
crossSchemePO
);
crossSchemeMapper
.
insertOne
(
crossSchemePO
);
Integer
schemePOId
=
crossSchemePO
.
getId
();
Integer
schemePOId
=
crossSchemePO
.
getId
();
// 缓存相位信息
// 生成相位数据
putPhaseCache
(
obj
,
schemePOId
);
JSONArray
phases
=
scheme
.
getJSONArray
(
"phaseInfos"
);
}
for
(
int
j
=
0
;
j
<
phases
.
size
();
j
++)
{
}
CrossPhasePO
crossPhasePO
=
new
CrossPhasePO
();
}
JSONObject
phase
=
phases
.
getJSONObject
(
j
);
private
void
putPhaseCache
(
JSONObject
obj
,
Integer
schemePOId
)
{
phaseCacheMap
.
clear
();
JSONArray
phases
=
obj
.
getJSONArray
(
"phaseInfos"
);
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
);
Integer
phaseNo
=
phase
.
getInteger
(
"phaseNo"
);
Integer
phaseNo
=
phase
.
getInteger
(
"phaseNo"
);
phaseCache
.
setPhaseNo
(
phaseNo
);
PhaseCache
phaseCache
=
phaseNoMap
.
get
(
phaseNo
);
crossPhasePO
.
setPhaseNo
(
phaseNo
.
toString
());
String
phaseName
=
phase
.
getString
(
"phaseName"
);
String
phaseName
=
phase
.
getString
(
"phaseName"
);
phaseCache
.
setPhase
Name
(
phaseName
);
crossPhasePO
.
set
Name
(
phaseName
);
Integer
phaseSequence
=
phase
.
getInteger
(
"phaseSequence"
);
Integer
phaseSequence
=
phase
.
getInteger
(
"phaseSequence"
);
phaseCache
.
setPhaseSequence
(
phaseSequence
);
crossPhasePO
.
setSort
(
phaseSequence
);
crossPhasePO
.
setCrossId
(
crossId
);
crossPhasePO
.
setPlanId
(
schemePOId
);
Integer
ringNo
=
phase
.
getInteger
(
"ringNo"
);
crossPhasePO
.
setRingNo
(
ringNo
);
crossPhasePO
.
setControlMode
(
1
);
// 海康均为定周期
Integer
phaseLength
=
phase
.
getInteger
(
"phaseLength"
);
Integer
phaseLength
=
phase
.
getInteger
(
"phaseLength"
);
phaseCache
.
setPhaseLength
(
phaseLength
);
phaseCache
.
setSchemeId
(
schemePOId
);
crossPhasePO
.
setPhaseTime
(
phaseLength
);
// 获取车道列表
Integer
greenFlash
=
phaseCache
.
getGreenFlash
();
JSONArray
lanes
=
phase
.
getJSONArray
(
"lanes"
);
Integer
yellow
=
phaseCache
.
getYellow
();
List
<
Integer
>
laneNoList
=
new
ArrayList
<>();
Integer
allred
=
phaseCache
.
getAllred
();
for
(
int
j
=
0
;
j
<
lanes
.
size
();
j
++)
{
int
green
=
phaseLength
-
greenFlash
-
yellow
-
allred
;
JSONObject
lane
=
lanes
.
getJSONObject
(
j
);
crossPhasePO
.
setGreenTime
(
green
);
Integer
laneNo
=
lane
.
getInteger
(
"laneNo"
);
crossPhasePO
.
setGreenFlashTime
(
greenFlash
);
laneNoList
.
add
(
laneNo
);
crossPhasePO
.
setYellowTime
(
yellow
);
crossPhasePO
.
setRedTime
(
allred
);
crossPhasePO
.
setMinGreenTime
(
phaseCache
.
getMinGreen
());
crossPhasePO
.
setMaxGreenTime
(
phaseCache
.
getMaxGreen
());
// 插入数据
crossPhaseMapper
.
insertOne
(
crossPhasePO
);
}
}
phaseCache
.
setLaneNoList
(
laneNoList
);
phaseCacheMap
.
put
(
phaseNo
,
phaseCache
);
}
}
}
}
private
Map
<
String
,
String
>
getPathMapByApiCode
(
String
apiCode
)
{
Map
<
String
,
String
>
res
=
new
HashMap
<>();
HttpRequest
httpRequest
=
new
HttpRequest
(
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
(),
apiCode
);
res
.
put
(
"http://"
,
artemisPath
+
httpRequest
.
getUrl
());
return
res
;
}
}
}
}
signal-utc-service/src/main/resources/mapper/CrossPhaseMapper.xml
View file @
b6203261
...
@@ -27,9 +27,9 @@
...
@@ -27,9 +27,9 @@
values (#{phaseNo},#{name},#{sort},#{crossId},#{planId},#{ringNo},#{controlMode},#{phaseTime},#{greenTime},#{greenFlashTime},#{pedFlashTime},#{yellowTime},#{redTime},#{minGreenTime},#{maxGreenTime})
values (#{phaseNo},#{name},#{sort},#{crossId},#{planId},#{ringNo},#{controlMode},#{phaseTime},#{greenTime},#{greenFlashTime},#{pedFlashTime},#{yellowTime},#{redTime},#{minGreenTime},#{maxGreenTime})
</insert>
</insert>
<delete
id=
"delete
One
"
>
<delete
id=
"delete
Batch
"
>
delete from t_cross_phase
delete from t_cross_phase
where cross_id = #{crossId} and p
hase_no = #{phaseNo
}
where cross_id = #{crossId} and p
lan_id = #{schemeId
}
</delete>
</delete>
<sql
id=
"baseColumn"
>
<sql
id=
"baseColumn"
>
...
@@ -43,4 +43,9 @@
...
@@ -43,4 +43,9 @@
from t_cross_phase where cross_id = #{crossId} and planId = #{planId}
from t_cross_phase where cross_id = #{crossId} and planId = #{planId}
</select>
</select>
<select
id=
"selectIdsByPhaseNo"
resultType=
"java.lang.Integer"
>
select id from t_cross_phase
where phase_no = #{phaseNo}
</select>
</mapper>
</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