From 68e750bf109efb0469704e54e48a29649512358c Mon Sep 17 00:00:00 2001 From: cjl <276999030@qq.com> Date: Mon, 18 Dec 2023 13:31:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into cjl --- screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java | 89 ++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 88 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..08b56c9 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,30 @@ 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.HeatMapDTO; 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 +34,7 @@ * @Version TODO **/ @Service +@Slf4j public class DataDisplayServiceImpl implements DataDisplayService { @Autowired @@ -43,6 +49,8 @@ HistoryWeeklyService historyWeeklyService; @Autowired HistoryMonthlyService historyMonthlyService; + @Autowired + OrganizationMapper organizationMapper; @Autowired DeviceMapper deviceMapper; @@ -384,6 +392,85 @@ } /** + * ��������������� + * @param code + * @param startTime + * @param type + * @return + */ + @Override + public List<HeatMapDTO> getHeatMapData(String code, String startTime, String type, String form) { + HashMap<String, Object> map = new HashMap<>(); + map.put("start",startTime); + map.put("type","$."+ type); + + //������������������ + 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); +// } + } + + return distrinList(rsHeatMap); + } + /** + * ������������ + * @param responseList + * @return + */ + private List<HeatMapDTO> distrinList(List<HeatMapDTO> responseList){ + List<HeatMapDTO> rsMap = new ArrayList<>(); + Set<String> keysSet = new HashSet<String>(); + for (HeatMapDTO heatMapDTO : responseList) { + String keys = String.valueOf(heatMapDTO.getMac()); + int beforeSize = keysSet.size(); + keysSet.add(keys); + int afterSize = keysSet.size(); + if(afterSize == beforeSize + 1){ + rsMap.add(heatMapDTO); + } + } + log.info(responseList.size()+""); + log.info(rsMap.size()+""); + return rsMap; + + + } + + /** * @Description: ������������������������ * @Param: [timeValueMap, reportType] * @return: java.util.Map<java.lang.String , java.lang.String> -- Gitblit v1.8.0