package com.moral.service.impl; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.collections.CollectionUtils; import org.springframework.stereotype.Service; 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 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 queryAll() { return sensorMapper.selectByExample(null); } public PageBean queryByPageBean(PageBean pageBean) { return MyBatisBaseMapUtil.queryPage(sensorMapper, pageBean, ENTITY_CLASS); } @Override public PageBean queryByVersionId(Integer deviceVersionId) { List sensorList = sensorMapper.selectByVersionId(deviceVersionId); return new PageBean(sensorList); } @Override public List queryListByVersionId(Integer deviceVersionId) { return sensorMapper.selectByVersionId(deviceVersionId); } @Override public List 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 queryByOrgId(Integer organizationId) { return sensorMapper.selectByOrgId(organizationId); } @Override public List getAllSensors() { return sensorMapper.selectAll(); } @Override public Map getSensorBySensorKey(String sensorKey) { Map map = sensorMapper.getSensorBySensorKey(sensorKey); return map; } @Override public List> getSensorByDeviceId(String id) { List> list = sensorMapper.getSensorByDeviceId(id); return list; } @Override public List> getSensorByMonitorPointId(String monitor_point_id) { List> list = sensorMapper.getSensorByMonitorPointId(monitor_point_id); return list; } @Override public Map getSensorsMap(Map parameters) { List sensors = sensorMapper.getSensorsByMac(parameters); Map sensorMap = new HashMap<>(); for (Sensor sensor : sensors) { sensorMap.put(sensor.getSensorKey(), sensor.getDescription()); } return sensorMap; } @Override public List> getSensorsMaps(String mac) { List sensors = sensorMapper.getSensorsInfoByMac(mac); Map sensorsDescriptionMap = new HashMap<>(); for (Sensor sensor : sensors) { sensorsDescriptionMap.put(sensor.getSensorKey(), sensor.getDescription()); } Map sensorsUnitMap = new HashMap<>(); for (Sensor sensor : sensors) { sensorsUnitMap.put(sensor.getSensorKey(), sensor.getUnit()); } List> sensorsMapList = new ArrayList<>(); sensorsMapList.add(sensorsDescriptionMap); sensorsMapList.add(sensorsUnitMap); return sensorsMapList; } @Override public List selectSenosrsByOrgId(Map parameters) { List macList = new ArrayList<>(); List monitorPoints = monitorPointService.getMonitorPointsAndDevicesByRegion(parameters); for (MonitorPoint m : monitorPoints) { for (Device d : m.getDevices()) { macList.add(d.getMac()); } } parameters.put("macs", macList); List sensors = new ArrayList<>(); if (!CollectionUtils.isEmpty(macList)) { sensors = sensorMapper.selectSenosrsByOrgId(parameters); } else { sensors = sensorMapper.selectAll(); } return sensors; } }