Browse Source

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

xushili 1 year ago
parent
commit
b09ae5260c

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

@@ -2,6 +2,9 @@ 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.GetLineInfoById;
+import com.gyee.gaia.meter.service.meterinfo.GetPowerStationInfoById;
+import com.gyee.gaia.meter.service.meterinfo.GetProjectInfoById;
 import com.gyee.gaia.meter.service.meterinfo.GetWindStationInfo;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,22 +25,66 @@ import java.util.List;
 public class MeterController {
     @Resource
     GetWindStationInfo getWindStationInfo;
+    @Resource
+    GetPowerStationInfoById getPowerStationInfo;
+    @Resource
+    GetProjectInfoById getProjectInfoById;
+    @Resource
+    GetLineInfoById getLineInfoById;
 
 
     @GetMapping("")
-    public Result<Object> getMeterInfoFDC1(int id) {
-        if (-1 == id) {
-            // 查询返回总场站当月日发电量,上网电量,购网电量
+    public Result<Object> getMeterInfoFDC1(String id) {
+
+        //所有风场,-1
+        if ("-1".equals(id)) {
+            // 查询返回所有风场当月每日的, 日发电量.上网电量.购网电量.风速(暂无),前端为日发电量图表
             List<MeterInfoVO> meterInfoFDC = getWindStationInfo.getMeterInfoFDC_Day();
 
-            //查询返回总场站日发电量,月发电量,年发电
+            //查询返所有风场总, 日发电量,月发电量,年发电量,日上网电量,装机容
             MeterInfoVO meterInfoFDCFDLDayMonthYear = getWindStationInfo.getMeterInfoFDCFDL_DayMonthYear();
 
+            HashMap<Object, Object> map = new HashMap<>();
+            map.put("rdlmap", meterInfoFDC);
+            map.put("zdlmap", meterInfoFDCFDLDayMonthYear);
+            return new Result<>(200, "获取数据成功!", map);
+
+        } else if (id.contains("_FDC")) {
+
+            // 查询返回各个风场当月每日的, 日发电量.上网电量.购网电量.风速(暂无),前端为日发电量图表
+            List<MeterInfoVO> meterInfoFDC = getPowerStationInfo.getMeterInfoFDC_Day(id);
+
+            //查询返各个风场总, 日发电量,月发电量,年发电量,日上网电量,装机容量
+            MeterInfoVO meterInfoFDCFDLDayMonthYear = getPowerStationInfo.getMeterInfoFDCFDL_DayMonthYear(id);
 
             HashMap<Object, Object> map = new HashMap<>();
-            map.put("rdlmap",meterInfoFDC);
-            map.put("zdlmap",meterInfoFDCFDLDayMonthYear);
-            return  new Result<>(200, "获取数据成功!", map);
+            map.put("rdlmap", meterInfoFDC);
+            map.put("zdlmap", meterInfoFDCFDLDayMonthYear);
+            return new Result<>(200, "获取数据成功!", map);
+
+        } else if (id.contains("_GC")) {
+            // 查询返回各个期次当月每日的, 日发电量.上网电量.购网电量.风速(暂无),前端为日发电量图表
+            List<MeterInfoVO> meterInfoFDC = getProjectInfoById.getMeterInfoFDC_Day(id);
+
+            //查询返各个期次总, 日发电量,月发电量,年发电量,日上网电量,装机容量
+            MeterInfoVO meterInfoFDCFDLDayMonthYear = getProjectInfoById.getMeterInfoFDCFDL_DayMonthYear(id);
+
+            HashMap<Object, Object> map = new HashMap<>();
+            map.put("rdlmap", meterInfoFDC);
+            map.put("zdlmap", meterInfoFDCFDLDayMonthYear);
+            return new Result<>(200, "获取数据成功!", map);
+
+        } else if (id.contains("_XL")) {
+            // 查询返回各个线路当月每日的, 日发电量.风速(暂无),前端为日发电量图表
+            List<MeterInfoVO> meterInfoFDC = getLineInfoById.getMeterInfoFDC_Day(id);
+
+            //查询返各个线路总, 日发电量,月发电量,年发电量,装机容量
+            MeterInfoVO meterInfoFDCFDLDayMonthYear = getLineInfoById.getMeterInfoFDCFDL_DayMonthYear(id);
+
+            HashMap<Object, Object> map = new HashMap<>();
+            map.put("rdlmap", meterInfoFDC);
+            map.put("zdlmap", meterInfoFDCFDLDayMonthYear);
+            return new Result<>(200, "获取数据成功!", map);
 
         } else {
             return null;
@@ -45,5 +92,4 @@ public class MeterController {
     }
 
 
-
 }

+ 4 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/entity/vo/MeterInfoVO.java

@@ -33,5 +33,9 @@ public class MeterInfoVO {
     //总风场年发电量
     public BigDecimal yearFDL;
 
+    //装机容量
+    public BigDecimal zjrl;
+
+
 
 }

+ 2 - 2
electricity/meter/src/main/java/com/gyee/gaia/meter/service/SaveMeterInfoHistoryDayTest.java

@@ -418,9 +418,9 @@ class SaveMeterInfoHistoryDayTest {
     //调用上面4个,第四个需要3-4次
     @Test
     void saveCalculating3() {
-        this.saveEquipmentRfdl();
+//        this.saveEquipmentRfdl();
+//        this.saveBottomCode();
         this.saveCalculatingProjectFDL();
-        this.saveBottomCode();
         this.saveCalculating();
         this.saveCalculating();
         this.saveCalculating();

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

@@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.gyee.gaia.meter.entity.MeterInfoBottomcode;
 import com.gyee.gaia.meter.entity.MeterInfoCalculating;
 import com.gyee.gaia.meter.entity.MeterPoint;
-import com.gyee.gaia.meter.service.impl.*;
+import com.gyee.gaia.meter.service.impl.MeterInfoBottomcodeServiceImpl;
+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;
@@ -1356,6 +1358,7 @@ public class SaveMeterInfoHistoryMonthYearTest {
 
 
     }
+
 }
 
 

+ 148 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterinfo/GetLineInfoById.java

@@ -0,0 +1,148 @@
+package com.gyee.gaia.meter.service.meterinfo;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.gaia.meter.entity.*;
+import com.gyee.gaia.meter.entity.vo.MeterInfoVO;
+import com.gyee.gaia.meter.service.impl.*;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 22
+ **/
+
+@Service
+public class GetLineInfoById {
+    @Resource
+    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
+    @Resource
+    MeterInfoBottomcodeServiceImpl meterInfoBottomcodeService;
+    @Resource
+    MeterPointServiceImpl meterPointService;
+    @Resource
+    LineServiceImpl lineService;
+
+    public List<MeterInfoVO> getMeterInfoFDC_Day(String id) {
+        //根据id传过来的code,拿到线路nem_code
+        Line line = lineService.getOne(new QueryWrapper<Line>().eq("code", id));
+        String nemCode = line .getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当月第几天
+        int days = DateUtil.dayOfMonth(now);
+
+        //meter中拿到线路发电量code
+        MeterPoint oneMeterPointFDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("line_id", nemCode).eq("meter_type", "线路"));
+
+        //创建一个MeterInfoVO的list集合
+        List<MeterInfoVO> list = new ArrayList<>();
+
+        //循环遍历每一天,取每天的数据
+        for (int i = 1; i <= days; i++) {
+            //开始时间
+            DateTime dateTime1 = DateUtil.offsetDay(beginOfMonth, i - 1);
+
+            BigDecimal rfdl = BigDecimal.valueOf(0);
+            BigDecimal speed = BigDecimal.valueOf(0);
+
+            //根据时间和code查询线路日发电量
+            if (null != oneMeterPointFDL) {
+                MeterInfoBottomcode oneFDL = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", oneMeterPointFDL.getNemCode()).eq("start_time", dateTime1));
+                if (oneFDL != null) {
+                    rfdl = oneFDL.getDayValue();
+                }
+            }
+
+
+            MeterInfoVO meterInfoVO = new MeterInfoVO();
+            meterInfoVO.setTimestr(String.valueOf(i));
+            meterInfoVO.setDate(dateTime1);
+            meterInfoVO.setValue1(rfdl.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_EVEN));
+            meterInfoVO.setValue2(BigDecimal.valueOf(0));
+            meterInfoVO.setValue3(BigDecimal.valueOf(0));
+            meterInfoVO.setSpeed(speed);
+
+            list.add(meterInfoVO);
+
+        }
+
+        return list;
+    }
+
+
+    public MeterInfoVO getMeterInfoFDCFDL_DayMonthYear(String id) {
+
+        //根据id传过来的code,拿到线路nem_code
+        Line line = lineService.getOne(new QueryWrapper<Line>().eq("code", id));
+        String nemCode = line .getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当天开始时间
+        DateTime beginOfDay = DateUtil.beginOfDay(now);
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当年开始时间
+        DateTime beginOfYear = DateUtil.beginOfYear(now);
+
+        MeterPoint oneMeterPointFDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("line_id", nemCode).eq("meter_type", "线路"));
+        MeterPoint oneMeterPointFDLMonth = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("line_id", nemCode).eq("property", "JSD_LINEFDL_MONTH"));
+        MeterPoint oneMeterPointFDLYear = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("line_id", nemCode).eq("property", "JSD_LINEFDL_YEAR"));
+
+        //根据时间和code查询风场日发电量,日上网电量
+
+        BigDecimal rfdl = BigDecimal.valueOf(0);
+        BigDecimal yfdl = BigDecimal.valueOf(0);
+        BigDecimal nfdl = BigDecimal.valueOf(0);
+
+        if(null!=oneMeterPointFDL){
+            MeterInfoBottomcode dayFDL = meterInfoBottomcodeService.getOne(new QueryWrapper<MeterInfoBottomcode>().eq("code", oneMeterPointFDL.getNemCode()).eq("start_time", beginOfDay));
+            if (dayFDL != null) {
+                rfdl = dayFDL.getDayValue();
+            }
+        }
+        if(null!=oneMeterPointFDL){
+            MeterInfoCalculating monthFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDLMonth.getNemCode()).eq("date", beginOfMonth));
+            if (monthFDL != null) {
+                yfdl = monthFDL.getValue();
+            }
+        }
+        if(null!=oneMeterPointFDL){
+            MeterInfoCalculating yearFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDLYear.getNemCode()).eq("date", beginOfYear));
+            if (yearFDL != null) {
+                nfdl = yearFDL.getValue();
+            }
+        }
+
+        //装机容量
+        List<Line> lineCapacity = lineService.list(new QueryWrapper<Line>().eq("nem_code", nemCode));
+        //遍历集合
+        BigDecimal zjrl = BigDecimal.valueOf(0);
+        if (null != lineCapacity) {
+            for (Line line1 : lineCapacity) {
+                zjrl = zjrl.add(line1.getCapacity());
+            }
+        }
+
+
+        MeterInfoVO meterInfoVO = new MeterInfoVO();
+        meterInfoVO.setDayFDL(rfdl.divide(BigDecimal.valueOf(10000),4,RoundingMode.HALF_EVEN));
+        meterInfoVO.setMonthFDL(yfdl);
+        meterInfoVO.setYearFDL(nfdl);
+        meterInfoVO.setValue2(BigDecimal.valueOf(0));
+        meterInfoVO.setZjrl(zjrl.divide(BigDecimal.valueOf(10000),2, RoundingMode.HALF_EVEN));
+        return meterInfoVO;
+
+    }
+}

+ 146 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterinfo/GetPowerStationInfoById.java

@@ -0,0 +1,146 @@
+package com.gyee.gaia.meter.service.meterinfo;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.gyee.gaia.meter.entity.MeterInfoCalculating;
+import com.gyee.gaia.meter.entity.PowerStation;
+import com.gyee.gaia.meter.entity.vo.MeterInfoVO;
+import com.gyee.gaia.meter.service.impl.MeterInfoCalculatingServiceImpl;
+import com.gyee.gaia.meter.service.impl.PowerStationServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 22
+ **/
+
+@Service
+public class GetPowerStationInfoById {
+    @Resource
+    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
+    @Resource
+    PowerStationServiceImpl powerStationService;
+
+    public List<MeterInfoVO> getMeterInfoFDC_Day(String id) {
+        //根据id传过来的code,拿到场站的nem_code
+        PowerStation powerStation = powerStationService.getOne(new QueryWrapper<PowerStation>().eq("code", id));
+        String nemCode = powerStation.getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当月第几天
+        int days = DateUtil.dayOfMonth(now);
+
+        //创建一个MeterInfoVO的list集合
+        List<MeterInfoVO> list = new ArrayList<>();
+
+        //循环遍历每一天,取每天的数据
+        for (int i = 1; i <= days; i++) {
+            //开始时间
+            DateTime dateTime1 = DateUtil.offsetDay(beginOfMonth, i - 1);
+
+            //根据时间和code查询风场日发电量,日上网电量,日购网电量
+            MeterInfoCalculating oneFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_JDXLFDL_P0").eq("date", dateTime1).eq("windpowerstation_id", nemCode));
+            MeterInfoCalculating oneSWDL= meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%F_SWDL_P0").eq("date", dateTime1).eq("windpowerstation_id", nemCode));
+            MeterInfoCalculating oneGWDL= meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_GWDL_P0").eq("date", dateTime1).eq("windpowerstation_id", nemCode));
+
+            BigDecimal rfdl = BigDecimal.valueOf(0);
+            BigDecimal rswdl = BigDecimal.valueOf(0);
+            BigDecimal rgwdl = BigDecimal.valueOf(0);
+            BigDecimal speed = BigDecimal.valueOf(0);
+
+            if (oneFDL != null) {
+                rfdl = oneFDL.getValue();
+            }
+            if (oneSWDL != null) {
+                rswdl = oneSWDL.getValue();
+            }
+            if (oneGWDL != null) {
+                rgwdl = oneGWDL.getValue();
+            }
+
+            MeterInfoVO meterInfoVO = new MeterInfoVO();
+            meterInfoVO.setTimestr(String.valueOf(i));
+            meterInfoVO.setDate(dateTime1);
+            meterInfoVO.setValue1(rfdl);
+            meterInfoVO.setValue2(rswdl);
+            meterInfoVO.setValue3(rgwdl.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_EVEN));
+            meterInfoVO.setSpeed(speed);
+
+            list.add(meterInfoVO);
+
+        }
+
+        return list;
+    }
+
+
+    public MeterInfoVO getMeterInfoFDCFDL_DayMonthYear(String id) {
+
+        //根据id传过来的code,拿到nem_code
+        PowerStation onePowerStation = powerStationService.getOne(new QueryWrapper<PowerStation>().eq("code", id));
+        String nemCode = onePowerStation.getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当天开始时间
+        DateTime beginOfDay = DateUtil.beginOfDay(now);
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当年开始时间
+        DateTime beginOfYear = DateUtil.beginOfYear(now);
+
+
+        //根据时间场站ID和code查询各个风场日发电量,月发电量,年发电量,日上网电量
+        MeterInfoCalculating dayFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_JDXLFDL_P0").eq("date", beginOfDay).eq("windpowerstation_id", nemCode));
+        MeterInfoCalculating monthFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_POWERSTATIONFDL_MONTH").eq("date", beginOfMonth).eq("windpowerstation_id", nemCode));
+        MeterInfoCalculating yearFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_POWERSTATIONFDL_YEAR").eq("date", beginOfYear).eq("windpowerstation_id", nemCode));
+        MeterInfoCalculating oneSWDL= meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().like("code", "%_SWDL_P0").eq("date", beginOfDay).eq("windpowerstation_id", nemCode));
+
+        //装机容量
+        List<PowerStation> windCapacity = powerStationService.list(new QueryWrapper<PowerStation>().eq("nem_code", nemCode));
+        BigDecimal zjrl = BigDecimal.valueOf(0);
+        if (null != windCapacity) {
+            for (PowerStation powerStation : windCapacity) {
+                zjrl = zjrl.add(powerStation.getWindCapacity());
+            }
+        }
+
+        BigDecimal rfdl = BigDecimal.valueOf(0);
+        BigDecimal yfdl = BigDecimal.valueOf(0);
+        BigDecimal nfdl = BigDecimal.valueOf(0);
+        BigDecimal rswdl = BigDecimal.valueOf(0);
+
+        if (dayFDL != null) {
+            rfdl = dayFDL.getValue();
+        }
+        if (monthFDL != null) {
+            yfdl = monthFDL.getValue();
+        }
+        if (yearFDL != null) {
+            nfdl = yearFDL.getValue();
+        }
+        if (oneSWDL != null) {
+            rswdl = oneSWDL.getValue();
+        }
+
+
+        MeterInfoVO meterInfoVO = new MeterInfoVO();
+        meterInfoVO.setDayFDL(rfdl);
+        meterInfoVO.setMonthFDL(yfdl);
+        meterInfoVO.setYearFDL(nfdl);
+        meterInfoVO.setValue2(rswdl);
+        meterInfoVO.setZjrl(zjrl);
+        return meterInfoVO;
+
+    }
+}

+ 168 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterinfo/GetProjectInfoById.java

@@ -0,0 +1,168 @@
+package com.gyee.gaia.meter.service.meterinfo;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+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.entity.Project;
+import com.gyee.gaia.meter.entity.vo.MeterInfoVO;
+import com.gyee.gaia.meter.service.impl.MeterInfoCalculatingServiceImpl;
+import com.gyee.gaia.meter.service.impl.MeterPointServiceImpl;
+import com.gyee.gaia.meter.service.impl.ProjectServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Author: malijun
+ * Data  : 2023: 05: 22
+ **/
+
+@Service
+public class GetProjectInfoById {
+    @Resource
+    MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
+    @Resource
+    ProjectServiceImpl projectService;
+    @Resource
+    MeterPointServiceImpl meterPointService;
+
+
+
+    public List<MeterInfoVO> getMeterInfoFDC_Day(String id) {
+        //根据id传过来的旧code,拿到新nem_code
+        Project oneProject = projectService.getOne(new QueryWrapper<Project>().eq("code", id));
+        String nemCode = oneProject.getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当月第几天
+        int days = DateUtil.dayOfMonth(now);
+
+        //meter中拿到期次发电量code,上网电量code,购网电量code
+        MeterPoint oneMeterPointFDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("meter_type", "集电线路发电量"));
+        MeterPoint oneMeterPointSWDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("meter_type", "上网电量"));
+        MeterPoint oneMeterPointGWDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("meter_type", "购网电量"));
+
+        //创建一个MeterInfoVO的list集合
+        List<MeterInfoVO> list = new ArrayList<>();
+
+        //循环遍历每一天,取每天的数据
+        for (int i = 1; i <= days; i++) {
+            //开始时间
+            DateTime dateTime1 = DateUtil.offsetDay(beginOfMonth, i - 1);
+
+            //初始化
+            BigDecimal rfdl = BigDecimal.valueOf(0);
+            BigDecimal rswdl = BigDecimal.valueOf(0);
+            BigDecimal rgwdl = BigDecimal.valueOf(0);
+            BigDecimal speed = BigDecimal.valueOf(0);
+
+            //根据时间和code查询获取到期次日发电量,日上网电量,日购网电量
+            if (null != oneMeterPointFDL) {
+                MeterInfoCalculating oneFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDL.getNemCode()).eq("date", dateTime1));
+                if (oneFDL != null) {
+                    rfdl = oneFDL.getValue();
+                }
+            }
+            if (null != oneMeterPointSWDL) {
+                MeterInfoCalculating oneSWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointSWDL.getNemCode()).eq("date", dateTime1));
+                if (oneSWDL != null) {
+                    rswdl = oneSWDL.getValue();
+                }
+            }
+            if (null != oneMeterPointGWDL) {
+                MeterInfoCalculating oneGWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointGWDL.getNemCode()).eq("date", dateTime1));
+                if (oneGWDL != null) {
+                    rgwdl = oneGWDL.getValue();
+                }
+            }
+
+            //VO对象属性赋值
+            MeterInfoVO meterInfoVO = new MeterInfoVO();
+            meterInfoVO.setTimestr(String.valueOf(i));
+            meterInfoVO.setDate(dateTime1);
+            meterInfoVO.setValue1(rfdl);
+            meterInfoVO.setValue2(rswdl);
+            meterInfoVO.setValue3(rgwdl.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_EVEN));
+            meterInfoVO.setSpeed(speed);
+
+            //添加入集合
+            list.add(meterInfoVO);
+
+        }
+        return list;
+    }
+
+
+    public MeterInfoVO getMeterInfoFDCFDL_DayMonthYear(String id) {
+
+        Project oneProject = projectService.getOne(new QueryWrapper<Project>().eq("code", id));
+        String nemCode = oneProject.getNemCode();
+
+        //当前时间
+        DateTime now = DateTime.now();
+        //当天开始时间
+        DateTime beginOfDay = DateUtil.beginOfDay(now);
+        //当月开始时间
+        DateTime beginOfMonth = DateUtil.beginOfMonth(now);
+        //当年开始时间
+        DateTime beginOfYear = DateUtil.beginOfYear(now);
+
+        //根据code和特定属性从meterPoint表中拿到,日发电量code,月发电量code,年发电量code,日上网电量code
+        MeterPoint oneMeterPointFDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("meter_type", "集电线路发电量"));
+        MeterPoint oneMeterPointFDLMonth = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("property", "JSD_PROJECTFDL_MONTH"));
+        MeterPoint oneMeterPointFDLYear = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("property", "JSD_PROJECTFDL_YEAR"));
+        MeterPoint oneMeterPointSWDL = meterPointService.getOne(new QueryWrapper<MeterPoint>().eq("project_id", nemCode).eq("meter_type", "上网电量"));
+
+        //根据时间和code查询获取到期次的日发电量,日上网电量,月发电量,年发电量
+        MeterInfoCalculating dayFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDL.getNemCode()).eq("date", beginOfDay));
+        MeterInfoCalculating monthFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDLMonth.getNemCode()).eq("date", beginOfMonth));
+        MeterInfoCalculating yearFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointFDLYear.getNemCode()).eq("date", beginOfYear));
+        MeterInfoCalculating oneSWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", oneMeterPointSWDL.getNemCode()).eq("date", beginOfDay));
+
+        //装机容量
+        List<Project> windCapacity = projectService.list(new QueryWrapper<Project>().eq("nem_code", nemCode));
+        BigDecimal zjrl = BigDecimal.valueOf(0);
+        if (null != windCapacity) {
+            for (Project project : windCapacity) {
+                zjrl = zjrl.add(project.getCapacity());
+            }
+        }
+
+        BigDecimal rfdl = BigDecimal.valueOf(0);
+        BigDecimal yfdl = BigDecimal.valueOf(0);
+        BigDecimal nfdl = BigDecimal.valueOf(0);
+        BigDecimal rswdl = BigDecimal.valueOf(0);
+
+        if (dayFDL != null) {
+            rfdl = dayFDL.getValue();
+        }
+        if (monthFDL != null) {
+            yfdl = monthFDL.getValue();
+        }
+        if (yearFDL != null) {
+            nfdl = yearFDL.getValue();
+        }
+        if (oneSWDL != null) {
+            rswdl = oneSWDL.getValue();
+        }
+
+
+        MeterInfoVO meterInfoVO = new MeterInfoVO();
+        meterInfoVO.setDayFDL(rfdl);
+        meterInfoVO.setMonthFDL(yfdl);
+        meterInfoVO.setYearFDL(nfdl);
+        meterInfoVO.setValue2(rswdl);
+        meterInfoVO.setZjrl(zjrl.divide(BigDecimal.valueOf(10000), 2,RoundingMode.HALF_EVEN));
+        return meterInfoVO;
+
+    }
+}

+ 26 - 9
electricity/meter/src/main/java/com/gyee/gaia/meter/service/meterinfo/GetWindStationInfo.java

@@ -4,8 +4,10 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.gyee.gaia.meter.entity.MeterInfoCalculating;
+import com.gyee.gaia.meter.entity.PowerStation;
 import com.gyee.gaia.meter.entity.vo.MeterInfoVO;
 import com.gyee.gaia.meter.service.impl.MeterInfoCalculatingServiceImpl;
+import com.gyee.gaia.meter.service.impl.PowerStationServiceImpl;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -22,8 +24,8 @@ import java.util.List;
 public class GetWindStationInfo {
     @Resource
     MeterInfoCalculatingServiceImpl meterInfoCalculatingService;
-
-    //查询当月天数,返回当月每天的数据,日发电量,日上网电量,日购网电量
+    @Resource
+    PowerStationServiceImpl powerStationService;
 
     public List<MeterInfoVO> getMeterInfoFDC_Day() {
 
@@ -31,7 +33,7 @@ public class GetWindStationInfo {
         DateTime now = DateTime.now();
         //当月开始时间
         DateTime beginOfMonth = DateUtil.beginOfMonth(now);
-        //当月天
+        //当前日为当第几
         int days = DateUtil.dayOfMonth(now);
 
         //创建一个MeterInfoVO的list集合
@@ -42,16 +44,18 @@ public class GetWindStationInfo {
             //开始时间
             DateTime dateTime1 = DateUtil.offsetDay(beginOfMonth, i - 1);
 
-            //根据时间和code查询风场日发电量,日上网电量
+            //根据时间和code查询风场日发电量,日上网电量,日购网电量
             MeterInfoCalculating oneFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONFDL_DAY").eq("date", dateTime1));
             MeterInfoCalculating oneSWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONSWDL_DAY").eq("date", dateTime1));
             MeterInfoCalculating oneGWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONGWDL_DAY").eq("date", dateTime1));
 
+            //初始化
             BigDecimal rfdl = BigDecimal.valueOf(0);
             BigDecimal rswdl = BigDecimal.valueOf(0);
             BigDecimal rgwdl = BigDecimal.valueOf(0);
             BigDecimal speed = BigDecimal.valueOf(0);
 
+            //赋值
             if (oneFDL != null) {
                 rfdl = oneFDL.getValue();
             }
@@ -62,6 +66,7 @@ public class GetWindStationInfo {
                 rgwdl = oneGWDL.getValue();
             }
 
+            //VO对象设置属性值
             MeterInfoVO meterInfoVO = new MeterInfoVO();
             meterInfoVO.setTimestr(String.valueOf(i));
             meterInfoVO.setDate(dateTime1);
@@ -70,10 +75,11 @@ public class GetWindStationInfo {
             meterInfoVO.setValue3(rgwdl);
             meterInfoVO.setSpeed(speed);
 
+            //加入集合
             list.add(meterInfoVO);
 
         }
-
+        //返回VO对象集合
         return list;
     }
 
@@ -86,22 +92,31 @@ public class GetWindStationInfo {
         DateTime beginOfMonth = DateUtil.beginOfMonth(now);
         //当年开始时间
         DateTime beginOfYear = DateUtil.beginOfYear(now);
-        //当月天
+        //当前日为当第几
         int days = DateUtil.dayOfMonth(now);
 
-        //根据时间和code查询风场日发电量,日上网电量
+        //根据时间和code查询日发电量,日上网电量,月发电量,年发电量
         MeterInfoCalculating dayFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONFDL_DAY").eq("date", beginOfDay));
         MeterInfoCalculating monthFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONFDL_MONTH").eq("date", beginOfMonth));
         MeterInfoCalculating yearFDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONFDL_YEAR").eq("date", beginOfYear));
         MeterInfoCalculating oneSWDL = meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>().eq("code", "DL.NX_GD_WINDSTATIONSWDL_DAY").eq("date", beginOfDay));
 
+        //装机容量
+        List<PowerStation> windCapacity = powerStationService.list(new QueryWrapper<PowerStation>().ne("wind_capacity", 0));
+        BigDecimal zjrl = BigDecimal.valueOf(0);
+        if (null != windCapacity) {
+            for (PowerStation powerStation : windCapacity) {
+                zjrl = zjrl.add(powerStation.getWindCapacity());
+            }
+        }
 
-
+        //初始化
         BigDecimal rfdl = BigDecimal.valueOf(0);
         BigDecimal yfdl = BigDecimal.valueOf(0);
         BigDecimal nfdl = BigDecimal.valueOf(0);
         BigDecimal rswdl = BigDecimal.valueOf(0);
 
+        //赋值
         if (dayFDL != null) {
             rfdl = dayFDL.getValue();
         }
@@ -115,12 +130,14 @@ public class GetWindStationInfo {
             rswdl = oneSWDL.getValue();
         }
 
-
+        //VO对象属性设置值
         MeterInfoVO meterInfoVO = new MeterInfoVO();
         meterInfoVO.setDayFDL(rfdl);
         meterInfoVO.setMonthFDL(yfdl);
         meterInfoVO.setYearFDL(nfdl);
         meterInfoVO.setValue2(rswdl);
+        meterInfoVO.setZjrl(zjrl);
+
         return meterInfoVO;
 
     }

+ 6 - 2
electricity/meter/src/main/resources/application.properties

@@ -1,12 +1,16 @@
 ##需要动态配置的属性##
+
 #动态配置适配器的地址
 #adapter.url=http://192.168.10.18:8011/ts
 #adapter.url=http://192.168.10.18:8013/ts
 adapter.url=http://192.168.1.67:8011/ts
+
 #动态配置开始日期
-start.time=2023-04-01
+start.time=2023-05-1
 #动态配置结束日期
-end.time=2023-04-30
+end.time=2023-05-23
+
 meter.stations=MHS_FDC,NSS_FDC
+
 test.abcd=123456
 

+ 1 - 1
electricity/meter/src/main/resources/bootstrap.yaml

@@ -1,5 +1,5 @@
 server:
-  port: 8022
+  port: 8021
 
 spring:
   application: