diff --git a/src/main/java/com/cuit/solarenergy/controller/DataController.java b/src/main/java/com/cuit/solarenergy/controller/DataController.java index d80abb7..7f67e24 100644 --- a/src/main/java/com/cuit/solarenergy/controller/DataController.java +++ b/src/main/java/com/cuit/solarenergy/controller/DataController.java @@ -2,14 +2,12 @@ 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.*; +import com.cuit.solarenergy.entity.vo.ret.ElementValueRet; import com.cuit.solarenergy.entity.vo.ret.RetResponse; 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; @@ -21,9 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -165,10 +161,10 @@ public class DataController { @ApiResponse(code = 500, message = "服务器内部错误"), @ApiResponse(code = 900, message = "失败") }) - public RetResult> getElementInfo() { + public RetResult> getElementInfo() { try { log.info("查询要素详情"); - List element = dataImportService.getElementInfo(); + List element = dataImportService.getElementInfo(); return RetResponse.makeOKRsp(element); }catch (ParamsException e){ return RetResponse.makeErrRsp("查询要素失败!"+e.getMessage()); @@ -187,10 +183,10 @@ public class DataController { @ApiResponse(code = 500, message = "服务器内部错误"), @ApiResponse(code = 900, message = "失败") }) - public RetResult> getValueByElement(String Element) { + public RetResult> getValueByElement(String Element) { try { log.info("根据要素详情查询具体值"); - List value = dataImportService.getValueByElement(Element); + List value = dataImportService.getValueByElement(Element); return RetResponse.makeOKRsp(value); }catch (ParamsException e){ return RetResponse.makeErrRsp("查询数据失败!"+e.getMessage()); @@ -218,7 +214,7 @@ public class DataController { return RetResponse.makeErrRsp("查询监测点详情失败!"+e.getMessage()); } } - @AopLog + @AopLog @AuthToken @ApiOperation("9、获取数据时间") @PreAuthorize("hasAuthority('minio:upload')") @@ -240,4 +236,26 @@ public class DataController { return RetResponse.makeErrRsp("获取当前时间失败!"+e.getMessage()); } } + @AopLog + @AuthToken + @ApiOperation("10、获取要素状态") + @PreAuthorize("hasAuthority('minio:upload')") + @RequestMapping(value = "/dataimport/getElementStatus", 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> getElementStatus(String element) { + try { + log.info("获取当前要素状态"); + List currentTime = dataImportService.getElementStatus(element); + return RetResponse.makeOKRsp(currentTime); + }catch (ParamsException e){ + return RetResponse.makeErrRsp("获取当前时间失败!"+e.getMessage()); + } + } } diff --git a/src/main/java/com/cuit/solarenergy/entity/ElementRet.java b/src/main/java/com/cuit/solarenergy/entity/ElementRet.java new file mode 100644 index 0000000..eae9efb --- /dev/null +++ b/src/main/java/com/cuit/solarenergy/entity/ElementRet.java @@ -0,0 +1,52 @@ +package com.cuit.solarenergy.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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 ElementRet { + /** + * 总辐射辐照度 W.m-2 + */ + @ApiModelProperty(value = "总辐射辐照度 W.m-2") + @TableField(value = "V14311") + private String 总辐射辐照度; + + /** + * 净辐射辐照度 W.m-2 + */ + @ApiModelProperty(value = "净辐射辐照度 W.m-2") + @TableField(value = "V14312") + private String 净辐射辐照度 ; + + /** + * 直接辐射辐照度 W.m-2 + */ + @ApiModelProperty(value = "直接辐射辐照度 W.m-2") + @TableField(value = "V14313") + private String 直接辐射辐照度; + + /** + * 散射辐射辐照度 W.m-2 + */ + @ApiModelProperty(value = "散射辐射辐照度 W.m-2") + @TableField(value = "V14314") + private String 散射辐射辐照度; + + /** + * 反射辐射辐照度 W.m-2 + */ + @ApiModelProperty(value = "反射辐射辐照度 W.m-2") + @TableField(value = "V14315") + private String 反射辐射辐照度; + +} diff --git a/src/main/java/com/cuit/solarenergy/entity/ElementValue.java b/src/main/java/com/cuit/solarenergy/entity/ElementValue.java new file mode 100644 index 0000000..aba9f7d --- /dev/null +++ b/src/main/java/com/cuit/solarenergy/entity/ElementValue.java @@ -0,0 +1,38 @@ +package com.cuit.solarenergy.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +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 ElementValue { + /** + * 区站号 + */ + @TableField(value = "Station_Id_C") + private String stationIdC; + /** + * 纬度 ° + */ + @TableField(value = "Lat") + private String lat; + + /** + * 经度 ° + */ + @TableField(value = "Lon") + private String lon; + /** + * 要素值 + */ + @ApiModelProperty(value = "要素值") + private String elementvalue; +} diff --git a/src/main/java/generator/domain/radi_chn_mul_hor.java b/src/main/java/com/cuit/solarenergy/entity/radi_chn_mul_hor.java similarity index 99% rename from src/main/java/generator/domain/radi_chn_mul_hor.java rename to src/main/java/com/cuit/solarenergy/entity/radi_chn_mul_hor.java index 60ea53f..454cbc3 100644 --- a/src/main/java/generator/domain/radi_chn_mul_hor.java +++ b/src/main/java/com/cuit/solarenergy/entity/radi_chn_mul_hor.java @@ -1,4 +1,4 @@ -package generator.domain; +package com.cuit.solarenergy.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/src/main/java/com/cuit/solarenergy/entity/vo/ret/ElementValueRet.java b/src/main/java/com/cuit/solarenergy/entity/vo/ret/ElementValueRet.java new file mode 100644 index 0000000..9cc9e47 --- /dev/null +++ b/src/main/java/com/cuit/solarenergy/entity/vo/ret/ElementValueRet.java @@ -0,0 +1,47 @@ +package com.cuit.solarenergy.entity.vo.ret; + + +import com.baomidou.mybatisplus.annotation.TableField; +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 ElementValueRet { + /** + * 区站号 + */ + @ApiModelProperty(value = "站点名") + @TableField(value = "Station_Id_C") + private String stationIdC; + /** + * 纬度 ° + */ + @ApiModelProperty(value = "纬度") + @TableField(value = "Lat") + private String lat; + + /** + * 经度 ° + */ + @ApiModelProperty(value = "经度") + @TableField(value = "Lon") + private String lon; + /** + * 要素值 + */ + @ApiModelProperty(value = "要素值") + private String elementvalue; + /** + * 状态 + */ + @ApiModelProperty(value = "状态") + private String status; +} diff --git a/src/main/java/com/cuit/solarenergy/mapper/TSamplingDataDetailsMapper.java b/src/main/java/com/cuit/solarenergy/mapper/TSamplingDataDetailsMapper.java index 300b9b4..52a4f99 100644 --- a/src/main/java/com/cuit/solarenergy/mapper/TSamplingDataDetailsMapper.java +++ b/src/main/java/com/cuit/solarenergy/mapper/TSamplingDataDetailsMapper.java @@ -2,6 +2,7 @@ package com.cuit.solarenergy.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.cuit.solarenergy.entity.ElementValue; import com.cuit.solarenergy.entity.MapService; import com.cuit.solarenergy.entity.TSamplingDataDetails; import com.cuit.solarenergy.entity.vo.req.MultiRSDetectionReq; @@ -105,6 +106,20 @@ public interface TSamplingDataDetailsMapper extends BaseMapper getAllInfoForThreeYear(String streamName); + + /** + * @Description: 根据元素名称查询元素值 + * @param element + * @return + */ + List getValueByElement(String element); + + /** + * @Description: 根据元素名称查询元素值状态 + * @param mappedElementCode + * @return + */ + List getElementStatus(String mappedElementCode); } diff --git a/src/main/java/com/cuit/solarenergy/mapper/radi_chn_mul_horMapper.java b/src/main/java/com/cuit/solarenergy/mapper/radi_chn_mul_horMapper.java index 0609741..08af29b 100644 --- a/src/main/java/com/cuit/solarenergy/mapper/radi_chn_mul_horMapper.java +++ b/src/main/java/com/cuit/solarenergy/mapper/radi_chn_mul_horMapper.java @@ -2,18 +2,26 @@ package com.cuit.solarenergy.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import generator.domain.radi_chn_mul_hor; +import com.cuit.solarenergy.entity.ElementRet; +import com.cuit.solarenergy.entity.radi_chn_mul_hor; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + /** * @author 田俊彪 * @description 针对表【radi_chn_mul_hor】的数据库操作Mapper * @createDate 2024-11-27 14:23:48 -* @Entity generator.domain.radi_chn_mul_hor +* @Entity com.cuit.solarenergy.entity.radi_chn_mul_hor */ @Mapper public interface radi_chn_mul_horMapper extends BaseMapper { + /** + * 查询要素详情 + * @return + */ + List getElementInfo(); } diff --git a/src/main/java/com/cuit/solarenergy/service/DataImportService.java b/src/main/java/com/cuit/solarenergy/service/DataImportService.java index 38db575..17c3683 100644 --- a/src/main/java/com/cuit/solarenergy/service/DataImportService.java +++ b/src/main/java/com/cuit/solarenergy/service/DataImportService.java @@ -1,9 +1,8 @@ package com.cuit.solarenergy.service; -import com.cuit.solarenergy.entity.BaseMapVoRet; -import com.cuit.solarenergy.entity.MonitorRet; -import com.cuit.solarenergy.entity.TGeoserverinfo; +import com.cuit.solarenergy.entity.*; +import com.cuit.solarenergy.entity.vo.ret.ElementValueRet; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -103,16 +102,17 @@ public interface DataImportService { /** * 获取要素信息 + * * @return */ - List getElementInfo(); + List getElementInfo(); /** * 根据要素详情查询具体值 * @param element * @return */ - List getValueByElement(String element); + List getValueByElement(String element); /** * 监测排序 @@ -132,4 +132,11 @@ public interface DataImportService { * @return */ List getBaseMapList(); + + /** + * 获取要素状态 + * @return + */ + List getElementStatus(String element); + } diff --git a/src/main/java/com/cuit/solarenergy/service/impl/DataImportServiceImpl.java b/src/main/java/com/cuit/solarenergy/service/impl/DataImportServiceImpl.java index cd18251..6ade357 100644 --- a/src/main/java/com/cuit/solarenergy/service/impl/DataImportServiceImpl.java +++ b/src/main/java/com/cuit/solarenergy/service/impl/DataImportServiceImpl.java @@ -8,15 +8,15 @@ import com.alibaba.excel.read.metadata.ReadSheet; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.entity.vo.ret.ElementValueRet; import com.cuit.solarenergy.exception.ParamsException; import com.cuit.solarenergy.mapper.TGeoserverinfoMapper; import com.cuit.solarenergy.mapper.TSamplingDataDetailsMapper; import com.cuit.solarenergy.mapper.TSiteBaseInfoMapper; +import com.cuit.solarenergy.mapper.radi_chn_mul_horMapper; import com.cuit.solarenergy.model.poi.listener.ExcelUtil; import com.cuit.solarenergy.model.poi.listener.ImportExcelListener; import com.cuit.solarenergy.model.poi.listener.head.DataManageExcelModel; @@ -67,6 +67,9 @@ public class DataImportServiceImpl implements DataImportService { LayerDispConfig layerDispConfig; @Autowired MyGeoServerConfig mygeoServerConfig; + @Autowired + radi_chn_mul_horMapper radichnmulhorMapper; + @@ -461,14 +464,10 @@ public class DataImportServiceImpl implements DataImportService { } @Override - public List getElementInfo() { + public List getElementInfo() { try { - List elementInfo = new ArrayList<>(); - elementInfo.add("辐射最大值"); - elementInfo.add("辐射最小值"); - elementInfo.add("紫外线最大值"); - elementInfo.add("紫外线最小值"); - elementInfo.add("日辐射量"); + List elementInfo = new ArrayList<>(); + elementInfo = radichnmulhorMapper.getElementInfo(); return elementInfo; }catch (ParamsException e){ return null; @@ -476,34 +475,30 @@ public class DataImportServiceImpl implements DataImportService { } @Override - public List getValueByElement(String element) { - List retValue; - try { - retValue = new ArrayList<>(); - switch (element) { - case "辐射最大值": - retValue.add(10); - break; - case "辐射最小值": - retValue.add(1); - break; - case "紫外线最大值": - retValue.add(20); - break; - case "紫外线最小值": - retValue.add(2); - break; - case "日辐射量": - retValue.add(5); - break; - default: - retValue = null; - break; - } - } catch (ParamsException e) { - return null; + public List getValueByElement(String element) { + Map elementMap = new HashMap() {{ + put("总辐射辐照度", "V14311"); + put("净辐射辐照度", "V14312"); + put("直接辐射辐照度", "V14313"); + put("散射辐射辐照度", "V14314"); + put("反射辐射辐照度", "V14315"); + }}; + + try { + List retValue = new ArrayList<>(); + // 检查传入的中文element是否在映射关系中 + String mappedElementCode = elementMap.get(element); + if (mappedElementCode != null) { + // 如果在映射关系中,使用对应的英文代码去查询数据库 + retValue = tSamplingDataDetailsMapper.getValueByElement(element); // 这里传入的是中文元素名称 } - return retValue; + if (retValue != null && !retValue.isEmpty()) { + return retValue; + } + } catch (ParamsException e) { + throw new RuntimeException("Failed to get element info", e); + } + return null; } @Override @@ -589,6 +584,41 @@ public class DataImportServiceImpl implements DataImportService { return baseMapVoRetList; } + @Override + public List getElementStatus(String element) { + Map elementMap = new HashMap() {{ + put("总辐射辐照度", "V14311"); + put("净辐射辐照度", "V14312"); + put("直接辐射辐照度", "V14313"); + put("散射辐射辐照度", "V14314"); + put("反射辐射辐照度", "V14315"); + }}; + + try { + List retValue = new ArrayList<>(); + // 检查传入的中文element是否在映射关系中 + String mappedElementCode = elementMap.get(element); + if (mappedElementCode == null) { + // 如果映射关系中没有对应的代码,返回空列表或者抛出异常 + return retValue; // 或者抛出一个自定义异常 + } + // 如果在映射关系中,使用对应的英文代码去查询数据库 + List dbValues = tSamplingDataDetailsMapper.getElementStatus(mappedElementCode); + if (dbValues != null) { + for (ElementValueRet value : dbValues) { + if (value != null) { + // 设置status为"正常" + value.setStatus("正常"); + retValue.add(value); + } + } + } + return retValue; + } catch (ParamsException e) { + throw new RuntimeException("Failed to get element info", e); + } + } + private String getURL(TGeoserverinfo geoBasedatageoserverinfo) { String url = ""; String geoServerURL = ""; diff --git a/src/main/java/com/cuit/solarenergy/service/impl/radi_chn_mul_horServiceImpl.java b/src/main/java/com/cuit/solarenergy/service/impl/radi_chn_mul_horServiceImpl.java index 94a6b78..d2d6369 100644 --- a/src/main/java/com/cuit/solarenergy/service/impl/radi_chn_mul_horServiceImpl.java +++ b/src/main/java/com/cuit/solarenergy/service/impl/radi_chn_mul_horServiceImpl.java @@ -1,7 +1,7 @@ package com.cuit.solarenergy.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import generator.domain.radi_chn_mul_hor; +import com.cuit.solarenergy.entity.radi_chn_mul_hor; import com.cuit.solarenergy.service.radi_chn_mul_horService; import com.cuit.solarenergy.mapper.radi_chn_mul_horMapper; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/cuit/solarenergy/service/radi_chn_mul_horService.java b/src/main/java/com/cuit/solarenergy/service/radi_chn_mul_horService.java index d8609c7..bf4fdf3 100644 --- a/src/main/java/com/cuit/solarenergy/service/radi_chn_mul_horService.java +++ b/src/main/java/com/cuit/solarenergy/service/radi_chn_mul_horService.java @@ -1,6 +1,6 @@ package com.cuit.solarenergy.service; -import generator.domain.radi_chn_mul_hor; +import com.cuit.solarenergy.entity.radi_chn_mul_hor; import com.baomidou.mybatisplus.extension.service.IService; /** diff --git a/src/main/resources/mapper/TSamplingDataDetailsMapper.xml b/src/main/resources/mapper/TSamplingDataDetailsMapper.xml index 3d9f9a3..edaa01b 100644 --- a/src/main/resources/mapper/TSamplingDataDetailsMapper.xml +++ b/src/main/resources/mapper/TSamplingDataDetailsMapper.xml @@ -339,6 +339,52 @@ ORDER BY year; + + diff --git a/src/main/resources/mapper/radi_chn_mul_horMapper.xml b/src/main/resources/mapper/radi_chn_mul_horMapper.xml index f29007b..042c22c 100644 --- a/src/main/resources/mapper/radi_chn_mul_horMapper.xml +++ b/src/main/resources/mapper/radi_chn_mul_horMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -89,4 +89,8 @@ RRA_Max_OTime,V14307,V14316_05, UV_Max_OTime,SSH,API + diff --git a/src/test/java/com/cuit/solarenergy/SolarenergyApplicationTests.java b/src/test/java/com/cuit/solarenergy/SolarenergyApplicationTests.java index f3ce8e4..b2f2afc 100644 --- a/src/test/java/com/cuit/solarenergy/SolarenergyApplicationTests.java +++ b/src/test/java/com/cuit/solarenergy/SolarenergyApplicationTests.java @@ -2,16 +2,13 @@ package com.cuit.solarenergy; import com.cuit.solarenergy.service.radi_chn_mul_horService; import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.cuit.gis.analysis.solarradiation.RasterSolarRadiationOperation; import com.cuit.mete.musicutil.MusicQueryParameters; import com.cuit.mete.musicutil.RadifEleInterface; -import com.cuit.mete.musicutil.SurfEleInterface; import com.cuit.mete.musicutil.exception.*; import com.cuit.solarenergy.service.SolarenergyService; -import generator.domain.radi_chn_mul_hor; +import com.cuit.solarenergy.entity.radi_chn_mul_hor; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired;