package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.whyc.dto.Response;
|
import com.whyc.mapper.AbeTestDataInfMapper;
|
import com.whyc.mapper.CallBack;
|
import com.whyc.pojo.db_abe_testdata.AbeTestData;
|
import com.whyc.pojo.db_abe_testdata.AbeTestDataInf;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.stream.Collectors;
|
|
@Service
|
public class AbeTestDataInfService {
|
|
@Resource
|
private AbeTestDataInfMapper mapper;
|
|
@Autowired
|
private JdbcSqlExecuteService jdbcSqlExecuteService;
|
|
public Response<PageInfo<AbeTestDataInf>> getPage(int pageNum, int pageSize) {
|
PageHelper.startPage(pageNum,pageSize);
|
QueryWrapper<AbeTestDataInf> query = Wrappers.query();
|
query.orderByDesc("record_time");
|
List<AbeTestDataInf> list = mapper.selectList(query);
|
//对list进行monId分类,来进行单体表查询
|
Map<Integer, List<AbeTestDataInf>> monIdMap =
|
list.stream().collect(Collectors.groupingBy(AbeTestDataInf::getMonId));
|
for (Integer monId : monIdMap.keySet()) {
|
List<AbeTestDataInf> dataList = monIdMap.get(monId);
|
List<Integer> testRecordCountList = dataList.stream().map(AbeTestDataInf::getTestRecordCount).collect(Collectors.toList());
|
List<AbeTestData> monDataList = getList(monId, testRecordCountList);
|
for (AbeTestDataInf data : dataList) {
|
for (AbeTestData monData : monDataList) {
|
if (data.getTestRecordCount().equals(monData.getTestRecordCount())) {
|
data.setMonVol(monData.getMonVol());
|
data.setMonTmp(monData.getMonTmp());
|
data.setMonRes(monData.getMonRes());
|
}
|
}
|
}
|
|
}
|
//分页
|
PageInfo<AbeTestDataInf> pageInfo = new PageInfo(list);
|
return new Response<PageInfo<AbeTestDataInf>>().set(1,pageInfo);
|
|
}
|
|
private List<AbeTestData> getList(int monId,List<Integer> testRecordCountList) {
|
String testRecordCount = testRecordCountList.stream().map(String::valueOf).collect(Collectors.joining(",","(",")"));
|
String sql = "select test_record_count,mon_vol,mon_tmp,mon_res from db_abe_testdata.tb_abe_testdata_"+monId +" where test_record_count in "+testRecordCount;
|
List<AbeTestData> monDatalist = jdbcSqlExecuteService.executeQuery_call(sql, new CallBack<AbeTestData>() {
|
|
@Override
|
public List<AbeTestData> getResults(ResultSet rs) throws SQLException {
|
LinkedList<AbeTestData> temp = new LinkedList<>();
|
while (rs.next()) {
|
AbeTestData abeTestData = new AbeTestData();
|
abeTestData.setTestRecordCount(rs.getInt("test_record_count"));
|
abeTestData.setMonVol(rs.getFloat("mon_vol"));
|
abeTestData.setMonTmp(rs.getFloat("mon_tmp"));
|
abeTestData.setMonRes(rs.getFloat("mon_res"));
|
temp.add(abeTestData);
|
}
|
return temp;
|
}
|
});
|
return monDatalist;
|
|
}
|
}
|