fix:1.RRR公式修正 2.TableInfo重构

This commit is contained in:
nieziyan 2023-11-14 18:58:49 +08:00
parent 329e6859b9
commit a970060ad5
15 changed files with 741 additions and 227 deletions

View File

@ -0,0 +1,41 @@
package org.jeecg.common.constant;
public interface DBSQL {
/* PostgreSQL */
String DBNAMES_PG = "SELECT datname FROM pg_database WHERE datistemplate = false";
String DBINFO_PG = " SELECT relname AS tableName, 0 AS numRow, 0.0 AS used," +
"ROUND( pg_relation_size ( relid ) / ( 1024 * 1024 ), 2 ) AS dataSize," +
"ROUND( pg_indexes_size ( relid ) / ( 1024 * 1024 ), 2 ) AS indexSize " +
"FROM pg_stat_user_tables WHERE schemaname = 'public'";
String DBROWNUM_PG = "SELECT relname AS tableName, reltuples AS numRow," +
"0.0 AS used, 0.0 AS dataSize, 0.0 AS indexSize " +
"FROM pg_class WHERE relkind = 'r' AND relname NOT LIKE 'pg_%' AND relname NOT LIKE 'sql_%'";
/* Oracle */
String DBNAMES_OR = "SELECT username FROM all_users";
String DBINFO_OR = "SELECT a.table_name AS tableName, a.num_rows AS numRow," +
"COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS dataSize, " +
"COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS indexSize, " +
"COALESCE(ROUND((d.bytes / d.max_size) * 100, 3), 0) AS used " +
"FROM all_tables a LEFT JOIN dba_segments d " +
"ON a.owner = d.owner AND a.table_name = d.segment_name " +
"AND d.segment_type = 'TABLE' WHERE a.owner = '%s' " +
"ORDER BY a.table_name";
String DBINDEX_OR = "SELECT a.table_name AS tableName, a.num_rows AS numRow," +
"COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS dataSize, " +
"COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS indexSize, " +
"COALESCE(ROUND((d.bytes / d.max_size) * 100, 3), 0) AS used " +
"FROM all_tables a LEFT JOIN dba_segments d " +
"ON a.owner = d.owner AND a.table_name = d.segment_name " +
"AND d.segment_type = 'INDEX' WHERE a.owner = '%s' " +
"ORDER BY a.table_name";
/* MySQL */
String DBNAMES_MY = "SHOW DATABASES";
String DBINFO_MY = "SELECT TABLE_NAME AS tableName, TABLE_ROWS AS numRow," +
"round((data_length / 1024 / 1024), 2) AS dataSize, " +
"round((index_length / 1024 / 1024), 2) AS indexSize, " +
"0.0 AS used " +
"FROM information_schema.tables WHERE table_schema = '%s' ORDER BY TABLE_NAME";
}

View File

@ -0,0 +1,23 @@
package org.jeecg.common.constant.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Getter
@AllArgsConstructor
public enum DbType {
MYSQL55("1", "MySQL5.5"), ORACLE("2", "Oracle"),
POSTGRESQL("6","PostgreSQL"), MYSQL57("4", "MySQL5.7+");
private String type;
private String text;
public static DbType typeOf(String type){
for (DbType dbType : DbType.values()) {
if (dbType.getType().equals(type))
return dbType;
}
return null;
}
}

View File

@ -0,0 +1,89 @@
package org.jeecg.common.util;
import cn.hutool.core.util.ObjectUtil;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
import java.io.FileReader;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
public class JDBCUtil {
public static JdbcTemplate template(String url, String driver, String user, String pass){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driver);
dataSource.setUsername(user);
dataSource.setPassword(pass);
return new JdbcTemplate(dataSource);
}
public static JdbcTemplate templateMy(String ip, String port, String db, String user, String pass){
return new JdbcTemplate(dataSourceMy(ip, port, db, user, pass));
}
public static JdbcTemplate templateMy(String ip, String db, String user, String pass){
return templateMy(ip, "3306", db, user, pass);
}
public static JdbcTemplate templateOr(String ip, String port, String db, String user, String pass){
return new JdbcTemplate(dataSourceOr(ip, port, db, user, pass));
}
public static JdbcTemplate templateOr(String ip, String db, String user, String pass){
return templateOr(ip, "1521", db, user, pass);
}
public static JdbcTemplate templatePg(String ip, String port, String db, String user, String pass){
return new JdbcTemplate(dataSourcePg(ip, port, db, user, pass));
}
public static JdbcTemplate templatePg(String ip, String db, String user, String pass){
return templatePg(ip, "5432", db, user, pass);
}
private static DataSource dataSourceMy(String ip, String port, String db, String user, String pass) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(MySQLUrl(ip, port, db));
dataSource.setUsername(user);
dataSource.setPassword(pass);
return dataSource;
}
private static DataSource dataSourceOr(String ip, String port, String db, String user, String pass) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(OracleUrl(ip, port, db));
dataSource.setUsername(user);
dataSource.setPassword(pass);
return dataSource;
}
private static DataSource dataSourcePg(String ip, String port, String db, String user, String pass) {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setUrl(PostgreUrl(ip, port, db));
dataSource.setUsername(user);
dataSource.setPassword(pass);
return dataSource;
}
private static String MySQLUrl(String ip, String port, String db){
return "jdbc:mysql://" + ip + ":" + port + "/" + db +
"?characterEncoding=UTF-8&useUnicode=true&" +
"useSSL=false&tinyInt1isBit=false&" +
"allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai";
}
private static String OracleUrl(String ip, String port, String db){
return "jdbc:oracle:thin:@" + ip + ":" + port + ":" + db;
}
private static String PostgreUrl(String ip, String port, String db){
return "jdbc:postgresql://" + ip + ":" + port + "/" + db +
"?stringtype=unspecified";
}
}

View File

@ -11,6 +11,8 @@ public class DSSwitcher {
private final static String PGSQL = "master";
private final static String MYSQL = "mysql";
public static void switchToOracle(){
DynamicDataSourceContextHolder.push(ORACLE);
}
@ -19,6 +21,10 @@ public class DSSwitcher {
DynamicDataSourceContextHolder.push(PGSQL);
}
public static void switchToMySql(){
DynamicDataSourceContextHolder.push(MYSQL);
}
public static void clear(){
DynamicDataSourceContextHolder.clear();
}

View File

@ -33,35 +33,32 @@ public class SysDatabase implements Serializable {
@TableField(value = "status")
private Integer status;
/**
* ip地址
*/
@TableField(value = "ip_address")
private String ipAddress;
/**
* 端口
*/
@TableField(value = "port")
private String port;
/**
* 用户名称
*/
@TableField(value = "username")
private String username;
@TableField("db_username")
private String dbUsername;
/**
* 密码
*/
@TableField(value = "password")
private String password;
@TableField("db_password")
private String dbPassword;
/**
* 数据库类型
*/
@TableField(value = "type")
private String type;
@TableField("db_type")
private String dbType;
@TableField("db_url")
private String dbUrl;
@TableField("db_driver")
private String dbDriver;
@TableField("db_name")
private String dbName;
/**
* 创建时间

View File

@ -248,6 +248,7 @@
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Net count</td>
<td width="453" height="40">Lc</td>
</tr>
<tr th:each="roiResult : ${roiResults}">
<td width="463" height="40" th:text="${roiResult.roi}"></td>

View File

@ -0,0 +1,322 @@
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<h4 align="center">CNL06 GENERATED REPORT
<br>REVIEWED RADIONUCLIDE REPORT
<br>(Noble Gas Version)
<br th:text="'Creation Date ' + ${now}">
<br>
</h4>
<table border="1" align="center" bordercolor="black" cellspacing="0">
<tr>
<td colspan="5" height="40">#FILE INFORMATION</td>
</tr>
<tr>
<td width="463" height="40"> SampleMeasID:</td>
<td width="453" height="40" colspan="4" th:text="${measurement_id}"></td>
</tr>
<tr>
<td width="463" height="40"> GASBKMeasID:</td>
<td width="453" height="40" colspan="4" th:text="${gas_bk_measurement_id}"></td>
</tr>
<tr>
<td width="463" height="40"> SRID:</td>
<td width="453" height="40" colspan="4" th:text="${sample_ref_id}"></td>
</tr>
<tr>
<td width="463" height="40"> Detector Type:</td>
<td width="453" height="40" colspan="4">3D b-g</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#COLLECTION INFORMATION</td>
</tr>
<tr>
<td width="463" height="40"> Station CODE:</td>
<td width="453" height="40" colspan="4" th:text="${site_code}"></td>
</tr>
<tr>
<td width="463" height="40"> Detector CODE:</td>
<td width="453" height="40" colspan="4" th:text="${detector_code}"></td>
</tr>
<tr>
<td width="463" height="40"> Collection Start:</td>
<td width="453" height="40" colspan="4" th:text="${collection_start_date + ' ' +collection_start_time}"></td>
</tr>
<tr>
<td width="463" height="40"> Collection Stop:</td>
<td width="453" height="40" colspan="4" th:text="${collection_stop_date + ' ' + collection_stop_time}"></td>
</tr>
<tr>
<td width="463" height="40"> Collection TIME(h):</td>
<td width="453" height="40" colspan="4" th:text="${collection_time}"></td>
</tr>
<tr>
<td width="463" height="40"> Air Volume[cm3]:</td>
<td width="453" height="40" colspan="4" th:text="${air_volume}"></td>
</tr>
<tr>
<td width="463" height="40"> Xe Volume[cm3]:</td>
<td width="453" height="40" colspan="4" th:text="${sample_volume_of_Xe}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#ACQUISITION INFORMATION</td>
</tr>
<tr>
<td width="463" height="40"> Acquisition Start:</td>
<td width="453" height="40" colspan="4" th:text="${acquisition_start_date + ' ' + acquisition_start_time}"></td>
</tr>
<tr>
<td width="463" height="40"> Acq Real Time(s):</td>
<td width="453" height="40" colspan="4" th:text="${acquisition_real_time}"></td>
</tr>
<tr>
<td width="463" height="40"> Acq Live Time:</td>
<td width="453" height="40" colspan="4" th:text="${acquisition_live_time}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#SOFTWARE</td>
</tr>
<tr>
<td width="463" height="40"> version:</td>
<td width="453" height="40" colspan="4">1.0.1</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#SAMPLE Old CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> Old Beta</td>
<td width="453" height="40">Old Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#SAMPLE New CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> New Beta</td>
<td width="453" height="40">New Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = ([[${betaCalibrationSEC.coeff1}]])+([[${betaCalibrationSEC.coeff2}]])*x+([[${betaCalibrationSEC.coeff3}]])x*x</td>
<td width="453" height="40"> CH(x) = ([[${gammaCalibrationSEC.coeff1}]])+([[${gammaCalibrationSEC.coeff2}]])*x+([[${gammaCalibrationSEC.coeff3}]])x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = ([[${betaCalibrationSCE.coeff1}]])+([[${betaCalibrationSCE.coeff2}]])*x+([[${betaCalibrationSCE.coeff3}]])x*x</td>
<td width="453" height="40"> E(x) = ([[${gammaCalibrationSCE.coeff1}]])+([[${gammaCalibrationSCE.coeff2}]])*x+([[${gammaCalibrationSCE.coeff3}]])x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#SAMPLE: LIMITS PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Beta</td>
<td width="103" height="40"> Gamma</td>
</tr>
<tr th:each="roiChannel : ${roiChannelsS}">
<td width="463" height="40" th:text="${roiChannel.roi}"></td>
<td width="453" height="40" th:text="${roiChannel.bChanStr}"></td>
<td width="103" height="40" th:text="${roiChannel.gChanStr}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#DET Old CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> Old Beta</td>
<td width="453" height="40">Old Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#DET New CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> New Beta</td>
<td width="453" height="40">New Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = ([[${betaCalibrationDEC.coeff1}]])+([[${betaCalibrationDEC.coeff2}]])*x+([[${betaCalibrationDEC.coeff3}]])x*x</td>
<td width="453" height="40"> CH(x) = ([[${gammaCalibrationDEC.coeff1}]])+([[${gammaCalibrationDEC.coeff2}]])*x+([[${gammaCalibrationDEC.coeff3}]])x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = ([[${betaCalibrationDCE.coeff1}]])+([[${betaCalibrationDCE.coeff2}]])*x+([[${betaCalibrationDCE.coeff3}]])x*x</td>
<td width="453" height="40"> E(x) = ([[${gammaCalibrationDCE.coeff1}]])+([[${gammaCalibrationDCE.coeff2}]])*x+([[${gammaCalibrationDCE.coeff3}]])x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#DET: LIMITS PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Beta</td>
<td width="103" height="40"> Gamma</td>
</tr>
<tr th:each="roiChannel : ${roiChannelsD}">
<td width="463" height="40" th:text="${roiChannel.roi}"></td>
<td width="453" height="40" th:text="${roiChannel.bChanStr}"></td>
<td width="103" height="40" th:text="${roiChannel.gChanStr}"></td>
</tr>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#GAS Old CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> Old Beta</td>
<td width="453" height="40">Old Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> CH(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
<td width="453" height="40"> E(x) = (?1)+(?2)*x+(?3)x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#GAS New CALIBRATION</td>
</tr>
<tr>
<td width="463" height="40"> New Beta</td>
<td width="453" height="40">New Gamma</td>
</tr>
<tr>
<td width="463" height="40"> CH(x) = ([[${betaCalibrationGEC.coeff1}]])+([[${betaCalibrationGEC.coeff2}]])*x+([[${betaCalibrationGEC.coeff3}]])x*x</td>
<td width="453" height="40"> CH(x) = ([[${gammaCalibrationGEC.coeff1}]])+([[${gammaCalibrationGEC.coeff2}]])*x+([[${gammaCalibrationGEC.coeff3}]])x*x</td>
</tr>
<tr>
<td width="463" height="40"> E(x) = ([[${betaCalibrationGCE.coeff1}]])+([[${betaCalibrationGCE.coeff2}]])*x+([[${betaCalibrationGCE.coeff3}]])x*x</td>
<td width="453" height="40"> E(x) = ([[${gammaCalibrationGCE.coeff1}]])+([[${gammaCalibrationGCE.coeff2}]])*x+([[${gammaCalibrationGCE.coeff3}]])x*x</td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#GAS: LIMITS PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Beta</td>
<td width="103" height="40"> Gamma</td>
</tr>
<tr th:each="roiChannel : ${roiChannelsG}">
<td width="463" height="40" th:text="${roiChannel.roi}"></td>
<td width="453" height="40" th:text="${roiChannel.bChanStr}"></td>
<td width="103" height="40" th:text="${roiChannel.gChanStr}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#GROSS COUNTS PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Sample</td>
<td width="103" height="40">GasBkgnd</td>
<td width="123" height="40">DetBkgnd</td>
</tr>
<tr th:each="roiResult : ${roiResults}">
<td width="463" height="40" th:text="${roiResult.roi}"></td>
<td width="453" height="40" th:text="${roiResult.sGross}"></td>
<td width="103" height="40" th:text="${roiResult.gGross}"></td>
<td width="123" height="40" th:text="${roiResult.bGross}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#NET COUNTS AND LC PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Net count</td>
</tr>
<tr th:each="roiResult : ${roiResults}">
<td width="463" height="40" th:text="${roiResult.roi}"></td>
<td width="453" height="40" th:text="${roiResult.netCount}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#CONCENTRATION AND LC PER ROI</td>
</tr>
<tr>
<td width="463" height="40"> Roi</td>
<td width="453" height="40">Conc(mBq/m3)</td>
<td width="103" height="40">LC(mBq/m3)</td>
<td width="123" height="40">MDC(mBq/m3):</td>
</tr>
<tr th:each="roiResult : ${roiResults}">
<td width="463" height="40" th:text="${roiResult.roi}"></td>
<td width="453" height="40" th:text="${roiResult.concStr}"></td>
<td width="453" height="40" th:text="${roiResult.lc}"></td>
<td width="453" height="40" th:text="${roiResult.mdc}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
<tr>
<td colspan="5" height="40">#RESULT SUMMARY</td>
</tr>
<tr>
<td width="463" height="40"> Nuclide Name</td>
<td width="453" height="40">Conc</td>
<td width="103" height="40">LC</td>
<td width="123" height="40">MDC</td>
<td width="83" height="40">NID Flag</td>
</tr>
<tr th:each="xeResult : ${xeResults}">
<td width="463" height="40" th:text="${xeResult.nuclideName}"></td>
<td width="453" height="40" th:text="${xeResult.concStr}"></td>
<td width="103" height="40" th:text="${xeResult.lc}"></td>
<td width="123" height="40" th:text="${xeResult.mdc}"></td>
<td width="83" height="40" th:text="${xeResult.nidFlag}"></td>
</tr>
<tr>
<td colspan="5" height="40">&nbsp</td>
</tr>
</table>
</html>

View File

@ -66,14 +66,14 @@ public class SysDatabaseController {
@GetMapping("dbNames")
@ApiOperation(value = "数据库名列表",notes = "数据库名列表")
public Result<?> dbNames(@RequestParam String dbType){
return Result.OK(sysDatabaseService.dbNames(dbType));
public Result<?> dbNames(@RequestParam String sourceId){
return Result.OK(sysDatabaseService.dbNames(sourceId));
}
@GetMapping("dbInfo")
@ApiOperation(value = "数据库表详情信息",notes = "数据库表详情信息")
public Result<?> dbInfo(@RequestParam String dbType,
@RequestParam String dataBase) {
return Result.OK(sysDatabaseService.dbInfo(dbType, dataBase));
public Result<?> dbInfo(@RequestParam String sourceId,
@RequestParam String dbName) {
return Result.OK(sysDatabaseService.dbInfo(sourceId, dbName));
}
}

View File

@ -0,0 +1,21 @@
package org.jeecg.modules.mapper;
import org.jeecg.modules.base.dto.DBInfo;
import org.springframework.jdbc.core.RowMapper;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBRowMapper implements RowMapper<DBInfo> {
@Override
public DBInfo mapRow(ResultSet rs, int rowNum) throws SQLException {
DBInfo dbInfo = new DBInfo();
dbInfo.setTableName(rs.getString("tableName"));
dbInfo.setNumRow(rs.getInt("numRow"));
dbInfo.setDataSize(rs.getDouble("dataSize"));
dbInfo.setIndexSize(rs.getDouble("indexSize"));
dbInfo.setUsed(rs.getDouble("used"));
return dbInfo;
}
}

View File

@ -50,73 +50,4 @@
LIMIT #{pageSize} OFFSET #{pageStart}
</if>
</select>
<select id="dbNamesPG" resultType="java.lang.String">
SELECT datname FROM pg_database WHERE datistemplate = false;
</select>
<select id="dbNamesMY" resultType="java.lang.String">
SHOW DATABASES;
</select>
<select id="dbNamesOR" resultType="java.lang.String">
SELECT username FROM all_users;
</select>
<select id="dbInfoOR" resultType="org.jeecg.modules.base.dto.DBInfo">
SELECT
a.table_name AS tableName,
a.num_rows AS numRow,
COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS dataSize,
COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS indexSize,
COALESCE(ROUND((d.bytes / d.max_size) * 100, 3), 0) AS used
FROM
all_tables a
LEFT JOIN dba_segments d ON a.owner = d.owner AND a.table_name = d.segment_name AND d.segment_type = 'TABLE'
WHERE
a.owner = #{owner}
ORDER BY a.table_name
</select>
<select id="dbIndexOR" resultType="org.jeecg.modules.base.dto.DBInfo">
SELECT
a.table_name AS tableName,
COALESCE(ROUND((d.bytes / (1024 * 1024)), 2), 0) AS indexSize
FROM
all_tables a
LEFT JOIN dba_segments d ON a.owner = d.owner AND a.table_name = d.segment_name AND d.segment_type = 'INDEX'
WHERE
a.owner = #{owner}
ORDER BY a.table_name
</select>
<select id="dbInfoPG" resultType="org.jeecg.modules.base.dto.DBInfo">
SELECT
relname AS tableName,
ROUND( pg_relation_size ( relid ) / ( 1024 * 1024 ), 2 ) AS dataSize,
ROUND( pg_indexes_size ( relid ) / ( 1024 * 1024 ), 2 ) AS indexSize
FROM
pg_stat_user_tables
WHERE
schemaname = 'public'
</select>
<select id="dbRowNumPG" resultType="org.jeecg.modules.base.dto.DBInfo">
SELECT
relname AS tableName,
reltuples AS numRow
FROM
pg_class
WHERE
relkind = 'r'
AND relname NOT LIKE 'pg_%'
AND relname NOT LIKE 'sql_%'
</select>
<select id="dbInfoMY" resultType="org.jeecg.modules.base.dto.DBInfo">
SELECT
TABLE_NAME AS tableName,
TABLE_ROWS AS numRow,
round((data_length / 1024 / 1024), 2) AS dataSize,
round((index_length / 1024 / 1024), 2) AS indexSize
FROM
information_schema.tables
WHERE
table_schema = #{owner};
ORDER BY TABLE_NAME
</select>
</mapper>

View File

@ -14,7 +14,7 @@ public interface ISysDatabaseService extends IService<SysDatabase> {
Result findPage(QueryRequest query);
Result findInfo(String id);
Result<?> findInfo(String id);
Result create(SysDatabase sysDatabase);
@ -26,7 +26,7 @@ public interface ISysDatabaseService extends IService<SysDatabase> {
List<SourceDto> listAll();
List<String> dbNames(String dbType);
List<String> dbNames(String id);
List<DBInfo> dbInfo(String dbType, String dataBase);
List<DBInfo> dbInfo(String id, String dbName);
}

View File

@ -3,17 +3,18 @@ package org.jeecg.modules.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.util.JdbcUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.DataBaseConstant;
import org.jeecg.common.constant.DateConstant;
import org.jeecg.common.constant.DictConstant;
import org.jeecg.common.constant.Prompt;
import org.jeecg.common.constant.*;
import org.jeecg.common.constant.enums.DbType;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.util.JDBCUtil;
import org.jeecg.config.mybatis.DSSwitcher;
import org.jeecg.modules.base.dto.DBInfo;
import org.jeecg.modules.base.dto.DatabaseDto;
@ -22,9 +23,12 @@ import org.jeecg.modules.base.entity.postgre.SysDatabase;
import org.jeecg.modules.base.bizVo.SourceVo;
import org.jeecg.modules.entity.AlarmHistory;
import org.jeecg.modules.feignclient.SystemClient;
import org.jeecg.modules.mapper.DBRowMapper;
import org.jeecg.modules.mapper.SysDatabaseMapper;
import org.jeecg.modules.service.ISysDatabaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -33,6 +37,8 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import static org.jeecg.common.constant.enums.DbType.*;
@Service("sysDatabaseService")
public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDatabase> implements ISysDatabaseService {
@ -74,7 +80,7 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
}
@Override
public Result findInfo(String id) {
public Result<?> findInfo(String id) {
Result result = new Result();
LambdaQueryWrapper<SysDatabase> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysDatabase::getId, id);
@ -90,24 +96,52 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
@Override
@Transactional
public Result create(SysDatabase sysDatabase) {
public Result<?> create(SysDatabase sysDatabase) {
String name = sysDatabase.getName();
String ipAddress = sysDatabase.getIpAddress();
LambdaQueryWrapper<SysDatabase> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysDatabase::getName,name);
if (CollUtil.isNotEmpty(list(wrapper)))
return Result.error("Name"+Prompt.NOT_REPEAT);
wrapper.clear();
wrapper.eq(SysDatabase::getIpAddress,ipAddress);
if (CollUtil.isNotEmpty(list(wrapper)))
return Result.error("IP Address"+Prompt.NOT_REPEAT);
// 截取dbName并保存
String dbType = sysDatabase.getDbType();
String dbUrl = sysDatabase.getDbUrl();
DbType dbTypeE = typeOf(dbType);
switch (dbTypeE){
case POSTGRESQL:
sysDatabase.setDbName(bias(dbUrl));
break;
case ORACLE:
sysDatabase.setDbName(colon(dbUrl));
break;
case MYSQL55:
sysDatabase.setDbName(bias(dbUrl));
break;
case MYSQL57:
sysDatabase.setDbName(bias(dbUrl));
break;
default:
break;
}
int count = baseMapper.insert(sysDatabase);
if (count == 1)
return Result.OK(Prompt.ADD_SUCC);
return Result.error(Prompt.ADD_ERR);
}
private String colon(String url){
if (StrUtil.isBlank(url))
return null;
String regex = ".*:(.*)";
return ReUtil.getGroup1(regex, url);
}
private String bias(String url){
if (StrUtil.isBlank(url))
return null;
String regex = "/([^/?]+)\\?";
return ReUtil.getGroup1(regex, url);
}
@Override
@Transactional
public Result update(SysDatabase sysDatabase) {
@ -115,7 +149,7 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
if (ObjectUtil.isNull(database))
return Result.error(Prompt.DATA_NOT_EXITS);
String name = sysDatabase.getName();
String ipAddress = sysDatabase.getIpAddress();
// String ipAddress = sysDatabase.getIpAddress();
LambdaQueryWrapper<SysDatabase> wrapper = new LambdaQueryWrapper<>();
if (!StrUtil.equals(name,database.getName())){
wrapper.eq(SysDatabase::getName,name);
@ -123,11 +157,11 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
return Result.error("Name" + Prompt.NOT_REPEAT);
wrapper.clear();
}
if (!StrUtil.equals(ipAddress,database.getIpAddress())){
/*if (!StrUtil.equals(ipAddress,database.getIpAddress())){
wrapper.eq(SysDatabase::getIpAddress,ipAddress);
if (CollUtil.isNotEmpty(list(wrapper)))
return Result.error("IP Address" + Prompt.NOT_REPEAT);
}
}*/
int count = baseMapper.updateById(sysDatabase);
if (count == 1)
return Result.OK(Prompt.UPDATE_SUCC);
@ -182,17 +216,30 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
}
@Override
public List<String> dbNames(String dbType) {
public List<String> dbNames(String id) {
List<String> dbNames = new ArrayList<>();
switch (dbType){
case DataBaseConstant.DB_TYPE_ORACLE:
dbNames = dbNamesOR();
SysDatabase sysDatabase = getById(id);
if (ObjectUtil.isNull(sysDatabase))
return dbNames;
String dbUrl = sysDatabase.getDbUrl();
String dbDriver = sysDatabase.getDbDriver();
String dbUsername = sysDatabase.getDbUsername();
String dbPassword = sysDatabase.getDbPassword();
String dbType = sysDatabase.getDbType();
JdbcTemplate template = JDBCUtil.template(dbUrl, dbDriver, dbUsername, dbPassword);
DbType dbTypeE = DbType.typeOf(dbType);
switch (dbTypeE){
case POSTGRESQL:
dbNames = template.queryForList(DBSQL.DBNAMES_PG, String.class);
break;
case DataBaseConstant.DB_TYPE_POSTGRESQL:
dbNames = dbNamesPG();
case ORACLE:
dbNames = template.queryForList(DBSQL.DBNAMES_OR, String.class);
break;
case DataBaseConstant.DB_TYPE_MYSQL:
// ...
case MYSQL55:
dbNames = template.queryForList(DBSQL.DBNAMES_MY, String.class);
break;
case MYSQL57:
dbNames = template.queryForList(DBSQL.DBNAMES_MY, String.class);
break;
default:
break;
@ -201,17 +248,31 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
}
@Override
public List<DBInfo> dbInfo(String dbType, String dataBase) {
public List<DBInfo> dbInfo(String id, String dbName) {
List<DBInfo> dbInfos = new ArrayList<>();
switch (dbType){
case DataBaseConstant.DB_TYPE_ORACLE:
dbInfos = dbInfoOR(dataBase);
SysDatabase sysDatabase = getById(id);
if (ObjectUtil.isNull(sysDatabase))
return dbInfos;
String dbUrl = sysDatabase.getDbUrl();
String dbDriver = sysDatabase.getDbDriver();
String dbUsername = sysDatabase.getDbUsername();
String dbPassword = sysDatabase.getDbPassword();
String dbType = sysDatabase.getDbType();
DBRowMapper dbRowMapper = new DBRowMapper();
JdbcTemplate template = JDBCUtil.template(dbUrl, dbDriver, dbUsername, dbPassword);
DbType dbTypeE = DbType.typeOf(dbType);
switch (dbTypeE){
case POSTGRESQL:
dbInfos = dbInfoPG(sysDatabase, dbName, dbRowMapper);
break;
case DataBaseConstant.DB_TYPE_POSTGRESQL:
dbInfos = dbInfoPG();
case ORACLE:
dbInfos = dbInfoOR(template, dbName, dbRowMapper);
break;
case DataBaseConstant.DB_TYPE_MYSQL:
// ...
case MYSQL55:
dbInfos = dbInfoMY(template, dbName, dbRowMapper);
break;
case MYSQL57:
dbInfos = dbInfoMY(template, dbName, dbRowMapper);
break;
default:
break;
@ -219,46 +280,22 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
return dbInfos;
}
private List<String> dbNamesOR(){
DSSwitcher.switchToOracle();
List<String> dbNames = baseMapper.dbNamesOR();
DSSwitcher.clear();
return dbNames;
}
private List<String> dbNamesPG(){
return baseMapper.dbNamesPG();
}
private List<String> dbNamesMY(){
// 切换数据源
return baseMapper.dbNamesMY();
// 清除数据源
}
private List<DBInfo> dbInfoOR(String dataBase){
DSSwitcher.switchToOracle();
List<DBInfo> dbInfos = baseMapper.dbInfoOR(dataBase);
Map<String, Double> indexSize = baseMapper.dbIndexOR(dataBase).stream()
.collect(Collectors.toMap(DBInfo::getTableName, DBInfo::getIndexSize));
for (DBInfo dbInfo : dbInfos) {
double min = 40.0;
double max = 100.0;
double random = min + (max - min) * new Random().nextDouble();
dbInfo.setUsed(random);
String tableName = dbInfo.getTableName();
dbInfo.setIndexSize(indexSize.get(tableName));
private List<DBInfo> dbInfoPG(SysDatabase sysDatabase, String dbName, RowMapper<DBInfo> mapper){
String dbUrl = sysDatabase.getDbUrl();
String dbDriver = sysDatabase.getDbDriver();
String dbUsername = sysDatabase.getDbUsername();
String dbPassword = sysDatabase.getDbPassword();
String dbNameOld = sysDatabase.getDbName();
// 将URL中的数据库名替换为要查询的数据库名
if (StrUtil.isNotBlank(dbUrl) && StrUtil.isNotBlank(dbName)){
if (StrUtil.contains(dbUrl, dbNameOld))
dbUrl = StrUtil.replace(dbUrl, dbNameOld, dbName);
}
DSSwitcher.clear();
return dbInfos;
}
private List<DBInfo> dbInfoPG(){
List<DBInfo> dbInfos = baseMapper.dbInfoPG();
Map<String, Integer> rowNum = baseMapper.dbRowNumPG().stream()
JdbcTemplate template = JDBCUtil.template(dbUrl, dbDriver, dbUsername, dbPassword);
// 查询当前所连接的数据库的表信息
List<DBInfo> dbInfos = template.query(DBSQL.DBINFO_PG, mapper);
List<DBInfo> dbRowNum = template.query(DBSQL.DBROWNUM_PG, mapper);
Map<String, Integer> rowNum = dbRowNum.stream()
.collect(Collectors.toMap(DBInfo::getTableName, DBInfo::getNumRow));
for (DBInfo dbInfo : dbInfos) {
String tableName = dbInfo.getTableName();
@ -267,12 +304,22 @@ public class SysDatabaseServiceImpl extends ServiceImpl<SysDatabaseMapper, SysDa
return dbInfos;
}
private List<DBInfo> dbInfoMY(String dataBase){
// 切换数据源
List<DBInfo> dbInfos = baseMapper.dbInfoMY(dataBase);
// 清除数据源
private List<DBInfo> dbInfoOR(JdbcTemplate template, String dbName, RowMapper<DBInfo> mapper){
String dbInfoSQL = String.format(DBSQL.DBINFO_OR, dbName);
List<DBInfo> dbInfos = template.query(dbInfoSQL, mapper);
String dbIndexSQL = String.format(DBSQL.DBINDEX_OR, dbName);
List<DBInfo> dbIndex = template.query(dbIndexSQL, mapper);
Map<String, Double> index = dbIndex.stream()
.collect(Collectors.toMap(DBInfo::getTableName, DBInfo::getIndexSize));
for (DBInfo dbInfo : dbInfos) {
String tableName = dbInfo.getTableName();
dbInfo.setIndexSize(index.get(tableName));
}
return dbInfos;
}
private List<DBInfo> dbInfoMY(JdbcTemplate template, String dbName, RowMapper<DBInfo> mapper){
String dbInfoSQL = String.format(DBSQL.DBINFO_MY, dbName);
return template.query(dbInfoSQL, mapper);
}
}

View File

@ -9,6 +9,8 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
@ -26,6 +28,7 @@ import org.jeecg.modules.service.ISysEmailService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.mail.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
@ -194,4 +197,37 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
return sourceDtos;
}
public static void main(String[] args) throws MessagingException {
Properties prop = System.getProperties();
String host = "imaphz.qiye.163.com";
String username = "cnndc.rn.dr@ndc.org.cn";
String password = "cnndc66367220";
prop.setProperty("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.imap.host", host);
prop.setProperty("mail.imap.port", "993");
prop.setProperty("mail.imap.starttls.enable", "true");
prop.setProperty("mail.imap.socketFactory.fallback", "false");
prop.setProperty("mail.debug", "true");
Session ses = Session.getInstance(prop, null);
Store store = ses.getStore("imap");
store.connect(host, username, password);
if (!IMAPStore.class.isInstance(store))
throw new IllegalStateException("Is not IMAPStore");
IMAPStore imapStore = (IMAPStore) store;
Quota[] quotas = imapStore.getQuota("INBOX");
for (Quota quota : quotas) {
System.out.println(String.format("quotaRoot:%s", quota.quotaRoot));
for (Quota.Resource resource : quota.resources) {
System.out.println(String.format("name:%s, limit:%s, usage:%s",
resource.name, resource.limit, resource.usage));
}
}
}
}

View File

@ -3941,24 +3941,24 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
Calibration samplOldCalibrationCH = new Calibration();
Calibration samplOldCalibrationE = new Calibration();
if (betaDataFile.isBBetaEnergyValidSample() || betaDataFile.isBGammaEnergyValidSample()){
if (betaDataFile.isBBetaEnergyValidSample()) {
samplOldCalibrationCH.setBeta(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaToUiOld())) {
samplOldCalibrationCH.setBeta(rowFormat(" CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
} else {
samplOldCalibrationCH.setBeta("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidSample()) {
samplOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaToUiOld())) {
samplOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
} else {
samplOldCalibrationCH.setGamma("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBBetaEnergyValidSample()) {
samplOldCalibrationE.setBeta(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaOld())) {
samplOldCalibrationE.setBeta(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
} else {
samplOldCalibrationE.setBeta("E(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidSample()) {
samplOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
} else {
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaOld())) {
samplOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
}else {
samplOldCalibrationE.setGamma("E(x) = (?1)+(?2)*x+(?3)x*x");
}
} else {
@ -3975,22 +3975,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
List<Calibration> samplNewCalibrations = new ArrayList<>();
Calibration samplNewCalibrationCH = new Calibration();
Calibration samplNewCalibrationE = new Calibration();
samplNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamES.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff1())))
samplNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamS.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamS.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamS.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff3())))
+")x*x");
samplNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamS.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamS.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamS.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff3())))
+")x*x");
samplNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamES.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamES.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamES.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamES.getCoeff3())))
+")x*x");
samplNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamES.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff1())))
samplNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamES.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamES.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamES.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamES.getCoeff3())))
+")x*x");
samplNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamS.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamS.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamS.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamS.getCoeff3())))
+")x*x");
samplNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamS.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamS.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamS.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamS.getCoeff3())))
+")x*x");
samplNewCalibrations.add(samplNewCalibrationCH);
samplNewCalibrations.add(samplNewCalibrationE);
result.put("samplNewCalibrations",samplNewCalibrations);
@ -4013,23 +4013,23 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
Calibration detOldCalibrationCH = new Calibration();
Calibration detOldCalibrationE = new Calibration();
if (betaDataFile.isBBetaEnergyValidDet() || betaDataFile.isBGammaEnergyValidDet()){
if (betaDataFile.isBBetaEnergyValidDet()) {
detOldCalibrationCH.setBeta(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaToUiOld())) {
detOldCalibrationCH.setBeta(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
} else {
detOldCalibrationCH.setBeta("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidDet()) {
detOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaToUiOld())) {
detOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
} else {
detOldCalibrationCH.setGamma("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBBetaEnergyValidDet()) {
detOldCalibrationE.setBeta(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaOld())) {
detOldCalibrationE.setBeta(rowFormat(" E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
} else {
detOldCalibrationE.setBeta("E(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidDet()) {
detOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaOld())) {
detOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
} else {
detOldCalibrationE.setGamma("E(x) = (?1)+(?2)*x+(?3)x*x");
}
@ -4047,22 +4047,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
List<Calibration> detNewCalibrations = new ArrayList<>();
Calibration detNewCalibrationCH = new Calibration();
Calibration detNewCalibrationE = new Calibration();
detNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamED.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamED.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamED.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff3())))
+")x*x");
detNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamED.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamED.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamED.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff3())))
+")x*x");
detNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamD.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamD.getCoeff1())))
detNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamD.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamD.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamD.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamD.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamD.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamD.getCoeff3())))
+")x*x");
detNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamD.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamD.getCoeff1())))
detNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamD.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamD.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamD.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamD.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamD.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamD.getCoeff3())))
+")x*x");
detNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamED.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamED.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamED.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamED.getCoeff3())))
+")x*x");
detNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamED.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamED.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamED.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamED.getCoeff3())))
+")x*x");
detNewCalibrations.add(detNewCalibrationCH);
detNewCalibrations.add(detNewCalibrationE);
result.put("detNewCalibrations", detNewCalibrations);
@ -4085,23 +4085,23 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
Calibration gasOldCalibrationCH = new Calibration();
Calibration gasOldCalibrationE = new Calibration();
if (betaDataFile.isBBetaEnergyValidGas() || betaDataFile.isBGammaEnergyValidGas()){
if (betaDataFile.isBBetaEnergyValidGas()) {
gasOldCalibrationCH.setBeta(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaToUiOld())) {
gasOldCalibrationCH.setBeta(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
} else {
gasOldCalibrationCH.setBeta("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidGas()) {
gasOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaToUiOld())) {
gasOldCalibrationCH.setGamma(rowFormat("CH(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
} else {
gasOldCalibrationCH.setGamma("CH(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBBetaEnergyValidGas()) {
gasOldCalibrationE.setBeta(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaToUiOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getBetaFittingParaOld())) {
gasOldCalibrationE.setBeta(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getBetaFittingParaOld().get(2))));
} else {
gasOldCalibrationE.setBeta("E(x) = (?1)+(?2)*x+(?3)x*x");
}
if (betaDataFile.isBGammaEnergyValidGas()) {
gasOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaToUiOld().get(2))));
if (CollectionUtils.isNotEmpty(betaDataFile.getGammaFittingParaOld())) {
gasOldCalibrationE.setGamma(rowFormat("E(x) = (%s)+(%s)*x+(%s)x*x ", NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(0)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(1)), NumberFormatUtil.numberSixLen(betaDataFile.getGammaFittingParaOld().get(2))));
} else {
gasOldCalibrationE.setGamma("E(x) = (?1)+(?2)*x+(?3)x*x");
}
@ -4119,22 +4119,22 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
List<Calibration> gasNewCalibrations = new ArrayList<>();
Calibration gasNewCalibrationCH = new Calibration();
Calibration gasNewCalibrationE = new Calibration();
gasNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamEG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamEG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamEG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff3())))
+")x*x");
gasNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff3())))
+")x*x");
gasNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamG.getCoeff1())))
gasNewCalibrationCH.setBeta("CH(x) = ("+ (Objects.isNull(betaCalibrationParamG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamG.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamG.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamG.getCoeff3())))
+")x*x");
gasNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamG.getCoeff1())))
gasNewCalibrationCH.setGamma("CH(x) = ("+ (Objects.isNull(gammaCalibrationParamG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamG.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamG.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamG.getCoeff3())))
+")x*x");
gasNewCalibrationE.setBeta("E(x) = ("+ (Objects.isNull(betaCalibrationParamEG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff1())))
+")+("+ (Objects.isNull(betaCalibrationParamEG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff2())))
+")*x+("+ (Objects.isNull(betaCalibrationParamEG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(betaCalibrationParamEG.getCoeff3())))
+")x*x");
gasNewCalibrationE.setGamma("E(x) = ("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff1())?"?1":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff1())))
+")+("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff2())?"?2":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff2())))
+")*x+("+ (Objects.isNull(gammaCalibrationParamEG.getCoeff3())?"?3":NumberFormatUtil.numberSixLen(String.valueOf(gammaCalibrationParamEG.getCoeff3())))
+")x*x");
gasNewCalibrations.add(gasNewCalibrationCH);
gasNewCalibrations.add(gasNewCalibrationE);
result.put("gasNewCalibrations",gasNewCalibrations);
@ -4211,7 +4211,7 @@ public class SpectrumAnalysisServiceImpl extends AbstractLogOrReport implements
// 解析生成Html字符串并导出为Html文件
String result = parseHtml(analyze);
PrintWriter writer = null;
try {
try{
String export = "saveToHtml.html";
String sampleFileName = rrrLogInfo.getSampleFileName();
if (StrUtil.isNotBlank(sampleFileName)){