lxw
2022-10-11 c8fe7628d2d6a3a40d8e168c67b10b6e65415517
src/main/java/com/whyc/service/BattGroupDataService.java
@@ -2,10 +2,7 @@
import com.whyc.dto.Response;
import com.whyc.mapper.BattGroupDataMapper;
import com.whyc.pojo.BattgroupData;
import com.whyc.pojo.BattgroupInfo;
import com.whyc.pojo.FileInfo;
import com.whyc.pojo.FileParam;
import com.whyc.pojo.*;
import com.whyc.util.MathUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -31,22 +28,26 @@
    @Autowired
    private BattGroupInfoService battGroupInfoService;
    @Autowired
    private TestParamService testParamService;
    public List<BattgroupData> getListWithTestTime(String fileId) {
        String battGroupId = battGroupInfoService.getByFileId(fileId).getBattgroupId();
        List<BattgroupData> dataList = mapper.getListWithTestTime(battGroupId);
        //查询系数和阈值是否禁用
        //BattgroupInfo info = battGroupInfoService.getByBattGroupId(fileId);
        FileParam param = fileParamService.getFactorsAndThreshold(fileId);
        if(param.getFactorDisabled() == 1){ //系数和阈值禁用,不需要判断处理阈值
        FileParam param = fileParamService.getByFileId(fileId);
        TestParam param2 = testParamService.getFactorsAndThreshold();
        if(param2.getEnabled() == 0){ //系数和阈值禁用,不需要判断处理阈值
            return dataList;
        }
        Float stdVol = param.getBattVol();
        Float stdRes = param.getBattRes();
        Float volLowCoeK1 = param.getVolLowCoeK1();
        Float volHighCoeK2 = param.getVolHighCoeK2();
        Float resGoodCoeK3 = param.getResGoodCoeK3();
        Float resBadCoeK4 = param.getResBadCoeK4();
        Float chainRes = param.getChainRes();
        Float volLowCoeK1 = param2.getVolLowCoeK1();
        Float volHighCoeK2 = param2.getVolHighCoeK2();
        Float resGoodCoeK3 = param2.getResGoodCoeK3();
        Float resBadCoeK4 = param2.getResBadCoeK4();
        Float chainRes = param2.getChainRes();
        dataList.forEach(data->{
            //判断处理阈值
            Float br = data.getBr();
@@ -85,10 +86,10 @@
        float stdDevBr = MathUtil.getStandardDeviation(brList);
        float stdDevCr = MathUtil.getStandardDeviation(crList);
        float stdDevBs = MathUtil.getStandardDeviation(bsList);
        map.put("stdDevBv",stdDevBv*100+"%");
        map.put("stdDevBr",stdDevBr*100+"%");
        map.put("stdDevCr",stdDevCr*100+"%");
        map.put("stdDevBs",stdDevBs*100+"%");
        map.put("stdDevBv",stdDevBv*10000/100+"%");
        map.put("stdDevBr",stdDevBr*10000/100+"%");
        map.put("stdDevCr",stdDevCr*10000/100+"%");
        map.put("stdDevBs",stdDevBs*10000/100+"%");
        return map;
    }
@@ -110,11 +111,11 @@
        float sdBr = MathUtil.getStandardDeviation(dataList.stream().map(BattgroupData::getBr).collect(Collectors.toList()));
        float sdBv = MathUtil.getStandardDeviation(dataList.stream().map(BattgroupData::getBv).collect(Collectors.toList()));
        resBalanceRate.add(sdBaseBr*100+"%");
        resBalanceRate.add(sdBr*100+"%");
        resBalanceRate.add(sdBaseBr*10000/100+"%");
        resBalanceRate.add(sdBr*10000/100+"%");
        volBalanceRate.add(sdBaseBv*100+"%");
        volBalanceRate.add(sdBv*100+"%");
        volBalanceRate.add(sdBaseBv*10000/100+"%");
        volBalanceRate.add(sdBv*10000/100+"%");
        for (int i = 0; i < dataList.size(); i++) {
            BattgroupData data = dataList.get(i);
@@ -135,7 +136,7 @@
                    }
                }else {
                    float brFloat = BigDecimal.valueOf(br).subtract(BigDecimal.valueOf(baseBr)).divide(BigDecimal.valueOf(baseBr), 4, BigDecimal.ROUND_HALF_UP).floatValue();
                    resChangeRate.add(brFloat * 100 + "%");
                    resChangeRate.add(brFloat * 10000/100 + "%");
                }
                Float bv = data.getBv();
@@ -148,16 +149,16 @@
                    }
                }else {
                    float bvFloat = BigDecimal.valueOf(bv).subtract(BigDecimal.valueOf(baseBv)).divide(BigDecimal.valueOf(baseBv), 4, BigDecimal.ROUND_HALF_UP).floatValue();
                    volChangeRate.add(bvFloat * 100 + "%");
                    volChangeRate.add(bvFloat * 10000/100 + "%");
                }
            }
        }
        //将均一性值,也进行变化率计算
        float brFloat = BigDecimal.valueOf(sdBr).subtract(BigDecimal.valueOf(sdBaseBr)).divide(BigDecimal.valueOf(sdBaseBr),4, BigDecimal.ROUND_HALF_UP).floatValue();
        resChangeRate.add(brFloat*100+"%");
        resChangeRate.add(brFloat*10000/100+"%");
        float bvFloat = BigDecimal.valueOf(sdBv).subtract(BigDecimal.valueOf(sdBaseBv)).divide(BigDecimal.valueOf(sdBaseBv),4, BigDecimal.ROUND_HALF_UP).floatValue();
        volChangeRate.add(bvFloat*100+"%");
        volChangeRate.add(bvFloat*10000/100+"%");
        map.put("resChangeRate",resChangeRate);
        map.put("volChangeRate",volChangeRate);
@@ -167,9 +168,6 @@
    }
    public static void main(String[] args) {
        Float bv = 0.353f;
        Float baseBv = 0.354f;
        float bvFloat = BigDecimal.valueOf(bv).subtract(BigDecimal.valueOf(baseBv)).divide(BigDecimal.valueOf(baseBv),4,BigDecimal.ROUND_HALF_UP).floatValue();
        System.out.println((bvFloat * 100 + "%"));
    }
}