点击右侧折线图画出电池组所有完整周期的实际容量,浮充电压变化,单体内阻图(1.2.15/16/17)
4个文件已修改
1个文件已添加
146 ■■■■ 已修改文件
src/main/java/com/whyc/controller/BattCompareController.java 37 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Statistic/ComPareChangeCurve.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattresdataInfService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatttestdataInfService.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/SubTablePageInfoService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/BattCompareController.java
@@ -3,15 +3,13 @@
import com.whyc.dto.Response;
import com.whyc.dto.Statistic.BattCompareStic;
import com.whyc.pojo.db_user.User;
import com.whyc.service.BattresdataInfService;
import com.whyc.service.BatttestdataInfService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.text.ParseException;
import java.util.Map;
@@ -24,8 +22,11 @@
    @Autowired
    private BatttestdataInfService battTinfService;
    @Autowired
    private BattresdataInfService battRinfService;
    @ApiOperation(value = "蓄电池组对比分析界面(同一品牌同一时间)(1.2.15)")
    @ApiOperation(value = "蓄电池组对比分析界面(同一时间同一品牌/同一时间不同一品牌/不同一时间同一品牌)(1.2.15/16/17)")
    @PostMapping("getBattCompare15Statistic")
    public Response getBattCompare15Statistic(@RequestBody BattCompareStic stic) throws ParseException {
        User uinf= ActionUtil.getUser();
@@ -38,19 +39,21 @@
        return battTinfService.getBattCompare15Statistic(stic);
    }
    @ApiOperation(value = "蓄电池组对比分析界面(不同品牌同一时间)(1.2.16)")
    @PostMapping("getBattCompare16Statistic")
    public Response getBattCompare16Statistic(@RequestBody BattCompareStic stic){
        User uinf= ActionUtil.getUser();
        stic.setUid(uinf.getId());
        return battTinfService.getBattCompare16Statistic(stic);
    @ApiOperation(value = "点击右侧折线图画出电池组所有完整周期的实际容量变化图(1.2.15/16/17)")
    @GetMapping("getRealCapChangeByBattgroupId")
    public Response getRealCapChangeByBattgroupId(@RequestParam Integer battgroupId){
        return battTinfService.getRealCapChangeByBattgroupId(battgroupId);
    }
    @ApiOperation(value = "蓄电池组对比分析界面(同一品牌不同时间)(1.2.17)")
    @PostMapping("getBattCompare17Statistic")
    public Response getBattCompare17Statistic(@RequestBody BattCompareStic stic){
        User uinf= ActionUtil.getUser();
        stic.setUid(uinf.getId());
        return battTinfService.getBattCompare17Statistic(stic);
    @ApiOperation(value = "点击右侧折线图画出电池组所有完整周期的浮充电压变化图(1.2.15/16/17)")
    @GetMapping("getFloatGroupVolChangeByBattgroupId")
    public Response getFloatGroupVolChangeByBattgroupId(@RequestParam Integer battgroupId){
        return battTinfService.getFloatGroupVolChangeByBattgroupId(battgroupId);
    }
    @ApiOperation(value = "点击右侧折线图画出电池组单体的所有内阻测试单体内阻变化图(1.2.15/16/17)")
    @GetMapping("getMonResChangeByBattgroupId")
    public Response getMonResChangeByBattgroupId(@RequestParam Integer battgroupId,@RequestParam Integer monNum){
        return battRinfService.getMonResChangeByBattgroupId(battgroupId,monNum);
    }
}
src/main/java/com/whyc/dto/Statistic/ComPareChangeCurve.java
New file
@@ -0,0 +1,13 @@
package com.whyc.dto.Statistic;
import lombok.Data;
import java.util.Date;
@Data
public class ComPareChangeCurve {
    private Integer battgroupId;
    private Date startTime;
    private Float curveValue;
    private Integer monNum;
}
src/main/java/com/whyc/service/BattresdataInfService.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.whyc.dto.Real.QuarterDto;
import com.whyc.dto.Response;
import com.whyc.dto.Statistic.ComPareChangeCurve;
import com.whyc.dto.Statistic.ComPareChart;
import com.whyc.mapper.BattresdataInfMapper;
import com.whyc.mapper.CommonMapper;
@@ -87,4 +89,23 @@
        }
        return chart;
    }
    //点击右侧折线图画出电池组单体的所有内阻测试单体内阻变化图(1.2.15/16/17)
    public Response getMonResChangeByBattgroupId(Integer battgroupId, Integer monNum) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("battgroup_id", battgroupId);
        wrapper.last(" ORDER BY test_starttime asc ");
        List<BattresdataInf> list = mapper.selectList(wrapper);
        List<ComPareChangeCurve> curvelist=new ArrayList<>();
        for (BattresdataInf rinf:list) {
            String existTableName = commonMapper.existTable("db_batt_testdata", "tb_battresdata_"+battgroupId);
            if(existTableName != null){
                //取内阻测试指定单体的单体电压
                ComPareChangeCurve curve=subTablePageInfoService.getMonResChangeByBattgroupId(battgroupId,rinf.getTestRecordCount(),monNum);
                if(curve!=null){
                    curvelist.add(curve);
                }
            }
        }
        return new Response().setII(1,list.size()>0,curvelist,"点击右侧折线图画出电池组单体的所有内阻测试单体内阻变化图(1.2.15/16/17)");
    }
}
src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -289,6 +289,7 @@
        map.put("standCapDiff",0f);
        Float sumCap=0f;
        Float maxCap=0f;
        Float minCap=0f;
        Float standCapDiff=0f;
        List<ComPareChart> capList=new ArrayList<>();
        List<ComPareChart> resList=new ArrayList<>();
@@ -354,9 +355,11 @@
                    String precentCap = String.format("%.5f",(grouprealCap/binf.getMoncapstd()*100));
                    res.setPrecentCap(precentCap);
                    sumCap+=grouprealCap;
                    standCapDiff=grouprealCap-maxCap;
                    if(grouprealCap>=maxCap){
                        maxCap=grouprealCap;
                    }
                    if(grouprealCap<=minCap){
                        minCap=grouprealCap;
                    }
                }
            }
@@ -382,7 +385,7 @@
            resList.add(resChart);
        }
        map.put("avgCap",sumCap/binfList.size());
        map.put("standCapDiff",standCapDiff);
        map.put("standCapDiff",maxCap-minCap);
        PageInfo pageInfo=PageInfoUtils.list2PageInfo(comparelist, stic.getPageNum(), stic.getPageSize());
        return new Response().setIII(1,comparelist.size()>0,pageInfo,map,"蓄电池组对比分析界面(同一品牌同一时间)");
@@ -1045,4 +1048,46 @@
        wrapper.last(" limit 1");
        return mapper.selectOne(wrapper);
    }
    //点击右侧折线图画出电池组所有完整周期的实际容量变化图(1.2.15/16/17)
    public Response getRealCapChangeByBattgroupId(Integer battgroupId) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("battgroup_id", battgroupId);
        wrapper.eq("test_type", 3);
        wrapper.eq("test_starttype", 3);
        wrapper.eq("data_available", 1);//一次有效的记录
        wrapper.last("  ORDER BY test_starttime DESC ");
        List<BatttestdataInf> list = mapper.selectList(wrapper);
        //获取电池组的标称容量
        BattInf binf=battInfService.getBattgroupIdInf(battgroupId);
        List<ComPareChangeCurve> curvelist=new ArrayList<>();
        for (BatttestdataInf tinf:list) {
            int hourRate = BattCapFactory.GetHourRate(tinf.getTestCap(), tinf.getTestCurr());
            Float realCap = (float) BattCapFactory.GetMonomerCap(binf.getMoncapstd(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Real);
            ComPareChangeCurve curve=new ComPareChangeCurve();
            curve.setBattgroupId(battgroupId);
            curve.setStartTime(tinf.getTestStarttime());
            curve.setCurveValue(realCap);
            curvelist.add(curve);
        }
        return new Response().setII(1,list.size()>0,curvelist,"点击右侧折线图画出电池组所有完整周期的实际容量变化图(1.2.15/16/17)");
    }
    //点击右侧折线图画出电池组所有完整周期的浮充电压变化图(1.2.15/16/17)
    public Response getFloatGroupVolChangeByBattgroupId(Integer battgroupId) {
        QueryWrapper wrapper = new QueryWrapper();
        wrapper.eq("battgroup_id", battgroupId);
        wrapper.eq("test_type", 3);
        wrapper.eq("test_starttype", 3);
        wrapper.eq("data_available", 1);//一次有效的记录
        wrapper.last("  ORDER BY test_starttime asc ");
        List<BatttestdataInf> list = mapper.selectList(wrapper);
        List<ComPareChangeCurve> curvelist=new ArrayList<>();
        for (BatttestdataInf tinf:list) {
            ComPareChangeCurve curve=new ComPareChangeCurve();
            curve.setBattgroupId(battgroupId);
            curve.setStartTime(tinf.getTestStarttime());
            curve.setCurveValue(tinf.getFloatGroupVol());
            curvelist.add(curve);
        }
        return new Response().setII(1,list.size()>0,curvelist,"点击右侧折线图画出电池组所有完整周期的浮充电压变化图(1.2.15/16/17)");
    }
}
src/main/java/com/whyc/service/SubTablePageInfoService.java
@@ -5,6 +5,7 @@
import com.whyc.dto.AlmHis.PwrAlmPar;
import com.whyc.dto.AnalysisAlm.ResAnalysis;
import com.whyc.dto.Real.*;
import com.whyc.dto.Statistic.ComPareChangeCurve;
import com.whyc.dto.Statistic.ComPareChart;
import com.whyc.dto.Statistic.QuarterPwr7Res;
import com.whyc.mapper.CallBack;
@@ -557,6 +558,30 @@
        });
        return list;
    }
    //取内阻测试指定单体的单体电压
    public ComPareChangeCurve getMonResChangeByBattgroupId(Integer battgroupId, Integer testRecordCount, Integer monNum) {
        String sql="select   distinct battgroup_id,mon_num,test_starttime,mon_res from db_batt_testdata.tb_battresdata_"+battgroupId
                +" where test_record_count="+testRecordCount+" and monNum="+monNum;
        List<ComPareChangeCurve> list = sqlExecuteService.executeQuery_call(sql, new CallBack() {
            @Override
            public List getResults(ResultSet rs) throws SQLException {
                List<ComPareChangeCurve> list=new ArrayList<>();
                while (rs.next()){
                    ComPareChangeCurve data=new ComPareChangeCurve();
                    data.setMonNum(rs.getInt("mon_num"));
                    data.setCurveValue(rs.getFloat("mon_res"));
                    data.setStartTime(rs.getTimestamp("test_starttime"));
                    data.setBattgroupId(rs.getInt("battgroup_id"));
                    list.add(data);
                }
                return list;
            }
        });
        if(list!=null&&list.size()>0){
            return list.get(0);
        }
        return null;
    }
    //找这次放电的指定一笔数据
    public List<BatttestdataId> getLastDataByBattgroupId(Integer battgroupId, Integer testRecordCount, Integer recordNum) {
        String sql="select   distinct * from db_batt_testdata.tb_batttestdata_"+battgroupId
@@ -1104,4 +1129,5 @@
        });
        return list;
    }
}