Skip to content

Commit

Permalink
设备最新数据
Browse files Browse the repository at this point in the history
  • Loading branch information
lgt1126 committed Aug 27, 2021
1 parent 59cd975 commit b2dada8
Show file tree
Hide file tree
Showing 10 changed files with 51 additions and 21 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.zmops.iot.web.analyse.controller;

import com.zmops.iot.model.response.ResponseData;
import com.zmops.iot.model.page.Pager;
import com.zmops.iot.web.analyse.dto.LatestDto;
import com.zmops.iot.web.analyse.dto.param.HistoryParam;
import com.zmops.iot.web.analyse.service.HistoryService;
import org.springframework.beans.factory.annotation.Autowired;
Expand All @@ -22,7 +23,7 @@ public class HistoryController {
HistoryService historyService;

@RequestMapping("/query")
public ResponseData qeuryHistory(@Validated @RequestBody HistoryParam historyParam) {
return ResponseData.success(historyService.queryHistory(historyParam));
public Pager<LatestDto> qeuryHistory(@Validated @RequestBody HistoryParam historyParam) {
return historyService.queryHistory(historyParam);
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.zmops.iot.web.analyse.controller;

import com.zmops.iot.model.response.ResponseData;
import com.zmops.iot.model.page.Pager;
import com.zmops.iot.web.analyse.dto.LatestDto;
import com.zmops.iot.web.analyse.dto.param.LatestParam;
import com.zmops.iot.web.analyse.service.LatestService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
* @author yefei
*
* <p>
* 最新数据
**/
@RestController
Expand All @@ -23,7 +23,7 @@ public class LatestController {
LatestService latestService;

@RequestMapping("/query")
public ResponseData qeuryLatest(@Validated @RequestBody LatestParam latestParam){
return ResponseData.success(latestService.qeuryLatest(latestParam));
public Pager<LatestDto> qeuryLatest(@Validated @RequestBody LatestParam latestParam) {
return latestService.qeuryLatest(latestParam);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zmops.iot.web.analyse.dto.param;

import com.zmops.iot.web.sys.dto.param.BaseQueryParam;
import lombok.Data;

import javax.validation.constraints.NotNull;
Expand All @@ -9,7 +10,7 @@
* @author yefei
**/
@Data
public class HistoryParam {
public class HistoryParam extends BaseQueryParam {

@NotNull(message = "请选择一个设备再查询")
private Long deviceId;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.zmops.iot.web.analyse.dto.param;

import com.zmops.iot.web.sys.dto.param.BaseQueryParam;
import lombok.Data;

import javax.validation.constraints.NotNull;
Expand All @@ -9,7 +10,7 @@
* @author yefei
**/
@Data
public class LatestParam {
public class LatestParam extends BaseQueryParam{
@NotNull(message = "请选择一个设备再查询")
private Long deviceId;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.zmops.iot.domain.device.query.QDevice;
import com.zmops.iot.domain.product.ProductAttribute;
import com.zmops.iot.domain.product.query.QProductAttribute;
import com.zmops.iot.model.page.Pager;
import com.zmops.iot.util.LocalDateTimeUtils;
import com.zmops.iot.util.ToolUtil;
import com.zmops.iot.web.analyse.dto.LatestDto;
Expand All @@ -31,10 +32,13 @@ public class HistoryService {
@Autowired
ZbxHistoryGet zbxHistoryGet;

public List<LatestDto> queryHistory(HistoryParam historyParam) {
return queryHistory(historyParam.getDeviceId(), historyParam.getAttrIds(),
public Pager<LatestDto> queryHistory(HistoryParam historyParam) {
List<LatestDto> latestDtos = queryHistory(historyParam.getDeviceId(), historyParam.getAttrIds(),
LocalDateTimeUtils.getSecondsByStr(historyParam.getTimeFrom()),
LocalDateTimeUtils.getSecondsByStr(historyParam.getTimeTill()));
List<LatestDto> collect = latestDtos.stream().skip((historyParam.getMaxRow() - 1) * historyParam.getPage())
.limit(historyParam.getMaxRow()).collect(Collectors.toList());
return new Pager<>(collect,latestDtos.size());
}

public List<LatestDto> queryHistory(Long deviceId, List<Long> attrIds, Long timeFrom, Long timeTill) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.zmops.iot.domain.device.query.QDevice;
import com.zmops.iot.domain.product.ProductAttribute;
import com.zmops.iot.domain.product.query.QProductAttribute;
import com.zmops.iot.model.page.Pager;
import com.zmops.iot.util.LocalDateTimeUtils;
import com.zmops.iot.util.ToolUtil;
import com.zmops.iot.web.analyse.dto.LatestDto;
Expand Down Expand Up @@ -36,9 +37,11 @@ public class LatestService {
* @param latestParam
* @return
*/
public List<LatestDto> qeuryLatest(LatestParam latestParam) {
public Pager<LatestDto> qeuryLatest(LatestParam latestParam) {
List<LatestDto> latestDtos = qeuryLatest(latestParam.getDeviceId(), latestParam.getAttrIds());
return latestDtos;
List<LatestDto> collect = latestDtos.stream().skip((latestParam.getMaxRow() - 1) * latestParam.getPage())
.limit(latestParam.getMaxRow()).collect(Collectors.toList());
return new Pager<>(collect,latestDtos.size());
}

public List<LatestDto> qeuryLatest(Long deviceId, List<Long> attrIds) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public class DeviceModelController {
* @return ResponseData
*/
@RequestMapping("/getAttrTrapperByPage")
public Pager<ProductAttrDto> prodModelAttributeList(@RequestBody ProductAttrParam productAttr) {
public Pager<ProductAttrDto> prodModelAttributeList(@Validated(BaseEntity.Get.class) @RequestBody ProductAttrParam productAttr) {
return deviceModelService.prodModelAttributeList(productAttr);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import com.alibaba.fastjson.JSONObject;
import com.zmops.iot.domain.device.Device;
import com.zmops.iot.domain.device.query.QDevice;
import com.zmops.iot.domain.product.Product;
import com.zmops.iot.domain.product.ProductAttribute;
import com.zmops.iot.domain.product.query.QProduct;
import com.zmops.iot.domain.product.query.QProductAttribute;
import com.zmops.iot.model.exception.ServiceException;
import com.zmops.iot.model.page.Pager;
import com.zmops.iot.util.ToolUtil;
import com.zmops.iot.web.analyse.dto.LatestDto;
import com.zmops.iot.web.analyse.service.LatestService;
import com.zmops.iot.web.exception.enums.BizExceptionEnum;
import com.zmops.iot.web.product.dto.ProductAttr;
import com.zmops.iot.web.product.dto.ProductAttrDto;
Expand All @@ -36,6 +36,9 @@ public class DeviceModelService {
@Autowired
private ZbxItem zbxItem;

@Autowired
LatestService latestService;

/**
* 设备属性分页列表
*
Expand All @@ -45,9 +48,8 @@ public class DeviceModelService {
public Pager<ProductAttrDto> prodModelAttributeList(ProductAttrParam productAttr) {
QProductAttribute qProductAttribute = new QProductAttribute();

if (null != productAttr.getProdId()) {
qProductAttribute.productId.eq(productAttr.getProdId());
}
qProductAttribute.productId.eq(productAttr.getProdId());

if (ToolUtil.isNotEmpty(productAttr.getAttrName())) {
qProductAttribute.name.contains(productAttr.getAttrName());
}
Expand All @@ -57,6 +59,19 @@ public Pager<ProductAttrDto> prodModelAttributeList(ProductAttrParam productAttr

List<ProductAttrDto> pagedList = qProductAttribute.setFirstRow((productAttr.getPage() - 1) * productAttr.getMaxRow())
.setMaxRows(productAttr.getMaxRow()).orderBy(" create_time desc").asDto(ProductAttrDto.class).findList();

//查询最新数据
List<Long> attrIds = pagedList.parallelStream().map(ProductAttrDto::getAttrId).collect(Collectors.toList());
List<LatestDto> latestDtos = latestService.qeuryLatest(productAttr.getProdId(), attrIds);
Map<Long, LatestDto> map = latestDtos.parallelStream().collect(Collectors.toMap(LatestDto::getAttrId, o -> o));

pagedList.forEach(productAttrDto -> {
if (null != map.get(productAttrDto.getAttrId())) {
productAttrDto.setClock(map.get(productAttrDto.getAttrId()).getClock());
productAttrDto.setValue(map.get(productAttrDto.getAttrId()).getValue());
}
});

int count = qProductAttribute.findCount();
return new Pager<>(pagedList, count);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,9 @@ public class ProductAttrDto implements BaseDto {
@CachedValue(type = DicType.SysUserName)
private Long updateUser;

private String clock;

private String value;


}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.zmops.iot.web.sys.dto.param.BaseQueryParam;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;
Expand All @@ -15,6 +14,7 @@
@Data
public class ProductAttrParam extends BaseQueryParam {

@NotNull(groups = BaseEntity.Get.class,message = "请选择一个设备再查询")
private Long prodId;

private String attrName;
Expand Down

0 comments on commit b2dada8

Please sign in to comment.