whyclxw
5 天以前 a87fc3c9375d5d77017d9dff8dc1ea425acb932d
修改实时页面电源前N笔数据心跳包
3个文件已修改
3个文件已添加
160 ■■■■ 已修改文件
src/main/java/com/whyc/controller/RealContoller.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/PowerheartParamMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_param/PowerheartParam.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattRealdataIdService.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PowerheartParamService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PwrdevHistorydataIdService.java 35 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/RealContoller.java
@@ -31,22 +31,22 @@
    @Autowired
    private BatttestdataIdService tdataIdService;
    @ApiOperation(value = "系统概览获取半小时交流输入统计")
    @GetMapping("getHalfHourPwrHisAcinData")
    public Response getHalfHourPwrHisAcinData(@RequestParam Integer powerId,@RequestParam Integer granularity){
        return pwrdevHistorydataIdService.getHalfHourPwrHisAcinData(powerId,granularity);
    @ApiOperation(value = "系统概览获取前一百比时间间隔数据交流输入统计")
    @GetMapping("getPwrHisAcinData100")
    public Response getPwrHisAcinData100(@RequestParam Integer powerId){
        return pwrdevHistorydataIdService.getPwrHisAcinData100(powerId);
    }
    @ApiOperation(value = "系统概览获取半小时直流输出统计")
    @GetMapping("getHalfHourPwrHisDcoutData")
    public Response getHalfHourPwrHisDcoutData(@RequestParam Integer powerId,@RequestParam Integer granularity){
        return pwrdevHistorydataIdService.getHalfHourPwrHisDcoutData(powerId,granularity);
    @ApiOperation(value = "系统概览获取前一百比时间间隔数据直流输出统计")
    @GetMapping("getPwrHisDcoutData100")
    public Response getPwrHisDcoutData100(@RequestParam Integer powerId){
        return pwrdevHistorydataIdService.getHalfHourPwrHisDcoutData(powerId);
    }
    @ApiOperation(value = "系统概览获取半小时核容设备信息")
    @GetMapping("getHalfHourBattDevData")
    public Response getHalfHourBattDevData(@RequestParam Integer battgroupId,@RequestParam Integer granularity){
        return battRealdataIdService.getHalfHourBattDevData(battgroupId,granularity);
    @ApiOperation(value = "系统概览获取前一百比时间间隔数据核容设备信息")
    @GetMapping("getBattDevData100")
    public Response getBattDevData100(@RequestParam Integer powerId,@RequestParam Integer battgroupId){
        return battRealdataIdService.getBattDevData100(powerId,battgroupId);
    }
    @ApiOperation(value = "历史测试记录")
src/main/java/com/whyc/mapper/PowerheartParamMapper.java
New file
@@ -0,0 +1,6 @@
package com.whyc.mapper;
import com.whyc.pojo.db_param.PowerheartParam;
public interface PowerheartParamMapper extends CustomMapper<PowerheartParam>{
}
src/main/java/com/whyc/pojo/db_param/PowerheartParam.java
New file
@@ -0,0 +1,57 @@
package com.whyc.pojo.db_param;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
 * <p>
 * 电源心跳配置参数表
 * </p>
 *
 * @author lxw
 * @since 2025-06-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_param",value ="tb_powerheart_param")
@ApiModel(value="PowerheartParam对象", description="电源心跳配置参数表")
public class PowerheartParam implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "自增主键")
    @TableId(value = "num", type = IdType.AUTO)
    private Long num;
    @ApiModelProperty(value = "电源ID")
    private Integer powerId;
    @ApiModelProperty(value = "交流输入曲线数据间隔(分钟)")
    private Integer acinInterverCfg;
    @ApiModelProperty(value = "交流输入展示笔数")
    private Integer acinCountCfg;
    @ApiModelProperty(value = "直流输入间隔配置(分钟)")
    private Integer acoutInterverCfg;
    @ApiModelProperty(value = "直流输入展示笔数")
    private Integer acoutCountCfg;
    @ApiModelProperty(value = "核容设备信息间隔配置(分钟)")
    private Integer hrInterverCfg;
    @ApiModelProperty(value = "核容设备信息展示笔数")
    private Integer hrCountCfg;
}
src/main/java/com/whyc/service/BattRealdataIdService.java
@@ -11,6 +11,7 @@
import com.whyc.pojo.db_data_history.BattRealdataId;
import com.whyc.pojo.db_param.AlmAnalysisParam;
import com.whyc.pojo.db_param.AppParam;
import com.whyc.pojo.db_param.PowerheartParam;
import com.whyc.pojo.db_ram_db.BattRtstate;
import com.whyc.pojo.db_station.BattInf;
import com.whyc.util.ActionUtil;
@@ -47,6 +48,9 @@
    @Autowired(required = false)
    private BattRtstateService rtstateService;
    @Autowired
    private PowerheartParamService heartService;
@@ -170,14 +174,22 @@
        }
        return new Response().setII(1,map.size()>0,map,"获取电池组最近一季度的温度数据");
    }
    //系统概览获取半小时核容设备信息
    public Response getHalfHourBattDevData(Integer battgroupId,Integer granularity) {
    //系统概览获取前N笔核容设备信息
    public Response getBattDevData100(Integer powerId,Integer battgroupId) {
        String dateTime = ActionUtil.sdfwithOutday.format(new Date());
        String tableName ="db_data_history.tb_batt_realdata_"+battgroupId+"_"+dateTime;
        //获取前笔数*时间间隔
        PowerheartParam heartParam=heartService.getHeartParamByPowerId(powerId);
        Integer interverCount=100*10;//默认值
        Integer granularity=10;//默认值
        if(heartParam!=null){
            interverCount=heartParam.getAcinInterverCfg()*heartParam.getAcinCountCfg();
            granularity=heartParam.getAcinInterverCfg();
        }
        //获取前半个小时数据
        LocalDateTime now = LocalDateTime.now();
        // 计算半小时前的时间点
        LocalDateTime halfHourAgo = now.minusMinutes(30);
        LocalDateTime halfHourAgo = now.minusMinutes(interverCount);
        // 格式化输出
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String halfHourAgoTime=halfHourAgo.format(formatter);
src/main/java/com/whyc/service/PowerheartParamService.java
New file
@@ -0,0 +1,20 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.whyc.mapper.PowerheartParamMapper;
import com.whyc.pojo.db_param.PowerheartParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class PowerheartParamService {
    @Autowired(required = false)
    private PowerheartParamMapper mapper;
    //获取前笔数*时间间隔
    public PowerheartParam getHeartParamByPowerId(Integer powerId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("powerId",powerId);
        wrapper.last("limit 1");
        return mapper.selectOne(wrapper);
    }
}
src/main/java/com/whyc/service/PwrdevHistorydataIdService.java
@@ -14,6 +14,7 @@
import com.whyc.pojo.db_param.AppParam;
import com.whyc.pojo.db_param.ApptimeParam;
import com.whyc.pojo.db_param.PowerPropertyParam;
import com.whyc.pojo.db_param.PowerheartParam;
import com.whyc.pojo.db_station.PowerInf;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
@@ -48,13 +49,23 @@
    @Autowired
    private PowerPropertyParamService  propertyParamService;
    //系统概览获取半小时交流输入统计
    public Response getHalfHourPwrHisAcinData(Integer powerId,Integer granularity) {
    @Autowired
    private PowerheartParamService heartService;
    //系统概览前N笔交流输入统计
    public Response getPwrHisAcinData100(Integer powerId) {
        String dateTime = ActionUtil.sdfwithOutday.format(new Date());
        //获取前半个小时数据
        //获取前笔数*时间间隔
        PowerheartParam heartParam=heartService.getHeartParamByPowerId(powerId);
        Integer interverCount=100*10;//默认值
        Integer granularity=10;//默认值
        if(heartParam!=null){
            interverCount=heartParam.getAcinInterverCfg()*heartParam.getAcinCountCfg();
            granularity=heartParam.getAcinInterverCfg();
        }
        LocalDateTime now = LocalDateTime.now();
        // 计算半小时前的时间点
        LocalDateTime halfHourAgo = now.minusMinutes(30);
        // 计算笔数*时间间隔的时间点
        LocalDateTime halfHourAgo = now.minusMinutes(interverCount);
        // 格式化输出
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String halfHourAgoTime=halfHourAgo.format(formatter);
@@ -67,13 +78,21 @@
        return new Response().setII(1,datalist.size()>0,datalist,"获取半小时内交流输入统计");
    }
    //系统概览获取半小时直流输出统计
    public Response getHalfHourPwrHisDcoutData(Integer powerId,Integer granularity) {
    //系统概览获取前N笔直流输出统计
    public Response getHalfHourPwrHisDcoutData(Integer powerId) {
        String dateTime = ActionUtil.sdfwithOutday.format(new Date());
        //获取前笔数*时间间隔
        PowerheartParam heartParam=heartService.getHeartParamByPowerId(powerId);
        Integer interverCount=100*10;//默认值
        Integer granularity=10;//默认值
        if(heartParam!=null){
            interverCount=heartParam.getAcinInterverCfg()*heartParam.getAcinCountCfg();
            granularity=heartParam.getAcinInterverCfg();
        }
        //获取前半个小时数据
        LocalDateTime now = LocalDateTime.now();
        // 计算半小时前的时间点
        LocalDateTime halfHourAgo = now.minusMinutes(30);
        LocalDateTime halfHourAgo = now.minusMinutes(interverCount);
        // 格式化输出
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String halfHourAgoTime=halfHourAgo.format(formatter);