工业级运维app手机api
xufenglei
2017-11-03 d1c0c991624ecb68bf44cbae163eaf28640296df
json  警报值接口
4 files modified
70 ■■■■■ changed files
src/main/java/com/moral/monitor/controller/ScreenController.java 39 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/service/ScreenService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java 19 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryEntityMapper.xml 10 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/monitor/controller/ScreenController.java
@@ -1,5 +1,7 @@
package com.moral.monitor.controller;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -10,11 +12,15 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSONReader;
import com.alibaba.fastjson.TypeReference;
import com.moral.monitor.entity.AccountEntity;
import com.moral.monitor.service.ScreenService;
import com.moral.monitor.util.BusinessException;
@@ -29,6 +35,9 @@
    /** The screen service. */
    @Autowired
    private ScreenService screenService;
    @Value(value="classpath:system/alarmLevels.json")
    private  Resource resource;
    /**
     * Screen login.
@@ -144,4 +153,34 @@
        }
        return result;
    }
    @RequestMapping(value = "/sensor-average", method = RequestMethod.GET)
    public Map<String, Object> getAverageBySensor(HttpServletRequest request) {
        Map<String, Object> result = new HashMap<String, Object>();
        try {
            Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
            if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId") && parameters.containsKey("macKey"))) {
                result.put("msg", "参数不能为空!");
            } else {
                result = screenService.getAverageBySensor(parameters);
            }
        } catch (BusinessException be) {
            be.printStackTrace();
            result.put("msg", be.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            result.put("msg", "系统错误,请联系管理员!原因如下:"+e.getMessage());
        }
        return result;
    }
    @RequestMapping(value = "/alarm-levels", method = RequestMethod.GET)
    public Map<String,Map<String,Double>> getAlarmLevels(HttpServletRequest request) throws IOException {
        InputStreamReader reader=new InputStreamReader(resource.getInputStream());
        JSONReader jsonReader = new JSONReader(reader);
        Map<String,Map<String,Double>> result= jsonReader.readObject(new TypeReference<Map<String,Map<String,Double>>>(){});
        return result;
    }
}
src/main/java/com/moral/monitor/service/ScreenService.java
@@ -15,4 +15,6 @@
    Map<String, Object> getEquipmentStates(Map<String, Object> parameters);
    Map<String, Object> getAverageBySensor(Map<String, Object> parameters);
}
src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java
@@ -133,7 +133,7 @@
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        setOrgIdsByAccount(parameters);
        parameters.put("macKey", "all");
        Date date = new Date();
        // 当前时间 -10分钟
        parameters.put("start", DateUtils.addMinutes(date, -10));
@@ -210,4 +210,21 @@
        return (maxIAQI - minIAQI) * (avg - minMacKey) / (maxMacKey - minMacKey) + minIAQI;
    }
    @Override
    public Map<String, Object> getAverageBySensor(Map<String, Object> parameters) {
        Map<String, Object> result = new LinkedHashMap<String, Object>();
        setOrgIdsByAccount(parameters);
        Date date = new Date();
        // 当前时间 -1小时
        parameters.put("start", DateUtils.addHours(date, -1));
        parameters.put("end", date);
        List<Map<String, Object>> averageByAll = historyMapper.getAverageByAll(parameters);
        for (Map<String, Object> map : averageByAll) {
            result.put((String) map.get("name"), map.get("avg"));
        }
        return result;
    }
}
src/main/resources/mapper/HistoryEntityMapper.xml
@@ -239,7 +239,12 @@
    <select id="getAverageByAll" resultType="map">
        SELECT
            <if test="macKey == 'all'">
            h.mac_key,
            </if>
            <if test="macKey != null and macKey != 'all'">
            e.name,
            </if>
            AVG(h.mac_value) avg
        FROM
            history h,
@@ -258,8 +263,13 @@
                #{listItem}
            </foreach>
        </if>
        <if test="macKey == 'all'">
        GROUP BY
            h.mac_key
        </if>
        <if test="macKey != null and macKey != 'all'">
        AND    h.mac_key = #{macKey}
        </if>
    </select>
    <select id="getEquipmentStates" resultType="map">