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); } 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; } 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²) **/ 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); } } 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> { } 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; } 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; } 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); } 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; } } 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