Browse Source

+ 大屏源模块

chen.cheng 1 month ago
parent
commit
2e1ca6a8ea

+ 28 - 30
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/AdmEmsEcoDController.java

@@ -1,38 +1,36 @@
 package com.ruoyi.ems.controller;
 
-import java.util.List;
-import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
-
 import com.huashe.common.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.AdmEmsEcoD;
+import com.ruoyi.ems.service.IAdmEmsEcoDService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-import com.ruoyi.common.log.annotation.Log;
-import com.ruoyi.common.log.enums.BusinessType;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.ruoyi.ems.domain.AdmEmsEcoD;
-import com.ruoyi.ems.service.IAdmEmsEcoDService;
-import com.ruoyi.common.core.web.controller.BaseController;
-import com.ruoyi.common.core.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.web.page.TableDataInfo;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 节能计量日Controller
- * 
+ *
  * @author ruoyi
  * @date 2025-04-22
  */
 @RestController
 @RequestMapping("/EmsEcoD")
-public class AdmEmsEcoDController extends BaseController
-{
+public class AdmEmsEcoDController extends BaseController {
     @Autowired
     private IAdmEmsEcoDService admEmsEcoDService;
 
@@ -41,8 +39,7 @@ public class AdmEmsEcoDController extends BaseController
      */
     @RequiresPermissions("ems:EmsEcoD:list")
     @GetMapping("/list")
-    public TableDataInfo list(AdmEmsEcoD admEmsEcoD)
-    {
+    public TableDataInfo list(AdmEmsEcoD admEmsEcoD) {
         startPage();
         List<AdmEmsEcoD> list = admEmsEcoDService.selectAdmEmsEcoDList(admEmsEcoD);
         return getDataTable(list);
@@ -54,8 +51,7 @@ public class AdmEmsEcoDController extends BaseController
     @RequiresPermissions("ems:EmsEcoD:export")
     @Log(title = "节能计量日", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, AdmEmsEcoD admEmsEcoD)
-    {
+    public void export(HttpServletResponse response, AdmEmsEcoD admEmsEcoD) {
         List<AdmEmsEcoD> list = admEmsEcoDService.selectAdmEmsEcoDList(admEmsEcoD);
         ExcelUtil<AdmEmsEcoD> util = new ExcelUtil<AdmEmsEcoD>(AdmEmsEcoD.class);
         util.exportExcel(response, list, "节能计量日数据");
@@ -66,8 +62,7 @@ public class AdmEmsEcoDController extends BaseController
      */
     @RequiresPermissions("ems:EmsEcoD:query")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(admEmsEcoDService.selectAdmEmsEcoDById(id));
     }
 
@@ -77,8 +72,7 @@ public class AdmEmsEcoDController extends BaseController
     @RequiresPermissions("ems:EmsEcoD:add")
     @Log(title = "节能计量日", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody AdmEmsEcoD admEmsEcoD)
-    {
+    public AjaxResult add(@RequestBody AdmEmsEcoD admEmsEcoD) {
         return toAjax(admEmsEcoDService.insertAdmEmsEcoD(admEmsEcoD));
     }
 
@@ -88,8 +82,7 @@ public class AdmEmsEcoDController extends BaseController
     @RequiresPermissions("ems:EmsEcoD:edit")
     @Log(title = "节能计量日", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody AdmEmsEcoD admEmsEcoD)
-    {
+    public AjaxResult edit(@RequestBody AdmEmsEcoD admEmsEcoD) {
         return toAjax(admEmsEcoDService.updateAdmEmsEcoD(admEmsEcoD));
     }
 
@@ -98,9 +91,14 @@ public class AdmEmsEcoDController extends BaseController
      */
     @RequiresPermissions("ems:EmsEcoD:remove")
     @Log(title = "节能计量日", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(admEmsEcoDService.deleteAdmEmsEcoDByIds(ids));
     }
+
+    @GetMapping(value = "/date/range")
+    public AjaxResult calcAdmEmsEcoDateRange(AdmEmsEcoD admEmsEcoD) {
+        return success(admEmsEcoDService.calcAdmEmsEcoDateRange(admEmsEcoD));
+    }
+
 }

+ 26 - 17
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/ElecPgSupplyHController.java

@@ -33,8 +33,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/pg/supply/hour")
 @Api(value = "ElecPgSupplyHController", description = "电网供应计量")
-public class ElecPgSupplyHController extends BaseController
-{
+public class ElecPgSupplyHController extends BaseController {
     @Autowired
     private IElecPgSupplyHService pgSupplyHService;
 
@@ -43,8 +42,7 @@ public class ElecPgSupplyHController extends BaseController
      */
     @RequiresPermissions("power-mgr:pg:list")
     @GetMapping("/list")
-    public TableDataInfo list(ElecPgSupplyH admEmsPgSupplyH)
-    {
+    public TableDataInfo list(ElecPgSupplyH admEmsPgSupplyH) {
         startPage();
         List<ElecPgSupplyH> list = pgSupplyHService.selectPgSupplyHList(admEmsPgSupplyH);
         return getDataTable(list);
@@ -55,8 +53,7 @@ public class ElecPgSupplyHController extends BaseController
      */
     @RequiresPermissions("power-mgr:pg:list")
     @GetMapping("/listByDate")
-    public AjaxResult listByDate(QueryMeter queryMeter)
-    {
+    public AjaxResult listByDate(QueryMeter queryMeter) {
         List<ElecPgSupplyH> list = pgSupplyHService.selectPgSupplyH(queryMeter);
         return success(list);
     }
@@ -67,8 +64,7 @@ public class ElecPgSupplyHController extends BaseController
     @RequiresPermissions("power-mgr:pg:export")
     @Log(title = "电网供应计量-小时", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ElecPgSupplyH admEmsPgSupplyH)
-    {
+    public void export(HttpServletResponse response, ElecPgSupplyH admEmsPgSupplyH) {
         List<ElecPgSupplyH> list = pgSupplyHService.selectPgSupplyHList(admEmsPgSupplyH);
         ExcelUtil<ElecPgSupplyH> util = new ExcelUtil<ElecPgSupplyH>(ElecPgSupplyH.class);
         util.exportExcel(response, list, "电网供应计量-小时数据");
@@ -79,8 +75,7 @@ public class ElecPgSupplyHController extends BaseController
      */
     @RequiresPermissions("power-mgr:pg:query")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(pgSupplyHService.selectPgSupplyHById(id));
     }
 
@@ -100,8 +95,7 @@ public class ElecPgSupplyHController extends BaseController
     @RequiresPermissions("power-mgr:pg:add")
     @Log(title = "电网供应计量-小时", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody ElecPgSupplyH admEmsPgSupplyH)
-    {
+    public AjaxResult add(@RequestBody ElecPgSupplyH admEmsPgSupplyH) {
         return toAjax(pgSupplyHService.insertPgSupplyH(admEmsPgSupplyH));
     }
 
@@ -111,8 +105,7 @@ public class ElecPgSupplyHController extends BaseController
     @RequiresPermissions("power-mgr:pg:edit")
     @Log(title = "电网供应计量-小时", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody ElecPgSupplyH admEmsPgSupplyH)
-    {
+    public AjaxResult edit(@RequestBody ElecPgSupplyH admEmsPgSupplyH) {
         return toAjax(pgSupplyHService.updatePgSupplyH(admEmsPgSupplyH));
     }
 
@@ -121,9 +114,25 @@ public class ElecPgSupplyHController extends BaseController
      */
     @RequiresPermissions("power-mgr:pg:remove")
     @Log(title = "电网供应计量-小时", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(pgSupplyHService.deletePgSupplyHByIds(ids));
     }
+
+
+    @GetMapping(value = "/total/pv")
+    public AjaxResult calPvByDateRange(QueryMeter param) {
+        return success(pgSupplyHService.calPvByDateRange(param));
+    }
+
+    @GetMapping(value = "/day/pv")
+    public AjaxResult calDayPvRange(QueryMeter param) {
+        return success(pgSupplyHService.calDayPvRange(param));
+    }
+
+    @GetMapping(value = "/hour/pv")
+    public AjaxResult calHourPvRange(QueryMeter param) {
+        return success(pgSupplyHService.calHourPvRange(param));
+    }
+
 }

+ 14 - 15
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/ElecProdForecastController.java

@@ -32,8 +32,7 @@ import java.util.List;
 @RestController
 @RequestMapping("/predictionProd")
 @Api(value = "ElecProdForecastController", description = "电力产能预测数据接口")
-public class ElecProdForecastController extends BaseController
-{
+public class ElecProdForecastController extends BaseController {
     @Autowired
     private IElecProdForecastService elecProdForecastService;
 
@@ -42,8 +41,7 @@ public class ElecProdForecastController extends BaseController
      */
     @RequiresPermissions("prediction:prod:list")
     @GetMapping("/list")
-    public TableDataInfo list(ElecProdForecast elecProdForecast)
-    {
+    public TableDataInfo list(ElecProdForecast elecProdForecast) {
         startPage();
         List<ElecProdForecast> list = elecProdForecastService.selectElecProdForecastList(elecProdForecast);
         return getDataTable(list);
@@ -55,8 +53,7 @@ public class ElecProdForecastController extends BaseController
     @RequiresPermissions("prediction:prod:export")
     @Log(title = "电力产能预测", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(HttpServletResponse response, ElecProdForecast elecProdForecast)
-    {
+    public void export(HttpServletResponse response, ElecProdForecast elecProdForecast) {
         List<ElecProdForecast> list = elecProdForecastService.selectElecProdForecastList(elecProdForecast);
         ExcelUtil<ElecProdForecast> util = new ExcelUtil<ElecProdForecast>(ElecProdForecast.class);
         util.exportExcel(response, list, "电力产能预测数据");
@@ -67,8 +64,7 @@ public class ElecProdForecastController extends BaseController
      */
     @RequiresPermissions("prediction:prod:query")
     @GetMapping(value = "/{id}")
-    public AjaxResult getInfo(@PathVariable("id") Long id)
-    {
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
         return success(elecProdForecastService.selectElecProdForecastById(id));
     }
 
@@ -78,8 +74,7 @@ public class ElecProdForecastController extends BaseController
     @RequiresPermissions("prediction:prod:add")
     @Log(title = "电力产能预测", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody ElecProdForecast elecProdForecast)
-    {
+    public AjaxResult add(@RequestBody ElecProdForecast elecProdForecast) {
         return toAjax(elecProdForecastService.insertElecProdForecast(elecProdForecast));
     }
 
@@ -89,8 +84,7 @@ public class ElecProdForecastController extends BaseController
     @RequiresPermissions("prediction:prod:edit")
     @Log(title = "电力产能预测", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody ElecProdForecast elecProdForecast)
-    {
+    public AjaxResult edit(@RequestBody ElecProdForecast elecProdForecast) {
         return toAjax(elecProdForecastService.updateElecProdForecast(elecProdForecast));
     }
 
@@ -99,9 +93,14 @@ public class ElecProdForecastController extends BaseController
      */
     @RequiresPermissions("prediction:prod:remove")
     @Log(title = "电力产能预测", businessType = BusinessType.DELETE)
-	@DeleteMapping("/{ids}")
-    public AjaxResult remove(@PathVariable Long[] ids)
-    {
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
         return toAjax(elecProdForecastService.deleteElecProdForecastByIds(ids));
     }
+
+
+    @GetMapping("/date/range")
+    public AjaxResult calcElecProdForecastDateRange(ElecProdForecast elecProdForecast) {
+        return AjaxResult.success(elecProdForecastService.calcElecProdForecastDateRange(elecProdForecast));
+    }
 }

+ 56 - 40
ems/ems-core/src/main/java/com/ruoyi/ems/domain/ElecProdForecast.java

@@ -14,18 +14,23 @@ import java.util.Date;
  * @author ruoyi
  * @date 2024-08-12
  */
-public class ElecProdForecast extends BaseEntity
-{
+public class ElecProdForecast extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
-    /** 序号 */
+    /**
+     * 序号
+     */
     private Long id;
 
-    /** 园区代码 */
+    /**
+     * 园区代码
+     */
     @Excel(name = "园区代码")
     private String areaCode;
 
-    /** 设施代码 */
+    /**
+     * 设施代码
+     */
     @Excel(name = "设施代码")
     private String facsCode;
 
@@ -35,71 +40,73 @@ public class ElecProdForecast extends BaseEntity
     @Excel(name = "设施名称")
     private String facsName;
 
-    /** 日期 */
+    /**
+     * 日期
+     */
     @JsonFormat(pattern = "yyyy-MM-dd")
     @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date date;
 
-    /** 发电量(千瓦·时) */
+    /**
+     * 发电量(千瓦·时)
+     */
     @Excel(name = "发电量", readConverterExp = "千=瓦·时")
     private Double elecProdQuantity;
 
-    /** 功率(千瓦) */
+    @Excel(name = "上网电量", readConverterExp = "千=瓦·时")
+    private Double upElecQuantity;
+
+    /**
+     * 功率(千瓦)
+     */
     @Excel(name = "功率", readConverterExp = "千=瓦")
     private Double avgPower;
 
-    public void setId(Long id)
-    {
+    public void setId(Long id) {
         this.id = id;
     }
 
-    public Long getId()
-    {
+    public Long getId() {
         return id;
     }
-    public void setAreaCode(String areaCode)
-    {
+
+    public void setAreaCode(String areaCode) {
         this.areaCode = areaCode;
     }
 
-    public String getAreaCode()
-    {
+    public String getAreaCode() {
         return areaCode;
     }
-    public void setFacsCode(String facsCode)
-    {
+
+    public void setFacsCode(String facsCode) {
         this.facsCode = facsCode;
     }
 
-    public String getFacsCode()
-    {
+    public String getFacsCode() {
         return facsCode;
     }
-    public void setDate(Date date)
-    {
+
+    public void setDate(Date date) {
         this.date = date;
     }
 
-    public Date getDate()
-    {
+    public Date getDate() {
         return date;
     }
-    public void setElecProdQuantity(Double elecProdQuantity)
-    {
+
+    public void setElecProdQuantity(Double elecProdQuantity) {
         this.elecProdQuantity = elecProdQuantity;
     }
 
-    public Double getElecProdQuantity()
-    {
+    public Double getElecProdQuantity() {
         return elecProdQuantity;
     }
-    public void setAvgPower(Double avgPower)
-    {
+
+    public void setAvgPower(Double avgPower) {
         this.avgPower = avgPower;
     }
 
-    public Double getAvgPower()
-    {
+    public Double getAvgPower() {
         return avgPower;
     }
 
@@ -119,15 +126,24 @@ public class ElecProdForecast extends BaseEntity
         this.facsName = facsName;
     }
 
+
+    public Double getUpElecQuantity() {
+        return upElecQuantity;
+    }
+
+    public void setUpElecQuantity(Double upElecQuantity) {
+        this.upElecQuantity = upElecQuantity;
+    }
+
     @Override
     public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("areaCode", getAreaCode())
-            .append("facsCode", getFacsCode())
-            .append("date", getDate())
-            .append("elecProdQuantity", getElecProdQuantity())
-            .append("avgPower", getAvgPower())
-            .toString();
+        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
+                .append("id", getId())
+                .append("areaCode", getAreaCode())
+                .append("facsCode", getFacsCode())
+                .append("date", getDate())
+                .append("elecProdQuantity", getElecProdQuantity())
+                .append("avgPower", getAvgPower())
+                .toString();
     }
 }

+ 13 - 10
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/AdmEmsEcoDMapper.java

@@ -1,19 +1,19 @@
 package com.ruoyi.ems.mapper;
 
-import java.util.List;
 import com.ruoyi.ems.domain.AdmEmsEcoD;
 
+import java.util.List;
+
 /**
  * 节能计量日Mapper接口
- * 
+ *
  * @author ruoyi
  * @date 2025-04-22
  */
-public interface AdmEmsEcoDMapper 
-{
+public interface AdmEmsEcoDMapper {
     /**
      * 查询节能计量日
-     * 
+     *
      * @param id 节能计量日主键
      * @return 节能计量日
      */
@@ -21,7 +21,7 @@ public interface AdmEmsEcoDMapper
 
     /**
      * 查询节能计量日列表
-     * 
+     *
      * @param admEmsEcoD 节能计量日
      * @return 节能计量日集合
      */
@@ -29,7 +29,7 @@ public interface AdmEmsEcoDMapper
 
     /**
      * 新增节能计量日
-     * 
+     *
      * @param admEmsEcoD 节能计量日
      * @return 结果
      */
@@ -37,7 +37,7 @@ public interface AdmEmsEcoDMapper
 
     /**
      * 修改节能计量日
-     * 
+     *
      * @param admEmsEcoD 节能计量日
      * @return 结果
      */
@@ -45,7 +45,7 @@ public interface AdmEmsEcoDMapper
 
     /**
      * 删除节能计量日
-     * 
+     *
      * @param id 节能计量日主键
      * @return 结果
      */
@@ -53,9 +53,12 @@ public interface AdmEmsEcoDMapper
 
     /**
      * 批量删除节能计量日
-     * 
+     *
      * @param ids 需要删除的数据主键集合
      * @return 结果
      */
     public int deleteAdmEmsEcoDByIds(Long[] ids);
+
+
+    AdmEmsEcoD calcAdmEmsEcoDateRange(AdmEmsEcoD admEmsEcoD);
 }

+ 2 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/ElecProdForecastMapper.java

@@ -58,4 +58,6 @@ public interface ElecProdForecastMapper {
      * @return 结果
      */
     int deleteElecProdForecastByIds(Long[] ids);
+
+    List<ElecProdForecast> calcElecProdForecastDateRange(ElecProdForecast elecProdForecast);
 }

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/ElecPvSupplyHMapper.java

@@ -40,6 +40,13 @@ public interface ElecPvSupplyHMapper {
     @MapKey("timeIndex")
     Map<String, Map<String, Object>> calThisDayPvByH(@Param("thisDay") String thisDay);
 
+
+    ElecPvSupplyH calPvByDateRange(QueryMeter param);
+
+    List<ElecPvSupplyH> calDayPvRange(QueryMeter param);
+
+    List<ElecPvSupplyH> calHourPvRange(QueryMeter param);
+
     /**
      * 新增光伏并网计量光伏并网计量-小时
      *

+ 2 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IAdmEmsEcoDService.java

@@ -58,4 +58,6 @@ public interface IAdmEmsEcoDService
      * @return 结果
      */
     public int deleteAdmEmsEcoDById(Long id);
+
+    AdmEmsEcoD calcAdmEmsEcoDateRange(AdmEmsEcoD admEmsEcoD);
 }

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecPgSupplyHService.java

@@ -1,6 +1,7 @@
 package com.ruoyi.ems.service;
 
 import com.ruoyi.ems.domain.ElecPgSupplyH;
+import com.ruoyi.ems.domain.ElecPvSupplyH;
 import com.ruoyi.ems.model.QueryMeter;
 
 import java.util.List;
@@ -72,4 +73,10 @@ public interface IElecPgSupplyHService {
      * @return 结果
      */
     int deletePgSupplyHById(Long id);
+
+    Map<String, ElecPvSupplyH> calPvByDateRange(QueryMeter param);
+
+    List<ElecPvSupplyH> calDayPvRange(QueryMeter param);
+
+    List<ElecPvSupplyH> calHourPvRange(QueryMeter param);
 }

+ 2 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecProdForecastService.java

@@ -58,4 +58,6 @@ public interface IElecProdForecastService {
      * @return 结果
      */
     int deleteElecProdForecastById(Long id);
+
+    List<ElecProdForecast> calcElecProdForecastDateRange(ElecProdForecast elecProdForecast);
 }

+ 5 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/AdmEmsEcoDServiceImpl.java

@@ -90,4 +90,9 @@ public class AdmEmsEcoDServiceImpl implements IAdmEmsEcoDService
     {
         return admEmsEcoDMapper.deleteAdmEmsEcoDById(id);
     }
+
+    @Override
+    public AdmEmsEcoD calcAdmEmsEcoDateRange(AdmEmsEcoD admEmsEcoD){
+        return admEmsEcoDMapper.calcAdmEmsEcoDateRange(admEmsEcoD);
+    }
 }

+ 48 - 2
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecPgSupplyHServiceImpl.java

@@ -1,11 +1,14 @@
 package com.ruoyi.ems.service.impl;
 
+import cn.hutool.core.thread.ThreadUtil;
 import com.ruoyi.common.core.utils.DateTimeUtil;
 import com.ruoyi.ems.domain.ElecPgSupplyH;
+import com.ruoyi.ems.domain.ElecPvSupplyH;
 import com.ruoyi.ems.mapper.ElecPgSupplyHMapper;
 import com.ruoyi.ems.mapper.ElecPvSupplyHMapper;
 import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IElecPgSupplyHService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -13,6 +16,7 @@ import org.springframework.stereotype.Service;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.Future;
 
 /**
  * 电网供应计量-小时Service业务层处理
@@ -21,6 +25,7 @@ import java.util.Map;
  * @date 2024-08-09
  */
 @Service
+@Slf4j
 public class ElecPgSupplyHServiceImpl implements IElecPgSupplyHService {
     @Autowired
     private ElecPgSupplyHMapper pgSupplyHMapper;
@@ -49,8 +54,7 @@ public class ElecPgSupplyHServiceImpl implements IElecPgSupplyHService {
     public List<ElecPgSupplyH> selectPgSupplyHList(ElecPgSupplyH elecPgSupplyH) {
         if (StringUtils.equals("-1", elecPgSupplyH.getAreaCode())) {
             return pgSupplyHMapper.selectPgSupplyHAllArea(elecPgSupplyH);
-        }
-        else {
+        } else {
             return pgSupplyHMapper.selectPgSupplyHList(elecPgSupplyH);
         }
     }
@@ -125,4 +129,46 @@ public class ElecPgSupplyHServiceImpl implements IElecPgSupplyHService {
     public int deletePgSupplyHById(Long id) {
         return pgSupplyHMapper.deletePgSupplyHById(id);
     }
+
+
+    @Override
+    public Map<String, ElecPvSupplyH> calPvByDateRange(QueryMeter param) {
+        Future<?> thisDay = ThreadUtil.execAsync(() -> pvSupplyHMapper.calPvByDateRange(new QueryMeter() {{
+            setDate(DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyy_MM_dd));
+            setAreaCode(param.getAreaCode());
+        }}));
+        Future<?> thisMonth = ThreadUtil.execAsync(() -> pvSupplyHMapper.calPvByDateRange(new QueryMeter() {
+            {
+                setDate(DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyy_MM));
+                setAreaCode(param.getAreaCode());
+            }
+        }));
+        Future<?> thisYear = ThreadUtil.execAsync(() -> pvSupplyHMapper.calPvByDateRange(new QueryMeter() {{
+            setAreaCode(param.getAreaCode());
+            setDate(DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyy));
+        }}));
+        Future<?> total = ThreadUtil.execAsync(() -> pvSupplyHMapper.calPvByDateRange(new QueryMeter() {{
+            setAreaCode(param.getAreaCode());
+        }}));
+        Map<String, ElecPvSupplyH> result = new HashMap<>();
+        try {
+            result.put("thisDay", (ElecPvSupplyH) thisDay.get());
+            result.put("thisMonth", (ElecPvSupplyH) thisMonth.get());
+            result.put("thisYear", (ElecPvSupplyH) thisYear.get());
+            result.put("total", (ElecPvSupplyH) total.get());
+        } catch (Exception e) {
+            log.error("calPvByDateRange error {}", e.getMessage());
+        }
+        return result;
+    }
+
+    @Override
+    public List<ElecPvSupplyH> calDayPvRange(QueryMeter param) {
+        return pvSupplyHMapper.calDayPvRange(param);
+    }
+
+    @Override
+    public List<ElecPvSupplyH> calHourPvRange(QueryMeter param) {
+        return pvSupplyHMapper.calHourPvRange(param);
+    }
 }

+ 5 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecProdForecastServiceImpl.java

@@ -84,4 +84,9 @@ public class ElecProdForecastServiceImpl implements IElecProdForecastService {
     public int deleteElecProdForecastById(Long id) {
         return admEmsElecProdForecastMapper.deleteElecProdForecastById(id);
     }
+
+    @Override
+    public List<ElecProdForecast> calcElecProdForecastDateRange(ElecProdForecast elecProdForecast) {
+        return admEmsElecProdForecastMapper.calcElecProdForecastDateRange(elecProdForecast);
+    }
 }

+ 18 - 0
ems/ems-core/src/main/resources/mapper/ems/AdmEmsEcoDMapper.xml

@@ -77,4 +77,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <select id="calcAdmEmsEcoDateRange" parameterType="AdmEmsEcoD" resultMap="AdmEmsEcoDResult">
+        select sum(
+        COALESCE(CAST(elec_eco_quantity AS DECIMAL(10, 2)), 0)) elec_eco_quantity,
+        sum(
+        COALESCE(CAST(elec_eco_cost AS DECIMAL(10, 2)), 0)) elec_eco_cost,
+        sum(
+        COALESCE(CAST(water_eco_quantity AS DECIMAL(10, 2)), 0)) water_eco_quantity,
+        sum(
+        COALESCE(CAST(water_eco_cost AS DECIMAL(10, 2)), 0)) water_eco_cost
+        from adm_ems_eco_d d
+        <where>
+            <if test="date != null and date != ''">DATE like concat(#{date}, '%')</if>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and area_code = #{areaCode}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 18 - 0
ems/ems-core/src/main/resources/mapper/ems/ElecProdForecastMapper.xml

@@ -10,6 +10,7 @@
         <result property="facsCode" column="facs_code"/>
         <result property="date" column="date"/>
         <result property="elecProdQuantity" column="elec_prod_quantity"/>
+        <result property="upElecQuantity" column="up_elec_quantity"/>
         <result property="avgPower" column="avg_power"/>
     </resultMap>
 
@@ -87,4 +88,21 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="calcElecProdForecastDateRange" parameterType="ElecProdForecast" resultMap="ElecProdForecastResult">
+        select sum(
+        COALESCE(CAST(elec_prod_quantity AS DECIMAL(10, 2)), 0)) elec_prod_quantity,
+        sum(
+        COALESCE(CAST(up_elec_quantity AS DECIMAL(10, 2)), 0)) up_elec_quantity,
+        `date`
+        from adm_ems_elec_prod_forecast d
+        <where>
+            <if test="startRecTime != null and startRecTime != ''">DATE like concat(#{startRecTime}, '%')</if>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and area_code = #{areaCode}
+            </if>
+        </where>
+        group by `date`
+    </select>
+
 </mapper>

+ 83 - 21
ems/ems-core/src/main/resources/mapper/ems/ElecPvSupplyHMapper.xml

@@ -10,7 +10,7 @@
         <result property="areaShortName" column="area_short_name"/>
         <result property="facsCode" column="facs_code"/>
         <result property="facsName" column="facs_name"/>
-        <result property="recordTime" column="record_time" />
+        <result property="recordTime" column="record_time"/>
         <result property="date" column="date" jdbcType="DATE"/>
         <result property="time" column="time"/>
         <result property="timeIndex" column="time_index"/>
@@ -67,34 +67,34 @@
 
     <select id="selectPvSupplyHAll" parameterType="com.ruoyi.ems.domain.ElecPvSupplyH" resultMap="PvSupplyHResult">
         SELECT
-            facCategory.`name` facs_name,
-            pv.`record_time`,
-            pv.`date`,
-            pv.`time`,
-            pv.time_index,
-            pv.up_unit_price,
-            sum(COALESCE(pv.gen_elec_quantity,0)) gen_elec_quantity,
-            sum(COALESCE(pv.use_elec_quantity,0)) use_elec_quantity,
-            sum(COALESCE(pv.up_elec_quantity,0)) up_elec_quantity,
-            sum(COALESCE(pv.up_elec_earn,0)) up_elec_earn
+        facCategory.`name` facs_name,
+        pv.`record_time`,
+        pv.`date`,
+        pv.`time`,
+        pv.time_index,
+        pv.up_unit_price,
+        sum(COALESCE(pv.gen_elec_quantity,0)) gen_elec_quantity,
+        sum(COALESCE(pv.use_elec_quantity,0)) use_elec_quantity,
+        sum(COALESCE(pv.up_elec_quantity,0)) up_elec_quantity,
+        sum(COALESCE(pv.up_elec_earn,0)) up_elec_earn
         FROM
-            adm_ems_pv_supply_h pv
-                INNER JOIN adm_ems_facs f ON pv.`facs_code` = f.`facs_code`
-                INNER JOIN dim_ems_facs_category facCategory ON f.facs_category = facCategory.`code`
+        adm_ems_pv_supply_h pv
+        INNER JOIN adm_ems_facs f ON pv.`facs_code` = f.`facs_code`
+        INNER JOIN dim_ems_facs_category facCategory ON f.facs_category = facCategory.`code`
         <where>
             <if test="startRecTime != null  and startRecTime != '' and endRecTime != null and endRecTime !=''">
                 and pv.`record_time` &gt;= #{startRecTime} and pv.`record_time` &lt;= #{endRecTime}
             </if>
         </where>
         GROUP BY
-            facCategory.`code`,
-            pv.DATE,
-            pv.time_index,
-            pv.TIME
+        facCategory.`code`,
+        pv.DATE,
+        pv.time_index,
+        pv.TIME
         ORDER BY
-            pv.`date` DESC,
-            pv.`time` DESC,
-            pv.`time_index`
+        pv.`date` DESC,
+        pv.`time` DESC,
+        pv.`time_index`
     </select>
 
     <select id="selectPvSupplyDayList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="PvSupplyHResult">
@@ -168,6 +168,68 @@
             DATE, time_index;
     </select>
 
+    <select id="calPvByDateRange" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="PvSupplyHResult">
+        SELECT
+        sum(
+        COALESCE(CAST(gen_elec_quantity AS DECIMAL(10, 2)), 0)) gen_elec_quantity,
+        sum(
+        COALESCE(CAST(use_elec_quantity AS DECIMAL(10, 2)), 0)) use_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_quantity AS DECIMAL(10, 2)), 0)) up_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_earn AS DECIMAL(10, 2)), 0)) up_elec_earn
+        FROM adm_ems_pv_supply_h pv
+        <where>
+            <if test="date != null and date != ''">DATE like concat(#{date}, '%')</if>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and pv.area_code = #{areaCode}
+            </if>
+        </where>
+    </select>
+
+    <select id="calHourPvRange" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="PvSupplyHResult">
+        SELECT
+        sum(
+        COALESCE(CAST(gen_elec_quantity AS DECIMAL(10, 2)), 0)) gen_elec_quantity,
+        sum(
+        COALESCE(CAST(use_elec_quantity AS DECIMAL(10, 2)), 0)) use_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_quantity AS DECIMAL(10, 2)), 0)) up_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_earn AS DECIMAL(10, 2)), 0)) up_elec_earn,
+        time_index,
+        `date`
+        FROM adm_ems_pv_supply_h pv
+        <where>
+            <if test="date != null and date != ''">DATE like concat(#{date}, '%')</if>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and pv.area_code = #{areaCode}
+            </if>
+        </where>
+        group by DATE, time_index
+    </select>
+
+    <select id="calDayPvRange" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="PvSupplyHResult">
+        SELECT
+        sum(
+        COALESCE(CAST(gen_elec_quantity AS DECIMAL(10, 2)), 0)) gen_elec_quantity,
+        sum(
+        COALESCE(CAST(use_elec_quantity AS DECIMAL(10, 2)), 0)) use_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_quantity AS DECIMAL(10, 2)), 0)) up_elec_quantity,
+        sum(
+        COALESCE(CAST(up_elec_earn AS DECIMAL(10, 2)), 0)) up_elec_earn,
+        `date`
+        FROM adm_ems_pv_supply_h pv
+        <where>
+            <if test="date != null and date != ''">DATE like concat(#{date}, '%')</if>
+            <if test="areaCode != null and areaCode != '' and areaCode != '-1'">
+                and pv.area_code = #{areaCode}
+            </if>
+        </where>
+        group by DATE
+    </select>
+
     <select id="selectPvSupplyHById" parameterType="Long" resultMap="PvSupplyHResult">
         <include refid="selectPvSupplyHVo"/>
         where id = #{id}