diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java index 6ca68c24..44f2e925 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/FTPUtil.java @@ -2,6 +2,9 @@ package org.jeecg.common.util; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import lombok.extern.slf4j.Slf4j; +import net.sf.saxon.trans.SymbolicName; +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.net.ftp.FTP; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; @@ -10,8 +13,7 @@ import org.springframework.stereotype.Component; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Arrays; @@ -48,9 +50,11 @@ public class FTPUtil { // 切换为本地被动模式,可以解决FTP上传后文件为空的问题,但需要服务器将FTP服务添加至防火墙白名单 ftp.enterLocalPassiveMode(); //连接 - ftp.connect(host, port); + ftp.connect("182.92.183.230", 21); +// ftp.connect(host, port); //登录 - ftp.login(userName, password); + ftp.login("xiao", "123456"); +// ftp.login(userName, password); //判断是否连接成功 int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { @@ -129,4 +133,132 @@ public class FTPUtil { } } + /** + * 检查目录是否存在,不存在则创建,支持递归创建 + * @param path 目录路径 + * @return 返回值true/false + */ + public boolean checkDirectory(String path) { + final FTPClient ftpClient = this.LoginFTP(); + try { + final boolean flag = this.checkDirectory(ftpClient, path); + return flag; + }catch (IOException e){ + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + /** + * 检查目录是否存在,不存在则创建,支持递归创建 + * @param ftpClient FTP客户端 + * @param path 目录路径 + * @return 返回值true/false + * @throws IOException + */ + private boolean checkDirectory(FTPClient ftpClient,String path) throws IOException { + final String rootPath = ftpClient.printWorkingDirectory(); + final boolean changeFlag = ftpClient.changeWorkingDirectory(rootPath); + if(!changeFlag){ + log.error("{},根目录切换失败",rootPath); + return false; + } + String[] directories = path.split("/"); + for(String directory : directories){ + if(StringUtils.isEmpty(directory)){ + continue; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + if(!ftpClient.makeDirectory(directory)){ + log.error("{},目录创建失败",directory); + return false; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + log.error("{},目录切换失败",directory); + return false; + } + } + } + return true; + } + + /** + * 写入文件,若文件或文件目录不存在则自行创建 + * @param filePath 文件路径 + * @param fileName 文件名称 + * @param inputStream 文件输入流 + * @return 返回值true/false + */ + public boolean saveFile(String filePath,String fileName,InputStream inputStream){ + final FTPClient ftpClient = this.LoginFTP(); + try{ + final boolean flag = this.checkDirectory(ftpClient,filePath); + if(flag){ + ftpClient.setFileType(FTP.BINARY_FILE_TYPE); + String encodedName = new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1); + final boolean result = ftpClient.storeFile(encodedName, inputStream); + return result; + } + }catch (IOException e){ + log.error("{}文件创建失败,原因为:{}",filePath+"/"+fileName,e.getMessage()); + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + return false; + } + + /** + * 删除文件 + * @param filePath 文件路径 + * @param fileName 文件名称 + * @return 返回值true/false + */ + public boolean removeFile(String filePath,String fileName){ + final FTPClient ftpClient = this.LoginFTP(); + try { + final String rootPath = ftpClient.printWorkingDirectory(); + final boolean changeFlag = ftpClient.changeWorkingDirectory(rootPath); + if(!changeFlag){ + log.error("{},根目录切换失败",rootPath); + return false; + } + String[] directories = filePath.split("/"); + for(String directory : directories){ + if(StringUtils.isEmpty(directory)){ + continue; + } + if(!ftpClient.changeWorkingDirectory(directory)){ + log.error("此文件目录不存在:{}",filePath); + return false; + } + } + boolean result = ftpClient.deleteFile(new String(fileName.getBytes(StandardCharsets.UTF_8),StandardCharsets.ISO_8859_1)); + if(!result){ + log.error("此文件不存在:{}",filePath+"/"+fileName); + } + return result; + } catch (IOException e) { + log.error("{}文件删除失败,原因为:{}",filePath,e.getMessage()); + e.printStackTrace(); + return false; + }finally { + try { + ftpClient.disconnect(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } } diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java index f28f9d49..54d65a55 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsMetData.java @@ -13,46 +13,85 @@ import java.util.Date; @TableName(value = "gards_met_data") public class GardsMetData implements Serializable { + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站编码 + */ @TableField(value = "STATION_CODE") private String stationCode; + /** + * 气象数据id + */ @TableField(value = "MET_ID") private Integer metId; + /** + * 开始时间 + */ @TableField(value = "START_TIME") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; + /** + * 结束时间 + */ @TableField(value = "END_TIME") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; + /** + * 平均湿度(%) + */ @TableField(value = "AVE_HUMIDITY") private Integer aveHumidity; + /** + * 平均温度(℃) + */ @TableField(value = "AVGTEMPERATURE") private Integer avgtemperature; + /** + * 平均压力(hPa) + */ @TableField(value = "AVE_PRESSURE") private Integer avePressure; + /** + * 平均风向(偏离正北的度数) + */ @TableField(value = "AVE_WIND_DIR") private Integer aveWindDir; + /** + * 平均风速(m/s) + */ @TableField(value = "AVE_WIND_SPEED") private Integer aveWindSpeed; + /** + * 降雨量(mm) + */ @TableField(value = "RAINFALL") private Integer rainfall; + /** + * 文件路径 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java index 632dd833..41a7a183 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSampleData.java @@ -13,77 +13,147 @@ import java.util.Date; @TableName("GARDS_SAMPLE_DATA") public class GardsSampleData implements Serializable { + /** + * 探测器编码 + */ @TableField(value = "SITE_DET_CODE") private String siteDetCode; + /** + * 样品id + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") private Integer detectorId; + /** + * 导入文件名称 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 系统类型(P : particulate; B :gas with 3-D β-γ coincidence detection; G :all other gas systems (high-resolution + * γ-spectrometry or 2-D β-γ coincidence + * detection)) + */ @TableField(value = "SAMPLE_TYPE") private String sampleType; + /** + * 数据类型(S:SAMPLEPHD + * B:BLANKPHD + * D:DETBKPHD + * G:GASBKPHD + * C:CALIBPHD + * Q:QCPHD) + */ @TableField(value = "DATA_TYPE") private String dataType; + /** + * 几何尺寸 + */ @TableField(value = "GEOMETRY") private String geometry; + /** + * 能谱限定符: 过程谱(PREL) 和 全谱(FULL) + */ @TableField(value = "SPECTRAL_QUALIFIE") private String spectralQualifie; + /** + * 报文发送日期 + */ @TableField(value = "TRANSMIT_DTG") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date transmitDtg; + /** + * 样品采集开始时间 + */ @TableField(value = "COLLECT_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStart; + /** + * 样品采集结束时间 + */ @TableField(value = "COLLECT_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date collectStop; + /** + * 样品测量开始时间 + */ @TableField(value = "ACQUISITION_START") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStart; + /** + * 样品测量结束时间 + */ @TableField(value = "ACQUISITION_STOP") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date acquisitionStop; + /** + * 能谱获取实时间 + */ @TableField(value = "ACQUISITION_REAL_SEC") private Double acquisitionRealSec; + /** + * 能谱获取活时间 + */ @TableField(value = "ACQUISITION_LIVE_SEC") private Double acquisitionLiveSec; + /** + * 采样量(立方米) + */ @TableField(value = "QUANTITY") private Double quantity; + /** + * 样品处理状态 + */ @TableField(value = "STATUS") private String status; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; + /** + * 探测器名称 + */ @TableField(exist = false) private String detectorsName; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java index 85c07e67..d05b83ed 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/GardsSohData.java @@ -13,41 +13,77 @@ import java.util.Date; @TableName(value = "gards_soh_data") public class GardsSohData implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站代码 + */ @TableField(value = "STATION_CODE") private String stationCode; + /** + * 报警ID号 + */ @TableField(value = "SOH_ID") private Integer sohId; + /** + * 状态数据采集开始时间 + */ @TableField(value = "START_TIME") private Date startTime; + /** + * 时间间隔长度(秒) + */ @TableField(value = "TIME") private Integer time; + /** + * 采样流速均值(scm/h) + */ @TableField(value = "AVGFLOWRATE") private Integer avgflowrate; + /** + * 采样流速偏差(scm/h) + */ @TableField(value = "FLOWRATEDEV") private Integer flowratedev; + /** + * 文件路径 + */ @TableField(value = "INPUT_FILE_NAME") private String inputFileName; + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") private Integer detectorId; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; + /** + * 探测器名称 + */ @TableField(exist = false) private String detectorName; diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java index 3ab7ba01..b0a4f1f1 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/modules/base/entity/SysEmail.java @@ -11,6 +11,9 @@ import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; +/** + * 邮件管理数据表 + */ @Data @TableName(value = "sys_email") public class SysEmail implements Serializable { @@ -18,37 +21,73 @@ public class SysEmail implements Serializable { @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 邮箱名称 + */ @TableField(value = "name") private String name; - @TableField(value = "status") - private Integer status; + /** + * 邮箱类型(1-收件地址,2-发件地址) + */ + @TableField(value = "emil_type") + private Integer emilType; + /** + * email地址 + */ @TableField(value = "username") private String username; + /** + * 邮箱登录密码 + */ @TableField(value = "password") private String password; + /** + * 端口 + */ @TableField(value = "port") private String port; + /** + * 是否启用邮箱(0-不启用,1-启用) + */ @TableField(value = "enabled") private Integer enabled; + /** + * 监测周期(秒) + */ + @TableField(value = "monitoring_cycle") + private Integer monitoringCycle; + + /** + * 创建日期 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人员 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改日期 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人员 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java index 5fbff4d4..a4504e04 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroup.java @@ -16,37 +16,67 @@ import java.util.List; @TableName(value = "alarm_contact_group") public class AlarmContactGroup implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 联系人组名称 + */ @TableField(value = "name") private String name; + /** + * 联系人组描述 + */ @TableField(value = "description") private String description; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; + /** + * 联系人组关联的用户id + */ @TableField(exist = false) List userIds; + /** + * 联系人组关联的用户集合 + */ @TableField(exist = false) List users; + /** + * 当前联系人组人员数量 + */ @TableField(exist = false) Integer personNumber; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java index a5b5211f..b236c9c9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmContactGroupMember.java @@ -12,12 +12,21 @@ import java.io.Serializable; @TableName(value = "alarm_contact_group_member") public class AlarmContactGroupMember implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 联系人组id + */ @TableField(value = "group_id") private String groupId; + /** + * 用户id + */ @TableField(value = "user_id") private String userId; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java index bc8ce841..2c01a63d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmHistory.java @@ -9,15 +9,30 @@ import java.util.Date; @Data public class AlarmHistory { + /** + * 名称 + */ private String name; + /** + * 报警开始时间 + */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date alarmStartDate; + /** + * 报警详情 + */ private String alarmInfo; + /** + * 规则信息 + */ private String operator; + /** + * 来源类型 + */ private String sourceType; } diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java index e8f7e066..9a1d50ca 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmLog.java @@ -15,17 +15,29 @@ import java.util.Date; @TableName(value = "alarm_log") public class AlarmLog implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 规则id + */ @TableField(value = "rule_id") private String ruleId; + /** + * 报警开始时间 + */ @TableField(value = "alarm_start_date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date alarmStartDate; + /** + * 报警详情 + */ @TableField(value = "alarm_info") private String alarmInfo; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java index 6b6e0e87..7ea20d8d 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/AlarmRule.java @@ -15,46 +15,85 @@ import java.util.Date; @TableName(value = "alarm_rule") public class AlarmRule implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 规则信息 + */ @TableField(value = "operator") private String operator; + /** + * 沉默周期,单位为秒 + */ @TableField(value = "silence_cycle") private Integer silenceCycle; + /** + * 报警通知方式,如短信、邮件等 + */ @TableField(value = "notification") private String notification; + /** + * 是否启用该报警规则(0-未启用,1-启用) + */ @TableField(value = "enabled") private Integer enabled; + /** + * 报警联系人组id + */ @TableField(value = "contact_id") private String contactId; + /** + * 资源id + */ @TableField(value = "source_id") private String sourceId; + /** + * 资源类型 + */ @TableField(value = "source_type") private String sourceType; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java index d93a4ee7..f6db3143 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysDatabase.java @@ -15,43 +15,79 @@ import java.util.Date; @TableName(value = "sys_database") public class SysDatabase implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 状态(0-断开连接,1-连接成功) + */ @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(value = "password") private String password; + /** + * 数据库类型 + */ @TableField(value = "type") private String type; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java index 3321bebe..c280c565 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/entity/SysServer.java @@ -15,31 +15,55 @@ import java.util.Date; @TableName(value = "sys_server") public class SysServer implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) private String id; + /** + * 名称 + */ @TableField(value = "name") private String name; + /** + * 状态(0-停机,1-正常,2-故障) + */ @TableField(value = "status") private Integer status; + /** + * ip地址 + */ @TableField(value = "ip_address") private String ipAddress; + /** + * 创建时间 + */ @TableField(value = "create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(value = "update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; + /** + * 修改人 + */ @TableField(value = "update_by") private String updateBy; diff --git a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java index 93f23705..1dc4a1f9 100644 --- a/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java +++ b/jeecg-module-abnormal-alarm/src/main/java/org/jeecg/modules/service/IAlarmSysUserService.java @@ -11,7 +11,7 @@ import java.util.Map; @FeignClient(value = "jeecg-system") public interface IAlarmSysUserService { - @RequestMapping("/alarmSysUser/findUserMap") + @RequestMapping("/sys/user/findUserMap") Map findUserMap(); } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java index b1aed381..6371eb3f 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/FileInfo.java @@ -5,12 +5,24 @@ import lombok.Data; @Data public class FileInfo { + /** + * 文件名称 + */ private String fileName; + /** + * 文件路径 + */ private String filePath; + /** + * 文件大小 + */ private String fileSize; + /** + * 文件日期 + */ private String fileDate; } diff --git a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java index bcfd3004..9f60dfbe 100644 --- a/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java +++ b/jeecg-module-log-manage/src/main/java/org/jeecg/modules/entity/LogManage.java @@ -8,18 +8,39 @@ import java.util.List; @Data public class LogManage { + /** + * 名称 + */ private String name; + /** + * 路径 + */ private String path; + /** + * 排序编号 + */ private Integer orderNum; + /** + * 父级编号 + */ private Integer parentNum; + /** + * 是否有父级 + */ private boolean hashParent; + /** + * 是否有子级 + */ private boolean hashChild; + /** + * 子级数组 + */ private List children; public void initChildren(){ diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java new file mode 100644 index 00000000..1fa773df --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DataInfoVo.java @@ -0,0 +1,43 @@ +package org.jeecg.modules.entity; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +@Data +public class DataInfoVo implements Serializable { + + /** + * 类型 + */ + private String type; + + /** + * 状态 + */ + private String status; + + /** + * 开始时间 + */ + private Double beginTime; + + /** + * 结束时间 + */ + private Double endTime; + + /** + * 时间间隔 + */ + private Double spanTime; + + /** + * 比率 + */ + private Double rate; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java new file mode 100644 index 00000000..2059a209 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/DetectorData.java @@ -0,0 +1,26 @@ +package org.jeecg.modules.entity; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +@Data +public class DetectorData implements Serializable { + + /** + * 探测器id + */ + private Integer detectorId; + + /** + * 探测器编码 + */ + private String detectorCode; + + /** + * 数据集合 + */ + private List dataList; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java index ab734336..bdd4af19 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/Point.java @@ -7,16 +7,34 @@ import java.io.Serializable; @Data public class Point implements Serializable { + /** + * 台站名称 + */ private String stationName; + /** + * 核设施名称 + */ private String nuclearFacilityName; + /** + * 经度 + */ private String lon; + /** + * 纬度 + */ private String lat; + /** + * 半径 + */ private String radius; + /** + * 核设施id + */ private String nuclearFacilityId; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java index 1e3d4666..f9677726 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/PointVo.java @@ -7,8 +7,14 @@ import java.util.List; @Data public class PointVo { + /** + * 台站id集合 + */ private List stationIds; + /** + * 半径 + */ private Double radius; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java new file mode 100644 index 00000000..20ab50f2 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationData.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.entity; + +import lombok.Data; +import org.jeecg.modules.system.entity.GardsDetectors; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +@Data +public class StationData implements Serializable { + + /** + * 台站id + */ + private String stationId; + + /** + * 台站编码 + */ + private String stationCode; + + /** + * 探测器数据集合 + */ + private Map>> detectors; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java index a0b972af..c4010b9a 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/StationTree.java @@ -8,10 +8,19 @@ import java.util.List; @Data public class StationTree { + /** + * 台站id + */ private Integer stationId; + /** + * 编码 + */ private String code; + /** + * 子数据集合 + */ List children; } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java index 394e13b9..3f5f582e 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/SysUserFocusStation.java @@ -18,30 +18,54 @@ import java.util.Date; @TableName("sys_user_focus_station") public class SysUserFocusStation implements Serializable { + /** + * id + */ @TableId(value = "id", type = IdType.ASSIGN_ID) @NotBlank(message = "不能为空", groups = UpdateGroup.class) private String id; + /** + * 用户id + */ @TableField(value = "user_id") private String userId; + /** + * 台站id + */ @TableField(value = "station_id") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String stationId; + /** + * 类型 + */ @TableField(value = "type") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String type; + /** + * 创建时间 + */ @TableField(value = "create_time") private Date createTime; + /** + * 创建人 + */ @TableField(value = "create_by") private String createBy; + /** + * 修改时间 + */ @TableField(exist = false) private Double lon; + /** + * 修改人 + */ @TableField(exist = false) private Double lat; diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java index 103ae065..831399d6 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationMetDataMapper.java @@ -1,7 +1,15 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsMetData; +import java.util.List; + +@DS("ori") public interface StationMetDataMapper extends BaseMapper { + + List findMetDataList(@Param("stationIds") List stationIds, @Param("startDate") String startDate); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java index 28248bf3..605e1479 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSampleDataMapper.java @@ -1,8 +1,15 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsSampleData; +import java.util.List; + +@DS("ori") public interface StationSampleDataMapper extends BaseMapper { + List findSampleDataList(@Param("detectorIds") List detectorIds, @Param("startDate") String startDate); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java index b2e2d34d..2e1414ea 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/StationSohDataMapper.java @@ -1,7 +1,16 @@ package org.jeecg.modules.mapper; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.base.entity.GardsSohData; +import java.util.List; + +@DS("ori") public interface StationSohDataMapper extends BaseMapper { + + List findSohDataList(@Param("stationId") String stationId, @Param("detectorIds") List detectorIds, @Param("startDate") String startDate); + + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml deleted file mode 100644 index 948514e5..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsMetDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml deleted file mode 100644 index 74405da1..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSampleDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml deleted file mode 100644 index a9372e53..00000000 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/gardsSohDataMapper.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml new file mode 100644 index 00000000..04ed6da1 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationMetDataMapper.xml @@ -0,0 +1,23 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml new file mode 100644 index 00000000..3e5a2707 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSampleDataMapper.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml new file mode 100644 index 00000000..7de1c54f --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/stationSohDataMapper.xml @@ -0,0 +1,27 @@ + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java index a293957e..2dcd6bae 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICacheTimeService.java @@ -12,10 +12,10 @@ import java.util.Map; @FeignClient(value = "jeecg-system") public interface ICacheTimeService { - @RequestMapping("/alarmSysUser/findCacheTime") + @RequestMapping("/sys/dictItem/findCacheTime") List> findCacheTime(); - @RequestMapping("/alarmSysUser/findStationDetectors") + @RequestMapping("/gardsDetectors/findStationDetectors") Map> findStationDetectors(List stationIds); } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index f917d57e..af537ba2 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -1,46 +1,51 @@ package org.jeecg.modules.service.impl; -import com.baomidou.dynamic.datasource.annotation.DS; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.shape.Rectangle; -import io.swagger.models.auth.In; import org.jeecg.common.CacheName; import org.jeecg.common.PointUtil; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.entity.Point; -import org.jeecg.modules.entity.PointVo; -import org.jeecg.modules.entity.StationTree; +import org.jeecg.modules.base.entity.GardsMetData; +import org.jeecg.modules.base.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSohData; +import org.jeecg.modules.entity.*; +import org.jeecg.modules.mapper.StationMetDataMapper; +import org.jeecg.modules.mapper.StationSampleDataMapper; +import org.jeecg.modules.mapper.StationSohDataMapper; import org.jeecg.modules.service.ICacheTimeService; import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; -import org.jeecg.modules.entity.StationOperation; import org.jeecg.modules.mapper.StationOperationMapper; import org.jeecg.modules.service.IStationOperationService; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.text.ParseException; -import java.time.LocalDate; +import java.io.*; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.List; import java.util.stream.Collectors; @Service("stationOperationService") -@DS("ori") public class StationOperationServiceImpl extends ServiceImpl implements IStationOperationService { @Autowired private RedisUtil redisUtil; @Autowired private ICacheTimeService cacheTimeService; + @Autowired + private StationSampleDataMapper stationSampleDataMapper; + @Autowired + private StationSohDataMapper stationSohDataMapper; + @Autowired + private StationMetDataMapper stationMetDataMapper; private final SpatialContext spatialContext = SpatialContext.GEO; @@ -203,114 +208,266 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); - //查询全部核设施信息 - HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); - if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ - //声明一个集合存储转换经纬度后的核设施数据 - List nuclearPoints = new ArrayList<>(); - for (Map.Entry nuclearFacilityInfo:nuclearFacilityMap.entrySet()) { - GardsNuclearfacility facilityInfoValue = nuclearFacilityInfo.getValue(); - Point point = new Point(); - point.setNuclearFacilityId(String.valueOf(facilityInfoValue.getFacilityId())); - point.setNuclearFacilityName(facilityInfoValue.getFacilityName()); - if (StringUtils.isNotBlank(facilityInfoValue.getLongitude())){ - String pointValue = PointUtil.calculate(facilityInfoValue.getLongitude()); - facilityInfoValue.setLatitude(pointValue); - point.setLat(pointValue); + try { + if (CollectionUtils.isNotEmpty(stationIds)){ + //查询全部台站信息 + HashMap stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + //查询全部核设施信息 + HashMap nuclearFacilityMap = (HashMap) redisUtil.get("nuclearFacilityMap"); + if (CollectionUtils.isNotEmpty(nuclearFacilityMap)){ + //声明一个集合存储转换经纬度后的核设施数据 + List nuclearPoints = new ArrayList<>(); + for (Map.Entry nuclearFacilityInfo:nuclearFacilityMap.entrySet()) { + GardsNuclearfacility facilityInfoValue = nuclearFacilityInfo.getValue(); + Point point = new Point(); + point.setNuclearFacilityId(String.valueOf(facilityInfoValue.getFacilityId())); + point.setNuclearFacilityName(facilityInfoValue.getFacilityName()); + if (StringUtils.isNotBlank(facilityInfoValue.getLongitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLongitude()); + facilityInfoValue.setLatitude(pointValue); + point.setLat(pointValue); + } + if (StringUtils.isNotBlank(facilityInfoValue.getLatitude())){ + String pointValue = PointUtil.calculate(facilityInfoValue.getLatitude()); + facilityInfoValue.setLongitude(pointValue); + point.setLon(pointValue); + } + nuclearPoints.add(point); } - if (StringUtils.isNotBlank(facilityInfoValue.getLatitude())){ - String pointValue = PointUtil.calculate(facilityInfoValue.getLatitude()); - facilityInfoValue.setLongitude(pointValue); - point.setLon(pointValue); + for (String stationId:stationIds) { + GardsStations point = (GardsStations)stationInfoMap.get(stationId); + stationsList.add(point); + //声明一个数组存储对应的核设施经纬度信息 + List nuclearFacilityPoints = deepCopy(nuclearPoints); + //获取当前查询的台站名称 + String stationName = point.getStationCode(); + //获取当前查询的经度 即 圆心位置经度信息 + Double longitudeD = point.getLon(); + //获取当前查询的纬度 即 圆心位置纬度信息 + Double latitudeD = point.getLat(); + if (Objects.isNull(longitudeD)) { + result.error500("请传入经度"); + } + if (Objects.isNull(latitudeD)) { + result.error500("请传入纬度"); + } + if (!(longitudeD >= -180 && longitudeD <= 180)) { + result.error500("经度不合法"); + } + if (!(latitudeD >= -85.05112878 && latitudeD <= 85.05112878)) { + result.error500("纬度不合法"); + } + // 1.获取外接正方形 + Rectangle rectangle = getRectangle(radius, longitudeD, latitudeD); + // 2.获取位置在正方形内的所有设备 判断核设施的经纬度是否为空 不为空 判断经纬度是否在正方形的最大最小范围内 如果在则过滤出来继续使用否则弃用 + nuclearFacilityPoints = nuclearFacilityPoints.stream().filter(item-> StringUtils.isNotBlank(item.getLon()) && StringUtils.isNotBlank(item.getLat()) && + (Double.valueOf(item.getLon())>=rectangle.getMinX() && Double.valueOf(item.getLon())<= rectangle.getMaxX()) + && (Double.valueOf(item.getLat())>=rectangle.getMinY() && Double.valueOf(item.getLat())<= rectangle.getMaxY())).collect(Collectors.toList()); + //遍历在正方形范围内的数据 根据点的经纬度信息以及圆心的经纬度信息 计算出两者之间的距离 与 半径进行比较 <=半径则说明点在范围内,否则点超出半径范围 + nuclearFacilityPoints = nuclearFacilityPoints.stream() + .filter(equ -> getDistance(Double.valueOf(equ.getLon()), Double.valueOf(equ.getLat()), longitudeD, latitudeD) <= radius).collect(Collectors.toList()); + //在范围内的点信息 计算点与圆心间的半径距离返回信息 + for (Point p:nuclearFacilityPoints) { + stationsList.add(nuclearFacilityMap.get(p.getNuclearFacilityId())); + //计算点与圆心间的距离信息 + double radiusR = getDistance(Double.valueOf(p.getLon()), Double.valueOf(p.getLat()), longitudeD, latitudeD); + p.setRadius(String.valueOf(radiusR)); + p.setStationName(stationName); + } + if (CollectionUtils.isNotEmpty(nuclearFacilityPoints)){ + resultList.add(nuclearFacilityPoints); + } } - nuclearPoints.add(point); + map.put("GIS", stationsList.stream().distinct().collect(Collectors.toList())); + map.put("table", resultList); } - for (String stationId:stationIds) { - GardsStations point = (GardsStations)stationInfoMap.get(stationId); - stationsList.add(point); - //声明一个数组存储对应的核设施经纬度信息 - List nuclearFacilityPoints = new ArrayList<>(); - nuclearFacilityPoints.addAll(nuclearPoints); - //获取当前查询的台站名称 - String stationName = point.getStationCode(); - //获取当前查询的经度 即 圆心位置经度信息 - Double longitudeD = point.getLon(); - //获取当前查询的纬度 即 圆心位置纬度信息 - Double latitudeD = point.getLat(); - if (Objects.isNull(longitudeD)) { - result.error500("请传入经度"); - } - if (Objects.isNull(latitudeD)) { - result.error500("请传入纬度"); - } - if (!(longitudeD >= -180 && longitudeD <= 180)) { - result.error500("经度不合法"); - } - if (!(latitudeD >= -85.05112878 && latitudeD <= 85.05112878)) { - result.error500("纬度不合法"); - } - // 1.获取外接正方形 - Rectangle rectangle = getRectangle(radius, longitudeD, latitudeD); - // 2.获取位置在正方形内的所有设备 判断核设施的经纬度是否为空 不为空 判断经纬度是否在正方形的最大最小范围内 如果在则过滤出来继续使用否则弃用 - nuclearFacilityPoints = nuclearFacilityPoints.stream().filter(item-> StringUtils.isNotBlank(item.getLon()) && StringUtils.isNotBlank(item.getLat()) && - (Double.valueOf(item.getLon())>=rectangle.getMinX() && Double.valueOf(item.getLon())<= rectangle.getMaxX()) - && (Double.valueOf(item.getLat())>=rectangle.getMinY() && Double.valueOf(item.getLat())<= rectangle.getMaxY())).collect(Collectors.toList()); - //遍历在正方形范围内的数据 根据点的经纬度信息以及圆心的经纬度信息 计算出两者之间的距离 与 半径进行比较 <=半径则说明点在范围内,否则点超出半径范围 - nuclearFacilityPoints = nuclearFacilityPoints.stream() - .filter(equ -> getDistance(Double.valueOf(equ.getLon()), Double.valueOf(equ.getLat()), longitudeD, latitudeD) <= radius).collect(Collectors.toList()); - //在范围内的点信息 计算点与圆心间的半径距离返回信息 - for (Point p:nuclearFacilityPoints) { - stationsList.add(nuclearFacilityMap.get(p.getNuclearFacilityId())); - //计算点与圆心间的距离信息 - double radiusR = getDistance(Double.valueOf(p.getLon()), Double.valueOf(p.getLat()), longitudeD, latitudeD); - p.setRadius(String.valueOf(radiusR)); - p.setStationName(stationName); - } - resultList.add(nuclearFacilityPoints); - } - map.put("GIS", stationsList.stream().distinct().collect(Collectors.toList())); - map.put("table", resultList); } + } catch (IOException e) { + throw new RuntimeException(e); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); } result.setSuccess(true); result.setResult(map); return result; } + /** + * 通过序列化的方式对list进行深复制 + * + * @param src + * @param + * @return + * @throws IOException + * @throws ClassNotFoundException + */ + public static List deepCopy(List src) throws IOException, ClassNotFoundException { + + ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); + ObjectOutputStream out = new ObjectOutputStream(byteOut); + out.writeObject(src); + + ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); + ObjectInputStream in = new ObjectInputStream(byteIn); + + @SuppressWarnings("unchecked") + List dest = (List) in.readObject(); + return dest; + } + @Override public Result getDataReceivingStatus(List stationIds) { + Result result = new Result(); //获取四项缓存数据的对应内容 List> cacheList = cacheTimeService.findCacheTime(); + //缓存时间 String cacheTime = ""; - String scaleInterval = ""; - String timelineLength = ""; - String updateIntervalTime = ""; for (int i=0; i< cacheList.size(); i++){ if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.cacheTime)) ){ cacheTime = cacheList.get(i).get(CacheName.cacheTime); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.scaleInterval)) ){ - scaleInterval = cacheList.get(i).get(CacheName.scaleInterval); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.timelineLength)) ){ - timelineLength = cacheList.get(i).get(CacheName.timelineLength); - }else if ( StringUtils.isNotBlank(cacheList.get(i).get(CacheName.updateIntervalTime)) ){ - updateIntervalTime = cacheList.get(i).get(CacheName.updateIntervalTime); + break; } } + if (StringUtils.isBlank(cacheTime)){ + result.error500("缓存时间不能为空"); + return result; + } + //从redis中获取台站信息 + Map stationInfoMap = (Map)redisUtil.get("stationMap"); + //从redis中获取探测器信息 + Map detectorInfoMap = (Map)redisUtil.get("detectorsMap"); //遍历台站id if (CollectionUtils.isNotEmpty(stationIds)){ //获取当前日期时间 作为结束查询时间 - LocalDate endDate = LocalDate.now(); + LocalDateTime endDate = LocalDateTime.now(); //根据缓存日期 得到开始查询时间 - LocalDate startDate = endDate.minusDays(Integer.valueOf(cacheTime)); + LocalDateTime startDate = endDate.minusDays(Integer.valueOf(cacheTime)); + String startDateTime = startDate.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //根据台站id,开始时间查询出台站下的气象数据 + List metDataList = stationMetDataMapper.findMetDataList(stationIds, startDateTime); //根据台站id查询出当前台站下处于运行状态的数据 Map> stationDetectors = cacheTimeService.findStationDetectors(stationIds); - - + //声明存储所有台站id对应的数据信息的集合 + List stationDataList = new LinkedList<>(); + //遍历台站id 获取台站下的探测器数据 + if (CollectionUtils.isNotEmpty(stationDetectors)){ + for (String stationId:stationIds) { + Map>> stationMap = new HashMap<>(); + //获取台站下对应的探测器数据 + List detectors = stationDetectors.get(stationId); + if (CollectionUtils.isNotEmpty(detectors)){ + StationData stationData = new StationData(); + //stream流获取探测器id + List detectorIds = detectors.stream().map(GardsDetectors::getDetectorId).collect(Collectors.toList()); + //根据探测器id 开始时间查询样品基础数据 + List sampleDataList = stationSampleDataMapper.findSampleDataList(detectorIds, startDateTime); + //根据台站id,探测器id,开始时间 + List sohDataList = stationSohDataMapper.findSohDataList(stationId, detectorIds, startDateTime); + //用于接收当前台站下所有探测器及探测器所有的样品数据,气体数据,状态数据集合 + List> detectorDataList = new LinkedList<>(); + for (Integer detectorId:detectorIds) { + Map detectorMap = new HashMap<>(); + DetectorData detectorData = new DetectorData(); + detectorData.setDetectorId(detectorId); + //声明数据实体实体类 根据参数存储 样品基础数据对应的数据 气体数据 状态数据 + List dataInfoList = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(sampleDataList)){ + //根据探测器id过滤出对应的样品数据 并进行遍历封装进dataInfo + List dataListSample = sampleDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(dataListSample)){ + for (GardsSampleData sampleData:dataListSample) { + DataInfoVo dataInfo = new DataInfoVo(); + //根据样品数据类型判断 数据类型 根据不同的样品数据状态 + if (sampleData.getDataType().equals("S")){ + dataInfo.setType("PHD"); + if(sampleData.getStatus() == "PREL") { + dataInfo.setStatus("SPREL"); + } else { + dataInfo.setStatus("SFULL"); + } + } else if (sampleData.getDataType().equals("Q")){ + dataInfo.setType("QC"); + dataInfo.setStatus("QC"); + } else if (sampleData.getDataType().equals("G")){ + dataInfo.setType("PHD"); + if(sampleData.getStatus() == "PREL") { + dataInfo.setStatus("GPREL"); + } else { + dataInfo.setStatus("GFULL"); + } + } else { + continue; + } + //处理开始时间 + Date acquisitionStart = sampleData.getAcquisitionStart(); + dataInfo.setBeginTime(Double.valueOf(acquisitionStart.getTime()/1000)); + //处理结束时间 + Date acquisitionStop = sampleData.getAcquisitionStop(); + dataInfo.setEndTime(Double.valueOf(acquisitionStop.getTime()/1000)); + //时间间隔 + Double span = Double.valueOf(acquisitionStop.getTime()/1000) - Double.valueOf(acquisitionStart.getTime()/1000); + dataInfo.setSpanTime(span); + dataInfoList.add(dataInfo); + } + } + } + if (CollectionUtils.isNotEmpty(sohDataList)){ + List dataListSoh = sohDataList.stream().filter(item -> item.getDetectorId().equals(detectorId)).collect(Collectors.toList()); + //根据探测器id 台站id 开始时间查询状态数据 + if (CollectionUtils.isNotEmpty(dataListSoh)){ + for (GardsSohData sohData:dataListSoh) { + DataInfoVo dataInfo = new DataInfoVo(); + dataInfo.setType("SOH"); + dataInfo.setStatus("SOH"); + Date startTime = sohData.getStartTime(); + dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); + dataInfo.setSpanTime(Double.valueOf(sohData.getTime())); + dataInfoList.add(dataInfo); + } + } + } + if (CollectionUtils.isNotEmpty(metDataList)){ + List dataListMet = metDataList.stream().filter(item -> item.getStationId().equals(stationId)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(dataListMet)){ + for (GardsMetData metData:dataListMet) { + DataInfoVo dataInfo = new DataInfoVo(); + dataInfo.setType("MET"); + dataInfo.setStatus("MET"); + Date startTime = metData.getStartTime(); + dataInfo.setBeginTime(Double.valueOf(startTime.getTime()/1000)); + Date endTime = metData.getEndTime(); + dataInfo.setEndTime(Double.valueOf(endTime.getTime()/1000)); + Double span = Double.valueOf(startTime.getTime() / 1000) - Double.valueOf(endTime.getTime() / 1000); + dataInfo.setSpanTime(span); + dataInfoList.add(dataInfo); + } + } + } + detectorData.setDataList(dataInfoList); + if (CollectionUtils.isNotEmpty(detectorInfoMap)){ + if (detectorInfoMap.containsKey(detectorId)){ + detectorData.setDetectorCode(detectorInfoMap.get(detectorId)); + } + } + detectorMap.put(String.valueOf(detectorId), detectorData); + detectorDataList.add(detectorMap); + } + stationMap.put(stationId, detectorDataList); + stationData.setStationId(stationId); + if (CollectionUtils.isNotEmpty(stationInfoMap)){ + if (stationInfoMap.containsKey(stationId)){ + stationData.setStationCode(stationInfoMap.get(stationId)); + } + } + stationData.setDetectors(stationMap); + stationDataList.add(stationData); + } + } + } + result.setSuccess(true); + result.setResult(stationDataList); } - return null; + return result; } /** diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java index 7848e947..6b215005 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsDetectorsController.java @@ -1,6 +1,8 @@ package org.jeecg.modules.system.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; @@ -13,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; @RestController @RequestMapping("gardsDetectors") @@ -65,4 +70,9 @@ public class GardsDetectorsController { return result; } + @RequestMapping("findStationDetectors") + public Map> findStationDetectors(List stationIds){ + return gardsDetectorsService.findStationDetectors(stationIds); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java index 5d641879..423176cc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/GardsSampleDataController.java @@ -6,7 +6,7 @@ import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.system.service.IGardsSampleDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.DeleteMapping; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java index 210dd6ef..6cc67a16 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysDictItemController.java @@ -1,12 +1,13 @@ package org.jeecg.modules.system.controller; -import java.util.Arrays; -import java.util.Date; +import java.util.*; +import java.util.stream.Collectors; import javax.servlet.http.HttpServletRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang.StringUtils; @@ -182,5 +183,10 @@ public class SysDictItemController { return Result.error("该值不可用,系统中已存在!"); } } - + + @RequestMapping("findCacheTime") + public List> findCacheTime(){ + return sysDictItemService.findCacheTime(); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 8d87a97a..7111f314 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; @@ -1759,4 +1760,10 @@ public class SysUserController { sysUserService.editTenantUser(sysUser,tenantId,departs,roles); return Result.ok("修改成功"); } + + @GetMapping("findUserMap") + public Map findUserMap(){ + return sysUserService.findUserMap(); + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java index 21a9d819..74fbf875 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -17,23 +17,41 @@ import java.util.Date; @TableName("GARDS_DETECTORS") public class GardsDetectors implements Serializable { + /** + * 探测器id + */ @TableField(value = "DETECTOR_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer detectorId; + /** + * 探测器编码 + */ @TableField(value = "DETECTOR_CODE") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String detectorCode; + /** + * 经度 + */ @TableField(value = "LON") private Double lon; + /** + * 纬度 + */ @TableField(value = "LAT") private Double lat; + /** + * 探测器类型 + */ @TableField(value = "TYPE") private String type; + /** + * 总道数 + */ @TableField(value = "CHANNELS") private Double channels; @@ -43,33 +61,57 @@ public class GardsDetectors implements Serializable { @TableField(value = "RATED_RESOLUTION") private Double ratedResolution; + /** + * 能量刻度范围(keV) + */ @TableField(value = "ECAL_RANGE_MAX") private Double ecalRangeMax; + /** + * 开始运行日期 + */ @TableField(value = "DATE_BEGIN") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dateBegin; + /** + * 结束运行日期 + */ @TableField(value = "DATE_END") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date dateEnd; + /** + * Y:在运行,状态良好;N:停止 + */ @TableField(value = "STATUS") private String status; + /** + * 说明 + */ @TableField(value = "DESCRIPTION") private String description; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; + /** + * 台站id + */ @TableField(value = "STATION_ID") private Integer stationId; + /** + * 台站名称 + */ @TableField(exist = false) private String stationName; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java index fa44a24e..f0670556 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsNuclearfacility.java @@ -18,70 +18,127 @@ import java.util.Date; @TableName("GARDS_NUCLEARFACILITY") public class GardsNuclearfacility implements Serializable { + /** + * 核设施id + */ @TableField(value = "FACILITY_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer facilityId; + /** + * 核设施名称 + */ @TableField(value = "FACILITY_NAME") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String facilityName; + /** + * 核设施类型 + */ @TableField(value = "TYPE") private String type; + /** + * 地点 + */ @TableField(value = "LOCATION") private String location; + /** + * 经度 + */ @TableField(value = "LONGITUDE") private String longitude; + /** + * 纬度 + */ @TableField(value = "LATITUDE") private String latitude; + /** + * 状态 + */ @TableField(value = "STATUS") private String status; + /** + * 修建时间 + */ @TableField(value = "BUILDDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date buildDate; + /** + * 临界时间 + */ @TableField(value = "CRITICALITYDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date criticalityDate; + /** + * 退休时间 + */ @TableField(value = "RETIREDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date retireDate; + /** + * 网格工程日期 + */ @TableField(value = "GRIDCONEETIONDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date gridconeetionDate; + /** + * 销售公司 + */ @TableField(value = "VENDOR") private String vendor; + /** + * 拥有者 + */ @TableField(value = "OWNER") private String owner; + /** + * 操作人员 + */ @TableField(value = "OPERARTOR") private String operartor; + /** + * 容量 + */ @TableField(value = "CAPACITYGROSS") private Integer capacitygross; + /** + * 容量集 + */ @TableField(value = "CAPACITYNET") private Integer capacitynet; + /** + * 热容量 + */ @TableField(value = "CAPACITYTHERMAL") private Integer capacitythermal; + /** + * 活动时间 + */ @TableField(value = "ACTIVITY_DAY") private Integer activityDay; + /** + * 活动年份 + */ @TableField(value = "ACTIVITY_YEAR") private Integer activityYear; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java deleted file mode 100644 index b641ac6d..00000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsSampleData.java +++ /dev/null @@ -1,90 +0,0 @@ -package org.jeecg.modules.system.entity; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; - -import java.io.Serializable; -import java.util.Date; - -@Data -@TableName("GARDS_SAMPLE_DATA") -public class GardsSampleData implements Serializable { - - @TableField(value = "SITE_DET_CODE") - private String siteDetCode; - - @TableField(value = "SAMPLE_ID") - private Integer sampleId; - - @TableField(value = "STATION_ID") - private Integer stationId; - - @TableField(value = "DETECTOR_ID") - private Integer detectorId; - - @TableField(value = "INPUT_FILE_NAME") - private String inputFileName; - - @TableField(value = "SAMPLE_TYPE") - private String sampleType; - - @TableField(value = "DATA_TYPE") - private String dataType; - - @TableField(value = "GEOMETRY") - private String geometry; - - @TableField(value = "SPECTRAL_QUALIFIE") - private String spectralQualifie; - - @TableField(value = "TRANSMIT_DTG") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date transmitDtg; - - @TableField(value = "COLLECT_START") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date collectStart; - - @TableField(value = "COLLECT_STOP") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date collectStop; - - @TableField(value = "ACQUISITION_START") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date acquisitionStart; - - @TableField(value = "ACQUISITION_STOP") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date acquisitionStop; - - @TableField(value = "ACQUISITION_REAL_SEC") - private Double acquisitionRealSec; - - @TableField(value = "ACQUISITION_LIVE_SEC") - private Double acquisitionLiveSec; - - @TableField(value = "QUANTITY") - private Double quantity; - - @TableField(value = "STATUS") - private String status; - - @TableField(value = "MODDATE") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date moddate; - - @TableField(exist = false) - private String stationName; - - @TableField(exist = false) - private String detectorsName; - -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java index 358cf982..19d3ac81 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/entity/GardsStations.java @@ -20,45 +20,81 @@ import java.util.Date; @TableName(value = "GARDS_STATIONS") public class GardsStations implements Serializable { + /** + * 台站id + */ @TableField(value = "STATION_ID") @NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private Integer stationId; + /** + * 台站编码 + */ @TableField(value = "STATION_CODE") @NotBlank(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class}) private String stationCode; + /** + * 城市编码 + */ @TableField(value = "COUNTRY_CODE") private String countryCode; + /** + * 台站类型 + */ @TableField(value = "TYPE") private String type; + /** + * 经度 + */ @TableField(value = "LON") private Double lon; + /** + * 纬度 + */ @TableField(value = "LAT") private Double lat; + /** + * 海拔 + */ @TableField(value = "ELEVATION") private Double elevation; + /** + * 描述 + */ @TableField(value = "DESCRIPTION") private String description; + /** + * 开始运行日期 + */ @TableField(value = "DATE_BEGIN") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date dateBegin; + /** + * 运行终止日期 + */ @TableField(value = "DATE_END") @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd") private Date dateEnd; + /** + * 运行状态 + */ @TableField(value = "STATUS") private String status; + /** + * 操作时间 + */ @TableField(value = "MODDATE") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date moddate; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java index 3e982896..eef52594 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/mapper/GardsSampleDataMapper.java @@ -1,7 +1,7 @@ package org.jeecg.modules.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; public interface GardsSampleDataMapper extends BaseMapper { } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java index e84b088f..403102b9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsDetectorsService.java @@ -7,6 +7,7 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.system.entity.GardsDetectors; import java.util.List; +import java.util.Map; public interface IGardsDetectorsService extends IService { @@ -57,4 +58,11 @@ public interface IGardsDetectorsService extends IService { */ void findDetectors(); + /** + * 根据台站id查询对应的探测器数据信息 + * @param stationIds + * @return + */ + Map> findStationDetectors(List stationIds); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java index 904bcb05..d4027b5f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/IGardsSampleDataService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; public interface IGardsSampleDataService extends IService { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java index 803b490e..913945a6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysDictItemService.java @@ -4,6 +4,7 @@ import org.jeecg.modules.system.entity.SysDictItem; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** *

@@ -21,4 +22,11 @@ public interface ISysDictItemService extends IService { * @return */ public List selectItemsByMainId(String mainId); + + /** + * 查询缓存时间等信息 + * @return + */ + List> findCacheTime(); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java index 860aa539..a1362ac1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserService.java @@ -397,4 +397,11 @@ public interface ISysUserService extends IService { * @param departs */ void editTenantUser(SysUser sysUser, String tenantId, String departs, String roles); + + /** + * 查询用户map + * @return + */ + Map findUserMap(); + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java index 2f470ba9..85b6c1bf 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsDetectorsServiceImpl.java @@ -148,4 +148,19 @@ public class GardsDetectorsServiceImpl extends ServiceImpl detectorsMap = gardsDetectors.stream().collect(Collectors.toMap(GardsDetectors::getDetectorId, GardsDetectors::getDetectorCode)); redisUtil.set("detectorsMap",detectorsMap); } + + @Override + public Map> findStationDetectors(List stationIds) { + Map> map = new HashMap<>(); + if (CollectionUtils.isNotEmpty(stationIds)){ + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List detectorsList = this.baseMapper.selectList(queryWrapper); + for (String stationId:stationIds) { + List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); + map.put(stationId, detectors); + } + } + return map; + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java index c9f4d108..d62f75fd 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/GardsSampleDataServiceImpl.java @@ -11,7 +11,7 @@ import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.system.entity.GardsDetectors; -import org.jeecg.modules.system.entity.GardsSampleData; +import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.system.entity.GardsStations; import org.jeecg.modules.system.mapper.GardsSampleDataMapper; import org.jeecg.modules.system.service.IGardsDetectorsService; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java index 33184a9e..973d6fcc 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysDictItemServiceImpl.java @@ -1,5 +1,7 @@ package org.jeecg.modules.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import org.jeecg.modules.system.entity.SysDictItem; import org.jeecg.modules.system.mapper.SysDictItemMapper; import org.jeecg.modules.system.service.ISysDictItemService; @@ -7,7 +9,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -27,4 +32,37 @@ public class SysDictItemServiceImpl extends ServiceImpl selectItemsByMainId(String mainId) { return sysDictItemMapper.selectItemsByMainId(mainId); } + + @Override + public List> findCacheTime() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + List sysDictItems = sysDictItemMapper.selectList(queryWrapper); + List> result = new LinkedList<>(); + //获取缓存时间对应的值 + List cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(cacheTime)){ + Map cacheTimeMap = cacheTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(cacheTimeMap); + } + //获取实际分度值 + List scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(scaleInterval)){ + Map scaleIntervalMap = scaleInterval.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(scaleIntervalMap); + } + //获取时间线长度 + List timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(timelineLength)){ + Map timelineLengthMap = timelineLength.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(timelineLengthMap); + } + //获取更新间隔时间 + List updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(updateIntervalTime)){ + Map updateIntervalTimeMap = updateIntervalTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); + result.add(updateIntervalTimeMap); + } + return result; + } + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java index 07416d20..b7d0f5a6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserServiceImpl.java @@ -1297,6 +1297,38 @@ public class SysUserServiceImpl extends ServiceImpl impl this.updateTenantDepart(user, tenantId, departs); } + @Override + public Map findUserMap() { + Map map = new HashMap<>(); + LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); + List sysUsers = this.baseMapper.selectList(userQueryWrapper); + LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); + List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); + LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); + List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); + List roles = new LinkedList<>(); + //遍历所有用户信息 + if (CollectionUtils.isNotEmpty(sysUsers)){ + for (SysUser sysUser:sysUsers) { + if (CollectionUtils.isNotEmpty(sysUserRoles)){ + //获取各用户匹配的权限集合 + List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); + List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(sysRoles)){ + for (SysRole role:sysRoles) { + if (roleIds.contains(role.getId())){ + roles.add(role); + } + } + } + sysUser.setRoles(roles); + } + map.put(sysUser.getId(), sysUser); + } + } + return map; + } + /** * 修改租户下的部门 * @param departs diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java index 20a622f4..cd943508 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java @@ -11,66 +11,129 @@ import java.util.Date; @TableName(value = "gards_analyses") public class GardsAnalyses implements Serializable { + /** + * 分析ID号 + */ @TableField(value = "IDANALYSIS") private Integer idAnalysis; + /** + * 样品id + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 分析开始时间 + */ @TableField(value = "ANALYSISBEGIN") private Date analysisBegin; + /** + * 分析结束时间 + */ @TableField(value = "ANALYSISEND") private Date analysisEnd; + /** + * Reviewed:交互; + */ @TableField(value = "TYPE") private String type; + /** + * 使用的软件名称 + */ @TableField(value = "SOFTWARE") private String software; + /** + * 软件版本号 + */ @TableField(value = "SWVERSION") private String swVersion; + /** + * 分析员名称 + */ @TableField(value = "ANALYST") private String analyst; + /** + * 基线计数方法描述 + */ @TableField(value = "BASELINEMETHOD") private String baseLineMethod; + /** + * 寻峰方法描述 + */ @TableField(value = "PEAKSMETHOD") private String peaksMethod; + /** + * 核素识别方法描述 + */ @TableField(value = "NUCLIDEMETHOD") private String nuclideMethod; + /** + * 不确定度计算描述 + */ @TableField(value = "UNCCALCMETHOD") private String unccalcMethod; + /** + * Lc计算方法描述 + */ @TableField(value = "LCMETHOD") private String lcMethod; + /** + * 寻峰起始道 + */ @TableField(value = "SEARCHSTARTCHANNEL") private Integer searchStartChannel; + /** + * 寻峰结束道 + */ @TableField(value = "SEARCHENDCHANNEL") private Integer searchEndChannel; + /** + * 寻峰阈值(能窗宽度) + */ @TableField(value = "SEARCHTHRESHOLD") private Double searchThreshold; + /** + * 峰数目 + */ @TableField(value = "NUMBEROFPEAKS") private Integer numberOfPeaks; + /** + * 总计数 + */ @TableField(value = "TOTALCOUNTS") private Double totalCounts; + /** + * 分级结果 + */ @TableField(value = "CATEGORY") private Integer cateGory; + /** + * 注释 + */ @TableField(value = "COMMENTS") private String comments; + /** + * 操作时间 + */ @TableField(value = "MODDATE") private Date moddate; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java index 8ef8929e..5bc6877d 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsCalibrationPairsOrig.java @@ -10,30 +10,58 @@ import java.io.Serializable; @TableName(value = "gards_calibration_pairs_orig") public class GardsCalibrationPairsOrig implements Serializable { + /** + * 样品ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 系统类型 G:gamma探测器的数据,#g_;B:beta探测器的数据,#b_ + */ @TableField(value = "SAMPLE_TYPE") private String sampleType; + /** + * 刻度类型 energy:能量刻度;efficiency:效率刻度; + * Resolution:分辨率刻度 + */ @TableField(value = "CALTYPE") private String caltype; + /** + * 来源 PHD:代表数据来自PHD文件;External:代表数据来自外部,如刻度工具、其它文件等 + */ @TableField(value = "INPUT") private String input; + /** + * 刻度点ID号 + */ @TableField(value = "IDCALPOINT") private Integer idcalpoint; + /** + * x轴数值 + */ @TableField(value = "XVALUE") private Double xvalue; + /** + * y轴数值 + */ @TableField(value = "YVALUE") private Double yvalue; + /** + * y值不确定度 + */ @TableField(value = "UNCYVALUE") private Double uncyvalue; + /** + * 衰变模式 + */ @TableField(value = "DECAY_MODE") private String decayMode; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java index e2427bb1..0dd83081 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java @@ -11,45 +11,87 @@ import java.util.Date; @TableName(value = "gards_sample_aux") public class GardsSampleAux implements Serializable { + /** + * 样品ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 样品参考ID + */ @TableField(value = "SAMPLE_REF_ID") private String sampleRefId; + /** + * 样品测量ID + */ @TableField(value = "MEASUREMENT_ID") private String measurementId; + /** + * 探测器本底测量ID + */ @TableField(value = "BKGD_MEASUREMENT_ID") private String bkgdMeasurementId; + /** + * 气体本底测量ID + */ @TableField(value = "GAS_BKGD_MEASUREMENT_ID") private String gasBkgdMeasurementId; + /** + * 样品的几何尺寸,#Sample数据块 dimension2 + */ @TableField(value = "SAMPLE_HEIGHT") private Double sampleHeight; + /** + * 样品的几何尺寸,#Sample数据块 dimension1 + */ @TableField(value = "SAMPLE_DIAMETER") private Double sampleDiameter; + /** + * #calibration数据块 + */ @TableField(value = "CALIBRATION_DTG") private Date calibrationDtg; + /** + * 报文ID号 + */ @TableField(value = "MSG_ID") private String msgId; + /** + * 归档瓶ID号 + */ @TableField(value = "ARCHIVE_BOTTLE_ID") private String archiveBottleId; + /** + * 氙体积 + */ @TableField(value = "XE_VOLUME") private Double xeVolume; + /** + * 氙体积不确定度 + */ @TableField(value = "XE_VOLUME_UNCER") private Double xeVolumeUncer; + /** + * 氙收集效率 + */ @TableField(value = "XE_COLLECTION_YIED") private Double xeCollectionYied; + /** + * 氙收集效率不确定度 + */ @TableField(value = "XE_COLLECTION_YIED_UNCER") private Double xeCollectionYiedUncer; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java index 2cb3dc07..39487799 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCert.java @@ -11,15 +11,27 @@ import java.util.Date; @TableName(value = "gards_sample_cert") public class GardsSampleCert implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 刻度源活度(Bq)total_source_activity + */ @TableField(value = "QUANTITY") private Integer quantity; + /** + * 鉴定日期 + */ @TableField(value = "ASSAY_DATE") private Date assayDate; + /** + * 单位 + */ @TableField(value = "UNIT") private String unit; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java index 21830cff..32f94f2f 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleCertLine.java @@ -10,36 +10,69 @@ import java.io.Serializable; @TableName(value = "gards_sample_cert_line") public class GardsSampleCertLine implements Serializable { + /** + * 台站ID号 + */ @TableField(value = "SAMPLE_ID") private Integer sampleId; + /** + * 核素名称 + */ @TableField(value = "NUCL_NAME") private String nuclName; + /** + * 半衰期(秒S、小时H、天D、年Y) + */ @TableField(value = "HALFLIFE") private String halflife; + /** + * γ能量(keV) + */ @TableField(value = "ENERGY") private Integer energy; + /** + * 核素活度(Bq) + */ @TableField(value = "ACTIVITY") private Integer activity; + /** + * 核素活度不确定度(%) + */ @TableField(value = "ERROR") private Integer error; + /** + * γ射线强度(%) + */ @TableField(value = "ABUNDANCE") private Integer abundance; + /** + * β射线强度(%) + */ @TableField(value = "B_ABUNDANCE") private Integer bAbundance; + /** + * β能量 + */ @TableField(value = "B_ENERGY") private Integer bEnergy; + /** + * 衰变模式: + */ @TableField(value = "DECAY_MODE") private String decayMode; + /** + * 半衰期单位 + */ @TableField(value = "HALFLIFT_UNIT") private String halfliftUnit; diff --git a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java index 67cd1f7d..e4c4cc75 100644 --- a/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java +++ b/jeecg-server-cloud/jeecg-system-cloud-start/src/main/java/org/jeecg/modules/controller/AlarmSysUserController.java @@ -33,86 +33,7 @@ public class AlarmSysUserController { @Resource private GardsDetectorsMapper gardsDetectorsMapper; - @GetMapping("findUserMap") - public Map findUserMap(){ - Map map = new HashMap<>(); - LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); - List sysUsers = sysUserMapper.selectList(userQueryWrapper); - LambdaQueryWrapper userRoleQueryWrapper = new LambdaQueryWrapper<>(); - List sysUserRoles = sysUserRoleMapper.selectList(userRoleQueryWrapper); - LambdaQueryWrapper roleQueryWrapper = new LambdaQueryWrapper<>(); - List sysRoles = sysRoleMapper.selectList(roleQueryWrapper); - List roles = new LinkedList<>(); - //遍历所有用户信息 - if (CollectionUtils.isNotEmpty(sysUsers)){ - for (SysUser sysUser:sysUsers) { - if (CollectionUtils.isNotEmpty(sysUserRoles)){ - //获取各用户匹配的权限集合 - List userRoles = sysUserRoles.stream().filter(item -> item.getUserId().equals(sysUser.getId())).collect(Collectors.toList()); - List roleIds = userRoles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(sysRoles)){ - for (SysRole role:sysRoles) { - if (roleIds.contains(role.getId())){ - roles.add(role); - } - } - } - sysUser.setRoles(roles); - } - map.put(sysUser.getId(), sysUser); - } - } - return map; - } - @RequestMapping("findCacheTime") - public List> findCacheTime(){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List sysDictItems = sysDictItemMapper.selectList(queryWrapper); - List> result = new LinkedList<>(); - //获取缓存时间对应的值 - List cacheTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Cache time")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(cacheTime)){ - Map cacheTimeMap = cacheTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(cacheTimeMap); - } - //获取实际分度值 - List scaleInterval = sysDictItems.stream().filter(item -> item.getItemText().equals("Scale interval")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(scaleInterval)){ - Map scaleIntervalMap = scaleInterval.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(scaleIntervalMap); - } - //获取时间线长度 - List timelineLength = sysDictItems.stream().filter(item -> item.getItemText().equals("Timeline length")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(timelineLength)){ - Map timelineLengthMap = timelineLength.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(timelineLengthMap); - } - //获取更新间隔时间 - List updateIntervalTime = sysDictItems.stream().filter(item -> item.getItemText().equals("Update interval time")).collect(Collectors.toList()); - if (CollectionUtils.isNotEmpty(updateIntervalTime)){ - Map updateIntervalTimeMap = updateIntervalTime.stream().collect(Collectors.toMap(SysDictItem::getItemText, SysDictItem::getItemValue)); - result.add(updateIntervalTimeMap); - } - return result; - } - - - @RequestMapping("findStationDetectors") - @DS("ora") - public Map> findStationDetectors(List stationIds){ - Map> map = new HashMap<>(); - if (CollectionUtils.isNotEmpty(stationIds)){ - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - List detectorsList = gardsDetectorsMapper.selectList(queryWrapper); - for (String stationId:stationIds) { - List detectors = detectorsList.stream().filter(item -> item.getStationId().equals(stationId) && item.getStatus().equals("Operating")).collect(Collectors.toList()); - map.put(stationId, detectors); - } - } - return map; - } - }