分离Log Manage模块
实现统计分析管理 根据菜单名称查询对应台站信息接口 实现统计分析管理 分页查询气溶胶数据接口 实现统计分析管理 分页查询气象数据接口 实现统计分析管理 分页查询状态数据接口 实现统计分析管理 查看气溶胶数据详情接口 实现统计分析管理 查看气溶胶ENERGY数据接口 实现统计分析管理 查看气溶胶RESOLUTION数据接口 实现统计分析管理 查看气溶胶EFFICIENCY数据接口 实现统计分析管理 查看气溶胶CERTIFICATE数据接口
This commit is contained in:
parent
b6c3f270f8
commit
3347b16dde
|
@ -7,13 +7,18 @@ import org.jeecg.common.api.vo.Result;
|
|||
import org.jeecg.modules.entity.GardsMetData;
|
||||
import org.jeecg.modules.entity.GardsSampleData;
|
||||
import org.jeecg.modules.entity.GardsSohData;
|
||||
import org.jeecg.modules.service.IGardsMetDataService;
|
||||
import org.jeecg.modules.service.IGardsSampleDataService;
|
||||
import org.jeecg.modules.service.IGardsSohDataService;
|
||||
import org.jeecg.modules.service.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("webStatistics")
|
||||
|
@ -26,23 +31,65 @@ public class WebStatisticsController {
|
|||
private IGardsMetDataService gardsMetDataService;
|
||||
@Autowired
|
||||
private IGardsSohDataService gardsSohDataService;
|
||||
@Autowired
|
||||
private ISysDictService sysDictService;
|
||||
@Autowired
|
||||
private IGardsSampleCertService gardsSampleCertService;
|
||||
|
||||
@GetMapping("findStationList")
|
||||
@ApiOperation(value = "根据菜单名称查询对应的台站信息", notes = "根据菜单名称查询对应的台站信息")
|
||||
public Result findStationList(String menuName){
|
||||
return sysDictService.findList(menuName);
|
||||
}
|
||||
|
||||
@GetMapping("findParticulatePage")
|
||||
@ApiOperation(value = "颗粒物分页查询", notes = "颗粒物分页查询")
|
||||
public Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData){
|
||||
return gardsSampleDataService.findParticulatePage(queryRequest, gardsSampleData);
|
||||
@ApiOperation(value = "气溶胶分页查询", notes = "气溶胶分页查询")
|
||||
public Result findParticulatePage(QueryRequest queryRequest, List<Integer> stationIds, String dataType,
|
||||
String spectralQualifie, @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
|
||||
return gardsSampleDataService.findParticulatePage(queryRequest, stationIds, dataType, spectralQualifie, startTime, endTime);
|
||||
}
|
||||
|
||||
@GetMapping("findMetPage")
|
||||
@ApiOperation(value = "气象数据分页查询", notes = "气象数据分页查询")
|
||||
public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData){
|
||||
return gardsMetDataService.findMetPage(queryRequest, gardsMetData);
|
||||
public Result findMetPage(QueryRequest queryRequest, List<Integer> stationIds,@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
|
||||
return gardsMetDataService.findMetPage(queryRequest, stationIds, startTime, endTime);
|
||||
}
|
||||
|
||||
@GetMapping("findSohPage")
|
||||
@ApiOperation(value = "状态数据分页查询", notes = "状态数据分页查询")
|
||||
public Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData){
|
||||
return gardsSohDataService.findSohPage(queryRequest, gardsSohData);
|
||||
public Result findSohPage(QueryRequest queryRequest, List<Integer> stationIds,@DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,@DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime){
|
||||
return gardsSohDataService.findSohPage(queryRequest, stationIds, startTime, endTime);
|
||||
}
|
||||
|
||||
@GetMapping("findParticulateInfo")
|
||||
@ApiOperation(value = "查看IMS DATA下气溶胶数据详情", notes = "查看IMS DATA下气溶胶数据详情")
|
||||
public Result findParticulateInfo(Integer sampleId){
|
||||
return gardsSampleDataService.findParticulateInfo(sampleId);
|
||||
}
|
||||
|
||||
@GetMapping("findParticulateEnergy")
|
||||
@ApiOperation(value = "查看IMS DATA下气溶胶ENERGY数据", notes = "查看IMS DATA下气溶胶ENERGY数据")
|
||||
public Result findParticulateEnergy(Integer sampleId){
|
||||
return gardsSampleDataService.findParticulateEnergy(sampleId);
|
||||
}
|
||||
|
||||
@GetMapping("findParticulateResolution")
|
||||
@ApiOperation(value = "查看IMS DATA下气溶胶RESOLUTION数据", notes = "查看IMS DATA下气溶胶RESOLUTION数据")
|
||||
public Result findParticulateResolution(Integer sampleId){
|
||||
return gardsSampleDataService.findParticulateResolution(sampleId);
|
||||
}
|
||||
|
||||
@GetMapping("findParticulateEfficiency")
|
||||
@ApiOperation(value = "查看IMS DATA下气溶胶EFFICIENCY数据", notes = "查看IMS DATA下气溶胶EFFICIENCY数据")
|
||||
public Result findParticulateEfficiency(Integer sampleId){
|
||||
return gardsSampleDataService.findParticulateEfficiency(sampleId);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("findParticulateCertificate")
|
||||
@ApiOperation(value = "查看IMS DATA下气溶胶CERTIFICATE数据", notes = "查看IMS DATA下气溶胶CERTIFICATE数据")
|
||||
public Result findParticulateCertificate(Integer sampleId){
|
||||
return gardsSampleCertService.findParticulateCertificate(sampleId);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,40 @@
|
|||
package org.jeecg.modules.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@TableName(value = "gards_calibration_pairs_orig")
|
||||
public class GardsCalibrationPairsOrig implements Serializable {
|
||||
|
||||
@TableField(value = "SAMPLE_ID")
|
||||
private Integer sampleId;
|
||||
|
||||
@TableField(value = "SAMPLE_TYPE")
|
||||
private String sampleType;
|
||||
|
||||
@TableField(value = "CALTYPE")
|
||||
private String caltype;
|
||||
|
||||
@TableField(value = "INPUT")
|
||||
private String input;
|
||||
|
||||
@TableField(value = "IDCALPOINT")
|
||||
private Integer idcalpoint;
|
||||
|
||||
@TableField(value = "XVALUE")
|
||||
private Double xvalue;
|
||||
|
||||
@TableField(value = "YVALUE")
|
||||
private Double yvalue;
|
||||
|
||||
@TableField(value = "UNCYVALUE")
|
||||
private Double uncyvalue;
|
||||
|
||||
@TableField(value = "DECAY_MODE")
|
||||
private String decayMode;
|
||||
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
package org.jeecg.modules.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName(value = "gards_sample_aux")
|
||||
public class GardsSampleAux implements Serializable {
|
||||
|
||||
@TableField(value = "SAMPLE_ID")
|
||||
private Integer sampleId;
|
||||
|
||||
@TableField(value = "SAMPLE_REF_ID")
|
||||
private String sampleRefId;
|
||||
|
||||
@TableField(value = "MEASUREMENT_ID")
|
||||
private String measurementId;
|
||||
|
||||
@TableField(value = "BKGD_MEASUREMENT_ID")
|
||||
private String bkgdMeasurementId;
|
||||
|
||||
@TableField(value = "GAS_BKGD_MEASUREMENT_ID")
|
||||
private String gasBkgdMeasurementId;
|
||||
|
||||
@TableField(value = "SAMPLE_HEIGHT")
|
||||
private Double sampleHeight;
|
||||
|
||||
@TableField(value = "SAMPLE_DIAMETER")
|
||||
private Double sampleDiameter;
|
||||
|
||||
@TableField(value = "CALIBRATION_DTG")
|
||||
private Date calibrationDtg;
|
||||
|
||||
@TableField(value = "MSG_ID")
|
||||
private String msgId;
|
||||
|
||||
@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;
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package org.jeecg.modules.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName(value = "gards_sample_cert")
|
||||
public class GardsSampleCert implements Serializable {
|
||||
|
||||
@TableField(value = "SAMPLE_ID")
|
||||
private Integer sampleId;
|
||||
|
||||
@TableField(value = "QUANTITY")
|
||||
private Integer quantity;
|
||||
|
||||
@TableField(value = "ASSAY_DATE")
|
||||
private Date assayDate;
|
||||
|
||||
@TableField(value = "UNIT")
|
||||
private String unit;
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
package org.jeecg.modules.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@TableName(value = "gards_sample_cert_line")
|
||||
public class GardsSampleCertLine implements Serializable {
|
||||
|
||||
@TableField(value = "SAMPLE_ID")
|
||||
private Integer sampleId;
|
||||
|
||||
@TableField(value = "NUCL_NAME")
|
||||
private String nuclName;
|
||||
|
||||
@TableField(value = "HALFLIFE")
|
||||
private String halflife;
|
||||
|
||||
@TableField(value = "ENERGY")
|
||||
private Integer energy;
|
||||
|
||||
@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;
|
||||
|
||||
}
|
|
@ -66,13 +66,13 @@ public class GardsSampleData implements Serializable {
|
|||
private Date acquisitionStop;
|
||||
|
||||
@TableField(value = "ACQUISITION_REAL_SEC")
|
||||
private Integer acquisitionRealSec;
|
||||
private Double acquisitionRealSec;
|
||||
|
||||
@TableField(value = "ACQUISITION_LIVE_SEC")
|
||||
private Integer acquisitionLiveSec;
|
||||
private Double acquisitionLiveSec;
|
||||
|
||||
@TableField(value = "QUANTITY")
|
||||
private Integer quantity;
|
||||
private Double quantity;
|
||||
|
||||
@TableField(value = "STATUS")
|
||||
private String status;
|
||||
|
@ -85,7 +85,4 @@ public class GardsSampleData implements Serializable {
|
|||
@TableField(exist = false)
|
||||
private String stationName;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String detectorName;
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
package org.jeecg.modules.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@TableName(value = "sys_dict")
|
||||
public class SysDict implements Serializable {
|
||||
|
||||
@TableField(value = "id")
|
||||
private String id;
|
||||
|
||||
@TableField(value = "dict_name")
|
||||
private String dictName;
|
||||
|
||||
@TableField(value = "dict_code")
|
||||
private String dictCode;
|
||||
|
||||
@TableField(value = "description")
|
||||
private String description;
|
||||
|
||||
@TableField(value = "del_flag")
|
||||
private Integer delFlag;
|
||||
|
||||
@TableField(value = "create_by")
|
||||
private String createBy;
|
||||
|
||||
@TableField(value = "create_time")
|
||||
private Date createTime;
|
||||
|
||||
@TableField(value = "update_by")
|
||||
private String updateBy;
|
||||
|
||||
@TableField(value = "update_time")
|
||||
private Date updateTime;
|
||||
|
||||
@TableField(value = "type")
|
||||
private Integer type;
|
||||
|
||||
@TableField(value = "tenant_id")
|
||||
private Integer tenantId;
|
||||
|
||||
@TableField(value = "low_app_id")
|
||||
private String lowAppId;
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.jeecg.modules.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.jeecg.modules.entity.GardsCalibrationPairsOrig;
|
||||
|
||||
public interface GardsCalibrationPairsOrigMapper extends BaseMapper<GardsCalibrationPairsOrig> {
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.jeecg.modules.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.jeecg.modules.entity.GardsSampleAux;
|
||||
|
||||
public interface GardsSampleAuxMapper extends BaseMapper<GardsSampleAux> {
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.jeecg.modules.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.jeecg.modules.entity.GardsSampleCertLine;
|
||||
|
||||
public interface GardsSampleCertLineMapper extends BaseMapper<GardsSampleCertLine> {
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.jeecg.modules.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.jeecg.modules.entity.GardsSampleCert;
|
||||
|
||||
public interface GardsSampleCertMapper extends BaseMapper<GardsSampleCert> {
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
package org.jeecg.modules.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.jeecg.modules.entity.SysDict;
|
||||
|
||||
public interface SysDictMapper extends BaseMapper<SysDict> {
|
||||
}
|
|
@ -4,9 +4,21 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||
import org.jeecg.common.api.QueryRequest;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.GardsMetData;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface IGardsMetDataService extends IService<GardsMetData> {
|
||||
|
||||
Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData);
|
||||
/**
|
||||
* 分页查询气象数据信息
|
||||
* @param queryRequest
|
||||
* @param stationIds
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
Result findMetPage(QueryRequest queryRequest, List<Integer> stationIds, Date startTime, Date endTime);
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
package org.jeecg.modules.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.GardsSampleCert;
|
||||
|
||||
public interface IGardsSampleCertService extends IService<GardsSampleCert> {
|
||||
|
||||
Result findParticulateCertificate(Integer sampleId);
|
||||
|
||||
}
|
|
@ -5,14 +5,50 @@ import org.jeecg.common.api.QueryRequest;
|
|||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.GardsSampleData;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public interface IGardsSampleDataService extends IService<GardsSampleData> {
|
||||
|
||||
/**
|
||||
* 分页查询颗粒物相关数据
|
||||
* 分页查询气溶胶相关数据
|
||||
* @param queryRequest
|
||||
* @param gardsSampleData
|
||||
* @param stationIds
|
||||
* @param dataType
|
||||
* @param spectralQualifie
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData);
|
||||
Result findParticulatePage(QueryRequest queryRequest, List<Integer> stationIds, String dataType, String spectralQualifie, Date startTime,Date endTime);
|
||||
|
||||
/**
|
||||
* 查询谱数据详细信息
|
||||
* @param sampleId
|
||||
* @return
|
||||
*/
|
||||
Result findParticulateInfo(Integer sampleId);
|
||||
|
||||
/**
|
||||
* 查询谱数据的能量数据
|
||||
* @param sampleId
|
||||
* @return
|
||||
*/
|
||||
Result findParticulateEnergy(Integer sampleId);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param sampleId
|
||||
* @return
|
||||
*/
|
||||
Result findParticulateResolution(Integer sampleId);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @param sampleId
|
||||
* @return
|
||||
*/
|
||||
Result findParticulateEfficiency(Integer sampleId);
|
||||
|
||||
}
|
||||
|
|
|
@ -5,8 +5,19 @@ import org.jeecg.common.api.QueryRequest;
|
|||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.GardsSohData;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
public interface IGardsSohDataService extends IService<GardsSohData> {
|
||||
|
||||
Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData);
|
||||
/**
|
||||
* 分页查询状态数据信息
|
||||
* @param queryRequest
|
||||
* @param stationIds
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
Result findSohPage(QueryRequest queryRequest, List<Integer> stationIds, Date startTime, Date endTime);
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package org.jeecg.modules.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.SysDict;
|
||||
|
||||
public interface ISysDictService extends IService<SysDict> {
|
||||
|
||||
/**
|
||||
* 根据系统类型查询对应的台站信息
|
||||
* @param menuName
|
||||
* @return
|
||||
*/
|
||||
Result findList(String menuName);
|
||||
|
||||
}
|
|
@ -2,15 +2,21 @@ 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.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.jeecg.common.api.QueryRequest;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.jeecg.modules.entity.GardsMetData;
|
||||
import org.jeecg.modules.mapper.GardsMetDataMapper;
|
||||
import org.jeecg.modules.service.IGardsMetDataService;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
@Service("gardsMetDataService")
|
||||
|
@ -18,17 +24,35 @@ import java.util.Objects;
|
|||
public class GardsMetDataServiceImpl extends ServiceImpl<GardsMetDataMapper, GardsMetData> implements IGardsMetDataService {
|
||||
|
||||
@Override
|
||||
public Result findMetPage(QueryRequest queryRequest, GardsMetData gardsMetData) {
|
||||
Result result = new Result();
|
||||
Page<GardsMetData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
LambdaQueryWrapper<GardsMetData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Objects.nonNull(gardsMetData.getStationId()), GardsMetData::getStationId, gardsMetData.getStationId());
|
||||
queryWrapper.ge(Objects.nonNull(gardsMetData.getStartTime()), GardsMetData::getStartTime, gardsMetData.getStartTime());
|
||||
queryWrapper.le(Objects.nonNull(gardsMetData.getEndTime()), GardsMetData::getEndTime, gardsMetData.getEndTime());
|
||||
Page<GardsMetData> metDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
result.setSuccess(true);
|
||||
result.setResult(metDataPage);
|
||||
return result;
|
||||
public Result findMetPage(QueryRequest queryRequest, List<Integer> stationIds, Date startTime, Date endTime) {
|
||||
try {
|
||||
Result result = new Result();
|
||||
if (CollectionUtils.isEmpty(stationIds)){
|
||||
result.error500("台站信息不能为空");
|
||||
return result;
|
||||
}
|
||||
if (Objects.isNull(startTime)){
|
||||
result.error500("开始时间不能为空");
|
||||
return result;
|
||||
}
|
||||
if (Objects.isNull(endTime)){
|
||||
result.error500("结束时间不能为空");
|
||||
return result;
|
||||
}
|
||||
Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
||||
Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
|
||||
Page<GardsMetData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
LambdaQueryWrapper<GardsMetData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(GardsMetData::getStationId, stationIds);
|
||||
queryWrapper.ge(GardsMetData::getStartTime, startDate);
|
||||
queryWrapper.le(GardsMetData::getEndTime, endDate);
|
||||
Page<GardsMetData> metDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
result.setSuccess(true);
|
||||
result.setResult(metDataPage);
|
||||
return result;
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +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.extension.service.impl.ServiceImpl;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.modules.entity.GardsSampleCert;
|
||||
import org.jeecg.modules.entity.GardsSampleCertLine;
|
||||
import org.jeecg.modules.mapper.GardsSampleCertLineMapper;
|
||||
import org.jeecg.modules.mapper.GardsSampleCertMapper;
|
||||
import org.jeecg.modules.service.IGardsSampleCertService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@Service("gardsSampleCertService")
|
||||
@DS("ori")
|
||||
public class GardsSampleCertServiceImpl extends ServiceImpl<GardsSampleCertMapper, GardsSampleCert> implements IGardsSampleCertService {
|
||||
|
||||
@Autowired
|
||||
private GardsSampleCertLineMapper gardsSampleCertLineMapper;
|
||||
|
||||
@Override
|
||||
public Result findParticulateCertificate(Integer sampleId) {
|
||||
Result result = new Result();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
LambdaQueryWrapper<GardsSampleCert> certLQueryWrapper = new LambdaQueryWrapper<>();
|
||||
certLQueryWrapper.eq(GardsSampleCert::getSampleId, sampleId);
|
||||
GardsSampleCert gardsSampleCert = this.baseMapper.selectOne(certLQueryWrapper);
|
||||
if (Objects.nonNull(gardsSampleCert)){
|
||||
map.put("Total Source Activity", gardsSampleCert.getQuantity());
|
||||
map.put("Assay Date", gardsSampleCert.getAssayDate());
|
||||
map.put("Units of Activity", gardsSampleCert.getUnit());
|
||||
}
|
||||
LambdaQueryWrapper<GardsSampleCertLine> certLineQueryWrapper = new LambdaQueryWrapper<>();
|
||||
certLineQueryWrapper.eq(GardsSampleCertLine::getSampleId, sampleId);
|
||||
List<GardsSampleCertLine> sampleCertLines = gardsSampleCertLineMapper.selectList(certLineQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(sampleCertLines)){
|
||||
map.put("table", sampleCertLines);
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
|
@ -2,21 +2,31 @@ 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.StringPool;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecg.common.api.QueryRequest;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.modules.entity.GardsCalibrationPairsOrig;
|
||||
import org.jeecg.modules.entity.GardsSampleAux;
|
||||
import org.jeecg.modules.entity.GardsSampleData;
|
||||
import org.jeecg.modules.entity.SysDict;
|
||||
import org.jeecg.modules.mapper.GardsCalibrationPairsOrigMapper;
|
||||
import org.jeecg.modules.mapper.GardsSampleAuxMapper;
|
||||
import org.jeecg.modules.mapper.GardsSampleDataMapper;
|
||||
import org.jeecg.modules.mapper.SysDictMapper;
|
||||
import org.jeecg.modules.service.IGardsSampleDataService;
|
||||
import org.jeecg.modules.system.entity.GardsStations;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.text.ParseException;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service("gardsSampleDataService")
|
||||
@DS("ori")
|
||||
|
@ -24,46 +34,202 @@ public class GardsSampleDataServiceImpl extends ServiceImpl<GardsSampleDataMappe
|
|||
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
@Autowired
|
||||
private GardsSampleAuxMapper gardsSampleAuxMapper;
|
||||
@Autowired
|
||||
private GardsCalibrationPairsOrigMapper gardsCalibrationPairsOrigMapper;
|
||||
|
||||
@Override
|
||||
public Result findParticulatePage(QueryRequest queryRequest, GardsSampleData gardsSampleData) {
|
||||
public Result findParticulatePage(QueryRequest queryRequest, List<Integer> stationIds, String dataType, String spectralQualifie, Date startTime,Date endTime) {
|
||||
try {
|
||||
Result result = new Result();
|
||||
//获取redis中缓存的台站信息
|
||||
Map<Integer, String> stationMap = (Map<Integer, String>)redisUtil.get("stationMap");
|
||||
if (StringUtils.isBlank(dataType)) {
|
||||
result.error500("数据类型不能为空");
|
||||
return result;
|
||||
}
|
||||
if (Objects.isNull(startTime)){
|
||||
result.error500("开始时间不能为空");
|
||||
return result;
|
||||
}
|
||||
if (Objects.isNull(endTime)){
|
||||
result.error500("结束时间不能为空");
|
||||
return result;
|
||||
}
|
||||
if (CollectionUtils.isEmpty(stationIds)){
|
||||
result.error500("台站信息不能为空");
|
||||
return result;
|
||||
}
|
||||
Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
||||
Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
|
||||
//声明page
|
||||
Page<GardsSampleData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
//声明Lambda 传递参数进行条件查询
|
||||
LambdaQueryWrapper<GardsSampleData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(GardsSampleData::getDataType, dataType);
|
||||
//数据分为全谱与过程谱则使用采集日期进行日期查询
|
||||
if (StringUtils.isNotBlank(spectralQualifie)) {
|
||||
queryWrapper.eq(GardsSampleData::getSpectralQualifie, spectralQualifie);
|
||||
queryWrapper.ge(GardsSampleData::getCollectStart, startDate);
|
||||
queryWrapper.le(GardsSampleData::getCollectStop, endDate);
|
||||
}else {//数据不区分全谱与过程谱则使用
|
||||
queryWrapper.ge(GardsSampleData::getAcquisitionStart, startDate);
|
||||
queryWrapper.le(GardsSampleData::getAcquisitionStop, endDate);
|
||||
}
|
||||
queryWrapper.in(GardsSampleData::getStationId, stationIds);
|
||||
//进行分页查询
|
||||
Page<GardsSampleData> sampleDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
sampleDataPage.getRecords().forEach(item->{
|
||||
if (stationMap.containsKey(item.getStationId().toString()) && CollectionUtils.isNotEmpty(stationMap)){
|
||||
String stationName = stationMap.get(item.getStationId().toString());
|
||||
item.setStationName(stationName);
|
||||
}
|
||||
});
|
||||
result.setSuccess(true);
|
||||
result.setResult(sampleDataPage);
|
||||
return result;
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result findParticulateInfo(Integer sampleId) {
|
||||
Result result = new Result();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
//获取redis中缓存的台站信息
|
||||
Map<Integer, String> stationMap = (Map<Integer, String>)redisUtil.get("stationMap");
|
||||
//获取redis中缓存的探测器信息
|
||||
Map<Integer, String> detectorsMap = (Map<Integer, String>)redisUtil.get("detectorsMap");
|
||||
|
||||
if (StringUtils.isBlank(gardsSampleData.getSampleType())){
|
||||
result.error500("系统类型不能为空");
|
||||
return result;
|
||||
//根据sample_id查询sample_data内容
|
||||
LambdaQueryWrapper<GardsSampleData> sampleDataQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sampleDataQueryWrapper.eq(GardsSampleData::getSampleId, sampleId);
|
||||
GardsSampleData gardsSampleData = this.baseMapper.selectOne(sampleDataQueryWrapper);
|
||||
if (Objects.nonNull(gardsSampleData) && CollectionUtils.isNotEmpty(stationMap)){
|
||||
String stationName = stationMap.get(gardsSampleData.getStationId().toString());
|
||||
gardsSampleData.setStationName(stationName);
|
||||
}
|
||||
if (StringUtils.isBlank(gardsSampleData.getDataType())) {
|
||||
result.error500("数据类型不能为空");
|
||||
return result;
|
||||
//根据sample_id查询sample_aux内容
|
||||
LambdaQueryWrapper<GardsSampleAux> sampleAuxQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sampleAuxQueryWrapper.eq(GardsSampleAux::getSampleId, sampleId);
|
||||
GardsSampleAux gardsSampleAux = gardsSampleAuxMapper.selectOne(sampleAuxQueryWrapper);
|
||||
if (Objects.nonNull(gardsSampleData) && Objects.nonNull(gardsSampleAux)){
|
||||
//封装数据内容
|
||||
map.put("Site Code", gardsSampleData.getStationName());
|
||||
map.put("Detector Code",gardsSampleData.getSiteDetCode());
|
||||
map.put("System Type",gardsSampleData.getSampleType());
|
||||
map.put("Sample Geometry",gardsSampleData.getGeometry());
|
||||
map.put("Spectrum Qualifier",gardsSampleData.getSpectralQualifie());
|
||||
map.put("Sample Reference Identification", gardsSampleAux.getSampleRefId());
|
||||
map.put("Measurement Identification", gardsSampleAux.getMeasurementId());
|
||||
map.put("Detector Background Measurement Identification", gardsSampleAux.getBkgdMeasurementId());
|
||||
map.put("Gas Background Measurement Identification", gardsSampleAux.getGasBkgdMeasurementId());
|
||||
map.put("Transmit Time", gardsSampleData.getTransmitDtg());
|
||||
map.put("Acquisition Time", gardsSampleData.getAcquisitionStart());
|
||||
map.put("Acquisition Real Time", gardsSampleData.getAcquisitionRealSec());
|
||||
map.put("Acquisition Live Time", gardsSampleData.getAcquisitionLiveSec());
|
||||
map.put("Date of Last Calibration", gardsSampleAux.getCalibrationDtg());
|
||||
}
|
||||
//声明page
|
||||
Page<GardsSampleData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
//声明Lambda 传递参数进行条件查询
|
||||
LambdaQueryWrapper<GardsSampleData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(GardsSampleData::getSampleType, gardsSampleData.getSampleType());
|
||||
queryWrapper.eq(GardsSampleData::getDataType, gardsSampleData.getDataType());
|
||||
queryWrapper.eq(Objects.nonNull(gardsSampleData.getStationId()), GardsSampleData::getStationId, gardsSampleData.getStationId());
|
||||
queryWrapper.ge(Objects.nonNull(gardsSampleData.getAcquisitionStart()), GardsSampleData::getAcquisitionStart, gardsSampleData.getAcquisitionStart());
|
||||
queryWrapper.le(Objects.nonNull(gardsSampleData.getAcquisitionStop()), GardsSampleData::getAcquisitionStop, gardsSampleData.getAcquisitionStop());
|
||||
//进行分页查询
|
||||
Page<GardsSampleData> sampleDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
sampleDataPage.getRecords().forEach(item->{
|
||||
if (stationMap.containsKey(item.getStationId().toString())){
|
||||
String stationName = stationMap.get(item.getStationId().toString());
|
||||
item.setStationName(stationName);
|
||||
}
|
||||
if (detectorsMap.containsKey(item.getDetectorId().toString())){
|
||||
String detectorName = detectorsMap.get(item.getDetectorId().toString());
|
||||
item.setDetectorName(detectorName);
|
||||
}
|
||||
});
|
||||
result.setSuccess(true);
|
||||
result.setResult(sampleDataPage);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result findParticulateEnergy(Integer sampleId) {
|
||||
Result result = new Result();
|
||||
//map 封装三个数组
|
||||
Map<String, List<Double>> map = new HashMap<>();
|
||||
//封装存储 g_energy
|
||||
List<Double> GEnergyList = new LinkedList<>();
|
||||
//封装存储 Centroid channel
|
||||
List<Double> centroidChannelList = new LinkedList<>();
|
||||
//封装存储 Uncertainty
|
||||
List<Double> uncertaintyList = new LinkedList<>();
|
||||
LambdaQueryWrapper<GardsCalibrationPairsOrig> calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>();
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId);
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "energy");
|
||||
List<GardsCalibrationPairsOrig> gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){
|
||||
for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) {
|
||||
// Xvalue 对应 centroid channel
|
||||
centroidChannelList.add(orig.getXvalue());
|
||||
// Yvalue 对应 g_energy
|
||||
GEnergyList.add(orig.getYvalue());
|
||||
// Uncyvalue 对应 Uncertainty
|
||||
uncertaintyList.add(orig.getUncyvalue());
|
||||
}
|
||||
}
|
||||
map.put("G_Energy", GEnergyList);
|
||||
map.put("Centroid channel", centroidChannelList);
|
||||
map.put("Uncertainty", uncertaintyList);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result findParticulateResolution(Integer sampleId) {
|
||||
Result result = new Result();
|
||||
//map 封装三个数组
|
||||
Map<String, List<Double>> map = new HashMap<>();
|
||||
//封装存储 energy
|
||||
List<Double> energyList = new LinkedList<>();
|
||||
//封装存储 efficiency
|
||||
List<Double> efficiencyList = new LinkedList<>();
|
||||
//封装存储 Uncertainty
|
||||
List<Double> uncertaintyList = new LinkedList<>();
|
||||
LambdaQueryWrapper<GardsCalibrationPairsOrig> calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>();
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId);
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "efficiency");
|
||||
List<GardsCalibrationPairsOrig> gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){
|
||||
for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) {
|
||||
// Xvalue 对应 energy
|
||||
energyList.add(orig.getXvalue());
|
||||
// YValue 对应 efficiency
|
||||
efficiencyList.add(orig.getYvalue());
|
||||
// UncyValue 对应 Uncertainty
|
||||
uncertaintyList.add(orig.getUncyvalue());
|
||||
}
|
||||
}
|
||||
map.put("energy", energyList);
|
||||
map.put("efficiency", efficiencyList);
|
||||
map.put("Uncertainty", uncertaintyList);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result findParticulateEfficiency(Integer sampleId) {
|
||||
Result result = new Result();
|
||||
//map 封装三个数组
|
||||
Map<String, List<Double>> map = new HashMap<>();
|
||||
//封装存储 g_energy
|
||||
List<Double> GEnergyList = new LinkedList<>();
|
||||
//封装存储 FWHM
|
||||
List<Double> FWHMList = new LinkedList<>();
|
||||
//封装存储 Uncertainty
|
||||
List<Double> uncertaintyList = new LinkedList<>();
|
||||
LambdaQueryWrapper<GardsCalibrationPairsOrig> calibrationPairsOrigQueryWrapper = new LambdaQueryWrapper<>();
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getSampleId, sampleId);
|
||||
calibrationPairsOrigQueryWrapper.eq(GardsCalibrationPairsOrig::getCaltype, "Resolution");
|
||||
List<GardsCalibrationPairsOrig> gardsCalibrationPairsOrigs = gardsCalibrationPairsOrigMapper.selectList(calibrationPairsOrigQueryWrapper);
|
||||
if (CollectionUtils.isNotEmpty(gardsCalibrationPairsOrigs)){
|
||||
for (GardsCalibrationPairsOrig orig:gardsCalibrationPairsOrigs) {
|
||||
// Xvalue 对应 energy
|
||||
GEnergyList.add(orig.getXvalue());
|
||||
// YValue 对应 efficiency
|
||||
FWHMList.add(orig.getYvalue());
|
||||
// UncyValue 对应 Uncertainty
|
||||
uncertaintyList.add(orig.getUncyvalue());
|
||||
}
|
||||
}
|
||||
map.put("g_energy", GEnergyList);
|
||||
map.put("FWHM", FWHMList);
|
||||
map.put("Uncertainty", uncertaintyList);
|
||||
result.setSuccess(true);
|
||||
result.setResult(map);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,11 +2,13 @@ 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.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecg.common.api.QueryRequest;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.modules.entity.GardsSohData;
|
||||
import org.jeecg.modules.mapper.GardsSohDataMapper;
|
||||
|
@ -14,6 +16,9 @@ import org.jeecg.modules.service.IGardsSohDataService;
|
|||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
|
@ -25,29 +30,43 @@ public class GardsSohDataServiceImpl extends ServiceImpl<GardsSohDataMapper, Gar
|
|||
private RedisUtil redisUtil;
|
||||
|
||||
@Override
|
||||
public Result findSohPage(QueryRequest queryRequest, GardsSohData gardsSohData) {
|
||||
Result result = new Result();
|
||||
//获取redis中缓存的台站信息
|
||||
Map<Integer, String> stationMap = (Map<Integer, String>)redisUtil.get("stationMap");
|
||||
//获取redis中缓存的探测器信息
|
||||
Map<Integer, String> detectorsMap = (Map<Integer, String>)redisUtil.get("detectorsMap");
|
||||
Page<GardsSohData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
LambdaQueryWrapper<GardsSohData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(Objects.nonNull(gardsSohData.getStationId()), GardsSohData::getStationId, gardsSohData.getStationId());
|
||||
Page<GardsSohData> sohDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
sohDataPage.getRecords().forEach(item->{
|
||||
if (Objects.nonNull(item.getStationId()) && stationMap.containsKey(item.getStationId().toString())){
|
||||
String stationName = stationMap.get(item.getStationId().toString());
|
||||
item.setStationName(stationName);
|
||||
public Result findSohPage(QueryRequest queryRequest, List<Integer> stationIds, Date startTime, Date endTime) {
|
||||
try {
|
||||
Result result = new Result();
|
||||
if (CollectionUtils.isEmpty(stationIds)){
|
||||
result.error500("台站信息不能为空");
|
||||
return result;
|
||||
}
|
||||
if (Objects.nonNull(item.getDetectorId()) && detectorsMap.containsKey(item.getDetectorId().toString())){
|
||||
String detectorName = detectorsMap.get(item.getDetectorId().toString());
|
||||
item.setDetectorName(detectorName);
|
||||
if (Objects.isNull(startTime)){
|
||||
result.error500("开始时间不能为空");
|
||||
return result;
|
||||
}
|
||||
});
|
||||
result.setSuccess(true);
|
||||
result.setResult(sohDataPage);
|
||||
return result;
|
||||
if (Objects.isNull(endTime)){
|
||||
result.error500("结束时间不能为空");
|
||||
return result;
|
||||
}
|
||||
Date startDate = DateUtils.parseDate(DateUtils.formatDate(startTime, "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
||||
Date endDate = DateUtils.parseDate(DateUtils.formatDate(endTime, "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
|
||||
//获取redis中缓存的探测器信息
|
||||
Map<Integer, String> detectorsMap = (Map<Integer, String>)redisUtil.get("detectorsMap");
|
||||
Page<GardsSohData> page = new Page<>(queryRequest.getPageNo(), queryRequest.getPageSize());
|
||||
LambdaQueryWrapper<GardsSohData> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(GardsSohData::getStationId, stationIds);
|
||||
queryWrapper.ge(GardsSohData::getStartTime, startDate);
|
||||
queryWrapper.le(GardsSohData::getStartTime, endDate);
|
||||
Page<GardsSohData> sohDataPage = this.baseMapper.selectPage(page, queryWrapper);
|
||||
sohDataPage.getRecords().forEach(item->{
|
||||
if (Objects.nonNull(item.getDetectorId()) && detectorsMap.containsKey(item.getDetectorId().toString())){
|
||||
String detectorName = detectorsMap.get(item.getDetectorId().toString());
|
||||
item.setDetectorName(detectorName);
|
||||
}
|
||||
});
|
||||
result.setSuccess(true);
|
||||
result.setResult(sohDataPage);
|
||||
return result;
|
||||
} catch (ParseException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,63 @@
|
|||
package org.jeecg.modules.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringPool;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.modules.entity.SysDict;
|
||||
import org.jeecg.modules.mapper.SysDictMapper;
|
||||
import org.jeecg.modules.service.ISysDictService;
|
||||
import org.jeecg.modules.system.entity.GardsStations;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service("sysDictService")
|
||||
public class SysDictServiceImpl extends ServiceImpl<SysDictMapper, SysDict> implements ISysDictService {
|
||||
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
@Autowired
|
||||
private SysDictMapper sysDictMapper;
|
||||
|
||||
@Override
|
||||
public Result findList(String menuName) {
|
||||
Result result = new Result();
|
||||
List<GardsStations> gardsStationsList = new LinkedList<>();
|
||||
//获取台站信息
|
||||
HashMap<String, GardsStations> stationInfoMap = (HashMap<String, GardsStations>) redisUtil.get("stationInfoMap");
|
||||
List<GardsStations> stationsList = stationInfoMap.values().stream().collect(Collectors.toList());
|
||||
//如果传递的菜单名称不为空 则需要过滤出所需的台站信息
|
||||
if (StringUtils.isNotBlank(menuName)){
|
||||
//根据菜单名称查询出数据字典中对应的内容
|
||||
LambdaQueryWrapper<SysDict> dictQueryWrapper = new LambdaQueryWrapper<>();
|
||||
dictQueryWrapper.eq(SysDict::getDictName, menuName);
|
||||
SysDict sysDict = sysDictMapper.selectOne(dictQueryWrapper);
|
||||
//如果字典内容不为空
|
||||
if (Objects.nonNull(sysDict)){
|
||||
//获取当前字典对应的code数据
|
||||
String dictCode = sysDict.getDictCode();
|
||||
if (StringUtils.isNotBlank(dictCode)){
|
||||
//根据英文,切割台站类型信息
|
||||
List<String> types = Arrays.asList(dictCode.split(StringPool.COMMA));
|
||||
//遍历过滤出和类型匹配的台站信息 存入新的数据集合中
|
||||
for (String type:types) {
|
||||
gardsStationsList.addAll(stationsList.stream().filter(item-> StringUtils.isNotBlank(item.getType()) && item.getType().equals(type)).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
}else {
|
||||
gardsStationsList.addAll(stationsList);
|
||||
}
|
||||
}else {
|
||||
gardsStationsList.addAll(stationsList);
|
||||
}
|
||||
result.setSuccess(true);
|
||||
result.setResult(gardsStationsList);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
42
jeecg-server-cloud/jeecg-log-manage-start/pom.xml
Normal file
42
jeecg-server-cloud/jeecg-log-manage-start/pom.xml
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-server-cloud</artifactId>
|
||||
<version>3.5.1</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>jeecg-log-manage-start</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!-- 引入jeecg-boot-starter-cloud依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-starter-cloud</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-boot-base-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-module-log-manage</artifactId>
|
||||
<version>3.5.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,47 @@
|
|||
package org.jeecg;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jeecg.common.util.oConvertUtils;
|
||||
import org.springframework.boot.CommandLineRunner;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.ConfigurableApplicationContext;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootApplication
|
||||
@EnableFeignClients(basePackages = {"org.jeecg"})
|
||||
@EnableScheduling
|
||||
public class JeecgLogManageApplication extends SpringBootServletInitializer implements CommandLineRunner {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(JeecgLogManageApplication.class);
|
||||
}
|
||||
|
||||
public static void main(String[] args) throws UnknownHostException {
|
||||
ConfigurableApplicationContext application = SpringApplication.run(JeecgLogManageApplication.class, args);
|
||||
Environment env = application.getEnvironment();
|
||||
String ip = InetAddress.getLocalHost().getHostAddress();
|
||||
String port = env.getProperty("server.port");
|
||||
String path = oConvertUtils.getString(env.getProperty("server.servlet.context-path"));
|
||||
log.info("\n----------------------------------------------------------\n\t" +
|
||||
"Application Jeecg-Boot is running! Access URLs:\n\t" +
|
||||
"Local: \t\thttp://localhost:" + port + path + "/doc.html\n" +
|
||||
"External: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
|
||||
"Swagger文档: \thttp://" + ip + ":" + port + path + "/doc.html\n" +
|
||||
"----------------------------------------------------------");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run(String... args) throws Exception {
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
server:
|
||||
port: 7005
|
||||
|
||||
spring:
|
||||
application:
|
||||
name: jeecg-log-manage
|
||||
cloud:
|
||||
nacos:
|
||||
config:
|
||||
server-addr: @config.server-addr@
|
||||
group: @config.group@
|
||||
namespace: @config.namespace@
|
||||
discovery:
|
||||
server-addr: ${spring.cloud.nacos.config.server-addr}
|
||||
config:
|
||||
import:
|
||||
- optional:nacos:jeecg.yaml
|
||||
- optional:nacos:jeecg-@profile.name@.yaml
|
|
@ -0,0 +1,77 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration debug="false">
|
||||
<!--定义日志文件的存储地址 -->
|
||||
<property name="LOG_HOME" value="../logs" />
|
||||
|
||||
<!--<property name="COLOR_PATTERN" value="%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta( %replace(%caller{1}){'\t|Caller.{1}0|\r\n', ''})- %gray(%msg%xEx%n)" />-->
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>-->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{50}:%L) - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 按照每天生成日志文件 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名 -->
|
||||
<FileNamePattern>${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
|
||||
<!--日志文件保留天数 -->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<maxFileSize>10MB</maxFileSize>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
|
||||
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
|
||||
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 生成 error html格式日志开始 -->
|
||||
<appender name="HTML" class="ch.qos.logback.core.FileAppender">
|
||||
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
|
||||
<!--设置日志级别,过滤掉info日志,只输入error日志-->
|
||||
<level>ERROR</level>
|
||||
</filter>
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="ch.qos.logback.classic.html.HTMLLayout">
|
||||
<pattern>%p%d%msg%M%F{32}%L</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
<file>${LOG_HOME}/error-log.html</file>
|
||||
</appender>
|
||||
<!-- 生成 error html格式日志结束 -->
|
||||
|
||||
<!-- 每天生成一个html格式的日志开始 -->
|
||||
<appender name="FILE_HTML" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!--日志文件输出的文件名 -->
|
||||
<FileNamePattern>${LOG_HOME}/jeecg-system-%d{yyyy-MM-dd}.%i.html</FileNamePattern>
|
||||
<!--日志文件保留天数 -->
|
||||
<MaxHistory>30</MaxHistory>
|
||||
<MaxFileSize>10MB</MaxFileSize>
|
||||
</rollingPolicy>
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="ch.qos.logback.classic.html.HTMLLayout">
|
||||
<pattern>%p%d%msg%M%F{32}%L</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
</appender>
|
||||
<!-- 每天生成一个html格式的日志结束 -->
|
||||
|
||||
<!--myibatis log configure -->
|
||||
<logger name="com.apache.ibatis" level="TRACE" />
|
||||
<logger name="java.sql.Connection" level="DEBUG" />
|
||||
<logger name="java.sql.Statement" level="DEBUG" />
|
||||
<logger name="java.sql.PreparedStatement" level="DEBUG" />
|
||||
|
||||
<!-- 日志输出级别 -->
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT" />
|
||||
<appender-ref ref="FILE" />
|
||||
<appender-ref ref="HTML" />
|
||||
<appender-ref ref="FILE_HTML" />
|
||||
</root>
|
||||
|
||||
</configuration>
|
|
@ -36,11 +36,6 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- jeecg-system-log-manage依赖 -->
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
<artifactId>jeecg-module-log-manage</artifactId>
|
||||
</dependency>
|
||||
<!-- feign 熔断限流、分布式锁、xxljob示例
|
||||
<dependency>
|
||||
<groupId>org.jeecgframework.boot</groupId>
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
<module>jeecg-visual</module>
|
||||
<module>jeecg-station-operation-start</module>
|
||||
<module>jeecg-web-statistics-start</module>
|
||||
<module>jeecg-log-manage-start</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
Loading…
Reference in New Issue
Block a user