From fa54da2e02b58708a6bfa4cae3aa3f6f1cd9a60e Mon Sep 17 00:00:00 2001
From: whycxzp <perryhsu@163.com>
Date: 星期六, 13 三月 2021 16:38:48 +0800
Subject: [PATCH] 修复接口

---
 src/main/java/com/whyc/service/BatteryAlarmService.java |  122 +++++++++++++++-------------------------
 1 files changed, 47 insertions(+), 75 deletions(-)

diff --git a/src/main/java/com/whyc/service/BatteryAlarmService.java b/src/main/java/com/whyc/service/BatteryAlarmService.java
index c951f1c..7691036 100644
--- a/src/main/java/com/whyc/service/BatteryAlarmService.java
+++ b/src/main/java/com/whyc/service/BatteryAlarmService.java
@@ -1,6 +1,7 @@
 package com.whyc.service;
 
 import com.whyc.constant.AlarmConstant;
+import com.whyc.constant.BatteryConstant;
 import com.whyc.constant.DeviceConstant;
 import com.whyc.dto.BatteryAlarmDto;
 import com.whyc.dto.Response;
@@ -14,6 +15,7 @@
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -80,57 +82,18 @@
      * @param userId
      * @return
      */
-    //TODO
     public Response<Map> getOnlineAndGroupVolAnalysis(int userId) {
-        HashMap<String, Object> resultMap = new HashMap<>();
-        Map<String, Object> disCharge = new HashMap<>();//鏀剧數鐢垫祦  Alarm_curr_Discharge =119004
-        Map<String, Object> reCharge = new HashMap<>();//鍏呯數鐢垫祦   Alarm_curr_Charge =119003
+        List<Integer> alarmIds = Arrays.asList(AlarmConstant.Alarm_vol_Online,AlarmConstant.Alarm_vol_Group);
+        List<String> alarmNames =Arrays.asList("鍦ㄧ嚎鐢靛帇","缁勭鐢靛帇");
+        List<Integer> alarmSignalIds = Arrays.asList(
+                AlarmConstant.ALM_SIGNAL_ID_OnlineVolHigh,AlarmConstant.ALM_SIGNAL_ID_OnlineVolLow,
+                AlarmConstant.ALM_SIGNAL_ID_GroupVolHigh,AlarmConstant.ALM_SIGNAL_ID_GroupVolLow);
+        String mapName1 = "楂樺憡璀︽暟閲�";
+        String mapName2 = "浣庡憡璀︽暟閲�";
 
-        //鏀剧數鐢垫祦楂樺憡璀︽暟閲�
-        Integer dischargeHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_DisChargeCurrHigh);
+        Map<String, Map> doubleAnalysis = getDoubleAnalysis(userId, alarmIds, alarmSignalIds, alarmNames, mapName1, mapName2);
 
-        //鍛婅鎬绘暟
-        Integer totalStationAlarmNum =mapper.getTotalAlarms(userId);
-
-        //鏀剧數鐢垫祦楂樺憡璀︽満鎴挎暟
-        int dischargeTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.ALM_SIGNAL_ID_DisChargeCurrHigh);
-
-        //鎬绘満鎴挎暟
-        int totalStationNum = infoMapper.getStationCount(userId);
-
-        //鏀剧數鐢垫祦楂樺憡璀﹀崰姣�
-        String dischargeRateStr = MathUtil.divide(dischargeHighAlarmsNum,totalStationAlarmNum);
-        //鏀剧數鐢垫祦楂樺憡璀︽満鎴垮崰姣�
-        String dischargeStationRateStr = MathUtil.divide(dischargeTotalAlarmStations,totalStationNum);
-
-        disCharge.put("楂樺憡璀︽暟閲�",dischargeHighAlarmsNum);     //楂樺憡璀︽暟閲�    alm_signal_id:ChargeCurrHigh 5 high; 6 low
-        disCharge.put("鍛婅鎬绘暟",totalStationAlarmNum);        //鍛婅鎬绘暟
-        disCharge.put("鍛婅鎬绘暟姣斾緥", dischargeRateStr);      //鍛婅鎬绘暟姣斾緥
-        disCharge.put("鍛婅鏈烘埧鎬绘暟", dischargeTotalAlarmStations);      //鍛婅鏈烘埧鎬绘暟
-        disCharge.put("鍛婅鏈烘埧鏁版瘮渚�",dischargeStationRateStr);    //鍛婅鏈烘埧鏁版瘮渚�
-        resultMap.put("disCharge", disCharge);
-
-        /*=====鍏呯數鐢垫祦楂�======*/
-
-        //鏀剧數鐢垫祦楂樺憡璀︽暟閲�
-        Integer chargeHighAlarmsNum = mapper.getAlarmHighLow(userId,AlarmConstant.ALM_SIGNAL_ID_ChargeCurrHigh);
-
-        //鏀剧數鐢垫祦楂樺憡璀︽満鎴挎暟
-        int chargeTotalAlarmStations = mapper.getTotalAlarmStations(userId,AlarmConstant.ALM_SIGNAL_ID_ChargeCurrHigh);
-
-        //鏀剧數鐢垫祦楂樺憡璀﹀崰姣�
-        String chargeRateStr = MathUtil.divide(chargeHighAlarmsNum,totalStationAlarmNum);
-        //鏀剧數鐢垫祦楂樺憡璀︽満鎴垮崰姣�
-        String chargeStationRateStr = MathUtil.divide(chargeTotalAlarmStations,totalStationNum);
-
-        reCharge.put("楂樺憡璀︽暟閲�", chargeHighAlarmsNum);     //楂樺憡璀︽暟閲�
-        reCharge.put("鍛婅鎬绘暟", totalStationAlarmNum);        //鍛婅鎬绘暟
-        reCharge.put("鍛婅鎬绘暟姣斾緥", chargeRateStr);      //鍛婅鎬绘暟姣斾緥
-        reCharge.put("鍛婅鏈烘埧鎬绘暟", chargeTotalAlarmStations);      //鍛婅鏈烘埧鎬绘暟
-        reCharge.put("鍛婅鏈烘埧鏁版瘮渚�", chargeStationRateStr);    //鍛婅鏈烘埧鏁版瘮渚�
-        resultMap.put("reCharge", reCharge);
-
-        return new Response<Map>().set(1,resultMap);
+        return new Response<Map>().set(1,doubleAnalysis);
     }
 
     public Response<Map> getBTSEquipStatus(int userId) {
@@ -376,10 +339,10 @@
      * 鍗曚釜鍛婅-閫氳繃鍛婅鏍囪瘑id
      * @param userId
      * @param alarmSignalId
-     * @param key1
+     * @param alarmName
      * @return
      */
-    public Map<String,Object> getSingleAnalysisOfSignal(int userId,int alarmSignalId,String alarmName){
+    private Map<String,Object> getSingleAnalysisOfSignal(int userId,int alarmSignalId,String alarmName){
         Map<String, Object> resMap = new HashMap<>();
 
         //鍛婅鏁伴噺
@@ -410,40 +373,49 @@
     /**
      * 2涓憡璀�-閫氳繃鍛婅id,鍛婅鏍囪瘑id
      * @param userId
-     * @param alarmSignalId
-     * @param key1
+     * @param alarmIds 鍛婅id鍒楄〃
+     * @param alarmSignalIds 鍛婅鏍囪瘑id鍒楄〃,涓篅alarmIds鐨勪袱鍊�
+     * @param alarmNames 鍛婅鍚嶇О,鏄崟浣撶數鍘�/鍗曚綋xxx
+     * @param mapName1 map鐨勫悕1
+     * @param mapName2 map鐨勫悕2
      * @return
      */
-    public Map<String,Object> getDoubleAnalysis(int userId,int alarmId,int alarmSignalId,
-                                                String alarmName1,String alarmName2,String mapName1,String mapName2){
+    private Map<String,Map> getDoubleAnalysis(int userId,List<Integer> alarmIds,List<Integer> alarmSignalIds,
+                                                List<String> alarmNames,String mapName1,String mapName2){
         Map<String,Map> res = new HashMap<>();
-        Map<String, Object> resMap1 = new HashMap<>();
-        Map<String, Object> resMap2 = new HashMap<>();
+        for (int i = 0; i < alarmIds.size(); i++) {
+            Map<String, Object> resMap = new HashMap<>();
+            //鍛婅1鏁伴噺
+            Integer alarmNum = mapper.getAlarmHighLow(userId,alarmSignalIds.get(i));
+            //鍛婅2鏁伴噺
+            Integer alarmNum2 = mapper.getAlarmHighLow(userId,alarmSignalIds.get(i)+1);
 
-        //鍛婅鏁伴噺
-        Integer alarmNum = mapper.getAlarmHighLow(userId,alarmSignalId);
+            //鍛婅鎬绘暟
+            Integer totalAlarmNum =alarmNum+alarmNum2;
 
-        //鍛婅鎬绘暟
-        Integer totalAlarmNum =mapper.getTotalAlarms(userId);
+            //鎬诲憡璀︽暟
+            Integer totalAlarms = mapper.getTotalAlarms(userId);
 
-        //鍛婅鏈烘埧鏁�
-        int alarmStationNum = mapper.getTotalAlarmStations(userId,alarmSignalId);
+            //鍛婅鏈烘埧鏁�
+            int alarmStationNum = mapper.getTotalAlarmStations(userId,alarmIds.get(i));
 
-        //鎬绘満鎴挎暟
-        int totalStationNum = infoMapper.getStationCount(userId);
+            //鎬绘満鎴挎暟
+            int totalStationNum = infoMapper.getStationCount(userId);
 
-        //鍛婅鍗犳瘮
-        String rate = MathUtil.divide(alarmNum,totalAlarmNum);
-        //鍛婅鏈烘埧鍗犳瘮
-        String stationRate = MathUtil.divide(alarmStationNum,totalStationNum);
+            //鍛婅鍗犳瘮
+            String rate = MathUtil.divide(totalAlarmNum,totalAlarms);
+            //鍛婅鏈烘埧鍗犳瘮
+            String stationRate = MathUtil.divide(alarmStationNum,totalStationNum);
 
-        resMap1.put(alarmName1,alarmNum);     //鍛婅鏁伴噺
-        resMap1.put("鍛婅鎬绘暟", totalAlarmNum);        //鍛婅鎬绘暟
-        resMap1.put("鍛婅鎬绘暟姣斾緥", rate);      //鍛婅鎬绘暟姣斾緥
-        resMap1.put("鍛婅鏈烘埧鎬绘暟", totalStationNum);      //鍛婅鏈烘埧鎬绘暟
-        resMap1.put("鍛婅鏈烘埧鏁版瘮渚�", stationRate);    //鍛婅鏈烘埧鏁版瘮渚�
-
-        return null;
+            resMap.put(mapName1,alarmNum);     //鍛婅1鏁伴噺
+            resMap.put(mapName2,alarmNum2);     //鍛婅2鏁伴噺
+            resMap.put("鍛婅鎬绘暟", totalAlarmNum);        //鍛婅鎬绘暟
+            resMap.put("鍛婅鎬绘暟姣斾緥", rate);      //鍛婅鎬绘暟姣斾緥
+            resMap.put("鍛婅鏈烘埧鎬绘暟", alarmStationNum);      //鍛婅鏈烘埧鎬绘暟
+            resMap.put("鍛婅鏈烘埧鏁版瘮渚�", stationRate);    //鍛婅鏈烘埧鏁版瘮渚�
+            res.put(alarmNames.get(i),resMap);
+        }
+        return res;
     }
 
 }

--
Gitblit v1.9.1