|
|
@@ -6,7 +6,10 @@ import com.yunfeiyun.agmp.common.constant.ErrorCode;
|
|
|
import com.yunfeiyun.agmp.common.core.page.PageDomain;
|
|
|
import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
|
|
|
import com.yunfeiyun.agmp.common.core.page.TableSupport;
|
|
|
+import com.yunfeiyun.agmp.common.enums.RedisCacheKey;
|
|
|
+import com.yunfeiyun.agmp.common.framework.manager.RedisCacheManager;
|
|
|
import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
+import com.yunfeiyun.agmp.common.utils.JSONUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.device.ElementFactorUtil;
|
|
|
@@ -22,6 +25,7 @@ import com.yunfeiyun.agmp.iotm.util.MongoUtil;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
|
|
|
import com.yunfeiyun.agmp.iotm.web.service.IIotDevicefactorService;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.http.util.TextUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
@@ -45,6 +49,9 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
@Autowired
|
|
|
private IIotDeviceService iotDeviceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedisCacheManager redisCacheManager;
|
|
|
+
|
|
|
/**
|
|
|
* 获取数据列表接口
|
|
|
* @param reqVo
|
|
|
@@ -288,4 +295,46 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
}
|
|
|
return iotQxzDataListRseVoList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取最近数据列表接口
|
|
|
+ * @param reqVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IotDevicelasteddata dataLatest(IotDeviceQxzDataListReqVo reqVo) {
|
|
|
+ String devBid = reqVo.getDevBid();
|
|
|
+ //从redis取出
|
|
|
+ IotDevicelasteddata latestData = redisCacheManager.getCacheObject(RedisCacheKey.SYS_RES, devBid);
|
|
|
+ if(latestData==null){
|
|
|
+ log.info("devBid:{},【最近数据】null",devBid);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(TextUtils.isEmpty(latestData.getDevldContent())){
|
|
|
+ log.info("devBid:{},【最近数据】 content empty",devBid);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<IotYfqxzdata> iotYfqxzdataList = JSONUtils.toList(latestData.getDevldContent(),IotYfqxzdata.class);
|
|
|
+ if(iotYfqxzdataList != null && !iotYfqxzdataList.isEmpty()){
|
|
|
+ List<QxzDataDto> dataList = new ArrayList<>();
|
|
|
+ for(IotYfqxzdata item: iotYfqxzdataList){
|
|
|
+ QxzDataDto dto = new QxzDataDto();
|
|
|
+ BeanUtils.copyProperties(item, dto);
|
|
|
+ dataList.add(dto);
|
|
|
+ }
|
|
|
+ //查出该设备的“自定义要素信息列表”
|
|
|
+ IotDevicefactor param = new IotDevicefactor();
|
|
|
+ param.setDevBid(devBid);
|
|
|
+ List<IotDevicefactor> factorList = iotDevicefactorService.selectIotDevicefactorList(param);
|
|
|
+
|
|
|
+ IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(reqVo.getDevBid());
|
|
|
+
|
|
|
+ List<IotQxzDataListRseVo> iotQxzDataListRseVoList = ElementFactorUtil.qxzListProcessData(dataList, factorList, findDevice, false);
|
|
|
+ latestData.setDevldContent(JSONArray.toJSONString(iotQxzDataListRseVoList));
|
|
|
+ }else{
|
|
|
+ log.debug("无数据");
|
|
|
+ }
|
|
|
+ return latestData;
|
|
|
+ }
|
|
|
}
|