fix:1.ARR/RRR增加筛选与回显字段2.探测器新增

This commit is contained in:
nieziyan 2024-01-09 20:45:15 +08:00
parent 9de7d91447
commit 3fc44ee0fb
17 changed files with 113 additions and 52 deletions

View File

@ -9,9 +9,9 @@ public enum DbType {
MYSQL55("1", "MySQL5.5"), ORACLE("2", "Oracle"),
POSTGRESQL("6","PostgreSQL"), MYSQL57("4", "MySQL5.7+");
private String type;
private final String type;
private String text;
private final String text;
public static DbType typeOf(String type){
for (DbType dbType : DbType.values()) {

View File

@ -1,6 +1,7 @@
package org.jeecg.modules.base.entity.configuration;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -20,7 +21,7 @@ public class GardsDetectors implements Serializable {
/**
* 探测器id
*/
@TableField(value = "DETECTOR_ID")
@TableId(value = "DETECTOR_ID")
@NotNull(message = "不能为空", groups = {InsertGroup.class, UpdateGroup.class})
private Integer detectorId;

View File

@ -229,8 +229,9 @@ public class StatusAspect {
// 如果是发件服务器 清除Redis缓存
SysEmail sender = (SysEmail) redisUtil.get(RedisConstant.EMAIL_SENDER);
if (ObjectUtil.isNull(sender)) return;
if (StrUtil.equals(emailId, sender.getId()))
redisUtil.del(RedisConstant.EMAIL_SENDER);
if (!StrUtil.equals(emailId, sender.getId())) return;
redisUtil.del(RedisConstant.EMAIL_SENDER);
emailService.sender2Redis();
}
}
}

View File

@ -265,16 +265,14 @@ public class SysEmailServiceImpl extends ServiceImpl<SysEmailMapper, SysEmail> i
@Override
public SysEmail sender2Redis() {
String key = RedisConstant.EMAIL_SENDER;
LambdaQueryWrapper<SysEmail> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysEmail::getEmilType, SysMailType.SEND_EMAIL.getEmailType());
wrapper.eq(SysEmail::getEnabled, ENABLED.getValue());
List<SysEmail> emails = this.list(wrapper);
Optional<SysEmail> first = emails.stream().findFirst();
if(!first.isPresent())
return null;
if(!first.isPresent()) return null;
SysEmail sender = first.get();
redisUtil.set(key, sender);
redisUtil.set(RedisConstant.EMAIL_SENDER, sender);
log.info("缓存了可用的发件邮箱到Redis: {}", sender.getUsername());
return sender;
}

View File

@ -2,13 +2,16 @@ package org.jeecg.modules;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import org.apache.commons.io.FileUtils;
import org.jeecg.common.constant.DateConstant;
import org.jeecg.common.util.SpringContextUtils;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;
import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
@ -22,9 +25,9 @@ public class DelFileManager{
delFileThread.start();
}
private class DelFileThread extends Thread{
private static class DelFileThread extends Thread{
private boolean m_runFlag;
private final boolean m_runFlag;
private long m_sleepTime;
private long m_interTime;
@ -38,8 +41,9 @@ public class DelFileManager{
@Override
public void run() {
while (m_runFlag) {
long nowSeconds = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
for (String dirPath : m_delteFileList) {
delDirFile(dirPath);
delDirFile(dirPath, nowSeconds);
delEmptyDir(dirPath);
}
try {
@ -62,18 +66,18 @@ public class DelFileManager{
m_delteFileList.add(emlPath);
m_delteFileList.add(logPath);
// 默认删除天前的文件
Integer interDay = env.getProperty("filesystem.interDay", Integer.class, 3);
// 默认删除30天前的文件
Integer interDay = env.getProperty("filesystem.interDay", Integer.class, 30);
m_interTime = interDay * DateConstant.DAY_SECONDS;
// 指定线程休眠时间(ms)
// 指定线程休眠时间(ms) 为一天
m_sleepTime = DateConstant.DAY_SECONDS * 1000;
}
/**
* 删除指定目录下的指定文件
*/
private boolean delDirFile(String dirPath){
private boolean delDirFile(String dirPath, long nowSeconds){
if (StrUtil.isBlank(dirPath))
return false;
@ -86,7 +90,6 @@ public class DelFileManager{
if (CollUtil.isEmpty(files))
return true;
long nowSeconds = TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis());
for (File file : files) {
if (file.isFile()){
long lastModified = file.lastModified();
@ -96,7 +99,7 @@ public class DelFileManager{
file.delete();
}
}else {
delDirFile(file.getAbsolutePath());
delDirFile(file.getAbsolutePath(), nowSeconds);
}
}

View File

@ -2,6 +2,7 @@ package org.jeecg.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.base.entity.configuration.GardsDetectors;
import org.jeecg.modules.system.entity.GardsDetectorsSystem;
import java.util.List;
@ -22,4 +23,5 @@ public interface GardsDetectorsMapper extends BaseMapper<GardsDetectorsSystem> {
*/
List<String> findType();
List<GardsDetectorsSystem> list(Integer stationId, String status);
}

View File

@ -39,4 +39,14 @@
SELECT DISTINCT TYPE FROM CONFIGURATION.GARDS_DETECTORS
</select>
<select id="list" resultType="org.jeecg.modules.system.entity.GardsDetectorsSystem">
SELECT
*
FROM
CONFIGURATION.GARDS_DETECTORS det
<where>
det.STATION_ID = #{stationId} AND TRIM(det.STATUS) = #{status}
</where>
ORDER BY det.DETECTOR_ID ASC
</select>
</mapper>

View File

@ -1,5 +1,9 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -7,8 +11,10 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import org.jeecg.common.api.QueryRequest;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.Prompt;
import org.jeecg.common.util.RedisUtil;
import org.jeecg.modules.base.entity.configuration.GardsDetectors;
import org.jeecg.modules.system.entity.GardsDetectorsSystem;
@ -75,21 +81,39 @@ public class GardsDetectorsServiceImpl extends ServiceImpl<GardsDetectorsMapper,
}
@Override
public Result create(GardsDetectorsSystem gardsDetectors) {
Result result = new Result();
if (StringUtils.isNotBlank(gardsDetectors.getDetectorCode())){
LambdaQueryWrapper<GardsDetectorsSystem> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(GardsDetectorsSystem::getDetectorCode, gardsDetectors.getDetectorCode());
GardsDetectorsSystem detectors = this.baseMapper.selectOne(queryWrapper);
if (Objects.nonNull(detectors)) {
result.error500("The current data already existsAdd failure");
return result;
@Transactional
public Result<?> create(GardsDetectorsSystem detector) {
Integer detectorId = detector.getDetectorId();
String detectorCode = detector.getDetectorCode();
LambdaQueryWrapper<GardsDetectorsSystem> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(GardsDetectors::getDetectorId, detectorId);
wrapper.or().eq(GardsDetectors::getDetectorCode, detectorCode);
if (CollUtil.isNotEmpty(this.list(wrapper)))
return Result.error("The detector id or code cannot be repeated");
Integer stationId = detector.getStationId();
if (ObjectUtil.isNull(stationId))
return Result.error("Station id of the detector cannot be empty");
// 查询相同台站下所有工作的探测器 按照探测器Id升序排序
List<GardsDetectorsSystem> detectors = this.baseMapper.list(stationId, "Operating");
// 如果相同台站下没有工作探测器
if (CollUtil.isEmpty(detectors)){
boolean success = this.save(detector);
if (success){
this.findDetectors();
return Result.OK(Prompt.ADD_SUCC);
}
return Result.error(Prompt.ADD_ERR);
}
this.baseMapper.insert(gardsDetectors);
result.success("Save successfully");
this.findDetectors();
return result;
// 如果相同台站下有工作探测器 将Id最小的探测器状态置为 Unoperating
GardsDetectorsSystem detectorMin = detectors.get(0);
detectorMin.setStatus("Unoperating");
detectors = ListUtil.toList(detectorMin, detector);
boolean success = this.saveOrUpdateBatch(detectors);
if (success){
this.findDetectors();
return Result.OK(Prompt.ADD_SUCC);
}
return Result.error(Prompt.ADD_ERR);
}
@Override

View File

@ -24,15 +24,17 @@ public class RadionuclideController {
@GetMapping("findAutoPage")
@ApiOperation(value = "分页查询自动处理结果", notes = "分页查询自动处理结果")
public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds,
@DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
return autoService.findAutoPage(queryRequest, stationIds, startTime, endTime);
public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie,
@DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
return autoService.findAutoPage(queryRequest, stationIds, qualifie, startTime, endTime);
}
@GetMapping("findReviewedPage")
@ApiOperation(value = "分页查询人工交互结果", notes = "分页查询人工交互结果")
public Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds,
@DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime, @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
return reviewedService.findReviewedPage(queryRequest, stationIds, startTime, endTime);
public Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie,
@DateTimeFormat(pattern = "yyyy-MM-dd")Date startTime,
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
return reviewedService.findReviewedPage(queryRequest, stationIds, qualifie,startTime, endTime);
}
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.jeecg.modules.base.entity.original.GardsSampleData;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.web.jsf.FacesContextUtils;
@Data
@TableName("ORIGINAL.GARDS_SAMPLE_DATA")
@ -35,4 +36,6 @@ public class GardsSampleDataWeb extends GardsSampleData {
@Excel(name = "NO" ,orderNum = "1")
private Integer no;
@TableField(exist = false)
private String analyst;
}

View File

@ -19,27 +19,35 @@ public class SampleDataDto implements Serializable {
@Excel(name = "STATION" ,orderNum = "2")
private String stationName;
@Excel(name = "QUALIFIE", orderNum = "3")
private String spectralQualifie;
@Excel(name = "ANALYST", orderNum = "4")
private String analyst;
/**
* 样品采集开始时间
*/
@Excel(name = "START TIME",format = "yyyy-MM-dd HH:mm:ss",orderNum = "3",width = 30)
@Excel(name = "START TIME",format = "yyyy-MM-dd HH:mm:ss",orderNum = "5",width = 30)
private Date collectStart;
/**
* 样品采集结束时间
*/
@Excel(name = "STOP TIME",format = "yyyy-MM-dd HH:mm:ss",orderNum = "4",width = 30)
@Excel(name = "STOP TIME",format = "yyyy-MM-dd HH:mm:ss",orderNum = "6",width = 30)
private Date collectStop;
/**
* 样品id
*/
@Excel(name = "SID" ,orderNum = "5")
@Excel(name = "SID" ,orderNum = "7")
private Integer sampleId;
public SampleDataDto(GardsSampleDataWeb sampleData) {
this.no = sampleData.getNo();
this.stationName = sampleData.getStationName();
this.spectralQualifie = sampleData.getSpectralQualifie();
this.analyst = sampleData.getAnalyst();
this.collectStart = sampleData.getCollectStart();
this.collectStop = sampleData.getCollectStop();
this.sampleId = sampleData.getSampleId();

View File

@ -12,9 +12,9 @@ import java.util.List;
@Mapper
public interface GardsSampleDataWebMapper extends BaseMapper<GardsSampleDataWeb> {
Page<GardsSampleDataWeb> findAutoPage(String startDate, String endDate, List<Integer> stationIdList, Page<GardsSampleDataWeb> page);
Page<GardsSampleDataWeb> findAutoPage(String startDate, String endDate, List<Integer> stationIdList, String qualifie, Page<GardsSampleDataWeb> page);
Page<GardsSampleDataWeb> findReviewedPage(String startDate, String endDate, List<Integer> stationIdList, Page<GardsSampleDataWeb> page);
Page<GardsSampleDataWeb> findReviewedPage(String startDate, String endDate, List<Integer> stationIdList, String qualifie, Page<GardsSampleDataWeb> page);
Page<GardsSampleDataWeb> findParticulatePage(String dataType, String spectralQualifie, String startDate, String endDate, List<Integer> stationIdList, Page<GardsSampleDataWeb> page);

View File

@ -22,7 +22,8 @@
sam.ACQUISITION_LIVE_SEC,
sam.QUANTITY,
sam.STATUS,
sam.MODDATE
sam.MODDATE,
ana.ANALYST
FROM
ORIGINAL.GARDS_SAMPLE_DATA sam
INNER JOIN RNAUTO.GARDS_ANALYSES ana on ana.SAMPLE_ID = sam.SAMPLE_ID
@ -38,6 +39,9 @@
#{stationId}
</foreach>
</if>
<if test = "qualifie != null and qualifie != ''">
AND sam.SPECTRAL_QUALIFIE = #{qualifie}
</if>
</where>
ORDER BY sam.ACQUISITION_START DESC
</select>
@ -62,7 +66,8 @@
sam.ACQUISITION_LIVE_SEC,
sam.QUANTITY,
sam.STATUS,
sam.MODDATE
sam.MODDATE,
ana.ANALYST
FROM
ORIGINAL.GARDS_SAMPLE_DATA sam
INNER JOIN RNMAN.GARDS_ANALYSES ana on ana.SAMPLE_ID = sam.SAMPLE_ID
@ -78,6 +83,9 @@
#{stationId}
</foreach>
</if>
<if test = "qualifie != null and qualifie != ''">
AND sam.SPECTRAL_QUALIFIE = #{qualifie}
</if>
</where>
ORDER BY sam.ACQUISITION_START DESC
</select>

View File

@ -10,7 +10,7 @@ import java.util.Date;
public interface IAutoService extends IService<GardsAnalyses> {
Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, Date startTime, Date endTime);
Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, Date startTime, Date endTime);
GardsAnalyses getOne(Integer sampleId);

View File

@ -10,7 +10,7 @@ import java.util.Date;
public interface IReviewedService extends IService<GardsAnalyses> {
Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, Date startTime, Date endTime);
Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, Date startTime, Date endTime);
GardsAnalyses getOne(Integer sampleId);

View File

@ -2,6 +2,7 @@ package org.jeecg.modules.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@ -44,7 +45,7 @@ public class AutoServiceImpl extends ServiceImpl<GardsAnalysesAutoMapper, GardsA
private RedisUtil redisUtil;
@Override
public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, Date startTime, Date endTime) {
public Result findAutoPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, Date startTime, Date endTime) {
Result result = new Result();
//获取redis中缓存的台站信息
Map<String, String> stationMap = (Map<String, String>)redisUtil.get("stationMap");
@ -64,8 +65,8 @@ public class AutoServiceImpl extends ServiceImpl<GardsAnalysesAutoMapper, GardsA
}else {
stationIdList = Arrays.asList(stationIds);
}
Page<GardsSampleDataWeb> page = new Page(queryRequest.getPageNo(), queryRequest.getPageSize());
Page<GardsSampleDataWeb> sampleDataPage = gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, page);
Page<GardsSampleDataWeb> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
Page<GardsSampleDataWeb> sampleDataPage = gardsSampleDataWebMapper.findAutoPage(startDate, endDate, stationIdList, qualifie, page);
sampleDataPage.getRecords().forEach(item->{
item.setSiteDetCode(StringUtils.trim(item.getSiteDetCode()));
if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){

View File

@ -44,7 +44,7 @@ public class ReviewedServiceImpl extends ServiceImpl<GardsAnalysesManMapper, Gar
private RedisUtil redisUtil;
@Override
public Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, Date startTime, Date endTime) {
public Result findReviewedPage(QueryRequest queryRequest, Integer[] stationIds, String qualifie, Date startTime, Date endTime) {
Result result = new Result();
//获取redis中缓存的台站信息
Map<String, String> stationMap = (Map<String, String>)redisUtil.get("stationMap");
@ -64,8 +64,8 @@ public class ReviewedServiceImpl extends ServiceImpl<GardsAnalysesManMapper, Gar
}else {
stationIdList = Arrays.asList(stationIds);
}
Page<GardsSampleDataWeb> page = new Page(queryRequest.getPageNo(), queryRequest.getPageSize());
Page<GardsSampleDataWeb> sampleDataPage = gardsSampleDataWebMapper.findReviewedPage(startDate, endDate, stationIdList, page);
Page<GardsSampleDataWeb> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
Page<GardsSampleDataWeb> sampleDataPage = gardsSampleDataWebMapper.findReviewedPage(startDate, endDate, stationIdList, qualifie, page);
sampleDataPage.getRecords().forEach(item->{
item.setSiteDetCode(StringUtils.trim(item.getSiteDetCode()));
if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){