Quellcode durchsuchen

月发电量,年发电量

malijun vor 1 Jahr
Ursprung
Commit
b6495c6f8e

+ 1 - 1
electricity/meter/src/main/java/com/gyee/gaia/meter/job/SavaMonthFdl.java

@@ -32,7 +32,7 @@ public class SavaMonthFdl {
     @XxlJob("saveMonthFdl")
     void savaMonthFdl() {
 
-        List<MeterPoint> meterPointJSD_YFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_YFDL"));
+        List<MeterPoint> meterPointJSD_YFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_POWERSTATIONFDL_MONTH"));
 
         //设置取值开始时间
         DateTime nowDateTime = DateUtil.parse(DateUtil.now());

+ 1 - 1
electricity/meter/src/main/java/com/gyee/gaia/meter/job/SavaYearFdl.java

@@ -32,7 +32,7 @@ public class SavaYearFdl {
 @XxlJob("saveYearFdl")
     void savaYearFdl() {
 
-        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_NFDL"));
+        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_POWERSTATIONFDL_YEAR"));
 
         //设置取值开始时间
         DateTime nowDateTime = DateUtil.parse(DateUtil.now());

+ 1 - 1
electricity/meter/src/main/java/com/gyee/gaia/meter/service/SaveMeterInfoHistory_DayTest.java

@@ -25,7 +25,7 @@ import java.util.*;
  * Data  : 2023: 04: 27
  **/
 @SpringBootTest
-class SaveMeterInfoHistory_DayTest {
+class SaveMeterInfoHistoryDayTest {
 
 
     @Resource

+ 462 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/SaveMeterInfoHistoryMonthYearTest.java

@@ -0,0 +1,462 @@
+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.entity.MeterInfoCalculating;
+import com.gyee.gaia.meter.entity.MeterPoint;
+import com.gyee.gaia.meter.service.impl.MeterInfoCalculatingServiceImpl;
+import com.gyee.gaia.meter.service.impl.MeterPointServiceImpl;
+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.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.List;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 17
+ **/
+@SpringBootTest
+public class SaveMeterInfoHistoryMonthYearTest {
+
+    @Resource
+    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
+    @Resource
+    MeterPointServiceImpl meterPointService;
+
+    @Value("${start.time}")
+    private String startTimeString;
+
+    @Test
+    void savePowerstationFdl_Month() {
+
+        List<MeterPoint> meterPointJSD_YFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_POWERSTATIONFDL_MONTH"));
+//        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_NFDL"));
+
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfMonth(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfMonth(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.DAYS.between(day1, day2);
+
+        //2,meterPointJSD_YFDLList
+        for (MeterPoint meterPoint : meterPointJSD_YFDLList) {
+
+            DateTime dateTime1 = DateTime.of(0);
+            double monthValue = 0.0;
+            for (int i = 0; i <= between; i++) {
+                //开始时间00:00:01
+                dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
+
+                //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路总发电量)
+                MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P0"));
+
+                //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                if (meterInfoCalculatingDay != null) {
+                    monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
+                }
+            }
+            // 将每个场站的每个月的value值存入到MeterInfoCalculating
+            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+            meterInfoCalculating.setName(meterPoint.getName());
+            meterInfoCalculating.setCode(meterPoint.getNemCode());
+            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+            meterInfoCalculating.setValue(BigDecimal.valueOf(monthValue));
+            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
+            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+            if (list.size() > 0) {
+                meterInfoCalculating.update(queryWrapper);
+            } else {
+                meterInfoCalculating.insert();
+            }
+        }
+    }
+
+    @Test
+    void savePowerstationFdl_Year() {
+
+        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_POWERSTATIONFDL_YEAR"));
+
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfYear(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfYear(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.MONTHS.between(day1, day2);
+        System.out.println(between);
+
+        //2,meterPointJSD_YFDLList
+        for (MeterPoint meterPoint : meterPointJSD_NFDLList) {
+
+            DateTime dateTime1 = DateTime.of(0);
+            double yearValue = 0.0;
+            for (int i = 0; i <= between; i++) {
+                //开始时间00:00:01
+                dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+                //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路总发电量)
+                MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_POWERSTATIONFDL_MONTH"));
+
+                //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                if (meterInfoCalculating != null) {
+                    yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+                }
+            }
+            // 将每个场站的每个月的value值存入到MeterInfoCalculating
+            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+            meterInfoCalculating.setName(meterPoint.getName());
+            meterInfoCalculating.setCode(meterPoint.getNemCode());
+            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+            meterInfoCalculating.setValue(BigDecimal.valueOf(yearValue));
+            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
+            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+            if (list.size() > 0) {
+                meterInfoCalculating.update(queryWrapper);
+            } else {
+                meterInfoCalculating.insert();
+            }
+        }
+    }
+
+
+    @Test
+    void saveProjectFdl_Month() {
+
+        List<MeterPoint> meterPointJSD_ProjectFDL_MonthList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_PROJECTFDL_MONTH"));
+
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfMonth(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfMonth(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.DAYS.between(day1, day2);
+
+        //2,meterPointJSD_YFDLList
+        for (MeterPoint meterPoint : meterPointJSD_ProjectFDL_MonthList) {
+
+            DateTime dateTime1 = DateTime.of(0);
+            double monthValue = 0.0;
+
+            if (meterPoint.getNemCode().endsWith("_P1_MONTH")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路项目期次侧)
+                    MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P1"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculatingDay != null) {
+                        monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
+                    }
+                }
+            } else if (meterPoint.getNemCode().endsWith("_P2_MONTH")) {
+
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路项目期次侧)
+                    MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P2"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculatingDay != null) {
+                        monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
+                    }
+                }
+            } else if (meterPoint.getNemCode().endsWith("_P3_MONTH")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路项目期次侧)
+                    MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P3"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculatingDay != null) {
+                        monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
+                    }
+                }
+
+            } else if (meterPoint.getNemCode().endsWith("_P4_MONTH")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路项目期次侧)
+                    MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P4"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculatingDay != null) {
+                        monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
+                    }
+                }
+
+            }
+
+            // 将每个场站的每个月的value值存入到MeterInfoCalculating
+            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+            meterInfoCalculating.setName(meterPoint.getName());
+            meterInfoCalculating.setCode(meterPoint.getNemCode());
+            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+            meterInfoCalculating.setValue(BigDecimal.valueOf(monthValue));
+            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
+            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+            if (list.size() > 0) {
+                meterInfoCalculating.update(queryWrapper);
+            } else {
+                meterInfoCalculating.insert();
+            }
+        }
+    }
+
+    @Test
+    void saveProjectFdl_Year() {
+
+        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_PROJECTFDL_YEAR"));
+
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfYear(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfYear(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.MONTHS.between(day1, day2);
+        System.out.println(between);
+
+        //2,meterPointJSD_YFDLList
+        for (MeterPoint meterPoint : meterPointJSD_NFDLList) {
+
+            DateTime dateTime1 = DateTime.of(0);
+            double yearValue = 0.0;
+
+            if (meterPoint.getNemCode().endsWith("_P1_YEAR")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路期次)
+                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_PROJECTFDL_P1_MONTH"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculating != null) {
+                        yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+                    }
+                }
+            } else if (meterPoint.getNemCode().endsWith("_P2_YEAR")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路期次)
+                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_PROJECTFDL_P2_MONTH"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculating != null) {
+                        yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+                    }
+                }
+            } else if (meterPoint.getNemCode().endsWith("_P3_YEAR")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路期次)
+                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_PROJECTFDL_P3_MONTH"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculating != null) {
+                        yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+                    }
+                }
+            } else if (meterPoint.getNemCode().endsWith("_P4_YEAR")) {
+                for (int i = 0; i <= between; i++) {
+                    //开始时间00:00:01
+                    dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+                    //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路期次)
+                    MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_PROJECTFDL_P4_MONTH"));
+
+                    //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+                    if (meterInfoCalculating != null) {
+                        yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+                    }
+                }
+            }
+
+            // 将每个场站的每个月的value值存入到MeterInfoCalculating
+            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+            meterInfoCalculating.setName(meterPoint.getName());
+            meterInfoCalculating.setCode(meterPoint.getNemCode());
+            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+            meterInfoCalculating.setValue(BigDecimal.valueOf(yearValue));
+            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
+
+            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
+            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+            if (list.size() > 0) {
+                meterInfoCalculating.update(queryWrapper);
+            } else {
+                meterInfoCalculating.insert();
+            }
+        }
+    }
+
+
+    @Test
+    void saveWindStationFdl_Month() {
+
+        MeterPoint meterPoint = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("property", "JSD_FCFDL_MONTH"));
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfMonth(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfMonth(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.DAYS.between(day1, day2);
+
+        //2,meterPointJSD_YFDLList
+
+
+        DateTime dateTime1 = DateTime.of(0);
+        double monthValue = 0.0;
+
+
+        for (int i = 0; i <= between; i++) {
+            //开始时间00:00:00
+            dateTime1 = DateUtil.offsetDay(startDateTime, i);
+
+            //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路项目期次侧)
+            List<MeterInfoCalculating> meterInfoCalculatingDay = meterInfoCalculatingService.list(new QueryWrapper<MeterInfoCalculating>().eq("date", dateTime1.toLocalDateTime()).like("code", "%_POWERSTATIONFDL_MONTH"));
+            //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+            if (meterInfoCalculatingDay.size() > 0) {
+                for (MeterInfoCalculating meterInfoCalculating : meterInfoCalculatingDay) {
+                    monthValue = monthValue + meterInfoCalculating.getValue().doubleValue();
+                }
+            }
+        }
+
+
+        // 将每个场站的每个月的value值存入到MeterInfoCalculating
+        MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+        meterInfoCalculating.setName(meterPoint.getName());
+        meterInfoCalculating.setCode(meterPoint.getNemCode());
+        //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+        meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+        meterInfoCalculating.setValue(BigDecimal.valueOf(monthValue));
+        meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+
+        QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+        List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+        if (list.size() > 0) {
+            meterInfoCalculating.update(queryWrapper);
+        } else {
+            meterInfoCalculating.insert();
+        }
+
+    }
+
+    @Test
+    void saveWindStationFdl_Year() {
+
+        MeterPoint meterPoint = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("property", "JSD_FCFDL_YEAR"));
+
+        //设置取值开始时间
+        String startString = startTimeString;
+        DateTime startDateTime0 = DateUtil.parse(startString);
+        DateTime startDateTime = DateUtil.beginOfYear(startDateTime0);
+        DateTime endDateTime = DateUtil.endOfYear(startDateTime0);
+
+        //开始日期到结束日期的天数
+        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
+        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
+        long between = ChronoUnit.MONTHS.between(day1, day2);
+        System.out.println(between);
+
+        //2,meterPointJSD_YFDLList
+
+        DateTime dateTime1 = DateTime.of(0);
+        double yearValue = 0.0;
+
+
+        for (int i = 0; i <= between; i++) {
+            //开始时间00:00:01
+            dateTime1 = DateUtil.offsetMonth(startDateTime, i);
+
+            //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路期次)
+            MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("date", dateTime1.toLocalDateTime()).eq("code", "DL.NX_GD_WINDSTATIONFDL_MONTH"));
+
+            //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
+            if (meterInfoCalculating != null) {
+                yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
+            }
+        }
+
+        // 将每个场站的每个月的value值存入到MeterInfoCalculating
+        MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
+        meterInfoCalculating.setName(meterPoint.getName());
+        meterInfoCalculating.setCode(meterPoint.getNemCode());
+        //LocalDateTime只显示年月(实际为每月的1号00:00:00)
+        meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+        meterInfoCalculating.setValue(BigDecimal.valueOf(yearValue));
+        meterInfoCalculating.setUpdateTime(LocalDateTime.now());
+
+        QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
+        List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
+        if (list.size() > 0) {
+            meterInfoCalculating.update(queryWrapper);
+        } else {
+            meterInfoCalculating.insert();
+        }
+
+    }
+
+
+}
+
+

+ 0 - 149
electricity/meter/src/main/java/com/gyee/gaia/meter/service/SaveMeterInfoHistory_Month_YearTest.java

@@ -1,149 +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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.gyee.gaia.meter.entity.MeterInfoCalculating;
-import com.gyee.gaia.meter.entity.MeterPoint;
-import com.gyee.gaia.meter.service.impl.MeterInfoCalculatingServiceImpl;
-import com.gyee.gaia.meter.service.impl.MeterPointServiceImpl;
-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.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.List;
-
-/**
- * Author: malijun
- * Data  : 2023: 05: 17
- **/
-@SpringBootTest
-public class SaveMeterInfoHistory_Month_YearTest {
-
-    @Resource
-    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
-    @Resource
-    MeterPointServiceImpl meterPointService;
-
-    @Value("${start.time}")
-    private String startTimeString;
-
-    @Test
-    void saveMeterInfoHistoryMonthTest() {
-
-        List<MeterPoint> meterPointJSD_YFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_YFDL"));
-//        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_NFDL"));
-
-        //设置取值开始时间
-        String startString = startTimeString;
-        DateTime startDateTime0 = DateUtil.parse(startString);
-        DateTime startDateTime = DateUtil.beginOfMonth(startDateTime0);
-        DateTime endDateTime = DateUtil.endOfMonth(startDateTime0);
-
-        //开始日期到结束日期的天数
-        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
-        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
-        long between = ChronoUnit.DAYS.between(day1, day2);
-
-        //2,meterPointJSD_YFDLList
-        for (MeterPoint meterPoint : meterPointJSD_YFDLList) {
-
-            DateTime dateTime1 = DateTime.of(0);
-            double monthValue = 0.0;
-            for (int i = 0; i <= between; i++) {
-                //开始时间00:00:01
-                dateTime1 = DateUtil.offsetSecond(DateUtil.offsetDay(startDateTime, i), 1);
-
-                //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路总发电量)
-                MeterInfoCalculating meterInfoCalculatingDay = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_P0"));
-
-                //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
-                if (meterInfoCalculatingDay != null) {
-                    monthValue = monthValue + meterInfoCalculatingDay.getValue().doubleValue();
-                }
-            }
-            // 将每个场站的每个月的value值存入到MeterInfoCalculating
-            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
-            meterInfoCalculating.setName(meterPoint.getName());
-            meterInfoCalculating.setCode(meterPoint.getNemCode());
-            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
-            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
-            meterInfoCalculating.setValue(BigDecimal.valueOf(monthValue));
-            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
-            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
-
-            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfMonth(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
-            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
-            if (list.size() > 0) {
-                meterInfoCalculating.update(queryWrapper);
-            } else {
-                meterInfoCalculating.insert();
-            }
-        }
-    }
-
-    @Test
-    void saveMeterInfoHistoryYearTest() {
-
-        List<MeterPoint> meterPointJSD_NFDLList = meterPointService.list(new QueryWrapper<MeterPoint>().eq("property", "JSD_NFDL"));
-
-        //设置取值开始时间
-        String startString = startTimeString;
-        DateTime startDateTime0 = DateUtil.parse(startString);
-        DateTime startDateTime = DateUtil.beginOfYear(startDateTime0);
-        DateTime endDateTime = DateUtil.endOfYear(startDateTime0);
-
-        //开始日期到结束日期的天数
-        LocalDateTime day1 = LocalDateTimeUtil.of(startDateTime);
-        LocalDateTime day2 = LocalDateTimeUtil.of(endDateTime);
-        long between = ChronoUnit.MONTHS.between(day1, day2);
-        System.out.println(between);
-
-        //2,meterPointJSD_YFDLList
-        for (MeterPoint meterPoint : meterPointJSD_NFDLList) {
-
-            DateTime dateTime1 = DateTime.of(0);
-            double yearValue = 0.0;
-            for (int i = 0; i <= between; i++) {
-                //开始时间00:00:01
-                dateTime1 = DateUtil.offsetMonth(startDateTime, i);
-
-                //根据每个场站的id,dateTime1,和集电线路总发电量的code拿到产站日发电量(集电线路总发电量)
-                MeterInfoCalculating meterInfoCalculating = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("windpowerstation_id", meterPoint.getWindpowerstationId()).eq("date", dateTime1.toLocalDateTime()).like("code", "%_JDXLFDL_MONTH"));
-
-                //MeterInfoCalculating,拿到每个记录的value值并累加到monthValue
-                if (meterInfoCalculating != null) {
-                    yearValue = yearValue + meterInfoCalculating.getValue().doubleValue();
-                }
-            }
-            // 将每个场站的每个月的value值存入到MeterInfoCalculating
-            MeterInfoCalculating meterInfoCalculating = new MeterInfoCalculating();
-            meterInfoCalculating.setName(meterPoint.getName());
-            meterInfoCalculating.setCode(meterPoint.getNemCode());
-            //LocalDateTime只显示年月(实际为每月的1号00:00:00)
-            meterInfoCalculating.setDate(dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0));
-            meterInfoCalculating.setValue(BigDecimal.valueOf(yearValue));
-            meterInfoCalculating.setUpdateTime(LocalDateTime.now());
-            meterInfoCalculating.setWindpowerstationId(meterPoint.getWindpowerstationId());
-
-            QueryWrapper<MeterInfoCalculating> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("code", meterPoint.getNemCode()).eq("date", dateTime1.toLocalDateTime().withDayOfYear(1).withNano(0).withSecond(0).withMinute(0).withHour(0)).eq("windpowerstation_id", meterPoint.getWindpowerstationId());
-            List<MeterInfoCalculating> list = meterInfoCalculatingService.list(queryWrapper);
-            if (list.size() > 0) {
-                meterInfoCalculating.update(queryWrapper);
-            } else {
-                meterInfoCalculating.insert();
-            }
-        }
-    }
-
-
-}
-
-