package com.sandu.ximon.admin.service;
|
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
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.admin.utils.StoreOperationRecordsUtils;
|
import com.sandu.ximon.admin.vo.EquipmentInfomation;
|
import com.sandu.ximon.dao.bo.WaterQualityEquipmentBo;
|
import com.sandu.ximon.dao.domain.WaterQualityEquipment;
|
import com.sandu.ximon.dao.mapper.WaterQualityEquipmentMapper;
|
import lombok.AllArgsConstructor;
|
import org.springframework.stereotype.Service;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Service
|
@AllArgsConstructor
|
public class WaterQualityEquipmentService extends BaseServiceImpl<WaterQualityEquipmentMapper, WaterQualityEquipment> {
|
//水质参数获取网址,例如:"http://iot.ainongye.cn/json/设备编号.json"
|
private final String WATER_QUALITY_DATA_URL = "http://iot.ainongye.cn/json/";
|
private WaterQualityEquipmentMapper waterQualityEquipmentMapper;
|
private final PoleBindingService poleBindingService;
|
|
/**
|
* 查询全部水质设备
|
*/
|
public List<WaterQualityEquipmentBo> listWaterQualityEquipment() {
|
return waterQualityEquipmentMapper.listWaterQualityEquipment();
|
}
|
|
/**
|
* 模糊查询
|
*/
|
public List<WaterQualityEquipmentBo> listWaterQualityEquipmentByKeyword(BaseConditionVO baseConditionVO, String keyword) {
|
Long userId = SecurityUtils.getUserId();
|
if (baseConditionVO != null) {
|
PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
|
}
|
List<WaterQualityEquipmentBo> waterQualityEquipmentBoList;
|
//为空是超管
|
if (SecurityUtils.getClientId() == null) {
|
waterQualityEquipmentBoList = waterQualityEquipmentMapper.listWaterQualityEquipmentByIds(keyword, null);
|
} else {
|
waterQualityEquipmentBoList = waterQualityEquipmentMapper.listWaterQualityEquipmentByIds(keyword, userId);
|
}
|
return waterQualityEquipmentBoList;
|
}
|
|
/**
|
* 删除水质设备
|
*
|
* @param Id
|
* @return
|
*/
|
public boolean deleteWaterQualityEquipment(Long Id) {
|
WaterQualityEquipment waterQualityEquipment = getById(Id);
|
if (waterQualityEquipment == null) {
|
throw new BusinessException("找不到水质设备");
|
}
|
//删除摄水质设备前需要先解绑
|
poleBindingService.unBindPole(null, waterQualityEquipment.getWaterQualityEquipmentCode());
|
|
/**
|
* 删除水质设备 日志记录开始
|
*/
|
List<String> listCode = new ArrayList<>(1);
|
listCode.add(waterQualityEquipment.getWaterQualityEquipmentCode());
|
String content = "{ 设备id:" + waterQualityEquipment.getId() + "设备code:" + waterQualityEquipment.getWaterQualityEquipmentCode() +
|
"}";
|
|
StoreOperationRecordsUtils.storeOperationData(listCode, null, "删除水质设备", content);
|
/**
|
* 删除水质设备 日志记录结束
|
*/
|
return removeById(Id);
|
}
|
|
/**
|
* 添加水质设备
|
*
|
* @param waterQualityEquipment
|
* @return
|
*/
|
|
public boolean addWaterQualityEquipment(WaterQualityEquipment waterQualityEquipment) {
|
if (waterQualityEquipment.getWaterQualityEquipmentCode() == null) {
|
throw new BusinessException("缺少水质设备号参数");
|
}
|
WaterQualityEquipment one = getOne(Wrappers.lambdaQuery(WaterQualityEquipment.class).eq(WaterQualityEquipment::getWaterQualityEquipmentCode,
|
waterQualityEquipment.getWaterQualityEquipmentCode()));
|
if (one == null) {
|
WaterQualityEquipment result = new WaterQualityEquipment();
|
result.setWaterQualityEquipmentCode(waterQualityEquipment.getWaterQualityEquipmentCode());
|
boolean save = save(result);
|
/**
|
* 添加水质设备 日志记录开始
|
*/
|
List<String> listCode = new ArrayList<>(1);
|
listCode.add(waterQualityEquipment.getWaterQualityEquipmentCode());
|
String content = "{ 设备id:" + waterQualityEquipment.getId() + "设备code:" + waterQualityEquipment.getWaterQualityEquipmentCode() +
|
"}";
|
|
StoreOperationRecordsUtils.storeOperationData(listCode, null, "添加水质设备", content);
|
/**
|
* 添加水质设备 日志记录结束
|
*/
|
return save;
|
} else {
|
throw new BusinessException("该水质设备已存在!");
|
}
|
}
|
|
/**
|
* 首页灯杆绑定信息
|
*/
|
public EquipmentInfomation getWaterQualityDataInfo(String waterQualityEquipmentCode) {
|
EquipmentInfomation equipmentInfo = new EquipmentInfomation();
|
equipmentInfo.setEquipmentType("水质设备");
|
if (waterQualityEquipmentCode == null || waterQualityEquipmentCode.trim().length() == 0) {
|
return equipmentInfo;
|
}
|
|
WaterQualityEquipment one = getOne(Wrappers.lambdaQuery(WaterQualityEquipment.class).eq(WaterQualityEquipment::getWaterQualityEquipmentCode,
|
waterQualityEquipmentCode));
|
if (one != null) {
|
equipmentInfo.setEquipmentCreateTime(one.getCreateTime());
|
equipmentInfo.setEquipmentMac(one.getWaterQualityEquipmentCode());
|
}
|
|
try {
|
String s = HttpUtil.get(WATER_QUALITY_DATA_URL + waterQualityEquipmentCode + ".json");
|
System.out.println(waterQualityEquipmentCode + "-------------------------------" + s);
|
if (!s.startsWith("{")) {
|
equipmentInfo.setEquipmentState("未知");
|
return equipmentInfo;
|
}
|
WaterQualityDataDto waterQualityDataDto = JSON.parseObject(s, WaterQualityDataDto.class);
|
//设置水质设备状态
|
if (waterQualityDataDto != null) {
|
equipmentInfo.setEquipmentState("在线");
|
} else {
|
equipmentInfo.setEquipmentState("离线");
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
log.error("水质设备号不正确");
|
equipmentInfo.setEquipmentState("未知");
|
}
|
return equipmentInfo;
|
}
|
}
|