Browse Source

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

xushili 1 year ago
parent
commit
d9b8283370

+ 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);
+    }
+
+}

+ 278 - 615
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,298 +21,20 @@ 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);
-
-    }
-
 
+    /**
+     * 获取根据传入不同参数获取每日底码信息
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每日底码数据
+     */
     @GetMapping("/meterinfo/bottom")
     public Result<Object> getBottomInfo(
             @RequestParam(required = false) String windId,
@@ -332,76 +46,33 @@ public class MeterInfoController {
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-        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();
-            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) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoByWindId(windId, 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);
-        }
-        return new Result<>(201, "参数错误", 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);
     }
 
 
+    /**
+     * 获取风机日发电量
+     *
+     * @param windId    风场ID
+     * @param id        风机ID
+     * @param startTime 开始时间(时间戳)
+     * @param endTime   结束时间(时间戳)
+     * @param page      第几页
+     * @param perPage   每页几条数
+     * @return 时间段内的风机发电量
+     */
     @GetMapping("/meterinfo/equipment")
     public Result<Object> getEquipmentInfo(
             @RequestParam(required = false) String windId,
@@ -411,52 +82,37 @@ public class MeterInfoController {
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-
-        if (windId != null && id != null) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoByEquipmentId(id, 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("equipment", paginatedList);
-            response.put("totalItems", totalItems);
-            response.put("page", page);
-            response.put("perPage", perPage);
-            return new Result<>(200, "成功", response);
-
-        } else if (windId != null) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoByWindId(windId, 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("equipment", paginatedList);
-            response.put("totalItems", totalItems);
-            response.put("page", page);
-            response.put("perPage", perPage);
-            return new Result<>(200, "成功", response);
-        }
-
-        return new Result<>(201, "参数错误", null);
+        ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoById(windId, id, 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("equipment", paginatedList);
+        response.put("totalItems", totalItems);
+        response.put("page", page);
+        response.put("perPage", perPage);
+        return new Result<>(200, "成功", response);
     }
 
 
+    /**
+     * 获取根据传入不同参数获取每日场站指标数据(计算点)
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每日场站指标数据(计算点)
+     */
     @GetMapping("/meterinfo/calculating")
     public Result<Object> getCalculatingInfo(
             @RequestParam(required = false) String windId,
@@ -468,147 +124,75 @@ public class MeterInfoController {
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-        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));
-
-            // 进行分页处理
-            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) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoByWindId(windId, 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);
-        }
-        return new Result<>(201, "参数错误", 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);
     }
 
-
+    /**
+     * 获取根据传入不同参数获取每月场站指标数据(计算点)
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每月场站指标数据(计算点)
+     */
     @GetMapping("/meterinfo/calculatingMonth")
     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) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoMonthByWindId(windId, meterType, 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) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getCalculatingInfoMonthByWindId(windId, 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);
-
-        }
-
-        return new Result<>(201, "参数错误", 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);
     }
 
-
+    /**
+     * 获取风机月发电量
+     *
+     * @param windId    风场ID
+     * @param id        风机ID
+     * @param startTime 开始时间(时间戳)
+     * @param endTime   结束时间(时间戳)
+     * @param page      第几页
+     * @param perPage   每页几条数
+     * @return 时间段内的月风机发电量
+     */
     @GetMapping("/meterinfo/equipmentMonth")
     public Result<Object> getEquipmentInfoMonth(
             @RequestParam(required = false) String windId,
@@ -618,102 +202,181 @@ public class MeterInfoController {
             @RequestParam(defaultValue = "1") int page,
             @RequestParam(defaultValue = "25") int perPage
     ) {
-
-        if (windId != null && id != null) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoMonthByWindId(windId, id, 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) {
-
-
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoMonthByWindId(windId, 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);
-        }
-        return new Result<>(201, "参数错误", null);
-
+        ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoMonthByWindId(windId, id, 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);
     }
 
 
+    /**
+     * 获取根据传入不同参数获取每月底码信息
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每月底码数据
+     */
     @GetMapping("/meterinfo/bottomMonth")
     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
     ) {
+        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);
+        // 构建响应
+        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);
+    }
 
-        if (windId != null && meterType != null) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoMonthByWindId(windId, meterType, 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);
+    /**
+     * 获取风机年发电量
+     *
+     * @param windId    风场ID
+     * @param id        风机ID
+     * @param startTime 开始时间(时间戳)
+     * @param endTime   结束时间(时间戳)
+     * @param page      第几页
+     * @param perPage   每页几条数
+     * @return 时间段内的年风机发电量
+     */
+    @GetMapping("/meterinfo/equipmentYear")
+    public Result<Object> getEquipmentInfoYear(
+            @RequestParam(required = false) String windId,
+            @RequestParam(required = false) String id,
+            @RequestParam(required = false) long startTime,
+            @RequestParam(required = false) long endTime,
+            @RequestParam(defaultValue = "1") int page,
+            @RequestParam(defaultValue = "25") int perPage
+    ) {
+        ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getEquipmentInfoYearByWindId(windId, id, 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);
+    }
 
-            // 构建响应
-            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) {
-            ArrayList<MeterInfoVo> meterInfoByWindIdList = getMeterInfo.getBottomInfoMonthByWindId(windId, startTime, endTime);
-            // 进行分页处理
-            int totalItems = meterInfoByWindIdList.size();
-            int startIndex = (page - 1) * perPage;
-            int endIndex = Math.min(startIndex + perPage, totalItems);
+    /**
+     * 获取根据传入不同参数获取每年底码信息
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每年底码数据
+     */
+    @GetMapping("/meterinfo/bottomYear")
+    public Result<Object> getBottomInfoYear(
+            @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.getBottomInfoYearByWindId(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);
+    }
 
-            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);
 
-        }
-        return new Result<>(201, "参数错误", null);
+    /**
+     * 获取根据传入不同参数获取每年场站指标数据(计算点)
+     *
+     * @param windId     风场ID
+     * @param meterType  测点一级类型
+     * @param meterClass 测点二级分类
+     * @param name       测点名称
+     * @param startTime  开始时间(时间戳)
+     * @param endTime    结束时间(时间戳)
+     * @param page       第几页
+     * @param perPage    每页几条数据
+     * @return 时间段内的每年场站指标数据(计算点)
+     */
+    @GetMapping("/meterinfo/calculatingYear")
+    public Result<Object> getCalculatingInfoYear(
+            @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.getCalculatingInfoYearByWindId(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);
     }
-
-
 }

+ 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.meter.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();
+
+    }
+
+
+
 }

+ 0 - 94
electricity/meter/src/main/java/com/gyee/gaia/meter/service/OneTest.java

@@ -1,94 +0,0 @@
-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.gyee.gaia.meter.adapter.Adapter;
-import com.gyee.gaia.meter.entity.PointData;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.test.context.SpringBootTest;
-
-import javax.annotation.Resource;
-import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Author: malijun
- * Data  : 2023: 05: 23
- **/
-@SpringBootTest
-public class OneTest {
-
-
-    @Value("${start.time}")
-    private String startTimeString;
-    @Value("${end.time}")
-    private String endTimeString;
-    @Resource
-    Adapter adapter;
-
-
-    @org.junit.jupiter.api.Test
-    void test() {
-        //设置取值开始时间
-        String startString = startTimeString;
-        DateTime startDateTime = DateUtil.parse(startString);
-
-        //设置取值结束时间
-        String endDateString = endTimeString;
-        DateTime endDateTime = DateUtil.parse(endDateString);
-
-        //指定开始日期到结束日期的天数
-        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("SBQFJ.NX_GD_SBQF_FJ_P2_L4_043_AI0064", 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));
-                        System.out.println("重新赋值后:"+rfdl);
-                    }
-                }
-
-            }
-        }
-    }
-}

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

@@ -0,0 +1,425 @@
+package com.gyee.gaia.meter.service.meter;
+
+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 startDay = DateUtil.offsetDay(now, -1);
+            DateTime startDateTime = DateUtil.beginOfDay(startDay);
+            //设置取值结束时间
+            DateTime endDay = DateUtil.offsetDay(now, -1);
+            DateTime endDateTime = DateUtil.endOfDay(endDay);
+
+            //指定开始日期到结束日期的天数
+            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 startDay = DateUtil.offsetDay(now, -1);
+        DateTime startDateTime = DateUtil.beginOfDay(startDay);
+        //设置取值结束时间
+        DateTime endDay = DateUtil.offsetDay(now, -1);
+        DateTime endDateTime = DateUtil.endOfDay(endDay);
+
+        //指定开始日期到结束日期的天数
+        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 startDay = DateUtil.offsetDay(now, -1);
+                DateTime startDateTime = DateUtil.beginOfDay(startDay);
+                //设置取值结束时间
+                DateTime endDay = DateUtil.offsetDay(now, -1);
+                DateTime endDateTime = DateUtil.endOfDay(endDay);
+
+                //指定开始日期到结束日期的天数
+                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 startDay = DateUtil.offsetDay(now, -1);
+        DateTime startDateTime = DateUtil.beginOfDay(startDay);
+        //设置取值结束时间
+        DateTime endDay = DateUtil.offsetDay(now, -1);
+        DateTime endDateTime = DateUtil.endOfDay(endDay);
+
+        //指定开始日期到结束日期的天数
+        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();
+            String formula2 = formula1.replaceAll("DL.NX", "DL_NX").replaceAll("DJL.", "DJL_");
+
+            String[] meterPointCodes = StringUtils.split(formula1, "[+-*/()]");
+            meterPointCodes = Arrays.stream(meterPointCodes)
+                    .filter(meterPointCode -> !(meterPointCode.length() < 8))
+                    .toArray(String[]::new);
+
+
+            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("DL.", "DL_").replaceAll("DJL.", "DJL_");
+//
+                    try {
+                        if (meterPointCode.startsWith("DL")) {
+                            MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", meterPointCode).eq("date", dateTime1));
+                            map.put(meterPointCode_, meterInfoCalculating.getValue());
+                        } else {
+                            MeterInfoBottomcode meterInfoBottomcode = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", meterPointCode).eq("start_time", dateTime1));
+                            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);
+                    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();
+
+    }
+
+
+}
+
+
+
+
+
+
+
+
+

File diff suppressed because it is too large
+ 320 - 858
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterInfo/GetMeterInfo.java


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

@@ -0,0 +1,144 @@
+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)
+                .orderBy(true, true, "order_num")
+        );
+        //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);
-    }
-
-}