whyclxw
2025-03-29 b2304cfc3342211dfd161de427879fa813a22a44
重庆bts4810定制修改负载电流问题
5个文件已修改
76 ■■■■■ 已修改文件
src/main/java/com/whyc/controller/Fbs9100SetparamController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/BattTestData.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/Fbs9100SetparamService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/PwrdevAcdcdataService.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/webSocket/RealTimeWebsocket.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/Fbs9100SetparamController.java
@@ -19,7 +19,7 @@
    private Fbs9100SetparamService service;
    @ApiOperation(value = "查询设备的参数", notes = "等10s响应")
    @GetMapping("/serchdevParam")
    @GetMapping("serchdevParam")
    public Response serchdevParam(@RequestParam int devId) {
        return service.serchdevParam(devId);
    }
src/main/java/com/whyc/dto/BattTestData.java
@@ -363,6 +363,7 @@
                     case 35 : stop_type = "切换装置通信异常"; break;
                     case 36 : stop_type = "切换装置故障"; break;
                     case 37 : stop_type = "切换装置接触器异常"; break;
                     case 38 : stop_type = "交流失电停止"; break;
                     case 100 : stop_type = "未知"; break;
                }
        return stop_type;
src/main/java/com/whyc/service/Fbs9100SetparamService.java
@@ -18,6 +18,7 @@
import com.whyc.pojo.Li9130SetparamPlan;
import com.whyc.util.ActionUtil;
import com.whyc.util.ThreadLocalUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -35,7 +36,8 @@
    private BattInfMapper binfMapper;
    @Resource
    private Fbs9100SetParamTempMapper tmpMapper;
    @Autowired
    private PwrdevAcdcdataService pwrdevAcdcservice;
    //查询设备的参数
    public Response serchdevParam(int devId) {
        sendCmdToFBS9100Dev(FBS9100_ComBase.CMD_GetDischargeParm, 0, devId);
@@ -69,6 +71,26 @@
        }
        Fbs9100Setparam setparam = mapper.serchbyDev_id(devId,battGroupNum-1);
        /*重庆bts4810(61850)
        目前客户的负载电流比较小,充放电参数设置时,小于0.1C10的,电流值要求能自动识别,
        采用一天内电流平均值来放电。负载电流大于0.1C10.用0.1C10放电客户要求自动填充,不要人为的录入.
        (100AH电池 负载电流小于10A 就用负载电流的平均值 大于10A 就用10A)
        */
        if (devId / 100000 == DeviceTypeDTO.DEVICE6185){
            //根据devId获取机房id
            QueryWrapper queryWrapper = new QueryWrapper();
            queryWrapper.eq("FBSDeviceId", devId);
            queryWrapper.last("limit 1");
            Battinf binf = binfMapper.selectOne(queryWrapper);
            if(binf!=null){
                //获取电源的负载电流
                float loadCurr=pwrdevAcdcservice.getBts4810LoadCurr(binf.getStationId(),binf.getMonCapStd());
                setparam.setLoadCurr(loadCurr);
            }else {
                setparam.setLoadCurr(0f);
            }
        }
        return new Response().setII(1, setparam, bl, bl == true ? "查询成功!" : "设置9100参数失败,请检查网络!");
    }
    //内阻测试
src/main/java/com/whyc/service/PwrdevAcdcdataService.java
@@ -3,16 +3,18 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.whyc.dto.Response;
import com.whyc.mapper.PwrdevAcdataMapper;
import com.whyc.mapper.PwrdevAcdcdataMapper;
import com.whyc.mapper.PwrdevDcdataMapper;
import com.whyc.mapper.*;
import com.whyc.pojo.PowerInf;
import com.whyc.pojo.PwrdevAcdata;
import com.whyc.pojo.PwrdevAcdcdata;
import com.whyc.pojo.PwrdevDcdata;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -27,6 +29,12 @@
    @Resource
    private PwrdevDcdataMapper dcdataMapper;
    @Resource
    private PowerInfMapper powerInfMapper;
    @Autowired
    private SubTablePageInfoService subService;
    //查询电源的ACDC信息
    @Transactional
@@ -147,4 +155,35 @@
        response.setData2(resultMap);
        return response;
    }
    /*重庆bts4810(61850)
    目前客户的负载电流比较小,充放电参数设置时,小于0.1C10的,电流值要求能自动识别,
    采用一天内电流平均值来放电。负载电流大于0.1C10.用0.1C10放电客户要求自动填充,不要人为的录入.
    (100AH电池 负载电流小于10A 就用负载电流的平均值 大于10A 就用10A)
    */
    public float getBts4810LoadCurr(String stationId,float monCapStd) {
        float loadCurr=0f;
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("stationid",stationId);
        wrapper.last("limit 1");
        PowerInf powerInf=powerInfMapper.selectOne(wrapper);
        if(powerInf!=null){
            int powerId=powerInf.getPowerDeviceId();
            QueryWrapper wrapper1=new QueryWrapper();
            wrapper1.eq("PowerDeviceId",powerId);
            wrapper1.last("limit 1");
            PwrdevAcdcdata acdcdata=mapper.selectOne(wrapper1);
            if(acdcdata!=null){
                loadCurr=acdcdata.getLoaderCurr();
                if (loadCurr<(0.1*monCapStd)) {
                    String tableName="db_pwrdev_data_history_gw"+"."+"tb_pwrdev_historydata_gw_"+powerId;
                    tableName=tableName+"_"+ ActionUtil.sdfwithOutday.format(new Date());
                    Float avgCurr=subService.getAvgLoadCurr(powerId,tableName);
                    loadCurr=avgCurr;
                }else{
                    loadCurr=0.1f*monCapStd;
                }
            }
        }
        return loadCurr;
    }
}
src/main/java/com/whyc/webSocket/RealTimeWebsocket.java
@@ -635,10 +635,12 @@
        if(realTimePar.getStationId()!=null){
            //根据机房id获取机房下电源信息
            PowerInf pinf=pinfService.getPwrDevIdByStationId(realTimePar.getStationId());
            //查询电源的ACDC信息
            if(pinf!=null){
                //查询电源的ACDC信息(重庆bts4810(61850)需要用tb_pwrdev_acdcdata的实时负载电流和三相交流电压)
            Response pwrdevAcdcRes=pwrdevAcdcservice.getDataByDevId(pinf.getPowerDeviceId());
            res.put("pwrdevAcdc",pwrdevAcdcRes);
        }
        }
        return new Response().set(1, res);
    }