add:首页接口

main
qh 5 months ago
parent f9dc28e838
commit cf19cc1d32

@ -0,0 +1,21 @@
package com.cuit.solarenergy.config;
import com.cuit.solarenergy.entity.BaseMapVoRet;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import java.util.List;
/**
*
* @author cuitg -- ZengwuWang
* @date 20240714 13:29
*/
@Component
@Data
@ConfigurationProperties(prefix="layers")
public class LayerDispConfig {
private List<BaseMapVoRet> basemap;
}

@ -2,6 +2,7 @@ package com.cuit.solarenergy.controller;
import com.cuit.solarenergy.base.annotation.AopLog;
import com.cuit.solarenergy.base.annotation.AuthToken;
import com.cuit.solarenergy.entity.BaseMapVoRet;
import com.cuit.solarenergy.entity.MonitorRet;
import com.cuit.solarenergy.entity.TGeoserverinfo;
import com.cuit.solarenergy.entity.vo.ret.RetResponse;
@ -9,6 +10,7 @@ import com.cuit.solarenergy.entity.vo.ret.RetResult;
import com.cuit.solarenergy.exception.ParamsException;
import com.cuit.solarenergy.service.DataImportService;
import com.cuit.solarenergy.utils.ErrorMessage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -51,10 +53,10 @@ public class DataController {
@ApiResponse(code = 500, message = "服务器内部错误"),
@ApiResponse(code = 900, message = "失败")
})
public RetResult<List<TGeoserverinfo>> getRefionInfo(String region) {
public RetResult<List<TGeoserverinfo>> getRefionInfo() {
try {
log.info("区域查询");
List<TGeoserverinfo> regionInfo = dataImportService.getRefionInfo(region);
List<TGeoserverinfo> regionInfo = dataImportService.getRefionInfo();
return RetResponse.makeOKRsp(regionInfo);
}catch (ParamsException e){
return RetResponse.makeErrRsp("查询错误!"+e.getMessage());
@ -73,20 +75,43 @@ public class DataController {
@ApiResponse(code = 500, message = "服务器内部错误"),
@ApiResponse(code = 900, message = "失败")
})
public RetResult<List<String>> getTifByRegion(String region) {
public RetResult<List<TGeoserverinfo>> getTifByRegion(String region) {
try {
log.info("Tif查询");
List<String> regionInfo = dataImportService.getTifByRegion(region);
List<TGeoserverinfo> regionInfo = dataImportService.getTifByRegion(region);
return RetResponse.makeOKRsp(regionInfo);
}catch (ParamsException e){
return RetResponse.makeErrRsp("查询tif文件失败"+e.getMessage());
}
}
@AopLog
// @AopLog
// @AuthToken
// @ApiOperation("3、图层查询")
// @PreAuthorize("hasAuthority('minio:upload')")
// @RequestMapping(value = "/dataimport/getLayer", method = {RequestMethod.GET})
// @ApiResponses({
// @ApiResponse(code = 200, message = "成功"),
// @ApiResponse(code = 401, message = "访问未经授权"),
// @ApiResponse(code = 403, message = "访问被禁止的"),
// @ApiResponse(code = 404, message = "未找到访问接口"),
// @ApiResponse(code = 500, message = "服务器内部错误"),
// @ApiResponse(code = 900, message = "失败")
// })
// public RetResult<List<String>> getLayer() {
// try {
// log.info("图层查询");
// List<String> layer = dataImportService.getLayer();
// return RetResponse.makeOKRsp(layer);
// }catch (ParamsException e){
// return RetResponse.makeErrRsp("查询tif文件失败"+e.getMessage());
// }
// }
@AuthToken
@ApiOperation("3、图层查询")
@PreAuthorize("hasAuthority('minio:upload')")
@RequestMapping(value = "/dataimport/getLayer", method = {RequestMethod.GET})
@AopLog
@ApiOperationSupport(order = 8)
// @PreAuthorize("hasAuthority('common:getBaseMapLayes')")
@ApiOperation("8、查询取底图图层列表名称及地址")
@RequestMapping(value = "/common/getBaseMapLayes", method = {RequestMethod.GET})
@ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = 401, message = "访问未经授权"),
@ -95,13 +120,14 @@ public class DataController {
@ApiResponse(code = 500, message = "服务器内部错误"),
@ApiResponse(code = 900, message = "失败")
})
public RetResult<List<String>> getLayer() {
public RetResult<List<BaseMapVoRet>> getBaseMapLayes() {
List<BaseMapVoRet> baseMapVoRets = null;
try {
log.info("图层查询");
List<String> layer = dataImportService.getLayer();
return RetResponse.makeOKRsp(layer);
}catch (ParamsException e){
return RetResponse.makeErrRsp("查询tif文件失败"+e.getMessage());
baseMapVoRets = dataImportService.getBaseMapList();
return RetResponse.makeOKRsp(baseMapVoRets);
} catch (Exception e) {
e.printStackTrace();
return RetResponse.makeRsp(500, "服务器错误...");
}
}
@AopLog
@ -191,5 +217,27 @@ public class DataController {
}catch (ParamsException e){
return RetResponse.makeErrRsp("查询监测点详情失败!"+e.getMessage());
}
}
@AopLog
@AuthToken
@ApiOperation("9、获取数据时间")
@PreAuthorize("hasAuthority('minio:upload')")
@RequestMapping(value = "/dataimport/getCurrentTime", method = {RequestMethod.GET})
@ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = 401, message = "访问未经授权"),
@ApiResponse(code = 403, message = "访问被禁止的"),
@ApiResponse(code = 404, message = "未找到访问接口"),
@ApiResponse(code = 500, message = "服务器内部错误"),
@ApiResponse(code = 900, message = "失败")
})
public RetResult<List<String>> getCurrentTime() {
try {
log.info("获取当前时间");
List<String> currentTime = dataImportService.getCurrentTime();
return RetResponse.makeOKRsp(currentTime);
}catch (ParamsException e){
return RetResponse.makeErrRsp("获取当前时间失败!"+e.getMessage());
}
}
}

@ -0,0 +1,23 @@
package com.cuit.solarenergy.entity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ApiModel(description = "地图底图返回类")
public class BaseMapVoRet {
@ApiModelProperty("地图名称")
private String name;
@ApiModelProperty("访问地址")
private String url;
@ApiModelProperty(value ="缺省开关", example = "on,off")
private String defaultonoff;
}

@ -55,6 +55,8 @@ public class TGeoserverinfo implements Serializable {
*/
private LocalDateTime createdate;
private String regionname;
private static final long serialVersionUID = 1L;
@Override

@ -3,6 +3,8 @@ package com.cuit.solarenergy.mapper;
import com.cuit.solarenergy.entity.TGeoserverinfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@ -17,10 +19,17 @@ public interface TGeoserverinfoMapper extends BaseMapper<TGeoserverinfo> {
/**
*
*
* @return
*/
List<TGeoserverinfo> getRefionInfo();
/**
* tif
* @param region
* @return
*/
List<TGeoserverinfo> getRefionInfo(String region);
List<TGeoserverinfo> getTifByRegion(@Param("region") String region);
}

@ -1,6 +1,7 @@
package com.cuit.solarenergy.service;
import com.cuit.solarenergy.entity.BaseMapVoRet;
import com.cuit.solarenergy.entity.MonitorRet;
import com.cuit.solarenergy.entity.TGeoserverinfo;
import org.springframework.stereotype.Service;
@ -68,14 +69,15 @@ public interface DataImportService {
*
* @return
*/
List<TGeoserverinfo> getRefionInfo(String region);
List<TGeoserverinfo> getRefionInfo();
/**
* tif
*
* @param region
* @return
*/
List<String> getTifByRegion(String region);
List<TGeoserverinfo> getTifByRegion(String region);
/**
*
@ -110,4 +112,15 @@ public interface DataImportService {
*/
List<MonitorRet> getMonitorInfo();
/**
*
* @return
*/
List<String> getCurrentTime();
/**
*
* @return
*/
List<BaseMapVoRet> getBaseMapList();
}

@ -6,10 +6,13 @@ import com.alibaba.excel.enums.CellExtraTypeEnum;
import com.alibaba.excel.exception.ExcelAnalysisException;
import com.alibaba.excel.read.metadata.ReadSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cuit.solarenergy.entity.MonitorRet;
import com.cuit.solarenergy.entity.TGeoserverinfo;
import com.cuit.solarenergy.entity.TSamplingDataDetails;
import com.cuit.solarenergy.entity.TSiteBaseInfo;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.beust.jcommander.internal.Nullable;
import com.cuit.mete.geoserver.GeoServerConfig;
import com.cuit.solarenergy.config.LayerDispConfig;
import com.cuit.solarenergy.config.MyGeoServerConfig;
import com.cuit.solarenergy.entity.*;
import com.cuit.solarenergy.exception.ParamsException;
import com.cuit.solarenergy.mapper.TGeoserverinfoMapper;
import com.cuit.solarenergy.mapper.TSamplingDataDetailsMapper;
@ -32,6 +35,8 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
/**
@ -58,6 +63,12 @@ public class DataImportServiceImpl implements DataImportService {
@Autowired
private GeoServerPubServiceImpl geoServerPubService;
@Autowired
LayerDispConfig layerDispConfig;
@Autowired
MyGeoServerConfig mygeoServerConfig;
@Override
public List<String> upLoadProjectLedgerBySingleFile(MultipartFile file) throws IOException {
@ -371,9 +382,9 @@ public class DataImportServiceImpl implements DataImportService {
}
@Override
public List<TGeoserverinfo> getRefionInfo(String region) {
public List<TGeoserverinfo> getRefionInfo() {
try {
List<TGeoserverinfo> regionInfo = tGeoserverinfoMapper.getRefionInfo(region);
List<TGeoserverinfo> regionInfo = tGeoserverinfoMapper.getRefionInfo();
if (regionInfo != null) {
for (TGeoserverinfo info : regionInfo) {
info.setUrl(geoServerPubService.getMapBox3857RasterWmsUrl(info.getId()));
@ -388,30 +399,19 @@ public class DataImportServiceImpl implements DataImportService {
@Override
public List<String> getTifByRegion(String region) {
List<String> tifUrls = new ArrayList<>();
switch (region) {
case "南充":
tifUrls.add("url_to_beijing_tif");
break;
case "巴中":
tifUrls.add("url_to_shanghai_tif");
break;
case "广元":
tifUrls.add("url_to_guangzhou_tif");
break;
case "广安":
tifUrls.add("url_to_guangzhou_tif");
break;
case "达州":
tifUrls.add("url_to_guangzhou_tif");
break;
default:
// 如果输入的城市名称不在已知列表中可以返回一个空列表或者null
tifUrls = null;
break;
public List<TGeoserverinfo> getTifByRegion(String region) {
try{
List<TGeoserverinfo> tifByRegion = tGeoserverinfoMapper.getTifByRegion(region);
if (tifByRegion != null) {
for (TGeoserverinfo info : tifByRegion) {
info.setUrl(geoServerPubService.getMapBox3857RasterWmsUrl(info.getId()));
}
}
return tifUrls;
return tifByRegion;
}catch (ParamsException e){
throw new RuntimeException("Failed to get region info", e);
}
}
@Override
@ -540,6 +540,78 @@ public class DataImportServiceImpl implements DataImportService {
return monitorInfoList;
}
@Override
public List<String> getCurrentTime() {
// 获取当前时间
LocalDateTime now = LocalDateTime.now();
// 定义时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化当前时间为字符串
String formattedTime = now.format(formatter);
// 返回包含当前时间字符串的列表
return Arrays.asList(formattedTime);
}
@Override
public List<BaseMapVoRet> getBaseMapList() {
List<BaseMapVoRet> baseMapVoRetList = new ArrayList<>();
//配置文件中定义的
List<BaseMapVoRet> basemapConfigList = layerDispConfig.getBasemap();
if (!CollectionUtils.isEmpty(basemapConfigList)) {
baseMapVoRetList.addAll(basemapConfigList);
}
List<TGeoserverinfo> geoBasedatageoserverinfos = tGeoserverinfoMapper.selectList(null);
if (!CollectionUtils.isEmpty(geoBasedatageoserverinfos)) {
for (int i = 0; i < geoBasedatageoserverinfos.size(); i++) {
TGeoserverinfo geoBasedatageoserverinfo = geoBasedatageoserverinfos.get(i);
BaseMapVoRet baseMapVoRet = new BaseMapVoRet();
baseMapVoRet.setName(geoBasedatageoserverinfo.getGeoserverlayers());
//http://121.37.165.19:8082/geoserver/cztl/wms?service=WMS&version=1.1.0&request=GetMap&layers=cztl:SAT_RTD_JS_00_CPC_20230405_202304250000&bbox=494883.5,3398883.5,496536.5,3400386.5&width=768&height=698&srs=EPSG:32647&styles=cztl:style_cpc&format=application/openlayers
//取3857坐标系地址
String url = getURL(geoBasedatageoserverinfo);
baseMapVoRet.setUrl(url);
baseMapVoRet.setDefaultonoff("off");
baseMapVoRetList.add(baseMapVoRet);
}
}
return baseMapVoRetList;
}
private String getURL(TGeoserverinfo geoBasedatageoserverinfo) {
String url = "";
String geoServerURL = "";
geoServerURL = mygeoServerConfig.getGeoserverapiurl();
String workspaces = "";
if (!StringUtils.isEmpty(geoBasedatageoserverinfo.getGeoserverworkspaces())) {
workspaces = geoBasedatageoserverinfo.getGeoserverworkspaces();
} else {
workspaces = geoBasedatageoserverinfo.getGeoserverworkspaces();
}
String layer = "";
if (!StringUtils.isEmpty(geoBasedatageoserverinfo.getGeoserverlayers())) {
layer = geoBasedatageoserverinfo.getGeoserverlayers();
}
String styles = "";
if (!StringUtils.isEmpty(geoBasedatageoserverinfo.getGeoserverstyles())) {
styles = geoBasedatageoserverinfo.getGeoserverstyles();
}
String srs = "EPSG:3857";
if (StringUtils.isEmpty(geoServerURL) || StringUtils.isEmpty(layer) || StringUtils.isEmpty(workspaces)) {
return null;
}
if (geoServerURL.endsWith("/")) {
geoServerURL = geoServerURL.substring(0, geoServerURL.length() - 1);
}
url = geoServerURL + "/" + workspaces + "/wms?service=WMS&version=1.1.0&request=GetMap&layers=" + workspaces + ":" + layer + "&width=768&height=698&srs=" + srs;
if (!StringUtils.isEmpty(styles)) {
url += "&styles=" + workspaces + ":" + styles;
}
url += "&FORMAT=image/png&TRANSPARENT=true";
return url;
}
/**
* Excel

@ -84,7 +84,17 @@ mygeoserverconfig:
# logback.xml早于application.yml加载logback-spring.xml晚于application.yml加载 如果logback配置需要使用application.yml中的属性需要命名为logback-spring.xml
# 2. logback使用application.yml中的属性
# 使用springProperty才可使用application.yml中的值 可以设置默认值
#叠加地图,地址可以是反向代理后的地址
layers:
basemap:
- name: 倾斜模型
url: https://gis.mdjcsdsj.com//gisserver/c3dserver/aimin/tileset.json
#http://111.42.18.66:8089/api/c3dserver/
defaultonoff: true #true/flase
- name: 三维地形
url: mapbox://mapbox.mapbox-terrain-dem-v1
#http://111.42.18.66:8089/api/c3dserver/
defaultonoff: true #true/flase
ditu:

@ -14,21 +14,28 @@
<result property="latlonbbox" column="latlonbbox" jdbcType="VARCHAR"/>
<result property="url" column="url" jdbcType="VARCHAR"/>
<result property="createdate" column="createdate" jdbcType="TIMESTAMP"/>
<result property="regionname" column="regionname" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
ID,GeoServerWorkspaces,GeoServerLayers,
GeoServerStyles,Srs,bbox,
latlonbbox,url,createdate
latlonbbox,url,createdate,regionname
</sql>
<select id="getRefionInfo" resultType="com.cuit.solarenergy.entity.TGeoserverinfo">
select
<include refid="Base_Column_List"/>
from t_geoserverinfo
</select>
<select id="getTifByRegion" resultType="com.cuit.solarenergy.entity.TGeoserverinfo">
select
<include refid="Base_Column_List"/>
from t_geoserverinfo
<where>
<if test="region != null and region != ''">
GeoServerLayers like concat('%',#{region},'%')
regionname = #{region}
</if>
</where>
</select>
</mapper>

Loading…
Cancel
Save