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 { //水质参数获取网址,例如:"http://iot.ainongye.cn/json/设备编号.json" private final String WATER_QUALITY_DATA_URL = "http://iot.ainongye.cn/json/"; private WaterQualityDataMapper waterQualityDataMapper; /** * 模糊查询 */ public List listWaterQualityDataByKeyword(BaseConditionVO baseConditionVO, String keyword) { Long clientId = SecurityUtils.getClientId(); PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize()); List waterQualityDataId = waterQualityDataMapper.listWaterQualityDataId(keyword, clientId); if (CollUtil.isEmpty(waterQualityDataId)) { return CollUtil.newArrayList(); } List 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"); 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); } catch (Exception e) { e.printStackTrace(); throw new BusinessException("水质设备号不正确"); } return waterQualityDataDto; } }