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
2498771e
Commit
2498771e
authored
Dec 24, 2020
by
周健威
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改代码
parent
6cb3d969
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
137 additions
and
1 deletion
+137
-1
ImageTotalInputDTO.java
...pyuns/platform/rs/datacenter/pojo/ImageTotalInputDTO.java
+3
-0
RscpAreaImageTotalBiz.java
...uns/platform/rs/datacenter/biz/RscpAreaImageTotalBiz.java
+121
-1
RscpAreaInfoMapper.java
...uns/platform/rs/datacenter/mapper/RscpAreaInfoMapper.java
+13
-0
No files found.
rs-datacenter/rs-datacenter-api/src/main/java/com/upyuns/platform/rs/datacenter/pojo/ImageTotalInputDTO.java
View file @
2498771e
...
@@ -26,4 +26,7 @@ public class ImageTotalInputDTO extends RscpImageDataTotal {
...
@@ -26,4 +26,7 @@ public class ImageTotalInputDTO extends RscpImageDataTotal {
private
BigDecimal
rightTopLon
;
private
BigDecimal
rightTopLon
;
//右上角维度
//右上角维度
private
BigDecimal
rightTopLat
;
private
BigDecimal
rightTopLat
;
//rangeJson
private
String
rangeJson
;
}
}
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/biz/RscpAreaImageTotalBiz.java
View file @
2498771e
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
biz
;
package
com
.
upyuns
.
platform
.
rs
.
datacenter
.
biz
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.core.util.StrUtil
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.github.wxiaoqi.security.common.biz.BaseBiz
;
import
com.upyuns.platform.rs.datacenter.entity.RscpAreaImageTotal
;
import
com.upyuns.platform.rs.datacenter.entity.RscpAreaImageTotal
;
import
com.upyuns.platform.rs.datacenter.entity.RscpAreaInfo
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageDataTotal
;
import
com.upyuns.platform.rs.datacenter.entity.RscpImageDataTotal
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpAreaImageTotalMapper
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpAreaImageTotalMapper
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpAreaInfoMapper
;
import
com.upyuns.platform.rs.datacenter.mapper.RscpImageDataTotalMapper
;
import
com.upyuns.platform.rs.datacenter.pojo.ImageTotalInputDTO
;
import
com.upyuns.platform.rs.datacenter.rest.RscpImageDataTotalController
;
import
com.upyuns.platform.rs.datacenter.rest.RscpImageDataTotalController
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.
List
;
import
java.util.
*
;
@Service
@Service
@Slf4j
public
class
RscpAreaImageTotalBiz
extends
BaseBiz
<
RscpAreaImageTotalMapper
,
RscpAreaImageTotal
>
{
public
class
RscpAreaImageTotalBiz
extends
BaseBiz
<
RscpAreaImageTotalMapper
,
RscpAreaImageTotal
>
{
@Autowired
RscpImageDataTotalMapper
rscpImageDataTotalMapper
;
@Autowired
RscpAreaInfoMapper
rscpAreaInfoMapper
;
@Autowired
RscpImageDataTotalBiz
rscpImageDataTotalBiz
;
public
List
<
RscpAreaImageTotal
>
queryDataList
(
RscpImageDataTotalController
.
QueryDTO
dto
)
{
public
List
<
RscpAreaImageTotal
>
queryDataList
(
RscpImageDataTotalController
.
QueryDTO
dto
)
{
return
mapper
.
queryDataList
(
dto
);
return
mapper
.
queryDataList
(
dto
);
}
}
public
void
bbb
(
ImageTotalInputDTO
dto
)
{
// 第二步:判断是否已有区域影像信息,存在则删除
//areaImageTotalManagement.deleteAreaImageTotalByDataId(imageDataId);
delete
(
new
RscpAreaImageTotal
(){{
setDataId
(
dto
.
getId
());
}});
// 第三步:遍历地区表,查询该影像关联的地区
// String geometryJson = areaInfoManagement.getGeometryJsonByWkt(imageData.getRange());
// postgis查询区域交集
List
<
RscpAreaInfo
>
imageAreaInfoList
=
rscpAreaInfoMapper
.
getIntersectAreaInfo
(
dto
.
getRange
());
if
(
CollUtil
.
isNotEmpty
(
imageAreaInfoList
))
{
// 第四步:拼接影像所属省、市
Set
<
String
>
adminCodeSet
=
new
HashSet
<
String
>();
Set
<
String
>
provinceNameSet
=
new
HashSet
<
String
>();
Set
<
String
>
cityNameSet
=
new
HashSet
<
String
>();
for
(
RscpAreaInfo
areaInfo
:
imageAreaInfoList
)
{
String
adminCode
=
areaInfo
.
getAdmincode
();
String
adminName
=
areaInfo
.
getName
();
adminCodeSet
.
add
(
adminCode
);
if
(
adminCode
.
substring
(
4
,
6
).
equals
(
"00"
)
&&
!
adminCode
.
substring
(
2
,
6
).
equals
(
"0000"
)
&&
!
adminName
.
equals
(
"县"
)
&&
!
adminName
.
equals
(
"自治区直辖县级行政区划"
)
&&
!
adminName
.
equals
(
"市辖区"
))
{
if
(
StringUtils
.
isNotBlank
(
areaInfo
.
getProname
()))
{
// 添加影像所属省
provinceNameSet
.
add
(
areaInfo
.
getProname
());
}
if
(
StringUtils
.
isNotBlank
(
areaInfo
.
getName
()))
{
// 添加影像所属市
cityNameSet
.
add
(
areaInfo
.
getName
());
}
}
}
// 第五步:计算每座城市覆盖面积
List
<
Map
<
String
,
Object
>>
intersectionAreaMapList
=
rscpAreaInfoMapper
.
queryIntersectionArea
(
dto
.
getRange
(),
StrUtil
.
join
(
","
,
adminCodeSet
));
for
(
Map
<
String
,
Object
>
intersectionAreaMap
:
intersectionAreaMapList
)
{
log
.
info
(
"===intersectionAreaMap:"
+
intersectionAreaMap
);
String
proadcode
=
intersectionAreaMap
.
get
(
"proadcode"
).
toString
();
String
areaNoDetail
=
"{"
+
intersectionAreaMap
.
get
(
"admin_code_ary"
).
toString
()
+
"}"
;
String
isCover
=
"{"
+
intersectionAreaMap
.
get
(
"is_cover_ary"
).
toString
()
+
"}"
;
String
imageArea
=
"{"
+
intersectionAreaMap
.
get
(
"image_area_ary"
).
toString
()
+
"}"
;
// 第六步:入库rscm_area_image_total
RscpAreaImageTotal
areaImageTotal
=
new
RscpAreaImageTotal
();
areaImageTotal
.
setId
(
UUID
.
randomUUID
().
toString
());
areaImageTotal
.
setAreaNo
(
proadcode
);
areaImageTotal
.
setAreaNoDetail
(
areaNoDetail
);
areaImageTotal
.
setImageRowCol
(
dto
.
getImageRowCol
());
areaImageTotal
.
setImageSatelliteType
(
dto
.
getImageSatelliteType
());
// areaImageTotal.setImageResolution(dto.getImageResolution());
// areaImageTotal.setImageSpectrumType(dto.getImageSpectrumType());
areaImageTotal
.
setImageSensorType
(
dto
.
getImageSensorType
());
areaImageTotal
.
setBeginTime
(
dto
.
getImageTakeTime
());
areaImageTotal
.
setRange
(
dto
.
getRange
());
areaImageTotal
.
setNum
(
imageAreaInfoList
.
size
());
// areaImageTotal.setIscover(isCover);
areaImageTotal
.
setImageArea
(
imageArea
);
areaImageTotal
.
setDataId
(
dto
.
getId
());
areaImageTotal
.
setImageCloudage
(
dto
.
getImageCloudage
());
areaImageTotal
.
setImageProductType
(
dto
.
getImageProductType
());
areaImageTotal
.
setName
(
dto
.
getName
());
areaImageTotal
.
setThumbnailPath
(
dto
.
getThumbnailPath
());
// areaImageTotal.setImageProductId(dto.getImageProductId());
// 保存区域影像信息至数据库
insertSelective
(
areaImageTotal
);
// 保存后的数据
// areaImageTotal = areaImageTotalManagement.getEntityById("id", areaImageTotal.getId());
// // 保存区域影像信息至mongodb
//mongodbManagement.addAreaImageTotal(areaImageTotal, geometryJson);
}
// 第七步:更新rscm_image_data_total_v2
log
.
info
(
"===更新rscm_image_data_total_v2:"
+
StringUtils
.
join
(
provinceNameSet
,
","
)
+
" "
+
StringUtils
.
join
(
cityNameSet
,
","
));
try
{
// Map<String, Object> columnValueMap = new HashMap<String, Object>();
// columnValueMap.put("image_province", "'" + StringUtils.join(provinceNameSet, ",") + "'");
// columnValueMap.put("image_city", "'" + StringUtils.join(cityNameSet, ",") + "'");
// columnValueMap.put("image_area", "st_area(range,true)/1000/1000");
// imageDataManagement.updateImageDataTotalById(imageDataId, columnValueMap);
rscpImageDataTotalBiz
.
updateSelectiveById
(
new
RscpImageDataTotal
(){{
setId
(
dto
.
getId
());
setImageProvince
(
StrUtil
.
join
(
","
,
provinceNameSet
));
setImageCity
(
StrUtil
.
join
(
","
,
cityNameSet
));
// setImageArea(StrUtil.join(",", ));
}});
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
}
rs-datacenter/rs-datacenter-server/src/main/java/com/upyuns/platform/rs/datacenter/mapper/RscpAreaInfoMapper.java
View file @
2498771e
...
@@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Select;
...
@@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Select;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Set
;
public
interface
RscpAreaInfoMapper
extends
Mapper
<
RscpAreaInfo
>
{
public
interface
RscpAreaInfoMapper
extends
Mapper
<
RscpAreaInfo
>
{
public
RscpAreaInfo
queryAreaInfoByAreaCode
(
String
areaCode
);
public
RscpAreaInfo
queryAreaInfoByAreaCode
(
String
areaCode
);
...
@@ -14,4 +16,15 @@ public interface RscpAreaInfoMapper extends Mapper<RscpAreaInfo> {
...
@@ -14,4 +16,15 @@ public interface RscpAreaInfoMapper extends Mapper<RscpAreaInfo> {
@Select
(
"select adminCode,proadcode,cityadcode,name,cityname,proname from rscm_area_info where st_intersects(geom, #{range})"
)
@Select
(
"select adminCode,proadcode,cityadcode,name,cityname,proname from rscm_area_info where st_intersects(geom, #{range})"
)
public
List
<
RscpAreaInfo
>
getIntersectAreaInfo
(
String
range
);
public
List
<
RscpAreaInfo
>
getIntersectAreaInfo
(
String
range
);
@Select
(
" select t1.proadcode,string_agg(t1.adminCode, ',') as admin_code_ary,"
+
" string_agg(t1.is_cover, ',') as is_cover_ary,string_agg(t1.image_area, ',') as image_area_ary "
+
" from "
+
" (select (case when proadcode is null then adminCode else proadcode end) as proadcode,adminCode, "
+
" case(st_contains(geom, #{geomArea})) when true then '1' else '0' end as is_cover, "
+
" cast(cast(st_area(st_intersection(geom, #{geomArea}),true)/1000/1000 as numeric(10,3))as text) as image_area "
+
" from rscp_area_info where adminCode in (${adminCodeSetStr}) order by adminCode "
+
" ) t1 "
+
" group by t1.proadcode order by proadcode "
)
public
List
<
Map
<
String
,
Object
>>
queryIntersectionArea
(
String
geomArea
,
String
adminCodeSetStr
);
}
}
\ 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