From 3ddfa12fbc43e80e99e4959fbac8881eaa8e3ca3 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Mon, 17 Jan 2022 16:22:44 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev_ --- screen-common/src/main/java/com/moral/util/DateUtils.java | 16 + screen-manage/src/main/java/com/moral/api/entity/ServicesScopeDevice.java | 62 ++++ screen-manage/src/main/java/com/moral/api/service/DeviceService.java | 9 screen-api/src/main/java/com/moral/api/service/CityAqiYearlyService.java | 12 screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java | 41 ++ screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java | 1 screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java | 29 + screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java | 20 + screen-api/src/main/java/com/moral/api/controller/AqiController.java | 25 - screen-api/src/main/java/com/moral/api/entity/CityAqiYearly.java | 4 screen-api/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java | 15 + screen-api/src/main/java/com/moral/api/entity/CityAqiMonthly.java | 6 screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml | 15 + screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 286 ++++++++++++++++--- screen-manage/src/main/java/com/moral/api/controller/DeviceController.java | 8 screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java | 16 + screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java | 99 ++++-- screen-api/src/main/java/com/moral/api/service/CityAqiService.java | 11 screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java | 15 + screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java | 4 screen-api/src/main/java/com/moral/api/entity/CityAqi.java | 20 + screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 43 ++- screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java | 16 + screen-api/src/main/java/com/moral/api/service/CityAqiMonthlyService.java | 12 24 files changed, 635 insertions(+), 150 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/AqiController.java b/screen-api/src/main/java/com/moral/api/controller/AqiController.java index 4adb29b..428474f 100644 --- a/screen-api/src/main/java/com/moral/api/controller/AqiController.java +++ b/screen-api/src/main/java/com/moral/api/controller/AqiController.java @@ -270,31 +270,8 @@ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //������������ + List<AirQualityComparisonVO> datas = cityAqiService.queryAirQualityComparison(form); //������������ - ConcentrationAndPercent c = new ConcentrationAndPercent(); - c.setConcentration("5"); - c.setPercent("10%"); - List<AirQualityComparisonVO> datas = new ArrayList<>(); - AirQualityComparisonVO vo1 = new AirQualityComparisonVO(); - vo1.setCityName("XXX"); - vo1.setCompositeIndex(c); - vo1.setPM10(c); - vo1.setPM25(c); - vo1.setSO2(c); - vo1.setNO2(c); - vo1.setCO(c); - vo1.setO3(c); - vo1.setFineDays(c); - vo1.setServerDays(c); - AirQualityComparisonVO vo2 = vo1; - AirQualityComparisonVO vo3 = vo1; - AirQualityComparisonVO vo4 = vo1; - AirQualityComparisonVO vo5 = vo1; - datas.add(vo1); - datas.add(vo2); - datas.add(vo3); - datas.add(vo4); - datas.add(vo5); return ResultMessage.ok(datas); } diff --git a/screen-api/src/main/java/com/moral/api/entity/CityAqi.java b/screen-api/src/main/java/com/moral/api/entity/CityAqi.java index f76c3d5..453ec3e 100644 --- a/screen-api/src/main/java/com/moral/api/entity/CityAqi.java +++ b/screen-api/src/main/java/com/moral/api/entity/CityAqi.java @@ -42,4 +42,24 @@ return null; } + public CityAqi() { + } + + public CityAqi(CityAqiDaily cityAqiDaily) { + this.cityCode = cityAqiDaily.getCityCode(); + this.value = cityAqiDaily.getValue(); + this.time = cityAqiDaily.getTime(); + } + + public CityAqi(CityAqiMonthly cityAqiMonthly) { + this.cityCode = cityAqiMonthly.getCityCode(); + this.value = cityAqiMonthly.getValue(); + this.time = cityAqiMonthly.getTime(); + } + + public CityAqi(CityAqiYearly cityAqiYearly) { + this.cityCode = cityAqiYearly.getCityCode(); + this.value = cityAqiYearly.getValue(); + this.time = cityAqiYearly.getTime(); + } } diff --git a/screen-api/src/main/java/com/moral/api/entity/CityAqiMonthly.java b/screen-api/src/main/java/com/moral/api/entity/CityAqiMonthly.java index 4850e16..e60a07c 100644 --- a/screen-api/src/main/java/com/moral/api/entity/CityAqiMonthly.java +++ b/screen-api/src/main/java/com/moral/api/entity/CityAqiMonthly.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.Date; + import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,7 +18,7 @@ */ @Data @EqualsAndHashCode(callSuper = false) -public class CityAqiMonthly extends Model<CityAqiMonthly> { +public class CityAqiMonthly extends Model<CityAqiMonthly>{ private static final long serialVersionUID = 1L; @@ -28,7 +30,7 @@ /** * ������ */ - private LocalDateTime time; + private Date time; /** * ������ diff --git a/screen-api/src/main/java/com/moral/api/entity/CityAqiYearly.java b/screen-api/src/main/java/com/moral/api/entity/CityAqiYearly.java index c9a1f71..d2d7d73 100644 --- a/screen-api/src/main/java/com/moral/api/entity/CityAqiYearly.java +++ b/screen-api/src/main/java/com/moral/api/entity/CityAqiYearly.java @@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.activerecord.Model; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.Date; + import lombok.Data; import lombok.EqualsAndHashCode; @@ -28,7 +30,7 @@ /** * ������ */ - private LocalDateTime time; + private Date time; /** * ������ diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java index 77dae71..df4aca9 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java +++ b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/AirQualityComparisonForm.java @@ -23,12 +23,12 @@ Integer regionCode; /* - * ������������ 0������������������1������������������2���28������ + * ������������ city������������������province������������������28���28������ * */ String regionType; /* - * ���������������0��������� 1��������� + * ���������������yoy��������� mom��������� * */ String comparisonType; @@ -56,6 +56,16 @@ @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") Date endDate; + /* + * ������������������ + * */ + Date comparisonStartDate; + + /* + * ������������������ + * */ + Date comparisonEndDate; + public boolean valid() { //������������������������������������ if(regionType==null||comparisonType==null) @@ -76,23 +86,36 @@ Date date = DateUtils.getDate(time, "yyyy-MM"); startDate = DateUtils.getFirstDayOfMonth(date); endDate = DateUtils.getLastDayOfMonth(date); - return true; } if(dateType.equals(Constants.YEAR)){ Date date = DateUtils.getDate(time, "yyyy"); startDate = DateUtils.getFirstDayOfYear(date); endDate = DateUtils.getLastDayOfYear(date); - return true; } - if(startDate!=null&&endDate!=null) - return true; + if(startDate==null||endDate==null) + return false; - return false; + calculateComparisonDate(); + + return true; } - public static void main(String[] args) { - + /** + * @Description: ������������������ + * @Param: [startDate, endDate] + * @return: void + * @Author: ��������� + * @Date: 2022/1/14 + */ + private void calculateComparisonDate(){ + if(comparisonType.equals(Constants.MOM)){ + comparisonStartDate = DateUtils.addMonths(startDate,-1); + comparisonEndDate = DateUtils.addMonths(endDate,-1); + }else{ + comparisonStartDate = DateUtils.addMonths(startDate,-12); + comparisonEndDate = DateUtils.addMonths(endDate,-12); + } } } diff --git a/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java b/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java index ab6c46f..a3300f1 100644 --- a/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java +++ b/screen-api/src/main/java/com/moral/api/pojo/vo/cityAQI/AirQualityComparisonVO.java @@ -37,6 +37,10 @@ private ConcentrationAndPercent serverDays; + + + + public String getCityName() { return cityName; } diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java index 30e4af4..2df895a 100644 --- a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java +++ b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java @@ -2,14 +2,13 @@ import com.moral.api.entity.CityAqiDaily; import com.baomidou.mybatisplus.extension.service.IService; +import com.moral.api.entity.SysArea; import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; -import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; -import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; -import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; +import com.moral.api.pojo.form.aqi.*; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; -import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; +import java.util.Date; import java.util.List; import java.util.Map; @@ -24,56 +23,76 @@ public interface CityAqiDailyService extends IService<CityAqiDaily> { /** - * @Description: ������������������������������������������������������ - * @Param: [regionCode] - * @return: com.moral.api.pojo.dto.dataDisplay.PollutionLevelProportionDTO - * @Author: ��������� - * @Date: 2021/11/9 - */ + * @Description: ������������������������������������ + * @Param: [regionCode, startDate, endDate] + * @return: java.util.List<com.moral.api.entity.CityAqiDaily> + * @Author: ��������� + * @Date: 2022/1/17 + */ + List<CityAqiDaily> getCityAqiDailyByRegionCodeAndTime(Integer regionCode, Date startDate, Date endDate); + + /** + * @Description: ������������������������������������������������������ + * @Param: [regionCode] + * @return: com.moral.api.pojo.dto.dataDisplay.PollutionLevelProportionDTO + * @Author: ��������� + * @Date: 2021/11/9 + */ PieChartOfPollutionLevelVO queryPieChartOfPollutionLevels(ChartOfPollutionLevelForm form); /** - * @Description: ������������������������������������������������������������ - * @Param: [form] - * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel> - * @Author: ��������� - * @Date: 2021/11/22 - */ + * @Description: ������������������������������������������������������������ + * @Param: [form] + * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel> + * @Author: ��������� + * @Date: 2021/11/22 + */ List<MonthlyPollutionLevel> queryBarChartOfPollutionLevels(ChartOfPollutionLevelForm form); /** - *@Description: ������������������������������������������ - *@Param: [map] - *@return: java.util.Map<java.lang.String,java.lang.Object> - *@Author: lizijie - *@Date: 2021/11/23 14:42 + * @Description: ������������������������������������������ + * @Param: [map] + * @return: java.util.Map<java.lang.String , java.lang.Object> + * @Author: lizijie + * @Date: 2021/11/23 14:42 **/ - Map<String,Map<String,Object>> oneYearsData(Map map); + Map<String, Map<String, Object>> oneYearsData(Map map); /** - * @Description: ��������������������������������������������� - * @Param: [AreaPollutionLevelForm] - * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> - * @Author: ��������� - * @Date: 2021/12/30 - */ + * @Description: ��������������������������������������������� + * @Param: [AreaPollutionLevelForm] + * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> + * @Author: ��������� + * @Date: 2021/12/30 + */ List<CityPollutionLevel> queryAreaPollutionLevel(AreaPollutionLevelForm form); /** - * @Description: ������28������������������ - * @Param: [form] - * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> - * @Author: ��������� - * @Date: 2021/12/31 - */ + * @Description: ������28������������������ + * @Param: [form] + * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> + * @Author: ��������� + * @Date: 2021/12/31 + */ List<CityPollutionLevel> querySpecialCitiesPollutionLevel(SpecialCitiesPollutionLevelForm form); /** - * @Description: ������������������������������������������ - * @Param: [from] - * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> - * @Author: ��������� - * @Date: 2022/1/7 - */ + * @Description: ������������������������������������������ + * @Param: [from] + * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel> + * @Author: ��������� + * @Date: 2022/1/7 + */ List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form); + + /** + * @Description: ������������������������������������������������������ + * @Param: [area, startDate, endDate] + * @return: com.moral.api.pojo.dto.cityAQI.CityPollutionLevel + * @Author: ��������� + * @Date: 2022/1/17 + */ + CityPollutionLevel calculateDaysByTimeAndSysArea(SysArea area, Date startDate, Date endDate); + + } diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiMonthlyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiMonthlyService.java index c699943..83688d4 100644 --- a/screen-api/src/main/java/com/moral/api/service/CityAqiMonthlyService.java +++ b/screen-api/src/main/java/com/moral/api/service/CityAqiMonthlyService.java @@ -3,6 +3,9 @@ import com.moral.api.entity.CityAqiMonthly; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Date; +import java.util.List; + /** * <p> * ������aqi������������ ��������� @@ -13,4 +16,13 @@ */ public interface CityAqiMonthlyService extends IService<CityAqiMonthly> { + /** + * @Description: ������������������������������������ + * @Param: [regionCode, startDate, endDate] + * @return: java.util.List<com.moral.api.entity.CityAqiMonthly> + * @Author: ��������� + * @Date: 2022/1/17 + */ + List<CityAqiMonthly> getCityAqiMonthByRegionCodeAndTime(Integer regionCode, Date startDate,Date endDate); + } diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiService.java index b840c1e..7006379 100644 --- a/screen-api/src/main/java/com/moral/api/service/CityAqiService.java +++ b/screen-api/src/main/java/com/moral/api/service/CityAqiService.java @@ -5,6 +5,8 @@ import com.moral.api.entity.CityAqi; import com.baomidou.mybatisplus.extension.service.IService; +import com.moral.api.pojo.form.aqi.AirQualityComparisonForm; +import com.moral.api.pojo.vo.cityAQI.AirQualityComparisonVO; /** * <p> @@ -52,4 +54,13 @@ //������������������������������ List<Map<String, Object>> rankingDetails(Map<String, Object> params); + + /** + * @Description: ������������������������������������ + * @Param: [form] + * @return: void + * @Author: ��������� + * @Date: 2022/1/14 + */ + List<AirQualityComparisonVO> queryAirQualityComparison(AirQualityComparisonForm form); } diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiYearlyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiYearlyService.java index 799cd21..bcd1cba 100644 --- a/screen-api/src/main/java/com/moral/api/service/CityAqiYearlyService.java +++ b/screen-api/src/main/java/com/moral/api/service/CityAqiYearlyService.java @@ -3,6 +3,9 @@ import com.moral.api.entity.CityAqiYearly; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Date; +import java.util.List; + /** * <p> * ������aqi������������ ��������� @@ -12,5 +15,12 @@ * @since 2021-11-05 */ public interface CityAqiYearlyService extends IService<CityAqiYearly> { - + /** + * @Description: ������������������������������������ + * @Param: [regionCode, startDate, endDate] + * @return: java.util.List<com.moral.api.entity.CityAqiYearly> + * @Author: ��������� + * @Date: 2022/1/17 + */ + List<CityAqiYearly> getCityAqiYearlyByRegionCodeAndTime(Integer regionCode, Date startDate, Date endDate); } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java index a2cf89e..b5b1328 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java @@ -10,16 +10,16 @@ import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel; import com.moral.api.pojo.dto.cityAQI.PollutionDaysAndProportion; -import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm; -import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm; -import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm; +import com.moral.api.pojo.form.aqi.*; import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO; -import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm; import com.moral.api.service.CityAqiDailyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.moral.api.service.CityAqiMonthlyService; +import com.moral.api.service.CityAqiYearlyService; import com.moral.api.service.SysAreaService; import com.moral.constant.Constants; import com.moral.util.AQIUtils; +import com.moral.util.ComprehensiveIndexUtils; import com.moral.util.DateUtils; import com.moral.util.MathUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -46,6 +46,14 @@ SysAreaService sysAreaService; @Autowired SpecialCitiesProperties specialCitiesProperties; + + @Override + public List<CityAqiDaily> getCityAqiDailyByRegionCodeAndTime(Integer regionCode, Date startDate, Date endDate) { + QueryWrapper<CityAqiDaily> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("city_code",regionCode); + queryWrapper.between("time",startDate,endDate); + return cityAqiDailyMapper.selectList(queryWrapper); + } @Override public PieChartOfPollutionLevelVO queryPieChartOfPollutionLevels(ChartOfPollutionLevelForm form) { @@ -301,7 +309,7 @@ List<CityPollutionLevel> datas = new ArrayList<>(); //��������������������� ������������ for (SysArea area : allAreas) { - CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(area,startDate,endDate); + CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndSysArea(area, startDate, endDate); datas.add(cityPollutionLevel); } return datas; @@ -317,7 +325,7 @@ List<CityPollutionLevel> datas = new ArrayList<>(); //��������������������� ������������ for (SysArea area : areas) { - CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(area,startDate,endDate); + CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndSysArea(area, startDate, endDate); datas.add(cityPollutionLevel); } return datas; @@ -335,20 +343,22 @@ List<CityPollutionLevel> datas = new ArrayList<>(); //��������������������� ������������ for (SysArea city : allCities) { - CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(city,startDate,endDate); + CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndSysArea(city, startDate, endDate); datas.add(cityPollutionLevel); } return datas; } + /** - * @Description: ��������������������������������������������������������� - * @Param: [area, startDate, endDate] - * @return: com.moral.api.pojo.dto.cityAQI.CityPollutionLevel - * @Author: ��������� - * @Date: 2021/12/31 - */ - private CityPollutionLevel calculateDaysByTimeAndCityCode(SysArea area, Date startDate, Date endDate) { + * @Description: ��������������������������������������������������������� + * @Param: [area, startDate, endDate] + * @return: com.moral.api.pojo.dto.cityAQI.CityPollutionLevel + * @Author: ��������� + * @Date: 2021/12/31 + */ + @Override + public CityPollutionLevel calculateDaysByTimeAndSysArea(SysArea area, Date startDate, Date endDate) { //������������ QueryWrapper<CityAqiDaily> wrapper = new QueryWrapper<>(); wrapper.eq("city_code", area.getAreaCode()); @@ -392,4 +402,9 @@ return cityPollutionLevel; } + + + + } + diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java index e72937b..e0be3d1 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiMonthlyServiceImpl.java @@ -1,10 +1,15 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.CityAqiMonthly; import com.moral.api.mapper.CityAqiMonthlyMapper; import com.moral.api.service.CityAqiMonthlyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; /** * <p> @@ -17,4 +22,14 @@ @Service public class CityAqiMonthlyServiceImpl extends ServiceImpl<CityAqiMonthlyMapper, CityAqiMonthly> implements CityAqiMonthlyService { + @Autowired + CityAqiMonthlyMapper cityAqiMonthlyMapper; + + @Override + public List<CityAqiMonthly> getCityAqiMonthByRegionCodeAndTime(Integer regionCode, Date startDate, Date endDate) { + QueryWrapper<CityAqiMonthly> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("city_code",regionCode); + queryWrapper.between("time",startDate,endDate); + return cityAqiMonthlyMapper.selectList(queryWrapper); + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java index 746fcbb..be28219 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java @@ -13,6 +13,10 @@ import com.moral.api.entity.SysArea; import com.moral.api.mapper.CityAqiMapper; import com.moral.api.mapper.ForecastMapper; +import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel; +import com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent; +import com.moral.api.pojo.form.aqi.AirQualityComparisonForm; +import com.moral.api.pojo.vo.cityAQI.AirQualityComparisonVO; import com.moral.api.service.CityAqiDailyService; import com.moral.api.service.CityAqiMonthlyService; import com.moral.api.service.CityAqiService; @@ -817,64 +821,11 @@ return result; } - /** - * @Description: ������6������������ - * @Param: [cityAqiList] - * @return: java.util.Map<java.lang.String, java.lang.Double> - * ���������key���sensorCode,value������ - * @Author: ��������� - * @Date: 2021/11/2 - */ - private Map<String, Object> calculate6ParamAvg(List<CityAqi> cityAqiList) { - Double co = calculateSensorAvg(cityAqiList, "CO"); - Double pm2_5 = calculateSensorAvg(cityAqiList, "PM2_5"); - Double pm10 = calculateSensorAvg(cityAqiList, "PM10"); - Double so2 = calculateSensorAvg(cityAqiList, "SO2"); - Double no2 = calculateSensorAvg(cityAqiList, "NO2"); - Double o3 = calculateSensorAvg(cityAqiList, "O3"); - Map<String, Object> result = new HashMap<>(); - result.put(Constants.SENSOR_CODE_CO, co); - result.put(Constants.SENSOR_CODE_NO2, no2); - result.put(Constants.SENSOR_CODE_SO2, so2); - result.put(Constants.SENSOR_CODE_O3, o3); - result.put(Constants.SENSOR_CODE_PM25, pm2_5); - result.put(Constants.SENSOR_CODE_PM10, pm10); - return result; - } - - /** - * @Description: ������������������������ - * @Param: [cityAqiList, sensor] - * ���sensor��������������������������� - * @return: java.lang.Double - * @Author: ��������� - * @Date: 2021/11/2 - */ - private Double calculateSensorAvg(List<CityAqi> cityAqiList, String sensor) { - Double sum = 0d; - int num = 0; - for (CityAqi cityAqi : cityAqiList) { - String value = cityAqi.getValue(); - if (value == null) - continue; - Map<String, Object> valueMap = JSON.parseObject(value, Map.class); - Object sensorValueObject = valueMap.get(sensor); - if (sensorValueObject == null) - continue; - Double sensorValue = Double.valueOf(sensorValueObject.toString()); - sum = MathUtils.add(sum, sensorValue); - num++; - } - if (num == 0) - return null; - Double avg = MathUtils.division(sum, num, 2); - return avg; - } /** * @Description: ������������������������ * @Param: [regionCode] - * @return: java.util.Map<java.lang.String, java.lang.Object> + * @return: java.util.Map<java.lang.String , java.lang.Object> * @Author: ��������� * @Date: 2021/10/28 */ @@ -1000,6 +951,161 @@ return result; } + @Override + public List<AirQualityComparisonVO> queryAirQualityComparison(AirQualityComparisonForm form) { + //������ + Integer regionCode = form.getRegionCode(); + String regionType = form.getRegionType(); + Date startDate = form.getStartDate(); + Date endDate = form.getEndDate(); + Date comparisonStartDate = form.getComparisonStartDate(); + Date comparisonEndDate = form.getComparisonEndDate(); + String dateType = form.getDateType(); + //������������/������ + List<SysArea> areas = getSysAreasByRegionType(regionType, regionCode); + if (ObjectUtils.isEmpty(areas)) + return null; + List<AirQualityComparisonVO> vos = new ArrayList<>(); + for (SysArea area : areas) { + //������������������������������������6������������������ + Map<String, Object> data = getDataByTimeTypeAndRegionCode(dateType, startDate, endDate, area.getAreaCode()); + Map<String, Object> comparisonData = getDataByTimeTypeAndRegionCode(dateType, comparisonStartDate, comparisonEndDate, area.getAreaCode()); + if (ObjectUtils.isEmpty(data) || ObjectUtils.isEmpty(comparisonData)) + continue; + //��������������������������������������� + CityPollutionLevel days = cityAqiDailyService.calculateDaysByTimeAndSysArea(area, startDate, endDate); + CityPollutionLevel comparisonDays = cityAqiDailyService.calculateDaysByTimeAndSysArea(area, comparisonStartDate, comparisonEndDate); + int fineDays = days.getExcellentWeatherDays() + days.getGoodWeatherDays(); + int serverDays = days.getSeriousWeatherDays() + days.getServerWeatherDays(); + int comparisonFineDays = comparisonDays.getExcellentWeatherDays() + comparisonDays.getGoodWeatherDays(); + int comparisonServerDays = comparisonDays.getSeriousWeatherDays() + comparisonDays.getServerWeatherDays(); + //������6������������������ + Map<String, ConcentrationAndPercent> sixParamAndComIndexResult = contrastSixParamAndComIndex(data, comparisonData); + //������������������������������������������ + ConcentrationAndPercent fine = contrastDays(fineDays, comparisonFineDays); + ConcentrationAndPercent server = contrastDays(serverDays, comparisonServerDays); + //������������������ + AirQualityComparisonVO vo = new AirQualityComparisonVO(); + vo.setFineDays(fine); + vo.setServerDays(server); + vo.setCO(sixParamAndComIndexResult.get("CO")); + vo.setO3(sixParamAndComIndexResult.get("O3")); + vo.setPM25(sixParamAndComIndexResult.get("PM2_5")); + vo.setPM10(sixParamAndComIndexResult.get("PM10")); + vo.setSO2(sixParamAndComIndexResult.get("SO2")); + vo.setNO2(sixParamAndComIndexResult.get("NO2")); + vo.setCompositeIndex(sixParamAndComIndexResult.get("compositeIndex")); + vo.setCityName(area.getAreaName()); + vos.add(vo); + } + return vos; + } + + /** + * @Description: ������6������������������������������������ + * @Param: [data, comparisonData] + * @return: java.util.Map<java.lang.String , com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent> + * @Author: ��������� + * @Date: 2022/1/17 + */ + private Map<String, ConcentrationAndPercent> contrastSixParamAndComIndex(Map<String, Object> data, Map<String, Object> comparisonData) { + Map<String, ConcentrationAndPercent> result = new HashMap<>(); + result.put("CO", contrastParam(Double.parseDouble(data.get("CO").toString()), Double.parseDouble(comparisonData.get("CO").toString()), "CO")); + result.put("NO2", contrastParam(Double.parseDouble(data.get("NO2").toString()), Double.parseDouble(comparisonData.get("NO2").toString()), "NO2")); + result.put("SO2", contrastParam(Double.parseDouble(data.get("SO2").toString()), Double.parseDouble(comparisonData.get("SO2").toString()), "SO2")); + result.put("O3", contrastParam(Double.parseDouble(data.get("O3").toString()), Double.parseDouble(comparisonData.get("O3").toString()), "O3")); + result.put("PM2_5", contrastParam(Double.parseDouble(data.get("PM2_5").toString()), Double.parseDouble(comparisonData.get("PM2_5").toString()), "PM2_5")); + result.put("PM10", contrastParam(Double.parseDouble(data.get("PM10").toString()), Double.parseDouble(comparisonData.get("PM10").toString()), "PM10")); + result.put("compositeIndex", contrastParam(Double.parseDouble(data.get("compositeIndex").toString()), Double.parseDouble(comparisonData.get("compositeIndex").toString()), "compositeIndex")); + return result; + } + + /** + * @Description: ������6������������������������/��������������������� + * @Param: [data, comparisonData] + * @return: com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent + * @Author: ��������� + * @Date: 2022/1/17 + */ + private ConcentrationAndPercent contrastParam(Double data, Double comparisonData, String sensor) { + double percentD = MathUtils.division(data - comparisonData, comparisonData, 4); + String percent = MathUtils.mul(percentD,100d) + "%"; + ConcentrationAndPercent concentrationAndPercent = new ConcentrationAndPercent(); + concentrationAndPercent.setPercent(percent); + if (sensor.equals("CO")) {//CO��������������������� + Double CO = AmendUtils.sciCal(data, 1); + concentrationAndPercent.setConcentration(CO.toString()); + }else if (sensor.equals("compositeIndex")){ + concentrationAndPercent.setConcentration(data.toString()); + }else{ + Double sensorD = AmendUtils.sciCal(data, 0); + Integer sensorI = new Double(sensorD).intValue(); + concentrationAndPercent.setConcentration(sensorI.toString()); + } + return concentrationAndPercent; + } + + /** + * @Description: ��������������������������������� + * @Param: [days, comparisonDays] + * @return: com.moral.api.pojo.dto.cityAQI.ConcentrationAndPercent + * @Author: ��������� + * @Date: 2022/1/17 + */ + private ConcentrationAndPercent contrastDays(Integer days, Integer comparisonDays) { + ConcentrationAndPercent concentrationAndPercent = new ConcentrationAndPercent(); + concentrationAndPercent.setConcentration(days.toString()); + Integer result = days - comparisonDays; + concentrationAndPercent.setPercent(result.toString() + "���"); + return concentrationAndPercent; + } + + /** + * @Description: ���������������������������������6������������������������������������������������������������������������ + * @Param: [comparisonType, startDate, endDate, regionCode] + * @return: java.util.Map<java.lang.String , java.lang.Object> + * @Author: ��������� + * @Date: 2022/1/17 + */ + private Map<String, Object> getDataByTimeTypeAndRegionCode(String TimeType, Date startDate, Date endDate, Integer regionCode) { + Map<String, Object> data; + if (Constants.MONTH.equals(TimeType) && (!DateUtils.isCurrentMonth(startDate) || !DateUtils.isCurrentYear(startDate))) {//��������������� ��������������� + List<CityAqiMonthly> cityAqis = cityAqiMonthlyService.getCityAqiMonthByRegionCodeAndTime(regionCode, startDate, endDate); + if (ObjectUtils.isEmpty(cityAqis)) + return null; + data = JSON.parseObject(cityAqis.get(0).getValue(), Map.class); + } else if (Constants.YEAR.equals(TimeType) && (!DateUtils.isCurrentYear(startDate))) {//��������������� ��������������� + List<CityAqiYearly> cityAqis = cityAqiYearlyService.getCityAqiYearlyByRegionCodeAndTime(regionCode, startDate, endDate); + if (ObjectUtils.isEmpty(cityAqis)) + return null; + data = JSON.parseObject(cityAqis.get(0).getValue(), Map.class); + } else {//��������������������� + List<CityAqiDaily> cityAqis = cityAqiDailyService.getCityAqiDailyByRegionCodeAndTime(regionCode, startDate, endDate); + if (ObjectUtils.isEmpty(cityAqis)) + return null; + List<CityAqi> newCityAqis = new ArrayList<>(); + List<Map<String, Object>> dailyDataMaps = new ArrayList<>(); + cityAqis.forEach((value) -> { + newCityAqis.add(new CityAqi(value)); + dailyDataMaps.add(JSON.parseObject(value.getValue(), Map.class)); + }); + //������������ + data = calculate6ParamAvg(newCityAqis); + //��������������� + data.put("CO", Double.parseDouble(data.remove(Constants.SENSOR_CODE_CO).toString())); + data.put("NO2", Double.parseDouble(data.remove(Constants.SENSOR_CODE_NO2).toString())); + data.put("SO2", Double.parseDouble(data.remove(Constants.SENSOR_CODE_SO2).toString())); + data.put("O3", Double.parseDouble(data.remove(Constants.SENSOR_CODE_O3).toString())); + data.put("PM2_5", Double.parseDouble(data.remove(Constants.SENSOR_CODE_PM25).toString())); + data.put("PM10", Double.parseDouble(data.remove(Constants.SENSOR_CODE_PM10).toString())); + //������������������ + Double compositeIndex = ComprehensiveIndexUtils.dailyData(data); + data.put("compositeIndex", compositeIndex); + } + return data; + } + + //������������������ private void sortByField(List<Map<String, Object>> list, String sortField) { list.sort((o1, o2) -> { @@ -1030,4 +1136,76 @@ } return result; } + + /** + * @Description: ��������������������������������������������������������� + * @Param: [regionType, regionCode] + * @return: java.util.List<com.moral.api.entity.SysArea> + * @Author: ��������� + * @Date: 2022/1/14 + */ + private List<SysArea> getSysAreasByRegionType(String regionType, Integer regionCode) { + List<SysArea> areas; + if (regionType.equals(Constants.TWENTY_EIGHT_CITIES)) { + SpecialCitiesProperties properties = new SpecialCitiesProperties(); + areas = properties.getTwentyEightCities(); + } else { + areas = sysAreaService.getChildren(regionCode); + } + return areas; + } + + /** + * @Description: ������6������������ + * @Param: [cityAqiList] + * @return: java.util.Map<java.lang.String , java.lang.Double> + * ���������key���sensorCode,value������ + * @Author: ��������� + * @Date: 2021/11/2 + */ + private Map<String, Object> calculate6ParamAvg(List<CityAqi> cityAqiList) { + Double co = calculateSensorAvg(cityAqiList, "CO"); + Double pm2_5 = calculateSensorAvg(cityAqiList, "PM2_5"); + Double pm10 = calculateSensorAvg(cityAqiList, "PM10"); + Double so2 = calculateSensorAvg(cityAqiList, "SO2"); + Double no2 = calculateSensorAvg(cityAqiList, "NO2"); + Double o3 = calculateSensorAvg(cityAqiList, "O3"); + Map<String, Object> result = new HashMap<>(); + result.put(Constants.SENSOR_CODE_CO, co); + result.put(Constants.SENSOR_CODE_NO2, no2); + result.put(Constants.SENSOR_CODE_SO2, so2); + result.put(Constants.SENSOR_CODE_O3, o3); + result.put(Constants.SENSOR_CODE_PM25, pm2_5); + result.put(Constants.SENSOR_CODE_PM10, pm10); + return result; + } + + /** + * @Description: ������������������������ + * @Param: [cityAqiList, sensor] + * ���sensor��������������������������� + * @return: java.lang.Double + * @Author: ��������� + * @Date: 2021/11/2 + */ + private Double calculateSensorAvg(List<CityAqi> cityAqiList, String sensor) { + Double sum = 0d; + int num = 0; + for (CityAqi cityAqi : cityAqiList) { + String value = cityAqi.getValue(); + if (value == null) + continue; + Map<String, Object> valueMap = JSON.parseObject(value, Map.class); + Object sensorValueObject = valueMap.get(sensor); + if (sensorValueObject == null) + continue; + Double sensorValue = Double.valueOf(sensorValueObject.toString()); + sum = MathUtils.add(sum, sensorValue); + num++; + } + if (num == 0) + return null; + Double avg = MathUtils.division(sum, num, 2); + return avg; + } } diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java index 10bd866..10b54c3 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiYearlyServiceImpl.java @@ -1,10 +1,15 @@ package com.moral.api.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.CityAqiYearly; import com.moral.api.mapper.CityAqiYearlyMapper; import com.moral.api.service.CityAqiYearlyService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; /** * <p> @@ -17,4 +22,14 @@ @Service public class CityAqiYearlyServiceImpl extends ServiceImpl<CityAqiYearlyMapper, CityAqiYearly> implements CityAqiYearlyService { + @Autowired + CityAqiYearlyMapper cityAqiYearlyMapper; + + @Override + public List<CityAqiYearly> getCityAqiYearlyByRegionCodeAndTime(Integer regionCode, Date startDate, Date endDate) { + QueryWrapper<CityAqiYearly> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("city_code",regionCode); + queryWrapper.between("time",startDate,endDate); + return cityAqiYearlyMapper.selectList(queryWrapper); + } } diff --git a/screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java b/screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java index 6cb2be0..8c9bc04 100644 --- a/screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java +++ b/screen-common/src/main/java/com/moral/util/ComprehensiveIndexUtils.java @@ -214,4 +214,5 @@ return comprehensiveIndex; } + } diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java index 2741da9..3699260 100644 --- a/screen-common/src/main/java/com/moral/util/DateUtils.java +++ b/screen-common/src/main/java/com/moral/util/DateUtils.java @@ -651,6 +651,8 @@ return new Date(); } + + public static String getAfterNDays(Date date, int n, String formateStr) { SimpleDateFormat sdf = new SimpleDateFormat(formateStr); Calendar calendar = new GregorianCalendar(); @@ -1016,6 +1018,19 @@ int year = cal.get(Calendar.YEAR); return year == currentYear; } + + /* + * ��������������������������� + * */ + public static boolean isCurrentMonth(Date date) { + Calendar cal = Calendar.getInstance(); + cal.setTime(new Date()); + int currentYear = cal.get(Calendar.MONTH); + cal.setTime(date); + int year = cal.get(Calendar.MONTH); + return year == currentYear; + } + /** * ������������������������������ @@ -1431,6 +1446,7 @@ return calendar.getTime(); } + /** * <p> * Title: getDays diff --git a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java index 02d8393..c4e303c 100644 --- a/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java +++ b/screen-manage/src/main/java/com/moral/api/controller/DeviceController.java @@ -262,4 +262,12 @@ List<Map<String, Object>> professions = deviceService.selectDeviceDictData(Constants.SYSTEM_DICT_TYPE_PURCHASER); return ResultMessage.ok(professions); } + + @RequestMapping(value = "selectMonitorPiontAndDeviceByOrgId", method = RequestMethod.GET) + public ResultMessage selectMonitorPiontAndDeviceByOrgId(HttpServletRequest request){ + Map parames = WebUtils.getParametersStartingWith(request,null); + int id = Integer.parseInt(parames.get("organization_id").toString()); + List<Map<String, Object>> maps = deviceService.selectMonitorPiontAndDeviceByOrgId(id); + return ResultMessage.ok(maps); + } } diff --git a/screen-manage/src/main/java/com/moral/api/entity/ServicesScopeDevice.java b/screen-manage/src/main/java/com/moral/api/entity/ServicesScopeDevice.java new file mode 100644 index 0000000..2f301b0 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/entity/ServicesScopeDevice.java @@ -0,0 +1,62 @@ +package com.moral.api.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.baomidou.mybatisplus.annotation.TableId; +import java.time.LocalDateTime; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * <p> + * + * </p> + * + * @author moral + * @since 2022-01-17 + */ +@Data +@EqualsAndHashCode(callSuper = false) +public class ServicesScopeDevice extends Model<ServicesScopeDevice> { + + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** + * ������������id + */ + private Integer servicesScopeId; + + /** + * ������id + */ + private Integer deviceId; + + /** + * ������������ + */ + private LocalDateTime createTime; + + /** + * ������������ + */ + private LocalDateTime updateTime; + + /** + * ������������ + */ + private String isDelete; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java new file mode 100644 index 0000000..2eabe2e --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java @@ -0,0 +1,16 @@ +package com.moral.api.mapper; + +import com.moral.api.entity.ServicesScopeDevice; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * Mapper ������ + * </p> + * + * @author moral + * @since 2022-01-17 + */ +public interface ServicesScopeDeviceMapper extends BaseMapper<ServicesScopeDevice> { + +} diff --git a/screen-manage/src/main/java/com/moral/api/service/DeviceService.java b/screen-manage/src/main/java/com/moral/api/service/DeviceService.java index e22ba74..e8fd83c 100644 --- a/screen-manage/src/main/java/com/moral/api/service/DeviceService.java +++ b/screen-manage/src/main/java/com/moral/api/service/DeviceService.java @@ -64,4 +64,13 @@ //��������������������������� void judgeDeviceState(Map<String, Object> data); + /** + *@Description: ������������id��������������������� + *@Param: [orgId] + *@return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>> + *@Author: lizijie + *@Date: 2022/1/17 10:30 + **/ + List<Map<String,Object>> selectMonitorPiontAndDeviceByOrgId(int orgId); + } diff --git a/screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java b/screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java new file mode 100644 index 0000000..393c444 --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/service/ServicesScopeDeviceService.java @@ -0,0 +1,16 @@ +package com.moral.api.service; + +import com.moral.api.entity.ServicesScopeDevice; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * <p> + * ��������� + * </p> + * + * @author moral + * @since 2022-01-17 + */ +public interface ServicesScopeDeviceService extends IService<ServicesScopeDevice> { + +} diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java index 03a4812..d4269f1 100644 --- a/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java +++ b/screen-manage/src/main/java/com/moral/api/service/impl/DeviceServiceImpl.java @@ -1,5 +1,6 @@ package com.moral.api.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -35,11 +36,7 @@ import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; +import java.util.*; import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; @@ -522,6 +519,28 @@ deviceMapper.update(null, updateWrapper); } + @Override + public List<Map<String, Object>> selectMonitorPiontAndDeviceByOrgId(int orgId) { + QueryWrapper<MonitorPoint> monitorPointQueryWrapper = new QueryWrapper<>(); + monitorPointQueryWrapper.eq("is_delete",Constants.NOT_DELETE); + monitorPointQueryWrapper.eq("organization_id",orgId); + List<MonitorPoint> monitorPointList = monitorPointMapper.selectList(monitorPointQueryWrapper); + List<Map<String, Object>> resultList = new ArrayList<>(); + for (MonitorPoint monitorPoint:monitorPointList) { + Map<String,Object> resultMap = new HashMap<>(); + resultMap = JSON.parseObject(JSON.toJSONString(monitorPoint), Map.class); + int mp_id = monitorPoint.getId(); + QueryWrapper<Device> deviceQueryWrapper = new QueryWrapper<>(); + deviceQueryWrapper.eq("is_delete", Constants.NOT_DELETE); + deviceQueryWrapper.eq("monitor_point_id",mp_id); + List<Device> devices = new ArrayList<>(); + devices = deviceMapper.selectList(deviceQueryWrapper); + resultMap.put("devices",devices); + resultList.add(resultMap); + } + return resultList; + } + //��������������������������� private int judgeState(List<Object> levels, Double data) { int state = 1; diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java new file mode 100644 index 0000000..4dbe38a --- /dev/null +++ b/screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeDeviceServiceImpl.java @@ -0,0 +1,20 @@ +package com.moral.api.service.impl; + +import com.moral.api.entity.ServicesScopeDevice; +import com.moral.api.mapper.ServicesScopeDeviceMapper; +import com.moral.api.service.ServicesScopeDeviceService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +/** + * <p> + * ��������������� + * </p> + * + * @author moral + * @since 2022-01-17 + */ +@Service +public class ServicesScopeDeviceServiceImpl extends ServiceImpl<ServicesScopeDeviceMapper, ServicesScopeDevice> implements ServicesScopeDeviceService { + +} diff --git a/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml b/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml new file mode 100644 index 0000000..9bfd9fa --- /dev/null +++ b/screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.moral.api.mapper.ServicesScopeDeviceMapper"> + + <!-- ������������������������ --> + <resultMap id="BaseResultMap" type="com.moral.api.entity.ServicesScopeDevice"> + <id column="id" property="id" /> + <result column="services_scope_id" property="servicesScopeId" /> + <result column="device_id" property="deviceId" /> + <result column="create_time" property="createTime" /> + <result column="update_time" property="updateTime" /> + <result column="is_delete" property="isDelete" /> + </resultMap> + +</mapper> \ No newline at end of file -- Gitblit v1.8.0