whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/service/BattTestDataStopService.java
@@ -4,6 +4,7 @@
import com.whyc.mapper.BattTestDataStopMapper;
import com.whyc.pojo.BattTestDataStop;
import com.whyc.pojo.BatttestdataInf;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -17,11 +18,15 @@
    @Resource
    private BattTestDataStopMapper mapper;
    @Autowired
    private SubTablePageInfoService subService;
    /**计算落后信息
     * @param battTestDataInf*/
    public BatttestdataInf calcBehindInfo(BatttestdataInf battTestDataInf) {
        //筛选落后单体,计算总电压
        List<BattTestDataStop> stopList = mapper.getList(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        //List<BattTestDataStop> stopList = mapper.getList(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        List<BattTestDataStop> stopList = subService.getList(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        double realCap = 0;//实际容量
        double STDAH = 0;//标存容量
        int hourRate = 0;//小时率
@@ -35,8 +40,8 @@
        List<BattTestDataStop> listBehind = new ArrayList<>();//存放落后单体
        if (stopList != null && stopList.size() > 0) {
            for (int i = 0; i < stopList.size(); i++) {
                STDAH = battTestDataInf.getTestCurr();//标称电容
                MonomerVolType = battTestDataInf.getTestCap();//电压类型
                STDAH = battTestDataInf.getBattInf().getMonCapStd();//标称电容
                MonomerVolType = battTestDataInf.getBattInf().getMonVolStd();//电压类型
                current = stopList.get(i).getTestCurr();
                SumAH = stopList.get(i).getTestCap();
                MaxMonomerVol = battTestDataInf.getMaxMonvol();//最大电压
@@ -55,23 +60,27 @@
            }
        }
        //查询平均截止电压值
        Float avgVol = mapper.calcAvgVol(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        avgVol = BigDecimal.valueOf(avgVol).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
        //Float avgVol = mapper.calcAvgVol(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        Float avgVol = subService.calcAvgVol_stop(battTestDataInf.getBattGroupId(), battTestDataInf.getTestRecordCount());
        if(avgVol!=null){
            avgVol = BigDecimal.valueOf(avgVol).setScale(3, BigDecimal.ROUND_HALF_UP).floatValue();
            battTestDataInf.setAvgVol(avgVol);
        }
        //整理编号和电压
        if (stopList != null && stopList.size() > 0) {
        if (listBehind != null && listBehind.size() > 0) {
            //落后单体编号
            String numStrN = "";
            //落后单体电压
            String numStrV = "";
            //落后单体数
            Integer monSum = stopList.size();
            Integer monSum = listBehind.size();
            for (int i = 0; i < stopList.size(); i++) {
            for (int i = 0; i < listBehind.size(); i++) {
                numStrN += ",";
                numStrN += stopList.get(i).getMonNum().toString();
                numStrN += listBehind.get(i).getMonNum().toString();
                numStrV += ",";
                Float mon_vol = (float) Math.round(stopList.get(i).getMonVol() * 1000) / 1000;
                Float mon_vol = (float) Math.round(listBehind.get(i).getMonVol() * 1000) / 1000;
                numStrV += mon_vol.toString();
            }
@@ -81,8 +90,6 @@
            battTestDataInf.setCapBehindMonCode(numStrN);
            battTestDataInf.setCapBehindMonNum(monSum);
        }
        battTestDataInf.setAvgVol(avgVol);
        return battTestDataInf;
    }