diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ENSOImpactController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ENSOImpactController.java new file mode 100644 index 000000000..02c397634 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ENSOImpactController.java @@ -0,0 +1,109 @@ +package com.ruoyi.web.controller.yada; + + +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.system.domain_yada.entity.ENSOEventAnalysisEntity; +import com.ruoyi.system.domain_yada.entity.ENSOEventRateEntity; +import com.ruoyi.system.domain_yada.entity.ENSOMonthEventEntity; +import com.ruoyi.system.domain_yada.entity.ENSOYearUnusualRateEntity; +import com.ruoyi.system.domain_yada.vo.ENSOEventAnalysisVo; +import com.ruoyi.system.domain_yada.vo.ESNOImpactSubzoneVo; +import com.ruoyi.system.domain_yada.vo.PmKeyValueEnVo; +import com.ruoyi.system.domain_yada.vo.PmKeyValueVo; +import com.ruoyi.system.service_yada.ENSOImpactService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * ENSO事件影响监测 + * + * @author Mr.C + */ +@RestController +@RequestMapping("/business-service/api/enso") +@Api(tags = "ENSO事件影响监测") +public class ENSOImpactController { + + @Resource + private ENSOImpactService ensoImpactService; + + @RequestMapping(value = "/subzonePie", method = {RequestMethod.GET}) + @ApiOperation(value = "各地理亚区植被异常分布", httpMethod = "GET") + public AjaxResult subzonePie(@RequestParam(value = "type") String type, + @RequestParam(value = "year") String year, + @RequestParam(value = "region") String region) { + ESNOImpactSubzoneVo esnoImpactSubzoneVo = ensoImpactService.subzonePie(type, year, region); + return AjaxResult.success(esnoImpactSubzoneVo); + } + + + @RequestMapping(value = "/subzoneVai", method = {RequestMethod.GET}) + @ApiOperation(value = "各地理亚区VAI", httpMethod = "GET") + public AjaxResult subzoneVai(@RequestParam(value = "type") String type, + @RequestParam(value = "year") String year) { + PmKeyValueEnVo pmKeyValueEnVo = ensoImpactService.subzoneVai(type, year); + return AjaxResult.success(pmKeyValueEnVo); + } + + @RequestMapping(value = "/countryVai", method = {RequestMethod.GET}) + @ApiOperation(value = "各国AVI", httpMethod = "GET") + public AjaxResult countryVai(@RequestParam(value = "type") String type, + @RequestParam(value = "year") String year, + @RequestParam(value = "region") String region) { + PmKeyValueEnVo pmKeyValueEnVo = ensoImpactService.countryVai(type, year, region); + return AjaxResult.success(pmKeyValueEnVo); + } + + @RequestMapping(value = "/subzoneVaiLine", method = {RequestMethod.GET}) + @ApiOperation(value = "各地理亚区时间VAI", httpMethod = "GET") + public AjaxResult subzoneVaiLine(@RequestParam(value = "type") String type, + @RequestParam(value = "region") String region, + @RequestParam(value = "start") String start, + @RequestParam(value = "end") String end) { + PmKeyValueVo pmKeyValueVo = ensoImpactService.subzoneVaiLine(type, region, start, end); + return AjaxResult.success(pmKeyValueVo); + } + + + @RequestMapping(value = "/ensoEventRate", method = {RequestMethod.GET}) + @ApiOperation(value = "四类ENSO事件空间分布统计", httpMethod = "GET") + public AjaxResult ensoEventRate(@RequestParam(value = "type") String type, + @RequestParam(value = "zone") String zone, + @RequestParam(value = "year") String year) { + ENSOEventRateEntity ensoEventRateEntity = ensoImpactService.ensoEventRate(type, zone, year); + return AjaxResult.success(ensoEventRateEntity); + } + + + @RequestMapping(value = "/ensoYearUnusualRate", method = {RequestMethod.GET}) + @ApiOperation(value = "特定年份异常占比", httpMethod = "GET") + public AjaxResult ensoYearUnusualRate(@RequestParam(value = "year") String year, + @RequestParam(value = "zone") String zone, + @RequestParam(value = "type") String type) { + ENSOYearUnusualRateEntity ensoYearUnusualRateEntity = ensoImpactService.ensoYearUnusualRate(year, zone, type); + return AjaxResult.success(ensoYearUnusualRateEntity); + } + + @RequestMapping(value = "/ensoMonthEvent", method = {RequestMethod.GET}) + @ApiOperation(value = "逐月时间事件序列", httpMethod = "GET") + public AjaxResult ensoMonthEvent(@RequestParam(value = "zone") String zone, + @RequestParam(value = "type") String type) { + PmKeyValueVo pmKeyValueVo = ensoImpactService.ensoMonthEvent(type, zone); + return AjaxResult.success(pmKeyValueVo); + } + + @RequestMapping(value = "/ensoEventAnalysis", method = {RequestMethod.GET}) + @ApiOperation(value = "事件历史分析", httpMethod = "GET") + public AjaxResult ensoEventAnalysis(@RequestParam(value = "zone") String zone, + @RequestParam(value = "type") String type) { + ENSOEventAnalysisVo ensoEventAnalysisVo = ensoImpactService.ensoEventAnalysis(type, zone); + return AjaxResult.success(ensoEventAnalysisVo); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ESNOImpactController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ESNOImpactController.java deleted file mode 100644 index 57589e03f..000000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/yada/ESNOImpactController.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.ruoyi.web.controller.yada; - - -import com.ruoyi.common.core.domain.AjaxResult; -import com.ruoyi.system.domain_yada.entity.MonitorCountryCorrespondingEntity; -import com.ruoyi.system.domain_yada.vo.ESNOImpactSubzoneVo; -import com.ruoyi.system.domain_yada.vo.PmKeyValueEnVo; -import com.ruoyi.system.domain_yada.vo.PmKeyValueVo; -import com.ruoyi.system.service_yada.ESNOImpactService; -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; -import java.util.List; - -/** - * ENSO事件影响监测 - * - * @author Mr.C - */ -@RestController -@RequestMapping("/business-service/api/enso") -@Api(tags = "ENSO事件影响监测") -public class ESNOImpactController { - - @Resource - private ESNOImpactService esnoImpactService; - - @RequestMapping(value = "/subzonePie", method = {RequestMethod.GET}) - @ApiOperation(value = "各地理亚区植被异常分布", httpMethod = "GET") - public AjaxResult subzonePie(@RequestParam(value = "type") String type, - @RequestParam(value = "year") String year, - @RequestParam(value = "region") String region) { - ESNOImpactSubzoneVo esnoImpactSubzoneVo = esnoImpactService.subzonePie(type, year, region); - return AjaxResult.success(esnoImpactSubzoneVo); - } - - - @RequestMapping(value = "/subzoneVai", method = {RequestMethod.GET}) - @ApiOperation(value = "各地理亚区VAI", httpMethod = "GET") - public AjaxResult subzoneVai(@RequestParam(value = "type") String type, - @RequestParam(value = "year") String year) { - PmKeyValueEnVo pmKeyValueEnVo = esnoImpactService.subzoneVai(type, year); - return AjaxResult.success(pmKeyValueEnVo); - } - - @RequestMapping(value = "/countryVai", method = {RequestMethod.GET}) - @ApiOperation(value = "各国AVI", httpMethod = "GET") - public AjaxResult countryVai(@RequestParam(value = "type") String type, - @RequestParam(value = "year") String year, - @RequestParam(value = "region") String region) { - PmKeyValueEnVo pmKeyValueEnVo = esnoImpactService.countryVai(type, year, region); - return AjaxResult.success(pmKeyValueEnVo); - } - - @RequestMapping(value = "/subzoneVaiLine", method = {RequestMethod.GET}) - @ApiOperation(value = "各地理亚区时间VAI", httpMethod = "GET") - public AjaxResult subzoneVaiLine(@RequestParam(value = "type") String type, - @RequestParam(value = "region") String region, - @RequestParam(value = "start") String start, - @RequestParam(value = "end") String end) { - PmKeyValueVo pmKeyValueVo = esnoImpactService.subzoneVaiLine(type, region,start, end); - return AjaxResult.success(pmKeyValueVo); - } - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventAnalysisEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventAnalysisEntity.java new file mode 100644 index 000000000..595163bf0 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventAnalysisEntity.java @@ -0,0 +1,113 @@ +package com.ruoyi.system.domain_yada.entity; + +/** + * 事件异常分析 + * @author Mr.C + */ +public class ENSOEventAnalysisEntity { + private Integer id; + + private String year; + + private String type; + + private String zone; + + private String value; + + public ENSOEventAnalysisEntity() { + } + + public ENSOEventAnalysisEntity(Integer id, String year, String type, String zone, String value) { + this.id = id; + this.year = year; + this.type = type; + this.zone = zone; + this.value = value; + } + + /** + * 获取 + * @return id + */ + public Integer getId() { + return id; + } + + /** + * 设置 + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取 + * @return year + */ + public String getYear() { + return year; + } + + /** + * 设置 + * @param year + */ + public void setYear(String year) { + this.year = year; + } + + /** + * 获取 + * @return type + */ + public String getType() { + return type; + } + + /** + * 设置 + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取 + * @return zone + */ + public String getZone() { + return zone; + } + + /** + * 设置 + * @param zone + */ + public void setZone(String zone) { + this.zone = zone; + } + + /** + * 获取 + * @return value + */ + public String getValue() { + return value; + } + + /** + * 设置 + * @param value + */ + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return "ENSOEventAnalysisEntity{id = " + id + ", year = " + year + ", type = " + type + ", zone = " + zone + ", value = " + value + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventRateEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventRateEntity.java new file mode 100644 index 000000000..22ef6c917 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOEventRateEntity.java @@ -0,0 +1,210 @@ +package com.ruoyi.system.domain_yada.entity; + +/** + * 四类ENSO事件空间分布统计 + * @author Mr.C + */ +public class ENSOEventRateEntity { + + private Integer id; + + private String type; + + private String zone; + + private String event; + + private String eventEn; + + private String obviouslyBetter; + + private String slightlyBetter; + + private String unchanged; + + private String slightlyWorse; + + private String obviouslyWorse; + + + public ENSOEventRateEntity() { + } + + public ENSOEventRateEntity(Integer id, String type, String zone, String event, String eventEn, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { + this.id = id; + this.type = type; + this.zone = zone; + this.event = event; + this.eventEn = eventEn; + this.obviouslyBetter = obviouslyBetter; + this.slightlyBetter = slightlyBetter; + this.unchanged = unchanged; + this.slightlyWorse = slightlyWorse; + this.obviouslyWorse = obviouslyWorse; + } + + /** + * 获取 + * @return id + */ + public Integer getId() { + return id; + } + + /** + * 设置 + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取 + * @return type + */ + public String getType() { + return type; + } + + /** + * 设置 + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取 + * @return zone + */ + public String getZone() { + return zone; + } + + /** + * 设置 + * @param zone + */ + public void setZone(String zone) { + this.zone = zone; + } + + /** + * 获取 + * @return event + */ + public String getEvent() { + return event; + } + + /** + * 设置 + * @param event + */ + public void setEvent(String event) { + this.event = event; + } + + /** + * 获取 + * @return eventEn + */ + public String getEventEn() { + return eventEn; + } + + /** + * 设置 + * @param eventEn + */ + public void setEventEn(String eventEn) { + this.eventEn = eventEn; + } + + /** + * 获取 + * @return obviouslyBetter + */ + public String getObviouslyBetter() { + return obviouslyBetter; + } + + /** + * 设置 + * @param obviouslyBetter + */ + public void setObviouslyBetter(String obviouslyBetter) { + this.obviouslyBetter = obviouslyBetter; + } + + /** + * 获取 + * @return slightlyBetter + */ + public String getSlightlyBetter() { + return slightlyBetter; + } + + /** + * 设置 + * @param slightlyBetter + */ + public void setSlightlyBetter(String slightlyBetter) { + this.slightlyBetter = slightlyBetter; + } + + /** + * 获取 + * @return unchanged + */ + public String getUnchanged() { + return unchanged; + } + + /** + * 设置 + * @param unchanged + */ + public void setUnchanged(String unchanged) { + this.unchanged = unchanged; + } + + /** + * 获取 + * @return slightlyWorse + */ + public String getSlightlyWorse() { + return slightlyWorse; + } + + /** + * 设置 + * @param slightlyWorse + */ + public void setSlightlyWorse(String slightlyWorse) { + this.slightlyWorse = slightlyWorse; + } + + /** + * 获取 + * @return obviouslyWorse + */ + public String getObviouslyWorse() { + return obviouslyWorse; + } + + /** + * 设置 + * @param obviouslyWorse + */ + public void setObviouslyWorse(String obviouslyWorse) { + this.obviouslyWorse = obviouslyWorse; + } + + @Override + public String toString() { + return "ENSOEventRateEntity{id = " + id + ", type = " + type + ", zone = " + zone + ", event = " + event + ", eventEn = " + eventEn + ", obviouslyBetter = " + obviouslyBetter + ", slightlyBetter = " + slightlyBetter + ", unchanged = " + unchanged + ", slightlyWorse = " + slightlyWorse + ", obviouslyWorse = " + obviouslyWorse + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactCountryEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactCountryEntity.java similarity index 96% rename from ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactCountryEntity.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactCountryEntity.java index dbe33e98b..acac170e5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactCountryEntity.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactCountryEntity.java @@ -4,7 +4,7 @@ package com.ruoyi.system.domain_yada.entity; * ENSO事件影响监测地理g植被异常变化分布及VAI * @author Mr.C */ -public class ESNOImpactCountryEntity { +public class ENSOImpactCountryEntity { private Integer id; private String type; @@ -19,10 +19,10 @@ public class ESNOImpactCountryEntity { private String obviouslyWorse; - public ESNOImpactCountryEntity() { + public ENSOImpactCountryEntity() { } - public ESNOImpactCountryEntity(Integer id, String type, String year, String country, String countryEn, String vai, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { + public ENSOImpactCountryEntity(Integer id, String type, String year, String country, String countryEn, String vai, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { this.id = id; this.type = type; this.year = year; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactSubzoneEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactSubzoneEntity.java similarity index 96% rename from ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactSubzoneEntity.java rename to ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactSubzoneEntity.java index 911f5e1ab..08126f1ac 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ESNOImpactSubzoneEntity.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOImpactSubzoneEntity.java @@ -4,7 +4,7 @@ package com.ruoyi.system.domain_yada.entity; * ENSO事件影响监测地理亚区植被异常变化分布及VAI * @author Mr.C */ -public class ESNOImpactSubzoneEntity { +public class ENSOImpactSubzoneEntity { private Integer id; private String type; @@ -19,10 +19,10 @@ public class ESNOImpactSubzoneEntity { private String obviouslyWorse; - public ESNOImpactSubzoneEntity() { + public ENSOImpactSubzoneEntity() { } - public ESNOImpactSubzoneEntity(Integer id, String type, String year, String region, String regionEn, String vai, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { + public ENSOImpactSubzoneEntity(Integer id, String type, String year, String region, String regionEn, String vai, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { this.id = id; this.type = type; this.year = year; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOMonthEventEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOMonthEventEntity.java new file mode 100644 index 000000000..069b9b024 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOMonthEventEntity.java @@ -0,0 +1,131 @@ +package com.ruoyi.system.domain_yada.entity; + +/** + * 逐月时间时间序列 + * @author Mr.C + */ +public class ENSOMonthEventEntity { + private Integer id; + + private String type; + + private String year; + + private String zone; + + private String month; + + private String value; + + public ENSOMonthEventEntity() { + } + + public ENSOMonthEventEntity(Integer id, String type, String year, String zone, String month, String value) { + this.id = id; + this.type = type; + this.year = year; + this.zone = zone; + this.month = month; + this.value = value; + } + + /** + * 获取 + * @return id + */ + public Integer getId() { + return id; + } + + /** + * 设置 + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取 + * @return type + */ + public String getType() { + return type; + } + + /** + * 设置 + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取 + * @return year + */ + public String getYear() { + return year; + } + + /** + * 设置 + * @param year + */ + public void setYear(String year) { + this.year = year; + } + + /** + * 获取 + * @return zone + */ + public String getZone() { + return zone; + } + + /** + * 设置 + * @param zone + */ + public void setZone(String zone) { + this.zone = zone; + } + + /** + * 获取 + * @return month + */ + public String getMonth() { + return month; + } + + /** + * 设置 + * @param month + */ + public void setMonth(String month) { + this.month = month; + } + + /** + * 获取 + * @return value + */ + public String getValue() { + return value; + } + + /** + * 设置 + * @param value + */ + public void setValue(String value) { + this.value = value; + } + + public String toString() { + return "ENSOMonthEventEntity{id = " + id + ", type = " + type + ", year = " + year + ", zone = " + zone + ", month = " + month + ", value = " + value + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearEventCorrespondingEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearEventCorrespondingEntity.java new file mode 100644 index 000000000..1192a1834 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearEventCorrespondingEntity.java @@ -0,0 +1,94 @@ +package com.ruoyi.system.domain_yada.entity; + +/** + * 年份与ENSO事件类型对应关系 + * @author Mr.C + */ +public class ENSOYearEventCorrespondingEntity { + private Integer id; + + private String year; + + private String event; + + private String eventEn; + + + public ENSOYearEventCorrespondingEntity() { + } + + public ENSOYearEventCorrespondingEntity(Integer id, String year, String event, String eventEn) { + this.id = id; + this.year = year; + this.event = event; + this.eventEn = eventEn; + } + + /** + * 获取 + * @return id + */ + public Integer getId() { + return id; + } + + /** + * 设置 + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取 + * @return year + */ + public String getYear() { + return year; + } + + /** + * 设置 + * @param year + */ + public void setYear(String year) { + this.year = year; + } + + /** + * 获取 + * @return event + */ + public String getEvent() { + return event; + } + + /** + * 设置 + * @param event + */ + public void setEvent(String event) { + this.event = event; + } + + /** + * 获取 + * @return eventEn + */ + public String getEventEn() { + return eventEn; + } + + /** + * 设置 + * @param eventEn + */ + public void setEventEn(String eventEn) { + this.eventEn = eventEn; + } + + public String toString() { + return "ENSOYearEventCorrespondingEntity{id = " + id + ", year = " + year + ", event = " + event + ", eventEn = " + eventEn + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearUnusualRateEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearUnusualRateEntity.java new file mode 100644 index 000000000..43152de9d --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ENSOYearUnusualRateEntity.java @@ -0,0 +1,191 @@ +package com.ruoyi.system.domain_yada.entity; + +/** + * 特定年份异常占比 + * @author Mr.C + */ +public class ENSOYearUnusualRateEntity { + + private Integer id; + + private String year; + + private String zone; + + private String type; + + private String obviouslyBetter; + + private String slightlyBetter; + + private String unchanged; + + private String slightlyWorse; + + private String obviouslyWorse; + + + public ENSOYearUnusualRateEntity() { + } + + public ENSOYearUnusualRateEntity(Integer id, String year, String zone, String type, String obviouslyBetter, String slightlyBetter, String unchanged, String slightlyWorse, String obviouslyWorse) { + this.id = id; + this.year = year; + this.zone = zone; + this.type = type; + this.obviouslyBetter = obviouslyBetter; + this.slightlyBetter = slightlyBetter; + this.unchanged = unchanged; + this.slightlyWorse = slightlyWorse; + this.obviouslyWorse = obviouslyWorse; + } + + /** + * 获取 + * @return id + */ + public Integer getId() { + return id; + } + + /** + * 设置 + * @param id + */ + public void setId(Integer id) { + this.id = id; + } + + /** + * 获取 + * @return year + */ + public String getYear() { + return year; + } + + /** + * 设置 + * @param year + */ + public void setYear(String year) { + this.year = year; + } + + /** + * 获取 + * @return zone + */ + public String getZone() { + return zone; + } + + /** + * 设置 + * @param zone + */ + public void setZone(String zone) { + this.zone = zone; + } + + /** + * 获取 + * @return type + */ + public String getType() { + return type; + } + + /** + * 设置 + * @param type + */ + public void setType(String type) { + this.type = type; + } + + /** + * 获取 + * @return obviouslyBetter + */ + public String getObviouslyBetter() { + return obviouslyBetter; + } + + /** + * 设置 + * @param obviouslyBetter + */ + public void setObviouslyBetter(String obviouslyBetter) { + this.obviouslyBetter = obviouslyBetter; + } + + /** + * 获取 + * @return slightlyBetter + */ + public String getSlightlyBetter() { + return slightlyBetter; + } + + /** + * 设置 + * @param slightlyBetter + */ + public void setSlightlyBetter(String slightlyBetter) { + this.slightlyBetter = slightlyBetter; + } + + /** + * 获取 + * @return unchanged + */ + public String getUnchanged() { + return unchanged; + } + + /** + * 设置 + * @param unchanged + */ + public void setUnchanged(String unchanged) { + this.unchanged = unchanged; + } + + /** + * 获取 + * @return slightlyWorse + */ + public String getSlightlyWorse() { + return slightlyWorse; + } + + /** + * 设置 + * @param slightlyWorse + */ + public void setSlightlyWorse(String slightlyWorse) { + this.slightlyWorse = slightlyWorse; + } + + /** + * 获取 + * @return obviouslyWorse + */ + public String getObviouslyWorse() { + return obviouslyWorse; + } + + /** + * 设置 + * @param obviouslyWorse + */ + public void setObviouslyWorse(String obviouslyWorse) { + this.obviouslyWorse = obviouslyWorse; + } + + @Override + public String toString() { + return "ENSOYearUnusualRateEntity{id = " + id + ", year = " + year + ", zone = " + zone + ", type = " + type + ", obviouslyBetter = " + obviouslyBetter + ", slightlyBetter = " + slightlyBetter + ", unchanged = " + unchanged + ", slightlyWorse = " + slightlyWorse + ", obviouslyWorse = " + obviouslyWorse + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ProvinceCorrespondingEntity.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ProvinceCorrespondingEntity.java index 5714f6e3a..6affdb86f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ProvinceCorrespondingEntity.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/entity/ProvinceCorrespondingEntity.java @@ -1,5 +1,9 @@ package com.ruoyi.system.domain_yada.entity; +/** + * 柬埔寨各省对应关系 + * @author Mr.C + */ public class ProvinceCorrespondingEntity { private Integer id; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/vo/ENSOEventAnalysisVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/vo/ENSOEventAnalysisVo.java new file mode 100644 index 000000000..26bcd15ea --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain_yada/vo/ENSOEventAnalysisVo.java @@ -0,0 +1,93 @@ +package com.ruoyi.system.domain_yada.vo; + +import java.util.List; + +/** + * 事件异常分析 + * @author Mr.C + */ +public class ENSOEventAnalysisVo { + private PmKeyValueVo elninoEp; + private PmKeyValueVo elninoCp; + private PmKeyValueVo laninaEp; + private PmKeyValueVo laninaCp; + + public ENSOEventAnalysisVo() { + } + + public ENSOEventAnalysisVo(PmKeyValueVo elninoEp, PmKeyValueVo elninoCp, PmKeyValueVo laninaEp, PmKeyValueVo laninaCp) { + this.elninoEp = elninoEp; + this.elninoCp = elninoCp; + this.laninaEp = laninaEp; + this.laninaCp = laninaCp; + } + + /** + * 获取 + * @return elninoEp + */ + public PmKeyValueVo getElninoEp() { + return elninoEp; + } + + /** + * 设置 + * @param elninoEp + */ + public void setElninoEp(PmKeyValueVo elninoEp) { + this.elninoEp = elninoEp; + } + + /** + * 获取 + * @return elninoCp + */ + public PmKeyValueVo getElninoCp() { + return elninoCp; + } + + /** + * 设置 + * @param elninoCp + */ + public void setElninoCp(PmKeyValueVo elninoCp) { + this.elninoCp = elninoCp; + } + + /** + * 获取 + * @return laninaEp + */ + public PmKeyValueVo getLaninaEp() { + return laninaEp; + } + + /** + * 设置 + * @param laninaEp + */ + public void setLaninaEp(PmKeyValueVo laninaEp) { + this.laninaEp = laninaEp; + } + + /** + * 获取 + * @return laninaCp + */ + public PmKeyValueVo getLaninaCp() { + return laninaCp; + } + + /** + * 设置 + * @param laninaCp + */ + public void setLaninaCp(PmKeyValueVo laninaCp) { + this.laninaCp = laninaCp; + } + + @Override + public String toString() { + return "ENSOEventAnalysisVo{elninoEp = " + elninoEp + ", elninoCp = " + elninoCp + ", laninaEp = " + laninaEp + ", laninaCp = " + laninaCp + "}"; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ESNOImpactMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ENSOImpactMapper.java similarity index 50% rename from ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ESNOImpactMapper.java rename to ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ENSOImpactMapper.java index 922b14210..79248e6f0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ESNOImpactMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper_yada/ENSOImpactMapper.java @@ -1,5 +1,6 @@ package com.ruoyi.system.mapper_yada; +import com.ruoyi.system.domain_yada.entity.*; import com.ruoyi.system.domain_yada.vo.ESNOImpactCountryVaiVo; import com.ruoyi.system.domain_yada.vo.ESNOImpactSubzoneLineVo; import com.ruoyi.system.domain_yada.vo.ESNOImpactSubzoneVaiVo; @@ -13,7 +14,7 @@ import java.util.List; * * @author Mr.C */ -public interface ESNOImpactMapper { +public interface ENSOImpactMapper { /** * 各地理亚区植被异常分布 @@ -61,4 +62,63 @@ public interface ESNOImpactMapper { @Param("region") String region, @Param("start") String start, @Param("end") String end); + + /** + * 年份与ENSO事件对应关系 + * @param year + * @return + */ + ENSOYearEventCorrespondingEntity ensoYearEventCorresponding(@Param("year") String year); + + /** + * ENSO事件与年份对应关系 + * @param event + * @return + */ + List ensoEventYearCorresponding(@Param("event") String event); + + + /** + * 四类ENSO事件空间分布统计 + * @param event + * @param zone + * @param type + * @return + */ + ENSOEventRateEntity ensoEventRate(@Param("type") String type, + @Param("zone") String zone, + @Param("event") String event); + + /** + * 特定年份异常占比 + * @param year + * @param zone + * @param type + * @return + */ + ENSOYearUnusualRateEntity ensoYearUnusualRate(@Param("year") String year, + @Param("zone") String zone, + @Param("type") String type); + + /** + * 逐月时间事件序列 + * @param type + * @param zone + * @return + */ + List ensoMonthEvent(@Param("type") String type, + @Param("zone") String zone); + + + /** + * 事件异常分析 + * @param type + * @param zone + * @param year + * @return + */ + List ensoEventAnalysis(@Param("type") String type, + @Param("zone") String zone, + @Param("year") List year); } + diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ENSOImpactService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ENSOImpactService.java new file mode 100644 index 000000000..7ef724b9e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ENSOImpactService.java @@ -0,0 +1,88 @@ +package com.ruoyi.system.service_yada; + +import com.ruoyi.system.domain_yada.entity.ENSOEventAnalysisEntity; +import com.ruoyi.system.domain_yada.entity.ENSOEventRateEntity; +import com.ruoyi.system.domain_yada.entity.ENSOMonthEventEntity; +import com.ruoyi.system.domain_yada.entity.ENSOYearUnusualRateEntity; +import com.ruoyi.system.domain_yada.vo.*; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * ENSO事件影响监测 + * @author Mr.C + */ +public interface ENSOImpactService { + + /** + * 各地理亚区植被异常分布 + * @param type + * @param year + * @param region + * @return + */ + ESNOImpactSubzoneVo subzonePie(String type, String year, String region); + + + /** + * 各地理亚区VAI + * @param type + * @param year + * @return + */ + PmKeyValueEnVo subzoneVai(String type,String year); + + /** + * 各国VAI + * @param type + * @param year + * @param region + * @return + */ + PmKeyValueEnVo countryVai(String type,String year,String region); + + /** + * 各地理亚区时间VAI + * @param type + + * @param start + * @param end + * @return + */ + PmKeyValueVo subzoneVaiLine(String type,String region,String start,String end); + + /** + * 四类ENSO事件空间分布统计 + * @param type + * @param zone + * @param year + * @return + */ + ENSOEventRateEntity ensoEventRate(String type,String zone,String year); + + /** + * 特定年份异常占比 + * @param year + * @param zone + * @param type + * @return + */ + ENSOYearUnusualRateEntity ensoYearUnusualRate(String year,String zone,String type); + + /** + * 逐月时间事件序列 + * @param type + * @param zone + * @return + */ + PmKeyValueVo ensoMonthEvent(String type,String zone); + + /** + * 事件异常分析 + * @param type + * @param zone + * @return + */ + ENSOEventAnalysisVo ensoEventAnalysis(String type,String zone); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ESNOImpactService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ESNOImpactService.java deleted file mode 100644 index aec2415b7..000000000 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/ESNOImpactService.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.ruoyi.system.service_yada; - -import com.ruoyi.system.domain_yada.vo.*; -import org.apache.ibatis.annotations.Param; - -/** - * ENSO事件影响监测 - * @author Mr.C - */ -public interface ESNOImpactService { - - /** - * 各地理亚区植被异常分布 - * @param type - * @param year - * @param region - * @return - */ - ESNOImpactSubzoneVo subzonePie(String type, String year, String region); - - - /** - * 各地理亚区VAI - * @param type - * @param year - * @return - */ - PmKeyValueEnVo subzoneVai(String type,String year); - - /** - * 各国VAI - * @param type - * @param year - * @param region - * @return - */ - PmKeyValueEnVo countryVai(String type,String year,String region); - - /** - * 各地理亚区时间VAI - * @param type - - * @param start - * @param end - * @return - */ - PmKeyValueVo subzoneVaiLine(String type,String region,String start,String end); -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ENSOImpactImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ENSOImpactImpl.java new file mode 100644 index 000000000..357b9de5e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ENSOImpactImpl.java @@ -0,0 +1,134 @@ +package com.ruoyi.system.service_yada.impl; + +import com.ruoyi.system.domain_yada.entity.*; +import com.ruoyi.system.domain_yada.vo.*; +import com.ruoyi.system.mapper_yada.ENSOImpactMapper; +import com.ruoyi.system.mapper_yada.MonitorMapper; +import com.ruoyi.system.service_yada.ENSOImpactService; +import org.apache.ibatis.ognl.ASTList; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +/** + * ENSO事件影响监测 + * @author Mr.C + */ +@Service +public class ENSOImpactImpl implements ENSOImpactService { + @Resource + private ENSOImpactMapper ensoImpactMapper; + @Resource + private MonitorMapper monitorMapper; + + + @Override + public ESNOImpactSubzoneVo subzonePie(String type, String year, String region) { + return ensoImpactMapper.subzonePie(type,year,region); + } + + @Override + public PmKeyValueEnVo subzoneVai(String type, String year) { + List list = ensoImpactMapper.subzoneVai(type, year); + List key = new ArrayList<>(); + List keyEn = new ArrayList<>(); + List value = new ArrayList<>(); + list.forEach(v->{ + key.add(v.getRegion()); + keyEn.add(v.getRegionEn()); + value.add(Double.valueOf(v.getVai())); + }); + return new PmKeyValueEnVo(key.subList(0,7),keyEn.subList(0,7),value.subList(0,7)); + } + + @Override + public PmKeyValueEnVo countryVai(String type, String year, String region) { + List list = monitorMapper.countryCorresponding(region); + List country = new ArrayList<>(); + list.forEach(v->country.add(v.getCountry())); + List key = new ArrayList<>(); + List keyEn = new ArrayList<>(); + List value = new ArrayList<>(); + List lists = ensoImpactMapper.countryVai(type, year, country); + lists.forEach(v->{ + key.add(v.getCountry()); + keyEn.add(v.getCountryEn()); + value.add(Double.valueOf(v.getVai())); + }); + return new PmKeyValueEnVo(key,keyEn,value); + } + + @Override + public PmKeyValueVo subzoneVaiLine(String type,String region, String start, String end) { + List list = ensoImpactMapper.subzoneVaiLine(type, region,start, end); + list.sort(Comparator.comparing(ESNOImpactSubzoneLineVo::getYear)); + List key = new ArrayList<>(); + List value = new ArrayList<>(); + list.forEach(v->{ + key.add(v.getYear()); + value.add(Double.valueOf(v.getVai())); + }); + return new PmKeyValueVo(key,value); + } + + @Override + public ENSOEventRateEntity ensoEventRate(String type, String zone, String year) { + String event = ensoImpactMapper.ensoYearEventCorresponding(year).getEvent(); + return ensoImpactMapper.ensoEventRate(type, zone, event); + } + + @Override + public ENSOYearUnusualRateEntity ensoYearUnusualRate(String year, String zone, String type) { + return ensoImpactMapper.ensoYearUnusualRate(year, zone, type); + } + + @Override + public PmKeyValueVo ensoMonthEvent(String type, String zone) { + List list = ensoImpactMapper.ensoMonthEvent(type, zone); + List collect = list.stream() + .sorted(Comparator.comparing((ENSOMonthEventEntity e)-> Integer.valueOf(e.getYear())) + .thenComparing((ENSOMonthEventEntity e)-> Integer.valueOf(e.getMonth()))) + .collect(Collectors.toList()); + List key = new ArrayList<>(); + List value = new ArrayList<>(); + collect.forEach(v->{ + if("1".equals(v.getMonth())){ + key.add(v.getYear()+"-"+v.getMonth()); + }else { + key.add(v.getMonth()); + } + value.add(Double.valueOf(v.getValue())); + }); + return new PmKeyValueVo(key,value); + } + + @Override + public ENSOEventAnalysisVo ensoEventAnalysis(String type, String zone) { + List events = Arrays.asList("厄尔尼诺东部型","厄尔尼诺中部型","拉尼娜东部型","拉尼娜中部型"); + List vo = new ArrayList<>(); + events.forEach(v->{ + List list = ensoImpactMapper.ensoEventYearCorresponding(v); + List year = new ArrayList<>(); + list.forEach(e-> year.add(e.getYear())); + List ensoEventAnalysisEntities = ensoImpactMapper.ensoEventAnalysis(type, zone, year); + List key = new ArrayList<>(); + List value = new ArrayList<>(); + ensoEventAnalysisEntities.forEach(k->{ + key.add(k.getYear()); + value.add(Double.valueOf(k.getValue())); + }); + vo.add(new PmKeyValueVo(key,value)); + }); + ENSOEventAnalysisVo ensoEventAnalysisVo = new ENSOEventAnalysisVo(); + ensoEventAnalysisVo.setElninoEp(vo.get(0)); + ensoEventAnalysisVo.setElninoCp(vo.get(1)); + ensoEventAnalysisVo.setLaninaEp(vo.get(2)); + ensoEventAnalysisVo.setLaninaCp(vo.get(3)); + return ensoEventAnalysisVo; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ESNOImpactImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ESNOImpactImpl.java deleted file mode 100644 index 30bd8ee90..000000000 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service_yada/impl/ESNOImpactImpl.java +++ /dev/null @@ -1,75 +0,0 @@ -package com.ruoyi.system.service_yada.impl; - -import com.ruoyi.system.domain_yada.entity.MonitorCountryCorrespondingEntity; -import com.ruoyi.system.domain_yada.vo.*; -import com.ruoyi.system.mapper_yada.ESNOImpactMapper; -import com.ruoyi.system.mapper_yada.MonitorMapper; -import com.ruoyi.system.service_yada.ESNOImpactService; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; - -/** - * ENSO事件影响监测 - * @author Mr.C - */ -@Service -public class ESNOImpactImpl implements ESNOImpactService { - @Resource - private ESNOImpactMapper esnoImpactMapper; - @Resource - private MonitorMapper monitorMapper; - - - @Override - public ESNOImpactSubzoneVo subzonePie(String type, String year, String region) { - return esnoImpactMapper.subzonePie(type,year,region); - } - - @Override - public PmKeyValueEnVo subzoneVai(String type, String year) { - List list = esnoImpactMapper.subzoneVai(type, year); - List key = new ArrayList<>(); - List keyEn = new ArrayList<>(); - List value = new ArrayList<>(); - list.forEach(v->{ - key.add(v.getRegion()); - keyEn.add(v.getRegionEn()); - value.add(Double.valueOf(v.getVai())); - }); - return new PmKeyValueEnVo(key.subList(0,7),keyEn.subList(0,7),value.subList(0,7)); - } - - @Override - public PmKeyValueEnVo countryVai(String type, String year, String region) { - List list = monitorMapper.countryCorresponding(region); - List country = new ArrayList<>(); - list.forEach(v->country.add(v.getCountry())); - List key = new ArrayList<>(); - List keyEn = new ArrayList<>(); - List value = new ArrayList<>(); - List lists = esnoImpactMapper.countryVai(type, year, country); - lists.forEach(v->{ - key.add(v.getCountry()); - keyEn.add(v.getCountryEn()); - value.add(Double.valueOf(v.getVai())); - }); - return new PmKeyValueEnVo(key,keyEn,value); - } - - @Override - public PmKeyValueVo subzoneVaiLine(String type,String region, String start, String end) { - List list = esnoImpactMapper.subzoneVaiLine(type, region,start, end); - list.sort(Comparator.comparing(ESNOImpactSubzoneLineVo::getYear)); - List key = new ArrayList<>(); - List value = new ArrayList<>(); - list.forEach(v->{ - key.add(v.getYear()); - value.add(Double.valueOf(v.getVai())); - }); - return new PmKeyValueVo(key,value); - } -} diff --git a/ruoyi-system/src/main/resources/mapper/system/ENSOImpactMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ENSOImpactMapper.xml new file mode 100644 index 000000000..643e7e60e --- /dev/null +++ b/ruoyi-system/src/main/resources/mapper/system/ENSOImpactMapper.xml @@ -0,0 +1,187 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ruoyi-system/src/main/resources/mapper/system/ESNOImpactMapper.xml b/ruoyi-system/src/main/resources/mapper/system/ESNOImpactMapper.xml deleted file mode 100644 index e29fbf0bc..000000000 --- a/ruoyi-system/src/main/resources/mapper/system/ESNOImpactMapper.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file