| | |
| | | package com.moral.service.impl; |
| | | |
| | | import java.text.DecimalFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | import org.apache.commons.collections.MapUtils; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<Map> getDataByMacAndTime(Map param) { |
| | | String mac = param.get("mac").toString(); |
| | | String sensor = param.get("sensor").toString(); |
| | | String time = param.get("time").toString(); |
| | | String[] times = time.split("、"); |
| | | |
| | | String time1=times[0].substring(0,8); |
| | | for (int i = 0; i <times.length ; i++) { |
| | | if (i!=0){ |
| | | times[i]=time1+""+times[i]; |
| | | } |
| | | } |
| | | List<List> lists = new ArrayList<List>(); |
| | | List<Map> perList = new ArrayList<Map>(); |
| | | try { |
| | | for (String perTime : times) { |
| | | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM |
| | | Date date = simpleDateFormat.parse(perTime); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(date); |
| | | calendar.add(Calendar.DATE, 1); |
| | | Date date1 = calendar.getTime(); |
| | | String date2 = simpleDateFormat.format(date1); |
| | | List<Map> list = historyHourlyMapper.getDataByMacAndTime(mac, sensor, perTime, date2); |
| | | List<Map> newList = new ArrayList<Map>(); |
| | | //System.out.println(list); |
| | | for (int i = 0; i < 24; i++) { |
| | | Map map=new HashMap(); |
| | | if (i < 10) { |
| | | map.put("time","0"+i); |
| | | map.put(sensor,""); |
| | | newList.add(map); |
| | | }else { |
| | | map.put("time",""+i); |
| | | map.put(sensor,""); |
| | | newList.add(map); |
| | | } |
| | | } |
| | | //System.out.println(newList); |
| | | if (list.size() <= 24 && list.size() >= 0) { |
| | | for (int i = 0; i <list.size() ; i++) { |
| | | String timeS = list.get(i).get("time").toString().substring(11, 13); |
| | | for (Map map : newList) { |
| | | if (timeS.equals(map.get("time"))){ |
| | | map.replace(sensor,"",list.get(i).get(sensor)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | lists.add(newList); |
| | | } |
| | | |
| | | for (int i = 0; i < 24; i++) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List iList = new ArrayList(); |
| | | for (List<Map> list : lists) { |
| | | String timeS = list.get(i).get("time").toString(); |
| | | if (i < 10) { |
| | | if (timeS.equals("0" + i)) { |
| | | iList.add(list.get(i).get(sensor)); |
| | | } else { |
| | | iList.add(""); |
| | | } |
| | | } else { |
| | | if (timeS.equals(i + "")) { |
| | | iList.add(list.get(i).get(sensor)); |
| | | } else { |
| | | iList.add(""); |
| | | } |
| | | } |
| | | } |
| | | map.put("value", iList); |
| | | map.put("time", i); |
| | | perList.add(map); |
| | | } |
| | | } catch (ParseException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | 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); |
| | | } |
| | | return perList; |
| | | } |
| | | |
| | | @Override |
| | | public Point getDirPoint(Map<String, Object> parameters) throws Exception { |
| | | Map<String, Object> pollutionSourceData = getPollutionSourceDataByHour(parameters); |
| | | if (MapUtils.isEmpty(pollutionSourceData)) { |