From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 24 Dec 2020 13:47:50 +0800
Subject: [PATCH] 波动补偿

---
 src/main/java/com/moral/service/impl/SensorServiceImpl.java |  235 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 180 insertions(+), 55 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/SensorServiceImpl.java b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
index 1638cb7..f56f048 100644
--- a/src/main/java/com/moral/service/impl/SensorServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
@@ -1,69 +1,86 @@
 package com.moral.service.impl;
 
-import com.moral.common.bean.PageBean;
-import com.moral.common.util.MyBatisBaseMapUtil;
-import com.moral.entity.Sensor;
-import com.moral.mapper.SensorMapper;
-import com.moral.service.SensorService;
-import org.springframework.stereotype.Service;
-import tk.mybatis.mapper.entity.Example;
-
-import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.annotation.Resource;
+
+import com.alibaba.fastjson.JSONObject;
+import com.moral.common.bean.PageBean;
+import com.moral.common.util.MyBatisBaseMapUtil;
+import com.moral.entity.Device;
+import com.moral.entity.MonitorPoint;
+import com.moral.entity.Sensor;
+import com.moral.mapper.SensorMapper;
+import com.moral.service.MonitorPointService;
+import com.moral.service.SensorService;
+
+import org.apache.commons.collections.CollectionUtils;
+import org.springframework.stereotype.Service;
+import tk.mybatis.mapper.entity.Example;
+
 @Service
-public class SensorServiceImpl implements SensorService{
+public class SensorServiceImpl implements SensorService {
     @Resource
     SensorMapper sensorMapper;
+
+    @Resource
+    MonitorPointService monitorPointService;
 
     private static Class ENTITY_CLASS = Sensor.class;
 
     /**
      * ������������������������������
+     *
      * @return
      */
     @Override
-    public List<Sensor> queryAll(){
+    public List<Sensor> queryAll() {
         return sensorMapper.selectByExample(null);
     }
-    public PageBean<Sensor> queryByPageBean(PageBean pageBean){
-        return MyBatisBaseMapUtil.queryPage(sensorMapper,pageBean,ENTITY_CLASS);
+
+    public PageBean<Sensor> queryByPageBean(PageBean pageBean) {
+        return MyBatisBaseMapUtil.queryPage(sensorMapper, pageBean, ENTITY_CLASS);
     }
+
     @Override
-    public PageBean queryByVersionId(Integer deviceVersionId){
+    public PageBean queryByVersionId(Integer deviceVersionId) {
         List<Sensor> sensorList = sensorMapper.selectByVersionId(deviceVersionId);
-        return  new PageBean(sensorList);
+        return new PageBean(sensorList);
     }
+
     @Override
-    public List<Sensor> queryListByVersionId(Integer deviceVersionId){
+    public List<Sensor> queryListByVersionId(Integer deviceVersionId) {
         return sensorMapper.selectByVersionId(deviceVersionId);
     }
+
     @Override
-    public List<Sensor> queryListByVersionNo(Integer versionNo){
+    public List<Sensor> queryListByVersionNo(Integer versionNo) {
         return sensorMapper.selectByVersionNo(versionNo);
     }
-    public void addOrModify(Sensor sensor){
-        try{
-            if(sensor.getId()==null){
+
+    public void addOrModify(Sensor sensor) {
+        try {
+            if (sensor.getId() == null) {
                 sensorMapper.insertSelective(sensor);
-            }else{
+            } else {
                 sensorMapper.updateByPrimaryKeySelective(sensor);
             }
-        }
-        catch (Exception ex){
-            throw  ex;
+        } catch (Exception ex) {
+            throw ex;
         }
     }
 
     @Override
     public void deleteByIds(Integer... ids) {
-        if(ids!=null&&ids.length>0){
-            if(ids.length==1){
+        if (ids != null && ids.length > 0) {
+            if (ids.length == 1) {
                 sensorMapper.deleteByPrimaryKey(ids[0]);
-            }else{
+            } else {
                 Example example = new Example(ENTITY_CLASS);
                 example.or().andIn("id", Arrays.asList(ids));
                 sensorMapper.deleteByExample(example);
@@ -74,6 +91,7 @@
 
     /**
      * ������������������������������������������
+     *
      * @param organizationId
      * @return
      */
@@ -81,25 +99,34 @@
     public List<Sensor> queryByOrgId(Integer organizationId) {
         return sensorMapper.selectByOrgId(organizationId);
     }
+
     @Override
-	public List<Sensor> getAllSensors() {
-		return sensorMapper.selectAll();
-	}
-	@Override
-	public Map<String, Object> getSensorBySensorKey(String sensorKey) {
-		Map<String, Object> map = sensorMapper.getSensorBySensorKey(sensorKey);
-		return map;
-	}
-	@Override
-	public List<Map<String, Object>> getSensorByDeviceId(String id) {
-		List<Map<String,Object>> list = sensorMapper.getSensorByDeviceId(id);
-		return list;
-	}
-	@Override
-	public List<Map<String, Object>> getSensorByMonitorPointId(String monitor_point_id) {
-		List<Map<String,Object>> list = sensorMapper.getSensorByMonitorPointId(monitor_point_id);
-		return list;
-	}
+    public List<Sensor> getAllSensors() {
+        return sensorMapper.selectAll();
+    }
+
+    @Override
+    public Map<String, Object> getSensorBySensorKey(String sensorKey) {
+        Map<String, Object> map = sensorMapper.getSensorBySensorKey(sensorKey);
+        return map;
+    }
+
+    @Override
+    public List<Map<String, Object>> getSensorByDeviceId(String id) {
+        List<Map<String, Object>> list = sensorMapper.getSensorByDeviceId(id);
+        return list;
+    }
+
+    @Override
+    public List<Map<String, Object>> getSensorByDId(String id) {
+        List<Map<String, Object>> list = sensorMapper.getSensorByDId(id);
+        return list;
+    }
+    @Override
+    public List<Map<String, Object>> getSensorByMonitorPointId(String monitor_point_id) {
+        List<Map<String, Object>> list = sensorMapper.getSensorByMonitorPointId(monitor_point_id);
+        return list;
+    }
 
     @Override
     public Map<String, String> getSensorsMap(Map<String, Object> parameters) {
@@ -112,22 +139,120 @@
     }
 
     @Override
-    public Map<String, String> getSensorsMapOnly(String mac) {
-        List<Sensor> sensors = sensorMapper.getSensorsByMacOnly(mac);
-        Map<String, String> sensorMap = new HashMap<>();
+    public List<Map<String, String>> getSensorsMaps(String mac) {
+        List<Sensor> sensors = sensorMapper.getSensorsInfoByMac(mac);
+        Map<String, String> sensorsDescriptionMap = new HashMap<>();
         for (Sensor sensor : sensors) {
-            sensorMap.put(sensor.getSensorKey(), sensor.getDescription());
+            sensorsDescriptionMap.put(sensor.getSensorKey(), sensor.getDescription());
         }
-        return sensorMap;
+        Map<String, String> sensorsUnitMap = new HashMap<>();
+        for (Sensor sensor : sensors) {
+            sensorsUnitMap.put(sensor.getSensorKey(), sensor.getUnit());
+        }
+        List<Map<String, String>> sensorsMapList = new ArrayList<>();
+        sensorsMapList.add(sensorsDescriptionMap);
+        sensorsMapList.add(sensorsUnitMap);
+        return sensorsMapList;
     }
 
     @Override
-    public Map<String, String> getSensorsUnitMap(String mac) {
-        List<Sensor> sensors = sensorMapper.getSensorsByMacOnly(mac);
-        Map<String, String> sensorMap = new HashMap<>();
+    public List<Map<String, String>> getSensorsAllMap() {
+        List<Sensor> sensors = sensorMapper.selectAll();
+        Map<String, String> sensorsDescriptionMap = new HashMap<>();
         for (Sensor sensor : sensors) {
-            sensorMap.put(sensor.getSensorKey(), sensor.getUnit());
+            sensorsDescriptionMap.put(sensor.getSensorKey(), sensor.getDescription());
         }
-        return sensorMap;
+        Map<String, String> sensorsUnitMap = new HashMap<>();
+        for (Sensor sensor : sensors) {
+            sensorsUnitMap.put(sensor.getSensorKey(), sensor.getUnit());
+        }
+        List<Map<String, String>> sensorsMapList = new ArrayList<>();
+        sensorsMapList.add(sensorsDescriptionMap);
+        sensorsMapList.add(sensorsUnitMap);
+        return sensorsMapList;
     }
+
+    @Override
+    public List<Sensor> selectSenosrsByOrgId(Map<String, Object> parameters) {
+        List<String> macList = new ArrayList<>();
+        List<MonitorPoint> monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters);
+        for (MonitorPoint m : monitorPoints) {
+            for (Device d : m.getDevices()) {
+                macList.add(d.getMac());
+            }
+        }
+        parameters.put("macs", macList);
+        List<Sensor> sensors = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(macList)) {
+            sensors = sensorMapper.selectSenosrsByOrgId(parameters);
+        } else {
+            sensors = sensorMapper.selectAll();
+        }
+        return sensors;
+    }
+
+    @Override
+    public List<List<String>> listSensorInfos(String[] sensorsResult) {
+        List<String> sensorKeys = new ArrayList<>();
+        List<String> sensorKeysNames = new ArrayList<>();
+        List<String> sensorKeysUnits = new ArrayList<>();
+        List<List<String>> sensorInfos = new ArrayList<>();
+        for (int index = 0; index < sensorsResult.length; index++) {
+            String[] split = sensorsResult[index].split("-");
+            String key = split[0].replace("\"", "");
+            String name = split[1].replace("\"", "");
+            String Unit = split[2].replace("\"", "");
+            sensorKeys.add(key);
+            sensorKeysNames.add(name);
+            sensorKeysUnits.add(Unit);
+        }
+        sensorInfos.add(sensorKeys);
+        sensorInfos.add(sensorKeysNames);
+        sensorInfos.add(sensorKeysUnits);
+        return sensorInfos;
+    }
+
+    @Override
+    public List<List<Map<String, Object>>> listExcelDatas(List<List<String>> sensorInfos, List<Map<String, Object>> list) {
+        List<List<Map<String, Object>>> sheets = new ArrayList<>();
+        for (int i = 0; i < sensorInfos.get(0).size(); i++) {
+            List<Map<String, Object>> sheet = new ArrayList<>();
+            for (int j = 0; j < list.size(); j++) {
+                Map<String, Object> data = new LinkedHashMap<>();
+                for (Map.Entry<String, Object> kv : list.get(j).entrySet()) {
+                    if ("monitorPointName".equals(kv.getKey())) {
+                        if ("null".equals(sensorInfos.get(2).get(i))) {
+                            data.put("������������(������:)", kv.getValue());
+                        } else {
+                            data.put("������������(������:" + sensorInfos.get(2).get(i) + ")", kv.getValue());
+                        }
+                    } else if ("name".equals(kv.getKey())) {
+                        data.put("������������", kv.getValue());
+                    } else {
+                        String sensorsValue = kv.getValue().toString();
+                        JSONObject jsonObject = JSONObject.parseObject(sensorsValue);
+                        if (jsonObject != null) {
+                            List<Object> sensorsValueList = (List<Object>) jsonObject.get(sensorInfos.get(0).get(i));
+                            if (sensorsValueList != null) {
+                                data.put(kv.getKey(), sensorsValueList.get(0));
+                            } else {
+                                data.put(kv.getKey(), "");
+                            }
+                        } else {
+                            data.put(kv.getKey(), "");
+                        }
+                    }
+                }
+                sheet.add(data);
+            }
+            sheets.add(sheet);
+        }
+        return sheets;
+    }
+
+    @Override
+    public List<String> getSensorKeys() {
+        return sensorMapper.getSensorKeys();
+    }
+
 }

--
Gitblit v1.8.0