فهرست منبع

新增 吸虫塔数据导出接口

zhaiyifei 11 ماه پیش
والد
کامیت
8a404607bd

+ 4 - 1
src/main/java/com/yunfeiyun/agmp/iotm/device/common/domin/IotDeviceDataListResVo.java

@@ -56,9 +56,12 @@ public class IotDeviceDataListResVo
     private String vbat;
 
     /** 上报时间 */
-    @Excel(name = "上报时间")
     private String stamp;
 
+    /** 上报时间 */
+    @Excel(name = "上报时间")
+    private String cbddataCreatedDate;
+
 //    public String getRps() {
 //        return "0".equals(rps) ? "正常" : "保护";
 //    }

+ 35 - 26
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/controller/IotDeviceCbdController.java

@@ -11,12 +11,14 @@ import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.common.core.page.TableSupport;
 import com.yunfeiyun.agmp.common.enums.BusinessType;
 import com.yunfeiyun.agmp.common.log.LogCore;
+import com.yunfeiyun.agmp.common.utils.JSONUtils;
 import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
 import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.domain.IotCbddata;
 import com.yunfeiyun.agmp.iot.common.domain.IotCbdimg;
+import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotXctdata;
 import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdConfigEditReqVo;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
@@ -25,6 +27,7 @@ import com.yunfeiyun.agmp.iot.common.service.TypeCacheService;
 import com.yunfeiyun.agmp.iotm.common.controller.BaseController;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListResVo;
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceXctDataListResVo;
 import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceRefreshService;
 import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdModifyDevRecogTypeReqVo;
 import com.yunfeiyun.agmp.iotm.device.pest.domain.IotCbdimgCountResVo;
@@ -219,7 +222,7 @@ public class IotDeviceCbdController extends BaseController {
     }
     @Log(title = "设备数据", businessType = BusinessType.EXPORT)
     @PostMapping("/data/export")
-    public void dataExport(HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
+    public void dataExport(HttpServletRequest request, HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
         ValidateUtil.validateDevBid(reqVo.getDevBid());
         String devBid = reqVo.getDevBid();
         String startTime = reqVo.getStartTime();
@@ -230,38 +233,44 @@ public class IotDeviceCbdController extends BaseController {
                 throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "参数不能为空");
             }
         }
+        IotDevice iotDevice = iIotDeviceService.selectIotDeviceByDevBid(devBid);
+        if (iotDevice == null) {
+            throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "设备不存在");
+        }
 
-            List<IotDeviceDataListResVo> list = new ArrayList<>();
+        Map<String, Object> map = new HashMap<>();
+        map.put("devBid", reqVo.getDevBid());
+        if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isEmpty(reqVo.getEndTime())) {
+            map.put("gte_cbddataCreatedDate", reqVo.getStartTime());
+        }
+        if (StringUtils.isEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
+            map.put("lte_cbddataCreatedDate", reqVo.getEndTime());
+        }
+        if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
+            map.put("time_cbddataCreatedDate", reqVo.getStartTime() + "," + reqVo.getEndTime());
+        }
 
-            Map<String, Object> map = new HashMap<>();
-            map.put("devBid", devBid);
-            if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isEmpty(reqVo.getEndTime())) {
-                map.put("gte_cbddataCreatedDate", reqVo.getStartTime());
-            }
-            if (StringUtils.isEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
-                map.put("lte_cbddataCreatedDate", reqVo.getEndTime());
-            }
-            if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
-                map.put("time_cbddataCreatedDate", reqVo.getStartTime() + "," + reqVo.getEndTime());
+        if(iotDevice.getDevtypeBid().equals(IotDeviceDictConst.TYPE_YF_XCT)) {
+            List<IotXctdata> xctdataList = mongoService.findAll(IotXctdata.class, map, "cbddataCreatedDate desc");
+            List<IotDeviceXctDataListResVo> list = new ArrayList<>();
+            for(IotXctdata iotXctdata: xctdataList){
+                IotDeviceXctDataListResVo resVo = JSONUtils.toObject(iotXctdata.getCdbdataContent().toJSONString(), IotDeviceXctDataListResVo.class);
+                resVo.setCbddataCreatedDate(iotXctdata.getCbddataCreatedDate());
+                list.add(resVo);
             }
-
-            List<IotCbddata> all = mongoService.findAll(IotCbddata.class, map);
-
-
-            for (IotCbddata iotCbddata : all) {
-                IotDeviceDataListResVo resVo = JSONObject.parseObject(iotCbddata.getCdbdataContent().toJSONString(), IotDeviceDataListResVo.class);
-//                String stamp = resVo.getStamp();
-//                DateTimeFormatter dtf = DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode());
-//                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-//                resVo.setStamp(LocalDateTime.parse(stamp, dtf2).format(dtf));
-                resVo.setStamp(iotCbddata.getCbddataCreatedDate());
+            ExcelUtil<IotDeviceXctDataListResVo> util = new ExcelUtil<>(IotDeviceXctDataListResVo.class);
+            util.exportExcel(response, list, "设备数据");
+        }else{
+            List<IotCbddata> cbddataList = mongoService.findAll(IotCbddata.class, map, "cbddataCreatedDate desc");
+            List<IotDeviceDataListResVo> list = new ArrayList<>();
+            for(IotCbddata iotCbddata: cbddataList){
+                IotDeviceDataListResVo resVo = JSONUtils.toObject(iotCbddata.getCdbdataContent().toJSONString(), IotDeviceDataListResVo.class);
+                resVo.setCbddataCreatedDate(iotCbddata.getCbddataCreatedDate());
                 list.add(resVo);
             }
-
-
             ExcelUtil<IotDeviceDataListResVo> util = new ExcelUtil<>(IotDeviceDataListResVo.class);
             util.exportExcel(response, list, "设备数据");
-
+        }
     }
 
     @GetMapping("/refresh/{devBid}")

+ 6 - 4
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/controller/IotXycbController.java

@@ -212,11 +212,13 @@ public class IotXycbController extends BaseController
         }
         reqVo.setDevtypeBidList(Arrays.asList(devTypeList));
         List<IotDeviceListResVo> list = iIotDeviceService.selectIotDeviceListByType(reqVo);
-        List<String> devBidList = list.stream().map(IotDeviceListResVo::getDevBid).collect(Collectors.toList());
-        List<IotXyinfoDto> iotXyinfoDtoList = iIotXyinfoService.selectIotXyinfoListByDevBidList(devBidList);
         Map<String, IotXyinfoDto> iotXyinfoMap = new HashMap<>();
-        for(IotXyinfoDto item : iotXyinfoDtoList){
-            iotXyinfoMap.put(item.getDevBid(), item);
+        if(!list.isEmpty()){
+            List<String> devBidList = list.stream().map(IotDeviceListResVo::getDevBid).collect(Collectors.toList());
+            List<IotXyinfoDto> iotXyinfoDtoList = iIotXyinfoService.selectIotXyinfoListByDevBidList(devBidList);
+            for(IotXyinfoDto item : iotXyinfoDtoList){
+                iotXyinfoMap.put(item.getDevBid(), item);
+            }
         }
 
         Map<String, String> pestTotalMap = iIotXycbUtilService.getPestTotalMap(list);