fengxiang
2018-06-28 b77f77dae23be890dd98e03a8a9abffec9e3d94c
src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -14,6 +14,7 @@
import com.moral.common.util.ExampleUtil;
import com.moral.common.util.RedisUtils;
import com.moral.mapper.MonitorPointMapper;
import com.moral.mapper.OrganizationMapper;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
@@ -32,7 +33,7 @@
@Service
public class DeviceServiceImpl implements DeviceService {
   Logger log = Logger.getLogger(DeviceServiceImpl.class);
   private static Logger log = Logger.getLogger(DeviceServiceImpl.class);
   //-----------------------redis key前缀-开始---------------------------------
   private static String AlARM = "alarm";//警报阀值储存key前缀
   private static String ADJUST="adjust";//校准值存储key前缀
@@ -55,6 +56,8 @@
   @Resource
   private AccountService accountService;
    private Class ENTITY_CLASS = Device.class;
    @Resource
   OrganizationMapper orgMapper;
   @Resource
   RedisUtils redisUtils;
   @Override
@@ -179,17 +182,23 @@
   /**
    *
    * @param map
    * @param params
    * map里 包括 组织id和4个坐标点
    * @return 返回未删除结果集
    */
   @Override
   public List<Device> query(Map<String, Object> map) {
      List <Device> list = deviceMapper.selectByMap(map);
      loadDeviceState(list);
      return list;
   public List<Device> query(Map<String, Object> params) {
      Object orgIdObj = params.get("orgId");
      List<Device> deviceList = null;
      if(orgIdObj != null) {
         Integer orgId = Integer.parseInt(orgIdObj.toString());
         List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
         params.put("orgIds", orgIds);
         deviceList = deviceMapper.selectByMap(params);
         loadDeviceState(deviceList);
      }
      return deviceList;
   }
   /**
    *  根据组织id和设备名称 分页查询设备
    * @param orgId
@@ -200,10 +209,29 @@
    */
   @Override
   public PageResult query(Integer orgId, String deviceName, Integer pageSize, Integer pageNo) {
      List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
      if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
         PageHelper.startPage(pageNo,pageSize);
      }
      List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,deviceName);
      String state = null;
      switch (deviceName){
         case "正常":
            state = "0";
            deviceName = null;break;
            case "轻度":
            state = "1";
            deviceName = null;break;
         case "中度":
            state = "2";
            deviceName = null;break;
         case "重度":
            state = "3";
            deviceName = null;break;
         case "维保":
            state = "4";
            deviceName = null;break;
      }
      List<Device> list = deviceMapper.selectByOrgIdAndDevName(orgId,orgIds,state,deviceName);
      //从redis里取状态
      loadDeviceState(list);
      if(list instanceof Page){
@@ -222,10 +250,11 @@
    */
   @Override
   public PageResult query(Integer orgId, Integer mpId, Integer pageSize, Integer pageNo) {
      List<Integer> orgIds = orgMapper.selectLowerOrgIds(orgId);
      if(!ObjectUtils.isEmpty(pageSize)&&!ObjectUtils.isEmpty(pageNo)){
         PageHelper.startPage(pageNo,pageSize);
      }
      List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,mpId);
      List<Device> list = deviceMapper.selectByOrgIdAndMpId(orgId,orgIds,mpId);
      //从redis里取状态
      loadDeviceState(list);
      if(list instanceof Page){
@@ -358,18 +387,27 @@
   }
   @Override
   @Transactional
   public void addOrModify(Device device){
      try{
         //mac 转小写
         if(!StringUtils.isBlank(device.getMac())){
            device.setMac(device.getMac().toLowerCase());
         }
         if(device.getId()==null){
            device.setState(Constants.DEVICE_STATE_OFFLINE);
            device.setIsDelete(Constants.IS_DELETE_FALSE);
            deviceMapper.insertSelective(device);
         }else{
         if(device.getId()!=null){
            deviceMapper.updateByPrimaryKeySelective(device);
         }else{
            Device deviceQuery = new Device();
            deviceQuery.setMac(device.getMac());
            Device deviceResult = deviceMapper.selectOne(deviceQuery);
            if(deviceResult !=null){
               device.setId(deviceResult.getId());
               deviceMapper.updateByPrimaryKeySelective(device);
            }else {
               device.setState(Constants.DEVICE_STATE_OFFLINE);
               device.setIsDelete(Constants.IS_DELETE_FALSE);
               deviceMapper.insertSelective(device);
            }
         }
         //刷新redis里设备信息
         refreshDeviceInRedis(device.getMac());