Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gf_back
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tianchao
gf_back
Commits
e89342cc
Commit
e89342cc
authored
Sep 04, 2024
by
ZWT
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(吉林演示): 松原
1.修改天气数据抽取定时任务,解决部分历史数据丢失问题; BREAKING CHANGE: 无 Closes 无 [skip ci]
parent
67a5077c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
34 deletions
+26
-34
C09-base/pps-core-base/src/main/java/pps/core/base/service/BaseWeatherCloudServiceImpl.java
...va/pps/core/base/service/BaseWeatherCloudServiceImpl.java
+26
-34
No files found.
C09-base/pps-core-base/src/main/java/pps/core/base/service/BaseWeatherCloudServiceImpl.java
View file @
e89342cc
...
@@ -152,11 +152,12 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -152,11 +152,12 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
List
<
WeatherDeleteCondition
>
deleteList
=
new
ArrayList
<>(
32
);
List
<
WeatherDeleteCondition
>
deleteList
=
new
ArrayList
<>(
32
);
List
<
ThirdWeatherDataView
>
weatherDataViewList
=
new
ArrayList
<>(
2048
);
List
<
ThirdWeatherDataView
>
weatherDataViewList
=
new
ArrayList
<>(
2048
);
//todo 老表逻辑(后期删除):后续可能替换
//todo 老表逻辑(后期删除):后续可能替换
List
<
PlantPredictedPowerDataEnt
>
oldDeleteList
=
new
ArrayList
<>(
32
);
List
<
String
>
oldDeleteList
=
new
ArrayList
<>(
32
);
List
<
PlantPredictedPowerDataEnt
>
oldBatchList
=
new
ArrayList
<>(
13312
);
List
<
PlantPredictedPowerDataEnt
>
oldBatchList
=
new
ArrayList
<>(
13312
);
//取未读邮件
//取未读邮件
Store
store
=
null
;
Store
store
=
null
;
Folder
folder
=
null
;
Folder
folder
=
null
;
DateTime
startTime
=
date
;
try
{
try
{
Properties
props
=
new
Properties
();
Properties
props
=
new
Properties
();
Session
session
=
Session
.
getDefaultInstance
(
props
,
null
);
Session
session
=
Session
.
getDefaultInstance
(
props
,
null
);
...
@@ -187,6 +188,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -187,6 +188,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
logger
.
info
(
"------ weatherApiDataProcess weather15mDataList isEmpty ------"
);
logger
.
info
(
"------ weatherApiDataProcess weather15mDataList isEmpty ------"
);
return
XServiceResult
.
OK
;
return
XServiceResult
.
OK
;
}
}
int
count
=
0
;
for
(
Weather15mData
weather15mData
:
weather15mDataList
)
{
for
(
Weather15mData
weather15mData
:
weather15mDataList
)
{
//取天气坐标
//取天气坐标
List
<
String
>
split
=
CharSequenceUtil
.
split
(
weather15mData
.
getLocation
().
getQuery
(),
':'
);
List
<
String
>
split
=
CharSequenceUtil
.
split
(
weather15mData
.
getLocation
().
getQuery
(),
':'
);
...
@@ -197,8 +199,12 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -197,8 +199,12 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
//获取15天明细数据
//获取15天明细数据
List
<
ThirdApiWeatherData
>
data
=
weather15mData
.
getData
();
List
<
ThirdApiWeatherData
>
data
=
weather15mData
.
getData
();
//获取开始结束时间,添加删除条件
//获取开始结束时间,添加删除条件
Date
beginTime
=
DateUtil
.
offsetMinute
(
data
.
get
(
0
).
getForecastTime
(),
-
5
);
Date
Time
beginTime
=
DateUtil
.
offsetMinute
(
data
.
get
(
0
).
getForecastTime
(),
-
5
);
Date
endTime
=
DateUtil
.
offsetMinute
(
data
.
get
(
data
.
size
()
-
1
).
getForecastTime
(),
15
);
Date
endTime
=
DateUtil
.
offsetMinute
(
data
.
get
(
data
.
size
()
-
1
).
getForecastTime
(),
15
);
if
(
count
==
0
)
{
startTime
=
beginTime
;
}
count
++;
deleteList
.
add
(
deleteList
.
add
(
WeatherDeleteCondition
.
builder
()
WeatherDeleteCondition
.
builder
()
.
longitude
(
longitude
)
.
longitude
(
longitude
)
...
@@ -209,11 +215,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -209,11 +215,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
);
);
//todo 老表逻辑(后期删除):删除数据逻辑
//todo 老表逻辑(后期删除):删除数据逻辑
for
(
BasePhotovoltaicPlantView
plantView
:
plantList
)
{
for
(
BasePhotovoltaicPlantView
plantView
:
plantList
)
{
oldDeleteList
.
add
(
PlantPredictedPowerDataEnt
.
builder
()
oldDeleteList
.
add
(
plantView
.
getId
());
.
plantId
(
plantView
.
getId
())
.
createTime
(
beginTime
)
.
endTime
(
endTime
)
.
build
());
}
}
//天气数据处理
//天气数据处理
List
<
ThirdWeatherDataView
>
weatherDataList
=
XCopyUtils
.
copyNewList
(
data
,
ThirdWeatherDataView
.
class
);
List
<
ThirdWeatherDataView
>
weatherDataList
=
XCopyUtils
.
copyNewList
(
data
,
ThirdWeatherDataView
.
class
);
...
@@ -248,7 +250,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -248,7 +250,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
NioUtil
.
close
(
store
);
NioUtil
.
close
(
store
);
}
}
//todo 老表逻辑(后期删除):删除/新增预测数据
//todo 老表逻辑(后期删除):删除/新增预测数据
this
.
deletePlantPredictedPowerList
(
context
,
oldDeleteList
);
this
.
deletePlantPredictedPowerList
(
context
,
oldDeleteList
,
startTime
,
DateUtil
.
offsetDay
(
startTime
,
16
)
);
this
.
insertBatchPlantPredictedPowerList
(
context
,
oldBatchList
);
this
.
insertBatchPlantPredictedPowerList
(
context
,
oldBatchList
);
int
size
;
int
size
;
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
...
@@ -812,7 +814,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -812,7 +814,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
return
;
return
;
}
}
context
.
getLogger
().
info
(
"------ weatherDataProcess dataFractionation"
);
context
.
getLogger
().
info
(
"------ weatherDataProcess dataFractionation"
);
List
<
PlantPredictedPowerDataEnt
>
deleteList
=
new
ArrayList
<>(
32
);
List
<
String
>
deleteList
=
new
ArrayList
<>(
32
);
List
<
PlantPredictedPowerDataEnt
>
batchList
=
new
ArrayList
<>(
13312
);
List
<
PlantPredictedPowerDataEnt
>
batchList
=
new
ArrayList
<>(
13312
);
DateTime
create
=
DateUtil
.
date
();
DateTime
create
=
DateUtil
.
date
();
DateTime
end
=
DateUtil
.
offsetDay
(
create
,
16
);
DateTime
end
=
DateUtil
.
offsetDay
(
create
,
16
);
...
@@ -828,7 +830,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -828,7 +830,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
}
}
count
++;
count
++;
if
(
BusinessConstant
.
FIVE
.
equals
(
count
))
{
if
(
BusinessConstant
.
FIVE
.
equals
(
count
))
{
this
.
deletePlantPredictedPowerList
(
context
,
deleteList
);
this
.
deletePlantPredictedPowerList
(
context
,
deleteList
,
create
,
end
);
this
.
insertBatchPlantPredictedPowerList
(
context
,
batchList
);
this
.
insertBatchPlantPredictedPowerList
(
context
,
batchList
);
context
.
getLogger
().
info
(
"------ weatherDataProcess clear size d {} b {}"
,
deleteList
.
size
(),
batchList
.
size
());
context
.
getLogger
().
info
(
"------ weatherDataProcess clear size d {} b {}"
,
deleteList
.
size
(),
batchList
.
size
());
CollUtil
.
clear
(
deleteList
,
batchList
);
CollUtil
.
clear
(
deleteList
,
batchList
);
...
@@ -837,7 +839,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -837,7 +839,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
}
}
context
.
getLogger
().
info
(
"------ weatherDataProcess delete and insertBatch"
);
context
.
getLogger
().
info
(
"------ weatherDataProcess delete and insertBatch"
);
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
this
.
deletePlantPredictedPowerList
(
context
,
deleteList
);
this
.
deletePlantPredictedPowerList
(
context
,
deleteList
,
create
,
end
);
}
}
if
(
CollUtil
.
isNotEmpty
(
batchList
))
{
if
(
CollUtil
.
isNotEmpty
(
batchList
))
{
this
.
insertBatchPlantPredictedPowerList
(
context
,
batchList
);
this
.
insertBatchPlantPredictedPowerList
(
context
,
batchList
);
...
@@ -856,7 +858,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -856,7 +858,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
* @param end 结束
* @param end 结束
* @param batchList 批次列表
* @param batchList 批次列表
*/
*/
private
void
dataFractionation
(
JSONObject
jsonObject
,
Map
<
String
,
List
<
BasePhotovoltaicPlantView
>>
plantMap
,
List
<
PlantPredictedPowerDataEnt
>
deleteList
,
private
void
dataFractionation
(
JSONObject
jsonObject
,
Map
<
String
,
List
<
BasePhotovoltaicPlantView
>>
plantMap
,
List
<
String
>
deleteList
,
DateTime
create
,
DateTime
end
,
List
<
PlantPredictedPowerDataEnt
>
batchList
)
{
DateTime
create
,
DateTime
end
,
List
<
PlantPredictedPowerDataEnt
>
batchList
)
{
Map
<
String
,
List
<
DailyData
>>
cityDataMap
=
new
HashMap
<>(
16
);
Map
<
String
,
List
<
DailyData
>>
cityDataMap
=
new
HashMap
<>(
16
);
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
jsonObject
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
jsonObject
.
entrySet
())
{
...
@@ -874,11 +876,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -874,11 +876,7 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
List
<
BasePhotovoltaicPlantView
>
plantViewList
=
plantMap
.
get
(
cityCode
);
List
<
BasePhotovoltaicPlantView
>
plantViewList
=
plantMap
.
get
(
cityCode
);
//删除数据
//删除数据
for
(
BasePhotovoltaicPlantView
plantView
:
plantViewList
)
{
for
(
BasePhotovoltaicPlantView
plantView
:
plantViewList
)
{
deleteList
.
add
(
PlantPredictedPowerDataEnt
.
builder
()
deleteList
.
add
(
plantView
.
getId
());
.
plantId
(
plantView
.
getId
())
.
createTime
(
create
)
.
endTime
(
end
)
.
build
());
}
}
//遍历预测数据列表
//遍历预测数据列表
for
(
DailyData
dailyData
:
dailyDataList
)
{
for
(
DailyData
dailyData
:
dailyDataList
)
{
...
@@ -1048,31 +1046,25 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
...
@@ -1048,31 +1046,25 @@ public class BaseWeatherCloudServiceImpl implements IBaseWeatherCloudService {
*
*
* @param context 上下文
* @param context 上下文
* @param deleteList 删除列表
* @param deleteList 删除列表
* @param create 创造
* @param end 结束
*/
*/
private
void
deletePlantPredictedPowerList
(
XContext
context
,
List
<
PlantPredictedPowerDataEnt
>
deleteList
)
{
private
void
deletePlantPredictedPowerList
(
XContext
context
,
List
<
String
>
deleteList
,
DateTime
create
,
DateTime
end
)
{
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
if
(
CollUtil
.
isNotEmpty
(
deleteList
))
{
PlantPredictedPowerDataMapper
mapper
=
context
.
getBean
(
PlantPredictedPowerDataMapper
.
class
);
PlantPredictedPowerDataMapper
mapper
=
context
.
getBean
(
PlantPredictedPowerDataMapper
.
class
);
int
size
=
deleteList
.
size
();
int
size
=
deleteList
.
size
();
context
.
getLogger
().
info
(
"------ deletePlantPredictedPowerList batchDelete delete size: {}"
,
size
);
context
.
getLogger
().
info
(
"------ deletePlantPredictedPowerList batchDelete delete size: {}"
,
size
);
if
(
size
>
BaseUtils
.
BATCH_SIZE
)
{
if
(
size
>
BaseUtils
.
BATCH_SIZE
)
{
List
<
List
<
PlantPredictedPowerDataEnt
>>
subList
=
BaseUtils
.
getSubList
(
deleteList
);
List
<
List
<
String
>>
subList
=
BaseUtils
.
getSubList
(
deleteList
);
for
(
List
<
PlantPredictedPowerDataEnt
>
list
:
subList
)
{
for
(
List
<
String
>
list
:
subList
)
{
LambdaQueryWrapper
<
PlantPredictedPowerDataEnt
>
wrapper
=
new
LambdaQueryWrapper
<>();
mapper
.
delete
(
new
LambdaQueryWrapper
<
PlantPredictedPowerDataEnt
>()
for
(
PlantPredictedPowerDataEnt
dataEnt
:
list
)
{
.
in
(
PlantPredictedPowerDataEnt:
:
getPlantId
,
list
)
wrapper
.
or
(
w
->
w
.
eq
(
PlantPredictedPowerDataEnt:
:
getPlantId
,
dataEnt
.
getPlantId
())
.
between
(
PlantPredictedPowerDataEnt:
:
getDataDate
,
create
,
end
));
.
between
(
PlantPredictedPowerDataEnt:
:
getDataDate
,
dataEnt
.
getCreateTime
(),
dataEnt
.
getEndTime
())
);
}
mapper
.
delete
(
wrapper
);
}
}
}
else
{
}
else
{
LambdaQueryWrapper
<
PlantPredictedPowerDataEnt
>
wrapper
=
new
LambdaQueryWrapper
<>();
mapper
.
delete
(
new
LambdaQueryWrapper
<
PlantPredictedPowerDataEnt
>()
for
(
PlantPredictedPowerDataEnt
dataEnt
:
deleteList
)
{
.
in
(
PlantPredictedPowerDataEnt:
:
getPlantId
,
deleteList
)
wrapper
.
or
(
w
->
w
.
eq
(
PlantPredictedPowerDataEnt:
:
getPlantId
,
dataEnt
.
getPlantId
())
.
between
(
PlantPredictedPowerDataEnt:
:
getDataDate
,
create
,
end
));
.
between
(
PlantPredictedPowerDataEnt:
:
getDataDate
,
dataEnt
.
getCreateTime
(),
dataEnt
.
getEndTime
())
);
}
mapper
.
delete
(
wrapper
);
}
}
}
}
}
}
...
...
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