From 0e65824734f68f4c18370204a8c574b4514939b6 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Tue, 12 Dec 2023 17:13:56 +0800 Subject: [PATCH] chore:热力图接口提交 --- screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java | 87 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 86 insertions(+), 1 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java index b710fdc..f52c8b8 100644 --- a/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java +++ b/screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java @@ -1,25 +1,33 @@ package com.moral.api.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; + import com.moral.api.entity.*; import com.moral.api.mapper.DeviceMapper; import com.moral.api.mapper.HistoryMonthlyMapper; +import com.moral.api.mapper.OrganizationMapper; + import com.moral.api.pojo.dto.dataDisplay.MonitorPointDataDisplayDTO; import com.moral.api.pojo.dto.dataDisplay.SensorComparisonDisplayDTO; import com.moral.api.pojo.form.dataDisplay.MonitorPointDataDisplayForm; import com.moral.api.pojo.form.dataDisplay.SensorComparisonDisplayForm; + import com.moral.api.service.*; import com.moral.constant.Constants; +import com.moral.constant.SeparateTableType; import com.moral.pojo.AQI; import com.moral.util.*; + +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.*; +import java.util.stream.Collectors; -import static com.moral.util.DateUtils.dateToDateString; /** * @ClassName DataDisplayServiceImpl @@ -29,6 +37,7 @@ * @Version TODO **/ @Service +@Slf4j public class DataDisplayServiceImpl implements DataDisplayService { @Autowired @@ -43,6 +52,8 @@ HistoryWeeklyService historyWeeklyService; @Autowired HistoryMonthlyService historyMonthlyService; + @Autowired + OrganizationMapper organizationMapper; @Autowired DeviceMapper deviceMapper; @@ -384,6 +395,80 @@ } /** + * ��������� + * @param code + * @param startTime + * @param type + * @return + */ + @Override + public ArrayList<Map<String, Object>> getHeatMapData(String code, String startTime, String type,String form) { + HashMap<String, Object> map = new HashMap<>(); + map.put("start",startTime); + map.put("type","$."+ type); + map.put("sensorCode","count"); + map.put("regionCode",null); + map.put("region",null); + + //������������������ + Map<String, Object> userInfo = (Map<String, Object>) TokenUtils.getUserInfo(); + Map<String, Object> orgInfo = (Map<String, Object>) userInfo.get("organization"); + Integer organizationId = (Integer) orgInfo.get("id"); + //��������� + ArrayList<Integer> list = new ArrayList<>(); + if (organizationId==24){ + LambdaQueryWrapper<Organization> wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Organization::getIsDelete,Constants.NOT_DELETE); + wrapper.eq(Organization::getCityCode,code); + List<Organization> organizations = organizationMapper.selectList(wrapper); + List<Integer> collect = organizations.stream().map(organization -> organization.getId()).collect(Collectors.toList()); + list.addAll(collect); + }else { + list.add(organizationId); + } + + ArrayList<Map<String, Object>> rsHeatMap = new ArrayList<>(); +// ArrayList<HeatMapDTO> rsHeatMap = new ArrayList<>(); + + if (form.equals("hour")){ //������ + Date date1 = DateUtils.getDate(startTime, DateUtils.yyyy_MM_dd_HH_EN); + List<String> tableNames = MybatisPLUSUtils.getTableNamesByWrapper(date1, date1, SeparateTableType.MONTH); +// for (Integer integer : list) { + map.put("organizationIds",list); + map.put("tableName",tableNames.get(0)); + List<Map<String, Object>> heatMap = deviceMapper.getHeatMap(map); +// List<HeatMapDTO> heatMap = deviceMapper.getHeatMap(map); + rsHeatMap.addAll(heatMap); +// } + + }else { //��� +// for (Integer integer : list) { + map.put("organizationIds",list); + List<Map<String, Object>> heatMap = deviceMapper.getHeatMap(map); +// List<HeatMapDTO> heatMap = deviceMapper.getHeatMap(map); + rsHeatMap.addAll(heatMap); +// } + } + + //������������������ + ArrayList<Map<String, Object>> filteredList = new ArrayList<>(); + for (Map<String, Object> map1 : rsHeatMap) { + boolean hasEmptyValue = false; + for (Object value : map1.values()) { + if (value == null) { + hasEmptyValue = true; + break; + } + } + if (!hasEmptyValue) { + filteredList.add(map1); + } + } + log.info(filteredList.size()+""); + return filteredList; + } + + /** * @Description: ������������������������ * @Param: [timeValueMap, reportType] * @return: java.util.Map<java.lang.String , java.lang.String> -- Gitblit v1.8.0