package com.whyc.service;
|
|
import com.whyc.dto.BattCapFactory;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.CallBack;
|
import com.whyc.pojo.db_batt.PowerInf;
|
import com.whyc.pojo.db_dis_batt.BattTestInf;
|
import com.whyc.pojo.db_dis_batt.BattTestInfData;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
@Service
|
public class BattTestInfDataService {
|
|
@Autowired
|
private JdbcSqlExecuteService jdbcSqlExecuteService;
|
|
@Autowired
|
private BattTestInfService battTestInfService;
|
|
@Autowired
|
private PowerInfService powerInfService;
|
|
public Response getMonTestData(int battGroupId) {
|
//查询最近一次的放电记录
|
BattTestInf battTestInf =battTestInfService.getDischargeLast(battGroupId);
|
PowerInf powerInf =powerInfService.getByBattGroupId(battGroupId);
|
Float monCapStd = powerInf.getMonCap();
|
Float monVolStd = powerInf.getMonVol();
|
List<BattTestInfData> list = new LinkedList<>();
|
if (battTestInf !=null){
|
Integer testRecordCount = battTestInf.getTestRecordCount();
|
Integer recordNum = battTestInf.getRecordNum();
|
String sql = "select * from db_dis_batt.batt_test_inf_"+battGroupId+" where test_record_count ="+testRecordCount + " and record_num ="+recordNum;
|
list = jdbcSqlExecuteService.executeQuery_call(sql, new CallBack<BattTestInfData>() {
|
@Override
|
public List<BattTestInfData> getResults(ResultSet rs) throws SQLException {
|
List<BattTestInfData> list = new LinkedList<>();
|
while (rs.next()) {
|
BattTestInfData data = new BattTestInfData();
|
data.setRecordTime(rs.getTimestamp("record_time"));
|
data.setTestStarttime(rs.getTimestamp("test_starttime"));
|
data.setTestTimelong(rs.getInt("test_timelong"));
|
data.setOnlineVol(rs.getFloat("online_vol"));
|
data.setGroupVol(rs.getFloat("group_vol"));
|
data.setTestCurr(rs.getFloat("test_curr"));
|
data.setTestCap(rs.getFloat("test_cap"));
|
data.setMonNum(rs.getInt("mon_num"));
|
data.setMonVol(rs.getFloat("mon_vol"));
|
|
list.add(data);
|
|
}
|
return list;
|
}
|
});
|
list.forEach(item->{
|
//小时率
|
int hourRate = BattCapFactory.GetHourRate(monCapStd, item.getTestCurr());
|
//容量计算
|
Double realCap = BattCapFactory.GetMonomerCap(monCapStd, hourRate, item.getTestCap(), item.getMonVol(), item.getMonVol(), monVolStd, BattCapFactory.CapType_Real);
|
item.setRealCap(realCap.floatValue());
|
});
|
|
}else{ //返回标称单体容量
|
Integer monNum = powerInf.getMonNum();
|
for (int i = 1; i < monNum+1; i++) {
|
BattTestInfData battTestInfData = new BattTestInfData();
|
battTestInfData.setMonNum(i);
|
battTestInfData.setRealCap(monCapStd);
|
list.add(battTestInfData);
|
}
|
}
|
return new Response().set(1, list);
|
}
|
}
|