策略配置-模板修改&模板时间配置

This commit is contained in:
2025-07-12 18:51:23 +08:00
parent eafb0ec2c6
commit aa751464b4
19 changed files with 733 additions and 184 deletions

View File

@ -1,9 +1,7 @@
package com.xzzn.ems.domain;
import java.math.BigDecimal;
import java.time.LocalTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -13,13 +11,13 @@ import com.xzzn.common.annotation.Excel;
* 模板对象 ems_strategy_temp
*
* @author xzzn
* @date 2025-07-11
* @date 2025-07-12
*/
public class EmsStrategyTemp extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/** */
private Long id;
/** 关联的策略ID */
@ -30,9 +28,9 @@ public class EmsStrategyTemp extends BaseEntity
@Excel(name = "模板名称,如“模板一”")
private String templateName;
/** SDC限制 (%) */
@Excel(name = "SDC限制 (%)")
private BigDecimal sdcLimit;
/** SDC限制 (%) 1 = 开0 = 关 */
@Excel(name = "SDC限制 (%) 1 = 开0 = 关")
private Integer sdcLimit;
/** SDC下限 (%) */
@Excel(name = "SDC下限 (%)")
@ -42,24 +40,6 @@ public class EmsStrategyTemp extends BaseEntity
@Excel(name = "SDC上限 (%)")
private BigDecimal sdcUp;
/** 开始时间 */
@JsonFormat(pattern = "HH:mm:ss")
@Excel(name = "开始时间", width = 30, dateFormat = "HH:mm:ss")
private LocalTime startTime;
/** 结束时间 */
@JsonFormat(pattern = "HH:mm:ss")
@Excel(name = "结束时间", width = 30, dateFormat = "HH:mm:ss")
private LocalTime endTime;
/** 充放功率 (kW) */
@Excel(name = "充放功率 (kW)")
private BigDecimal chargeDischargePower;
/** 充电状态如“1-充电”、“2-待机” */
@Excel(name = "充电状态如“1-充电”、“2-待机”")
private String chargeStatus;
/** 站点id */
@Excel(name = "站点id")
private String siteId;
@ -94,12 +74,12 @@ public class EmsStrategyTemp extends BaseEntity
return templateName;
}
public void setSdcLimit(BigDecimal sdcLimit)
public void setSdcLimit(Integer sdcLimit)
{
this.sdcLimit = sdcLimit;
}
public BigDecimal getSdcLimit()
public Integer getSdcLimit()
{
return sdcLimit;
}
@ -124,42 +104,6 @@ public class EmsStrategyTemp extends BaseEntity
return sdcUp;
}
public LocalTime getStartTime() {
return startTime;
}
public void setStartTime(LocalTime startTime) {
this.startTime = startTime;
}
public LocalTime getEndTime() {
return endTime;
}
public void setEndTime(LocalTime endTime) {
this.endTime = endTime;
}
public void setChargeDischargePower(BigDecimal chargeDischargePower)
{
this.chargeDischargePower = chargeDischargePower;
}
public BigDecimal getChargeDischargePower()
{
return chargeDischargePower;
}
public void setChargeStatus(String chargeStatus)
{
this.chargeStatus = chargeStatus;
}
public String getChargeStatus()
{
return chargeStatus;
}
public void setSiteId(String siteId)
{
this.siteId = siteId;
@ -179,10 +123,6 @@ public class EmsStrategyTemp extends BaseEntity
.append("sdcLimit", getSdcLimit())
.append("sdcDown", getSdcDown())
.append("sdcUp", getSdcUp())
.append("startTime", getStartTime())
.append("endTime", getEndTime())
.append("chargeDischargePower", getChargeDischargePower())
.append("chargeStatus", getChargeStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())

View File

@ -0,0 +1,122 @@
package com.xzzn.ems.domain;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.xzzn.common.annotation.Excel;
/**
* 模板配置对象 ems_strategy_temp_time_config
*
* @author xzzn
* @date 2025-07-12
*/
public class EmsStrategyTempTimeConfig extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
/** 充放功率 (kW) */
@Excel(name = "充放功率 (kW)")
private BigDecimal chargeDischargePower;
/** 充电状态如“1-充电”、“2-待机” */
@Excel(name = "充电状态如“1-充电”、“2-待机”")
private String chargeStatus;
/** 模板id */
@Excel(name = "模板id")
private Long templateId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setStartTime(Date startTime)
{
this.startTime = startTime;
}
public Date getStartTime()
{
return startTime;
}
public void setEndTime(Date endTime)
{
this.endTime = endTime;
}
public Date getEndTime()
{
return endTime;
}
public void setChargeDischargePower(BigDecimal chargeDischargePower)
{
this.chargeDischargePower = chargeDischargePower;
}
public BigDecimal getChargeDischargePower()
{
return chargeDischargePower;
}
public void setChargeStatus(String chargeStatus)
{
this.chargeStatus = chargeStatus;
}
public String getChargeStatus()
{
return chargeStatus;
}
public void setTemplateId(Long templateId)
{
this.templateId = templateId;
}
public Long getTemplateId()
{
return templateId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("startTime", getStartTime())
.append("endTime", getEndTime())
.append("chargeDischargePower", getChargeDischargePower())
.append("chargeStatus", getChargeStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("templateId", getTemplateId())
.toString();
}
}

View File

@ -9,13 +9,13 @@ import com.xzzn.common.annotation.Excel;
* 时间配置对象 ems_strategy_time_config
*
* @author xzzn
* @date 2025-07-11
* @date 2025-07-12
*/
public class EmsStrategyTimeConfig extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
/** */
private Long id;
/** 关联的策略ID */
@ -34,6 +34,10 @@ public class EmsStrategyTimeConfig extends BaseEntity
@Excel(name = "站点id")
private String siteId;
/** 模板id */
@Excel(name = "模板id")
private String templateId;
public void setId(Long id)
{
this.id = id;
@ -84,6 +88,16 @@ public class EmsStrategyTimeConfig extends BaseEntity
return siteId;
}
public void setTemplateId(String templateId)
{
this.templateId = templateId;
}
public String getTemplateId()
{
return templateId;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -97,6 +111,7 @@ public class EmsStrategyTimeConfig extends BaseEntity
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("siteId", getSiteId())
.append("templateId", getTemplateId())
.toString();
}
}

View File

@ -0,0 +1,107 @@
package com.xzzn.ems.domain.vo;
import com.xzzn.ems.domain.EmsStrategyTempTimeConfig;
import java.math.BigDecimal;
import java.util.List;
/**
* 新增模板+模板时间数据
*
* @author xzzn
* @date 2025-07-12
*/
public class StrategyTempConfigRequest
{
/** 模板id */
private Long id;
/** 站点id */
private String siteId;
/** 关联的策略ID */
private Long strategyId;
/** 模板名称,如“模板一” */
private String templateName;
/** SDC限制 (%) 1 = 开0 = 关 */
private Integer sdcLimit;
/** SDC下限 (%) */
private BigDecimal sdcDown;
/** SDC上限 (%) */
private BigDecimal sdcUp;
/** 模板时间 */
private List<EmsStrategyTempTimeConfig> timeConfigList;
public void setStrategyId(Long strategyId)
{
this.strategyId = strategyId;
}
public Long getStrategyId()
{
return strategyId;
}
public void setTemplateName(String templateName)
{
this.templateName = templateName;
}
public String getTemplateName()
{
return templateName;
}
public void setSdcLimit(Integer sdcLimit)
{
this.sdcLimit = sdcLimit;
}
public Integer getSdcLimit()
{
return sdcLimit;
}
public void setSdcDown(BigDecimal sdcDown)
{
this.sdcDown = sdcDown;
}
public BigDecimal getSdcDown()
{
return sdcDown;
}
public void setSdcUp(BigDecimal sdcUp)
{
this.sdcUp = sdcUp;
}
public BigDecimal getSdcUp()
{
return sdcUp;
}
public void setSiteId(String siteId)
{
this.siteId = siteId;
}
public String getSiteId()
{
return siteId;
}
public List<EmsStrategyTempTimeConfig> getTimeConfigList() {
return timeConfigList;
}
public void setTimeConfigList(List<EmsStrategyTempTimeConfig> timeConfigList) {
this.timeConfigList = timeConfigList;
}
}

View File

@ -0,0 +1,152 @@
package com.xzzn.ems.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* 模板+模板时间数据
*
* @author xzzn
* @date 2025-07-12
*/
public class StrategyTempTimeConfigVo
{
/** 模版id */
private Long id;
/** 关联的策略ID */
private Long strategyId;
/** 模板名称,如“模板一” */
private String templateName;
/** SDC限制 (%) 1 = 开0 = 关 */
private Integer sdcLimit;
/** SDC下限 (%) */
private BigDecimal sdcDown;
/** SDC上限 (%) */
private BigDecimal sdcUp;
/** 站点id */
private String siteId;
/** 开始时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startTime;
/** 结束时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endTime;
/** 充放功率 (kW) */
private BigDecimal chargeDischargePower;
/** 充电状态如“1-充电”、“2-待机” */
private String chargeStatus;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setStrategyId(Long strategyId)
{
this.strategyId = strategyId;
}
public Long getStrategyId()
{
return strategyId;
}
public void setTemplateName(String templateName)
{
this.templateName = templateName;
}
public String getTemplateName()
{
return templateName;
}
public void setSdcLimit(Integer sdcLimit)
{
this.sdcLimit = sdcLimit;
}
public Integer getSdcLimit()
{
return sdcLimit;
}
public void setSdcDown(BigDecimal sdcDown)
{
this.sdcDown = sdcDown;
}
public BigDecimal getSdcDown()
{
return sdcDown;
}
public void setSdcUp(BigDecimal sdcUp)
{
this.sdcUp = sdcUp;
}
public BigDecimal getSdcUp()
{
return sdcUp;
}
public void setSiteId(String siteId)
{
this.siteId = siteId;
}
public String getSiteId()
{
return siteId;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Date getEndTime() {
return endTime;
}
public void setEndTime(Date endTime) {
this.endTime = endTime;
}
public BigDecimal getChargeDischargePower() {
return chargeDischargePower;
}
public void setChargeDischargePower(BigDecimal chargeDischargePower) {
this.chargeDischargePower = chargeDischargePower;
}
public String getChargeStatus() {
return chargeStatus;
}
public void setChargeStatus(String chargeStatus) {
this.chargeStatus = chargeStatus;
}
}

View File

@ -60,7 +60,7 @@ public interface EmsStrategyRunningMapper
*/
public int deleteEmsStrategyRunningByIds(Long[] ids);
// 获取站点运行策略
// 获取站点运行策略列表
public List<StrategyRunningVo> getRunningList(String siteId);
// 停止策略

View File

@ -1,6 +1,8 @@
package com.xzzn.ems.mapper;
import java.util.List;
import java.util.Map;
import com.xzzn.ems.domain.EmsStrategyTemp;
import org.apache.ibatis.annotations.Param;
@ -60,5 +62,9 @@ public interface EmsStrategyTempMapper
*/
public int deleteEmsStrategyTempByIds(Long[] ids);
public List<String> getTempNameList(@Param("strategyId")Long strategyId, @Param("siteId")String siteId);
// 获取模板名称和id
public List<Map<String,String>> getTempNameList(@Param("strategyId")Long strategyId, @Param("siteId")String siteId);
// 删除模板
public int deleteEmsStrategyTempByIds(Long id);
}

View File

@ -0,0 +1,67 @@
package com.xzzn.ems.mapper;
import java.util.List;
import com.xzzn.ems.domain.EmsStrategyTempTimeConfig;
/**
* 模板配置Mapper接口
*
* @author xzzn
* @date 2025-07-12
*/
public interface EmsStrategyTempTimeConfigMapper
{
/**
* 查询模板配置
*
* @param id 模板配置主键
* @return 模板配置
*/
public EmsStrategyTempTimeConfig selectEmsStrategyTempTimeConfigById(Long id);
/**
* 查询模板配置列表
*
* @param emsStrategyTempTimeConfig 模板配置
* @return 模板配置集合
*/
public List<EmsStrategyTempTimeConfig> selectEmsStrategyTempTimeConfigList(EmsStrategyTempTimeConfig emsStrategyTempTimeConfig);
/**
* 新增模板配置
*
* @param emsStrategyTempTimeConfig 模板配置
* @return 结果
*/
public int insertEmsStrategyTempTimeConfig(EmsStrategyTempTimeConfig emsStrategyTempTimeConfig);
/**
* 修改模板配置
*
* @param emsStrategyTempTimeConfig 模板配置
* @return 结果
*/
public int updateEmsStrategyTempTimeConfig(EmsStrategyTempTimeConfig emsStrategyTempTimeConfig);
/**
* 删除模板配置
*
* @param id 模板配置主键
* @return 结果
*/
public int deleteEmsStrategyTempTimeConfigById(Long id);
/**
* 批量删除模板配置
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteEmsStrategyTempTimeConfigByIds(Long[] ids);
// 获取模板的时间
public List<EmsStrategyTempTimeConfig> getTimeListByTempId(Long templateId);
// 根据模板id删除时间配置
public void deleteTimeConfigByTempId(Long templateId);
}

View File

@ -1,7 +1,11 @@
package com.xzzn.ems.service;
import java.util.List;
import java.util.Map;
import com.xzzn.ems.domain.EmsStrategyTemp;
import com.xzzn.ems.domain.vo.StrategyTempConfigRequest;
import com.xzzn.ems.domain.vo.StrategyTempTimeConfigVo;
/**
* 模板Service接口
@ -11,29 +15,12 @@ import com.xzzn.ems.domain.EmsStrategyTemp;
*/
public interface IEmsStrategyTempService
{
/**
* 查询模板
*
* @param id 模板主键
* @return 模板
*/
public EmsStrategyTemp selectEmsStrategyTempById(Long id);
/**
* 查询模板列表
*
* @param emsStrategyTemp 模板
* @return 模板集合
*/
public List<EmsStrategyTemp> selectEmsStrategyTempList(EmsStrategyTemp emsStrategyTemp);
// 获取该模板下的时间配置
public List<StrategyTempTimeConfigVo> selectEmsStrategyTempList(Long id);
/**
* 新增模板
*
* @param emsStrategyTemp 模板
* @return 结果
*/
public int insertEmsStrategyTemp(EmsStrategyTemp emsStrategyTemp);
// 新增模板及时间配置
public int addNewTempAndTimeConfig(StrategyTempConfigRequest requestVo);
/**
* 修改模板
@ -59,5 +46,7 @@ public interface IEmsStrategyTempService
*/
public int deleteEmsStrategyTempById(Long id);
public List<String> getTempNameList(Long strategyId, String siteId);
public List<Map<String,String>> getTempNameList(Long strategyId, String siteId);
public void deleteStrategyTempById(Long id);
}

View File

@ -48,7 +48,7 @@ public class EmsStrategyServiceImpl implements IEmsStrategyService
@Override
public int configStrategy(EmsStrategyRunning emsStrategyRunning) {
// 校验改策略是否已存在
// 校验是否已存在已运行的相同策略
EmsStrategyRunning existStrategy = emsStrategyRunningMapper.selectEmsStrategyRunning(emsStrategyRunning);
if (existStrategy != null) {
return -1;

View File

@ -1,7 +1,15 @@
package com.xzzn.ems.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.xzzn.common.utils.DateUtils;
import com.xzzn.common.utils.bean.BeanUtils;
import com.xzzn.ems.domain.EmsStrategyTempTimeConfig;
import com.xzzn.ems.domain.vo.StrategyTempConfigRequest;
import com.xzzn.ems.domain.vo.StrategyTempTimeConfigVo;
import com.xzzn.ems.mapper.EmsStrategyTempTimeConfigMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xzzn.ems.mapper.EmsStrategyTempMapper;
@ -19,42 +27,36 @@ public class EmsStrategyTempServiceImpl implements IEmsStrategyTempService
{
@Autowired
private EmsStrategyTempMapper emsStrategyTempMapper;
/**
* 查询模板
*
* @param id 模板主键
* @return 模板
*/
@Override
public EmsStrategyTemp selectEmsStrategyTempById(Long id)
{
return emsStrategyTempMapper.selectEmsStrategyTempById(id);
}
@Autowired
private EmsStrategyTempTimeConfigMapper emsStrategyTempTimeConfigMapper;
/**
* 查询模板列表
*
* @param emsStrategyTemp 模板
* @param templateId 模板
* @return 模板
*/
@Override
public List<EmsStrategyTemp> selectEmsStrategyTempList(EmsStrategyTemp emsStrategyTemp)
public List<StrategyTempTimeConfigVo> selectEmsStrategyTempList(Long templateId)
{
return emsStrategyTempMapper.selectEmsStrategyTempList(emsStrategyTemp);
}
/**
* 新增模板
*
* @param emsStrategyTemp 模板
* @return 结果
*/
@Override
public int insertEmsStrategyTemp(EmsStrategyTemp emsStrategyTemp)
{
emsStrategyTemp.setCreateTime(DateUtils.getNowDate());
return emsStrategyTempMapper.insertEmsStrategyTemp(emsStrategyTemp);
List<StrategyTempTimeConfigVo> dataList = new ArrayList<>();
EmsStrategyTemp temp = emsStrategyTempMapper.selectEmsStrategyTempById(templateId);
if (temp != null) {
List<EmsStrategyTempTimeConfig> timeList = emsStrategyTempTimeConfigMapper.getTimeListByTempId(templateId);
if (timeList != null) {
for (EmsStrategyTempTimeConfig timeConfig : timeList) {
StrategyTempTimeConfigVo vo = new StrategyTempTimeConfigVo();
BeanUtils.copyProperties(timeConfig, vo);
BeanUtils.copyProperties(temp, vo);
dataList.add(vo);
}
} else {
StrategyTempTimeConfigVo vo = new StrategyTempTimeConfigVo();
BeanUtils.copyProperties(temp, vo);
dataList.add(vo);
}
}
return dataList;
}
/**
@ -95,7 +97,35 @@ public class EmsStrategyTempServiceImpl implements IEmsStrategyTempService
}
@Override
public List<String> getTempNameList(Long strategyId, String siteId) {
public List<Map<String,String>> getTempNameList(Long strategyId, String siteId) {
return emsStrategyTempMapper.getTempNameList(strategyId, siteId);
}
@Override
public int addNewTempAndTimeConfig(StrategyTempConfigRequest requestVo) {
EmsStrategyTemp emsStrategyTemp = new EmsStrategyTemp();
BeanUtils.copyProperties(requestVo, emsStrategyTemp);
emsStrategyTemp.setCreateTime(DateUtils.getNowDate());
emsStrategyTempMapper.insertEmsStrategyTemp(emsStrategyTemp);
List<EmsStrategyTempTimeConfig> timeList = requestVo.getTimeConfigList();
if (timeList != null) {
for (EmsStrategyTempTimeConfig timeConfig : timeList) {
timeConfig.setCreateTime(DateUtils.getNowDate());
timeConfig.setTemplateId(emsStrategyTemp.getId());
emsStrategyTempTimeConfigMapper.insertEmsStrategyTempTimeConfig(timeConfig);
}
}
return 1;
}
@Override
public void deleteStrategyTempById(Long id) {
// 先删除时间配置
emsStrategyTempTimeConfigMapper.deleteTimeConfigByTempId(id);
// 再删除模板
emsStrategyTempMapper.deleteEmsStrategyTempById(id);
}
}