فهرست منبع

峰谷电价时段策略接口

lv.wenbin 11 ماه پیش
والد
کامیت
3deff0c89f
18فایلهای تغییر یافته به همراه1128 افزوده شده و 8 حذف شده
  1. 100 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecPriceStrategyController.java
  2. 100 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecPriceStrategyHourController.java
  3. 1 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecAttr.java
  4. 1 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecExpendForecast.java
  5. 1 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecGwPriceConfig.java
  6. 116 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPriceStrategy.java
  7. 97 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPriceStrategyHour.java
  8. 1 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPvPriceConfig.java
  9. 85 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecPriceStrategyHourMapper.java
  10. 60 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecPriceStrategyMapper.java
  11. 85 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecPriceStrategyHourService.java
  12. 61 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecPriceStrategyService.java
  13. 102 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecPriceStrategyHourServiceImpl.java
  14. 141 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecPriceStrategyServiceImpl.java
  15. 1 1
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecAttrMapper.xml
  16. 88 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecPriceStrategyHourMapper.xml
  17. 84 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecPriceStrategyMapper.xml
  18. 4 3
      ems-cloud/sql/ems_server.sql

+ 100 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecPriceStrategyController.java

@@ -0,0 +1,100 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+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.ElecPriceStrategy;
+import com.ruoyi.ems.service.IElecPriceStrategyService;
+import io.swagger.annotations.Api;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 电价策略Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+@RestController
+@RequestMapping("/basecfg/elecPrice/strategy")
+@Api(value = "ElecPriceStrategyController", description = "峰谷电价策略管理")
+public class ElecPriceStrategyController extends BaseController {
+    @Autowired
+    private IElecPriceStrategyService elecPriceStrategyService;
+
+    /**
+     * 查询电价策略列表
+     */
+    @RequiresPermissions("basecfg:price:list")
+    @GetMapping("/list")
+    public TableDataInfo list(ElecPriceStrategy elecPriceStrategy) {
+        startPage();
+        List<ElecPriceStrategy> list = elecPriceStrategyService.selectList(elecPriceStrategy);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出电价策略列表
+     */
+    @RequiresPermissions("basecfg:price:export")
+    @Log(title = "电价策略", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ElecPriceStrategy elecPriceStrategy) {
+        List<ElecPriceStrategy> list = elecPriceStrategyService.selectList(elecPriceStrategy);
+        ExcelUtil<ElecPriceStrategy> util = new ExcelUtil<ElecPriceStrategy>(ElecPriceStrategy.class);
+        util.exportExcel(response, list, "电价策略数据");
+    }
+
+    /**
+     * 获取电价策略详细信息
+     */
+    @RequiresPermissions("basecfg:price:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(elecPriceStrategyService.selectById(id));
+    }
+
+    /**
+     * 新增电价策略
+     */
+    @RequiresPermissions("basecfg:price:add")
+    @Log(title = "电价策略", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ElecPriceStrategy elecPriceStrategy) {
+        return toAjax(elecPriceStrategyService.insert(elecPriceStrategy));
+    }
+
+    /**
+     * 修改电价策略
+     */
+    @RequiresPermissions("basecfg:price:edit")
+    @Log(title = "电价策略", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ElecPriceStrategy elecPriceStrategy) {
+        return toAjax(elecPriceStrategyService.update(elecPriceStrategy));
+    }
+
+    /**
+     * 删除电价策略
+     */
+    @RequiresPermissions("basecfg:price:remove")
+    @Log(title = "电价策略", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(elecPriceStrategyService.deleteByIds(ids));
+    }
+}

+ 100 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecPriceStrategyHourController.java

@@ -0,0 +1,100 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+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.ElecPriceStrategyHour;
+import com.ruoyi.ems.service.IElecPriceStrategyHourService;
+import io.swagger.annotations.Api;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 电价策略小时Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+@RestController
+@RequestMapping("/basecfg/elecPrice/strategy/hour")
+@Api(value = "ElecPriceStrategyHourController", description = "峰谷电价小时策略参数")
+public class ElecPriceStrategyHourController extends BaseController {
+    @Autowired
+    private IElecPriceStrategyHourService elecPriceStrategyHourService;
+
+    /**
+     * 查询电价策略小时列表
+     */
+    @RequiresPermissions("basecfg:price:list")
+    @GetMapping("/list")
+    public TableDataInfo list(ElecPriceStrategyHour elecPriceStrategyHour) {
+        startPage();
+        List<ElecPriceStrategyHour> list = elecPriceStrategyHourService.selectList(elecPriceStrategyHour);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出电价策略小时列表
+     */
+    @RequiresPermissions("basecfg:price:export")
+    @Log(title = "电价策略小时", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, ElecPriceStrategyHour elecPriceStrategyHour) {
+        List<ElecPriceStrategyHour> list = elecPriceStrategyHourService.selectList(elecPriceStrategyHour);
+        ExcelUtil<ElecPriceStrategyHour> util = new ExcelUtil<>(ElecPriceStrategyHour.class);
+        util.exportExcel(response, list, "电价策略小时数据");
+    }
+
+    /**
+     * 获取电价策略小时详细信息
+     */
+    @RequiresPermissions("basecfg:price:query")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id) {
+        return success(elecPriceStrategyHourService.selectById(id));
+    }
+
+    /**
+     * 新增电价策略小时
+     */
+    @RequiresPermissions("basecfg:price:add")
+    @Log(title = "电价策略小时", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ElecPriceStrategyHour elecPriceStrategyHour) {
+        return toAjax(elecPriceStrategyHourService.insert(elecPriceStrategyHour));
+    }
+
+    /**
+     * 修改电价策略小时
+     */
+    @RequiresPermissions("basecfg:price:edit")
+    @Log(title = "电价策略小时", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ElecPriceStrategyHour elecPriceStrategyHour) {
+        return toAjax(elecPriceStrategyHourService.update(elecPriceStrategyHour));
+    }
+
+    /**
+     * 删除电价策略小时
+     */
+    @RequiresPermissions("basecfg:price:remove")
+    @Log(title = "电价策略小时", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids) {
+        return toAjax(elecPriceStrategyHourService.deleteByIds(ids));
+    }
+}

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecAttr.java

@@ -6,7 +6,7 @@ import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 
 /**
- * 服务区用电属性对象 sys_area_electricity_attr
+ * 服务区用电属性对象 adm_area_elec_attr
  * 
  * @author ruoyi
  * @date 2024-07-23

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecExpendForecast.java

@@ -38,7 +38,7 @@ public class ElecExpendForecast extends BaseEntity
     private Date date;
 
     /** 功率 (千瓦) */
-    @Excel(name = "功率 ", readConverterExp = "千=瓦")
+    @Excel(name = "功率 ")
     private Double elecUseQuantity;
 
     public void setId(Long id) 

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecGwPriceConfig.java

@@ -6,7 +6,7 @@ import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 
 /**
- * 国网电价配置对象 sys_gw_elecprice_config
+ * 国网电价配置对象 adm_gw_elecprice_config
  * 
  * @author ruoyi
  * @date 2024-07-23

+ 116 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPriceStrategy.java

@@ -0,0 +1,116 @@
+package com.ruoyi.ems.domain;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 电价策略对象 adm_elecprice_strategy
+ * 
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public class ElecPriceStrategy extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 策略代码 */
+    @Excel(name = "策略代码")
+    private String strategyCode;
+
+    /** 策略名称 */
+    @Excel(name = "策略名称")
+    private String strategyName;
+
+    /** 重复类型 */
+    @Excel(name = "重复类型")
+    private int repeatType;
+
+    /** 重复参数 */
+    @Excel(name = "重复参数")
+    private String repeatParam;
+
+    /** 优先级 */
+    @Excel(name = "优先级")
+    private Long priority;
+
+    private List<ElecPriceStrategyHour> hourList;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getStrategyCode() {
+        return strategyCode;
+    }
+
+    public void setStrategyCode(String strategyCode) {
+        this.strategyCode = strategyCode;
+    }
+
+    public String getStrategyName() {
+        return strategyName;
+    }
+
+    public void setStrategyName(String strategyName) {
+        this.strategyName = strategyName;
+    }
+
+    public int getRepeatType() {
+        return repeatType;
+    }
+
+    public void setRepeatType(int repeatType) {
+        this.repeatType = repeatType;
+    }
+
+    public String getRepeatParam() {
+        return repeatParam;
+    }
+
+    public void setRepeatParam(String repeatParam) {
+        this.repeatParam = repeatParam;
+    }
+
+    public Long getPriority() {
+        return priority;
+    }
+
+    public void setPriority(Long priority) {
+        this.priority = priority;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("strategyCode", getStrategyCode())
+            .append("strategyName", getStrategyName())
+            .append("repeatType", getRepeatType())
+            .append("repeatParam", getRepeatParam())
+            .append("priority", getPriority())
+            .append("createTime", getCreateTime())
+            .append("updateTime", getUpdateTime())
+            .toString();
+    }
+
+    public List<ElecPriceStrategyHour> getHourList() {
+        return hourList;
+    }
+
+    public void setHourList(List<ElecPriceStrategyHour> hourList) {
+        this.hourList = hourList;
+    }
+}

+ 97 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPriceStrategyHour.java

@@ -0,0 +1,97 @@
+package com.ruoyi.ems.domain;
+
+import java.sql.Time;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 电价策略小时对象 adm_elecprice_strategy_hour
+ * 
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public class ElecPriceStrategyHour extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 策略代码 */
+    @Excel(name = "策略代码")
+    private String strategyCode;
+
+    /** 开始时间 */
+    @JsonFormat(pattern = "HH:mm")
+    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Time startTime;
+
+    /** 结束时间 */
+    @JsonFormat(pattern = "HH:mm")
+    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Time endTime;
+
+    /** 计量类型 */
+    @Excel(name = "计量类型")
+    private Long type;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+    public void setStrategyCode(String strategyCode) 
+    {
+        this.strategyCode = strategyCode;
+    }
+
+    public String getStrategyCode() 
+    {
+        return strategyCode;
+    }
+
+    public Time getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Time startTime) {
+        this.startTime = startTime;
+    }
+
+    public Time getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Time endTime) {
+        this.endTime = endTime;
+    }
+
+    public void setType(Long type)
+    {
+        this.type = type;
+    }
+
+    public Long getType() 
+    {
+        return type;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("strategyCode", getStrategyCode())
+            .append("startTime", getStartTime())
+            .append("endTime", getEndTime())
+            .append("type", getType())
+            .toString();
+    }
+}

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecPvPriceConfig.java

@@ -6,7 +6,7 @@ import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.web.domain.BaseEntity;
 
 /**
- * 光伏电价配置对象 sys_pv_price_config
+ * 光伏电价配置对象 adm_pv_elecprice_config
  * 
  * @author ruoyi
  * @date 2024-08-19

+ 85 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecPriceStrategyHourMapper.java

@@ -0,0 +1,85 @@
+package com.ruoyi.ems.mapper;
+
+import com.ruoyi.ems.domain.ElecPriceStrategyHour;
+
+import java.util.List;
+
+/**
+ * 电价策略小时Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public interface ElecPriceStrategyHourMapper {
+    /**
+     * 查询电价策略小时
+     *
+     * @param id 电价策略小时主键
+     * @return 电价策略小时
+     */
+    ElecPriceStrategyHour selectById(Long id);
+
+    /**
+     * 查询电价策略小时列表
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 电价策略小时集合
+     */
+    List<ElecPriceStrategyHour> selectList(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 查询电价策略小时列表
+     *
+     * @param strategyCode 策略代码
+     * @return 电价策略小时集合
+     */
+    List<ElecPriceStrategyHour> selectByStrategyCode(String strategyCode);
+
+    /**
+     * 新增电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    int insert(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 批量-新增电价策略小时
+     *
+     * @param list 电价策略小时
+     * @return 结果
+     */
+    int insertBatch(List<ElecPriceStrategyHour> list);
+
+    /**
+     * 修改电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    int update(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 删除电价策略小时
+     *
+     * @param id 电价策略小时主键
+     * @return 结果
+     */
+    int deleteById(Long id);
+
+    /**
+     * 删除电价策略小时
+     *
+     * @param strategyCode 电价策略code
+     * @return 结果
+     */
+    int deleteByStrategyCode(String strategyCode);
+
+    /**
+     * 批量删除电价策略小时
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteByIds(Long[] ids);
+}

+ 60 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecPriceStrategyMapper.java

@@ -0,0 +1,60 @@
+package com.ruoyi.ems.mapper;
+
+import java.util.List;
+import com.ruoyi.ems.domain.ElecPriceStrategy;
+
+/**
+ * 电价策略Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public interface ElecPriceStrategyMapper {
+    /**
+     * 查询电价策略
+     *
+     * @param id 电价策略主键
+     * @return 电价策略
+     */
+    ElecPriceStrategy selectById(Long id);
+
+    /**
+     * 查询电价策略列表
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 电价策略集合
+     */
+    List<ElecPriceStrategy> selectList(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 新增电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    int insert(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 修改电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    int update(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 删除电价策略
+     *
+     * @param id 电价策略主键
+     * @return 结果
+     */
+    int deleteById(Long id);
+
+    /**
+     * 批量删除电价策略
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteByIds(Long[] ids);
+}

+ 85 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecPriceStrategyHourService.java

@@ -0,0 +1,85 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.ElecPriceStrategyHour;
+
+/**
+ * 电价策略小时Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public interface IElecPriceStrategyHourService {
+    /**
+     * 查询电价策略小时
+     *
+     * @param id 电价策略小时主键
+     * @return 电价策略小时
+     */
+    ElecPriceStrategyHour selectById(Long id);
+
+    /**
+     * 查询电价策略小时列表
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 电价策略小时集合
+     */
+    List<ElecPriceStrategyHour> selectList(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 根据策略code查询
+     *
+     * @param strategyCode
+     * @return 电价策略小时集合
+     */
+    List<ElecPriceStrategyHour> selectListByStrategyCode(String strategyCode);
+
+    /**
+     * 新增电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    int insert(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 新增电价策略小时
+     *
+     * @param list 电价策略小时
+     * @return 结果
+     */
+    int insertBatch(List<ElecPriceStrategyHour> list);
+
+    /**
+     * 修改电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    int update(ElecPriceStrategyHour elecPriceStrategyHour);
+
+    /**
+     * 批量删除电价策略小时
+     *
+     * @param ids 需要删除的电价策略小时主键集合
+     * @return 结果
+     */
+    int deleteByIds(Long[] ids);
+
+    /**
+     * 删除电价策略小时信息
+     *
+     * @param id 电价策略小时主键
+     * @return 结果
+     */
+    int deleteById(Long id);
+
+    /**
+     * 删除电价策略小时信息
+     *
+     * @param strategyCode 策略code
+     * @return 结果
+     */
+    int deleteByStrategyCode(String strategyCode);
+}

+ 61 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecPriceStrategyService.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ems.service;
+
+import com.ruoyi.ems.domain.ElecPriceStrategy;
+
+import java.util.List;
+
+/**
+ * 电价策略Service接口
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+public interface IElecPriceStrategyService {
+    /**
+     * 查询电价策略
+     *
+     * @param id 电价策略主键
+     * @return 电价策略
+     */
+    ElecPriceStrategy selectById(Long id);
+
+    /**
+     * 查询电价策略列表
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 电价策略集合
+     */
+    List<ElecPriceStrategy> selectList(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 新增电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    int insert(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 修改电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    int update(ElecPriceStrategy elecPriceStrategy);
+
+    /**
+     * 批量删除电价策略
+     *
+     * @param ids 需要删除的电价策略主键集合
+     * @return 结果
+     */
+    int deleteByIds(Long[] ids);
+
+    /**
+     * 删除电价策略信息
+     *
+     * @param id 电价策略主键
+     * @return 结果
+     */
+    int deleteById(Long id);
+}

+ 102 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecPriceStrategyHourServiceImpl.java

@@ -0,0 +1,102 @@
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.ems.domain.ElecPriceStrategyHour;
+import com.ruoyi.ems.mapper.ElecPriceStrategyHourMapper;
+import com.ruoyi.ems.service.IElecPriceStrategyHourService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 电价策略小时Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+@Service
+public class ElecPriceStrategyHourServiceImpl implements IElecPriceStrategyHourService {
+    @Autowired
+    private ElecPriceStrategyHourMapper elecPriceStrategyHourMapper;
+
+    /**
+     * 查询电价策略小时
+     *
+     * @param id 电价策略小时主键
+     * @return 电价策略小时
+     */
+    @Override
+    public ElecPriceStrategyHour selectById(Long id) {
+        return elecPriceStrategyHourMapper.selectById(id);
+    }
+
+    /**
+     * 查询电价策略小时列表
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 电价策略小时
+     */
+    @Override
+    public List<ElecPriceStrategyHour> selectList(ElecPriceStrategyHour elecPriceStrategyHour) {
+        return elecPriceStrategyHourMapper.selectList(elecPriceStrategyHour);
+    }
+
+    @Override
+    public List<ElecPriceStrategyHour> selectListByStrategyCode(String strategyCode) {
+        return elecPriceStrategyHourMapper.selectByStrategyCode(strategyCode);
+    }
+
+    /**
+     * 新增电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    @Override
+    public int insert(ElecPriceStrategyHour elecPriceStrategyHour) {
+        return elecPriceStrategyHourMapper.insert(elecPriceStrategyHour);
+    }
+
+    @Override
+    public int insertBatch(List<ElecPriceStrategyHour> list) {
+        return elecPriceStrategyHourMapper.insertBatch(list);
+    }
+
+    /**
+     * 修改电价策略小时
+     *
+     * @param elecPriceStrategyHour 电价策略小时
+     * @return 结果
+     */
+    @Override
+    public int update(ElecPriceStrategyHour elecPriceStrategyHour) {
+        return elecPriceStrategyHourMapper.update(elecPriceStrategyHour);
+    }
+
+    /**
+     * 批量删除电价策略小时
+     *
+     * @param ids 需要删除的电价策略小时主键
+     * @return 结果
+     */
+    @Override
+    public int deleteByIds(Long[] ids) {
+        return elecPriceStrategyHourMapper.deleteByIds(ids);
+    }
+
+    /**
+     * 删除电价策略小时信息
+     *
+     * @param id 电价策略小时主键
+     * @return 结果
+     */
+    @Override
+    public int deleteById(Long id) {
+        return elecPriceStrategyHourMapper.deleteById(id);
+    }
+
+    @Override
+    public int deleteByStrategyCode(String strategyCode) {
+        return elecPriceStrategyHourMapper.deleteByStrategyCode(strategyCode);
+    }
+}

+ 141 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecPriceStrategyServiceImpl.java

@@ -0,0 +1,141 @@
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.ems.domain.ElecPriceStrategy;
+import com.ruoyi.ems.domain.ElecPriceStrategyHour;
+import com.ruoyi.ems.mapper.ElecPriceStrategyMapper;
+import com.ruoyi.ems.service.IElecPriceStrategyHourService;
+import com.ruoyi.ems.service.IElecPriceStrategyService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 电价策略Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-23
+ */
+@Service
+public class ElecPriceStrategyServiceImpl implements IElecPriceStrategyService {
+    @Autowired
+    private ElecPriceStrategyMapper elecPriceStrategyMapper;
+
+    @Autowired
+    private IElecPriceStrategyHourService hourService;
+
+    /**
+     * 查询电价策略
+     *
+     * @param id 电价策略主键
+     * @return 电价策略
+     */
+    @Override
+    public ElecPriceStrategy selectById(Long id) {
+        ElecPriceStrategy strategy = elecPriceStrategyMapper.selectById(id);
+
+        if (null != strategy) {
+            List<ElecPriceStrategyHour> hourList = hourService.selectListByStrategyCode(strategy.getStrategyCode());
+            strategy.setHourList(hourList);
+        }
+
+        return strategy;
+    }
+
+    /**
+     * 查询电价策略列表
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 电价策略
+     */
+    @Override
+    public List<ElecPriceStrategy> selectList(ElecPriceStrategy elecPriceStrategy) {
+        List<ElecPriceStrategy> list = elecPriceStrategyMapper.selectList(elecPriceStrategy);
+
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (ElecPriceStrategy strategy : list) {
+                List<ElecPriceStrategyHour> hourList = hourService.selectListByStrategyCode(strategy.getStrategyCode());
+                strategy.setHourList(hourList);
+            }
+        }
+
+        return list;
+    }
+
+    /**
+     * 新增电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    @Override
+    public int insert(ElecPriceStrategy elecPriceStrategy) {
+        elecPriceStrategy.setCreateTime(DateUtils.getNowDate());
+
+        if (CollectionUtils.isNotEmpty(elecPriceStrategy.getHourList())) {
+            hourService.deleteByStrategyCode(elecPriceStrategy.getStrategyCode());
+            hourService.insertBatch(elecPriceStrategy.getHourList());
+        }
+
+        return elecPriceStrategyMapper.insert(elecPriceStrategy);
+    }
+
+    /**
+     * 修改电价策略
+     *
+     * @param elecPriceStrategy 电价策略
+     * @return 结果
+     */
+    @Override
+    public int update(ElecPriceStrategy elecPriceStrategy) {
+        elecPriceStrategy.setUpdateTime(DateUtils.getNowDate());
+
+        if (CollectionUtils.isNotEmpty(elecPriceStrategy.getHourList())) {
+            hourService.deleteByStrategyCode(elecPriceStrategy.getStrategyCode());
+            hourService.insertBatch(elecPriceStrategy.getHourList());
+        } else {
+            hourService.deleteByStrategyCode(elecPriceStrategy.getStrategyCode());
+        }
+
+        return elecPriceStrategyMapper.update(elecPriceStrategy);
+    }
+
+    /**
+     * 批量删除电价策略
+     *
+     * @param ids 需要删除的电价策略主键
+     * @return 结果
+     */
+    @Override
+    public int deleteByIds(Long[] ids) {
+        for (Long id : ids) {
+            ElecPriceStrategy elecPriceStrategy = elecPriceStrategyMapper.selectById(id);
+
+            if (null != elecPriceStrategy) {
+                hourService.deleteByStrategyCode(elecPriceStrategy.getStrategyCode());
+            }
+        }
+
+
+        return elecPriceStrategyMapper.deleteByIds(ids);
+    }
+
+    /**
+     * 删除电价策略信息
+     *
+     * @param id 电价策略主键
+     * @return 结果
+     */
+    @Override
+    public int deleteById(Long id) {
+        ElecPriceStrategy elecPriceStrategy = elecPriceStrategyMapper.selectById(id);
+
+        if (null != elecPriceStrategy) {
+            hourService.deleteByStrategyCode(elecPriceStrategy.getStrategyCode());
+        }
+
+        return elecPriceStrategyMapper.deleteById(id);
+    }
+}

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecAttrMapper.xml

@@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT attr.id, attr.area_code, area.area_name, price.elec_type, attr.price_code, t.`name` as elec_type_name, price.voltage_level, attr.req_capacity_flag, attr.trans_capacity, attr.req_quantity, attr.create_time, attr.update_time
           FROM adm_area_elec_attr attr
             LEFT JOIN adm_service_area area ON attr.area_code = area.area_code
-            LEFT JOIN sys_electrovalency_config price ON attr.price_code = price.cfg_code
+            LEFT JOIN adm_gw_elecprice_config price ON attr.price_code = price.cfg_code
             LEFT JOIN dim_ems_elecprice_type t ON t.`code` = price.elec_type
     </sql>
 

+ 88 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecPriceStrategyHourMapper.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.ElecPriceStrategyHourMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.ElecPriceStrategyHour" id="ElecPriceStrategyHourResult">
+        <result property="id"    column="id"    />
+        <result property="strategyCode"    column="strategy_code"    />
+        <result property="startTime"    column="start_time"    />
+        <result property="endTime"    column="end_time"    />
+        <result property="type"    column="type"    />
+    </resultMap>
+
+    <sql id="selectElecPriceStrategyHourVo">
+        select `id`, `strategy_code`, `start_time`, `end_time`, `type` from adm_elecprice_strategy_hour
+    </sql>
+
+    <select id="selectList" parameterType="com.ruoyi.ems.domain.ElecPriceStrategyHour" resultMap="ElecPriceStrategyHourResult">
+        <include refid="selectElecPriceStrategyHourVo"/>
+        <where>  
+            <if test="strategyCode != null  and strategyCode != ''"> and `strategy_code` = #{strategyCode}</if>
+            <if test="startTime != null "> and `start_time` = #{startTime}</if>
+            <if test="endTime != null "> and `end_time` = #{endTime}</if>
+            <if test="type != null "> and `type` = #{type}</if>
+        </where>
+    </select>
+
+    <select id="selectByStrategyCode" parameterType="String" resultMap="ElecPriceStrategyHourResult">
+        <include refid="selectElecPriceStrategyHourVo"/>
+        where `strategy_code` = #{strategyCode}
+    </select>
+    
+    <select id="selectById" parameterType="Long" resultMap="ElecPriceStrategyHourResult">
+        <include refid="selectElecPriceStrategyHourVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insert" parameterType="com.ruoyi.ems.domain.ElecPriceStrategyHour" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_elecprice_strategy_hour
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">strategy_code,</if>
+            <if test="startTime != null">start_time,</if>
+            <if test="endTime != null">end_time,</if>
+            <if test="type != null">type,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">#{strategyCode},</if>
+            <if test="startTime != null">#{startTime},</if>
+            <if test="endTime != null">#{endTime},</if>
+            <if test="type != null">#{type},</if>
+         </trim>
+    </insert>
+
+    <insert id="insertBatch" parameterType="java.util.List">
+        insert into adm_elecprice_strategy_hour (strategy_code, start_time, end_time, type)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.strategyCode}, #{item.startTime}, #{item.endTime}, #{item.type})
+        </foreach>
+    </insert>
+
+    <update id="update" parameterType="com.ruoyi.ems.domain.ElecPriceStrategyHour">
+        update adm_elecprice_strategy_hour
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">strategy_code = #{strategyCode},</if>
+            <if test="startTime != null">start_time = #{startTime},</if>
+            <if test="endTime != null">end_time = #{endTime},</if>
+            <if test="type != null">type = #{type},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteById" parameterType="Long">
+        delete from adm_elecprice_strategy_hour where id = #{id}
+    </delete>
+
+    <delete id="deleteByStrategyCode" parameterType="String">
+        delete from adm_elecprice_strategy_hour where strategy_code = #{strategyCode}
+    </delete>
+
+    <delete id="deleteByIds" parameterType="String">
+        delete from adm_elecprice_strategy_hour where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 84 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecPriceStrategyMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.ElecPriceStrategyMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.ElecPriceStrategy" id="ElecpriceStrategyResult">
+        <result property="id"    column="id"    />
+        <result property="strategyCode"    column="strategy_code"    />
+        <result property="strategyName"    column="strategy_name"    />
+        <result property="repeatType"    column="repeat_type"    />
+        <result property="repeatParam"    column="repeat_param"    />
+        <result property="priority"    column="priority"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectElecPriceStrategyVo">
+        select id, strategy_code, strategy_name, repeat_type, repeat_param, priority, create_time, update_time from adm_elecprice_strategy
+    </sql>
+
+    <select id="selectList" parameterType="com.ruoyi.ems.domain.ElecPriceStrategy" resultMap="ElecpriceStrategyResult">
+        <include refid="selectElecPriceStrategyVo"/>
+        <where>  
+            <if test="strategyCode != null  and strategyCode != ''"> and strategy_code = #{strategyCode}</if>
+            <if test="strategyName != null  and strategyName != ''"> and strategy_name like concat('%', #{strategyName}, '%')</if>
+            <if test="repeatType != null  and repeatType != ''"> and repeat_type = #{repeatType}</if>
+            <if test="date != null "> and date = #{date}</if>
+            <if test="priority != null "> and priority = #{priority}</if>
+        </where>
+    </select>
+    
+    <select id="selectById" parameterType="Long" resultMap="ElecpriceStrategyResult">
+        <include refid="selectElecPriceStrategyVo"/>
+        where id = #{id}
+    </select>
+        
+    <insert id="insert" parameterType="com.ruoyi.ems.domain.ElecPriceStrategy" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_elecprice_strategy
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">strategy_code,</if>
+            <if test="strategyName != null and strategyName != ''">strategy_name,</if>
+            <if test="repeatType != null">repeat_type,</if>
+            <if test="repeatParam != null">repeat_param,</if>
+            <if test="priority != null">priority,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">#{strategyCode},</if>
+            <if test="strategyName != null and strategyName != ''">#{strategyName},</if>
+            <if test="repeatType != null">#{repeatType},</if>
+            <if test="repeatParam != null">#{repeatParam},</if>
+            <if test="priority != null">#{priority},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="update" parameterType="com.ruoyi.ems.domain.ElecPriceStrategy">
+        update adm_elecprice_strategy
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="strategyCode != null and strategyCode != ''">strategy_code = #{strategyCode},</if>
+            <if test="strategyName != null and strategyName != ''">strategy_name = #{strategyName},</if>
+            <if test="repeatType != null">repeat_type = #{repeatType},</if>
+            <if test="repeatParam != null">repeat_param = #{repeatParam},</if>
+            <if test="priority != null">priority = #{priority},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteById" parameterType="Long">
+        delete from adm_elecprice_strategy where id = #{id}
+    </delete>
+
+    <delete id="deleteByIds" parameterType="String">
+        delete from adm_elecprice_strategy where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>

+ 4 - 3
ems-cloud/sql/ems_server.sql

@@ -940,7 +940,8 @@ create table adm_elecprice_strategy (
   `id`                   bigint(20)      not null auto_increment      comment '序号',
   `strategy_code`        varchar(32)     not null                     comment '策略代码',
   `strategy_name`        varchar(16)     not null                     comment '策略名称',
-  `date`                 date            default null                 comment '执行日期',
+  `repeat_type`          int             not null                     comment '重复类型',
+  `repeat_param`         varchar(128)    default null                 comment '重复参数',
   `priority`             int             default 0                    comment '优先级',
   `create_time`          datetime        default CURRENT_TIMESTAMP    comment '创建时间',
   `update_time`          datetime        default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment '更新时间',
@@ -949,7 +950,7 @@ create table adm_elecprice_strategy (
 ) engine=innodb auto_increment=1 comment = '电价策略表';
 
 -- 默认策略
-INSERT INTO adm_elecprice_strategy (`strategy_code`, `strategy_name`, `date`, `priority`) VALUES ('-1', '默认策略', NULL, 0);
+INSERT INTO adm_elecprice_strategy (`strategy_code`, `strategy_name`, `repeat_type`, `repeat_param`, `priority`) VALUES ('-1', '默认策略', 2, null, 0);
 
 -- ----------------------------
 -- 电价策略小时表
@@ -964,7 +965,7 @@ create table adm_elecprice_strategy_hour (
   primary key (`id`)
 ) engine=innodb auto_increment=1 comment = '电价策略小时表';
 
-INSERT INTO adm_elecprice_strategy_hour (`strategy_code`, `start_time`, `end_time`, `type`) VALUES ('-1', '00:00:00', '23:59:59', 0);
+INSERT INTO adm_elecprice_strategy_hour (`strategy_code`, `start_time`, `end_time`, `type`) VALUES ('-1', '00:00:00', '24:00:00', 0);
 
 -- ----------------------------
 -- 电网供应计量表