package com.ruoyi.iot.service.impl;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.ruoyi.common.core.controller.BaseController;
|
import com.ruoyi.common.core.domain.AjaxResult;
|
import com.ruoyi.common.utils.DateUtils;
|
import com.ruoyi.iot.domain.Device;
|
import com.ruoyi.iot.domain.DeviceFilter;
|
import com.ruoyi.iot.domain.DeviceLog;
|
import com.ruoyi.iot.domain.DeviceOrder;
|
import com.ruoyi.iot.mapper.DeviceFilterMapper;
|
import com.ruoyi.iot.mapper.DeviceMapper;
|
import com.ruoyi.iot.model.ThingsModels.ThingsModelValueItem;
|
import com.ruoyi.iot.model.ThingsModels.ThingsModelValueItemDto;
|
import com.ruoyi.iot.model.ThingsModels.ThingsModelValuesInput;
|
import com.ruoyi.iot.model.ThingsModels.ThingsModelValuesOutput;
|
import com.ruoyi.iot.service.ICategoryService;
|
import com.ruoyi.iot.service.IDeviceFilterService;
|
import com.ruoyi.iot.service.IDeviceService;
|
import com.ruoyi.iot.tdengine.service.ILogService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
|
|
|
@Service
|
public class DeviceFilterlmpl implements IDeviceFilterService {
|
|
//
|
@Autowired
|
private DeviceFilterMapper deviceFilterMapper;
|
|
@Autowired
|
private IDeviceFilterService deviceFilterService;
|
|
@Autowired
|
private DeviceMapper deviceMapper;
|
|
@Autowired
|
private ThingsModelServiceImpl thingsModelService;
|
|
/**
|
* 查询设备订单表中已派单/已接单所有的数据
|
*
|
* @return
|
* @throws Exception
|
*/
|
@Override
|
public List<DeviceFilter> selectFilterAll() throws Exception {
|
return deviceFilterMapper.selectFilterAll();
|
}
|
|
/**
|
* 修改信息
|
*
|
* @param deviceFilter
|
* @return
|
* @throws Exception
|
*/
|
|
@Transactional
|
public AjaxResult updateFilter(DeviceFilter deviceFilter) throws Exception {
|
Device device = new Device();
|
return null;
|
}
|
|
@Override
|
@Transactional
|
public AjaxResult insertFilter(DeviceFilter DeviceFilter){
|
|
return null;
|
};
|
|
/**
|
* 更新设备的物模型
|
*
|
* @param input 设备ID和物模型值
|
* @param type 1=属性 2=功能
|
* @return 设备
|
*/
|
/**
|
* 低寿命滤芯导入
|
*
|
* @param input 设备ID和物模型值
|
* @param type 1=属性 2=功能
|
* @return 设备
|
*/
|
|
@Override
|
@Transactional(rollbackFor = Exception.class)
|
public int reportDeviceThingsModelValueFilter(ThingsModelValuesInput input, int type, boolean isShadow) {
|
// 查询物模型
|
String thingsModels = thingsModelService.getCacheThingsModelByProductId(input.getProductId());
|
JSONObject thingsModelObject = JSONObject.parseObject(thingsModels);
|
//ThingsModelValueItemDto——物模型
|
List<ThingsModelValueItemDto> valueList = null;
|
if (type == 1) {
|
JSONArray properties = thingsModelObject.getJSONArray("properties");
|
valueList = properties.toJavaList(ThingsModelValueItemDto.class);
|
} else if (type == 2) {
|
JSONArray functions = thingsModelObject.getJSONArray("functions");
|
valueList = functions.toJavaList(ThingsModelValueItemDto.class);
|
}
|
|
// 查询物模型值
|
ThingsModelValuesOutput deviceThings = deviceMapper.selectDeviceThingsModelValueBySerialNumber(input.getDeviceNumber());
|
//物模型值的项——ThingsModelValueItem
|
List<ThingsModelValueItem> thingsModelValues = JSONObject.parseArray(deviceThings.getThingsModelValue(), ThingsModelValueItem.class);
|
|
for (int i = 0; i < input.getThingsModelValueRemarkItem().size(); i++) {
|
// 赋值
|
for (int j = 0; j < thingsModelValues.size(); j++) {
|
if (input.getThingsModelValueRemarkItem().get(i).getId().equals(thingsModelValues.get(j).getId())) {
|
// 影子模式只更新影子值
|
if (!isShadow) {
|
thingsModelValues.get(j).setValue(String.valueOf(input.getThingsModelValueRemarkItem().get(i).getValue()));
|
}
|
thingsModelValues.get(j).setShadow(String.valueOf(input.getThingsModelValueRemarkItem().get(i).getValue()));
|
break;
|
}
|
}
|
|
//日志
|
for (int k = 0; k < valueList.size(); k++) {
|
if (valueList.get(k).getId().equals(input.getThingsModelValueRemarkItem().get(i).getId()) && input.getThingsModelValueRemarkItem().get(i).getId().contains("Filter")) {
|
if (Integer.parseInt(input.getThingsModelValueRemarkItem().get(i).getValue()) < 5) {
|
valueList.get(k).setValue(input.getThingsModelValueRemarkItem().get(i).getValue());
|
DeviceFilter DeviceFilter = new DeviceFilter();
|
DeviceFilter.setFilteName(input.getThingsModelValueRemarkItem().get(i).getId());
|
DeviceFilter.setDeviceId(deviceThings.getDeviceId());
|
DeviceFilter.setDeviceName(deviceThings.getDeviceName());
|
DeviceFilter.setUserId(deviceThings.getUserId());
|
DeviceFilter.setFilterLife(input.getThingsModelValueRemarkItem().get(i).getValue());
|
deviceFilterService.insertFilter(DeviceFilter);
|
break;
|
}
|
}
|
}
|
}
|
input.setStringValue(JSONObject.toJSONString(thingsModelValues));
|
input.setDeviceId(deviceThings.getDeviceId());
|
return deviceMapper.updateDeviceThingsModelValue(input);
|
}
|
|
}
|