|
|
@@ -6,6 +6,7 @@ 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.framework.manager.RedisCacheManager;
|
|
|
import com.yunfeiyun.agmp.common.utils.DateUtils;
|
|
|
import com.yunfeiyun.agmp.common.utils.StringUtils;
|
|
|
import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
|
|
|
@@ -45,11 +46,18 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
@Autowired
|
|
|
private IIotDeviceService iotDeviceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RedisCacheManager redisCacheManager;
|
|
|
+
|
|
|
+ public TableDataInfo dataList(IotDeviceQxzDataListReqVo reqVo) throws ParseException {
|
|
|
+ return dataList(reqVo, true);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取数据列表接口
|
|
|
* @param reqVo
|
|
|
*/
|
|
|
- public TableDataInfo dataList(IotDeviceQxzDataListReqVo reqVo) throws ParseException {
|
|
|
+ public TableDataInfo dataList(IotDeviceQxzDataListReqVo reqVo, boolean isNow) throws ParseException {
|
|
|
TableDataInfo rspData = new TableDataInfo();
|
|
|
rspData.setCode(ErrorCode.SUCCESS.getCode());
|
|
|
rspData.setMsg(ErrorCode.SUCCESS.getMessage());
|
|
|
@@ -59,21 +67,22 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(reqVo.getDevBid());
|
|
|
|
|
|
String devBid = findDevice.getDevBid();
|
|
|
- Date startDate = null;
|
|
|
- Date endDate = null;
|
|
|
- try{
|
|
|
- startDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, reqVo.getStartTime());
|
|
|
- endDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, reqVo.getEndTime());
|
|
|
- }catch (Exception e){
|
|
|
- log.error("时间格式错误", e);
|
|
|
- throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "请输入正确的起止时间");
|
|
|
- }
|
|
|
-
|
|
|
Criteria criteria = new Criteria().and("devBid").is(devBid);
|
|
|
- criteria = criteria.andOperator(
|
|
|
- Criteria.where("time").gte(startDate),
|
|
|
- Criteria.where("time").lte(endDate)
|
|
|
- );
|
|
|
+ if(isNow){
|
|
|
+ Date startDate = null;
|
|
|
+ Date endDate = null;
|
|
|
+ try{
|
|
|
+ startDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, reqVo.getStartTime());
|
|
|
+ endDate = DateUtils.dateTime(DateUtils.YYYY_MM_DD_HH_MM_SS, reqVo.getEndTime());
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("时间格式错误", e);
|
|
|
+ throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "请输入正确的起止时间");
|
|
|
+ }
|
|
|
+ criteria = criteria.andOperator(
|
|
|
+ Criteria.where("time").gte(startDate),
|
|
|
+ Criteria.where("time").lte(endDate)
|
|
|
+ );
|
|
|
+ }
|
|
|
|
|
|
MatchOperation matchOperation = Aggregation.match(criteria);
|
|
|
|
|
|
@@ -115,7 +124,7 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
* 获取折线图数据列表接口
|
|
|
* @param reqVo
|
|
|
*/
|
|
|
- public List<IotQxzDataListRseVo> chartList(IotDeviceQxzDataListReqVo reqVo) {
|
|
|
+ public List<IotQxzDataListRseVo> chartList(IotDeviceQxzDataListReqVo reqVo) throws ParseException {
|
|
|
|
|
|
//1、查出总条数 2、查出“符合条件的、当前页的”数据 3、json结构重组(如果需要的话) 4、附加 要素自定义 信息
|
|
|
|
|
|
@@ -288,4 +297,30 @@ public class IotYfQxzServiceImpl extends IotDeviceBaseServiceImpl implements Iot
|
|
|
}
|
|
|
return iotQxzDataListRseVoList;
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取最近数据列表接口
|
|
|
+ * @param reqVo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public IotDevicelasteddata dataLatest(IotDeviceQxzDataListReqVo reqVo) throws ParseException {
|
|
|
+ String devBid = reqVo.getDevBid();
|
|
|
+
|
|
|
+ IotDevice findDevice = iotDeviceService.selectIotDeviceByDevBid(reqVo.getDevBid());
|
|
|
+ TableDataInfo tableDataInfo = dataList(reqVo, false);
|
|
|
+ List<List<IotQxzDataListRseVo>> rest = (List<List<IotQxzDataListRseVo>>) tableDataInfo.getData();
|
|
|
+ if(rest == null || rest.isEmpty()){
|
|
|
+ log.info("devBid:{},【最近数据】empty",devBid);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<IotQxzDataListRseVo> iotQxzDataListRseVoList = rest.get(0);
|
|
|
+ IotQxzDataListRseVo iotQxzDataListRseVo = iotQxzDataListRseVoList.get(0);
|
|
|
+ IotDevicelasteddata latestData = new IotDevicelasteddata();
|
|
|
+ BeanUtils.copyProperties(findDevice, latestData);
|
|
|
+ latestData.setDevldCreateddate(iotQxzDataListRseVo.getTime());
|
|
|
+ latestData.setDevldUpdateddate(iotQxzDataListRseVo.getTime());
|
|
|
+ latestData.setDevldContent(JSONArray.toJSONString(iotQxzDataListRseVoList));
|
|
|
+ return latestData;
|
|
|
+ }
|
|
|
}
|