lxw
2022-07-05 9c319977f67e977dd53d04d09a7711cb514b927d
历史实时修改
1个文件已添加
4个文件已修改
125 ■■■■■ 已修改文件
src/main/java/com/whyc/dto/BattTestData.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/result/RealDateDTO.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattRealdataMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattRealdataService.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattRealdataMapper.xml 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/BattTestData.java
@@ -70,7 +70,7 @@
    public static final int RC_NUM_PARAM=1000;//最多一千笔
    public static final int RC_NUM_Real=5000;//最多一千笔
    public static final int RC_NUM_Real = 1000;//最多一千笔
    
    //电池放电测试弹出框中显示排行前几个内阻数据
    public static final int mon_res_num=10;
src/main/java/com/whyc/dto/result/RealDateDTO.java
New file
@@ -0,0 +1,28 @@
package com.whyc.dto.result;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RealDateDTO {
    @ApiModelProperty(value = "记录时间")
    private Date recrodTime;
    @ApiModelProperty(value = "组端电压")
    private Float groupVol;
    @ApiModelProperty(value = "在线电压")
    private Float onlineVol;
    @ApiModelProperty(value = "组端电流")
    private Float groupCurr;
    @ApiModelProperty(value = "单体电压")
    private Float monVol;
    @ApiModelProperty(value = "单体温度")
    private Float monTmp;
    @ApiModelProperty(value = "单体内阻")
    private Float monRes;
}
src/main/java/com/whyc/mapper/BattRealdataMapper.java
@@ -1,13 +1,15 @@
package com.whyc.mapper;
import com.whyc.dto.result.RealDateDTO;
import com.whyc.pojo.BattRealdata;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BattRealdataMapper extends CustomMapper<BattRealdata>{
public interface BattRealdataMapper extends CustomMapper<BattRealdata> {
    //查询历史实时数据
    List<BattRealdata> serchByCondition(BattRealdata realdata);
    List<RealDateDTO> serchByCondition(BattRealdata realdata);
    //判断表是否存在
    int judgeTable(@Param("table") String table);
src/main/java/com/whyc/service/BattRealdataService.java
@@ -3,6 +3,7 @@
import com.github.pagehelper.PageInfo;
import com.whyc.dto.BattTestData;
import com.whyc.dto.Response;
import com.whyc.dto.result.RealDateDTO;
import com.whyc.mapper.BattRealdataMapper;
import com.whyc.pojo.BattRealdata;
import com.whyc.util.ActionUtil;
@@ -21,41 +22,32 @@
        String table=realdata.getBattGroupId()+"_"+ActionUtil.sdfwithOutday.format(realdata.getRecrodTime());
        realdata.setTableName(table);//表名时间格式部分
        //判断表是否存在
        int tableNum=mapper.judgeTable(table);
        List<BattRealdata> list=new ArrayList();
        List listEnd=new ArrayList();
        if(tableNum>0){
            int maxNum=mapper.searchMaxNum(realdata);
        int tableNum = mapper.judgeTable(table);
        List<RealDateDTO> list = new ArrayList();
        if(tableNum>0) {
            int maxNum = mapper.searchMaxNum(realdata);
            //int minNum=mapper.searchMinNum(realdata);
            //realdata.setMaxNum(maxNum);
            //realdata.setMinNum(minNum);
            //int monCount=Integer.valueOf(realdata.getNote());//单体总数
            //int number=realdata.getMaxNum()/monCount;//要取出的总数
           int number=maxNum;//单个单体总数
            int roteN=0;
            int endN= BattTestData.RC_NUM_Real;//总笔数
            int number = maxNum;//单个单体总数
            int roteN = 0;
            int endN = BattTestData.RC_NUM_Real;//总笔数
            //去除筛选,将全部数据取出
            if(number<=endN){
                roteN=1;
            }else{
                if(number%endN==0){
                    roteN=number/endN;
                }else{
                    roteN=number/endN+1;
            if (number <= endN) {
                roteN = 1;
            } else {
                if (number % endN == 0) {
                    roteN = number / endN;
                } else {
                    roteN = number / endN + 1;
                }
            }
            //roteN=roteN*monCount;
            //realdata.setRoteN(roteN);
            list=mapper.serchByCondition(realdata);
            int i=0;
            for (BattRealdata b:list) {
                if(i%roteN==0){
                    listEnd.add(b);
                }
                i++;
            }
            realdata.setRoteN(roteN);
            list = mapper.serchByCondition(realdata);
        }
        PageInfo pageInfo=new PageInfo(listEnd);
        return new Response().set(1,pageInfo);
        PageInfo pageInfo = new PageInfo(list);
        return new Response().set(1, pageInfo);
    }
}
src/main/resources/mapper/BattRealdataMapper.xml
@@ -1,24 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.BattRealdataMapper">
    <resultMap id="battRealData" type="com.whyc.dto.result.RealDateDTO">
        <result property="recrodTime" column="recrod_time"></result>
        <result property="groupVol" column="group_vol"></result>
        <result property="onlineVol" column="online_vol"></result>
        <result property="groupCurr" column="group_curr"></result>
        <result property="monVol" column="mon_vol"></result>
        <result property="monTmp" column="mon_tmp"></result>
        <result property="monRes" column="mon_res"></result>
    </resultMap>
    <select id="serchByCondition" parameterType="com.whyc.pojo.BattRealdata" resultType="com.whyc.pojo.BattRealdata">
        select * from db_batt_history.tb_batt_realdata_${tableName}
                where  recrod_time>=#{recrodTime} and recrod_time&lt;=#{recrodTime1}
                and mon_num=#{monNum}
                order by recrod_time asc
    <select id="serchByCondition" parameterType="com.whyc.pojo.BattRealdata" resultMap="battRealData">
        select recrod_time, group_vol, online_vol, group_curr, mon_vol, mon_tmp, mon_res
        from (select a.*, (@i:= @i+1) as number
              from (select *
                    from db_batt_history.tb_batt_realdata_${tableName}
                    where recrod_time >= #{recrodTime}
                      and recrod_time &lt;= #{recrodTime1}
                      and mon_num = #{monNum}
                    order by recrod_time asc) a,
                   (select @i:=0) b) c
        where c.number%#{roteN}=0;
    </select>
    <select id="judgeTable" resultType="java.lang.Integer">
        select count(*) as tableNum from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='db_batt_history' and TABLE_NAME='tb_batt_realdata_${table}' ;
        select count(*) as tableNum
        from INFORMATION_SCHEMA.TABLES
        where TABLE_SCHEMA = 'db_batt_history'
          and TABLE_NAME = 'tb_batt_realdata_${table}';
    </select>
    <select id="searchMaxNum" resultType="java.lang.Integer">
        select count(*) as maxNum from db_batt_history.tb_batt_realdata_${tableName}
         where  recrod_time>=#{recrodTime} and recrod_time&lt;=#{recrodTime1} and mon_num=#{monNum}
        select count(*) as maxNum
        from db_batt_history.tb_batt_realdata_${tableName}
        where recrod_time >= #{recrodTime}
          and recrod_time &lt;= #{recrodTime1}
          and mon_num = #{monNum}
    </select>
    <select id="searchMinNum" resultType="java.lang.Integer">
        select min(num) as minNum from db_batt_history.tb_batt_realdata_${tableName}
         where  mon_num=#{monNum}
        select min(num) as minNum
        from db_batt_history.tb_batt_realdata_${tableName}
        where mon_num = #{monNum}
    </select>
</mapper>