package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.extension.api.R;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.whyc.dto.BattCapFactory;
|
import com.whyc.dto.BattTestData;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.BattAttentionMapper;
|
import com.whyc.mapper.BattInfMapper;
|
import com.whyc.mapper.BattTestDataStopMapper;
|
import com.whyc.mapper.CommonMapper;
|
import com.whyc.pojo.BattAttention;
|
import com.whyc.pojo.BattTestDataStop;
|
import com.whyc.pojo.Battinf;
|
import com.whyc.util.ActionUtil;
|
import com.whyc.util.CommonUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
@Service
|
public class BattAttentionService {
|
|
@Resource
|
private BattAttentionMapper mapper;
|
@Resource
|
private BattTestDataStopMapper stopMapper;
|
|
@Resource
|
private CommonMapper commonMapper;
|
|
|
public Response searchByCondition(int pageNum,int pageSize,Battinf battinf,int userId){
|
PageHelper.startPage(pageNum,pageSize);
|
List<Battinf> list = mapper.getBattInfByGroup(battinf,userId);
|
for (int i = 0; i < list.size(); i++) {
|
Battinf binf = list.get(i);
|
//最近一笔的实际容量
|
//增加校验,被关注的电池组 是否核容过(检查是否存在db_batt_testdata.tb_batttestdatastop_${battGroupId}表)
|
String tableName = commonMapper.existTable("db_batt_testdata", "tb_batttestdatastop_"+binf.getBattGroupId());
|
double realCap;
|
if(tableName !=null) {
|
realCap = getRealCapByMonNum(binf);
|
}else{
|
realCap = -1;
|
}
|
binf.setMonSerStd((float) realCap);//实际容量
|
}
|
PageInfo<Battinf> pageInfo = new PageInfo<>(list);
|
return new Response().set(1,pageInfo,"查询成功");
|
}
|
|
public double getRealCapByMonNum(Battinf binf){
|
BattTestDataStop battTestDataStop = stopMapper.findByMonNum(binf.getBattGroupId(),binf.getMonNum());
|
double realCap=0f;//实际容量
|
double STDAH=0;//标存容量
|
int hourRate=0;//小时率
|
double current=0;//当前电流
|
double SumAH=0;//测试容量
|
double MaxMonomerVol=0;//最大电压
|
double MonomerVol=0; //最小电压
|
double MonomerVolType=0;//电池电压类型(标存电压)
|
int flag=1;//电池单体告警标识
|
STDAH=binf.getMonCapStd();
|
MonomerVolType=binf.getMonVolStd();
|
if (battTestDataStop!=null){
|
current=battTestDataStop.getTestCurr();
|
SumAH=battTestDataStop.getTestCap();
|
MaxMonomerVol=battTestDataStop.getGroupVol();
|
MonomerVol=battTestDataStop.getMonVol();
|
hourRate= BattCapFactory.GetHourRate(STDAH, current);
|
if(MonomerVol>binf.getMonVolStd()* BattTestData.test_stop){
|
realCap=BattCapFactory.GetMonomerCap(STDAH, hourRate, SumAH, MaxMonomerVol, MonomerVol, MonomerVolType, BattCapFactory.CapType_Real);
|
}else{
|
battTestDataStop.setMonVol(binf.getMonVolStd()*BattTestData.test_stop);
|
Float cap = stopMapper.getRealCap(battTestDataStop);
|
if (cap!=null&&cap!=0){
|
realCap=cap;
|
}
|
}
|
}
|
return realCap;
|
}
|
|
public Response deleteByEntity(BattAttention batt){
|
QueryWrapper<BattAttention> queryWrapper = new QueryWrapper<>();
|
queryWrapper.eq("battgroupid",batt.getBattGroupId());
|
queryWrapper.eq("monnum",batt.getMonNum());
|
queryWrapper.eq("uid",batt.getUId());
|
mapper.delete(queryWrapper);
|
return new Response().set(1,true,"删除成功");
|
}
|
|
public Response judgeInOrNot(int battGroupId,int monNum,int uId){
|
QueryWrapper<BattAttention> queryWrapper = new QueryWrapper<>();
|
queryWrapper.select("num");
|
queryWrapper.eq("battgroupid",battGroupId);
|
queryWrapper.eq("monNum",monNum);
|
queryWrapper.eq("uid",uId);
|
int count = mapper.selectCount(queryWrapper);
|
if (count>0){
|
return new Response().set(1,true,"该信息已经被关注");
|
}else{
|
return new Response().set(1,false,"该信息未被关注");
|
}
|
|
}
|
//添加关注单体
|
public Response add(BattAttention attention) {
|
attention.setUId(ActionUtil.getUser().getUId().intValue());
|
int flag=mapper.add(attention);
|
return new Response().set(1,flag>0?true:false);
|
}
|
}
|