package com.sandu.ximon.admin.service;
|
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.sandu.common.execption.BusinessException;
|
import com.sandu.common.service.impl.BaseServiceImpl;
|
import com.sandu.ximon.admin.dto.WaterQualityDataDto;
|
import com.sandu.ximon.dao.domain.WaterQualityData;
|
import com.sandu.ximon.dao.mapper.WaterQualityDataMapper;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.util.List;
|
|
@Service
|
@AllArgsConstructor
|
public class WaterQualityDataService extends BaseServiceImpl<WaterQualityDataMapper, WaterQualityData> {
|
//水质参数获取网址,例如:"http://iot.ainongye.cn/json/设备编号.json"
|
private final String WATER_QUALITY_DATA_URL = "http://iot.ainongye.cn/json/";
|
|
/**
|
* 查询全部水质设备数据
|
*/
|
public List<WaterQualityData> listWaterQualityData() {
|
LambdaQueryWrapper<WaterQualityData> wrapper = Wrappers.lambdaQuery(WaterQualityData.class);
|
List<WaterQualityData> list = list(wrapper);
|
|
return list;
|
}
|
|
/**
|
* 模糊查询
|
*/
|
public List<WaterQualityData> listWaterQualityDataByKeyword(String keyword) {
|
|
LambdaQueryWrapper<WaterQualityData> wrapper = Wrappers.lambdaQuery(WaterQualityData.class);
|
if (keyword != null) {
|
wrapper.like(WaterQualityData::getBelongTo, keyword);
|
}
|
List<WaterQualityData> waterQualityDataList = list(wrapper);
|
return waterQualityDataList;
|
}
|
|
/**
|
* 获取水质数据
|
*
|
* @param waterQualityEquipmentCode 设备编号
|
*/
|
public WaterQualityDataDto getWaterQualityDataInfo(String waterQualityEquipmentCode) {
|
WaterQualityDataDto waterQualityDataDto = null;
|
try {
|
String s = HttpUtil.get(WATER_QUALITY_DATA_URL + waterQualityEquipmentCode + ".json");
|
System.out.println(s);
|
|
waterQualityDataDto = JSON.parseObject(s, WaterQualityDataDto.class);
|
WaterQualityData waterQualityData = new WaterQualityData();
|
for (WaterQualityDataDto.WaterQualityBean bean : waterQualityDataDto.getData()) {
|
switch (bean.getCode()) {
|
case "A211"://水质PH
|
waterQualityData.setWaterQualityPh(bean.getValue());
|
break;
|
case "A203"://水质溶解氧
|
waterQualityData.setWaterQualityDo(bean.getValue());
|
break;
|
case "A343"://浊度
|
waterQualityData.setWaterQualityNtu(bean.getValue());
|
break;
|
case "A209"://电导率
|
waterQualityData.setWaterQualityEc(bean.getValue());
|
break;
|
default:
|
}
|
}
|
waterQualityData.setWaterQualityEquipmentCode(waterQualityDataDto.getDid());
|
save(waterQualityData);
|
} catch (Exception e) {
|
e.printStackTrace();
|
throw new BusinessException("水质设备号不正确");
|
}
|
|
return waterQualityDataDto;
|
}
|
}
|