src/main/java/com/whyc/controller/RealContoller.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/PowerheartParamMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/db_param/PowerheartParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/BattRealdataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PowerheartParamService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/PwrdevHistorydataIdService.java | ●●●●● 补丁 | 查看 | 原始文档 | 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);