zqq:遥感影像接口

This commit is contained in:
qqGroup0 2023-04-15 16:32:04 +08:00
parent 6b3056fd08
commit bf2b77b657
6 changed files with 113 additions and 26 deletions

View File

@ -3,10 +3,12 @@ package com.kening.vordm.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.kening.vordm.vo.productResolutionVo;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 遥感影像源数据
@ -154,7 +156,40 @@ public class RemoteSensingSourceData implements Serializable {
*/
private String sourceOrganization;
/**
* 分辨率集合最大值
*/
@TableField(exist = false)
private Double productResolutionMax;
/**
* 分辨率集合最小值
*/
@TableField(exist = false)
private Double productResolutionMin;
/**
* 卫星类型集合
*/
@TableField(exist = false)
private String satelliteCodeList;
/**
* 卫星类型集合
*/
@TableField(exist = false)
private List<String> satelliteCodeListNew;
/**
* 卫星类型集合
*/
@TableField(exist = false)
private List<productResolutionVo> productResolutionVos;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,12 @@
package com.kening.vordm.vo;
import lombok.Data;
@Data
public class productResolutionVo {
private Double productResolutionMin;
private Double productResolutionMax;
}

View File

@ -1,10 +1,9 @@
package com.kening.vordm.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.kening.vordm.entity.DisasterInfo;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.entity.*;
import com.kening.vordm.service.DisasterInfoService;
import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
@ -13,11 +12,10 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@AllArgsConstructor
@ -45,23 +43,27 @@ public class RemoteSensingSourceDataController {
/**
* 实体数据列表信息
* @param remoteSensingSourceData 实体数据条件信息
* @param optionsJson 实体数据条件信息
* @param query current当前页 size 每页数据量
* @return
*/
@GetMapping("/Condition")
public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceDataByCondition(RemoteSensingSourceData remoteSensingSourceData, Query query) {
public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceDataByCondition( String optionsJson, Query query) {
RemoteSensingSourceData remoteSensingSourceData = new RemoteSensingSourceData();
if (optionsJson!=null){
remoteSensingSourceData = (RemoteSensingSourceData)JSON.parseObject(optionsJson, RemoteSensingSourceData.class);
}
return R.data(remoteSensingSourceDataService.getRemoteSensingSourceDataByCondition(Condition.getPage(query), remoteSensingSourceData));
}
// /**
// * 根据页码和灾害信息查出遥感影像源数据可多个灾害
// * @param remoteSensingSourceData
// * @param query
// * @return
// */
// @GetMapping("/Condition1")
// public R<IPage<RemoteSensingSourceData>> getRemoteSensingSourceDataByCondition(RemoteSensingSourceData remoteSensingSourceData, Query query){
// return R.data(remoteSensingSourceDataService.page(Condition.getPage(query),Condition.getQueryWrapper(remoteSensingSourceData)));
// }
/**
* 实体数据列表信息
* @param params
* @param query
* @return
*/
@GetMapping("/PagesData")
public R<IPage<RemoteSensingSourceData>> Pages(@RequestParam Map<String,Object> params, Query query){
return R.data(remoteSensingSourceDataService.page(Condition.getPage(query),Condition.getQueryWrapper(params,RemoteSensingSourceData.class)));
}
}

View File

@ -21,5 +21,4 @@ public interface RemoteSensingSourceDataMapper extends BaseMapper<RemoteSensingS
List<RemoteSensingSourceData> getRemoteSensingSourceData(@Param("disasterType") String disasterType,@Param("disasterCountry") String disasterCountry,@Param("disasterTime") String disasterTime);
IPage<RemoteSensingSourceData> getRemoteSensingSourceDataByCondition(@Param("remoteSensingSourceData") RemoteSensingSourceData remoteSensingSourceData, IPage<Object> page);
}

View File

@ -71,11 +71,17 @@
<if test="remoteSensingSourceData.disasterId != null and remoteSensingSourceData.disasterId != ''">
r.disaster_id = #{remoteSensingSourceData.disasterId}
</if>
<if test="remoteSensingSourceData.productResolution != null and remoteSensingSourceData.productResolution != ''">
and r.product_resolution = #{remoteSensingSourceData.productResolution}
<if test="remoteSensingSourceData.productResolutionMax != null and remoteSensingSourceData.productResolutionMin != null">
and r.product_resolution &gt;= #{remoteSensingSourceData.productResolutionMin} and r.product_resolution &lt; #{remoteSensingSourceData.productResolutionMax}
</if>
<if test="remoteSensingSourceData.satelliteCode != null and remoteSensingSourceData.satelliteCode != ''">
and r.satellite_code = #{remoteSensingSourceData.satelliteCode}
<if test="remoteSensingSourceData.productResolutionMax == null and remoteSensingSourceData.productResolutionMin != null">
and r.product_resolution &gt; #{remoteSensingSourceData.productResolutionMin}
</if>
<if test="remoteSensingSourceData.satelliteCodeListNew != null and remoteSensingSourceData.satelliteCodeListNew != '' and remoteSensingSourceData.satelliteCodeListNew.size() != 0">
and r.satellite_code in
<foreach item="AList" index="index" collection="remoteSensingSourceData.satelliteCodeListNew"
open="(" separator="," close=")">#{AList}
</foreach>
</if>
</where>
</select>

View File

@ -1,15 +1,19 @@
package com.kening.vordm.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kening.vordm.entity.EntityData;
import com.kening.vordm.entity.RemoteSensingSourceData;
import com.kening.vordm.mapper.RemoteSensingSourceDataMapper;
import com.kening.vordm.service.RemoteSensingSourceDataService;
import com.kening.vordm.vo.GroupByUse;
import com.kening.vordm.vo.productResolutionVo;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicReference;
/**
* @author G1393
@ -27,6 +31,35 @@ implements RemoteSensingSourceDataService {
@Override
public IPage<RemoteSensingSourceData> getRemoteSensingSourceDataByCondition(IPage<Object> page, RemoteSensingSourceData remoteSensingSourceData) {
return this.baseMapper.getRemoteSensingSourceDataByCondition(remoteSensingSourceData, page);
List<productResolutionVo> productResolutionVos = remoteSensingSourceData.getProductResolutionVos();
String satelliteCodeList = remoteSensingSourceData.getSatelliteCodeList();
List<String> result = new ArrayList<>();
if (satelliteCodeList!=null) {
result = Arrays.asList(satelliteCodeList.split(","));
remoteSensingSourceData.setSatelliteCodeListNew(result);
}
IPage<RemoteSensingSourceData> remoteSensingSourceDataByCondition = new Page<>();
if (productResolutionVos != null && !productResolutionVos.isEmpty()){
List<RemoteSensingSourceData> remoteSensingSourceData1 = new ArrayList<>();
productResolutionVos.stream().forEach(productResolutionVo -> {
if (Objects.equals(productResolutionVo.getProductResolutionMax(), new Double("1000"))){
remoteSensingSourceData.setProductResolutionMax(null);
remoteSensingSourceData.setProductResolutionMin(productResolutionVo.getProductResolutionMin());
}else {
remoteSensingSourceData.setProductResolutionMin(productResolutionVo.getProductResolutionMin());
remoteSensingSourceData.setProductResolutionMax(productResolutionVo.getProductResolutionMax());
}
IPage<RemoteSensingSourceData> remoteSensingSourceDataByConditionNew = this.baseMapper.getRemoteSensingSourceDataByCondition(remoteSensingSourceData, page);
remoteSensingSourceData1.addAll(remoteSensingSourceDataByConditionNew.getRecords());
});
remoteSensingSourceDataByCondition.setRecords(remoteSensingSourceData1);
remoteSensingSourceDataByCondition.setTotal(remoteSensingSourceData1.size());
}else {
remoteSensingSourceDataByCondition = this.baseMapper.getRemoteSensingSourceDataByCondition(remoteSensingSourceData, page);
}
return remoteSensingSourceDataByCondition;
}
}