Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
rs-cloud-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
周健威
rs-cloud-platform
Commits
1b57f4b5
Commit
1b57f4b5
authored
Dec 29, 2021
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改代码
parent
e8722162
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
230 additions
and
22 deletions
+230
-22
RscpImageCover.java
.../upyuns/platform/rs/datacenter/entity/RscpImageCover.java
+5
-1
RscpImageDataTotal.java
...uns/platform/rs/datacenter/entity/RscpImageDataTotal.java
+3
-0
InsertCoverDTO.java
...platform/rs/datacenter/pojo/imagedata/InsertCoverDTO.java
+13
-0
RscpImageCoverBiz.java
.../upyuns/platform/rs/datacenter/biz/RscpImageCoverBiz.java
+128
-2
CoverScheduleTask.java
.../upyuns/platform/rs/datacenter/job/CoverScheduleTask.java
+26
-18
RscpImageCoverMapper.java
...s/platform/rs/datacenter/mapper/RscpImageCoverMapper.java
+2
-1
BgRscpImageCoverController.java
...datacenter/rest/backstage/BgRscpImageCoverController.java
+11
-0
rscpImageCoverMapper.xml
...server/src/main/resources/mapper/rscpImageCoverMapper.xml
+42
-0
No files found.
rs-datacenter/rs-datacenter-api/src/main/java/com/upyuns/platform/rs/datacenter/entity/RscpImageCover.java
View file @
1b57f4b5
...
...
@@ -18,6 +18,10 @@ import java.math.BigDecimal;
@Table
(
name
=
"rscp_image_cover"
)
@ApiModel
(
description
=
""
)
public
class
RscpImageCover
implements
java
.
io
.
Serializable
{
public
static
final
int
TYPE_MONTH
=
2
;
public
static
final
int
TYPE_YEAR
=
3
;
/** 版本号 */
private
static
final
long
serialVersionUID
=
-
2790155170329491146L
;
...
...
@@ -28,7 +32,7 @@ public class RscpImageCover implements java.io.Serializable {
@KeySql
(
useGeneratedKeys
=
true
)
@Column
(
name
=
"id"
,
insertable
=
false
)
@ApiModelProperty
(
value
=
"id标识"
)
private
String
id
;
private
Integer
id
;
/** 统计类型 2--月份;3--年份 */
@ApiModelProperty
(
value
=
"统计类型 2--月份;3--年份"
)
...
...
rs-datacenter/rs-datacenter-api/src/main/java/com/upyuns/platform/rs/datacenter/entity/RscpImageDataTotal.java
View file @
1b57f4b5
...
...
@@ -290,4 +290,7 @@ public class RscpImageDataTotal implements java.io.Serializable {
@ApiModelProperty
(
value
=
""
)
private
Long
dataId
;
@ApiModelProperty
(
value
=
"是否已经统计覆盖率"
)
private
Integer
coverStatistics
;
}
\ No newline at end of file
rs-datacenter/rs-datacenter-api/src/main/java/com/upyuns/platform/rs/datacenter/pojo/imagedata/InsertCoverDTO.java
0 → 100644
View file @
1b57f4b5
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
pojo
.
imagedata
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageCover
;
import
lombok.Data
;
import
java.math.BigDecimal
;
import
java.util.List
;
@Data
public
class
InsertCoverDTO
extends
RscpImageCover
{
List
<
Long
>
ids
;
}
\ No newline at end of file
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/biz/RscpImageCoverBiz.java
View file @
1b57f4b5
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
biz
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageCover
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageStatistics
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.upyuns.platform.rs.datacenter.entity.*
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpImageCoverMapper
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpImageStatisticsMapper
;
import
com.upyuns.platform.rs.datacenter.pojo.BgImageCoverQueryDTO
;
import
com.upyuns.platform.rs.datacenter.pojo.imagedata.InsertCoverDTO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_TRUE
;
@Service
public
class
RscpImageCoverBiz
extends
BaseBiz
<
RscpImageCoverMapper
,
RscpImageCover
>
{
@Autowired
RscpImagePriceBiz
rscpImagePriceBiz
;
@Autowired
RscpImageDataTotalBiz
rscpImageDataTotalBiz
;
@Autowired
RscpImageStatisticsBiz
rscpImageStatisticsBiz
;
@Autowired
RscpAreaImageTotalBiz
rscpAreaImageTotalBiz
;
@Autowired
RscpAreaInfoBiz
rscpAreaInfoBiz
;
public
List
<
RscpImageCover
>
bgQueryDataList
(
BgImageCoverQueryDTO
dto
)
{
return
mapper
.
bgQueryDataList
(
dto
);
}
public
int
coverInserver
(
InsertCoverDTO
dto
){
return
mapper
.
coverInserver
(
dto
);
}
public
void
coverTask
()
{
Date
now
=
new
Date
();
Long
count
=
rscpImageDataTotalBiz
.
selectCount
(
new
RscpImageDataTotal
(){{
setCoverStatistics
(
0
);
}});
long
cirle
=
1
;
if
(
count
>
500L
)
{
cirle
=
(
count
/
500L
)
+
1
;
}
for
(
int
i
=
0
;
i
<
cirle
;
i
++)
{
PageDataVO
<
RscpImageDataTotal
>
vos
=
PageDataVO
.
pageInfo
(
new
Query
(
new
PageParam
(){{
setPage
(
1
);
setLimit
(
500
);
}}),
()
->
rscpImageDataTotalBiz
.
selectByWeekend
(
w
->
{
w
.
andEqualTo
(
RscpImageDataTotal:
:
getCoverStatistics
,
0
);
return
w
;
},
" image_take_time asc"
));
if
(
CollUtil
.
isNotEmpty
(
vos
.
getData
()))
{
List
<
Long
>
ids
=
vos
.
getData
().
parallelStream
().
map
(
RscpImageDataTotal:
:
getId
).
collect
(
Collectors
.
toList
());
Map
<
Long
,
RscpImageDataTotal
>
map
=
vos
.
getData
().
parallelStream
().
collect
(
Collectors
.
toMap
(
RscpImageDataTotal:
:
getId
,
Function
.
identity
()));
//根据id查询区域信息
List
<
RscpAreaImageTotal
>
areas
=
rscpAreaImageTotalBiz
.
selectByWeekend
(
w
->
{
w
.
andIn
(
RscpAreaImageTotal:
:
getDataId
,
ids
);
return
w
;
});
Map
<
String
,
List
<
RscpAreaImageTotal
>>
areaMap
=
areas
.
parallelStream
().
collect
(
Collectors
.
groupingBy
(
RscpAreaImageTotal:
:
getAreaNo
));
areaMap
.
forEach
((
k
,
v
)
->
{
//根据月份 处理覆盖率
Integer
areaCode
=
Integer
.
valueOf
(
k
);
RscpAreaInfo
rscpAreaInfo
=
rscpAreaInfoBiz
.
queryAreaInfoByAreaId
(
k
);
//按月份
Map
<
String
,
List
<
RscpAreaImageTotal
>>
monthMap
=
v
.
parallelStream
().
collect
(
Collectors
.
groupingBy
(
a
->{
DateTime
dateTime
=
DateUtil
.
parseDate
(
a
.
getBeginTime
());
return
DateUtil
.
format
(
dateTime
,
"yyyy-MM"
);
}));
//按年份
Map
<
String
,
List
<
RscpAreaImageTotal
>>
yearMap
=
v
.
parallelStream
().
collect
(
Collectors
.
groupingBy
(
a
->{
DateTime
dateTime
=
DateUtil
.
parseDate
(
a
.
getBeginTime
());
return
DateUtil
.
format
(
dateTime
,
"yyyy"
);
}));
//处理月份份融合
monthMap
.
forEach
((
mk
,
mv
)
->
{
String
[]
mks
=
mk
.
split
(
"-"
);
String
yearMk
=
mks
[
0
];
String
monthMk
=
mks
[
1
];
//查询旧数据
List
<
RscpImageCover
>
list
=
selectList
(
new
RscpImageCover
(){{
setDateMonth
(
monthMk
);
setDateYear
(
yearMk
);
setIsDel
(
SYS_FALSE
);
setAreaCode
(
areaCode
);
setType
(
TYPE_MONTH
);
}});
List
<
Long
>
dataIds
=
mv
.
parallelStream
().
map
(
RscpAreaImageTotal:
:
getDataId
).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
list
))
{
Integer
oldId
=
list
.
get
(
0
).
getId
();
updateById
(
new
RscpImageCover
(){{
setId
(
oldId
);
setIsDel
(
SYS_TRUE
);
}});
}
else
{
int
hasSucc
=
coverInserver
(
new
InsertCoverDTO
(){{
setIds
(
dataIds
);
setAreaCode
(
areaCode
);
setAreaName
(
rscpAreaInfo
.
getName
());
setCrtTime
(
now
.
getTime
());
setUpdTime
(
now
.
getTime
());
setDateMonth
(
monthMk
);
setDateYear
(
yearMk
);
setType
(
TYPE_MONTH
);
}});
}
});
});
}
}
}
}
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/job/CoverScheduleTask.java
View file @
1b57f4b5
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
job
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.date.DateField
;
import
cn.hutool.core.date.DateTime
;
import
cn.hutool.core.date.DateUtil
;
import
com.upyuns.platform.rs.datacenter.biz.RscpImageDataTotalBiz
;
import
com.upyuns.platform.rs.datacenter.biz.RscpImagePriceBiz
;
import
com.upyuns.platform.rs.datacenter.biz.RscpImageStatisticsBiz
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageDataTotal
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImagePrice
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageStatistics
;
import
com.github.pagehelper.PageInfo
;
import
com.github.wxiaoqi.security.common.util.Query
;
import
com.github.wxiaoqi.security.common.vo.PageDataVO
;
import
com.github.wxiaoqi.security.common.vo.PageParam
;
import
com.upyuns.platform.rs.datacenter.biz.*
;
import
com.upyuns.platform.rs.datacenter.entity.*
;
import
com.upyuns.platform.rs.datacenter.pojo.imagedata.InsertCoverDTO
;
import
com.upyuns.platform.rs.datacenter.vo.MaxMinVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -15,7 +18,11 @@ import org.springframework.context.annotation.Configuration;
import
org.springframework.scheduling.annotation.EnableScheduling
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.function.Function
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
wxiaoqi
.
security
.
common
.
constant
.
CommonConstants
.
SYS_FALSE
;
...
...
@@ -35,6 +42,15 @@ public class CoverScheduleTask {
@Autowired
RscpImageStatisticsBiz
rscpImageStatisticsBiz
;
@Autowired
RscpAreaImageTotalBiz
rscpAreaImageTotalBiz
;
@Autowired
RscpImageCoverBiz
rscpImageCoverBiz
;
@Autowired
RscpAreaInfoBiz
rscpAreaInfoBiz
;
//定时按月份统计覆盖率
//@Scheduled(cron = "0 0 2 * * ?")
//或直接指定时间间隔,例如:5秒
...
...
@@ -42,20 +58,12 @@ public class CoverScheduleTask {
public
void
configureTasks
()
{
//定时统计覆盖率数据
//查询未处理覆盖率影像最早时间和最晚时间
MaxMinVO
vo
=
rscpImageDataTotalBiz
.
coverStatisticsMaxMin
();
if
(
null
==
vo
.
getMaxTime
())
{
log
.
info
(
"无需更新"
);
return
;
}
// //生成月份循环
// DateUtil.
// for(String satelliteType : satelliteTypes){
//
// MaxMinVO vo = rscpImageDataTotalBiz.coverStatisticsMaxMin();
// if(null == vo.getMaxTime()) {
// log.info("无需更新");
// return;
// }
//生成年循环
}
...
...
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/mapper/RscpImageCoverMapper.java
View file @
1b57f4b5
...
...
@@ -2,11 +2,12 @@ package com.upyuns.platform.rs.datacenter.mapper;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageCover
;
import
com.upyuns.platform.rs.datacenter.pojo.BgImageCoverQueryDTO
;
import
com.upyuns.platform.rs.datacenter.pojo.imagedata.InsertCoverDTO
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
public
interface
RscpImageCoverMapper
extends
Mapper
<
RscpImageCover
>
{
public
List
<
RscpImageCover
>
bgQueryDataList
(
BgImageCoverQueryDTO
dto
);
public
int
coverInserver
(
InsertCoverDTO
dto
);
}
\ No newline at end of file
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/rest/backstage/BgRscpImageCoverController.java
View file @
1b57f4b5
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
rest
.
backstage
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreClientToken
;
import
com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken
;
import
com.github.wxiaoqi.security.common.msg.ObjectRestResponse
;
import
com.github.wxiaoqi.security.common.rest.BaseController
;
...
...
@@ -29,4 +30,14 @@ public class BgRscpImageCoverController extends BaseController<RscpImageCoverBiz
public
ObjectRestResponse
<
PageDataVO
<
RscpImageCover
>>
bgPages
(
BgImageCoverQueryDTO
dto
)
{
return
ObjectRestResponse
.
succ
(
PageDataVO
.
pageInfo
(
dto
.
initQuery
(),
()
->
baseBiz
.
bgQueryDataList
(
dto
)));
}
@ApiOperation
(
"定时处理"
)
@RequestMapping
(
value
=
"/app/unauth/coverTask"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
@IgnoreUserToken
@IgnoreClientToken
public
ObjectRestResponse
coverTask
()
{
baseBiz
.
coverTask
();
return
ObjectRestResponse
.
succ
();
}
}
\ No newline at end of file
rs-datacenter/rs-datacenter-server/src/main/resources/mapper/rscpImageCoverMapper.xml
View file @
1b57f4b5
...
...
@@ -32,8 +32,50 @@
ric.id, ric.type, ric.name, ric.ratio, ric.date_year, ric.date_month,
ric.is_del, ric.crt_time, ric.upd_time, ric.area_code, ric.area_name
</sql>
<!-- This code was generated by TableGo tools, mark 2 end. -->
<insert
id=
"coverInserver"
>
INSERT INTO
rscp_image_cover
(
range, type, name, ratio, date_year, date_month, crt_time, upd_time, area_code, area_name, cover_acreage, region_acreage
)
(
select temp.unrange, #{type}, #{name}, cover_acreage/region_acreage, #{dateYear}, #{dateMonth}, #{crtTime}, #{updTime}, #{areaCode}, #{areaName},
cover_acreage, region_acreage
from
( select ridt_temp.unrange, cast(st_area(ST_Intersection(ridt_temp.unrange, area_temp.geom),true)/1000/1000 as numeric(10,3)) as cover_acreage, cast(st_area(area_temp.geom,true)/1000/1000 as numeric(10,3)) as region_acreage
from
(
select st_union(ridt.range) as unrange
from rscp_image_data_total ridt
<where>
<if
test=
"dataIds !=null and dataIds.size()>0"
>
and ( ridt.id in
<foreach
collection=
"dataIds"
item=
"dataIdsVal"
open=
"("
close=
")"
separator=
","
>
#{dataIdsVal}
</foreach>
)
</if>
</where>
) ridt_temp
, (
select geom from rscp_area_info rai
<where>
<if
test=
"areaCode != null"
>
and rai.admincode = #{areaCode}
</if>
</where>
) area_temp
) temp
)
</insert>
<select
id=
"bgQueryDataList"
resultMap=
"rscpImageCoverMap"
>
select
<include
refid=
"allColumns2"
></include>
...
...
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