From af72d8716cf20bfcb3fdf2cc67b5ee8c58966780 Mon Sep 17 00:00:00 2001 From: Jay <csj123456> Date: 星期三, 22 一月 2025 15:10:35 +0800 Subject: [PATCH] 新增电价时段表接口 --- iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ElectricityPriceSegmentedDTO.java | 51 ++++++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java | 93 +++++++++++++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java | 31 +++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/entity/ElectricityPriceSegmentedEntity.java | 55 +++++++++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dao/ElectricityPriceSegmentedDao.java | 17 ++ iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml | 1 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java | 9 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java | 7 + iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java | 15 ++ iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dto/ElectricityPriceSegmentedDTO.java | 61 ++++++++++ 10 files changed, 340 insertions(+), 0 deletions(-) diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java index a56f5d5..fe87a4f 100644 --- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java @@ -114,4 +114,13 @@ @PostMapping("/predict-data/itemNo") @Operation(summary = "查询时间范围内预测结果") Map<String,List<Object[]>> getPredictDataItemNo(@RequestBody PreDataItemNoReqVO reqVO); + + @GetMapping(PREFIX + "/electricityPrice/list") + @Operation(summary = "电价时段配置列表") + List<ElectricityPriceSegmentedDTO> getElectricityPriceList(); + + @PostMapping(PREFIX + "/electricityPrice/create") + @Operation(summary = "添加电价时段配置列表") + Boolean createElectricityPrice(@RequestBody ElectricityPriceSegmentedDTO dto); + } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ElectricityPriceSegmentedDTO.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ElectricityPriceSegmentedDTO.java new file mode 100644 index 0000000..ae87840 --- /dev/null +++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ElectricityPriceSegmentedDTO.java @@ -0,0 +1,51 @@ +package com.iailab.module.model.api.mcs.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author Jay + * @description: 电价分段数据 + **/ +@Data +public class ElectricityPriceSegmentedDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + private String iTimeId; + + private String recId; + + /** + * 能介编号 + */ + private String mediaId; + + private String refMediaId; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java index 6f9fc91..3bf35a3 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java @@ -34,6 +34,7 @@ import com.iailab.module.model.mdk.vo.ItemVO; import com.iailab.module.model.mpk.service.ChartParamService; import com.iailab.module.model.mpk.service.ChartService; +import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -102,6 +103,9 @@ @Autowired private InfluxDBService influxDBService; + + @Autowired + private ElectricityPriceSegmentedService electricityPriceSegmentedService; private int HOUR_MINS = 60; @@ -728,6 +732,17 @@ return result; } + @Override + public List<ElectricityPriceSegmentedDTO> getElectricityPriceList() { + return electricityPriceSegmentedService.getElectricityPriceList(); + } + + @Override + public Boolean createElectricityPrice(ElectricityPriceSegmentedDTO dto) { + electricityPriceSegmentedService.create(dto); + return true; + } + /** * 计算功率因数 p²/(根号:p²+Q²) **/ diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java index a4c747b..d89675e 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java @@ -215,4 +215,11 @@ CommonResult<Map<String,List<Object[]>>> getPredictDataItemNo(@RequestBody PreDataItemNoReqVO reqVO) { return CommonResult.success(mcsApi.getPredictDataItemNo(reqVO)); } + + @GetMapping("/electricityPrice/list") + @Operation(summary = "电价表") + public CommonResult<List<ElectricityPriceSegmentedDTO>> getElectricityPriceList() { + List<ElectricityPriceSegmentedDTO> electricityPriceSegmentedList = mcsApi.getElectricityPriceList(); + return CommonResult.success(electricityPriceSegmentedList); + } } \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dao/ElectricityPriceSegmentedDao.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dao/ElectricityPriceSegmentedDao.java new file mode 100644 index 0000000..6b579a9 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dao/ElectricityPriceSegmentedDao.java @@ -0,0 +1,17 @@ +package com.iailab.module.model.mpk.dao; + +import com.iailab.framework.common.dao.BaseDao; +import com.iailab.framework.tenant.core.db.dynamic.TenantDS; +import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dzd + * @date: 2024/11/5 11:19 + **/ +@TenantDS +@Mapper +public interface ElectricityPriceSegmentedDao extends BaseDao<ElectricityPriceSegmentedEntity> { + +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dto/ElectricityPriceSegmentedDTO.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dto/ElectricityPriceSegmentedDTO.java new file mode 100644 index 0000000..da6f951 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dto/ElectricityPriceSegmentedDTO.java @@ -0,0 +1,61 @@ +package com.iailab.module.model.mpk.dto; + +import lombok.Data; + +import java.io.Serializable; +import java.sql.Time; +import java.util.Date; + +/** + * @author Jay + * @description: 电价分段数据 + **/ +@Data +public class ElectricityPriceSegmentedDTO implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + + /** + * 能介名称 + */ + private String nengjieName; + + /** + * 参考总量能介 + */ + private String cankaozongliangnengjie; + + /** + * 价格 + */ + private String price; + + /** + * 价格 + */ + private String month; + + /** + * 开始时间 + */ + private Time timeStart; + + /** + * 结束时间 + */ + private Time timeEnd; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/entity/ElectricityPriceSegmentedEntity.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/entity/ElectricityPriceSegmentedEntity.java new file mode 100644 index 0000000..d3836ef --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/entity/ElectricityPriceSegmentedEntity.java @@ -0,0 +1,55 @@ +package com.iailab.module.model.mpk.entity; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author Jay + * @description: 电价分段数据 + **/ +@Data +@TableName("t_electricity_price_segmented") +public class ElectricityPriceSegmentedEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId + private String id; + + private String iTimeId; + + private String recId; + + /** + * 能介编号 + */ + private String mediaId; + + private String refMediaId; + + /** + * 开始时间 + */ + private Date startTime; + + /** + * 结束时间 + */ + private Date endTime; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改时间 + */ + private Date updateTime; +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java new file mode 100644 index 0000000..2a72085 --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java @@ -0,0 +1,31 @@ +package com.iailab.module.model.mpk.service; + + +import com.iailab.framework.common.page.PageData; +import com.iailab.module.model.api.mcs.dto.ElectricityPriceSegmentedDTO; +import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity; + +import java.util.List; +import java.util.Map; + +/** + * @description: + * @author: dzd + * @date: 2024/11/5 11:20 + **/ +public interface ElectricityPriceSegmentedService { + + PageData<ElectricityPriceSegmentedDTO> page(Map<String, Object> params); + + void create(ElectricityPriceSegmentedDTO entity); + + void update(ElectricityPriceSegmentedEntity entity); + + ElectricityPriceSegmentedEntity get(String id); + + void delete(String id); + + List<ElectricityPriceSegmentedDTO> getElectricityPriceList(); + + List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto); +} diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java new file mode 100644 index 0000000..8fafe8c --- /dev/null +++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java @@ -0,0 +1,93 @@ +package com.iailab.module.model.mpk.service.impl; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.iailab.framework.common.page.PageData; +import com.iailab.framework.common.service.impl.BaseServiceImpl; +import com.iailab.framework.common.util.date.DateUtils; +import com.iailab.framework.common.util.object.ConvertUtils; +import com.iailab.module.model.api.mcs.dto.ElectricityPriceSegmentedDTO; +import com.iailab.module.model.mpk.dao.ElectricityPriceSegmentedDao; +import com.iailab.module.model.mpk.entity.ElectricityPriceSegmentedEntity; +import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.*; + +/** + * @description: + * @author: dzd + * @date: 2024/11/5 11:21 + **/ +@Slf4j +@Service +public class ElectricityPriceSegmentedServiceImpl extends BaseServiceImpl<ElectricityPriceSegmentedDao, ElectricityPriceSegmentedEntity> implements ElectricityPriceSegmentedService { + + @Override + public PageData<ElectricityPriceSegmentedDTO> page(Map<String, Object> params) { + IPage<ElectricityPriceSegmentedEntity> page = baseDao.selectPage( + getPage(params, "create_time", false), + getWrapper(params) + ); + + return getPageData(page, ElectricityPriceSegmentedDTO.class); + } + + @Override + public void create(ElectricityPriceSegmentedDTO dto) { + List<ElectricityPriceSegmentedDTO> list = getElectricityPriceListByTime(dto); + if (CollectionUtils.isEmpty(list)){ + ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class); + entity.setId(UUID.randomUUID().toString()); + entity.setCreateTime(new Date()); + baseDao.insert(entity); + } + } + + @Override + public void update(ElectricityPriceSegmentedEntity dto) { + ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class); + entity.setUpdateTime(new Date()); + baseDao.updateById(entity); + } + + @Override + public ElectricityPriceSegmentedEntity get(String id) { + return baseDao.selectById(id); + } + + + @Override + public void delete(String id) { + baseDao.deleteById(id); + } + + @Override + public List<ElectricityPriceSegmentedDTO> getElectricityPriceList() { + return ConvertUtils.sourceToTarget(baseDao.selectList(new QueryWrapper<>()), ElectricityPriceSegmentedDTO.class); + } + + @Override + public List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto) { + String startTime = DateUtils.format(dto.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + String endTime = DateUtils.format(dto.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + Map<String, Object> params = new HashMap<>(); + params.put("startTime", startTime); + params.put("endTime", endTime); + List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(getWrapper(params)); + return ConvertUtils.sourceToTarget(list, ElectricityPriceSegmentedDTO.class); + } + + private QueryWrapper<ElectricityPriceSegmentedEntity> getWrapper(Map<String, Object> params) { + String startTime = (String) params.get("startTime"); + String endTime = (String) params.get("endTime"); + + QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(startTime), "start_time", startTime) + .eq(StringUtils.isNotBlank(endTime), "end_time", endTime); + return wrapper; + } +} \ No newline at end of file diff --git a/iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml b/iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml index 112a71e..2a3c4ed 100644 --- a/iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml +++ b/iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml @@ -219,6 +219,7 @@ - t_chart - t_mpk_pack - t_mm_item_status + - t_electricity_price_segmented app: app-key: model app-secret: 85b0df7edc3df3611913df34ed695011 -- Gitblit v1.9.3