Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

liuyaowen 1 год назад
Родитель
Сommit
7de95844e4

+ 17 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/qxz/controller/IotDeviceQxzController.java

@@ -96,4 +96,21 @@ public class IotDeviceQxzController extends BaseController {
         iotDeviceBaseFunReqVo.setParam(reqVo);
         return AjaxResult.success(iotDeviceCommonService.func(iotDeviceBaseFunReqVo));
     }
+
+    /**
+     * 获取最近数据列表接口
+     * @param
+     * @return
+     */
+    @GetMapping("/data/dataLatest/{devBid}")
+    public AjaxResult dataLatest(@PathVariable("devBid") String devBid) {
+        IotDeviceQxzDataListReqVo reqVo = new IotDeviceQxzDataListReqVo();
+        reqVo.setDevBid(devBid);
+
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(reqVo.getDevBid());
+        iotDeviceBaseFunReqVo.setMethodName("dataLatest");
+        iotDeviceBaseFunReqVo.setParam(reqVo);
+        return AjaxResult.success(iotDeviceCommonService.func(iotDeviceBaseFunReqVo));
+    }
 }

+ 51 - 16
src/main/java/com/yunfeiyun/agmp/iotm/device/qxz/service/impl/IotYfQxzServiceImpl.java

@@ -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;
+    }
 }