Merge remote-tracking branch 'origin/station' into station

# Conflicts:
#	jeecg-module-spectrum-analysis/src/main/java/org/jeecg/modules/service/impl/SpectrumAnalysisServiceImpl.java
This commit is contained in:
nieziyan 2023-10-27 19:21:54 +08:00
commit 7f31dd0472
2 changed files with 958 additions and 924 deletions

View File

@ -13,9 +13,8 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.cache.Cache;
import org.apache.commons.io.Charsets;
import com.google.common.collect.Lists;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.shiro.SecurityUtils;
@ -45,6 +44,7 @@ import org.jeecg.modules.native_jni.struct.BgAnalyseResult;
import org.jeecg.modules.native_jni.struct.EnergySpectrumStruct;
import org.jeecg.modules.service.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.thymeleaf.TemplateEngine;
@ -56,10 +56,12 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.sql.*;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.Date;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@ -110,6 +112,10 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
@Autowired
private IGardsHistogramSpectrumService histogramService;
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public Result getDBSearchList(HttpServletRequest request, boolean AllUsers, String dbName, String[] menuTypes) {
@ -144,7 +150,58 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
result.error500("The database type does not exist");
return result;
}
List<GardsSampleDataSpectrum> sampleData = spectrumAnalysisMapper.getDBSearchList(dbName, stationTypes, userStations, AllUsers);
StringBuilder sbSql = new StringBuilder();
sbSql.append("SELECT\n" +
" DISTINCT\n" +
" cfg_stations.station_code stationName,\n" +
" cfg_detectors.detector_code detectorsName\n" +
" FROM\n" +
" CONFIGURATION.GARDS_STATIONS cfg_stations,\n" +
" CONFIGURATION.GARDS_DETECTORS cfg_detectors,\n" +
" ORIGINAL.GARDS_SAMPLE_DATA org_samples,\n" +
" (SELECT analyses.sample_id FROM "+dbName+" analyses) analyses_sample_ids\n" +
" where\n" +
" org_samples.sample_id=analyses_sample_ids.sample_id\n" +
" AND org_samples.station_id=cfg_stations.station_id\n" +
" AND org_samples.detector_id=cfg_detectors.detector_id\n" +
" AND cfg_stations.type in (");
for (String f : stationTypes) {
sbSql.append("'").append(f).append("',");
}
sbSql = new StringBuilder(sbSql.substring(0, sbSql.length()-1));
sbSql.append(") ");
if (userStations.size() > 0) {
sbSql.append("and org_samples.station_id in (");
for (String f : userStations) {
sbSql.append("'").append(f).append("',");
}
sbSql = new StringBuilder(sbSql.substring(0, sbSql.length()-1));
sbSql.append(") ");
}
System.out.println(sbSql.toString());
List<GardsSampleDataSpectrum> sampleData = Lists.newArrayList();
try (Connection connection = jdbcTemplate.getDataSource().getConnection();
PreparedStatement statement = connection.prepareStatement(sbSql.toString());
ResultSet resultSet = statement.executeQuery()) {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
while (resultSet.next()) {
GardsSampleDataSpectrum sp = new GardsSampleDataSpectrum();
sp.setStationName(resultSet.getObject(1).toString());
sp.setDetectorsName(resultSet.getObject(2).toString());
sampleData.add(sp);
for (int i = 1; i <= columnCount; i++) {
Object value = resultSet.getObject(i);
// 处理结果集的每一列数据
}
}
} catch (SQLException e) {
e.printStackTrace();
}
// List<GardsSampleDataSpectrum> sampleData = spectrumAnalysisMapper.getDBSearchList(dbName, stationTypes, userStations, AllUsers);
//获取台站编码
List<String> stationCodes = new LinkedList<>();
List<String> detectorCodes = new LinkedList<>();
@ -207,9 +264,7 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
//声明分页page
Page<GardsSampleDataSpectrum> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
Page<GardsSampleDataSpectrum> sampleDataPage = spectrumAnalysisMapper.getDBSpectrumList(page, gardsSampleData, dbName, stationTypes, CollectStopB, AcqStartB, startTime, endTime, userStations, AllUsers);
sampleDataPage.getRecords().stream().forEach(item -> {
item.setDbName(tempDBName);
});
sampleDataPage.getRecords().stream().forEach(item->{item.setDbName(tempDBName);});
result.setSuccess(true);
result.setResult(sampleDataPage);
return result;
@ -4343,14 +4398,11 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
analyze.put("gasRoi", roiChannels(roiChannelsDtosG));
analyze.putAll(roiResults(roiResultsDtos));
analyze.put("resultSummary", xeResults(xeResultsDtos));
PrintWriter writer = null;
try {
// 使数据适配导出模板
String pathPrefix = "excelTemplate/";
String path = pathPrefix + SAVETOTXT.getName();
InputStream inputStream = ClassUtil.classPathStream(path);
List<String> lines = IOUtils.readLines(inputStream, "UTF-8");
String template = ClassUtil.classPath(path);
List<String> lines = FileUtil.readUtf8Lines(template);
// 正则表达式匹配${}中的内容
String regex = "\\$\\{([^}]+)}";
List<String> newLines = new ArrayList<>();
@ -4378,7 +4430,8 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
if (!CollUtil.contains(skip, line))
newLines.add(line);
}
PrintWriter writer = null;
try {
String export = "SaveToTxt.txt";
writer = ExportUtil.streamWriter(response, export);
for (String newLine : newLines) {
@ -4392,26 +4445,6 @@ public class SpectrumAnalysisServiceImpl implements ISpectrumAnalysisService {
}
}
@Override
public void viewAutomaticAnalysisLog(Integer sampleId, HttpServletResponse response) {
try {
String path = "C:\\Users\\a\\Desktop\\demo.log";
InputStream inputStream = new FileInputStream(new File(path));
OutputStream outputStream = ExportUtil.stream(response, "demo.log");
// 缓冲区大小
byte[] buffer = new byte[4096];
int bytesRead;
// 将文件输出流写入到输出流中
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private List<String> calibrations(GardsCalibrationSpectrum gammaCalibrationCE,GardsCalibrationSpectrum gammaCalibrationEC, GardsCalibrationSpectrum betaCalibrationCE, GardsCalibrationSpectrum betaCalibrationEC) {
int min = 79;
String space = StrUtil.SPACE;

View File

@ -16,3 +16,4 @@ spring:
import:
- optional:nacos:armd.yaml
- optional:nacos:armd-@profile.name@.yaml
- optional:nacos:armd-analysis-@profile.name@.yaml