kaiyu
2020-11-16 8a16116027464d17e800cd070d256aff59350b7d
src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -10,6 +10,7 @@
import com.moral.mapper.HistoryMapper;
import com.moral.util.AQICalculation;
import com.moral.util.AQICalculation2;
import com.moral.util.DateUtil;
import io.swagger.models.auth.In;
import org.apache.commons.collections.MapUtils;
import org.springframework.stereotype.Service;
@@ -22,6 +23,7 @@
import com.moral.service.DeviceService;
import com.moral.service.HistoryHourlyService;
import com.moral.service.SensorService;
import org.springframework.util.ObjectUtils;
import javax.annotation.Resource;
@@ -154,8 +156,35 @@
                Date date1 = calendar.getTime();
                String date2 = simpleDateFormat.format(date1);
                List<Map> list = historyHourlyMapper.getDataByMacAndTime(mac, sensor, perTime, date2);
                list.remove(0);
                /*以前1-2点的数据数据库中存的是1点,现在数据库中存2点,但界面显示1-24。
                * 但24点的数据存储于第二天零点,所以需要单独查询*/
                /*改动范围start----------------------------------------------------------------*/
                if (list.size() == 23) {
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                    //获取全格式时间yyyy-MM-dd HH:mm:ss
                    perTime = perTime + " 00:00:00";
                    Date perTimeDate = sdf.parse(perTime);
                    perTimeDate = DateUtil.rollDay(perTimeDate, 1);
                    Date endTimeDate = DateUtil.rollDay(perTimeDate, 2);
                    //将全格式时间截取
                    String startTime = simpleDateFormat.format(perTimeDate);
                    String endTime = simpleDateFormat.format(endTimeDate);
                    //比如查询2020-11-16的数据,则需要添加17号0点的数据到集合中,查询时间为2020-11-17---2020-11-18
                    List<Map> nextDayList = historyHourlyMapper.getDataByMacAndTime(mac, sensor, startTime, endTime);
                    if(!ObjectUtils.isEmpty(nextDayList)){
                        perTime=perTime.replaceAll(" 00:00:00"," 24");
                        Map<String, Object> datas = nextDayList.get(0);
                        datas.put("time",perTime);
                        list.add(datas);
                    }
                }
                /*改动范围end----------------------------------------------------------------*/
                List<Map> newList = new ArrayList<Map>();
                for (int i = 0; i < 24; i++) {
                for (int i = 0; i <= 24; i++) {
                    Map map=new HashMap();
                    if (i < 10) {
                        map.put("time","0"+i);
@@ -180,7 +209,7 @@
                lists.add(newList);
            }
            for (int i = 0; i < 24; i++) {
            for (int i = 0; i <= 24; i++) {
                Map<String, Object> map = new HashMap<>();
                List iList = new ArrayList();
                for (List<Map> list : lists) {
@@ -207,9 +236,9 @@
        } catch (ParseException e) {
            e.printStackTrace();
        }
        for (int i = 0; i <perList.size() ; i++) {
        /*for (int i = 0; i <perList.size() ; i++) {
            perList.get(i).replace("time",perList.get(i).get("time"),(Integer) perList.get(i).get("time")+1);
        }
        }*/
        int j=0;
        for (int i = 0; i <perList.size() ; i++) {
            if (!((List)perList.get(i).get("values")).get(0).equals("")){