package com.moral.service.impl;
|
|
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 {
|
@Resource
|
SensorMapper sensorMapper;
|
|
@Resource
|
MonitorPointService monitorPointService;
|
|
private static Class ENTITY_CLASS = Sensor.class;
|
|
/**
|
* 查询所有的传感器类型
|
*
|
* @return
|
*/
|
@Override
|
public List<Sensor> queryAll() {
|
return sensorMapper.selectByExample(null);
|
}
|
|
public PageBean<Sensor> queryByPageBean(PageBean pageBean) {
|
return MyBatisBaseMapUtil.queryPage(sensorMapper, pageBean, ENTITY_CLASS);
|
}
|
|
@Override
|
public PageBean queryByVersionId(Integer deviceVersionId) {
|
List<Sensor> sensorList = sensorMapper.selectByVersionId(deviceVersionId);
|
return new PageBean(sensorList);
|
}
|
|
@Override
|
public List<Sensor> queryListByVersionId(Integer deviceVersionId) {
|
return sensorMapper.selectByVersionId(deviceVersionId);
|
}
|
|
@Override
|
public List<Sensor> queryListByVersionNo(Integer versionNo) {
|
return sensorMapper.selectByVersionNo(versionNo);
|
}
|
|
public void addOrModify(Sensor sensor) {
|
try {
|
if (sensor.getId() == null) {
|
sensorMapper.insertSelective(sensor);
|
} else {
|
sensorMapper.updateByPrimaryKeySelective(sensor);
|
}
|
} catch (Exception ex) {
|
throw ex;
|
}
|
}
|
|
@Override
|
public void deleteByIds(Integer... ids) {
|
if (ids != null && ids.length > 0) {
|
if (ids.length == 1) {
|
sensorMapper.deleteByPrimaryKey(ids[0]);
|
} else {
|
Example example = new Example(ENTITY_CLASS);
|
example.or().andIn("id", Arrays.asList(ids));
|
sensorMapper.deleteByExample(example);
|
}
|
|
}
|
}
|
|
/**
|
* 获取当前组织下所有传感器并集
|
*
|
* @param organizationId
|
* @return
|
*/
|
@Override
|
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;
|
}
|
|
@Override
|
public Map<String, String> getSensorsMap(Map<String, Object> parameters) {
|
List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters);
|
Map<String, String> sensorMap = new HashMap<>();
|
for (Sensor sensor : sensors) {
|
sensorMap.put(sensor.getSensorKey(), sensor.getDescription());
|
}
|
return sensorMap;
|
}
|
|
@Override
|
public List<Map<String, String>> getSensorsMaps(String mac) {
|
List<Sensor> sensors = sensorMapper.getSensorsInfoByMac(mac);
|
Map<String, String> sensorsDescriptionMap = new HashMap<>();
|
for (Sensor sensor : sensors) {
|
sensorsDescriptionMap.put(sensor.getSensorKey(), sensor.getDescription());
|
}
|
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<Map<String, String>> getSensorsAllMap() {
|
List<Sensor> sensors = sensorMapper.selectAll();
|
Map<String, String> sensorsDescriptionMap = new HashMap<>();
|
for (Sensor sensor : sensors) {
|
sensorsDescriptionMap.put(sensor.getSensorKey(), sensor.getDescription());
|
}
|
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;
|
}
|
|
}
|