2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-04-18 f2dfd5e6fbbb9c4e96e91c86be0bb6f7a44d87c3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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");
            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;
    }
}