From d0a7ad5e3a1c147a70a0e792c3eafa3b7613fff7 Mon Sep 17 00:00:00 2001 From: 沈斌 <bluelazysb@hotmail.com> Date: Fri, 27 Oct 2017 15:20:58 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java | 66 ++++++++++++++++++++++---------- 1 files changed, 45 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java b/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java index 883bd81..7559384 100644 --- a/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java +++ b/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java @@ -10,11 +10,14 @@ import java.util.Map; import java.util.Set; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import com.alibaba.fastjson.JSON; import com.moral.monitor.dao.AccountEntityMapper; import com.moral.monitor.dao.HistoryEntityMapper; import com.moral.monitor.entity.AccountEntity; @@ -70,13 +73,17 @@ parameters.put("mac", "898602b8191630065884"); parameters.put("macKey", "e1"); Map<String, Object> average = historyMapper.getMonthAverageBySensor(parameters); + + // ��������������� if (MapUtils.isNotEmpty(average)) { resultMap.putAll(average); } else { resultMap.put("average", 0); } - // + + //AQI ������ String[] macKeys = { "e1", "e2", "e10", "e11", "e15", "e16" }; + String[] IAQIValues = ResourceUtil.getArrValue("IAQI"); List<Double> IAQIs = new ArrayList<Double>(); for (String macKey : macKeys) { double avg = 0, maxMacKey = 0, minMacKey = 0; @@ -89,34 +96,35 @@ String[] macKeyValues = ResourceUtil.getArrValue(macKey); int index = -1; for (int i = 0; i < macKeyValues.length; i++) { - Double macKeyValue = Double.valueOf(macKeyValues[i]); - if (avg <= macKeyValue) { + if (avg <= Double.valueOf(macKeyValues[i])) { if (i == 0) { - index = 0; - minMacKey = macKeyValue; - maxMacKey = Double.valueOf(macKeyValues[i + 1]); + index = i; } else { index = i - 1; - minMacKey = Double.valueOf(macKeyValues[i - 1]); - maxMacKey = macKeyValue; } + minMacKey = Double.valueOf(macKeyValues[index]); + maxMacKey = Double.valueOf(macKeyValues[index + 1]); continue; } - } if (index == -1) { resultMap.put("AQI", ">500"); break; } - String[] IAQIValues = ResourceUtil.getArrValue("IAQI"); double minIAQI = Double.valueOf(IAQIValues[index]); double maxIAQI = Double.valueOf(IAQIValues[index + 1]); IAQIs.add(calculateIAQI(maxIAQI, minIAQI, maxMacKey, minMacKey, avg)); } - resultMap.put("standard", 35); if (!resultMap.containsKey("AQI")) { resultMap.put("AQI", Collections.max(IAQIs)); } + + //��������������� + String standard = ResourceUtil.getValue(parameters.get("macKey")+"-standard"); + if (StringUtils.isBlank(standard)) { + standard = "50"; + } + resultMap.put("standard", standard); return resultMap; } @@ -140,20 +148,23 @@ parameters.put("start", DateUtils.addMinutes(date, -10)); parameters.put("end", DateUtils.addMinutes(date, -5)); List<Map<String, Object>> averageByAll = historyMapper.getAverageByAll(parameters); + + //��������������������������� + if (CollectionUtils.isEmpty(averageByAll)) { + String macLog = historyMapper.getMacLogByLast(); + if(StringUtils.isNotBlank(macLog)){ + Map<String, Object> map = JSON.parseObject(macLog); + for (String key : map.keySet()) { + if (key.startsWith("e")) { + result.put(key, map.get(key)); + } + } + } + } for (Map<String, Object> map : averageByAll) { result.put((String) map.get("mac_key"), map.get("avg")); } return result; - } - - public void setOrgIdsByAccount(Map<String, Object> parameters) { - AccountEntity account = accountMapper.selectByPrimaryKey((Integer.valueOf((String) parameters.get("accountId")))); - String organization = account.getOrganization(); - //��������������������������������������������������������������� - if (!("-1".equals(organization) || "5212b9dfb55448e699889e01fa0fa6a2".equals(organization))) { - Set<String> orgIds = organizationService.getChildOrganizationIds(account.getOrganization()); - parameters.put("orgIds", orgIds); - } } @Override @@ -183,6 +194,19 @@ return result; } + public void setOrgIdsByAccount(Map<String, Object> parameters) { + AccountEntity account = accountMapper.selectByPrimaryKey((Integer.valueOf((String) parameters.get("accountId")))); + if (null == account) { + return; + } + String organization = account.getOrganization(); + //��������������������������������������������������������������� + if (!("-1".equals(organization) || ResourceUtil.getValue("orgId").equals(organization))) { + Set<String> orgIds = organizationService.getChildOrganizationIds(account.getOrganization()); + parameters.put("orgIds", orgIds); + } + } + private double calculateIAQI(double maxIAQI, double minIAQI, double maxMacKey, double minMacKey,double avg) { return (maxIAQI - minIAQI) * (avg - minMacKey) / (maxMacKey - minMacKey) + minIAQI; } -- Gitblit v1.8.0