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