whyclxw
2025-06-12 1231655a352410f9086895efaff185fb6f94c647
蓄电池组1.2.5,1.2.6
5个文件已修改
152 ■■■■ 已修改文件
src/main/java/com/whyc/controller/StatisticController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BattInfMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BattInfService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BatttestdataInfService.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattInfMapper.xml 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/StatisticController.java
@@ -74,6 +74,18 @@
        stic.setUid(uinf.getId());
        return battTinfService.getDischr5Statistic(stic);
    }
    @ApiOperation(value = "本年度已放电数量统计右侧图表(1.2.5)")
    @PostMapping("getDischr5Chart")
    public Response getDischr5Chart(){
        User uinf= ActionUtil.getUser();
        return battTinfService.getDischr5Chart(uinf.getId());
    }
    @ApiOperation(value = "本年度未放电数量统计右侧图表(1.2.6)")
    @PostMapping("getDischr6Chart")
    public Response getDischr6Chart(){
        User uinf= ActionUtil.getUser();
        return battTinfService.getDischr6Chart(uinf.getId());
    }
    @ApiOperation(value = "本年度未放电数量统计(1.2.6)")
    @PostMapping("getDischr6Statistic")
src/main/java/com/whyc/mapper/BattInfMapper.java
@@ -51,4 +51,6 @@
    List<BattInf> getDischr6Statistic(@Param("stic") DisChargeStic stic);
    //电池组电池性能统计(未放电,优秀,劣化,损坏)统计(1.2.8/9/10)
    List<BattInf> getPerformanceStatistic(@Param("stic") PerformanceStic stic);
    //本年度已/未放电数量统计右侧图表(1.2.5)
    List<BattInf> getDischrChart(@Param("uid") Integer uid);
}
src/main/java/com/whyc/service/BattInfService.java
@@ -469,4 +469,8 @@
    public List<BattInf> getPerformanceStatistic(PerformanceStic stic) {
        return mapper.getPerformanceStatistic(stic);
    }
    //本年度已/未放电数量统计右侧图表(1.2.5)
    public List<BattInf> getDischrChart(Integer uid) {
        return mapper.getDischrChart(uid);
    }
}
src/main/java/com/whyc/service/BatttestdataInfService.java
@@ -614,9 +614,6 @@
    }
    //本年度已放电数量统计(1.2.5)
    public Response getDischr5Statistic(DisChargeStic stic) {
        Map<String,  Object> map=new HashMap<>();
        //查询出所有的班组并赋予初始值
        setBanZuDefault(map);
        //获取核容优劣,损坏参数
        List<AppParam> paramList=appParamService.getHrParam();
        Float badValue=0f;
@@ -657,20 +654,9 @@
                res.setStopReason("");
                res.setCapperformance(Capperformance.getValue(Capperformance.BATTSTATE_4.getStateId()));
                res.setDisChargeType(2);
                if(!groupName.equals("none")){
                    BanZu bz= (BanZu) map.get(groupName);
                    int nochargeNum=bz.getNochargeNum();
                    bz.setNochargeNum(nochargeNum+1);
                    map.put(groupName,bz);
                }
                continue;
            }
            if(!groupName.equals("none")){
                BanZu bz= (BanZu) map.get(groupName);
                int dischargeNum=bz.getDischargeNum();
                bz.setDischargeNum(dischargeNum+1);
                map.put(groupName,bz);
            }
            res.setTestStartTime(tinf.getTestStarttime());
            res.setTestTimelong(tinf.getTestTimelong());
            res.setTestCap(tinf.getTestCap());
@@ -698,8 +684,81 @@
            }
        }
        PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
        return new Response().setIII(1,reslist.size()>0,pageInfo,map,"本年度已放电数量统计");
        return new Response().setII(1,reslist.size()>0,pageInfo,"本年度已放电数量统计");
    }//本年度已放电数量统计右侧图表(1.2.5)
    public Response getDischr5Chart(Integer uid) {
        //班组
        Map<String,  Object> bzmap=new HashMap<>();
        //性能
        Map<Integer,  Integer> xnmap=new HashMap<>();
        xnmap.put(1,0);
        xnmap.put(2,0);
        xnmap.put(3,0);
        xnmap.put(4,0);
        //查询出所有的班组并赋予初始值
        setBanZuDefault(bzmap);
        //获取核容优劣,损坏参数
        List<AppParam> paramList=appParamService.getHrParam();
        Float badValue=0f;
        Float damageValue=0f;
        if(paramList!=null){
            for (AppParam param:paramList) {
                if(param.getParamNamePsx().equals("batt_mon_deteriorate_val")){
                    badValue=param.getParamValue();
    }
                if(param.getParamNamePsx().equals("batt_mon_damage_val")){
                    damageValue=param.getParamValue();
                }
            }
        }
        //1查询符合条件的电池组
        List<BattInf> binfList=battInfService.getDischrChart(uid);
        if(binfList==null||binfList.size()==0){
            return new Response().set(1,false,"当前用户未管理满足条件的电池组");
        }
        for (BattInf binf:binfList) {
            //查询电池组所在的班组
            String  groupName=bjService.getGroupName(binf.getPowerId());
            //2.获取电池组在给定时间段的放电记录(指定时间段的标准核容放电)
            BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),null,null);
            if(tinf==null){
                int value=xnmap.get(Capperformance.BATTSTATE_4.getStateId());
                xnmap.put(Capperformance.BATTSTATE_4.getStateId(),value+1);
                if(!groupName.equals("none")){
                    BanZu bz= (BanZu) bzmap.get(groupName);
                    int nochargeNum=bz.getNochargeNum();
                    bz.setNochargeNum(nochargeNum+1);
                    bzmap.put(groupName,bz);
                }
                continue;
            }
            if(!groupName.equals("none")){
                BanZu bz= (BanZu) bzmap.get(groupName);
                int dischargeNum=bz.getDischargeNum();
                bz.setDischargeNum(dischargeNum+1);
                bzmap.put(groupName,bz);
            }
            Float moncapStd=binf.getMoncapstd();
            int hourRate = BattCapFactory.GetHourRate(tinf.getTestCap(), tinf.getTestCurr());
            Float grouprealCap = (float) BattCapFactory.GetMonomerCap(tinf.getTestCap(), hourRate, tinf.getTestCap(), tinf.getMaxMonvol(), tinf.getMinMonvol(), tinf.getGroupVol(), BattCapFactory.CapType_Real);
            if(grouprealCap>=moncapStd*badValue){
                int value=xnmap.get(Capperformance.BATTSTATE_1.getStateId());
                xnmap.put(Capperformance.BATTSTATE_1.getStateId(),value+1);
            }
            if(grouprealCap<=moncapStd*damageValue){
                int value=xnmap.get(Capperformance.BATTSTATE_3.getStateId());
                xnmap.put(Capperformance.BATTSTATE_3.getStateId(),value+1);
            }
            if((grouprealCap>moncapStd*damageValue)&&(grouprealCap<moncapStd*badValue)){
                int value=xnmap.get(Capperformance.BATTSTATE_2.getStateId());
                xnmap.put(Capperformance.BATTSTATE_2.getStateId(),value+1);
            }
        }
        return new Response().setIII(1,true,bzmap,xnmap,"本年度已放电数量统计");
    }
    //查询出所有的班组并赋予初始值
    private void setBanZuDefault(Map<String, Object> map) {
        List<Baojigroup> banZuList=bjService.getGroupList();
@@ -715,10 +774,6 @@
    //本年度未放电数量统计(1.2.6)
    public Response getDischr6Statistic(DisChargeStic stic) {
        Map<String,  Object> map=new HashMap<>();
        //查询出所有的班组并赋予初始值
        setBanZuDefault(map);
        //1查询符合条件的电池组
        List<BattInf> binfList=battInfService.getDischr6Statistic(stic);
        if(binfList==null||binfList.size()==0){
@@ -750,6 +805,25 @@
                    reslist.add(res);
                }
            }
        }
        PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
        return new Response().setII(1,reslist.size()>0,pageInfo,"本年度未放电数量统计");
    }
    //本年度未放电数量统计右侧图表(1.2.6)
    public Response getDischr6Chart(Integer uid) {
        Map<String,  Object> map=new HashMap<>();
        //查询出所有的班组并赋予初始值
        setBanZuDefault(map);
        //1查询符合条件的电池组
        List<BattInf> binfList=battInfService.getDischrChart(uid);
        if(binfList==null||binfList.size()==0){
            return new Response().set(1,false,"当前用户未管理满足条件的电池组");
        }
        for (BattInf binf:binfList) {
            //查询电池组所在的班组
            String  groupName=bjService.getGroupName(binf.getPowerId());
            //2.获取电池组在给定时间段的放电记录(指定时间段的标准核容放电)
            BatttestdataInf tinf =getLastStandardTestDataByTime(binf.getBattgroupId(),null,null);
            if(tinf==null){
                if(!groupName.equals("none")){
                    BanZu bz= (BanZu) map.get(groupName);
@@ -766,8 +840,7 @@
                map.put(groupName,bz);
            }
        }
        PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
        return new Response().setIII(1,reslist.size()>0,pageInfo,map,"本年度未放电数量统计");
        return new Response().setII(1,true,map,"本年度已放电数量统计右侧图表(1.2.5)");
    }
    //2.获取电池组未放电记录(指定时间段的标准核容放电)
    private void getNoDischargeData(Integer battgroupId, Date testStartTime, Date testEndTime, List<Integer> typeList, SticDischarge6Res res) {
@@ -865,4 +938,5 @@
        PageInfo pageInfo=PageInfoUtils.list2PageInfo(reslist, stic.getPageNum(), stic.getPageSize());
        return new Response().setII(1,reslist.size()>0,pageInfo,"电池组电池性能统计(未放电,优秀,劣化,损坏)统计(1.2.8/9/10)");
    }
}
src/main/resources/mapper/BattInfMapper.xml
@@ -402,4 +402,20 @@
            order by tb_batt_inf.dev_id asc,battgroup_id asc
        </where>
    </select>
    <select id="getDischrChart" resultType="com.whyc.pojo.db_station.BattInf">
        select distinct tb_batt_inf.*
        ,tb_station_inf.station_type,tb_station_inf.station_name,tb_station_inf.provice,tb_station_inf.city,tb_station_inf.country,tb_station_inf.full_name
        from db_station.tb_batt_inf,db_station.tb_station_inf
        <where>
            tb_batt_inf.station_id=tb_station_inf.station_id
            <if test="uid>100">
                and tb_batt_inf.station_id in(
                select distinct station_id from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
                where   tb_baojigroup_power.baoji_group_id=tb_baojigroup_usr.baoji_group_id
                and tb_baojigroup_usr.uid=#{uid}
                )
            </if>
            order by tb_batt_inf.dev_id asc,battgroup_id asc
        </where>
    </select>
</mapper>