Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
afbdb9f8dd
|
|
@ -8,14 +8,9 @@ import java.sql.Timestamp;
|
|||
import java.text.DateFormat;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Duration;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.*;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.GregorianCalendar;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 类描述:时间操作定义类
|
||||
|
|
@ -50,24 +45,27 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
return new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> yyyymmddhhmmss = new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> short_time_sdf = new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("HH:mm");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> datetimeFormat = new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> yyyymmddhhmmss =
|
||||
new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("yyyyMMddHHmmss");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> short_time_sdf =
|
||||
new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("HH:mm");
|
||||
}
|
||||
};
|
||||
public static ThreadLocal<SimpleDateFormat> datetimeFormat =
|
||||
new ThreadLocal<SimpleDateFormat>() {
|
||||
@Override
|
||||
protected SimpleDateFormat initialValue() {
|
||||
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* 以毫秒表示的时间
|
||||
|
|
@ -79,6 +77,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
|
||||
/**
|
||||
* 指定模式的时间格式
|
||||
*
|
||||
* @param pattern
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -121,8 +120,8 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
public static Date getDate() {
|
||||
return new Date();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 当前日期
|
||||
*
|
||||
|
|
@ -227,7 +226,7 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
/**
|
||||
* 日期转换为字符串
|
||||
*
|
||||
* @param date 日期
|
||||
* @param date 日期
|
||||
* @param dateSdf 日期格式
|
||||
* @return 字符串
|
||||
*/
|
||||
|
|
@ -585,7 +584,8 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
return cal;
|
||||
}
|
||||
|
||||
public static String formatAddDate(String src, String pattern, int amount) throws ParseException {
|
||||
public static String formatAddDate(String src, String pattern, int amount)
|
||||
throws ParseException {
|
||||
Calendar cal;
|
||||
cal = parseCalendar(src, pattern);
|
||||
cal.add(Calendar.DATE, amount);
|
||||
|
|
@ -669,10 +669,12 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
} else if (text.indexOf(SymbolConstant.COLON) > 0 && text.length() == length19) {
|
||||
setValue(DateUtils.datetimeFormat.get().parse(text));
|
||||
} else {
|
||||
throw new IllegalArgumentException("Could not parse date, date format is error ");
|
||||
throw new IllegalArgumentException(
|
||||
"Could not parse date, date format is error ");
|
||||
}
|
||||
} catch (ParseException ex) {
|
||||
IllegalArgumentException iae = new IllegalArgumentException("Could not parse date: " + ex.getMessage());
|
||||
IllegalArgumentException iae =
|
||||
new IllegalArgumentException("Could not parse date: " + ex.getMessage());
|
||||
iae.initCause(ex);
|
||||
throw iae;
|
||||
}
|
||||
|
|
@ -689,13 +691,14 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
|
||||
/**
|
||||
* 将字符串转成时间
|
||||
*
|
||||
* @param str
|
||||
* @return
|
||||
*/
|
||||
public static Date parseDatetime(String str){
|
||||
public static Date parseDatetime(String str) {
|
||||
try {
|
||||
return datetimeFormat.get().parse(str);
|
||||
}catch (Exception e){
|
||||
} catch (Exception e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
@ -716,8 +719,10 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.setTime(date2);
|
||||
boolean isSameYear = calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR);
|
||||
boolean isSameMonth = isSameYear && calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH);
|
||||
return isSameMonth && calendar1.get(Calendar.DAY_OF_MONTH) == calendar2.get(Calendar.DAY_OF_MONTH);
|
||||
boolean isSameMonth =
|
||||
isSameYear && calendar1.get(Calendar.MONTH) == calendar2.get(Calendar.MONTH);
|
||||
return isSameMonth &&
|
||||
calendar1.get(Calendar.DAY_OF_MONTH) == calendar2.get(Calendar.DAY_OF_MONTH);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -731,7 +736,8 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
LocalDateTime currentTime = LocalDateTime.now();
|
||||
|
||||
// 将java.util.Date转换为java.time.LocalDateTime
|
||||
LocalDateTime convertedTargetDate = targetDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
LocalDateTime convertedTargetDate =
|
||||
targetDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
|
||||
// 计算时间差
|
||||
Duration duration = Duration.between(currentTime, convertedTargetDate);
|
||||
|
|
@ -752,7 +758,8 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
// 获取当前日期
|
||||
LocalDate currentDate = LocalDate.now();
|
||||
// 将java.util.Date转换为java.time.LocalDate
|
||||
LocalDate convertedTargetDate = targetDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
LocalDate convertedTargetDate =
|
||||
targetDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
// 计算日期差
|
||||
long daysDifference = ChronoUnit.DAYS.between(currentDate, convertedTargetDate);
|
||||
return daysDifference;
|
||||
|
|
@ -774,7 +781,8 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
Calendar calendar2 = Calendar.getInstance();
|
||||
calendar2.setTime(date2);
|
||||
boolean isSameYear = calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR);
|
||||
return isSameYear && calendar1.get(Calendar.WEEK_OF_YEAR) == calendar2.get(Calendar.WEEK_OF_YEAR);
|
||||
return isSameYear &&
|
||||
calendar1.get(Calendar.WEEK_OF_YEAR) == calendar2.get(Calendar.WEEK_OF_YEAR);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -814,4 +822,31 @@ public class DateUtils extends PropertyEditorSupport {
|
|||
return calendar1.get(Calendar.YEAR) == calendar2.get(Calendar.YEAR);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定年月的所有日期(yyyy-MM-dd格式)
|
||||
*
|
||||
* @param year 年份(如2026)
|
||||
* @param month 月份(1-12)
|
||||
* @return 日期列表(按时间正序排列)
|
||||
*/
|
||||
public static List<String> getDaysOfMonth(Integer year, Integer month) {
|
||||
// 参数校验
|
||||
if (year == null || month == null || month < 1 || month > 12) {
|
||||
throw new IllegalArgumentException("无效的年月参数");
|
||||
}
|
||||
|
||||
List<String> dateList = new ArrayList<>();
|
||||
YearMonth yearMonth = YearMonth.of(year, month);
|
||||
// 获取该月的总天数
|
||||
int totalDays = yearMonth.lengthOfMonth();
|
||||
|
||||
// 遍历该月所有日期
|
||||
for (int day = 1; day <= totalDays; day++) {
|
||||
LocalDate date = LocalDate.of(year, month, day);
|
||||
dateList.add(date_sdf.get().format(date));
|
||||
}
|
||||
|
||||
return dateList;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
package org.jeecg.modules.base.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("stas_station_setting")
|
||||
public class StasStationSetting {
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
private Integer id;
|
||||
/**
|
||||
* 区分PHDF或PHD等
|
||||
*/
|
||||
private String typeGroup;
|
||||
/**
|
||||
* 类型,如SAUNA, SPALAX, PARTICULATE
|
||||
*/
|
||||
private String stationType;
|
||||
/**
|
||||
* 最低采集时长
|
||||
*/
|
||||
private Double collectLow;
|
||||
/**
|
||||
* 最高采集时长
|
||||
*/
|
||||
private Double collectHigh;
|
||||
/**
|
||||
* 最低acquisition_live_sec
|
||||
*/
|
||||
private Double liveLow;
|
||||
/**
|
||||
* 最高acquisition_live_sec
|
||||
*/
|
||||
private Double liveHigh;
|
||||
/**
|
||||
* quantity
|
||||
*/
|
||||
private Integer quantity;
|
||||
/**
|
||||
* Xe体积
|
||||
*/
|
||||
private Double xeVolume;
|
||||
/**
|
||||
* mdc
|
||||
*/
|
||||
private Integer mdc;
|
||||
/**
|
||||
* 核素名称
|
||||
*/
|
||||
private String nuclideName;
|
||||
/**
|
||||
* live_qc
|
||||
*/
|
||||
private Integer liveQc;
|
||||
/**
|
||||
* 数量
|
||||
*/
|
||||
private Integer number;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
}
|
||||
|
|
@ -53,24 +53,32 @@ public class GardsCorrectionFactor implements Serializable {
|
|||
@TableField(value = "TOTAL_EFFICIENCY")
|
||||
private Double totalEfficiency;
|
||||
|
||||
/**
|
||||
* 能量
|
||||
*/
|
||||
@Excel(name = "能量", width = 20, height = 20, orderNum = "4")
|
||||
@TableField(value = "ENERGY")
|
||||
private Double energy;
|
||||
|
||||
|
||||
/**
|
||||
* 校正因子
|
||||
*/
|
||||
@Excel(name = "校正因子", width = 20, height = 20, orderNum = "4")
|
||||
@Excel(name = "校正因子", width = 20, height = 20, orderNum = "5")
|
||||
@TableField(value = "CORRECTION_FACTOR")
|
||||
private Double correctionFactor;
|
||||
|
||||
/**
|
||||
* 制造商
|
||||
*/
|
||||
@Excel(name = "制造商", width = 20, height = 20, orderNum = "5")
|
||||
@Excel(name = "制造商", width = 20, height = 20, orderNum = "6")
|
||||
@TableField(value = "MANUFACTURER")
|
||||
private String manufacturer;
|
||||
|
||||
/**
|
||||
* 型号
|
||||
*/
|
||||
@Excel(name = "型号", width = 20, height = 20, orderNum = "6")
|
||||
@Excel(name = "型号", width = 20, height = 20, orderNum = "7")
|
||||
@TableField(value = "MODEL")
|
||||
private String model;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
package org.jeecg.modules.base.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.jeecg.modules.base.entity.StasStationSetting;
|
||||
|
||||
@Mapper
|
||||
public interface StasStationSettingMapper extends BaseMapper<StasStationSetting> {
|
||||
}
|
||||
|
|
@ -39,10 +39,14 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getSampleMonitorResult")
|
||||
@ApiOperation(value = "样品监测结果回放", notes = "样品监测结果回放")
|
||||
public Result getSampleMonitorResult(String sampleType, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
public Result getSampleMonitorResult(String sampleType, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
|
||||
return sampleStatAnalysisService.getSampleMonitorResult(sampleType, dataSource, startDate, endDate);
|
||||
return sampleStatAnalysisService.getSampleMonitorResult(sampleType, dataSource, startDate,
|
||||
endDate);
|
||||
}
|
||||
|
||||
/*** 样品统计分析
|
||||
|
|
@ -55,23 +59,30 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getSampleStatAnalysis")
|
||||
@ApiOperation(value = "样品统计分析", notes = "样品统计分析")
|
||||
public Result getSampleStatAnalysis(String station, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
return sampleStatAnalysisService.getSampleStatAnalysis(station, dataSource, startDate, endDate);
|
||||
public Result getSampleStatAnalysis(String station, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
return sampleStatAnalysisService.getSampleStatAnalysis(station, dataSource, startDate,
|
||||
endDate);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/getNuclideActConcChartData")
|
||||
@ApiOperation(value = "样品统计分析-核素等级时序分析", notes = "样品统计分析-核素等级时序分析")
|
||||
public Result getNuclideActConcChartData(@RequestParam("sampleType")String sampleType,
|
||||
@RequestParam("station") String station,
|
||||
@RequestParam("nuclideName") String nuclideName,
|
||||
@RequestParam("dataSource") Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) throws JsonProcessingException {
|
||||
return sampleStatAnalysisService.getNuclideActConcChartData(sampleType,station, nuclideName, dataSource, startDate, endDate);
|
||||
public Result<?> getNuclideActConcChartData(
|
||||
@RequestParam(value = "sampleType") String sampleType,
|
||||
@RequestParam("station") String station,
|
||||
@RequestParam("nuclideName") String nuclideName,
|
||||
@RequestParam("dataSource") Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate)
|
||||
throws JsonProcessingException {
|
||||
return sampleStatAnalysisService.getNuclideActConcChartData(sampleType, station,
|
||||
nuclideName, dataSource, startDate, endDate);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -86,9 +97,14 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getSampleGradeAnalysis")
|
||||
@ApiOperation(value = "样品等级时序分析", notes = "样品等级时序分析")
|
||||
public Result getSampleGradeAnalysis(String sampleType, String station, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
Result result = sampleStatAnalysisService.getSampleGradeAnalysis(sampleType, station, startDate, endDate, dataSource);
|
||||
public Result getSampleGradeAnalysis(String sampleType, String station, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
Result result =
|
||||
sampleStatAnalysisService.getSampleGradeAnalysis(sampleType, station, startDate,
|
||||
endDate, dataSource);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
@ -105,10 +121,17 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getActConcIntvlAnalysis")
|
||||
@ApiOperation(value = "样品活度浓度区间频率分析", notes = "样品活度浓度区间频率分析")
|
||||
public Result getSampleActConcIntvlAnalysis(String sampleType, String station, String nuclideName, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
public Result getSampleActConcIntvlAnalysis(String sampleType, String station,
|
||||
String nuclideName, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
|
||||
return sampleStatAnalysisService.getSampleActConcIntvlAnalysis(sampleType, station, nuclideName, dataSource, startDate, endDate);
|
||||
return sampleStatAnalysisService.getSampleActConcIntvlAnalysis(sampleType, station,
|
||||
nuclideName, dataSource, startDate, endDate);
|
||||
}
|
||||
|
||||
/*** 样品活度浓度时序分析
|
||||
|
|
@ -123,10 +146,17 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getActConcTimeSeqAnalysis")
|
||||
@ApiOperation(value = "样品活度浓度时序分析", notes = "样品活度浓度时序分析")
|
||||
public Result getSampleActConcTimeSeqAnalysis(String sampleType, String station, String nuclideName, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) throws JsonProcessingException {
|
||||
public Result getSampleActConcTimeSeqAnalysis(String sampleType, String station,
|
||||
String nuclideName, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) throws JsonProcessingException {
|
||||
//return sampleStatAnalysisService.getSampleActConcTimeSeqAnalysis(sampleType, station, nuclideName, dataSource, startDate, endDate);
|
||||
return sampleStatAnalysisService.getNuclideActConcChartData(sampleType, station, nuclideName, dataSource, startDate, endDate);
|
||||
return sampleStatAnalysisService.getNuclideActConcChartData(sampleType, station,
|
||||
nuclideName, dataSource, startDate, endDate);
|
||||
}
|
||||
|
||||
/*** 核素活度浓度对比分析
|
||||
|
|
@ -141,9 +171,16 @@ public class DataAnalysisController {
|
|||
*/
|
||||
@GetMapping("/getNuclideActivityConcAnalyze")
|
||||
@ApiOperation(value = "核素活度浓度对比分析", notes = "核素活度浓度对比分析")
|
||||
public Result getNuclideActivityConcAnalyze(String sampleType, Integer[] stationIds, String nuclideName, Integer dataSource, @RequestParam("startDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
|
||||
@RequestParam("endDate") @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
|
||||
return sampleStatAnalysisService.getNuclideActivityConcAnalyze(sampleType, stationIds, nuclideName, dataSource, startDate, endDate);
|
||||
public Result getNuclideActivityConcAnalyze(String sampleType, Integer[] stationIds,
|
||||
String nuclideName, Integer dataSource,
|
||||
@RequestParam("startDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam("endDate")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
return sampleStatAnalysisService.getNuclideActivityConcAnalyze(sampleType, stationIds,
|
||||
nuclideName, dataSource, startDate, endDate);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -151,7 +188,8 @@ public class DataAnalysisController {
|
|||
public Result findStationList(String systemType) {
|
||||
Result result = new Result();
|
||||
try {
|
||||
List<GardsStations> gardsStations = sampleStatAnalysisService.findStationListByMenuName(systemType);
|
||||
List<GardsStations> gardsStations =
|
||||
sampleStatAnalysisService.findStationListByMenuName(systemType);
|
||||
result.setCode(200);
|
||||
result.setSuccess(true);
|
||||
result.setResult(gardsStations);
|
||||
|
|
@ -166,7 +204,8 @@ public class DataAnalysisController {
|
|||
public Result findNuclideList(String systemType) {
|
||||
Result result = new Result();
|
||||
try {
|
||||
List<SysDefaultNuclide> defaultNuclides = sampleStatAnalysisService.findNuclideList(systemType);
|
||||
List<SysDefaultNuclide> defaultNuclides =
|
||||
sampleStatAnalysisService.findNuclideList(systemType);
|
||||
result.setCode(200);
|
||||
result.setSuccess(true);
|
||||
result.setResult(defaultNuclides);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ public enum SystemType {
|
|||
this.type = type;
|
||||
}
|
||||
|
||||
public String getType(){
|
||||
public String getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,25 +13,32 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
|
||||
List<GardsSampleData> getSampleStatAnalysis(String station, String startDate, String endDate);
|
||||
|
||||
List<ThresholdMetric> selectByStationIds(@Param("stationIds") List<String> stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<ThresholdMetric> selectByStationIds(@Param("stationIds") List<String> stationIds,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
//region 样品等级时序分析
|
||||
|
||||
|
||||
List<GardsSampleData> getSampleGradeAnalysis(String sampleType, String station,
|
||||
@Param("startTime") String startTime, @Param("endTime") String endTime, Integer dataSource);
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime,
|
||||
Integer dataSource);
|
||||
|
||||
List<SampleLevelData> getRnAutoSampleGradeAnalysis(String sampleType, String station,
|
||||
@Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
List<SampleLevelData> getRnManSampleGradeAnalysis(String sampleType, String station,
|
||||
@Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
|
||||
List<NuclideActConcIntvl> getIdentifiedNuclides(@Param("schemaName") String schemaName ,@Param("nuclideName")String nuclideName, String station,
|
||||
@Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
|
||||
List<NuclideActConcIntvl> getIdentifiedNuclides(@Param("schemaName") String schemaName,
|
||||
@Param("nuclideName") String nuclideName,
|
||||
String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
//endregion
|
||||
|
|
@ -43,18 +50,24 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
* @param endTime 结束时间
|
||||
* @return 返回List<NuclideActConcIntvl>
|
||||
*/
|
||||
List<NuclideActConcIntvl> getSamplePNuclideActConcIntvl(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getSamplePNuclideActConcIntvl(String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
//region 获取样品的级别和阈值
|
||||
|
||||
List<SampleLevelData> getRnAutoSampleLevel(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<SampleLevelData> getRnAutoSampleLevel(String station, @Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
List<SampleLevelData> getRnManSampleLevel(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
|
||||
|
||||
List<SampleLevelData> getNuclideTimeSeriesAnalysis (@Param("schemaName") String schemaName ,@Param("station")String station,@Param("nuclideName")String nuclideName, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<SampleLevelData> getRnManSampleLevel(String station, @Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
List<SampleLevelData> getNuclideTimeSeriesAnalysis(@Param("schemaName") String schemaName,
|
||||
@Param("station") String station,
|
||||
@Param("nuclideName") String nuclideName,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
//endregion
|
||||
|
|
@ -68,7 +81,10 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
* @param endTime 结束时间
|
||||
* @return 返回List<NuclideActConcIntvl>
|
||||
*/
|
||||
List<NuclideActConcIntvl> getRnautoPNuclideActConcIntvl(String sampleType, String station, String nuclideName, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnautoPNuclideActConcIntvl(String sampleType, String station,
|
||||
String nuclideName,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/*** 获取样品中元素的浓度活度、MDC信息
|
||||
* 查询RNAUTO.GARDS_XE_RESULTS中的活度浓度、MDC信息
|
||||
|
|
@ -77,7 +93,19 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
List<NuclideActConcIntvl> getRnautoNuclideActConcIntvl(String sampleType, String station, String nuclideName, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnautoNuclideActConcIntvl(String sampleType, String station,
|
||||
String nuclideName,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param schemaName
|
||||
* @return
|
||||
*/
|
||||
List<NuclideActConcIntvl>getNuclideActConcIntvl(@Param("schemaName") String schemaName);
|
||||
|
||||
|
||||
|
||||
|
||||
//endregion
|
||||
|
|
@ -91,7 +119,10 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
* @param endTime 结束时间
|
||||
* @return 返回List<NuclideActConcIntvl>
|
||||
*/
|
||||
List<NuclideActConcIntvl> getRnmanPNuclideActConcIntvl(String sampleType, String station, String nuclideName, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnmanPNuclideActConcIntvl(String sampleType, String station,
|
||||
String nuclideName,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/*** 获取样品中元素的浓度活度、MDC信息
|
||||
* 查询RNAUTO.GARDS_XE_RESULTS中的活度浓度、MDC信息
|
||||
|
|
@ -100,36 +131,46 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
* @param endTime
|
||||
* @return
|
||||
*/
|
||||
List<NuclideActConcIntvl> getRnmanNuclideActConcIntvl(String sampleType, String station, String nuclideName, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnmanNuclideActConcIntvl(String sampleType, String station,
|
||||
String nuclideName,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
//endregion
|
||||
|
||||
|
||||
//region 样品统计分析
|
||||
|
||||
/**
|
||||
* RnAuto--获取样品中识别到的核素集合
|
||||
*/
|
||||
|
||||
List<NuclideActConcIntvl> getRnAutoIdentifiedNuclides(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnAutoIdentifiedNuclides(String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
* RnAuto-- 核素等级时序分析
|
||||
*/
|
||||
|
||||
List<SampleLevelData> getRnAutoNuclideTimeSeriesAnalysis(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<SampleLevelData> getRnAutoNuclideTimeSeriesAnalysis(String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
* RnMan--获取样品中识别到的核素集合
|
||||
*/
|
||||
List<NuclideActConcIntvl> getRnManIdentifiedNuclides(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnManIdentifiedNuclides(String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
/**
|
||||
* RnMan--核素等级时序分析
|
||||
*
|
||||
* @return List<SampleLevelData>
|
||||
*/
|
||||
List<SampleLevelData> getRnManNuclideTimeSeriesAnalysis(String station, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<SampleLevelData> getRnManNuclideTimeSeriesAnalysis(String station,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -213,22 +254,32 @@ public interface GardsSampleStatAnalysisMapper extends BaseMapper<GardsSampleDat
|
|||
|
||||
//endregion
|
||||
|
||||
|
||||
//region 核素活度浓度对比分析
|
||||
List<NuclideActConcIntvl> getRnAutoAnalyzeNuclideActivityConc(@Param("sampleType")String sampleType, @Param("nuclideName")String nuclideName, @Param("stationIds") Integer[] stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnAutoAnalyzeNuclideActivityConc(
|
||||
@Param("sampleType") String sampleType, @Param("nuclideName") String nuclideName,
|
||||
@Param("stationIds") Integer[] stationIds, @Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
List<NuclideActConcIntvl> getRnManAnalyzeNuclideActivityConc(@Param("sampleType")String sampleType, @Param("nuclideName")String nuclideName, @Param("stationIds") Integer[] stationIds, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<NuclideActConcIntvl> getRnManAnalyzeNuclideActivityConc(
|
||||
@Param("sampleType") String sampleType, @Param("nuclideName") String nuclideName,
|
||||
@Param("stationIds") Integer[] stationIds, @Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
//endregion
|
||||
|
||||
//region 样品监测结果
|
||||
List<StationInfoData> getRnAutoSampleResult( String sampleType, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<StationInfoData> getRnAutoSampleResult(String sampleType,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
List<StationInfoData> getRnManSampleResult(String sampleType, @Param("startTime") String startTime, @Param("endTime") String endTime);
|
||||
List<StationInfoData> getRnManSampleResult(String sampleType,
|
||||
@Param("startTime") String startTime,
|
||||
@Param("endTime") String endTime);
|
||||
|
||||
|
||||
//endregion
|
||||
|
||||
//region 查询台站信息
|
||||
List<GardsStations> findStationListByMenuName(@Param("systemType")String systemType);
|
||||
List<GardsStations> findStationListByMenuName(@Param("systemType") String systemType);
|
||||
//endregion
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ import java.text.SimpleDateFormat;
|
|||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collector;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
|
|
@ -57,7 +58,7 @@ public class SampleStatAnalysisService
|
|||
result.setCode(CommonConstant.SC_OK_200);
|
||||
//声明返回用的结果map
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
List<StationInfoData> StationInfoDataList = new ArrayList<>();
|
||||
List<StationInfoData> stationInfoDataList = new ArrayList<>();
|
||||
|
||||
//region 局部变量
|
||||
if (StringUtils.isBlank(sampleType)) {
|
||||
|
|
@ -78,26 +79,19 @@ public class SampleStatAnalysisService
|
|||
|
||||
switch (dataSource) {
|
||||
case 1:
|
||||
StationInfoDataList =
|
||||
stationInfoDataList =
|
||||
this.baseMapper.getRnAutoSampleResult(sampleType, startTime, endTime);
|
||||
|
||||
break;
|
||||
case 2:
|
||||
StationInfoDataList =
|
||||
stationInfoDataList =
|
||||
this.baseMapper.getRnManSampleResult(sampleType, startTime, endTime);
|
||||
|
||||
break;
|
||||
default:
|
||||
stationInfoDataList = new ArrayList<>();
|
||||
}
|
||||
//获取台站信息
|
||||
// Map<String, StationInfoVO> stationInfo =
|
||||
// StationInfoDataList.stream().collect(
|
||||
// Collectors.toMap(StationInfoData::getStationCode,
|
||||
// station ->
|
||||
// new StationInfoVO(station.getStationCode(), station.getLon(),station.getLat()),
|
||||
// (existing, replacement) -> existing)
|
||||
//
|
||||
// );
|
||||
Set<StationInfoVO> stationInfoSet = StationInfoDataList.stream()
|
||||
Set<StationInfoVO> stationInfoSet = stationInfoDataList.stream()
|
||||
.map(station -> new StationInfoVO(
|
||||
station.getStationCode(),
|
||||
station.getLon(),
|
||||
|
|
@ -106,22 +100,22 @@ public class SampleStatAnalysisService
|
|||
.collect(Collectors.toSet());
|
||||
|
||||
|
||||
List<StationInfoData> sortedList = StationInfoDataList.stream()
|
||||
List<StationInfoData> sortedList = stationInfoDataList.stream()
|
||||
.sorted(Comparator.comparing(station ->
|
||||
station.getCollectStop().toInstant()
|
||||
.atZone(ZoneId.of("UTC"))
|
||||
.toLocalDate()
|
||||
))
|
||||
.collect(Collectors.toList());
|
||||
//时间段内有多少和台站
|
||||
//时间段内有多少台站
|
||||
Map<String, List<Map<String, Object>>> groupedByMonth =
|
||||
sortedList.stream()
|
||||
.filter(station -> station.getCollectStop() !=
|
||||
null) // 过滤 collectStop 为 null 的数据
|
||||
.filter(station -> station.getStationCode() !=
|
||||
null) // 过滤 stationCode 为 null 的数据
|
||||
.filter(station -> station.getCategory() !=
|
||||
null) // 过滤 category 为 null 的数据
|
||||
.filter(station -> station.getCollectStop()
|
||||
!= null) // 过滤 collectStop 为 null 的数据
|
||||
.filter(station -> station.getStationCode()
|
||||
!= null) // 过滤 stationCode 为 null 的数据
|
||||
.filter(station -> station.getCategory()
|
||||
!= null) // 过滤 category 为 null 的数据
|
||||
.collect(Collectors.groupingBy(
|
||||
station -> station.getCollectStop().toInstant()
|
||||
.atZone(ZoneId.of("UTC"))
|
||||
|
|
@ -148,7 +142,7 @@ public class SampleStatAnalysisService
|
|||
// 统计 category 出现次数
|
||||
Map<Integer, Long> categoryCount =
|
||||
categories.stream()
|
||||
.filter(Objects::nonNull) // 再次过滤 null(防御性编程)
|
||||
.filter(Objects::nonNull) // 再次过滤 null
|
||||
.collect(
|
||||
Collectors.groupingBy(
|
||||
category -> category,
|
||||
|
|
@ -158,7 +152,8 @@ public class SampleStatAnalysisService
|
|||
new HashMap<>();
|
||||
categoryCount.forEach(
|
||||
(category, count) -> {
|
||||
String levelKey = "level" +
|
||||
String levelKey = "level"
|
||||
+
|
||||
category; // 例如:1 → "level1"
|
||||
levelCount.put(levelKey,
|
||||
count);
|
||||
|
|
@ -335,6 +330,11 @@ public class SampleStatAnalysisService
|
|||
List<Object[]> thresholdList = new ArrayList<>();
|
||||
Map<String, List<Object[]>> levelGroup = new HashMap<>();
|
||||
|
||||
levelGroup.put("category1", new ArrayList<>());
|
||||
levelGroup.put("category2", new ArrayList<>());
|
||||
levelGroup.put("category3", new ArrayList<>());
|
||||
//levelGroup.put("category4", new ArrayList<>());
|
||||
|
||||
for (NuclideActConcIntvl item : rawList) {
|
||||
String timeStr = sdf.format(item.getCollectStop());
|
||||
mdcList.add(new Object[] {timeStr, item.getMdc()});
|
||||
|
|
@ -344,9 +344,9 @@ public class SampleStatAnalysisService
|
|||
int cat = item.getCategory();
|
||||
String categoryStr = "category" + cat;
|
||||
levelGroup.putIfAbsent(categoryStr, new ArrayList<>());
|
||||
//double err = item.getConcErr() != null ? item.getConcErr() : 0;
|
||||
double err = item.getConcErr() != null ? item.getConcErr() : 0;
|
||||
//TODO 测试数据
|
||||
double err = 15;
|
||||
//double err = 15;
|
||||
levelGroup.get(categoryStr).add(new Object[] {timeStr, item.getConc(), err, err});
|
||||
// if (cat == 3) {
|
||||
// // 3级: 携带误差维度 [时间, 活度, ConcErr , $Conc+ConcErr]
|
||||
|
|
@ -3229,8 +3229,10 @@ public class SampleStatAnalysisService
|
|||
});
|
||||
|
||||
result.setSuccess(true);
|
||||
result.setResult(resultData);
|
||||
return resultData;
|
||||
//result.setResult(resultData);
|
||||
//return resultData;
|
||||
result.setResult(dataMap);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -3309,7 +3311,6 @@ public class SampleStatAnalysisService
|
|||
* @return 返回样品活度浓度区间信息
|
||||
*/
|
||||
@Override
|
||||
|
||||
public Result getSampleActConcIntvlAnalysis(String sampleType, String station,
|
||||
String nuclideName, Integer dataSource,
|
||||
Date startDate, Date endDate) {
|
||||
|
|
@ -3342,54 +3343,49 @@ public class SampleStatAnalysisService
|
|||
return result;
|
||||
}
|
||||
String endTime = DateUtils.formatDate(endDate, "yyyy-MM-dd") + " 23:59:59";
|
||||
|
||||
String schemaName = dataSource == 1 ? "RNAUTO" : "RNMAN";
|
||||
//endregion
|
||||
|
||||
//根据数据源、样品类型查询样品的浓度
|
||||
switch (sampleType) {
|
||||
case "P":
|
||||
switch (dataSource) {
|
||||
//RNAUTO
|
||||
case 1:
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnautoPNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
break;
|
||||
//RNAUTO
|
||||
if (dataSource == 1) {
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnautoPNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
//RNMAN
|
||||
case 2:
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnmanPNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
|
||||
break;
|
||||
} else if (dataSource == 2) {
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnmanPNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
}
|
||||
break;
|
||||
case "B":
|
||||
switch (dataSource) {
|
||||
case 1:
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnautoNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
break;
|
||||
case 2:
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnmanNuclideActConcIntvl(sampleType, station,
|
||||
nuclideName, startTime, endTime);
|
||||
break;
|
||||
|
||||
if (dataSource == 1) {
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnautoNuclideActConcIntvl(sampleType,
|
||||
station, nuclideName, startTime, endTime);
|
||||
} else if (dataSource == 2) {
|
||||
nuclideActConcIntvls =
|
||||
this.baseMapper.getRnmanNuclideActConcIntvl(sampleType, station,
|
||||
nuclideName, startTime, endTime);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
//获取浓度出现的次数
|
||||
if (nuclideActConcIntvls.isEmpty()) {
|
||||
result.error500("查询数据为空");
|
||||
return result;
|
||||
}
|
||||
//获取浓度值集合
|
||||
List<Double> data =
|
||||
DistributionAnalysisToolkit.convertConcToDoubleList(nuclideActConcIntvls);
|
||||
// 设置区间参数
|
||||
double start = 0; // 区间起始值
|
||||
double step = 200; // 区间步长(宽度)
|
||||
double step = 200; // 区间步长(宽度)
|
||||
|
||||
|
||||
// 1. 区间统计
|
||||
|
|
|
|||
|
|
@ -0,0 +1,175 @@
|
|||
package org.jeecg.imsDataMonitor.controller;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.aspect.annotation.AutoLog;
|
||||
import org.jeecg.imsDataMonitor.entity.ProvisionData;
|
||||
import org.jeecg.imsDataMonitor.entity.StationInfo;
|
||||
import org.jeecg.imsDataMonitor.service.IMSDataMonitorService;
|
||||
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.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/imsDataMonitor")
|
||||
public class imsDataMonitorController {
|
||||
|
||||
@Autowired
|
||||
private IMSDataMonitorService imsDataMonitorService;
|
||||
|
||||
|
||||
/**
|
||||
* 获取Particulate 台站的有效率和提供率
|
||||
*
|
||||
* @param code 类型代码
|
||||
* @param startDate 开始日期
|
||||
* @param endDate 结束日期
|
||||
* @return 返回 Result
|
||||
*/
|
||||
@AutoLog(value = "Particulate 台站的有效率")
|
||||
@GetMapping("getParticulate")
|
||||
public Result<?> getParticulate(@RequestParam(value = "code", required = false) String code,
|
||||
@RequestParam(value = "startDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam(value = "endDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
// List<ProvisionData> data = imsDataMonitorService.getParticulate(code, startDate, endDate);
|
||||
// return Result.OK(data);
|
||||
//TODO 测试待删除
|
||||
try (InputStream inputStream = imsDataMonitorController.class.getClassLoader()
|
||||
.getResourceAsStream("Particulate.json")) {
|
||||
//region 测试数据
|
||||
//endregion
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
Result<List<ProvisionData>> resultData =
|
||||
objectMapper.readValue(inputStream, new TypeReference<>() {
|
||||
});
|
||||
return resultData;
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Spalax 台站的有效率
|
||||
*
|
||||
* @param code
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Spalax 台站的有效率")
|
||||
@GetMapping("getSpalax")
|
||||
public Result<?> getSpalax(@RequestParam(value = "code", required = false) String code,
|
||||
@RequestParam(value = "startDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam(value = "endDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
// List<ProvisionData> data = imsDataMonitorService.getSpalax(code, startDate, endDate);
|
||||
// return Result.OK(data);
|
||||
//TODO 测试待删除
|
||||
try (InputStream inputStream = imsDataMonitorController.class.getClassLoader()
|
||||
.getResourceAsStream("Spalax.json")) {
|
||||
//region 测试数据
|
||||
//endregion
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
Result<List<ProvisionData>> resultData =
|
||||
objectMapper.readValue(inputStream, new TypeReference<>() {
|
||||
});
|
||||
return resultData;
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Sauna2 台站的有效率
|
||||
*
|
||||
* @param code
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Sauna2 台站的有效率")
|
||||
@GetMapping("getSauna2")
|
||||
public Result<?> getSauna2(@RequestParam(value = "code", required = false) String code,
|
||||
@RequestParam(value = "startDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam(value = "endDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
// List<ProvisionData> data = imsDataMonitorService.getSauna2(code, startDate, endDate);
|
||||
// return Result.OK(data);
|
||||
//TODO 测试待删除
|
||||
try (InputStream inputStream = imsDataMonitorController.class.getClassLoader()
|
||||
.getResourceAsStream("Sauna2.json")) {
|
||||
//region 测试数据
|
||||
//endregion
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
Result<List<ProvisionData>> resultData =
|
||||
objectMapper.readValue(inputStream, new TypeReference<>() {
|
||||
});
|
||||
return resultData;
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sauna3 台站的有效率
|
||||
*
|
||||
* @param code
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "Sauna3 台站的有效率")
|
||||
@GetMapping("getSauna3")
|
||||
public Result<?> getSauna3(@RequestParam(value = "code", required = false) String code,
|
||||
@RequestParam(value = "startDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date startDate,
|
||||
@RequestParam(value = "endDate", required = false)
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
Date endDate) {
|
||||
// List<ProvisionData> data = imsDataMonitorService.getSauna3(code, startDate, endDate);
|
||||
// return Result.OK(data);
|
||||
//TODO 测试待删除
|
||||
try (InputStream inputStream = imsDataMonitorController.class.getClassLoader()
|
||||
.getResourceAsStream("Sauna3.json")) {
|
||||
//region 测试数据
|
||||
//endregion
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
Result<List<ProvisionData>> resultData =
|
||||
objectMapper.readValue(inputStream, new TypeReference<>() {
|
||||
});
|
||||
return resultData;
|
||||
} catch (Exception e) {
|
||||
return Result.error(e.getMessage());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package org.jeecg.imsDataMonitor.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class PhdfProvisionEfficiency {
|
||||
//liveLow
|
||||
private String liveLow;
|
||||
//liveHigh
|
||||
private String liveHigh;
|
||||
//quantity
|
||||
private String quantity;
|
||||
//collectLow
|
||||
private String collectLow;
|
||||
//collectHigh
|
||||
private String collectHigh;
|
||||
//curDateTime
|
||||
private String curDateTime;
|
||||
//pretime
|
||||
private String pretime;
|
||||
//number
|
||||
private String number;
|
||||
|
||||
private String nuclideName;
|
||||
|
||||
private String liveQc;
|
||||
private String mdc;
|
||||
private String xeVolume;
|
||||
//stationId
|
||||
private List<Integer> stationId;
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
package org.jeecg.imsDataMonitor.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class ProvisionData implements Serializable {
|
||||
|
||||
private String stationCode;
|
||||
/**
|
||||
* 数据数量
|
||||
*/
|
||||
private Integer dataNumber;
|
||||
/**
|
||||
* 数据提供率
|
||||
*/
|
||||
private double dataRate;
|
||||
/**
|
||||
* 数据有效率
|
||||
*/
|
||||
private double dataEfficiency;
|
||||
/**
|
||||
* 采集开始时间
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
|
||||
private Date collectStart;
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
package org.jeecg.imsDataMonitor.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
public class StationInfo implements Serializable {
|
||||
|
||||
private String id;
|
||||
|
||||
private String stationCode;
|
||||
|
||||
private String countryCode;
|
||||
|
||||
private String type;
|
||||
|
||||
private String lon;
|
||||
|
||||
private String lat;
|
||||
|
||||
private String description;
|
||||
|
||||
private String status;
|
||||
|
||||
private String phdf;
|
||||
|
||||
private String phd;
|
||||
|
||||
private String met;
|
||||
|
||||
private String soh;
|
||||
|
||||
private String phdMetSoh;
|
||||
|
||||
private String used;
|
||||
|
||||
private String quality;
|
||||
|
||||
private String efficCalculType;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
package org.jeecg.imsDataMonitor.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jeecg.imsDataMonitor.entity.PhdfProvisionEfficiency;
|
||||
import org.jeecg.imsDataMonitor.entity.ProvisionData;
|
||||
import org.jeecg.modules.base.entity.configuration.GardsStations;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface IMSDataMonitorMapper extends BaseMapper<GardsStations> {
|
||||
|
||||
List<GardsStations> findStationList(@Param("systemType") String systemType);
|
||||
|
||||
List<GardsStations> findEfficStationList(@Param("efficType") String efficType);
|
||||
|
||||
/**
|
||||
* 查询台站每天的有效率
|
||||
*
|
||||
* @param efficiency
|
||||
* @return List<ProvisionData>
|
||||
*/
|
||||
List<ProvisionData> findPhdfParticulateEfficiency(
|
||||
@Param("efficiency") PhdfProvisionEfficiency efficiency);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询台站每天的有效率
|
||||
*
|
||||
* @param efficiency
|
||||
* @return List<ProvisionData>
|
||||
*/
|
||||
List<ProvisionData> findPhdfSpalaxEfficiency(
|
||||
@Param("efficiency") PhdfProvisionEfficiency efficiency);
|
||||
/**
|
||||
* 查询台站每天的有效率
|
||||
*
|
||||
* @param efficiency
|
||||
* @return List<ProvisionData>
|
||||
*/
|
||||
List<ProvisionData> findPhdfSauna2Efficiency(
|
||||
@Param("efficiency") PhdfProvisionEfficiency efficiency);
|
||||
/**
|
||||
* 查询台站每天的有效率
|
||||
*
|
||||
* @param efficiency
|
||||
* @return List<ProvisionData>
|
||||
*/
|
||||
List<ProvisionData> findPhdfSauna3Efficiency(
|
||||
@Param("efficiency") PhdfProvisionEfficiency efficiency);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.jeecg.imsDataMonitor.mapper.IMSDataMonitorMapper">
|
||||
<select id="findStationList" resultType="org.jeecg.modules.base.entity.configuration.GardsStations">
|
||||
SELECT * FROM CONFIGURATION.GARDS_STATIONS
|
||||
<where>
|
||||
TYPE IN
|
||||
<if test='systemType == "P"'>
|
||||
('Manual', 'CINDER', 'RASA', 'LAB')
|
||||
</if>
|
||||
<if test='systemType == "B"'>
|
||||
('SAUNA', 'ARIX-4', 'ARIX-2', 'SPALAX')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
<select id="findEfficStationList" resultType="org.jeecg.modules.base.entity.configuration.GardsStations">
|
||||
SELECT * FROM CONFIGURATION.GARDS_STATIONS
|
||||
<where>
|
||||
EFFIC_CALCUL_TYPE ='${efficType}'
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="findPhdfParticulateEfficiency" resultType="org.jeecg.imsDataMonitor.entity.ProvisionData">
|
||||
SELECT TRUNC(sdata.COLLECT_START) AS collectStart,
|
||||
COUNT(*) AS total_samples,
|
||||
sta.STATION_CODE ,
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN sdata.data_type = 'Q' THEN
|
||||
1
|
||||
WHEN sdata.data_type = 'S'
|
||||
AND (sdata.acquisition_live_sec / 60 / 60.00) BETWEEN #{efficiency.liveLow}
|
||||
AND #{efficiency.liveHigh}
|
||||
AND
|
||||
(to_number(sdata.COLLECT_STOP - sdata.COLLECT_START) * 24) BETWEEN #{efficiency.liveLow}
|
||||
AND #{efficiency.liveHigh}
|
||||
AND sdata.quantity > 10800 THEN
|
||||
1
|
||||
END
|
||||
) AS dataNumber,
|
||||
ROUND(
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN sdata.data_type = 'Q' THEN
|
||||
1
|
||||
WHEN sdata.data_type = 'S'
|
||||
AND (sdata.acquisition_live_sec / 60 / 60.00) BETWEEN #{efficiency.liveLow}
|
||||
AND #{efficiency.liveHigh}
|
||||
AND
|
||||
(to_number(sdata.COLLECT_STOP - sdata.COLLECT_START) * 24) BETWEEN #{efficiency.liveLow}
|
||||
AND #{efficiency.liveHigh}
|
||||
AND sdata.quantity > #{efficiency.quantity} THEN
|
||||
1
|
||||
END
|
||||
) * 100.0 / (1 * ${efficiency.number}),
|
||||
2
|
||||
)AS dataEfficiency
|
||||
|
||||
FROM ORIGINAL.GARDS_SAMPLE_DATA sdata
|
||||
LEFT JOIN CONFIGURATION.GARDS_STATIONS sta ON sta.station_id = sdata.station_id
|
||||
WHERE SDATA.SAMPLE_TYPE = 'P'
|
||||
AND sdata.spectral_qualifie = 'FULL'
|
||||
AND sta.station_code LIKE '__P%'
|
||||
AND sdata.station_id IN
|
||||
<foreach collection="efficiency.stationId" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
AND sdata.COLLECT_START BETWEEN TO_DATE('${efficiency.pretime}', 'YYYY-MM-DD hh24:mi:ss')
|
||||
AND TO_DATE('${efficiency.curDateTime}', 'YYYY-MM-DD hh24:mi:ss')
|
||||
GROUP BY TRUNC(sdata.COLLECT_START),sta.STATION_CODE
|
||||
ORDER BY collectStart;
|
||||
</select>
|
||||
|
||||
<select id="findPhdfSpalaxEfficiency" resultType="org.jeecg.imsDataMonitor.entity.ProvisionData">
|
||||
SELECT
|
||||
TRUNC(sdata.COLLECT_START) AS collectStart,
|
||||
sta.STATION_CODE ,
|
||||
SUM(CASE
|
||||
WHEN sdata.acquisition_live_sec > ${efficiency.liveQc}
|
||||
AND sdata.data_type = 'Q'
|
||||
AND sdata.spectral_qualifie = 'FULL'
|
||||
THEN 1 ELSE 0
|
||||
END)
|
||||
+ SUM(CASE
|
||||
WHEN sdata.data_type = 'S'
|
||||
AND (sdata.acquisition_live_sec/60/60.00) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND (to_number(SDATA.COLLECT_STOP - SDATA.COLLECT_START) * 24) BETWEEN ${efficiency.collectLow} AND ${efficiency.collectHigh}
|
||||
AND sdata.quantity > ${efficiency.quantity}
|
||||
THEN 1 ELSE 0
|
||||
END) AS dataNumber,
|
||||
ROUND(
|
||||
(SUM(CASE
|
||||
WHEN sdata.acquisition_live_sec > ${efficiency.liveQc}
|
||||
AND sdata.data_type = 'Q'
|
||||
AND sdata.spectral_qualifie = 'FULL'
|
||||
THEN 1 ELSE 0
|
||||
END)
|
||||
+ SUM(CASE
|
||||
WHEN sdata.data_type = 'S'
|
||||
AND (sdata.acquisition_live_sec/60/60.00) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND (to_number(SDATA.COLLECT_STOP - SDATA.COLLECT_START) * 24) BETWEEN ${efficiency.collectLow} AND ${efficiency.collectHigh}
|
||||
AND sdata.quantity > ${efficiency.quantity}
|
||||
THEN 1 ELSE 0
|
||||
END))
|
||||
/ 1 * ${efficiency.number} * 100,
|
||||
2
|
||||
) AS dataEfficiency
|
||||
FROM ORIGINAL.GARDS_SAMPLE_DATA sdata
|
||||
LEFT JOIN RNAUTO.GARDS_XE_RESULTS xe ON xe.sample_id = sdata.sample_id
|
||||
LEFT JOIN ORIGINAL.GARDS_SAMPLE_AUX aux ON aux.sample_id = sdata.sample_id
|
||||
LEFT JOIN CONFIGURATION.GARDS_STATIONS sta ON sta.station_id = sdata.station_id
|
||||
|
||||
<where>
|
||||
sta.EFFIC_CALCUL_TYPE = 'SPALAX'
|
||||
AND SDATA.SAMPLE_TYPE = 'G'
|
||||
AND substr(sta.station_code, 3, 1) = 'X'
|
||||
AND sdata.station_id IN
|
||||
<foreach collection="efficiency.stationId" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
AND sdata.COLLECT_START BETWEEN TO_DATE(#{efficiency.pretime}, 'YYYY-MM-DD hh24:mi:ss')
|
||||
AND TO_DATE(#{efficiency.curDateTime}, 'YYYY-MM-DD hh24:mi:ss')
|
||||
</where>
|
||||
|
||||
GROUP BY TRUNC(sdata.COLLECT_START),sta.STATION_CODE
|
||||
ORDER BY collectStart
|
||||
|
||||
</select>
|
||||
|
||||
<select id="findPhdfSauna2Efficiency" resultType="org.jeecg.imsDataMonitor.entity.ProvisionData">
|
||||
SELECT
|
||||
TRUNC(sdata.COLLECT_START) AS collectStart,
|
||||
sta.STATION_CODE ,
|
||||
(SUM(CASE WHEN ROUND(sdata.acquisition_live_sec/60/60.00) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND sdata.quantity > ${efficiency.quantity}
|
||||
AND xe.MDC < ${efficiency.mdc}
|
||||
AND (to_number(SDATA.COLLECT_STOP - SDATA.COLLECT_START)*24) BETWEEN ${efficiency.collectLow} AND ${efficiency.collectHigh}
|
||||
AND aux.xe_volume > ${efficiency.xeVolume}
|
||||
AND xe.nuclide_name = '${efficiency.nuclideName}'
|
||||
AND sdata.data_type = 'S' THEN 1 ELSE 0 END)
|
||||
+ SUM(CASE WHEN sdata.acquisition_live_sec > ${efficiency.liveQc} AND sdata.data_type = 'Q' THEN 1 ELSE 0 END)
|
||||
+ SUM(CASE WHEN ROUND(sdata.acquisition_live_sec/60/60.00, 2) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND sdata.data_type = 'G' THEN 1 ELSE 0 END)) AS dataNumber,
|
||||
|
||||
ROUND((SUM(CASE WHEN ROUND(sdata.acquisition_live_sec/60/60.00) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND sdata.quantity > ${efficiency.quantity}
|
||||
AND xe.MDC < ${efficiency.mdc}
|
||||
AND (to_number(SDATA.COLLECT_STOP - SDATA.COLLECT_START)*24) BETWEEN ${efficiency.collectLow} AND ${efficiency.collectHigh}
|
||||
AND aux.xe_volume > ${efficiency.xeVolume}
|
||||
AND xe.nuclide_name = '${efficiency.nuclideName}'
|
||||
AND sdata.data_type = 'S' THEN 1 ELSE 0 END)
|
||||
+ SUM(CASE WHEN sdata.acquisition_live_sec > ${efficiency.liveQc} AND sdata.data_type = 'Q' THEN 1 ELSE 0 END)
|
||||
+ SUM(CASE WHEN ROUND(sdata.acquisition_live_sec/60/60.00, 2) BETWEEN ${efficiency.liveLow} AND ${efficiency.liveHigh}
|
||||
AND sdata.data_type = 'G' THEN 1 ELSE 0 END))
|
||||
/ ${efficiency.number} * 100, 2) AS dataEfficiency
|
||||
|
||||
FROM ORIGINAL.GARDS_SAMPLE_DATA sdata
|
||||
LEFT JOIN RNAUTO.GARDS_XE_RESULTS xe ON xe.sample_id = sdata.sample_id
|
||||
LEFT JOIN ORIGINAL.GARDS_SAMPLE_AUX aux ON aux.sample_id = sdata.sample_id
|
||||
LEFT JOIN CONFIGURATION.GARDS_STATIONS sta ON sta.station_id = sdata.station_id
|
||||
|
||||
<where>
|
||||
substr(sta.station_code, 3, 1) = 'X'
|
||||
AND SDATA.SAMPLE_TYPE = 'B'
|
||||
AND sdata.spectral_qualifie = 'FULL'
|
||||
AND sdata.station_id IN
|
||||
<foreach collection="efficiency.stationId" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
AND sdata.COLLECT_START BETWEEN TO_DATE(#{efficiency.pretime}, 'YYYY-MM-DD hh24:mi:ss')
|
||||
AND TO_DATE(#{efficiency.curDateTime}, 'YYYY-MM-DD hh24:mi:ss')
|
||||
</where>
|
||||
|
||||
GROUP BY TRUNC(sdata.COLLECT_START),sta.STATION_CODE
|
||||
ORDER BY collectStart
|
||||
</select>
|
||||
|
||||
<select id="findPhdfSauna3Efficiency" resultType="org.jeecg.imsDataMonitor.entity.ProvisionData">
|
||||
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package org.jeecg.imsDataMonitor.service;
|
||||
|
||||
|
||||
import org.jeecg.imsDataMonitor.entity.ProvisionData;
|
||||
import org.jeecg.modules.base.entity.configuration.GardsStations;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface IMSDataMonitorService {
|
||||
|
||||
/**
|
||||
* 获取台站集合
|
||||
*
|
||||
* @param systemType
|
||||
* @return List<GardsStations> 集合
|
||||
*/
|
||||
List<GardsStations> getGardsStationList(String systemType);
|
||||
|
||||
/**
|
||||
*获取Particulate类型的有效率数据
|
||||
* @return Map<String, List<ProvisionData>>
|
||||
*/
|
||||
List<ProvisionData> getParticulate(String code, Date startDate, Date endDate);
|
||||
|
||||
List<ProvisionData> getSpalax(String code, Date startDate, Date endDate);
|
||||
|
||||
List<ProvisionData> getSauna2(String code, Date startDate, Date endDate);
|
||||
|
||||
List<ProvisionData> getSauna3(String code, Date startDate, Date endDate);
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,237 @@
|
|||
package org.jeecg.imsDataMonitor.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import com.baomidou.dynamic.datasource.annotation.DS;
|
||||
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.jeecg.common.util.DateUtils;
|
||||
import org.jeecg.imsDataMonitor.entity.PhdfProvisionEfficiency;
|
||||
import org.jeecg.imsDataMonitor.entity.ProvisionData;
|
||||
import org.jeecg.imsDataMonitor.mapper.IMSDataMonitorMapper;
|
||||
import org.jeecg.imsDataMonitor.service.IMSDataMonitorService;
|
||||
import org.jeecg.modules.base.entity.configuration.GardsStations;
|
||||
import org.jeecg.modules.base.mapper.GardsStationsMapper;
|
||||
import org.jeecg.modules.base.mapper.StasStationSettingMapper;
|
||||
import org.jspecify.annotations.NonNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@DS("ora")
|
||||
public class IMSDataMonitorServiceImpl implements IMSDataMonitorService {
|
||||
@Autowired
|
||||
private IMSDataMonitorMapper imsDataMonitorMapper;
|
||||
@Autowired
|
||||
private StasStationSettingMapper settingMapper;
|
||||
|
||||
@Override
|
||||
public List<GardsStations> getGardsStationList(String systemType) {
|
||||
return imsDataMonitorMapper.findStationList(systemType);
|
||||
}
|
||||
|
||||
//region Particulate
|
||||
@Override
|
||||
public List<ProvisionData> getParticulate(String code, Date startDate, Date endDate) {
|
||||
//获取Particulate类型的台站信息
|
||||
List<GardsStations> stations = imsDataMonitorMapper.findStationList("P");
|
||||
String[] times = getDataTime(startDate, endDate);
|
||||
//有效率状态
|
||||
return getStationDailyData(stations, times[0], times[1]);
|
||||
|
||||
}
|
||||
|
||||
private List<ProvisionData> getStationDailyData(List<GardsStations> stationList,
|
||||
String startTime, String endTime) {
|
||||
|
||||
if (CollectionUtil.isEmpty(stationList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
String liveLow = "21.6";
|
||||
String liveHigh = "26.4";
|
||||
String quantity = "10800";
|
||||
String collectLow = "21.6";
|
||||
String collectHigh = "26.4";
|
||||
String number = "1";
|
||||
//每个台站一个月的有效率
|
||||
|
||||
PhdfProvisionEfficiency efficiency = new PhdfProvisionEfficiency();
|
||||
List<Integer> sts = stationList.stream()
|
||||
.map(GardsStations::getStationId)
|
||||
.collect(Collectors.toList());
|
||||
efficiency.setStationId(sts);
|
||||
efficiency.setNumber(number);
|
||||
efficiency.setCollectHigh(collectHigh);
|
||||
efficiency.setLiveHigh(liveHigh);
|
||||
efficiency.setCollectLow(collectLow);
|
||||
efficiency.setLiveLow(liveLow);
|
||||
efficiency.setQuantity(quantity);
|
||||
efficiency.setCurDateTime(endTime);
|
||||
efficiency.setPretime(startTime);
|
||||
//查询数据库 获取台站有效率
|
||||
List<ProvisionData> rawDataList =
|
||||
imsDataMonitorMapper.findPhdfParticulateEfficiency(efficiency);
|
||||
//dataMap.put(station.getStationCode(), rawDataList);
|
||||
return rawDataList;
|
||||
|
||||
}
|
||||
|
||||
private String[] getDataTime(Date startDate, Date endDate) {
|
||||
|
||||
// 使用final确保不可变性,提供更好的线程安全性
|
||||
final LocalDateTime currentTime = LocalDateTime.now();
|
||||
|
||||
// 计算默认时间范围
|
||||
final LocalDateTime defaultStartTime = currentTime.minusDays(30);
|
||||
final LocalDateTime defaultEndTime = currentTime;
|
||||
|
||||
// 定义时间格式器常量(避免重复创建)
|
||||
final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
final DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
|
||||
// 处理开始时间
|
||||
String startTime = Objects.isNull(startDate)
|
||||
? defaultStartTime.format(formatter)
|
||||
: DateUtils.formatDate(startDate, "yyyy-MM-dd") + " 00:00:00";
|
||||
|
||||
// 处理结束时间
|
||||
String endTime = Objects.isNull(endDate)
|
||||
? defaultEndTime.format(formatter)
|
||||
: DateUtils.formatDate(endDate, "yyyy-MM-dd") + " 23:59:59";
|
||||
|
||||
return new String[] {startTime, endTime};
|
||||
}
|
||||
|
||||
//endregion
|
||||
|
||||
//region SPALAX
|
||||
@Override
|
||||
public List<ProvisionData> getSpalax(String code, Date startDate, Date endDate) {
|
||||
String actualCode = (code == null || code.trim().isEmpty()) ? "SPALAX" : code;
|
||||
//获取Particulate类型的台站信息
|
||||
List<GardsStations> stations = imsDataMonitorMapper.findEfficStationList(actualCode);
|
||||
String[] times = getDataTime(startDate, endDate);
|
||||
//有效率状态
|
||||
return getSpalaxStationDailyData(stations, times[0], times[1]);
|
||||
}
|
||||
|
||||
private List<ProvisionData> getSpalaxStationDailyData(List<GardsStations> stationList,
|
||||
String startTime, String endTime) {
|
||||
|
||||
if (CollectionUtil.isEmpty(stationList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
String liveLow = "10";
|
||||
String liveHigh = "11";
|
||||
String quantity = "10";
|
||||
String collectLow = "10.8";
|
||||
String collectHigh = "13.2";
|
||||
String number = "4";
|
||||
String liveqc = "240";
|
||||
//每个台站一个月的有效率
|
||||
|
||||
PhdfProvisionEfficiency efficiency = new PhdfProvisionEfficiency();
|
||||
List<Integer> sts = stationList.stream()
|
||||
.map(GardsStations::getStationId)
|
||||
.collect(Collectors.toList());
|
||||
efficiency.setStationId(sts);
|
||||
efficiency.setNumber(number);
|
||||
efficiency.setCollectHigh(collectHigh);
|
||||
efficiency.setLiveHigh(liveHigh);
|
||||
efficiency.setCollectLow(collectLow);
|
||||
efficiency.setLiveLow(liveLow);
|
||||
efficiency.setQuantity(quantity);
|
||||
efficiency.setCurDateTime(endTime);
|
||||
efficiency.setPretime(startTime);
|
||||
efficiency.setLiveQc(liveqc);
|
||||
//查询数据库 获取台站有效率
|
||||
List<ProvisionData> rawDataList =
|
||||
imsDataMonitorMapper.findPhdfSpalaxEfficiency(efficiency);
|
||||
//dataMap.put(station.getStationCode(), rawDataList);
|
||||
return rawDataList;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//endregion
|
||||
|
||||
//region SAUNA II
|
||||
@Override
|
||||
public List<ProvisionData> getSauna2(String code, Date startDate, Date endDate) {
|
||||
String actualCode = (code == null || code.trim().isEmpty()) ? "SAUNA2" : code;
|
||||
//获取Particulate类型的台站信息
|
||||
List<GardsStations> stations = imsDataMonitorMapper.findEfficStationList(actualCode);
|
||||
String[] times = getDataTime(startDate, endDate);
|
||||
//有效率状态
|
||||
return getSauna2StationDailyData(stations, times[0], times[1]);
|
||||
}
|
||||
|
||||
private List<ProvisionData> getSauna2StationDailyData(List<GardsStations> stationList,
|
||||
String startTime, String endTime) {
|
||||
|
||||
if (CollectionUtil.isEmpty(stationList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
String collectLow = "5.4";
|
||||
String collectHigh = "6.6";
|
||||
String liveLow = "4.2";
|
||||
String liveHigh = "6.6";
|
||||
String quantity = "10";
|
||||
String xeVolume = "0.87";
|
||||
String mdc = "1";
|
||||
String nuclideName = "Xe133";
|
||||
String liveQc = "600";
|
||||
String number = "16";
|
||||
//每个台站一个月的有效率
|
||||
|
||||
PhdfProvisionEfficiency efficiency = new PhdfProvisionEfficiency();
|
||||
List<Integer> sts = stationList.stream()
|
||||
.map(GardsStations::getStationId)
|
||||
.collect(Collectors.toList());
|
||||
efficiency.setStationId(sts);
|
||||
efficiency.setNumber(number);
|
||||
efficiency.setCollectHigh(collectHigh);
|
||||
efficiency.setLiveHigh(liveHigh);
|
||||
efficiency.setCollectLow(collectLow);
|
||||
efficiency.setLiveLow(liveLow);
|
||||
efficiency.setQuantity(quantity);
|
||||
efficiency.setCurDateTime(endTime);
|
||||
efficiency.setPretime(startTime);
|
||||
efficiency.setNuclideName(nuclideName);
|
||||
efficiency.setMdc(mdc);
|
||||
efficiency.setLiveQc(liveQc);
|
||||
efficiency.setXeVolume(xeVolume);
|
||||
//查询数据库 获取台站有效率
|
||||
List<ProvisionData> rawDataList =
|
||||
imsDataMonitorMapper.findPhdfSauna2Efficiency(efficiency);
|
||||
//dataMap.put(station.getStationCode(), rawDataList);
|
||||
return rawDataList;
|
||||
|
||||
}
|
||||
//endregion
|
||||
|
||||
//region SAUNA III
|
||||
@Override
|
||||
public List<ProvisionData> getSauna3(String code, Date startDate, Date endDate) {
|
||||
String actualCode = (code == null || code.trim().isEmpty()) ? "SAUNA3" : code;
|
||||
//获取Particulate类型的台站信息
|
||||
List<GardsStations> stations = imsDataMonitorMapper.findEfficStationList(actualCode);
|
||||
String[] times = getDataTime(startDate, endDate);
|
||||
//有效率状态
|
||||
return getSauna2StationDailyData(stations, times[0], times[1]);
|
||||
}
|
||||
//endregion
|
||||
}
|
||||
|
|
@ -5,12 +5,10 @@ import com.fasterxml.jackson.databind.ObjectMapper;
|
|||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.http.client.utils.URIBuilder;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.properties.HttpClientHostProperties;
|
||||
import org.jeecg.sysEmail.entity.SysEmail;
|
||||
import org.jeecg.utils.HttpClientUtil;
|
||||
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.RequestParam;
|
||||
|
|
@ -18,15 +16,11 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URLEncoder;
|
||||
import java.time.LocalDate;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/sysEmail")
|
||||
|
|
|
|||
23584
jeecg-module-large-screen/src/main/resources/Particulate.json
Normal file
23584
jeecg-module-large-screen/src/main/resources/Particulate.json
Normal file
File diff suppressed because it is too large
Load Diff
288
jeecg-module-large-screen/src/main/resources/Sauna2.json
Normal file
288
jeecg-module-large-screen/src/main/resources/Sauna2.json
Normal file
|
|
@ -0,0 +1,288 @@
|
|||
{
|
||||
"success": true,
|
||||
"message": "",
|
||||
"code": 200,
|
||||
"result": [
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-31"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 4,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 25,
|
||||
"collectStart": "2025-11-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-10"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-11"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-12"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-13"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-14"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-15"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-16"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-17"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-18"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-19"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-20"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-21"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-22"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-23"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-24"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-25"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-26"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-27"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-28"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-29"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-30"
|
||||
}
|
||||
],
|
||||
"timestamp": 1768792471998
|
||||
}
|
||||
288
jeecg-module-large-screen/src/main/resources/Sauna3.json
Normal file
288
jeecg-module-large-screen/src/main/resources/Sauna3.json
Normal file
|
|
@ -0,0 +1,288 @@
|
|||
{
|
||||
"success": true,
|
||||
"message": "",
|
||||
"code": 200,
|
||||
"result": [
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-31"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 4,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 25,
|
||||
"collectStart": "2025-11-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 2,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 12.5,
|
||||
"collectStart": "2025-11-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-10"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-11"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-12"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-13"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-14"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-15"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-16"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-17"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-18"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-19"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-20"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-21"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-22"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-23"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-24"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-25"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-26"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-27"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-28"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-29"
|
||||
},
|
||||
{
|
||||
"stationCode": "JPX38",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-12-30"
|
||||
}
|
||||
],
|
||||
"timestamp": 1768792471998
|
||||
}
|
||||
596
jeecg-module-large-screen/src/main/resources/Spalax.json
Normal file
596
jeecg-module-large-screen/src/main/resources/Spalax.json
Normal file
|
|
@ -0,0 +1,596 @@
|
|||
{
|
||||
"success": true,
|
||||
"message": "",
|
||||
"code": 200,
|
||||
"result": [
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-09-30"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-09-30"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-09-30"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-01"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-02"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-03"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-04"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-05"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-06"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-07"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-08"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-09"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-10"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-10"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-10"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-11"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-11"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-11"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-12"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-12"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-12"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-13"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-13"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-13"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-14"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-14"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-14"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-15"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-15"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-15"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-16"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-16"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-17"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-17"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-18"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-18"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-19"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-19"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-19"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-20"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-20"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-20"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-21"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-21"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-21"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-22"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-22"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-22"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-23"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-23"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-23"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-24"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-24"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-24"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-25"
|
||||
},
|
||||
{
|
||||
"stationCode": "DEX33",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-25"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-25"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-26"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-26"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-27"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-27"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-28"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-28"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-29"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-29"
|
||||
},
|
||||
{
|
||||
"stationCode": "CMX13",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-30"
|
||||
},
|
||||
{
|
||||
"stationCode": "CNX20",
|
||||
"dataNumber": 0,
|
||||
"dataRate": 0,
|
||||
"dataEfficiency": 0,
|
||||
"collectStart": "2025-10-30"
|
||||
}
|
||||
],
|
||||
"timestamp": 1768791911932
|
||||
}
|
||||
|
|
@ -49,7 +49,7 @@ public class GardsNuclearReactorsController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增核设施信息")
|
||||
public Result<?> create(@RequestBody GardsNuclearReactors gardsNuclearReactors) {
|
||||
gardsNuclearReactorsService.save(gardsNuclearReactors);
|
||||
gardsNuclearReactorsService.create(gardsNuclearReactors);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -62,7 +62,7 @@ public class GardsNuclearReactorsController {
|
|||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除核设施信息数据")
|
||||
public Result<?> delete(@RequestParam Integer id) {
|
||||
gardsNuclearReactorsService.removeById(id);
|
||||
gardsNuclearReactorsService.delete(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class GardsNuclearReleaseController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增加核设施放射性排放记录信息")
|
||||
public Result<?> create(@RequestBody GardsNuclearReleaseRecords gardsNuclearReleaseRecords) {
|
||||
gardsNuclearReleaseService.save(gardsNuclearReleaseRecords);
|
||||
gardsNuclearReleaseService.create(gardsNuclearReleaseRecords);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ public class GardsNuclearReleaseController {
|
|||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除核设施放射性排放记录信息")
|
||||
public Result<?> deleteById(@RequestParam Integer id) {
|
||||
gardsNuclearReleaseService.removeById(id);
|
||||
gardsNuclearReleaseService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ public class GardsNuclearTestingPlantController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增核试验信息")
|
||||
public Result<?> create(@RequestBody GardsNuclearTestingPlant gardsNuclearTestingPlant) {
|
||||
gardsNuclearTestingPlantService.save(gardsNuclearTestingPlant);
|
||||
gardsNuclearTestingPlantService.create(gardsNuclearTestingPlant);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -55,7 +55,7 @@ public class GardsNuclearTestingPlantController {
|
|||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除核试验信息")
|
||||
public Result<?> deleteById(@RequestParam Integer id) {
|
||||
gardsNuclearTestingPlantService.removeById(id);
|
||||
gardsNuclearTestingPlantService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class GardsNuclideDecayController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增信息")
|
||||
public Result<?> create(@RequestBody GardsNuclideDecay gardsNuclideDecay) {
|
||||
gardsNuclideDecayService.save(gardsNuclideDecay);
|
||||
gardsNuclideDecayService.create(gardsNuclideDecay);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ public class GardsNuclideDecayController {
|
|||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除信息")
|
||||
public Result<?> deleteById(Integer id) {
|
||||
gardsNuclideDecayService.removeById(id);
|
||||
gardsNuclideDecayService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ public class GardsResearchReactorsController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增反应堆信息")
|
||||
public Result<?> create(@RequestBody GardsResearchReactors gardsResearchReactors) {
|
||||
gardsResearchReactorsService.save(gardsResearchReactors);
|
||||
gardsResearchReactorsService.create(gardsResearchReactors);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -52,7 +52,7 @@ public class GardsResearchReactorsController {
|
|||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除反应堆信息")
|
||||
public Result<?> deleteById(@RequestParam Integer id) {
|
||||
gardsResearchReactorsService.removeById(id);
|
||||
gardsResearchReactorsService.deleteById(id);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class GardsStationsController {
|
|||
@PostMapping("/create")
|
||||
@Operation(summary = "新增台站信息")
|
||||
public Result<?> create(@RequestBody GardsStations gardsStations) {
|
||||
gardsStationsService.save(gardsStations);
|
||||
gardsStationsService.create(gardsStations);
|
||||
return Result.OK("新增成功!");
|
||||
}
|
||||
|
||||
|
|
@ -50,8 +50,8 @@ public class GardsStationsController {
|
|||
*/
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除台站信息")
|
||||
public Result<?> deleteById(@RequestParam Integer stationId) {
|
||||
gardsStationsService.removeById(stationId);
|
||||
public Result<?> deleteById(@RequestParam(required = false) Integer stationId) {
|
||||
gardsStationsService.deleteById(stationId);
|
||||
return Result.OK("删除成功!");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,7 +42,13 @@ public class GardsStationsServiceImpl extends ServiceImpl<GardsStationsMapper, G
|
|||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public void deleteById(Integer stationId) {
|
||||
this.removeById(stationId);
|
||||
try {
|
||||
this.removeById(stationId);
|
||||
} catch (RuntimeException e) {
|
||||
throw new RuntimeException("");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user