Browse Source

Merge branch 'master' of http://124.70.43.205:3000/GYEE_R.D/gaia

xushili 1 year ago
parent
commit
63d1f5b4e1

+ 1 - 1
electricity/meter/src/main/java/com/gyee/gaia/meter/controller/MeterController.java

@@ -21,7 +21,7 @@ import java.util.List;
  **/
 @RestController
 @CrossOrigin(origins = "*")
-@RequestMapping("/meterinfo1")
+@RequestMapping("/meterinfoAll")
 public class MeterController {
     @Resource
     GetWindStationInfo getWindStationInfo;

+ 273 - 41
electricity/meter/src/main/java/com/gyee/gaia/meter/controller/MeterInfoController.java

@@ -1,5 +1,6 @@
 package com.gyee.gaia.meter.controller;
 
+import com.alibaba.cloud.commons.lang.StringUtils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.gyee.gaia.meter.entity.Equipment;
 import com.gyee.gaia.meter.entity.MeterPoint;
@@ -76,62 +77,219 @@ public class MeterInfoController {
     }
 
 
-    @GetMapping("/meter/getMeterTypeCalculating")
-    public Result<Object> getMeterTypeCalculating(
-            @RequestParam(required = false) String windId
+    //请求路径传参时,没有的参数不能传空
+    @GetMapping("/meter/getMeterTypeCalculating1")
+    public Result<Object> getMeterTypeCalculating1(
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String type,
+            @RequestParam(required = false) String meterClass
     ) {
 
-        //下拉框选择类型
-        List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
-                .eq("property", "JSD")
-                .eq("windpowerstation_id", windId)
-        );
+        if (windId != null && type != null && !type.equals("") && meterClass != null && !meterClass.equals("")) { //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "JSD")
+                    .eq("windpowerstation_id", windId)
+                    .eq("meter_type", type)
+                    .eq("meter_class", meterClass)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getName();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null && type != null&&!type.equals("")) {
+            //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "JSD")
+                    .eq("windpowerstation_id", windId)
+                    .eq("meter_type", type)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getMeterClass();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
 
-        Set<String> encounteredMeterTypes = new HashSet<>();
-        List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+        } else if (windId != null) {
+            //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "JSD")
+                    .eq("windpowerstation_id", windId)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getMeterType();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
 
-        for (MeterPoint meterPoint : meterTypeList) {
-            String meterType = meterPoint.getMeterType();
-            if (!encounteredMeterTypes.contains(meterType)) {
-                MeterInfoVo meterInfoVo = new MeterInfoVo();
-                meterInfoVo.setName(meterType);
-                meterTypeListVo.add(meterInfoVo);
-                encounteredMeterTypes.add(meterType);
+        }
+
+        return new Result<>(201, "成功", null);
+
+    }
+
+
+    //修改适配,请求路径可以不传参数,或者传空值
+    @GetMapping("/meter/getMeterTypeCalculating")
+    public Result<Object> getMeterTypeCalculating(
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String type,
+            @RequestParam(required = false) String meterClass
+    ) {
+        if (windId != null) {
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "JSD")
+                    .eq("windpowerstation_id", windId)
+                    .eq(StringUtils.isNotBlank(type), "meter_type", type)
+                    .eq(StringUtils.isNotBlank(meterClass), "meter_class", meterClass)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType;
+
+                if (StringUtils.isNotBlank(type) && StringUtils.isBlank(meterClass)) {
+                    meterType = meterPoint.getName();
+                } else if (StringUtils.isNotBlank(type)) {
+                    meterType = meterPoint.getMeterClass();
+                } else {
+                    meterType = meterPoint.getMeterType();
+                }
+
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
             }
+
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
         }
-        Map<String, Object> response = new HashMap<>();
-        response.put("type", meterTypeListVo);
-        return new Result<>(200, "成功", response);
 
+        return new Result<>(201, "成功", null);
     }
 
 
+
+
     @GetMapping("/meter/getMeterTypeBottom")
     public Result<Object> getMeterTypeBottom(
-            @RequestParam(required = false) String windId
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String type,
+            @RequestParam(required = false) String meterClass
     ) {
 
-        //下拉框选择类型
-        List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
-                .eq("property", "CD")
-                .eq("windpowerstation_id", windId)
-        );
-
-        Set<String> encounteredMeterTypes = new HashSet<>();
-        List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+        if (windId != null && type != null && meterClass != null) {
+            //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "CD")
+                    .eq("windpowerstation_id", windId)
+                    .eq("meter_type", type)
+                    .eq("meter_class", meterClass)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getName();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
 
-        for (MeterPoint meterPoint : meterTypeList) {
-            String meterType = meterPoint.getMeterType();
-            if (!encounteredMeterTypes.contains(meterType)) {
-                MeterInfoVo meterInfoVo = new MeterInfoVo();
-                meterInfoVo.setName(meterType);
-                meterTypeListVo.add(meterInfoVo);
-                encounteredMeterTypes.add(meterType);
+        } else if (windId != null && type != null) {
+            //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "CD")
+                    .eq("windpowerstation_id", windId)
+                    .eq("meter_type", type)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getMeterClass();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
+            }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null) {
+            //下拉框选择类型
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "CD")
+                    .eq("windpowerstation_id", windId)
+            );
+
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType = meterPoint.getMeterType();
+                if (!encounteredMeterTypes.contains(meterType)) {
+                    MeterInfoVo meterInfoVo = new MeterInfoVo();
+                    meterInfoVo.setName(meterType);
+                    meterTypeListVo.add(meterInfoVo);
+                    encounteredMeterTypes.add(meterType);
+                }
             }
+            Map<String, Object> response = new HashMap<>();
+            response.put("type", meterTypeListVo);
+            return new Result<>(200, "成功", response);
         }
-        Map<String, Object> response = new HashMap<>();
-        response.put("type", meterTypeListVo);
-        return new Result<>(200, "成功", response);
+
+        return new Result<>(201, "失败", null);
 
     }
 
@@ -167,12 +325,46 @@ public class MeterInfoController {
     public Result<Object> getBottomInfo(
             @RequestParam(required = false) String windId,
             @RequestParam(required = false) String meterType,
+            @RequestParam(required = false) String meterClass,
+            @RequestParam(required = false) String name,
             @RequestParam(required = false) long startTime,
             @RequestParam(required = false) long endTime,
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-        if (windId != null && meterType != null) {
+        if (windId != null && meterType != null && meterClass != null && name != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoByWindId(windId, meterType, meterClass, name, startTime, endTime);
+            // 进行分页处理
+            int totalItems = meterInfoByWindIdList.size();
+            int startIndex = (page - 1) * perPage;
+            int endIndex = Math.min(startIndex + perPage, totalItems);
+
+            List<MeterInfoVo> paginatedList = meterInfoByWindIdList.subList(startIndex, endIndex);
+
+            // 构建响应
+            Map<String, Object> response = new HashMap<>();
+            response.put("bottom", paginatedList);
+            response.put("totalItems", totalItems);
+            response.put("page", page);
+            response.put("perPage", perPage);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null && meterType != null && meterClass != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoByWindId(windId, meterType, meterClass, startTime, endTime);
+            // 进行分页处理
+            int totalItems = meterInfoByWindIdList.size();
+            int startIndex = (page - 1) * perPage;
+            int endIndex = Math.min(startIndex + perPage, totalItems);
+
+            List<MeterInfoVo> paginatedList = meterInfoByWindIdList.subList(startIndex, endIndex);
+
+            // 构建响应
+            Map<String, Object> response = new HashMap<>();
+            response.put("bottom", paginatedList);
+            response.put("totalItems", totalItems);
+            response.put("page", page);
+            response.put("perPage", perPage);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null && meterType != null) {
             ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoByWindId(windId, meterType, startTime, endTime);
             // 进行分页处理
             int totalItems = meterInfoByWindIdList.size();
@@ -269,12 +461,52 @@ public class MeterInfoController {
     public Result<Object> getCalculatingInfo(
             @RequestParam(required = false) String windId,
             @RequestParam(required = false) String meterType,
+            @RequestParam(required = false) String meterClass,
+            @RequestParam(required = false) String name,
             @RequestParam(required = true) long startTime,
             @RequestParam(required = true) long endTime,
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-        if (windId != null && meterType != null) {
+        if (windId != null && meterType != null && meterClass != null && name != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoByWindId(windId, meterType, meterClass, name, startTime, endTime);
+            // 进行排序
+            meterInfoByWindIdList.sort(Comparator.comparing(MeterInfoVo::getName));
+
+            // 进行分页处理
+            int totalItems = meterInfoByWindIdList.size();
+            int startIndex = (page - 1) * perPage;
+            int endIndex = Math.min(startIndex + perPage, totalItems);
+
+            List<MeterInfoVo> paginatedList = meterInfoByWindIdList.subList(startIndex, endIndex);
+
+            // 构建响应
+            Map<String, Object> response = new HashMap<>();
+            response.put("calculating", paginatedList);
+            response.put("totalItems", totalItems);
+            response.put("page", page);
+            response.put("perPage", perPage);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null && meterType != null && meterClass != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoByWindId(windId, meterType, meterClass, startTime, endTime);
+            // 进行排序
+            meterInfoByWindIdList.sort(Comparator.comparing(MeterInfoVo::getName));
+
+            // 进行分页处理
+            int totalItems = meterInfoByWindIdList.size();
+            int startIndex = (page - 1) * perPage;
+            int endIndex = Math.min(startIndex + perPage, totalItems);
+
+            List<MeterInfoVo> paginatedList = meterInfoByWindIdList.subList(startIndex, endIndex);
+
+            // 构建响应
+            Map<String, Object> response = new HashMap<>();
+            response.put("calculating", paginatedList);
+            response.put("totalItems", totalItems);
+            response.put("page", page);
+            response.put("perPage", perPage);
+            return new Result<>(200, "成功", response);
+        } else if (windId != null && meterType != null) {
             ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoByWindId(windId, meterType, startTime, endTime);
             // 进行排序
             meterInfoByWindIdList.sort(Comparator.comparing(MeterInfoVo::getName));

+ 241 - 1
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterInfo/GetMeterInfo.java

@@ -146,6 +146,127 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
+    public ArrayList<MeterInfoVo> getBottomInfoByWindId(String windId, String meterType, String meterClass, long startTime, long endTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format1 = simpleDateFormat.format(new Date(startTime));
+        String format2 = simpleDateFormat.format(new Date(endTime));
+
+        // 设置取值开始时间
+        DateTime startDateTime1 = DateUtil.parse(format1);
+        DateTime endDateTime1 = DateUtil.parse(format2);
+
+        DateTime startDateTime = DateUtil.beginOfDay(startDateTime1);
+        DateTime endDateTime = DateUtil.beginOfDay(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差天数" + betweenDays);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .eq("property", "CD")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+        );
+
+        List<String> meterPointNemCodes = new ArrayList<>();
+        for (MeterPoint meterPoint : meterPoints) {
+            meterPointNemCodes.add(meterPoint.getNemCode());
+        }
+
+
+        //需要批量查询的日期集合
+        List<DateTime> dateTimes = new ArrayList<>();
+        for (int i = 0; i <= betweenDays; i++) {
+            DateTime dateTime4 = DateUtil.offsetDay(startDateTime, i);
+            dateTimes.add(dateTime4);
+        }
+
+        List<MeterInfoBottomcode> meterInfoBottomcodes = meterInfoBottomcodeService.list(new QueryWrapper<MeterInfoBottomcode>()
+                .in("start_time", dateTimes)
+                .in("code", meterPointNemCodes)
+        );
+
+        for (MeterInfoBottomcode meterInfoBottomcode : meterInfoBottomcodes) {
+
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setDate(new DateTime(meterInfoBottomcode.getStartTime()));
+            meterInfoVo.setName(meterInfoBottomcode.getName());
+            meterInfoVo.setStartCode(meterInfoBottomcode.getStartValue());
+            meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
+            meterInfoVo.setRdl(meterInfoBottomcode.getDayValue());
+            meterInfoVos.add(meterInfoVo);
+        }
+
+        return meterInfoVos;
+    }
+
+    public ArrayList<MeterInfoVo> getBottomInfoByWindId(String windId, String meterType, String meterClass, String name, long startTime, long endTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format1 = simpleDateFormat.format(new Date(startTime));
+        String format2 = simpleDateFormat.format(new Date(endTime));
+
+        // 设置取值开始时间
+        DateTime startDateTime1 = DateUtil.parse(format1);
+        DateTime endDateTime1 = DateUtil.parse(format2);
+
+        DateTime startDateTime = DateUtil.beginOfDay(startDateTime1);
+        DateTime endDateTime = DateUtil.beginOfDay(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差天数" + betweenDays);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .eq("property", "CD")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+                .eq("name", name)
+        );
+
+        List<String> meterPointNemCodes = new ArrayList<>();
+        for (MeterPoint meterPoint : meterPoints) {
+            meterPointNemCodes.add(meterPoint.getNemCode());
+        }
+
+
+        //需要批量查询的日期集合
+        List<DateTime> dateTimes = new ArrayList<>();
+        for (int i = 0; i <= betweenDays; i++) {
+            DateTime dateTime4 = DateUtil.offsetDay(startDateTime, i);
+            dateTimes.add(dateTime4);
+        }
+
+        List<MeterInfoBottomcode> meterInfoBottomcodes = meterInfoBottomcodeService.list(new QueryWrapper<MeterInfoBottomcode>()
+                .in("start_time", dateTimes)
+                .in("code", meterPointNemCodes)
+        );
+
+        for (MeterInfoBottomcode meterInfoBottomcode : meterInfoBottomcodes) {
+
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setDate(new DateTime(meterInfoBottomcode.getStartTime()));
+            meterInfoVo.setName(meterInfoBottomcode.getName());
+            meterInfoVo.setStartCode(meterInfoBottomcode.getStartValue());
+            meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
+            meterInfoVo.setRdl(meterInfoBottomcode.getDayValue());
+            meterInfoVos.add(meterInfoVo);
+        }
+
+        return meterInfoVos;
+    }
+
 
     public ArrayList<MeterInfoVo> getEquipmentInfoByWindId(String windId, long startTime, long endTime) {
 
@@ -354,6 +475,125 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
+    public ArrayList<MeterInfoVo> getCalculatingInfoByWindId(String windId, String meterType, String meterClass, long startTime, long endTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format1 = simpleDateFormat.format(new Date(startTime));
+        String format2 = simpleDateFormat.format(new Date(endTime));
+
+        // 设置取值开始时间
+        DateTime startDateTime1 = DateUtil.parse(format1);
+        DateTime endDateTime1 = DateUtil.parse(format2);
+
+        DateTime startDateTime = DateUtil.beginOfDay(startDateTime1);
+        DateTime endDateTime = DateUtil.beginOfDay(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差月数" + betweenDays);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .eq("property", "JSD")
+                .eq("meter_type", meterType)
+                .eq("meter_Class", meterClass)
+        );
+
+        List<String> meterPointNemCodes = new ArrayList<>();
+        for (MeterPoint meterPoint : meterPoints) {
+            meterPointNemCodes.add(meterPoint.getNemCode());
+        }
+
+
+        //需要批量查询的日期集合
+        List<DateTime> dateTimes = new ArrayList<>();
+        for (int i = 0; i <= betweenDays; i++) {
+            DateTime dateTime4 = DateUtil.offsetDay(startDateTime, i);
+            dateTimes.add(dateTime4);
+        }
+
+        List<MeterInfoCalculating> meterInfoCalculatings = meterInfoCalculatingService.list(new QueryWrapper<MeterInfoCalculating>()
+                .in("date", dateTimes)
+                .in("code", meterPointNemCodes)
+        );
+
+        for (MeterInfoCalculating meterInfoCalculating : meterInfoCalculatings) {
+
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setDate(new DateTime(meterInfoCalculating.getDate()));
+            meterInfoVo.setName(meterInfoCalculating.getName());
+            meterInfoVo.setRdl(meterInfoCalculating.getValue());
+            meterInfoVos.add(meterInfoVo);
+
+        }
+
+        return meterInfoVos;
+    }
+
+    public ArrayList<MeterInfoVo> getCalculatingInfoByWindId(String windId, String meterType, String meterClass, String name, long startTime, long endTime) {
+
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String format1 = simpleDateFormat.format(new Date(startTime));
+        String format2 = simpleDateFormat.format(new Date(endTime));
+
+        // 设置取值开始时间
+        DateTime startDateTime1 = DateUtil.parse(format1);
+        DateTime endDateTime1 = DateUtil.parse(format2);
+
+        DateTime startDateTime = DateUtil.beginOfDay(startDateTime1);
+        DateTime endDateTime = DateUtil.beginOfDay(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差月数" + betweenDays);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .eq("property", "JSD")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+                .eq("name", name)
+        );
+
+        List<String> meterPointNemCodes = new ArrayList<>();
+        for (MeterPoint meterPoint : meterPoints) {
+            meterPointNemCodes.add(meterPoint.getNemCode());
+        }
+
+
+        //需要批量查询的日期集合
+        List<DateTime> dateTimes = new ArrayList<>();
+        for (int i = 0; i <= betweenDays; i++) {
+            DateTime dateTime4 = DateUtil.offsetDay(startDateTime, i);
+            dateTimes.add(dateTime4);
+        }
+
+        List<MeterInfoCalculating> meterInfoCalculatings = meterInfoCalculatingService.list(new QueryWrapper<MeterInfoCalculating>()
+                .in("date", dateTimes)
+                .in("code", meterPointNemCodes)
+        );
+
+        for (MeterInfoCalculating meterInfoCalculating : meterInfoCalculatings) {
+
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setDate(new DateTime(meterInfoCalculating.getDate()));
+            meterInfoVo.setName(meterInfoCalculating.getName());
+            meterInfoVo.setRdl(meterInfoCalculating.getValue());
+            meterInfoVos.add(meterInfoVo);
+
+        }
+
+        return meterInfoVos;
+    }
+
 
     public ArrayList<MeterInfoVo> getCalculatingInfoMonthByWindId(String windId, long startTime, long endTime) {
 
@@ -978,7 +1218,7 @@ public class GetMeterInfo {
     }
 
 
-    // 辅助方法,根据日期和NemCode查找MeterInfoCalculating对象
+    // 辅助方法,根据日期和NemCode查找对象
     @Nullable
     private MeterInfoCalculating findMeterInfoCalculating(@NotNull List<MeterInfoCalculating> meterInfoCalculatings, String nemCode, DateTime date) {