jinpengyong
2020-08-10 5f3e7e12b0d4d8d110ef85092a15fd133061e4e5
实测TVOC
3 files modified
47 ■■■■■ changed files
src/main/java/com/moral/mapper/HistoryHourlyMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/WeatherServiceImpl.java 32 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryHourlyMapper.xml 13 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/HistoryHourlyMapper.java
@@ -22,4 +22,6 @@
    List<Map<String,Object>> getBeamByMacs(Map<String,Object> params);
    List<Map<String, Object>> getDataByTimeSlot(@Param("mac") String mac, @Param("startTime") String startTime, @Param("endTime") String endTime);
    List<Map<String,Object>> getTVOCByMacs(Map<String,Object> params);
}
src/main/java/com/moral/service/impl/WeatherServiceImpl.java
@@ -13,6 +13,7 @@
import javax.annotation.Resource;
import org.apache.jasper.compiler.JspUtil;
import org.dom4j.Element;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -438,17 +439,34 @@
        }
        List<Device> deviceList = deviceMapper.getDeviceListByMonitorPointIds(pointList);
        List<String> macList = new ArrayList<>();
        List<String> macList1 = new ArrayList<>();
        List<Map<String, Object>> beamList = new ArrayList<>();
        List<Map<String, Object>> tvocList=new ArrayList<>();
        if (deviceList.size() != 0) {
            for (Device device : deviceList) {
                String mac = device.getMac();
                macList.add(mac);
                macList.add(device.getMac());
            }
            parameters.put("macs", macList);
            beamList = historyHourlyMapper.getBeamByMacs(parameters);
            Map<String, Object> map = new HashMap<>();
            if (name.equals("沧州市")) {
                List<Integer> list=new ArrayList<>();
                list.add(48);
                List<Device> pointIds = deviceMapper.getDeviceListByMonitorPointIds(list);
                for (Device device : pointIds) {
                    if (device.getId() != 1075) {
                        macList1.add(device.getMac());
        }
                }
            }else {
                macList1=macList;
            }
            map.put("macs", macList1);
            map.put("start", parameters.get("start"));
            map.put("end", parameters.get("end"));
            tvocList = historyHourlyMapper.getTVOCByMacs(map);
        }
        List<Map<String, Object>> realList = realWeatherMapper.getRealWeather(parameters);
        List<Map<String, Object>> realWeatherList = new ArrayList<>();
        for (Map<String, Object> realMap : realList) {
@@ -483,6 +501,14 @@
            if (precip6HourMap != null) {
                realMap.put("precip6", precip6HourMap.get("precip6").toString());
            }
            for (Map<String, Object> tvocMap : tvocList) {
                String ttime = tvocMap.get("time").toString();
                if (ttime.equals(rtime)) {
                    realMap.put("TVOC", tvocMap.get("TVOC").toString());
                }
            }
        }
        List<Map<String, Object>> list = new ArrayList<>();
src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -85,4 +85,17 @@
        where mac=#{mac}
        AND time between #{startTime} and #{endTime}
    </select>
    <select id="getTVOCByMacs" resultType="java.util.Map">
        SELECT
        DATE_FORMAT(h.time,'%Y-%m-%d %H:%i:%s') time,
        avg(h.json->'$.e17[0]') 'TVOC'
        FROM history_hourly h
        WHERE h.mac in
        <foreach  item="item" collection="macs" index="index"  open="(" separator="," close=")">#{item}</foreach>
        and h.time >= #{start}
        AND h.time <![CDATA[<]]> #{end}
        and h.json->'$.e17[0]' is not null
        group by h.time
    </select>
</mapper>