lizijie
2019-09-03 2bfc4ed9012c5cae2a01bc67bdce68eeb59dc0b8
src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -1,24 +1,5 @@
package com.moral.service.impl;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import com.alibaba.fastjson.TypeReference;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
@@ -39,8 +20,24 @@
import com.moral.mapper.OrganizationMapper;
import com.moral.service.AccountService;
import com.moral.service.DeviceService;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class DeviceServiceImpl implements DeviceService {
@@ -432,12 +429,18 @@
      }
      return  deviceMapper.countByTimes(start, end, format);
   }
   @Override
   public List<Device> getDevicesByMonitorPointId(Integer monitorPointId) {
      Device device = new Device();
      device.setMonitorPointId(monitorPointId);
      device.setIsDelete(Constants.IS_DELETE_FALSE);
      return deviceMapper.select(device);
      List<Device> devices = deviceMapper.select(device);
      for (Device device2 : devices) {
         DeviceProperty deviceProperty = devicePropertyMapper.selectByPrimaryKey(device2.getId());
         device2.setDeviceProperty(deviceProperty);
      }
      return devices;
   }
   /**
@@ -526,6 +529,7 @@
   @Override
   @Transactional
   public void saveOrUpdate(Device device, DeviceProperty deviceProperty) {
      device.setMac(device.getMac().toLowerCase());
      if (ObjectUtils.isEmpty(device.getId())) {
         device.setState(Constants.DEVICE_STATE_OFFLINE);
         device.setIsDelete(Constants.IS_DELETE_FALSE);
@@ -550,4 +554,71 @@
      return new PageBean(deviceList);
   }
   @Override
   public void offLinToMaintenance(Map<String, Object> parameters) {
      ValidateUtil.notNull(parameters.get("id"), "param.is.null");
      ValidateUtil.notNull(parameters.get("old_state"), "param.is.null");
      ValidateUtil.notNull(parameters.get("new_state"), "param.is.null");
      int count = 0;
      if (Constants.DEVICE_STATE_OFFLINE.equals(parameters.get("old_state")) && Constants.DEVICE_STATE_MAINTENANCE.equals(parameters.get("new_state"))) {
         Device device = new Device();
         Example example = new Example(ENTITY_CLASS);
         example.and().andEqualTo("id", new Integer(parameters.get("id").toString())).andEqualTo("state", Constants.DEVICE_STATE_OFFLINE);
         device.setState(Constants.DEVICE_STATE_MAINTENANCE);
         count = deviceMapper.updateByExampleSelective(device, example);
      }
      if (count == 0) {
         throw new BusinessException("参数不合法!");
      }
   }
   @Override
   public void saveOrUpdate4Mobile(Device device, DeviceProperty deviceProperty) {
      device.setMac(device.getMac().toLowerCase());
      Device selectDevice = new Device();
      selectDevice.setMac(device.getMac());
      selectDevice = deviceMapper.selectOne(selectDevice);
      if (ObjectUtils.isEmpty(selectDevice)) {
         device.setState(Constants.DEVICE_STATE_OFFLINE);
         device.setIsDelete(Constants.IS_DELETE_FALSE);
         deviceMapper.insertSelective(device);
         deviceProperty.setId(device.getId());
         devicePropertyMapper.insertSelective(deviceProperty);
      } else {
         device.setId(selectDevice.getId());
         deviceMapper.updateByPrimaryKeySelective(device);
         deviceProperty.setId(selectDevice.getId());
         devicePropertyMapper.selectByPrimaryKey(selectDevice.getId());
         if (ObjectUtils.isEmpty(devicePropertyMapper.selectByPrimaryKey(deviceProperty.getId()))) {
            devicePropertyMapper.insertSelective(deviceProperty);
         } else {
            devicePropertyMapper.updateByPrimaryKeySelective(deviceProperty);
         }
      }
      refreshDeviceInRedis(device.getMac());
   }
   @Override
   public String getLimitDataByDevice(Map<String, Object> parameters) {
      // TODO Auto-generated method stub
      return deviceMapper.getLimitDataByDevice(parameters);
   }
   //按经度升序排序,通过mac地址找到相邻经度的第二个点位置
   @Override
   public Device getDeviceByLongitudeAsc(String mac) {
      Example example = new Example(Device.class);
      example.setOrderByClause("longitude ASC");
      List<Device> deviceList=deviceMapper.selectByExample(example);
      for(int i=0;i<deviceList.size();i++){
         if(mac.equals(deviceList.get(i).getMac())){
            Device deviceSecond=deviceList.get(i+1);
            return deviceSecond;
         }
      }
      return null;
   }
}