于紫祥_1901
2020-12-24 f28149d8183a62f87fa9c8df9ae589070d83f612
src/main/java/com/moral/service/impl/SensorServiceImpl.java
@@ -1,59 +1,86 @@
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;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
@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 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);
    }
    public void addOrModify(Sensor sensor){
        try{
            if(sensor.getId()==null){
    @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{
            } 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);
@@ -61,4 +88,171 @@
        }
    }
    /**
     * 获取当前组织下所有传感器并集
     *
     * @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>> 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) {
        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;
    }
    @Override
    public List<String> getSensorKeys() {
        return sensorMapper.getSensorKeys();
    }
}