Sfoglia il codice sorgente

修复 在没有数据情况下导出数据报错的问题

zhaiyifei 10 mesi fa
parent
commit
61470668f6

+ 3 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/bzy/controller/IotDeviceBzyController.java

@@ -291,6 +291,9 @@ public class IotDeviceBzyController extends BaseController {
         }
 
         List<IotBzydata> all = mongoService.findAll(IotBzydata.class, map);
+        if(all == null || all.isEmpty()) {
+            throw new IotBizException(IotErrorCode.DB_NOT_FOUND.getCode(), "数据不存在");
+        }
 
         for (IotBzydata item : all) {
             IotBzyDeviceDataListResVo resVo = JSONObject.parseObject(item.getBzydataContent().toJSONString(), IotBzyDeviceDataListResVo.class);

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/service/IIotCbdCommService.java

@@ -223,6 +223,10 @@ public class IIotCbdCommService extends IotDeviceBaseServiceImpl implements IotD
 
         Class tableClass = getTableClass(iotDevice.getDevtypeBid());
         List<CbdBaseDataEntity> dataList = mongoService.findAll(tableClass, map, "cbddataCreatedDate desc");
+        if(dataList == null || dataList.isEmpty()) {
+            throw new IotBizException(ErrorCode.FAILURE.getCode(), "暂无数据");
+        }
+
         if(iotDevice.getDevtypeBid().equals(IotDeviceDictConst.TYPE_YF_XCT)) {
             List<IotDeviceXctDataListResVo> list = new ArrayList<>();
             for(CbdBaseDataEntity item: dataList){

+ 3 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/qxsqz/controller/IotDeviceQxzController.java

@@ -212,6 +212,9 @@ public class IotDeviceQxzController extends BaseController {
         TableDataInfo tableDataInfo = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
 
         List<List<IotQxzDataListRseVo>> dataList = (List<List<IotQxzDataListRseVo>>) tableDataInfo.getData();
+        if(dataList == null || dataList.isEmpty()){
+            throw new IotBizException(IotErrorCode.DB_NOT_FOUND.getCode(), "数据不存在");
+        }
         List<IotQxzDataListRseVo> iotQxzDataListRseVoList = dataList.get(0);
 
         //使用数据初始化excel

+ 8 - 1
src/main/java/com/yunfeiyun/agmp/iotm/device/qxsqz/service/IIotQxzCommService.java

@@ -223,9 +223,16 @@ public class IIotQxzCommService extends IotDeviceBaseServiceImpl implements IotD
         Map<String, Object> pushMapStr = new HashMap<>();
         pushMapStr.put("$toString", roundMap);
 
+        Map<String, Object> dateMap = new HashMap<>();
+        dateMap.put("$dateSubtract", new HashMap<String, Object>(){{
+            put("startDate", "$_id.time");
+            put("unit", "hour");
+            put("amount", 8);
+        }});
+
         Map<String, Object> pushMap = new HashMap<>();
         pushMap.put("number", pushMapStr);
-        pushMap.put("time", "$_id.time");
+        pushMap.put("time", dateMap);
 
         GroupOperation groupOperation3 = Aggregation.group("_id.eName", "_id.eNum", "_id.eKey")
                 .push(pushMap).as("dataList");

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/scd/service/impl/IotYfScdServiceImpl.java

@@ -272,6 +272,10 @@ public class IotYfScdServiceImpl extends IIotScdCommService {
         }
 
         List<IotYfScddata> iotYfScddataList = getExportDataList(iotDeviceDataListReqVo);
+        if(iotYfScddataList == null || iotYfScddataList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "数据不存在");
+        }
+
         if (Objects.equals(findDevice.getDevtypeBid(), IotDeviceDictConst.TYPE_YF_SCD)) {
             List<IotYfScdDataExportVo> exportVoList = new ArrayList<>();
             for (IotYfScddata iotYfScddata : iotYfScddataList) {
@@ -344,6 +348,10 @@ public class IotYfScdServiceImpl extends IIotScdCommService {
         }
 
         List<IotYfScddata> iotYfScddataList = getExportDataList(iotDeviceDataListReqVo);
+        if(iotYfScddataList == null || iotYfScddataList.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "数据不存在");
+        }
+
         List<IotYfScdStatusExportVo> exportVoList = new ArrayList<>();
         for (IotYfScddata iotYfScddata : iotYfScddataList) {
             JSONObject jsonObject = iotYfScddata.getScddataContent();

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/xycb/service/IIotXycbCommService.java

@@ -364,6 +364,10 @@ public class IIotXycbCommService extends IotDeviceBaseServiceImpl implements Iot
 
         TableDataInfo tableDataInfo = dataList(reqVo1, pageDomain);
         List<IotYfXycbDataListRspVo> list = (List<IotYfXycbDataListRspVo>) tableDataInfo.getData();
+        if(list == null || list.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "数据不存在");
+        }
+
         ExcelUtil util = new ExcelUtil<>(IotYfXycbDataListRspVo.class);
         util.exportExcel(response, list, "设备数据");
     }

+ 4 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/ybq/controller/IotYbqController.java

@@ -206,6 +206,10 @@ public class IotYbqController extends BaseController {
     @PostMapping("/export")
     public void export(HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
         List<IotYbqEnvData> iotYbqEnvDataResVos = iotYbqEnvDataService.selectIotYbqEnvDataList(reqVo);
+        if(iotYbqEnvDataResVos == null || iotYbqEnvDataResVos.isEmpty()){
+            throw new IotBizException(ErrorCode.INVALID_PARAMETER.getCode(), "数据不存在");
+        }
+
         ExcelUtil<IotYbqEnvData> util = new ExcelUtil<>(IotYbqEnvData.class);
         log.info("要导出的数据条数:{}", iotYbqEnvDataResVos.size());
         util.exportExcel(response, iotYbqEnvDataResVos, "设备数据");

+ 1 - 1
src/main/java/com/yunfeiyun/agmp/iotm/util/MongoUtil.java

@@ -10,7 +10,7 @@ public class MongoUtil {
             long diffTime = DateUtils.parseDate(endDate).getTime() - DateUtils.parseDate(startDate).getTime();
             if(diffTime <= 48 * 60 * 60 * 1000){
                 ret = "minute";
-            }else if(diffTime <= 30L * 24 * 60 * 60 * 1000){
+            }else if(diffTime <= 35L * 24 * 60 * 60 * 1000){
                 ret = "hour";
             }
         }