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
5f96130b
Commit
5f96130b
authored
Feb 20, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化海康实时状态自动任务,下发方案返回实体
parent
ddd3efeb
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
135 additions
and
112 deletions
+135
-112
HKResponse.java
...rc/main/java/net/wanji/utc/po/hk/response/HKResponse.java
+1
-1
HKControlCommandServiceImpl.java
...utc/service/control/impl/HKControlCommandServiceImpl.java
+1
-1
HkLightsStatusServiceImpl.java
...c/service/runninginfo/impl/HkLightsStatusServiceImpl.java
+63
-60
HkCrossSchedulesServiceImpl.java
.../service/staticinfo/impl/HkCrossSchedulesServiceImpl.java
+37
-34
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+11
-11
application-dev.yml
signal-utc-service/src/main/resources/application-dev.yml
+22
-5
No files found.
signal-utc-service/src/main/java/net/wanji/utc/po/hk/response/HKResponse.java
View file @
5f96130b
...
...
@@ -8,7 +8,7 @@ import lombok.Data;
*/
@Data
public
class
HKResponse
{
private
Integer
code
;
private
String
code
;
private
String
msg
;
private
Integer
type
;
private
Object
data
;
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/control/impl/HKControlCommandServiceImpl.java
View file @
5f96130b
...
...
@@ -143,7 +143,7 @@ public class HKControlCommandServiceImpl implements ControlCommandService {
Map
<
String
,
String
>
path
=
PathUtil
.
getPathMapByApiCode
(
"downloadTimeSpands"
);
String
strResult
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
JSON
.
toJSONString
(
fieldMap
),
null
,
null
,
"application/json"
,
null
);
HKResponse
hkResponse
=
JSONObject
.
parseObject
(
strResult
,
HKResponse
.
class
);
if
(
Objects
.
nonNull
(
hkResponse
)
&&
Objects
.
equals
(
HK_SUCCESS_STRING_CODE
,
hkResponse
.
getCode
(
)))
{
if
(
Objects
.
nonNull
(
hkResponse
)
&&
Objects
.
equals
(
HK_SUCCESS_STRING_CODE
,
String
.
valueOf
(
hkResponse
.
getCode
()
)))
{
return
jsonViewObject
.
success
(
"海康下发信号机计划成功"
);
}
return
jsonViewObject
.
fail
(
"海康下发信号机计划失败,"
.
concat
(
hkResponse
.
getMsg
()));
...
...
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/impl/HkLightsStatusServiceImpl.java
View file @
5f96130b
This diff is collapsed.
Click to expand it.
signal-utc-service/src/main/java/net/wanji/utc/service/staticinfo/impl/HkCrossSchedulesServiceImpl.java
View file @
5f96130b
...
...
@@ -23,6 +23,7 @@ import net.wanji.utc.service.staticinfo.HkCrossSchedulesService;
import
net.wanji.utc.util.PathUtil
;
import
net.wanji.utc.util.StringUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
java.util.*
;
...
...
@@ -47,7 +48,7 @@ public class HkCrossSchedulesServiceImpl implements HkCrossSchedulesService {
String
body
=
JSONArray
.
toJSONString
(
crossCodeList
);
String
responseStr
=
ArtemisHttpUtil
.
doPostStringArtemis
(
artemisConfig
,
path
,
body
,
null
,
null
,
"application/json"
,
null
);
HKResponse
hkResponse
=
JSONObject
.
parseObject
(
responseStr
,
HKResponse
.
class
);
if
(
Objects
.
nonNull
(
hkResponse
)
&&
Objects
.
equals
(
Constants
.
HK_SUCCESS_CODE
,
hkResponse
.
getCode
()))
{
if
(
Objects
.
nonNull
(
hkResponse
)
&&
Objects
.
equals
(
Constants
.
HK_SUCCESS_
STRING_
CODE
,
hkResponse
.
getCode
()))
{
String
dataStr
=
String
.
valueOf
(
hkResponse
.
getData
());
if
(
StringUtils
.
isNotBlank
(
dataStr
))
{
List
<
ScheduleResponseListPO
>
scheduleResponseListPOS
=
JSONObject
.
parseObject
(
dataStr
,
new
TypeReference
<
List
<
ScheduleResponseListPO
>>()
{});
...
...
@@ -55,43 +56,45 @@ public class HkCrossSchedulesServiceImpl implements HkCrossSchedulesService {
String
crossCode
=
scheduleResponseListPO
.
getCrossCode
();
List
<
ScheduleResponsePO
>
schedules
=
scheduleResponseListPO
.
getSchedules
();
List
<
CrossSchedulesPO
>
crossSchedulesPOList
=
new
ArrayList
<>();
for
(
ScheduleResponsePO
scheduleResponsePO
:
schedules
)
{
String
code
=
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
();
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectByCode
(
code
);
Integer
manufacturerId
=
manufacturerInfoPO
.
getId
();
String
crossId
=
crossInfoMapper
.
selectIdByCodeAndManufacturerId
(
crossCode
,
manufacturerId
);
List
<
Integer
>
weeks
=
scheduleResponsePO
.
getWeeks
();
String
desc
=
scheduleResponsePO
.
getDesc
();
Integer
planNo
=
scheduleResponsePO
.
getPlanNo
();
Integer
planId
=
crossPlanMapper
.
selectIdByNo
(
crossId
,
planNo
);
for
(
int
k
=
0
;
k
<
weeks
.
size
();
k
++)
{
Integer
week
=
weeks
.
get
(
k
);
CrossSchedulesPO
crossSchedulesPO
=
new
CrossSchedulesPO
();
crossSchedulesPO
.
setScheduleNo
(
scheduleResponsePO
.
getId
());
crossSchedulesPO
.
setName
(
desc
);
crossSchedulesPO
.
setCrossId
(
crossId
);
crossSchedulesPO
.
setPlanId
(
planId
);
crossSchedulesPO
.
setWeek
(
week
);
if
(
week
!=
0
)
{
crossSchedulesPOList
.
add
(
crossSchedulesPO
);
}
else
{
// 特殊日期
List
<
DatePO
>
dates
=
scheduleResponsePO
.
getDates
();
for
(
int
m
=
0
;
m
<
dates
.
size
();
m
++)
{
DatePO
date
=
dates
.
get
(
m
);
List
<
Integer
>
days
=
date
.
getDays
();
for
(
int
n
=
0
;
n
<
days
.
size
();
n
++)
{
Integer
day
=
days
.
get
(
n
);
Date
specialDate
=
toDate
(
date
,
day
);
crossSchedulesPO
.
setSpecialDate
(
specialDate
);
crossSchedulesPOList
.
add
(
crossSchedulesPO
);
if
(!
CollectionUtils
.
isEmpty
(
schedules
))
{
for
(
ScheduleResponsePO
scheduleResponsePO
:
schedules
)
{
String
code
=
BasicEnum
.
ManufacturerEnum
.
HK
.
getCode
();
ManufacturerInfoPO
manufacturerInfoPO
=
manufacturerInfoMapper
.
selectByCode
(
code
);
Integer
manufacturerId
=
manufacturerInfoPO
.
getId
();
String
crossId
=
crossInfoMapper
.
selectIdByCodeAndManufacturerId
(
crossCode
,
manufacturerId
);
List
<
Integer
>
weeks
=
scheduleResponsePO
.
getWeeks
();
String
desc
=
scheduleResponsePO
.
getDesc
();
Integer
planNo
=
scheduleResponsePO
.
getPlanNo
();
Integer
planId
=
crossPlanMapper
.
selectIdByNo
(
crossId
,
planNo
);
for
(
int
k
=
0
;
k
<
weeks
.
size
();
k
++)
{
Integer
week
=
weeks
.
get
(
k
);
CrossSchedulesPO
crossSchedulesPO
=
new
CrossSchedulesPO
();
crossSchedulesPO
.
setScheduleNo
(
scheduleResponsePO
.
getId
());
crossSchedulesPO
.
setName
(
desc
);
crossSchedulesPO
.
setCrossId
(
crossId
);
crossSchedulesPO
.
setPlanId
(
planId
);
crossSchedulesPO
.
setWeek
(
week
);
if
(
week
!=
0
)
{
crossSchedulesPOList
.
add
(
crossSchedulesPO
);
}
else
{
// 特殊日期
List
<
DatePO
>
dates
=
scheduleResponsePO
.
getDates
();
for
(
int
m
=
0
;
m
<
dates
.
size
();
m
++)
{
DatePO
date
=
dates
.
get
(
m
);
List
<
Integer
>
days
=
date
.
getDays
();
for
(
int
n
=
0
;
n
<
days
.
size
();
n
++)
{
Integer
day
=
days
.
get
(
n
);
Date
specialDate
=
toDate
(
date
,
day
);
crossSchedulesPO
.
setSpecialDate
(
specialDate
);
crossSchedulesPOList
.
add
(
crossSchedulesPO
);
}
}
}
}
// 插入数据库
crossSchedulesMapper
.
deleteByCrossId
(
crossId
);
crossSchedulesMapper
.
insertBatch
(
crossSchedulesPOList
);
}
// 插入数据库
crossSchedulesMapper
.
deleteByCrossId
(
crossId
);
crossSchedulesMapper
.
insertBatch
(
crossSchedulesPOList
);
}
}
}
...
...
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
5f96130b
...
...
@@ -13,10 +13,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.io.IOException
;
import
java.time.LocalDateTime
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
...
...
@@ -66,18 +65,19 @@ public class SignalStatusTask {
}
long
start
=
System
.
currentTimeMillis
();
List
<
LightsStatusVO
>
lightsStatusVOS
=
hkLightsStatusService
.
getHkLightsStatus
(
"14Q1409IRF0"
);
List
<
LightsStatusVO
>
lightsStatusVOS
=
hkLightsStatusService
.
getHkLightsStatus
(
crossId
);
long
end
=
System
.
currentTimeMillis
();
System
.
err
.
println
(
crossId
+
":线程池名称:"
+
Thread
.
currentThread
().
getName
());
System
.
err
.
println
(
crossId
+
":海康平台返回灯态数据时间: "
+
(
end
-
start
)
/
1000
+
"--"
+
LocalDateTime
.
now
());
log
.
info
(
"当前路口编号:{},海康返回灯态时间:{}ms"
,
crossId
,
(
end
-
start
));
RealTimeDataWebSocket
webSocket
=
entry
.
getValue
();
for
(
LightsStatusVO
lightsStatusVO
:
lightsStatusVOS
)
{
if
(
Objects
.
equals
(
lightsStatusVO
.
getCrossId
(),
crossId
))
{
try
{
webSocket
.
sendInfo
(
JSONObject
.
toJSONString
(
lightsStatusVOS
,
SerializerFeature
.
WriteMapNullValue
),
crossIdStr
);
}
catch
(
IOException
e
)
{
log
.
error
(
"RealTimeDataWebSocket发送异常,"
);
if
(!
CollectionUtils
.
isEmpty
(
lightsStatusVOS
))
{
for
(
LightsStatusVO
lightsStatusVO
:
lightsStatusVOS
)
{
if
(
Objects
.
equals
(
lightsStatusVO
.
getCrossId
(),
crossId
))
{
try
{
webSocket
.
sendInfo
(
JSONObject
.
toJSONString
(
lightsStatusVOS
,
SerializerFeature
.
WriteMapNullValue
),
crossIdStr
);
}
catch
(
Exception
e
)
{
log
.
error
(
"RealTimeDataWebSocket发送异常,异常信息:"
,
e
);
}
}
}
}
...
...
signal-utc-service/src/main/resources/application-dev.yml
View file @
5f96130b
...
...
@@ -32,7 +32,24 @@ spring:
timeout
:
5000
database
:
5
# 信号平台
# 大厅信号平台
#signal:
# # true测试不执行方案下发 重点
# mock: false
# # 厂商接口
# manufacturer:
# hk:
# # 服务地址
# artemisHost: 10.100.4.30
# # 接口服务验证用户名
# artemisAppKey: 21882146
# # 接口服务验证密钥
# artemisAppSecret: iYwMHJSo7CAX62TjyGEb
# # 海康能力开放平台的网站路径
# artemisPath: /artemis
# 工位信号平台
signal
:
# true测试不执行方案下发 重点
mock
:
false
...
...
@@ -40,10 +57,10 @@ signal:
manufacturer
:
hk
:
# 服务地址
artemisHost
:
10.100.
4.30
artemisHost
:
10.100.
1.58
# 接口服务验证用户名
artemisAppKey
:
2
1882146
artemisAppKey
:
2
0893705
# 接口服务验证密钥
artemisAppSecret
:
iYwMHJSo7CAX62TjyGEb
artemisAppSecret
:
jwr6D6h8xcZbgjqiwe6G
# 海康能力开放平台的网站路径
artemisPath
:
/artemis
artemisPath
:
/artemis
\ No newline at end of file
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