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