Jay
2025-01-22 af72d8716cf20bfcb3fdf2cc67b5ee8c58966780
新增电价时段表接口
已修改4个文件
已添加6个文件
340 ■■■■■ 文件已修改
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/dto/ElectricityPriceSegmentedDTO.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/controller/admin/McsApiController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dao/ElectricityPriceSegmentedDao.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/dto/ElectricityPriceSegmentedDTO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/entity/ElectricityPriceSegmentedEntity.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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