Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
F
fp-acq-wz
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Matrix
fp-acq-wz
Commits
1eb7c64b
提交
1eb7c64b
authored
7月 28, 2020
作者:
Your Name
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[feature] 采集模式改为将采集的数据保存为文件
上级
9f4a2517
流水线
#198
已取消 于阶段
变更
4
流水线
1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
312 行增加
和
2 行删除
+312
-2
VompFetcher.java
...zjty/fp/acq/vomp/subject/service/updater/VompFetcher.java
+5
-0
VompDataRdUpdater.java
.../vomp/subject/service/updater/impl/VompDataRdUpdater.java
+218
-0
VompFetcherImpl.java
...cq/vomp/subject/service/updater/impl/VompFetcherImpl.java
+73
-0
VompTasks.java
...mp/src/main/java/com/zjty/fp/acq/vomp/task/VompTasks.java
+16
-2
没有找到文件。
acq-vomp/src/main/java/com/zjty/fp/acq/vomp/subject/service/updater/VompFetcher.java
0 → 100644
浏览文件 @
1eb7c64b
package
com
.
zjty
.
fp
.
acq
.
vomp
.
subject
.
service
.
updater
;
public
interface
VompFetcher
{
void
fetchData
();
}
acq-vomp/src/main/java/com/zjty/fp/acq/vomp/subject/service/updater/impl/VompDataRdUpdater.java
0 → 100644
浏览文件 @
1eb7c64b
package
com
.
zjty
.
fp
.
acq
.
vomp
.
subject
.
service
.
updater
.
impl
;
import
com.google.common.collect.Lists
;
import
com.zjty.fp.acq.misc.utils.FileReader
;
import
com.zjty.fp.acq.misc.utils.JacksonUtil
;
import
com.zjty.fp.acq.vomp.base.enums.VompCatalogs
;
import
com.zjty.fp.acq.vomp.base.enums.VompPlatform
;
import
com.zjty.fp.acq.vomp.subject.entity.localdo.*
;
import
com.zjty.fp.acq.vomp.subject.entity.remotedo.*
;
import
com.zjty.fp.acq.vomp.subject.repository.local.*
;
import
com.zjty.fp.acq.vomp.subject.service.api.VompTransHelper
;
import
com.zjty.fp.acq.vomp.subject.service.cache.VompTransCache
;
import
com.zjty.fp.acq.vomp.subject.service.updater.VompUpdater
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.Optional
;
import
java.util.stream.Collectors
;
/**
* <p>Description : fp-fp
* <p>Date : 2018/11/20 10:18
* <p>@author : C
* Rd意为Read。该组件的同步数据模式为直接读取文件然后解析保存。
*/
@SuppressWarnings
({
"SpringAutowiredFieldsWarningInspection"
,
"Duplicates"
})
@Service
@Slf4j
public
class
VompDataRdUpdater
implements
VompUpdater
{
@Autowired
VompTransCache
transCache
;
@Autowired
VompTransHelper
transHelper
;
@Autowired
FileReader
fileReader
;
@Autowired
VompAlarmRepository
alarmRepository
;
@Autowired
VompHandingInfoRepository
handingInfoRepository
;
@Autowired
VompPcInfoRepository
pcInfoRepository
;
@Autowired
VompStatusRepository
statusRepository
;
@Autowired
VompZoneRepository
zoneRepository
;
@Override
public
void
updateData
()
{
//read file & parse & save to cache
readAllFilesAndSaveCache
();
//trans date to local format & save
updateAllData
();
log
.
info
(
"[vomp] 数据更新完毕"
);
}
/*
<Private Methods Area>
*/
/**
* Remote Data
*/
private
void
readAllFilesAndSaveCache
()
{
readChkRoutesAndSaveCache
();
readChkStatesAndSaveCache
();
readPcLogAndSaveCache
();
readServerStatusAndSaveCache
();
readZoneAndSaveCache
();
}
private
String
readFileFirstLine
(
String
catalog
)
{
Optional
<
String
>
firstLine
=
fileReader
.
readFileData
(
VompPlatform
.
PLATFORM
.
getName
(),
catalog
).
stream
().
findFirst
();
return
firstLine
.
orElse
(
""
);
}
private
void
readChkRoutesAndSaveCache
()
{
String
text
=
readFileFirstLine
(
VompCatalogs
.
CHKROUTES
.
getName
());
ChkRoutes
[]
chkRoutesArrays
=
JacksonUtil
.
readValue
(
text
,
ChkRoutes
[].
class
);
List
<
ChkRoutes
>
chkRoutesList
=
Lists
.
newArrayList
();
if
(
chkRoutesArrays
!=
null
)
{
chkRoutesList
=
Arrays
.
asList
(
chkRoutesArrays
);
}
transCache
.
setChkRoutesList
(
chkRoutesList
);
}
private
void
readChkStatesAndSaveCache
()
{
String
text
=
readFileFirstLine
(
VompCatalogs
.
CHKSTATES
.
getName
());
ChkStates
[]
chkStatesArrays
=
JacksonUtil
.
readValue
(
text
,
ChkStates
[].
class
);
List
<
ChkStates
>
chkStatesList
=
Lists
.
newArrayList
();
if
(
chkStatesArrays
!=
null
)
{
chkStatesList
=
Arrays
.
asList
(
chkStatesArrays
);
}
transCache
.
setChkStatesList
(
chkStatesList
);
}
private
void
readPcLogAndSaveCache
()
{
String
text
=
readFileFirstLine
(
VompCatalogs
.
PCLOG
.
getName
());
PcLog
[]
pcLogArrays
=
JacksonUtil
.
readValue
(
text
,
PcLog
[].
class
);
List
<
PcLog
>
pcLogList
=
Lists
.
newArrayList
();
if
(
pcLogArrays
!=
null
)
{
pcLogList
=
Arrays
.
asList
(
pcLogArrays
);
}
transCache
.
setPcLogList
(
pcLogList
);
}
private
void
readServerStatusAndSaveCache
()
{
String
text
=
readFileFirstLine
(
VompCatalogs
.
SERVERSTATUS
.
getName
());
ServerStatus
[]
serverStatusArrays
=
JacksonUtil
.
readValue
(
text
,
ServerStatus
[].
class
);
List
<
ServerStatus
>
serverStatusList
=
Lists
.
newArrayList
();
if
(
serverStatusArrays
!=
null
)
{
serverStatusList
=
Arrays
.
asList
(
serverStatusArrays
);
}
transCache
.
setServerStatusList
(
serverStatusList
);
}
private
void
readZoneAndSaveCache
()
{
String
text
=
readFileFirstLine
(
VompCatalogs
.
ZONE
.
getName
());
Zone
[]
zoneArrays
=
JacksonUtil
.
readValue
(
text
,
Zone
[].
class
);
List
<
Zone
>
zoneList
=
Lists
.
newArrayList
();
if
(
zoneArrays
!=
null
)
{
zoneList
=
Arrays
.
asList
(
zoneArrays
);
}
transCache
.
setZoneList
(
zoneList
);
}
/**
* Local Data
*/
private
void
updateAllData
()
{
updateVompAlarmDl
();
updateVompHandingInfoDl
();
updateVompPcInfoDl
();
updateVompStatusDl
();
updateZoneDl
();
}
private
void
updateVompAlarmDl
()
{
List
<
VompAlarm
>
alarmList4Save
=
getAlarmList
();
alarmRepository
.
save
(
alarmList4Save
);
log
.
info
(
"[vomp] VompAlarm更新了{}条数据"
,
alarmList4Save
.
size
());
}
private
void
updateVompHandingInfoDl
()
{
List
<
VompHandingInfo
>
handingInfoList4Save
=
getHandingInfoList
();
handingInfoRepository
.
save
(
handingInfoList4Save
);
log
.
info
(
"[vomp] VompHandingInfo更新了{}条数据"
,
handingInfoList4Save
.
size
());
}
private
void
updateVompPcInfoDl
()
{
List
<
VompPcInfo
>
pcInfoList4Save
=
getPcInfoList
();
pcInfoRepository
.
save
(
pcInfoList4Save
);
log
.
info
(
"[vomp] VompPcInfo更新了{}条数据"
,
pcInfoList4Save
.
size
());
}
private
void
updateVompStatusDl
()
{
List
<
VompStatus
>
statusList4Save
=
getStatusList
();
statusRepository
.
save
(
statusList4Save
);
log
.
info
(
"[vomp] VompStatus更新了{}条数据"
,
statusList4Save
.
size
());
}
private
void
updateZoneDl
()
{
List
<
VompZone
>
zoneList4Save
=
getZoneList
();
zoneRepository
.
save
(
zoneList4Save
);
log
.
info
(
"[vomp] VompZone更新了{}条数据"
,
zoneList4Save
.
size
());
}
/**
* VompAlarm
*/
private
List
<
VompAlarm
>
getAlarmList
()
{
List
<
VompAlarm
>
vompAlarmList
=
Lists
.
newArrayList
();
transCache
.
getChkStates_PcLog_Map
().
forEach
((
chkstates
,
pcLogs
)
->
pcLogs
.
forEach
(
pclog
->
vompAlarmList
.
add
(
transHelper
.
transToVompAlarm
(
chkstates
,
pclog
))));
return
vompAlarmList
;
}
/**
* VompHandingInfo
*/
private
List
<
VompHandingInfo
>
getHandingInfoList
()
{
List
<
VompHandingInfo
>
vompHandingInfoList
=
Lists
.
newArrayList
();
transCache
.
getChkStates_ChkRoutes_Map
().
forEach
((
chkstates
,
chkRoutes
)
->
chkRoutes
.
forEach
(
chkRoute
->
vompHandingInfoList
.
add
(
transHelper
.
transToHandingInfo
(
chkstates
,
chkRoute
))));
return
vompHandingInfoList
;
}
/**
* VompPcInfo
*/
private
List
<
VompPcInfo
>
getPcInfoList
()
{
List
<
VompPcInfo
>
vompPcInfoList
=
Lists
.
newArrayList
();
transCache
.
getZone_PcLog_Map
().
forEach
((
zone
,
pcLogList
)
->
vompPcInfoList
.
add
(
transHelper
.
transToVompPcInfoVo
(
zone
,
pcLogList
)));
return
vompPcInfoList
;
}
/**
* Status
*/
private
List
<
VompStatus
>
getStatusList
()
{
return
transCache
.
getServerStatusList
().
stream
()
.
map
(
transHelper:
:
transToStatus
)
.
collect
(
Collectors
.
toList
());
}
/**
* VompZone
*/
private
List
<
VompZone
>
getZoneList
()
{
return
transCache
.
getZoneList
().
stream
()
.
map
(
transHelper:
:
transToVompZone
)
.
map
(
transHelper:
:
addParentZoneName
)
.
map
(
transHelper:
:
addGrandParentZoneName
)
.
collect
(
Collectors
.
toList
());
}
}
acq-vomp/src/main/java/com/zjty/fp/acq/vomp/subject/service/updater/impl/VompFetcherImpl.java
0 → 100644
浏览文件 @
1eb7c64b
package
com
.
zjty
.
fp
.
acq
.
vomp
.
subject
.
service
.
updater
.
impl
;
import
com.zjty.fp.acq.misc.utils.FileCreator
;
import
com.zjty.fp.acq.misc.utils.JacksonUtil
;
import
com.zjty.fp.acq.vomp.subject.repository.remote.*
;
import
com.zjty.fp.acq.vomp.subject.service.updater.VompFetcher
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
static
com
.
zjty
.
fp
.
acq
.
vomp
.
base
.
enums
.
VompCatalogs
.*;
import
static
com
.
zjty
.
fp
.
acq
.
vomp
.
base
.
enums
.
VompPlatform
.
PLATFORM
;
@SuppressWarnings
(
"SpringAutowiredFieldsWarningInspection"
)
@Slf4j
@Service
public
class
VompFetcherImpl
implements
VompFetcher
{
@Autowired
ChkRoutesRepository
chkRoutesRepository
;
@Autowired
ChkStatesRepository
chkStatesRepository
;
@Autowired
PcLogRepository
pcLogRepository
;
@Autowired
ServerStatusRepository
serverStatusRepository
;
@Autowired
ZoneRepository
zoneRepository
;
@Autowired
FileCreator
fileCreator
;
@Override
public
void
fetchData
()
{
//5种数据分别写入
uploadChkRoutes
();
uploadChkStates
();
uploadPcLog
();
uploadServerStatus
();
uploadZone
();
}
private
void
createFileThenUploadToFtp
(
String
catalog
,
String
data
){
String
subName
=
PLATFORM
.
getName
();
fileCreator
.
createFile
(
subName
,
catalog
,
data
);
log
.
info
(
"[{}] {}写入完毕"
,
subName
,
catalog
);
}
private
void
uploadChkRoutes
()
{
String
data
=
JacksonUtil
.
toJSon
(
chkRoutesRepository
.
findAll
());
createFileThenUploadToFtp
(
CHKROUTES
.
getName
(),
data
);
}
private
void
uploadChkStates
()
{
String
data
=
JacksonUtil
.
toJSon
(
chkStatesRepository
.
findAll
());
createFileThenUploadToFtp
(
CHKSTATES
.
getName
(),
data
);
}
private
void
uploadPcLog
()
{
String
data
=
JacksonUtil
.
toJSon
(
pcLogRepository
.
findAll
());
createFileThenUploadToFtp
(
PCLOG
.
getName
(),
data
);
}
private
void
uploadServerStatus
()
{
String
data
=
JacksonUtil
.
toJSon
(
serverStatusRepository
.
findAll
());
createFileThenUploadToFtp
(
SERVERSTATUS
.
getName
(),
data
);
}
private
void
uploadZone
()
{
String
data
=
JacksonUtil
.
toJSon
(
zoneRepository
.
findAll
());
createFileThenUploadToFtp
(
ZONE
.
getName
(),
data
);
}
}
acq-vomp/src/main/java/com/zjty/fp/acq/vomp/task/VompTasks.java
浏览文件 @
1eb7c64b
package
com
.
zjty
.
fp
.
acq
.
vomp
.
task
;
package
com
.
zjty
.
fp
.
acq
.
vomp
.
task
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompDataDbUpdater
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompDataDbUpdater
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompDataRdUpdater
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompFetcherImpl
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompMapUpdater
;
import
com.zjty.fp.acq.vomp.subject.service.updater.impl.VompMapUpdater
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -18,14 +20,26 @@ import org.springframework.stereotype.Component;
...
@@ -18,14 +20,26 @@ import org.springframework.stereotype.Component;
@Slf4j
@Slf4j
public
class
VompTasks
{
public
class
VompTasks
{
@Autowired
@Autowired
VompDataDbUpdater
dataUpdater
;
VompFetcherImpl
vompFetcher
;
@Autowired
VompDataRdUpdater
dataUpdater
;
@Autowired
@Autowired
VompMapUpdater
mapUpdater
;
VompMapUpdater
mapUpdater
;
/**
/**
* 60分钟执行一次
* 60分钟执行一次
采集
*/
*/
@Scheduled
(
initialDelay
=
4000
,
fixedRate
=
60000
*
60
)
@Scheduled
(
initialDelay
=
4000
,
fixedRate
=
60000
*
60
)
public
void
fetchData
()
{
vompFetcher
.
fetchData
();
}
/**
* 60分钟执行一次 读取
*/
// @Scheduled(initialDelay = 4000, fixedRate = 60000 * 60)
public
void
updateData
()
{
public
void
updateData
()
{
dataUpdater
.
updateData
();
dataUpdater
.
updateData
();
mapUpdater
.
updateData
();
mapUpdater
.
updateData
();
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论