whyclxw
2025-03-28 cc86bb05bba08200a2e2bc301bb835f52a708a1f
src/main/java/com/whyc/service/BattGroupDataService.java
@@ -55,6 +55,7 @@
            return info;
        }
        //Float stdVol = param.getBattVol();
        Float stdCap = param.getBattCap();
        Float stdRes = param.getBattRes();
        Float volLowCoeK1 = null;
        Float volHighCoeK2 = null;
@@ -71,9 +72,12 @@
            volLowCoeK1 = param2.getVol6LowCoeK1();
            volHighCoeK2 = param2.getVol6HighCoeK2();
        }
        else{
        else if(param.getBattVol() == 12){
            volLowCoeK1 = param2.getVol12LowCoeK1();
            volHighCoeK2 = param2.getVol12HighCoeK2();
        }else{ //电压非常规值,则默认设置为2v的电压阈值
            volLowCoeK1 = param2.getVol2LowCoeK1();
            volHighCoeK2 = param2.getVol2HighCoeK2();
        }
        Float resGoodCoeK3 = param2.getResGoodCoeK3();
        Float resBadCoeK4 = param2.getResBadCoeK4();
@@ -83,30 +87,57 @@
        dataList.forEach(data->{
            //判断处理阈值
            Float br =  Float.parseFloat(data.getBr());
            Float bs =  Float.parseFloat(data.getBs());
            Float bv =  Float.parseFloat(data.getBv());
            Float cr =  Float.parseFloat(data.getCr()); //连接条阻抗
            if(bv < finalVolLowCoeK){
            if(bv!=0.0 && bv <= finalVolLowCoeK){
                data.setLowVolFlag(true);
            }else if(bv > finalVolHighCoeK){
            }else if(bv >= finalVolHighCoeK){
                data.setHighVolFlag(true);
            }
            if(br > stdRes*resGoodCoeK3/100){
                if(br > stdRes*resBadCoeK4/100){
            if(br >= stdRes*resGoodCoeK3/100){
                if(br >= stdRes*resBadCoeK4/100){
                    data.setHighResFlag2(true);
                }else{
                    data.setHighResFlag1(true);
                }
            }
            if(cr > chainRes*param2.getChainResCoeK5()/100){
                if(cr > chainRes*param2.getChainResChange()/100) {
            if(bs <= (1/stdRes)*param2.getSerGoodCoeK6()/100){
                if(bs >= chainRes*param2.getSerBadCoeK7()/100) {
                    data.setHighSerFlag1(true);
                }else {
                    data.setHighSerFlag2(true);
                }
            }
            if(cr >= chainRes*param2.getChainResCoeK5()/100){
                if(cr >= chainRes*param2.getChainResChange()/100) {
                    data.setHighChainResFlag2(true);
                }else {
                    data.setHighChainResFlag1(true);
                }
            }
            /*//预估容量
            if(stdRes==0){
                data.setEstimatedCap(stdCap);
            }else{
                float resRate = stdRes/br;
                if(resRate<=0.5f){
                    data.setEstimatedCap(0f);
                }else {
                    data.setEstimatedCap(stdRes / br * stdCap);
                }
            }*/
            float preCapPercent=MathUtil.getPreCapTest(Float.valueOf(br),stdRes);
            //容量百分比修改
            data.setPreCapPercent(preCapPercent);
            //预估容量
            data.setEstimatedCap(preCapPercent*stdCap);
            //内阻偏差率
            float resDevRate=(Float.valueOf(br)-stdRes)/stdRes;
            data.setResDevRate(resDevRate);
        });
        info.setDataList(dataList);
@@ -201,11 +232,12 @@
            }
        }
        //将均一性值,也进行变化率计算
        float brFloat = BigDecimal.valueOf(sdBr).subtract(BigDecimal.valueOf(sdBaseBr)).divide(BigDecimal.valueOf(sdBaseBr),4, BigDecimal.ROUND_HALF_UP).floatValue();
        //均一性暂时取消,去除
        /*float brFloat = BigDecimal.valueOf(sdBr).subtract(BigDecimal.valueOf(sdBaseBr)).divide(BigDecimal.valueOf(sdBaseBr),4, BigDecimal.ROUND_HALF_UP).floatValue();
        resChangeRate.add(percentInstance.format(brFloat));
        float bvFloat = BigDecimal.valueOf(sdBv).subtract(BigDecimal.valueOf(sdBaseBv)).divide(BigDecimal.valueOf(sdBaseBv),4, BigDecimal.ROUND_HALF_UP).floatValue();
        volChangeRate.add(percentInstance.format(bvFloat));
        volChangeRate.add(percentInstance.format(bvFloat));*/
        map.put("resChangeRate",resChangeRate);
        map.put("volChangeRate",volChangeRate);