From 2e1d289a38cf4e0dfe0f1c7301b7a365cda8d395 Mon Sep 17 00:00:00 2001 From: jinpengyong <jpy123456> Date: Fri, 15 Dec 2023 16:33:44 +0800 Subject: [PATCH] chore:测试提交 --- screen-api/src/main/java/com/moral/api/service/impl/DataDisplayServiceImpl.java | 57 ++++++++++-------- screen-api/src/main/java/com/moral/api/service/DataDisplayService.java | 3 screen-api/src/main/java/com/moral/api/controller/HeatMapController.java | 15 ++-- screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/HeatMapDTO.java | 56 ++++++++++++++++++ screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java | 3 screen-api/src/main/resources/mapper/DeviceMapper.xml | 10 +- 6 files changed, 103 insertions(+), 41 deletions(-) diff --git a/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java b/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java index 9c74b97..59a3d6c 100644 --- a/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java +++ b/screen-api/src/main/java/com/moral/api/controller/HeatMapController.java @@ -8,21 +8,17 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; - import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.temporal.ChronoUnit; import java.util.ArrayList; -import java.util.Calendar; import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Map; + +import com.moral.api.pojo.dto.dataDisplay.HeatMapDTO; import com.moral.api.service.DataDisplayService; import com.moral.api.vo.HeatMapVo; import com.moral.api.vo.TimeHourVo; @@ -53,7 +49,7 @@ @RequestParam @ApiParam(value = "startTime",name = "������������") String startTime, @RequestParam @ApiParam(value = "type",name= "������������") String type, @RequestParam @ApiParam(value = "form",name= "������������") String form){ - ArrayList<Map<String, Object>> heatMapData = dataDisplayService.getHeatMapData(code, startTime, type, form); + List<HeatMapDTO> heatMapData = dataDisplayService.getHeatMapData(code, startTime, type, form); return ResultMessage.ok(ObjectUtils.isEmpty(heatMapData)?"0":heatMapData); } @GetMapping("queryTime") @@ -81,8 +77,11 @@ ArrayList<TimeHourVo> timeHourVos = new ArrayList<>(); String[] splitStart = startTime.split("-"); String[] splitEnd = endTime.split("-"); + //��������������������������� + + int monthDay = DateUtils.getMonthDay(DateUtils.getDate(endTime,DateUtils.yyyy_MM_EN)); LocalDate startDate = LocalDate.of(Integer.parseInt(splitStart[0]), Integer.parseInt(splitStart[1]),1); - LocalDate endDate = LocalDate.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]),30); + LocalDate endDate = LocalDate.of(Integer.parseInt(splitEnd[0]), Integer.parseInt(splitEnd[1]),monthDay); long daysBetween = ChronoUnit.DAYS.between(startDate, endDate); for (int i = 0; i <= daysBetween; i++) { HeatMapVo heatMapVo = new HeatMapVo(); diff --git a/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java b/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java index c25f0a9..2108f67 100644 --- a/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java +++ b/screen-api/src/main/java/com/moral/api/mapper/DeviceMapper.java @@ -6,6 +6,7 @@ import com.moral.api.entity.Device; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.moral.api.pojo.dto.dataDisplay.HeatMapDTO; import com.moral.api.pojo.vo.device.AppDeviceVo; import io.lettuce.core.dynamic.annotation.Param; @@ -39,6 +40,6 @@ List<AppDeviceVo> getDevices(@Param("mac") String mac,@Param("organizationId") Integer organizationId); - List<Map<String, Object>> getHeatMap(HashMap<String,Object> params); + List<HeatMapDTO> getHeatMap(HashMap<String,Object> params); } diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/HeatMapDTO.java b/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/HeatMapDTO.java new file mode 100644 index 0000000..632f91f --- /dev/null +++ b/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/HeatMapDTO.java @@ -0,0 +1,56 @@ +package com.moral.api.pojo.dto.dataDisplay; + +import lombok.Data; +import org.springframework.util.ObjectUtils; + +import java.math.BigDecimal; + +/** + * Description //todo + * + * @author swb + * @ClassName HeatMapDTO + * @date 2023.12.11 16:11 + */ +@Data +public class HeatMapDTO { + /** + * ������������ + */ + private String time; + + + /** + * ������ + */ + private Double lat; + + + /** + * ������ + */ + private Double lng; + + + /** + * ������ + */ + private Double count; + + + private String mac; + + + private String name; + + public Double getCount(){ + Double count = this.count; + if (ObjectUtils.isEmpty(count)){ + count= 0.0; + return count; + } + return count; + } + + +} diff --git a/screen-api/src/main/java/com/moral/api/service/DataDisplayService.java b/screen-api/src/main/java/com/moral/api/service/DataDisplayService.java index 351105a..3f0c7db 100644 --- a/screen-api/src/main/java/com/moral/api/service/DataDisplayService.java +++ b/screen-api/src/main/java/com/moral/api/service/DataDisplayService.java @@ -1,5 +1,6 @@ package com.moral.api.service; +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; @@ -48,5 +49,5 @@ List<SensorComparisonDisplayDTO> getSensorComparisonDisplayDataV2(Map<String, Object> params); - ArrayList<Map<String, Object>> getHeatMapData(String code, String startTime, String type, String form); + List<HeatMapDTO> getHeatMapData(String code, String startTime, String type, String form); } 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 1280620..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 @@ -3,23 +3,20 @@ 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; @@ -395,14 +392,14 @@ } /** - * ��������� + * ��������������� * @param code * @param startTime * @param type * @return */ @Override - public ArrayList<Map<String, Object>> getHeatMapData(String code, String startTime, String type,String form) { + 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); @@ -424,8 +421,8 @@ list.add(organizationId); } - ArrayList<Map<String, Object>> rsHeatMap = new ArrayList<>(); -// ArrayList<HeatMapDTO> rsHeatMap = new ArrayList<>(); +// 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); @@ -433,36 +430,44 @@ // 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); +// 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); +// 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); + 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(filteredList.size()+""); - return filteredList; + log.info(responseList.size()+""); + log.info(rsMap.size()+""); + return rsMap; + + } /** diff --git a/screen-api/src/main/resources/mapper/DeviceMapper.xml b/screen-api/src/main/resources/mapper/DeviceMapper.xml index 7cf8024..3a8f5f1 100644 --- a/screen-api/src/main/resources/mapper/DeviceMapper.xml +++ b/screen-api/src/main/resources/mapper/DeviceMapper.xml @@ -210,11 +210,11 @@ </select> - <select id="getHeatMap" resultType="java.util.Map"> + <select id="getHeatMap" resultType="com.moral.api.pojo.dto.dataDisplay.HeatMapDTO"> SELECT + d.mac as mac, d.latitude as lat, d.longitude as lng, - d.mac as mac, d.name as name, (hd.value ->> '$.a34002' )+0 as count, hd.time @@ -228,13 +228,13 @@ </foreach> </if> <if test="tableName !=null"> - left join history_hourly${tableName} hd on hd.time = #{start} and d.mac = hd.mac + RIGHT join history_hourly${tableName} hd on hd.time = #{start} and d.mac = hd.mac </if> <if test="tableName ==null "> - left join history_daily hd on hd.time = #{start} and d.mac = hd.mac + RIGHT join history_daily hd on hd.time = #{start} and d.mac = hd.mac </if> WHERE d.is_delete = 0 - order by hd.mac + order by d.mac </select> </mapper> \ No newline at end of file -- Gitblit v1.8.0