Browse Source

日发电量计算bug,补全前一天数据

malijun 1 year ago
parent
commit
6c1ddbd073

+ 106 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/controller/GetTypeController.java

@@ -0,0 +1,106 @@
+package com.gyee.gaia.meter.controller;
+
+import com.gyee.gaia.meter.entity.vo.MeterInfoVo;
+import com.gyee.gaia.meter.entity.vo.Result;
+import com.gyee.gaia.meter.service.meterInfo.GetMeterInfo;
+import com.gyee.gaia.meter.service.meterInfo.GetPowerstation_Type_Class_Name;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 24
+ **/
+@RestController
+@CrossOrigin(origins = "*")
+@RequestMapping("/meter")
+public class GetTypeController {
+
+    @Resource
+    GetMeterInfo getMeterInfo;
+    @Resource
+    GetPowerstation_Type_Class_Name getPowerstationTypeClassName;
+
+
+    /**
+     * @return 所有风场的name和nem_code, 已经排序
+     */
+    @GetMapping("/infoall")
+    public Result<Object> getPowerstation() {
+        //查询返回所有风场的name和nem_code,已经排序
+        ArrayList<MeterInfoVo> powerStationsVo = getPowerstationTypeClassName.getPowerstation();
+        //构建响应map
+        Map<String, Object> response = new HashMap<>();
+        response.put("fdc", powerStationsVo);
+        return new Result<>(200, "成功", response);
+    }
+
+
+    /**
+     * 获取计算点分类
+     *
+     * @param windId     风场nem_code
+     * @param type       meter_type 一级类型
+     * @param meterClass meter_class 二级分类
+     * @return 根据nem_code返回meter_type;
+     * 根据nem_code,meter_type返回meter_class;
+     * 根据nem_code,meter_type,meter_class返回name;
+     */
+    @GetMapping("/getMeterTypeCalculating")
+    public Result<Object> getMeterTypeCalculating(
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String type,
+            @RequestParam(required = false) String meterClass
+    ) {
+
+        List<MeterInfoVo> meterTypeListVo = getPowerstationTypeClassName.getMeterTypeCalculating(windId, type, meterClass);
+        Map<String, Object> response = new HashMap<>();
+        response.put("type", meterTypeListVo);
+        return new Result<>(200, "成功", response);
+    }
+
+
+    /**
+     * 获取底码表分类
+     *
+     * @param windId     风场nem_code
+     * @param type       meter_type 一级类型
+     * @param meterClass meter_class 二级分类
+     * @return 根据nem_code返回meter_type;
+     * 根据nem_code,meter_type返回meter_class;
+     * 根据nem_code,meter_type,meter_class返回name;
+     */
+    @GetMapping("/getMeterTypeBottom")
+    public Result<Object> getMeterTypeBottom(
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String type,
+            @RequestParam(required = false) String meterClass
+    ) {
+        List<MeterInfoVo> meterTypeListVo = getPowerstationTypeClassName.getMeterTypeBottom(windId, type, meterClass);
+
+        Map<String, Object> response = new HashMap<>();
+        response.put("type", meterTypeListVo);
+        return new Result<>(200, "成功", response);
+
+    }
+
+
+    /**
+     * 获取风机编号
+     *
+     * @param windId 风场nem_code
+     * @return 场站下每台风机的编号
+     */
+    @GetMapping("/getEquipmentId")
+    public Result<Object> getEquipmentId(
+            @RequestParam(required = false) String windId
+    ) {
+        List<MeterInfoVo> equipmentId = getPowerstationTypeClassName.getEquipmentId(windId);
+        Map<String, Object> response = new HashMap<>();
+        response.put("type", equipmentId);
+        return new Result<>(200, "成功", response);
+    }
+
+}

+ 109 - 303
electricity/meter/src/main/java/com/gyee/gaia/meter/controller/MeterInfoController.java

@@ -1,15 +1,7 @@
 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;
-import com.gyee.gaia.meter.entity.PowerStation;
 import com.gyee.gaia.meter.entity.vo.MeterInfoVo;
 import com.gyee.gaia.meter.entity.vo.Result;
-import com.gyee.gaia.meter.service.impl.EquipmentServiceImpl;
-import com.gyee.gaia.meter.service.impl.MeterPointServiceImpl;
-import com.gyee.gaia.meter.service.impl.PowerStationServiceImpl;
 import com.gyee.gaia.meter.service.meterInfo.GetMeterInfo;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -29,300 +21,9 @@ public class MeterInfoController {
 
     @Resource
     GetMeterInfo getMeterInfo;
-    @Resource
-    PowerStationServiceImpl powerStationService;
-    @Resource
-    MeterPointServiceImpl meterPointService;
-    @Resource
-    EquipmentServiceImpl equipmentService;
-
-    @GetMapping("/meter/infoall")
-    public Result<Object> getPowerstation() {
-
-        //下拉框选择场站
-        List<PowerStation> powerStations = powerStationService.list(new QueryWrapper<PowerStation>().eq("wind_type", "-1").orderBy(true, true, "order_num"));
-        ArrayList<MeterInfoVo> powerStationsVo = new ArrayList<>();
-        for (PowerStation powerStation : powerStations) {
-            MeterInfoVo meterInfoVo = new MeterInfoVo();
-            meterInfoVo.setName(powerStation.getName());
-            meterInfoVo.setNemCode(powerStation.getNemCode());
-            powerStationsVo.add(meterInfoVo);
-        }
-
-        //下拉框选择类型
-        List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
-                .eq("property", "JSD")
-        );
-
-        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);
-            }
-        }
-
-// meterTypeListVo 中包含了过滤后的结果,其中 meterType 属性相同的值只保留一个
-        Map<String, Object> response = new HashMap<>();
-        response.put("fdc", powerStationsVo);
-        response.put("type", meterTypeListVo);
-
-        return new Result<>(200, "成功", response);
-
-    }
-
-
-    //请求路径传参时,没有的参数不能传空
-    @GetMapping("/meter/getMeterTypeCalculating1")
-    public Result<Object> getMeterTypeCalculating1(
-            @RequestParam(required = false) String windId,
-            @RequestParam(required = false) String type,
-            @RequestParam(required = false) String meterClass
-    ) {
-
-        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);
-
-        } 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);
-
-        }
-
-        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);
-        }
-
-        return new Result<>(201, "成功", null);
-    }
-
-
 
-
-    @GetMapping("/meter/getMeterTypeBottom")
-    public Result<Object> getMeterTypeBottom(
-            @RequestParam(required = false) String windId,
-            @RequestParam(required = false) String type,
-            @RequestParam(required = false) String meterClass
-    ) {
-
-        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);
-
-        } 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);
-        }
-
-        return new Result<>(201, "失败", null);
-
-    }
-
-    @GetMapping("/meter/getEquipmentId")
-    public Result<Object> getEquipmentId(
-            @RequestParam(required = false) String windId
-    ) {
-
-        //下拉框选择类型
-        List<Equipment> equipmentServiceList = equipmentService.list(new QueryWrapper<Equipment>()
-                .eq("windpowerstation_id", windId)
-        );
-
-        List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
-
-        for (Equipment equipment : equipmentServiceList) {
-
-            MeterInfoVo meterInfoVo = new MeterInfoVo();
-            meterInfoVo.setName(equipment.getName());
-            meterInfoVo.setNemCode(equipment.getNemCode());
-            meterTypeListVo.add(meterInfoVo);
-
-        }
-
-        Map<String, Object> response = new HashMap<>();
-        response.put("type", meterTypeListVo);
-        return new Result<>(200, "成功", response);
-
-    }
-
-
-    @GetMapping("/meterinfo/bottom")
-    public Result<Object> getBottomInfo(
+    @GetMapping("/meterinfo/bottom1")
+    public Result<Object> getBottomInfo1(
             @RequestParam(required = false) String windId,
             @RequestParam(required = false) String meterType,
             @RequestParam(required = false) String meterClass,
@@ -398,6 +99,36 @@ public class MeterInfoController {
             return new Result<>(200, "成功", response);
         }
         return new Result<>(201, "参数错误", null);
+    }
+
+    @GetMapping("/meterinfo/bottom")
+    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
+    ) {
+
+        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);
+
 
     }
 
@@ -556,13 +287,54 @@ public class MeterInfoController {
     public Result<Object> getCalculatingInfoMonth(
             @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 && meterClass != null && name != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoMonthByWindId(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.getCalculatingInfoMonthByWindId(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);
 
-        if (windId != null && meterType != null) {
+            // 构建响应
+            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.getCalculatingInfoMonthByWindId(windId, meterType, startTime, endTime);
 
             // 进行排序
@@ -671,13 +443,47 @@ public class MeterInfoController {
     public Result<Object> getBottomInfoMonth(
             @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 && meterClass != null && name != null) {
+            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoMonthByWindId(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);
 
-        if (windId != null && meterType != null) {
+            // 构建响应
+            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.getBottomInfoMonthByWindId(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.getBottomInfoMonthByWindId(windId, meterType, startTime, endTime);
             // 进行分页处理
             int totalItems = meterInfoByWindIdList.size();

+ 12 - 2
electricity/meter/src/main/java/com/gyee/gaia/meter/job/MeterJob.java

@@ -1,5 +1,6 @@
 package com.gyee.gaia.meter.job;
 
+import com.gyee.gaia.meter.service.SaveMeterInfoYesterday;
 import com.gyee.gaia.meter.service.meter.*;
 import com.xxl.job.core.handler.annotation.XxlJob;
 import org.springframework.stereotype.Component;
@@ -23,6 +24,8 @@ public class MeterJob {
     SaveFDL_Day_Month_Year saveFDLDayMonthYear;
     @Resource
     SaveSWDL_Day_Month_Year saveSWDLDayMonthYear;
+    @Resource
+    SaveMeterInfoYesterday saveMeterInfoYesterday;
 
 
     @XxlJob("MeterJob")
@@ -31,7 +34,7 @@ public class MeterJob {
         //设备日发电量(407台风机)
         saveEquipmentFDL.saveEquipmentRfdl();
         //期次风机发电量(14个期次)
-        saveEquipmentFDL.saveEquipmentRfdl();
+        saveEquipmentFDL.saveCalculatingFJFDL();
 
         //底码表数据,起始底码,截止底码,日电量
         saveBottomcode.saveBottomCode();
@@ -42,7 +45,6 @@ public class MeterJob {
         saveCalculating.saveCalculating();
         saveCalculating.saveCalculating();
 
-
     }
 
 
@@ -60,4 +62,12 @@ public class MeterJob {
 
     }
 
+    @XxlJob("SaveMeterInfoYesterday")
+    void meterJob4() {
+        saveMeterInfoYesterday.saveMeterInfoYesterday();
+
+    }
+
+
+
 }

+ 431 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/SaveMeterInfoYesterday.java

@@ -0,0 +1,431 @@
+package com.gyee.gaia.meter.service;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.gaia.meter.adapter.Adapter;
+import com.gyee.gaia.meter.entity.*;
+import com.gyee.gaia.meter.service.impl.*;
+import com.gyee.gaia.meter.util.ScriptShell;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 04: 27
+ **/
+@Component
+public
+class SaveMeterInfoYesterday {
+
+
+    @Resource
+    Adapter adapter;
+    @Resource
+    TestingPointServiceImpl testingPointService;
+    @Resource
+    EquipmentServiceImpl equipmentService;
+    @Resource
+    PowerStationServiceImpl powerStationService;
+    @Resource
+    MeterPointServiceImpl meterPointService;
+    @Resource
+    MeterInfoBottomcodeServiceImpl meterInfoBottomcodeService;
+    @Resource
+    MeterInfoEquipmentServiceImpl meterInfoEquipmentService;
+    @Resource
+    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
+
+
+    //风机日发电量
+
+    void saveEquipmentRfdl() {
+
+
+        //1,在testingpoint中根据 uniform_code=AI064 和code like "%_FJ_%" 取出所有风机的电量测点code
+        List<TestingPoint> testingPointList = testingPointService.list(new QueryWrapper<TestingPoint>().eq("uniform_code", "AI064").like("code", "%_FJ_%"));
+
+        //2,遍历list,每次取出一个code
+        for (TestingPoint testingPoint : testingPointList) {
+            //获取测点code
+            String pointcode = testingPoint.getCode();
+            //获取设备ID
+            String thingId = testingPoint.getThingId();
+
+            //设置取值开始时间
+            DateTime now = DateTime.now();
+            DateTime startDateTime =DateUtil.offsetDay(now,-1);
+            //设置取值结束时间
+            DateTime endDateTime = DateUtil.offsetDay(now,-1);
+
+            //指定开始日期到结束日期的天数
+            LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+            LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+            long between = ChronoUnit.DAYS.between(day1, day2);
+
+            for (int i = 0; i <= between; i++) {
+
+                DateTime dateTime1 = DateUtil.offsetDay(startDateTime, i);
+                DateTime dateTime2 = DateUtil.offsetDay(startDateTime, i + 1);
+
+                //8,结束点发电量减去开始点发电量得到日发电量(单位Kwh)
+                List<PointData> historyRaw = adapter.getHistoryRaw(pointcode, dateTime1.getTime(), dateTime2.getTime());
+
+                BigDecimal rfdl = new BigDecimal(0);
+
+                if (historyRaw.size() > 0) {
+                    BigDecimal bigDecimal1 = new BigDecimal(Double.toString(historyRaw.get(0).getValue()));
+                    BigDecimal bigDecimal2 = new BigDecimal(Double.toString(historyRaw.get(historyRaw.size() - 1).getValue()));
+                    rfdl = bigDecimal2.subtract(bigDecimal1);
+
+                    if (rfdl.doubleValue() > 50000 || rfdl.doubleValue() < 0) {
+
+                        ArrayList<Double> arrayList = new ArrayList<>();
+                        for (PointData pointData : historyRaw) {
+                            arrayList.add(pointData.getValue());
+                        }
+
+                        int index = -1;
+                        for (int j = 1; j < arrayList.size(); j++) {
+                            double current = arrayList.get(j);
+                            double previous = arrayList.get(j - 1);
+                            double difference = current - previous;
+                            if (difference > 50000 || difference < -1) {
+                                index = j;
+                                break;
+                            }
+                        }
+                        if (index != -1) {
+                            double valueGrow2 = arrayList.get(index);
+                            BigDecimal bigDecimalGrow2 = new BigDecimal(Double.toString(valueGrow2));
+                            double valueGrow1 = arrayList.get(index - 1);
+                            BigDecimal bigDecimalGrow1 = new BigDecimal(Double.toString(valueGrow1));
+                            rfdl = (bigDecimal2.subtract(bigDecimalGrow2)).add(bigDecimalGrow1.subtract(bigDecimal1));
+                        }
+                    }
+                }
+                //9,company_nem_code   (powerstation_nem_code project_nem_code line_nem_code equipment_nem_code )都在basic equipment中叫project_id    name date rfdl 存入meterInfo表中
+                Equipment thingId1 = equipmentService.getOne(new QueryWrapper<Equipment>().eq("nem_code", thingId));
+
+                MeterInfoEquipment meterInfoEquipment = new MeterInfoEquipment();
+                meterInfoEquipment.setPowerstationNemCode(thingId1.getWindpowerstationId());
+                meterInfoEquipment.setProjectNemCode(thingId1.getProjectId());
+                meterInfoEquipment.setLineNemCode(thingId1.getLineId());
+                meterInfoEquipment.setEquipmentNemCode(thingId1.getNemCode());
+                meterInfoEquipment.setName(thingId1.getName());
+                meterInfoEquipment.setDate(dateTime1.toLocalDateTime());
+                meterInfoEquipment.setRfdl(rfdl);
+                meterInfoEquipment.setUpdateTime(LocalDateTime.now());
+                QueryWrapper<MeterInfoEquipment> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("equipment_nem_code", thingId1.getNemCode()).eq("date", dateTime1.toLocalDateTime());
+                List<MeterInfoEquipment> list = meterInfoEquipmentService.list(queryWrapper);
+                if (list.size() > 0) {
+                    meterInfoEquipment.update(queryWrapper);
+                } else {
+                    meterInfoEquipment.insert();
+                }
+            }
+        }
+    }
+
+    //电计量底码表
+
+    void saveCalculatingProjectFDL() {
+
+
+        //设置取值开始时间
+        DateTime now = DateTime.now();
+        DateTime startDateTime =DateUtil.offsetDay(now,-1);
+        //设置取值结束时间
+        DateTime endDateTime = DateUtil.offsetDay(now,-1);
+
+        //指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.DAYS.between(day1, day2);
+
+
+        //1,所有期次发电量测点
+        List<MeterPoint> meterPointList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_QCFDL"));
+
+        //遍历期次发电量测点,拿到场站id,
+        for (MeterPoint meterPoint : meterPointList) {
+            String projectId = meterPoint.getProjectId();
+
+            for (int i = 0; i <= between; i++) {
+                DateTime dateTime1 = DateUtil.offsetDay(startDateTime, i);
+
+                List<MeterInfoEquipment> meterInfoEquipments = meterInfoEquipmentService.list(new QueryWrapper<MeterInfoEquipment>().eq("project_nem_code", projectId).eq("date", dateTime1));
+                BigDecimal bigDecimal = BigDecimal.valueOf(0);
+                for (MeterInfoEquipment meterInfoEquipment : meterInfoEquipments) {
+                    bigDecimal = bigDecimal.add(meterInfoEquipment.getRfdl());
+                }
+
+                MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+                meterInfoCalculating.setName(meterPoint.getName());
+                meterInfoCalculating.setDate(dateTime1.toLocalDateTime());
+                meterInfoCalculating.setValue(bigDecimal.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_EVEN));
+                meterInfoCalculating.setCode(meterPoint.getNemCode());
+                meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+                meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+                QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+                queryWrapper.eq("date", dateTime1.toLocalDateTime()).eq("code", meterPoint.getNemCode());
+                List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+                if (list.size() > 0) {
+                    meterInfoCalculating.update(queryWrapper);
+                } else {
+                    meterInfoCalculating.insert();
+                }
+            }
+        }
+    }
+
+
+    void saveBottomCode() {
+
+        //1,查询所有风电场
+        List<PowerStation> powerStationList = powerStationService.list(new QueryWrapper<PowerStation>().like("nem_code", "_FDC_"));
+
+        for (PowerStation powerStation : powerStationList) {
+
+            //2,根据场站ID得到场站下所有测点
+            List<MeterPoint> meterPointList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("windpowerstation_id", powerStation.getId()).eq("property", "CD"));
+
+            //3,遍历测点,拿到每个测点的nem_code
+            for (MeterPoint meterPoint : meterPointList) {
+                System.out.println(meterPoint);
+                //获取测点code
+                String pointcode = meterPoint.getNemCode();
+
+                //设置取值开始时间
+                DateTime now = DateTime.now();
+                DateTime startDateTime =DateUtil.offsetDay(now,-1);
+                //设置取值结束时间
+                DateTime endDateTime = DateUtil.offsetDay(now,-1);
+
+                //指定开始日期到结束日期的天数
+                LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+                LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+                long between = ChronoUnit.DAYS.between(day1, day2);
+
+                for (int i = 0; i <= between; i++) {
+
+                    //开始时间00:00:01
+                    DateTime dateTime1 = DateUtil.offsetDay(startDateTime, i);
+                    //结束时间第二天00:00:01
+                    DateTime dateTime2 = DateUtil.offsetDay(startDateTime, i + 1);
+
+                    List<PointData> historyRaw = adapter.getHistoryRaw(pointcode, dateTime1.getTime(), dateTime2.getTime());
+                    BigDecimal bigDecimal1 = new BigDecimal(0);
+                    BigDecimal bigDecimal2 = new BigDecimal(0);
+                    BigDecimal rfdl = new BigDecimal(0);
+
+                    if (historyRaw.size() > 0) {
+                        bigDecimal1 = new BigDecimal(Double.toString(historyRaw.get(0).getValue()));
+                        bigDecimal1 = bigDecimal1.divide(meterPoint.getXs(), 4, RoundingMode.HALF_EVEN);
+                        bigDecimal2 = new BigDecimal(Double.toString(historyRaw.get(historyRaw.size() - 1).getValue()));
+                        bigDecimal2 = bigDecimal2.divide(meterPoint.getXs(), 4, RoundingMode.HALF_EVEN);
+                        rfdl = bigDecimal2.subtract(bigDecimal1).multiply(meterPoint.getMagnification());
+
+                        if (rfdl.doubleValue() > 5000000 || rfdl.doubleValue() < 0) {
+
+                            ArrayList<Double> arrayList = new ArrayList<>();
+                            for (PointData pointData : historyRaw) {
+                                arrayList.add(pointData.getValue());
+                            }
+                            int index = -1;
+                            // 定义增长阈值
+                            double threshold = 50000.0;
+
+                            for (int j = 1; j < arrayList.size(); j++) {
+                                double current = arrayList.get(j);
+                                double previous = arrayList.get(j - 1);
+                                double difference = current - previous;
+                                if (difference > threshold) {
+                                    index = j;
+                                    break;
+                                }
+                            }
+                            if (index != -1) {
+                                double valueGrow2 = arrayList.get(index);
+                                BigDecimal bigDecimalGrow2 = new BigDecimal(Double.toString(valueGrow2));
+                                double valueGrow1 = arrayList.get(index - 1);
+                                BigDecimal bigDecimalGrow1 = new BigDecimal(Double.toString(valueGrow1));
+                                rfdl = (bigDecimal2.subtract(bigDecimalGrow2).add(bigDecimalGrow1).subtract(bigDecimal1)).multiply(meterPoint.getMagnification());
+                            }
+                        }
+                    }
+
+                    MeterInfoBottomcode meterInfoBottomcode = new MeterInfoBottomcode();
+                    meterInfoBottomcode.setName(meterPoint.getName());
+                    meterInfoBottomcode.setStartTime(dateTime1.toLocalDateTime());
+                    meterInfoBottomcode.setStartValue(bigDecimal1);
+                    meterInfoBottomcode.setEndTime(dateTime2.toLocalDateTime());
+                    meterInfoBottomcode.setEndValue(bigDecimal2);
+                    meterInfoBottomcode.setDayValue(rfdl);
+                    meterInfoBottomcode.setCode(pointcode);
+                    meterInfoBottomcode.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+                    QueryWrapper<MeterInfoBottomcode> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.eq("start_time", dateTime1.toLocalDateTime()).eq("code", meterPoint.getNemCode());
+                    List<MeterInfoBottomcode> list = meterInfoBottomcodeService.list(queryWrapper);
+                    if (list.size() > 0) {
+                        meterInfoBottomcode.update(queryWrapper);
+                    } else {
+                        meterInfoBottomcode.insert();
+                    }
+                }
+            }
+        }
+    }
+    //项目期次风机总发电量
+
+    //有公式的计算电量
+
+    void saveCalculating() {
+
+        //设置取值开始时间
+        DateTime now = DateTime.now();
+        DateTime startDateTime =DateUtil.offsetDay(now,-1);
+        //设置取值结束时间
+        DateTime endDateTime = DateUtil.offsetDay(now,-1);
+
+        //指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.DAYS.between(day1, day2);
+
+        List<MeterPoint> meterPointJSDList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD").ne("formula", ""));
+
+        for (MeterPoint meterPoint : meterPointJSDList) {
+            String formula1 = meterPoint.getFormula();
+            System.out.println("转换前的公式:" + formula1);
+            String formula2 = formula1.replaceAll("DL.NX", "DL_NX").replaceAll("DJL.", "DJL_");
+            System.out.println("转换后的公式字符串:" + formula2);
+
+            //分割公式字符串,得到每一的个code
+//            String[] meterPointCodes = StringUtils.split(formula1, "[+\\-*/()]");
+            String[] meterPointCodes = StringUtils.split(formula1, "[+-*/()]");
+            meterPointCodes = Arrays.stream(meterPointCodes)
+                    .filter(meterPointCode -> !(meterPointCode.length() < 8))
+                    .toArray(String[]::new);
+            System.out.println("过滤后公式中的测点数:" + meterPointCodes.length);
+            System.out.println(Arrays.toString(meterPointCodes));
+
+
+            for (int i = 0; i <= between; i++) {
+                HashMap<String, Object> map = new HashMap<>();
+                //开始时间
+                DateTime dateTime1 = DateUtil.offsetDay(startDateTime, i);
+//                DateTime dateTime2 = DateUtil.offsetDay(startDateTime, i + 1);
+                //遍历code数据,拿到每一个code,用code和时间,在meter_info_bottom中拿到dayValue
+                for (String meterPointCode : meterPointCodes) {
+//                    String meterPointCode_ = meterPointCode.replaceAll("\\.", "_");
+                    String meterPointCode_ = meterPointCode.replaceAll("DL.", "DL_").replaceAll("DJL.", "DJL_");
+                    System.out.println("要查询的点code:" + meterPointCode);
+                    System.out.println("替换后的点code:" + meterPointCode_);
+//
+                    try {
+                        if (meterPointCode.startsWith("DL")) {
+                            System.out.println("计算测点DL:" + meterPointCode);
+                            MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", meterPointCode).eq("date", dateTime1));
+                            System.out.println("DL点数据:" + meterInfoCalculating.getValue());
+                            map.put(meterPointCode_, meterInfoCalculating.getValue());
+                        } else {
+                            System.out.println("计算测点Bottom:" + meterPointCode);
+                            MeterInfoBottomcode meterInfoBottomcode = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", meterPointCode).eq("start_time", dateTime1));
+                            System.out.println("Bottom点数据日电量:" + meterInfoBottomcode.getDayValue());
+                            map.put(meterPointCode_, meterInfoBottomcode.getDayValue());
+                        }
+
+                    } catch (Exception e) {
+                        System.out.println("获取数据异常:" + e.getMessage());
+
+                    }
+                }
+                    System.out.println("map集合:"+map);
+                    try {
+                        BigDecimal bigDecimal1 = (BigDecimal) ScriptShell.parseExpr(formula2, map);
+                        System.out.println("公式计算后数据:"+bigDecimal1);
+                        MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+                        meterInfoCalculating.setName(meterPoint.getName());
+                        meterInfoCalculating.setCode(meterPoint.getNemCode());
+                        meterInfoCalculating.setDate(dateTime1.toLocalDateTime());
+                        meterInfoCalculating.setValue(bigDecimal1);
+                        meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+                        meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+                        QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("date", dateTime1.toLocalDateTime()).eq("code", meterPoint.getNemCode());
+                        List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+                        if (list.size() > 0) {
+                            meterInfoCalculating.update(queryWrapper);
+                        } else {
+                            meterInfoCalculating.insert();
+                        }
+
+                    }catch (ArithmeticException e) {
+
+                        MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+                        meterInfoCalculating.setName(meterPoint.getName());
+                        meterInfoCalculating.setCode(meterPoint.getNemCode());
+                        meterInfoCalculating.setDate(dateTime1.toLocalDateTime());
+                        meterInfoCalculating.setValue(BigDecimal.valueOf(0));
+                        meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+                        meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+                        QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+                        queryWrapper.eq("date", dateTime1.toLocalDateTime()).eq("code", meterPoint.getNemCode());
+                        List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+                        if (list.size() > 0) {
+                            meterInfoCalculating.update(queryWrapper);
+                        } else {
+                            meterInfoCalculating.insert();
+                        }
+
+                    } catch (Exception e) {
+                        System.out.println("存入异常  :" + e.getMessage());
+
+
+                    }
+
+            }
+        }
+    }
+
+    //调用上面4个,第四个需要3-4次
+
+    public void saveMeterInfoYesterday() {
+        this.saveEquipmentRfdl();
+        this.saveBottomCode();
+        this.saveCalculatingProjectFDL();
+        this.saveCalculating();
+        this.saveCalculating();
+        this.saveCalculating();
+        this.saveCalculating();
+
+    }
+
+
+}
+
+
+
+
+
+
+
+
+

+ 284 - 25
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterInfo/GetMeterInfo.java

@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.gaia.common.utils.StringUtil;
 import com.gyee.gaia.meter.entity.*;
 import com.gyee.gaia.meter.entity.vo.MeterInfoVo;
 import com.gyee.gaia.meter.service.impl.*;
@@ -206,7 +207,7 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
-    public ArrayList<MeterInfoVo> getBottomInfoByWindId(String windId, String meterType, String meterClass, String name, long startTime, long endTime) {
+    public ArrayList<MeterInfoVo> getBottomInfoByWindId1(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));
@@ -267,6 +268,67 @@ public class GetMeterInfo {
         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(StringUtil.isNotBlank(meterType), "meter_type", meterType)
+                .eq(StringUtil.isNotBlank(meterClass), "meter_class", meterClass)
+                .eq(StringUtil.isNotBlank(name), "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) {
 
@@ -752,6 +814,171 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
+    public ArrayList<MeterInfoVo> getCalculatingInfoMonthByWindId(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.beginOfMonth(startDateTime1);
+        DateTime endDateTime = DateUtil.endOfMonth(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.MONTHS.between(day1, day2);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差月数" + between);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .like("property", "JSD%")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+
+        );
+
+
+        // 批量查询MeterInfoCalculating数据
+        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));
+
+
+        for (int i = 0; i <= between; i++) {
+            DateTime dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+            DateTime dateTime2 = DateUtil.endOfMonth(dateTime1);
+
+            LocalDateTime day3 = LocalDateTimeUtil.of(dateTime1);
+            LocalDateTime day4 = LocalDateTimeUtil.of(dateTime2);
+            long betweenDay = ChronoUnit.DAYS.between(day3, day4);
+            System.out.println("这月相差天数:" + betweenDay);
+
+            for (MeterPoint meterPoint : meterPoints) {
+                System.out.println(meterPoint.getName());
+
+                MeterInfoVo meterInfoVo = new MeterInfoVo();
+                meterInfoVo.setDate(dateTime1);
+                meterInfoVo.setName(meterPoint.getName());
+
+                BigDecimal ydl = BigDecimal.valueOf(0);
+                System.out.println("ydl开始值" + ydl);
+
+                for (int j = 0; j <= betweenDay; j++) {
+                    System.out.println("J的值(第-1天)" + j);
+
+                    DateTime dateTime3 = DateUtil.offsetDay(dateTime1, j);
+
+//                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", meterPoint.getNemCode()).eq("date", dateTime3));
+                    MeterInfoCalculating meterInfoCalculating = findMeterInfoCalculating(meterInfoCalculatings, meterPoint.getNemCode(), dateTime3);
+
+                    if (meterInfoCalculating != null) {
+                        ydl = ydl.add(meterInfoCalculating.getValue());
+                        System.out.println("当月每天累加" + ydl);
+                    }
+                }
+                meterInfoVo.setRdl(ydl);
+                meterInfoVos.add(meterInfoVo);
+            }
+        }
+
+        return meterInfoVos;
+    }
+
+    public ArrayList<MeterInfoVo> getCalculatingInfoMonthByWindId(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.beginOfMonth(startDateTime1);
+        DateTime endDateTime = DateUtil.endOfMonth(endDateTime1);
+
+        // 指定开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.MONTHS.between(day1, day2);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
+        System.out.println("相差月数" + between);
+
+        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
+
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .like("property", "JSD%")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+                .eq("name", name)
+
+        );
+
+
+        // 批量查询MeterInfoCalculating数据
+        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));
+
+
+        for (int i = 0; i <= between; i++) {
+            DateTime dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+            DateTime dateTime2 = DateUtil.endOfMonth(dateTime1);
+
+            LocalDateTime day3 = LocalDateTimeUtil.of(dateTime1);
+            LocalDateTime day4 = LocalDateTimeUtil.of(dateTime2);
+            long betweenDay = ChronoUnit.DAYS.between(day3, day4);
+            System.out.println("这月相差天数:" + betweenDay);
+
+            for (MeterPoint meterPoint : meterPoints) {
+                System.out.println(meterPoint.getName());
+
+                MeterInfoVo meterInfoVo = new MeterInfoVo();
+                meterInfoVo.setDate(dateTime1);
+                meterInfoVo.setName(meterPoint.getName());
+
+                BigDecimal ydl = BigDecimal.valueOf(0);
+                System.out.println("ydl开始值" + ydl);
+
+                for (int j = 0; j <= betweenDay; j++) {
+                    System.out.println("J的值(第-1天)" + j);
+
+                    DateTime dateTime3 = DateUtil.offsetDay(dateTime1, j);
+
+//                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", meterPoint.getNemCode()).eq("date", dateTime3));
+                    MeterInfoCalculating meterInfoCalculating = findMeterInfoCalculating(meterInfoCalculatings, meterPoint.getNemCode(), dateTime3);
+
+                    if (meterInfoCalculating != null) {
+                        ydl = ydl.add(meterInfoCalculating.getValue());
+                        System.out.println("当月每天累加" + ydl);
+                    }
+                }
+                meterInfoVo.setRdl(ydl);
+                meterInfoVos.add(meterInfoVo);
+            }
+        }
+
+        return meterInfoVos;
+    }
+
 
     public ArrayList<MeterInfoVo> getEquipmentInfoMonthByWindId(String windId, long startTime, long endTime) {
 
@@ -909,7 +1136,7 @@ public class GetMeterInfo {
     }
 
 
-    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId1(String windId, long startTime, long endTime) {
+    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(String windId, long startTime, long endTime) {
 
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String format1 = simpleDateFormat.format(new Date(startTime));
@@ -926,11 +1153,26 @@ public class GetMeterInfo {
         LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
         LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
         long between = ChronoUnit.MONTHS.between(day1, day2);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
         System.out.println("相差月数" + between);
 
         ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
 
-        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>().eq("windpowerstation_id", windId).eq("property", "CD"));
+        List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
+                .eq("windpowerstation_id", windId)
+                .like("property", "CD"));
+
+
+        // 批量查询MeterInfoCalculating数据
+        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));
+
 
         for (int i = 0; i <= between; i++) {
             DateTime dateTime1 = DateUtil.offsetMonth(startDateTime, i);
@@ -956,18 +1198,16 @@ public class GetMeterInfo {
 
                     DateTime dateTime3 = DateUtil.offsetDay(dateTime1, j);
 
-                    MeterInfoBottomcode meterInfoBottomcode = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", meterPoint.getNemCode()).eq("start_time", dateTime3));
+                    MeterInfoBottomcode meterInfoBottomcode = findMeterInfoBottomcode(meterInfoBottomcodes, meterPoint.getNemCode(), dateTime3);
 
-                    if (meterInfoBottomcode != null) {
-                        ydl = ydl.add(meterInfoBottomcode.getDayValue());
-                        System.out.println("当月每天累加" + ydl);
 
+                    if (meterInfoBottomcode != null) {
                         if (j == 0) {
                             meterInfoVo.setStartCode(meterInfoBottomcode.getStartValue());
                         }
-                        if (!(meterInfoBottomcode.getStartValue() == null)) {
-                            meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
-                        }
+                        ydl = ydl.add(meterInfoBottomcode.getDayValue());
+                        meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
+                        System.out.println("当月每天累加" + ydl);
                     }
                 }
                 meterInfoVo.setRdl(ydl);
@@ -978,7 +1218,7 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
-    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId1(String windId, String meterType, long startTime, long endTime) {
+    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(String windId, String meterType, long startTime, long endTime) {
 
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         String format1 = simpleDateFormat.format(new Date(startTime));
@@ -995,15 +1235,27 @@ public class GetMeterInfo {
         LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
         LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
         long between = ChronoUnit.MONTHS.between(day1, day2);
+        long betweenDays = ChronoUnit.DAYS.between(day1, day2);
         System.out.println("相差月数" + between);
 
         ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
 
         List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
                 .eq("windpowerstation_id", windId)
-                .eq("property", "CD")
-                .eq("meter_type", meterType)
-        );
+                .like("property", "CD")
+                .eq("meter_type", meterType));
+
+
+        // 批量查询MeterInfoCalculating数据
+        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));
+
 
         for (int i = 0; i <= between; i++) {
             DateTime dateTime1 = DateUtil.offsetMonth(startDateTime, i);
@@ -1029,19 +1281,18 @@ public class GetMeterInfo {
 
                     DateTime dateTime3 = DateUtil.offsetDay(dateTime1, j);
 
-                    MeterInfoBottomcode meterInfoBottomcode = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", meterPoint.getNemCode()).eq("start_time", dateTime3));
+                    MeterInfoBottomcode meterInfoBottomcode = findMeterInfoBottomcode(meterInfoBottomcodes, meterPoint.getNemCode(), dateTime3);
 
-                    if (meterInfoBottomcode != null) {
-                        ydl = ydl.add(meterInfoBottomcode.getDayValue());
-                        System.out.println("当月每天累加" + ydl);
 
+                    if (meterInfoBottomcode != null) {
                         if (j == 0) {
                             meterInfoVo.setStartCode(meterInfoBottomcode.getStartValue());
                         }
-                        if (!(meterInfoBottomcode.getStartValue() == null)) {
-                            meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
-                        }
+                        ydl = ydl.add(meterInfoBottomcode.getDayValue());
+                        meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
+                        System.out.println("当月每天累加" + ydl);
                     }
+
                 }
                 meterInfoVo.setRdl(ydl);
                 meterInfoVos.add(meterInfoVo);
@@ -1051,7 +1302,7 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
-    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(String windId, long startTime, long endTime) {
+    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(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));
@@ -1075,7 +1326,10 @@ public class GetMeterInfo {
 
         List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
                 .eq("windpowerstation_id", windId)
-                .like("property", "CD"));
+                .like("property", "CD")
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+        );
 
 
         // 批量查询MeterInfoCalculating数据
@@ -1124,6 +1378,7 @@ public class GetMeterInfo {
                         meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
                         System.out.println("当月每天累加" + ydl);
                     }
+
                 }
                 meterInfoVo.setRdl(ydl);
                 meterInfoVos.add(meterInfoVo);
@@ -1133,7 +1388,7 @@ public class GetMeterInfo {
         return meterInfoVos;
     }
 
-    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(String windId, String meterType, long startTime, long endTime) {
+    public ArrayList<MeterInfoVo> getBottomInfoMonthByWindId(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));
@@ -1158,7 +1413,11 @@ public class GetMeterInfo {
         List<MeterPoint> meterPoints = meterPointService.list(new QueryWrapper<MeterPoint>()
                 .eq("windpowerstation_id", windId)
                 .like("property", "CD")
-                .eq("meter_type", meterType));
+                .eq("meter_type", meterType)
+                .eq("meter_class", meterClass)
+                .eq("name", name)
+
+        );
 
 
         // 批量查询MeterInfoCalculating数据

+ 143 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterInfo/GetPowerstation_Type_Class_Name.java

@@ -0,0 +1,143 @@
+package com.gyee.gaia.meter.service.meterInfo;
+
+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;
+import com.gyee.gaia.meter.entity.PowerStation;
+import com.gyee.gaia.meter.entity.vo.MeterInfoVo;
+import com.gyee.gaia.meter.service.impl.EquipmentServiceImpl;
+import com.gyee.gaia.meter.service.impl.MeterPointServiceImpl;
+import com.gyee.gaia.meter.service.impl.PowerStationServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 29
+ **/
+@Service
+public class GetPowerstation_Type_Class_Name {
+
+    @Resource
+    PowerStationServiceImpl powerStationService;
+    @Resource
+    MeterPointServiceImpl meterPointService;
+    @Resource
+    EquipmentServiceImpl equipmentService;
+
+
+    /*获取所有风场排序后的VO对象*/
+    public ArrayList<MeterInfoVo> getPowerstation() {
+        //获取所有风场,并排序
+        List<PowerStation> powerStations = powerStationService.list(new QueryWrapper<PowerStation>().eq("wind_type", "-1").orderBy(true, true, "order_num"));
+        //创建VO对象,遍历每个风场,赋值name和nem_code,并返回
+        ArrayList<MeterInfoVo> powerStationsVo = new ArrayList<>();
+        for (PowerStation powerStation : powerStations) {
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setName(powerStation.getName());
+            meterInfoVo.setNemCode(powerStation.getNemCode());
+            powerStationsVo.add(meterInfoVo);
+        }
+        return powerStationsVo;
+    }
+
+
+    /*获取计算点的的一级类型,二级分类,具体名称*/
+    public List<MeterInfoVo> getMeterTypeCalculating(String windId, String type, String meterClass) {
+        //判断传入参数是否为空,并根据传入参数在meterPoint查询计算点
+        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)
+            );
+
+            //encounteredMeterTypes存不重复的测点类型
+            Set<String> encounteredMeterTypes = new HashSet<>();
+            //返回的VO对象
+            List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+            //遍历测点集合,判断传入参数是否为空,分别返回一级类型,二级分类,name
+            for (MeterPoint meterPoint : meterTypeList) {
+                String meterType;
+                if (StringUtils.isNotBlank(meterClass) && StringUtils.isNotBlank(type)) {
+                    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);
+                }
+            }
+            return meterTypeListVo;
+        }
+        return null;
+    }
+
+    /*获取侧点的一级类型,二级分类,具体名称*/
+    public List<MeterInfoVo> getMeterTypeBottom(String windId, String type, String meterClass) {
+
+        if (windId != null) {
+            List<MeterPoint> meterTypeList = meterPointService.list(new QueryWrapper<MeterPoint>()
+                    .eq("property", "CD")
+                    .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(meterClass) && StringUtils.isNotBlank(type)) {
+                    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);
+                }
+            }
+            return meterTypeListVo;
+        }
+        return null;
+
+    }
+
+    /*获取场站下风机编号*/
+    public List<MeterInfoVo> getEquipmentId(String windId) {
+        //设备表中根据场站ID查询风机编号
+        List<Equipment> equipmentServiceList = equipmentService.list(new QueryWrapper<Equipment>()
+                .eq("windpowerstation_id", windId)
+        );
+        //VO对象放风机名称和nem_code
+        List<MeterInfoVo> meterTypeListVo = new ArrayList<>();
+        for (Equipment equipment : equipmentServiceList) {
+            MeterInfoVo meterInfoVo = new MeterInfoVo();
+            meterInfoVo.setName(equipment.getName());
+            meterInfoVo.setNemCode(equipment.getNemCode());
+            meterTypeListVo.add(meterInfoVo);
+        }
+        return meterTypeListVo;
+    }
+}

+ 0 - 99
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterInfo/MeterInfoTest.java

@@ -1,99 +0,0 @@
-package com.gyee.gaia.meter.service.meterInfo;
-
-import cn.hutool.core.date.DateTime;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.date.LocalDateTimeUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.gyee.gaia.meter.adapter.Adapter;
-import com.gyee.gaia.meter.entity.MeterInfoBottomcode;
-import com.gyee.gaia.meter.entity.vo.MeterInfoVo;
-import com.gyee.gaia.meter.service.impl.*;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import javax.annotation.Resource;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * Author: malijun
- * Data  : 2023: 05: 24
- **/
-@SpringBootTest
-public class MeterInfoTest {
-    @Resource
-    Adapter adapter;
-    @Resource
-    TestingPointServiceImpl testingPointService;
-    @Resource
-    EquipmentServiceImpl equipmentService;
-    @Resource
-    PowerStationServiceImpl powerStationService;
-    @Resource
-    MeterPointServiceImpl meterPointService;
-    @Resource
-    MeterInfoBottomcodeServiceImpl meterInfoBottomcodeService;
-    @Resource
-    MeterInfoEquipmentServiceImpl meterInfoEquipmentService;
-    @Resource
-    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
-
-    @Value("${start.time}")
-    private String startTimeString;
-    @Value("${end.time}")
-    private String endTimeString;
-
-
-    //根据场站ID,开始时间,结束时间,查询获取场站下所有数据单日
-    @Test
-//      void getMeterInfoByWindId(String windId ,String startTime ,String endTime){
-    void getMeterInfoByWindId() {
-
-        String windId = "NX_GDDL_MHS_FDC_STA";
-
-
-        //设置取值开始时间
-        DateTime startDateTime = DateUtil.parse(startTimeString);
-
-        //设置取值结束时间
-        DateTime endDateTime = DateUtil.parse(endTimeString);
-
-        //指定开始日期到结束日期的天数
-        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
-        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
-        long between = ChronoUnit.DAYS.between(day1, day2);
-
-
-        HashMap<Object, Object> map = new HashMap<>();
-        ArrayList<MeterInfoVo> meterInfoVos = new ArrayList<>();
-
-        for (int i = 0; i <= between; i++) {
-
-            DateTime dateTime1 = DateUtil.offsetDay(startDateTime, i);
-            DateTime dateTime2 = DateUtil.offsetDay(startDateTime, i + 1);
-
-            List<MeterInfoBottomcode> meterInfoBottomcodeList = meterInfoBottomcodeService.list(new QueryWrapper<MeterInfoBottomcode>().eq("windpowerstation_id", windId).eq("start_time", dateTime1));
-            //遍历集合
-
-
-            for (MeterInfoBottomcode meterInfoBottomcode : meterInfoBottomcodeList) {
-
-                MeterInfoVo meterInfoVo = new MeterInfoVo();
-                meterInfoVo.setDate(dateTime1);
-                meterInfoVo.setName(meterInfoBottomcode.getName());
-                meterInfoVo.setStartCode(meterInfoBottomcode.getStartValue());
-                meterInfoVo.setEndCode(meterInfoBottomcode.getEndValue());
-                meterInfoVo.setRdl(meterInfoBottomcode.getDayValue());
-                meterInfoVos.add(meterInfoVo);
-            }
-        }
-        map.put("底码数据",meterInfoVos);
-        System.out.println(meterInfoVos.size());
-        System.out.println(map);
-    }
-
-}