Преглед изворни кода

设备运行查询-表格展示接口-添加分页查询版本2

sl пре 2 месеци
родитељ
комит
32c46d4943

+ 16 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoff/controller/EquipmentOnoffController.java

@@ -230,4 +230,20 @@ public class EquipmentOnoffController extends JeecgController<EquipmentOnoff, IE
 
 	 }
 
+	 /**
+	  * 设备健康-设备运行查询-表格展示  从mongodb查询设备的历史数据  查询给的日期当天所有的数据
+	  * 分列页表查询  不拆分数据
+	  *
+	  * @return
+	  */
+	 //@AutoLog(value = "设备健康-设备运行查询")
+	 @ApiOperation(value="设备健康-设备运行查询-表格展示分列页表不拆分数据", notes="设备健康-设备运行查询-表格展示分列页表不拆分数据")
+	 @GetMapping(value = "/getHistoryListByPage2")
+	 public Result<IPage<Map<String, Object>>> getHistoryListByPage2(HistoryParamDayDto historyParamDayDto,
+																	@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+																	@RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
+		 return equipmentOnoffService.getHistoryListByPage2(pageNo, pageSize, historyParamDayDto);
+
+	 }
+
 }

+ 1 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoff/service/IEquipmentOnoffService.java

@@ -25,5 +25,6 @@ public interface IEquipmentOnoffService extends IService<EquipmentOnoff> {
     Result<List<Map<String, Object>>> getEquipHistoryDataList(HistoryParamDayDto historyParamDayDto);
 
     Result<IPage<Map<String, Object>>> getHistoryListByPage(Integer pageNo, Integer pageSize, HistoryParamDayDto historyParamDayDto);
+    Result<IPage<Map<String, Object>>> getHistoryListByPage2(Integer pageNo, Integer pageSize, HistoryParamDayDto historyParamDayDto);
 
 }

+ 77 - 0
module_tpm/src/main/java/org/jeecg/modules/equipmentOnoff/service/impl/EquipmentOnoffServiceImpl.java

@@ -329,4 +329,81 @@ public class EquipmentOnoffServiceImpl extends ServiceImpl<EquipmentOnoffMapper,
         return Result.ok(result);
     }
 
+    public Result<IPage<Map<String, Object>>> getHistoryListByPage2(Integer pageNo, Integer pageSize, HistoryParamDayDto historyParamDayDto){
+        //1.根据设备id查找设备的参数信息列表 找不到直接返回
+        List<TpmParams> tpmParamsList = tpmParamsMapper.queryByEquipId(historyParamDayDto.getEquipmentid());
+        if(tpmParamsList.size()==0) {
+            return Result.error("未找到对应数据");
+        }
+        //2.根据设备id找到设备编号 找不到直接返回
+        String equipmentcode;
+        try {
+            equipmentcode = (tpmEquipmentService.getById(historyParamDayDto.getEquipmentid())).getEquipmentcode();
+        }catch (NullPointerException e){
+            return Result.error("id为" + historyParamDayDto.getEquipmentid() + "的设备找不到设备编号,无法进行数据查询!");
+        }
+        //3.处理传来的时间数据   根据时间确定要查询哪一天的数据  处理成带时区的时间
+        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
+        sdf1.setTimeZone(TimeZone.getTimeZone("UTC")); // 设置时区为UTC
+        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
+//        String dateStr = historyParamDayDto.getDate();
+        Date date;
+        String dateStr = historyParamDayDto.getDate().replace("\"", "");
+        try {
+            if(dateStr.contains("T")){
+                date = sdf1.parse(dateStr);
+            }else{
+                date = sdf2.parse(dateStr);
+            }
+        } catch (ParseException e) {
+            return Result.error("日期类型转换失败!");
+        }
+        Calendar dateCal = Calendar.getInstance();
+        dateCal.setTime(date);
+        dateCal.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
+        Date startDate = dateCal.getTime();
+        // 将日期增加一天
+        dateCal.add(Calendar.DATE, 1);
+        Date endDate = dateCal.getTime();
+
+        //4.通过前面处理得到的设备code和时间,以及page分页读取mongodb
+        List<Map<String, Object>> historyList = new ArrayList<>();
+        List<Collectdata> orgDataList = new ArrayList<>();
+        long total = 0;
+        Pageable pageable = PageRequest.of(pageNo - 1, pageSize);
+        //创建查询对象
+        Query HistoryQuery = new Query().with(pageable);
+        //添加查询条件
+        HistoryQuery.addCriteria(Criteria.where("equipmentcode").is(equipmentcode));
+        HistoryQuery.addCriteria(Criteria.where("logtime").gte(startDate).lte(endDate)); // 大于等于startDate且小于等于endDate
+        //创建查询对象
+        Query HistoryQueryCount = new Query();
+        //添加查询条件
+        HistoryQueryCount.addCriteria(Criteria.where("equipmentcode").is(equipmentcode));
+        HistoryQueryCount.addCriteria(Criteria.where("logtime").gte(startDate).lte(endDate));
+        //执行查询
+        try{
+            orgDataList.addAll(mongoTemplate.find(HistoryQuery, Collectdata.class, "data_"+new SimpleDateFormat("yyyyMM").format(startDate)));
+            total = mongoTemplate.count(HistoryQueryCount, Collectdata.class, "data_"+new SimpleDateFormat("yyyyMM").format(startDate));
+        }catch (NullPointerException e){}
+        //表格展示示例:
+        //[{"tagname":"电流","logtime","2025-02-24 10:10:10","tagvalue":12},.......................]
+        for(Collectdata collectdata:orgDataList){
+            Map<String, Object> dataMap = new ObjectMapper().convertValue(collectdata.getProperties(), Map.class);
+            if(dataMap.containsKey("TIME")){
+                dataMap.remove("TIME");
+            }
+            if(dataMap.containsKey("time")){
+                dataMap.remove("time");
+            }
+            dataMap.put("logtime", collectdata.getLogtime());
+            historyList.add(dataMap);
+        }
+        //手动创建一个分页
+        //创建分页示例
+        IPage<Map<String, Object>> result = new Page<>(pageNo, pageSize, total);
+        result.setRecords(historyList);
+        return Result.ok(result);
+    }
+
 }