whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/service/PwrdevAcdcdataService.java
@@ -3,15 +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,16 +30,24 @@
    @Resource
    private PwrdevDcdataMapper dcdataMapper;
    @Resource
    private PowerInfMapper powerInfMapper;
    @Autowired
    private SubTablePageInfoService subService;
    //查询电源的ACDC信息
    @Transactional
    public Response getDataByDevId(int powerDeviceId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("PowerDeviceId",powerDeviceId);
        List list=mapper.selectList(wrapper);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().set(1,pageInfo);
        return new Response().setII(1,list.size()>0?true:false,pageInfo,"");
    }
    //获取配电柜的实时数据
    @Transactional
    public Response getPowerInfoById(int powerDeviceId) {
        Map<String, Object> resultMap = new HashMap<>();
        PwrdevAcdata ac=acdataMapper.getInfo(powerDeviceId);
@@ -86,7 +97,7 @@
        resultMap.put("dc", dc);
        resultMap.put("acdc", acdc);
        return new Response().setII(1,flag,resultMap,flag>0?"通讯正常":"通讯不正常");
        return new Response().setII(1,flag>0?true:false,resultMap,flag>0?"通讯正常":"通讯不正常");
    }
    //获取配电柜的实时数据-ws接口专用
@@ -144,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;
    }
}