package com.sandu.ximon.admin.service;
|
|
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.github.pagehelper.PageHelper;
|
import com.sandu.common.execption.BusinessException;
|
import com.sandu.common.object.BaseConditionVO;
|
import com.sandu.common.service.impl.BaseServiceImpl;
|
import com.sandu.ximon.admin.dto.WaterQualityDataDto;
|
import com.sandu.ximon.admin.security.SecurityUtils;
|
import com.sandu.ximon.dao.bo.WaterQualityDataBo;
|
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/";
|
|
private WaterQualityDataMapper waterQualityDataMapper;
|
|
/**
|
* 模糊查询
|
*/
|
public List<WaterQualityDataBo> listWaterQualityDataByKeyword(BaseConditionVO baseConditionVO, String keyword) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
List<Long> waterQualityDataId;
|
if (SecurityUtils.getClientId() == null) {
|
waterQualityDataId = waterQualityDataMapper.listWaterQualityDataId(keyword, null);
|
} else {
|
waterQualityDataId = waterQualityDataMapper.listWaterQualityDataId(keyword, SecurityUtils.getUserId());
|
}
|
if (CollUtil.isEmpty(waterQualityDataId)) {
|
return CollUtil.newArrayList();
|
}
|
List<WaterQualityDataBo> airEquipmentBos = waterQualityDataMapper.listWaterQualityDataByIds(waterQualityDataId);
|
return airEquipmentBos;
|
}
|
|
/**
|
* 获取水质数据
|
*
|
* @param waterQualityEquipmentCode 设备编号
|
*/
|
public WaterQualityDataDto getWaterQualityDataInfo(String waterQualityEquipmentCode) {
|
WaterQualityDataDto waterQualityDataDto = null;
|
try {
|
String s = HttpUtil.get(WATER_QUALITY_DATA_URL + waterQualityEquipmentCode + ".json");
|
if (s.startsWith("{") && s.endsWith("}")) {
|
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());
|
//设置水质设备状态
|
if (waterQualityDataDto != null) {
|
waterQualityDataDto.setState(1);
|
} else {
|
waterQualityDataDto.setState(0);
|
}
|
save(waterQualityData);
|
} else {
|
System.out.println("水质数据不正确!");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("水质设备号不正确");
|
// throw new BusinessException("水质设备号不正确");
|
}
|
|
return waterQualityDataDto;
|
}
|
}
|