Browse Source

sis首页添加利用小时

malijun 1 year ago
parent
commit
390959ae82

+ 13 - 0
electricity/meter/src/main/java/com/gyee/gaia/meter/controller/MeterController.java

@@ -96,6 +96,19 @@ public class MeterController {
             map.put("zdlmap", meterInfoFDCFDLDayMonthYear);
             return new Result<>(200, "获取数据成功!", map);
 
+        } else if (id.contains("_GDC")) {
+
+            // 查询返回各个光电场当月每日的, 日发电量.上网电量.购网电量.风速(暂无),前端为日发电量图表
+            List<MeterVO> meterInfoFDC = getPowerStationInfo.getMeterInfoGDC_Day(id);
+
+            //查询返各个光电场总, 日发电量,月发电量,年发电量,日上网电量,装机容量
+            MeterVO meterInfoFDCFDLDayMonthYear = getPowerStationInfo.getMeterInfoGDCFDL_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("_GC")) {
             // 查询返回各个期次当月每日的, 日发电量.上网电量.购网电量.风速(暂无),前端为日发电量图表
             List<MeterVO> meterInfoFDC = getProjectInfoById.getMeterInfoFDC_Day(id);

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

@@ -149,4 +149,137 @@ public class GetPowerStationInfoById {
         return meterVO;
 
     }
+
+
+
+    public List<MeterVO> getMeterInfoGDC_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<MeterVO> 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>()
+                    .likeLeft("code", "_GFJDXLFDL_P0")
+                    .eq("date", dateTime1)
+                    .eq("windpowerstation_id", nemCode));
+            MeterInfoCalculating oneSWDL= meterInfoCalculatingService.getOne(new QueryWrapper<MeterInfoCalculating>()
+                    .likeLeft("code", "_GFSWDL_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();
+            }
+
+
+            MeterVO meterVO = new MeterVO();
+            meterVO.setTimestr(String.valueOf(i));
+            meterVO.setDate(dateTime1);
+            meterVO.setValue1(rfdl);
+            meterVO.setValue2(rswdl);
+            meterVO.setValue3(rgwdl.divide(BigDecimal.valueOf(10000), 4, RoundingMode.HALF_EVEN));
+            meterVO.setSpeed(speed);
+
+            list.add(meterVO);
+
+        }
+
+        return list;
+    }
+
+
+    public MeterVO getMeterInfoGDCFDL_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>()
+                .likeLeft("code", "_GFJDXLFDL_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>()
+                .likeLeft("code", "_GFSWDL_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.getCapacity());
+            }
+        }
+
+        BigDecimal rfdl = BigDecimal.valueOf(0);
+        BigDecimal yfdl = BigDecimal.valueOf(0);
+        BigDecimal nfdl = BigDecimal.valueOf(0);
+        BigDecimal rswdl = BigDecimal.valueOf(0);
+        BigDecimal ylyxs = BigDecimal.valueOf(0);
+        BigDecimal nlyxs = BigDecimal.valueOf(0);
+
+        if (dayFDL != null) {
+            rfdl = dayFDL.getValue();
+        }
+        if (monthFDL != null) {
+            yfdl = monthFDL.getValue();
+            ylyxs=yfdl.multiply(BigDecimal.valueOf(10)).divide(zjrl, 2,RoundingMode.HALF_EVEN);
+        }
+        if (yearFDL != null) {
+            nfdl = yearFDL.getValue();
+            nlyxs=nfdl.multiply(BigDecimal.valueOf(10)).divide(zjrl, 2,RoundingMode.HALF_EVEN);
+        }
+        if (oneSWDL != null) {
+            rswdl = oneSWDL.getValue();
+        }
+
+
+        MeterVO meterVO = new MeterVO();
+        meterVO.setRfdl(rfdl);
+        meterVO.setYfdl(yfdl);
+        meterVO.setNfdl(nfdl);
+        meterVO.setSwdl(rswdl);
+        meterVO.setZjrl(zjrl);
+        meterVO.setYlyxs(ylyxs);
+        meterVO.setNlyxs(nlyxs);
+        return meterVO;
+
+    }
 }