diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java new file mode 100644 index 00000000..ce68e12a --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateDataRateThread.java @@ -0,0 +1,574 @@ +package org.jeecg.common; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.jeecg.modules.entity.data.*; +import org.jeecg.modules.service.ICalCulStationDataService; +import org.jeecgframework.core.util.ApplicationContextUtil; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.CountDownLatch; + +@Slf4j +public class CalculateDataRateThread implements Runnable{ + + private ICalCulStationDataService calCulStationDataService = ApplicationContextUtil.getContext().getBean(ICalCulStationDataService.class); + + private final GetStationinfoAndDataRate stationinfoAndDataRate; + + private final List finallySta; + + private CountDownLatch countDownLatch; + + CalculateDataRateThread(List finallySta, GetStationinfoAndDataRate stationinfoAndDataRate, CountDownLatch countDownLatch) { + this.stationinfoAndDataRate = stationinfoAndDataRate; + this.finallySta = finallySta; + this.countDownLatch = countDownLatch; + } + + @Override + public void run() { + try { + this.calCulStationInfo(); + }catch (Exception e){ + e.printStackTrace(); + } finally { + // CountDownLatch 计数器减 1 + countDownLatch.countDown(); + } + } + + /** + * 计算台站信息 + */ + public void calCulStationInfo(){ + //判断当前台站及数据相关信息是否为空 + if(Objects.isNull(stationinfoAndDataRate)) { + return; + } + //获取台站信息 + StationInfo originalstationsinfo = stationinfoAndDataRate.getMOriginalstationsinfo(); + //获取台站参数 + RateParam mRateparam = stationinfoAndDataRate.getMRateparam(); + //如果台站信息及台站参数不为空 + if (Objects.nonNull(originalstationsinfo) && Objects.nonNull(mRateparam)) { + //声明存储计算结果的实体类 + CalculateDataRate calculateDataRate = new CalculateDataRate(); + calculateDataRate.setParameter(mRateparam); + //根据台站编码 查询 台站信息 + StationInfo stationInfo = calCulStationDataService.getStationInfo(originalstationsinfo.getStationCode()); + //赋值台站信息 + calculateDataRate.setMStationId(stationInfo.getId()); + calculateDataRate.setMStationCode(stationInfo.getStationCode()); + calculateDataRate.setMStationType(stationInfo.getType()); + //计算台站数据 + Rate calculate = this.calculate(calculateDataRate); + stationInfo.setPhdf(String.valueOf(calculate.getPhdfOffered()/calculate.getPhdfEfficient())); + stationInfo.setPhd(String.valueOf(calculate.getPhdOffered()/calculate.getPhdEfficient())); + stationInfo.setMet(String.valueOf(calculate.getMet())); + stationInfo.setSoh(String.valueOf(calculate.getSoh())); + stationInfo.setPhdMetSoh(String.valueOf(calculate.getPhdMetSoh())); + //赋值最后的结果 + finallySta.add(stationInfo); + } + } + + /** + * 根据台站编码及台站类型选择不同的方法 + * @param calculateDataRate + */ + public Rate calculate(CalculateDataRate calculateDataRate){ + Rate mRate = new Rate(); + if (StringUtils.isBlank(calculateDataRate.getMStationId())) { + log.error("台站id不能为空"); + } + //获取台站编码 + String stationCode = calculateDataRate.getMStationCode(); + //获取台站类型 + String stationType = calculateDataRate.getMStationType(); + //判断台站编码及台站类型 + if((StringUtils.isNotBlank(stationCode) && stationCode.substring(2,3).equals("X")) && (StringUtils.isNotBlank(stationType) && stationType.equals("SAUNA")) ) { + //切割台站编码 如果 第三个字符是 X 并且 台站类型是 SAUNA + mRate = saunacalc(calculateDataRate); + } else if((StringUtils.isNotBlank(stationCode) && stationCode.substring(2,3).equals("X")) && (StringUtils.isNotBlank(stationType) && stationType.equals("SPALAX")) ) { + //切割台站编码 如果 第三个字符是 X 并且 台站类型是 SPALAX + mRate = spalaxcalc(calculateDataRate); + } else if(StringUtils.isNotBlank(stationCode) && stationCode.substring(2,3).equals("P")) { + //切割台站编码 如果 第三个字符是 P + mRate = particulatecalc(calculateDataRate); + } + return mRate; + } + + public Rate saunacalc(CalculateDataRate calculateDataRate){ + Rate mRate = new Rate(); + //获取特殊台站相关集合 + Map mSpecialparam = calculateDataRate.getMSpecialparam(); + //根据台站名称获取对应的 参数信息 + Specialpara param = mSpecialparam.get(calculateDataRate.getMStationCode()); + //获取日期间隔 + double dayspan = calculateDataRate.getMParameter().getDayspan(); + //获取当前日期 + LocalDateTime currentTime = LocalDateTime.now(); + //当前日期转换成字符串格式 + String curDateTime = currentTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //当前日期减去对应的时间间隔 获取开始时间 并转换成字符串格式 + String pretime = currentTime.minusDays(Long.valueOf((long) dayspan)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //获取台站id + String stationId = calculateDataRate.getMStationId(); + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhdf().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateSauna(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdfSauna().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateSauna(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdfProvisionRate)){ + Double phdf_offered = phdfProvisionRate.getDataRate(); + mRate.setPhdfOffered(phdf_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhdf().getLiveLow(); + String liveHigh = param.getPhdf().getLiveHigh(); + String quantity = param.getPhdf().getQuantity(); + String mdc = param.getPhdf().getMdc(); + String collectLow = param.getPhdf().getCollectLow(); + String collectHigh = param.getPhdf().getCollectHigh(); + String xeVolume = param.getPhdf().getXeVolume(); + String nuclideName = param.getPhdf().getNuclideName(); + String liveQc = param.getPhdf().getLiveQc(); + String number = param.getPhdf().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdfSauna().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdfSauna().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdfSauna().getQuantity(); + String mdc = calculateDataRate.getMParameter().getPhdfSauna().getMdc(); + String collectLow = calculateDataRate.getMParameter().getPhdfSauna().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdfSauna().getCollectHigh(); + String xeVolume = calculateDataRate.getMParameter().getPhdfSauna().getXeVolume(); + String nuclideName = calculateDataRate.getMParameter().getPhdfSauna().getNuclideName(); + String liveQc = calculateDataRate.getMParameter().getPhdfSauna().getLiveQc(); + String number = calculateDataRate.getMParameter().getPhdfSauna().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime,pretime, number,stationId); + } + if (Objects.nonNull(phdfProvisionEfficiency)){ + Double phdf_efficient = phdfProvisionEfficiency.getDataEfficiency(); + mRate.setPhdfEfficient(phdf_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhd().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateSauna(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdSauna().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateSauna(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdProvisionRate)){ + Double phd_offered = phdProvisionRate.getDataRate(); + mRate.setPhdOffered(phd_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhd().getLiveLow(); + String liveHigh = param.getPhd().getLiveHigh(); + String quantity = param.getPhd().getQuantity(); + String mdc = param.getPhd().getMdc(); + String collectLow = param.getPhd().getCollectLow(); + String collectHigh = param.getPhd().getCollectHigh(); + String xeVolume = param.getPhd().getXeVolume(); + String nuclideName = param.getPhd().getNuclideName(); + String liveQc = param.getPhd().getLiveQc(); + String number = param.getPhd().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdSauna().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdSauna().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdSauna().getQuantity(); + String mdc = calculateDataRate.getMParameter().getPhdSauna().getMdc(); + String collectLow = calculateDataRate.getMParameter().getPhdSauna().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdSauna().getCollectHigh(); + String xeVolume = calculateDataRate.getMParameter().getPhdSauna().getXeVolume(); + String nuclideName = calculateDataRate.getMParameter().getPhdSauna().getNuclideName(); + String liveQc = calculateDataRate.getMParameter().getPhdSauna().getLiveQc(); + String number = calculateDataRate.getMParameter().getPhdSauna().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime,pretime, number,stationId); + } + if (Objects.nonNull(phdProvisionEfficiency)){ + Double phd_efficient = phdProvisionEfficiency.getDataEfficiency(); + mRate.setPhdEfficient(phd_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算MET的数据提供率 + ProvisionData metProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String met = param.getMet(); + metProvision = calCulStationDataService.findMetProvisionSauna(curDateTime, pretime, met, stationId); + }else { + String met = calculateDataRate.getMParameter().getMet(); + metProvision = calCulStationDataService.findMetProvisionSauna(curDateTime, pretime, met, stationId); + } + if (Objects.nonNull(metProvision)){ + Double met = metProvision.getDataRate(); + mRate.setMet(met); + } + + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String soh = param.getSoh(); + sohProvision = calCulStationDataService.findSohProvisionSauna(curDateTime, pretime, soh, stationId); + }else { + String soh = calculateDataRate.getMParameter().getSoh(); + sohProvision = calCulStationDataService.findSohProvisionSauna(curDateTime, pretime, soh, stationId); + } + if (Objects.nonNull(sohProvision)){ + Double soh = sohProvision.getDataRate(); + mRate.setSoh(soh); + } + + //计算SPHD+MET+SOH数据提供率 SPHD部分 + ProvisionData sphdProvision = calCulStationDataService.findSphdProvisionSauna(curDateTime, pretime, stationId); + String SPHD_NUM = "0"; + if (Objects.nonNull(sphdProvision)) { + SPHD_NUM = sphdProvision.getDataNumber().toString(); + } + //获取SPHD+MET+SOH数据提供率 MET部分 + ProvisionData sphdMetProvision = calCulStationDataService.findSphdMetProvisionSauna(curDateTime, pretime, stationId); + String MET_NUM = "0"; + if (Objects.nonNull(sphdMetProvision)) { + MET_NUM = sphdMetProvision.getDataNumber().toString(); + } + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sphdMetSohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String sphdMetSoh = param.getSphdMetSoh(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionSauna(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + }else { + String sphdMetSoh = calculateDataRate.getMParameter().getSphdMetSoh().getSaunaEverydaynums(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionSauna(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + } + if (Objects.nonNull(sphdMetSohProvision)){ + Double phd_met_soh = sphdMetSohProvision.getDataRate(); + mRate.setPhdMetSoh(phd_met_soh); + } + return mRate; + } + + public Rate spalaxcalc(CalculateDataRate calculateDataRate){ + Rate mRate = new Rate(); + //获取特殊台站相关集合 + Map mSpecialparam = calculateDataRate.getMSpecialparam(); + //根据台站名称获取对应的 参数信息 + Specialpara param = mSpecialparam.get(calculateDataRate.getMStationCode()); + //获取日期间隔 + double dayspan = calculateDataRate.getMParameter().getDayspan(); + //获取当前日期 + LocalDateTime currentTime = LocalDateTime.now(); + //当前日期转换成字符串格式 + String curDateTime = currentTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //当前日期减去对应的时间间隔 获取开始时间 并转换成字符串格式 + String pretime = currentTime.minusDays(Long.valueOf((long) dayspan)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //获取台站id + String stationId = calculateDataRate.getMStationId(); + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhdf().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateSpalax(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdfSpalax().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateSpalax(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdfProvisionRate)) { + Double phdf_offered = phdfProvisionRate.getDataRate(); + mRate.setPhdfOffered(phdf_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhdf().getLiveLow(); + String liveHigh = param.getPhdf().getLiveHigh(); + String quantity = param.getPhdf().getQuantity(); + String collectLow = param.getPhdf().getCollectLow(); + String collectHigh = param.getPhdf().getCollectHigh(); + String liveQc = param.getPhdf().getLiveQc(); + String number = param.getPhdf().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdfSpalax().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdfSpalax().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdfSpalax().getQuantity(); + String collectLow = calculateDataRate.getMParameter().getPhdfSpalax().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdfSpalax().getCollectHigh(); + String liveQc = calculateDataRate.getMParameter().getPhdfSpalax().getLiveQc(); + String number = calculateDataRate.getMParameter().getPhdfSpalax().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime,pretime, number,stationId); + } + if (Objects.nonNull(phdfProvisionEfficiency)) { + Double phdf_efficient = phdfProvisionEfficiency.getDataEfficiency(); + mRate.setPhdfEfficient(phdf_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhd().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateSpalax(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdSpalax().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateSpalax(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdProvisionRate)) { + Double phd_offered = phdProvisionRate.getDataRate(); + mRate.setPhdOffered(phd_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhd().getLiveLow(); + String liveHigh = param.getPhd().getLiveHigh(); + String quantity = param.getPhd().getQuantity(); + String collectLow = param.getPhd().getCollectLow(); + String collectHigh = param.getPhd().getCollectHigh(); + String liveQc = param.getPhd().getLiveQc(); + String number = param.getPhd().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdSpalax().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdSpalax().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdSpalax().getQuantity(); + String collectLow = calculateDataRate.getMParameter().getPhdSpalax().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdSpalax().getCollectHigh(); + String liveQc = calculateDataRate.getMParameter().getPhdSpalax().getLiveQc(); + String number = calculateDataRate.getMParameter().getPhdSpalax().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime,pretime, number,stationId); + } + if (Objects.nonNull(phdProvisionEfficiency)) { + Double phd_efficient = phdProvisionEfficiency.getDataEfficiency(); + mRate.setPhdEfficient(phd_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算MET的数据提供率 + ProvisionData metProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String met = param.getMet(); + metProvision = calCulStationDataService.findMetProvisionSpalax(curDateTime, pretime, met, stationId); + }else { + String met = calculateDataRate.getMParameter().getMet(); + metProvision = calCulStationDataService.findMetProvisionSpalax(curDateTime, pretime, met, stationId); + } + if (Objects.nonNull(metProvision)) { + Double met = metProvision.getDataRate(); + mRate.setMet(met); + } + + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String soh = param.getSoh(); + sohProvision = calCulStationDataService.findSohProvisionSpalax(curDateTime, pretime, soh, stationId); + }else { + String soh = calculateDataRate.getMParameter().getSoh(); + sohProvision = calCulStationDataService.findSohProvisionSpalax(curDateTime, pretime, soh, stationId); + } + if (Objects.nonNull(sohProvision)) { + Double soh = sohProvision.getDataRate(); + mRate.setSoh(soh); + } + + //计算SPHD+MET+SOH数据提供率 SPHD部分 + ProvisionData sphdProvision = calCulStationDataService.findSphdProvisionSpalax(curDateTime, pretime, stationId); + String SPHD_NUM = "0"; + if (Objects.nonNull(sphdProvision)) { + SPHD_NUM = sphdProvision.getDataNumber().toString(); + } + + //获取SPHD+MET+SOH数据提供率 MET部分 + ProvisionData sphdMetProvision = calCulStationDataService.findSphdMetProvisionSpalax(curDateTime, pretime, stationId); + String MET_NUM = "0"; + if (Objects.nonNull(sphdMetProvision)){ + MET_NUM = sphdMetProvision.getDataNumber().toString(); + } + + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sphdMetSohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String sphdMetSoh = param.getSphdMetSoh(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionSpalax(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + }else { + String sphdMetSoh = calculateDataRate.getMParameter().getSphdMetSoh().getSpalaxEverydaynums(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionSpalax(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + } + if (Objects.nonNull(sphdMetSohProvision)){ + Double phd_met_soh = sphdMetSohProvision.getDataRate(); + mRate.setPhdMetSoh(phd_met_soh); + } + return mRate; + } + + public Rate particulatecalc(CalculateDataRate calculateDataRate){ + Rate mRate = new Rate(); + //获取特殊台站相关集合 + Map mSpecialparam = calculateDataRate.getMSpecialparam(); + //根据台站名称获取对应的 参数信息 + Specialpara param = mSpecialparam.get(calculateDataRate.getMStationCode()); + //获取日期间隔 + double dayspan = calculateDataRate.getMParameter().getDayspan(); + //获取当前日期 + LocalDateTime currentTime = LocalDateTime.now(); + //当前日期转换成字符串格式 + String curDateTime = currentTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //当前日期减去对应的时间间隔 获取开始时间 并转换成字符串格式 + String pretime = currentTime.minusDays(Long.valueOf((long) dayspan)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + //获取台站id + String stationId = calculateDataRate.getMStationId(); + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhdf().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateParticulate(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdfParticulate().getNumber(); + phdfProvisionRate = calCulStationDataService.findPhdfProvisionRateParticulate(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdfProvisionRate)) { + Double phdf_offered = phdfProvisionRate.getDataRate(); + mRate.setPhdfOffered(phdf_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHDF的数据提供率 + ProvisionData phdfProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhdf().getLiveLow(); + String liveHigh = param.getPhdf().getLiveHigh(); + String quantity = param.getPhdf().getQuantity(); + String collectLow = param.getPhdf().getCollectLow(); + String collectHigh = param.getPhdf().getCollectHigh(); + String number = param.getPhdf().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdfParticulate().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdfParticulate().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdfParticulate().getQuantity(); + String collectLow = calculateDataRate.getMParameter().getPhdfParticulate().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdfParticulate().getCollectHigh(); + String number = calculateDataRate.getMParameter().getPhdfParticulate().getNumber(); + phdfProvisionEfficiency = calCulStationDataService.findPhdfProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime,pretime, number,stationId); + } + if (Objects.nonNull(phdfProvisionEfficiency)) { + Double phdf_efficient = phdfProvisionEfficiency.getDataEfficiency(); + mRate.setPhdfEfficient(phdf_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionRate = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String number = param.getPhd().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateParticulate(curDateTime, pretime, number, stationId); + }else { + String number = calculateDataRate.getMParameter().getPhdParticulate().getNumber(); + phdProvisionRate = calCulStationDataService.findPhdProvisionRateParticulate(curDateTime, pretime, number, stationId); + } + if (Objects.nonNull(phdProvisionRate)){ + Double phd_offered = phdProvisionRate.getDataRate(); + mRate.setPhdOffered(phd_offered); + } + + //判断当前台站编码是否属于特殊计算的台站 计算PHD的数据提供率 + ProvisionData phdProvisionEfficiency = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String liveLow = param.getPhd().getLiveLow(); + String liveHigh = param.getPhd().getLiveHigh(); + String quantity = param.getPhd().getQuantity(); + String collectLow = param.getPhd().getCollectLow(); + String collectHigh = param.getPhd().getCollectHigh(); + String number = param.getPhd().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime, pretime, number, stationId); + }else { + String liveLow = calculateDataRate.getMParameter().getPhdParticulate().getLiveLow(); + String liveHigh = calculateDataRate.getMParameter().getPhdParticulate().getLiveHigh(); + String quantity = calculateDataRate.getMParameter().getPhdParticulate().getQuantity(); + String collectLow = calculateDataRate.getMParameter().getPhdParticulate().getCollectLow(); + String collectHigh = calculateDataRate.getMParameter().getPhdParticulate().getCollectHigh(); + String number = calculateDataRate.getMParameter().getPhdParticulate().getNumber(); + phdProvisionEfficiency = calCulStationDataService.findPhdProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime, pretime, number,stationId); + } + if (Objects.nonNull(phdProvisionEfficiency)) { + Double phd_efficient = phdProvisionEfficiency.getDataEfficiency(); + mRate.setPhdEfficient(phd_efficient); + } + + //判断当前台站编码是否属于特殊计算的台站 计算MET的数据提供率 + ProvisionData metProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String met = param.getMet(); + metProvision = calCulStationDataService.findMetProvisionParticulate(curDateTime, pretime, met, stationId); + }else { + String met = calculateDataRate.getMParameter().getMet(); + metProvision = calCulStationDataService.findMetProvisionParticulate(curDateTime, pretime, met, stationId); + } + if (Objects.nonNull(metProvision)) { + Double met = metProvision.getDataRate(); + mRate.setMet(met); + } + + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String soh = param.getSoh(); + sohProvision = calCulStationDataService.findSohProvisionParticulate(curDateTime, pretime, soh, stationId); + }else { + String soh = calculateDataRate.getMParameter().getSoh(); + sohProvision = calCulStationDataService.findSohProvisionParticulate(curDateTime, pretime, soh, stationId); + } + if (Objects.nonNull(sohProvision)) { + Double soh = sohProvision.getDataRate(); + mRate.setSoh(soh); + } + + //计算SPHD+MET+SOH数据提供率 SPHD部分 + ProvisionData sphdProvision = calCulStationDataService.findSphdProvisionParticulate(curDateTime, pretime, stationId); + String SPHD_NUM = "0"; + if (Objects.nonNull(sphdProvision)) { + SPHD_NUM = sphdProvision.getDataNumber().toString(); + } + + //获取SPHD+MET+SOH数据提供率 MET部分 + ProvisionData sphdMetProvision = calCulStationDataService.findSphdMetProvisionParticulate(curDateTime, pretime, stationId); + String MET_NUM = "0"; + if (Objects.nonNull(sphdMetProvision)) { + MET_NUM = sphdMetProvision.getDataNumber().toString(); + } + //判断当前台站编码是否属于特殊计算的台站 计算SOH的数据提供率 + ProvisionData sphdMetSohProvision = new ProvisionData(); + if (mSpecialparam.containsKey(calculateDataRate.getMStationCode())) { + String sphdMetSoh = param.getSphdMetSoh(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionParticulate(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + }else { + String sphdMetSoh = calculateDataRate.getMParameter().getSphdMetSoh().getParticulateEverydaynums(); + sphdMetSohProvision = calCulStationDataService.findSphdMetSohProvisionParticulate(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + } + if (Objects.nonNull(sphdMetSohProvision)) { + Double phd_met_soh = sphdMetSohProvision.getDataRate(); + mRate.setPhdMetSoh(phd_met_soh); + } + return mRate; + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java new file mode 100644 index 00000000..f1f42fac --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/common/CalculateStationData.java @@ -0,0 +1,936 @@ +package org.jeecg.common; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.modules.entity.data.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.w3c.dom.*; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +@Slf4j +@Component +public class CalculateStationData { + + @Value("${parameter.filePath}") + private String parameterFilePath; + + /** + * 初始化配置信息 + */ + public RateParam initParameter() { + try { + //文件路径 + String filePath = parameterFilePath+ File.separator +"parameter.xml"; + //声明一个实体类存储参数信息 + RateParam mRateParam = new RateParam(); + //创建一个文档解析器工厂 + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + //创建文档解析器 + DocumentBuilder documentBuilder = factory.newDocumentBuilder(); + //读取xml文件生成一个文档 + Document document = documentBuilder.parse(filePath); + //声明一个接收参数的实体类 + Parameter mParameter = new Parameter(); + //声明一个map 存储特殊的台站及台站相关参数 + Map specialparaMap = new HashMap<>(); + //获取文档的根元素 + Element element = document.getDocumentElement(); + //获取根元素的子节点 + NodeList docChildNodes = element.getChildNodes(); + if (Objects.nonNull(docChildNodes) && docChildNodes.getLength()>0){ + //遍历子节点信息 + for(int i = 0; i < docChildNodes.getLength(); i++) { + //根据下标获取对应的节点信息 + Node n = docChildNodes.item(i); + //判断节点名称是否是 DAYSPAN + if(n.getNodeName().equals("DAYSPAN")) { + // 获取节点的第一个子节点 + Node childNode = n.getFirstChild(); + //如果节点信息不为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + // 获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + // 如果属性信息不为空 + if (Objects.nonNull(attributes)){ + // 遍历获取属性值 + for (int j=0; j< attributes.getLength(); j++){ + // 获取属性 + Node item = attributes.item(j); + // 如果属性名是 dayspan + if(item.getNodeName().equals("dayspan")) { + //赋值dayspan + mParameter.setDayspan(Double.parseDouble(item.getNodeValue())); + } + } + } + } + // 获取下一个节点 + childNode = childNode.getNextSibling(); + } + } else if(n.getNodeName().equals("WARNING")) {// 判断节点名称是否是 WARNING + // 获取节点第一个子节点 + Node childNode = n.getFirstChild(); + // 子节点不为空 + while(Objects.nonNull(childNode)) { + // 判断子节点的名称是否是 item + if(childNode.getNodeName().equals("item")) { + // 获取子节点的 属性 + NamedNodeMap attributes = childNode.getAttributes(); + // 子节点属性不为空 + if (Objects.nonNull(attributes)){ + // 遍历获取属性值 + for (int j =0; j0){ + //遍历子节点数据 + for(int j = 0; j < phdfChildNodes.getLength(); j++) { + // 获取子节点数据 + Node node = phdfChildNodes.item(j); + // 判断子节点名称是否是 SAUNA + if(node.getNodeName().equals("SAUNA")) { + // 获取子节点下的第一个节点信息 + Node childNode = node.getFirstChild(); + // 声明一个实体类存储参数信息 + StationTypeData typeData = new StationTypeData(); + // 判断子节点是否为空 + while(Objects.nonNull(childNode)) { + // 判断子节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取子节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + // 判断属性是否为空 + if (Objects.nonNull(attributes)){ + // 遍历获取属性值 + for (int k=0; k0){ + //遍历子节点数据 + for(int j = 0; j < phdChildNodes.getLength(); j++) { + // 获取子节点信息 + Node node = phdChildNodes.item(j); + //判断子节点名称是否是 SAUNA + if(node.getNodeName().equals("SAUNA")) { + //获取子节点下的第一个节点 + Node childNode = node.getFirstChild(); + //声明一个台站参数实体类 + StationTypeData typeData = new StationTypeData(); + //如果子节点不为空 + while(Objects.nonNull(childNode)) { + //判断节点的名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //节点属性信息不为空 + if (Objects.nonNull(attributes)){ + //遍历属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取属性 + Node item = attributes.item(k); + if(item.getNodeName().equals("collect_low")) { + // 判断属性名称是 collect_low + typeData.setCollectLow(item.getNodeValue()); + } else if(item.getNodeName().equals("collect_high")) { + // 判断属性名称是 collect_high + typeData.setCollectHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("live_low")) { + // 判断属性名称是 live_low + typeData.setLiveLow(item.getNodeValue()); + } else if(item.getNodeName().equals("live_high")) { + // 判断属性名称是 live_high + typeData.setLiveHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("quantity")) { + // 判断属性名称是 quantity + typeData.setQuantity(item.getNodeValue()); + } else if(item.getNodeName().equals("xe_volume")) { + // 判断属性名称是 xe_volume + typeData.setXeVolume(item.getNodeValue()); + } else if(item.getNodeName().equals("mdc")) { + // 判断属性名称是 mdc + typeData.setMdc(item.getNodeValue()); + } else if(item.getNodeName().equals("nuclide_name")) { + // 判断属性名称是 nuclide_name + typeData.setNuclideName(item.getNodeValue()); + } else if(item.getNodeName().equals("live_qc")) { + // 判断属性名称是 live_qc + typeData.setLiveQc(item.getNodeValue()); + } else if(item.getNodeName().equals("number")) { + // 判断属性名称是 number + typeData.setNumber(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + //台站参数赋值 phd-sauna + mParameter.setPhdSauna(typeData); + } else if(node.getNodeName().equals("SPALAX")) {//判断节点名称是否是 spalax + //获取节点下的第一个子节点 + Node childNode = node.getFirstChild(); + //声明一个 台站参数实体类 + StationTypeData typeData = new StationTypeData(); + //判断子节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取属性信息 + Node item = attributes.item(k); + if(item.getNodeName().equals("collect_low")) { + //属性名称为 collect_low + typeData.setCollectLow(item.getNodeValue()); + } else if(item.getNodeName().equals("collect_high")) { + //属性名称为 collect_high + typeData.setCollectHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("live_low")) { + //属性名称为 live_low + typeData.setLiveLow(item.getNodeValue()); + } else if(item.getNodeName().equals("live_high")) { + //属性名称为 live_high + typeData.setLiveHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("quantity")) { + //属性名称为 quantity + typeData.setQuantity(item.getNodeValue()); + } else if(item.getNodeName().equals("live_qc")) { + //属性名称为 live_qc + typeData.setLiveQc(item.getNodeValue()); + } else if(item.getNodeName().equals("number")) { + //属性名称为 number + typeData.setNumber(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + //台站参数赋值 phd-spalax + mParameter.setPhdSpalax(typeData); + } else if(node.getNodeName().equals("PARTICULATE")) {// 判断节点名称是否是 PARTICULATE + //获取节点下的第一个节点 + Node childNode = node.getFirstChild(); + //声明台站参数实体类 + StationTypeData typeData = new StationTypeData(); + //判断子节点是否为空 + while(Objects.nonNull(childNode)) { + //判断子节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取子节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历属性信息 + for (int k=0; k < attributes.getLength(); k++){ + //获取节点的属性 + Node item = attributes.item(k); + if(item.getNodeName().equals("collect_low")) { + //属性名称是 collect_low + typeData.setCollectLow(item.getNodeValue()); + } else if(item.getNodeName().equals("collect_high")) { + //属性名称是 collect_high + typeData.setCollectHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("live_low")) { + //属性名称是 live_low + typeData.setLiveLow(item.getNodeValue()); + } else if(item.getNodeName().equals("live_high")) { + //属性名称是 live_high + typeData.setLiveHigh(item.getNodeValue()); + } else if(item.getNodeName().equals("quantity")) { + //属性名称是 quantity + typeData.setQuantity(item.getNodeValue()); + } else if(item.getNodeName().equals("number")) { + //属性名称是 number + typeData.setNumber(item.getNodeValue()); + } + } + } + } + // 获取下一个节点 + childNode = childNode.getNextSibling(); + } + //台站参数赋值 phd-particulate + mParameter.setPhdParticulate(typeData); + } + } + } + } else if(n.getNodeName().equals("MET")) {// 判断节点名称是否是 met + //获取第一个子节点 + Node childNode = n.getFirstChild(); + //判断节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断节点属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历节点属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取节点属性 + Node item = attributes.item(k); + //判断属性名称是否是 number + if(item.getNodeName().equals("number")) { + mParameter.setMet(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + } else if (n.getNodeName().equals("SOH")) {// 判断节点名称是否是 SOH + //获取第一个子节点 + Node childNode = n.getFirstChild(); + //判断节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断节点属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历节点属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取节点属性 + Node item = attributes.item(k); + //判断属性名称是否是 number + if(item.getNodeName().equals("number")) { + mParameter.setSoh(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + } else if(n.getNodeName().equals("SPHD_MET_SOH")) {// 判断节点名称 是否是 SPHD_MET_SOH + //获取节点的子节点集合 + NodeList sphdmetsohChildNodes = n.getChildNodes(); + //声明一个实体类封装属性信息 + SphdMetSoh sphdMetSoh = new SphdMetSoh(); + // 遍历子节点集合 + for(int j = 0; j < sphdmetsohChildNodes.getLength(); j++) { + //获取子节点数据 + Node node = sphdmetsohChildNodes.item(j); + //判断子节点名称是否是 SAUNA + if(node.getNodeName().equals("SAUNA")) { + //获取第一个节点 + Node childNode = node.getFirstChild(); + //判断节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断节点属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历节点属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取节点属性 + Node item = attributes.item(k); + //判断属性名称是否是 number + if(item.getNodeName().equals("number")) { + sphdMetSoh.setSaunaEverydaynums(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + } else if(node.getNodeName().equals("SPALAX")) { // 判断节点名称是否是 SPALAX + //获取第一个节点 + Node childNode = node.getFirstChild(); + //判断节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点的属性信息 + NamedNodeMap attributes = childNode.getAttributes(); + //判断节点属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历节点属性信息 + for (int k=0; k< attributes.getLength(); k++){ + //获取节点属性 + Node item = attributes.item(k); + //判断属性名称是否是 number + if(item.getNodeName().equals("number")) { + sphdMetSoh.setSpalaxEverydaynums(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + } else if(node.getNodeName().equals("PARTICULATE")) {// 判断节点名称是否是 PARTICULATE + //获取第一个子节点 + Node childNode = node.getFirstChild(); + //判断节点是否为空 + while(Objects.nonNull(childNode)) { + //判断节点名称是否是 item + if(childNode.getNodeName().equals("item")) { + //获取节点属性 + NamedNodeMap attributes = childNode.getAttributes(); + //判断节点属性是否为空 + if (Objects.nonNull(attributes)){ + //遍历节点属性 + for (int k=0; k< attributes.getLength(); k++){ + //获取属性 + Node item = attributes.item(k); + //判断属性名称是否是 number + if(item.getNodeName().equals("number")) { + sphdMetSoh.setParticulateEverydaynums(item.getNodeValue()); + } + } + } + } + //获取下一个节点 + childNode = childNode.getNextSibling(); + } + } + //将 sphdMetSoh 属性信息赋值给 参数实体 + mParameter.setSphdMetSoh(sphdMetSoh); + } + } else if (n.getNodeName().equals("SPECIAL")) {// 判断节点名称是否是 SPECIAL + //获取节点的子节点集合 + NodeList specialChildNodes = n.getChildNodes(); + //遍历子节点 + for(int j=0; j mutiThreadGetStationInfo(List stationInfos, RateParam mRateParam){ + // 声明当前开始执行时间 + Date startTime = new Date(); + //声明一个数组用于接收最后的结果情况 + List finallySta = new ArrayList<>(); + //声明一个线程池 + ThreadPoolExecutor poolExecutor = null; + //声明一个CountDownLatch监听是否完成全部线程 + CountDownLatch countDownLatch = null; + //初始化线程数量=0 + int threadNum = 0; + //获取当前设备的理想线程数 + int idealnum = Runtime.getRuntime().availableProcessors(); + //获取需要处理的台站信息数量 + int works = stationInfos.size(); + // 如果需要工作处理的数量 小于 理想线程数 + if(works < idealnum) { + //将需要处理的工作数量赋值给线程数,按照需要处理的工作数量处理数据 + threadNum = works; + } else { + //否则按照理想线程数 处理数据 + threadNum = idealnum; + } + // 如果线程数不等于0 + if (threadNum != 0){ + //初始化线程池 + poolExecutor = new ThreadPoolExecutor(threadNum, threadNum, 5, TimeUnit.MINUTES, new LinkedBlockingQueue<>()); + }else { + return stationInfos; + } + + // 线程数 等于 需要处理的台站数量 + if( threadNum == works ){ + countDownLatch = new CountDownLatch(threadNum); + //遍历台站信息 + for (int i=0 ; i infos = new ArrayList<>(); + int startIndex = i * threadNum; + int endIndex = ((i + 1) * threadNum) - 1; + //判断当前结束下标是否超出台站数量 没有超出说明还在范围内 正常截取数组 + if (endIndex <= stationInfos.size()){ + infos = stationInfos.subList(startIndex, endIndex); + }else {//如果超出台站数量 则从截取开始下标 截取到台站数组的最后一个下标 + infos = stationInfos.subList(startIndex, stationInfos.size()-1); + } + countDownLatch = new CountDownLatch(infos.size()); + //遍历当前组的台站并进行计算 + for (int j=0; j mSpecialparam; + + private String mCurtime; + + private String mPretime; + + private String mStationId; + + private String mStationCode; + + private String mStationType; + + double mDayspan; // 天数(用来统计数据接受率和有效率) + + private Rate mRate; + + private StationInfo mStationinfo; + + public void setParameter(RateParam mRateparam){ + this.mParameter = mRateparam.getParameter(); + this.mSpecialparam = mRateparam.getSpecialparam(); + this.mDayspan = mRateparam.getParameter().getDayspan(); + this.mExcellent = mRateparam.getParameter().getExcellent(); + this.mGood = mRateparam.getParameter().getGood(); + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/GetStationinfoAndDataRate.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/GetStationinfoAndDataRate.java new file mode 100644 index 00000000..c9978fe0 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/GetStationinfoAndDataRate.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class GetStationinfoAndDataRate implements Serializable { + + CalculateDataRate mcalcu; + + StationInfo mOriginalstationsinfo; + + StationInfo mFinallystationsinfo; + + private Rate mRate; + + private RateParam mRateparam; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Parameter.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Parameter.java new file mode 100644 index 00000000..949588ad --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Parameter.java @@ -0,0 +1,40 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class Parameter implements Serializable { + + private double dayspan; + + private double excellent; + + private double good; + + private StationTypeData phdfSauna; + + private StationTypeData phdfSpalax; + + private StationTypeData phdfParticulate; + + private StationTypeData phdSauna; + + private StationTypeData phdSpalax; + + private StationTypeData phdParticulate; + + private String met; + + private String soh; + + private SphdMetSoh sphdMetSoh; + + public Parameter(){ + dayspan = 0; + excellent = 0; + good = 0; + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/ProvisionData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/ProvisionData.java new file mode 100644 index 00000000..e5116f72 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/ProvisionData.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ProvisionData implements Serializable { + + private Integer dataNumber; + + private double dataRate; + + private double dataEfficiency; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Rate.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Rate.java new file mode 100644 index 00000000..9dd4e264 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Rate.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class Rate implements Serializable { + + private double phdfOffered; + + private double phdfEfficient; + + private double phdOffered; + + private double phdEfficient; + + private double met; + + private double soh; + + private double phdMetSoh; + + + public Rate() { + phdfOffered = 0; + phdfEfficient = 0; + phdOffered = 0; + phdEfficient = 0; + met = 0; + soh = 0; + phdMetSoh = 0; + } + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/RateParam.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/RateParam.java new file mode 100644 index 00000000..bd8c57af --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/RateParam.java @@ -0,0 +1,15 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +@Data +public class RateParam implements Serializable { + + private Parameter parameter; + + private Map specialparam; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Specialpara.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Specialpara.java new file mode 100644 index 00000000..092b4517 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/Specialpara.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class Specialpara implements Serializable { + + private StationTypeData phdf; + + private StationTypeData phd; + + private String met; + + private String soh; + + private String sphdMetSoh; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SphdMetSoh.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SphdMetSoh.java new file mode 100644 index 00000000..b08c2fb6 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/SphdMetSoh.java @@ -0,0 +1,16 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class SphdMetSoh implements Serializable { + + private String saunaEverydaynums; + + private String spalaxEverydaynums; + + private String particulateEverydaynums; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationInfo.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationInfo.java new file mode 100644 index 00000000..751ba852 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationInfo.java @@ -0,0 +1,38 @@ +package org.jeecg.modules.entity.data; + +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; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationTypeData.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationTypeData.java new file mode 100644 index 00000000..82e0667e --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/entity/data/StationTypeData.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.entity.data; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class StationTypeData implements Serializable { + + private String collectLow; + + private String collectHigh; + + private String liveLow; + + private String liveHigh; + + private String quantity; + + private String xeVolume; + + private String mdc; + + private String nuclideName; + + private String liveQc; + + private String number; + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java new file mode 100644 index 00000000..508da7b0 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/CalCulStationInfoMapper.java @@ -0,0 +1,65 @@ +package org.jeecg.modules.mapper; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.entity.data.ProvisionData; +import org.jeecg.modules.entity.data.StationInfo; + +public interface CalCulStationInfoMapper { + + StationInfo getStationInfo(@Param("stationCode") String stationCode); + + ProvisionData findPhdfProvisionRateSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdfProvisionEfficiencySauna(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity,@Param("mdc") String mdc,@Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh,@Param("xeVolume") String xeVolume,@Param("nuclideName") String nuclideName,@Param("liveQc") String liveQc,@Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findPhdProvisionRateSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdProvisionEfficiencySauna(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity,@Param("mdc") String mdc,@Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh,@Param("xeVolume") String xeVolume,@Param("nuclideName") String nuclideName,@Param("liveQc") String liveQc,@Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findMetProvisionSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("met") String met, @Param("stationId") String stationId); + + ProvisionData findSohProvisionSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("soh") String soh, @Param("stationId") String stationId); + + ProvisionData findSphdProvisionSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetProvisionSauna(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetSohProvisionSauna(@Param("SPHD_NUM") String SPHD_NUM, @Param("MET_NUM") String MET_NUM, @Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("sphdMetSoh") String sphdMetSoh, @Param("stationId") String stationId); + + ProvisionData findPhdfProvisionRateSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdfProvisionEfficiencySpalax(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity, @Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh, @Param("liveQc") String liveQc,@Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findPhdProvisionRateSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdProvisionEfficiencySpalax(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity, @Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh, @Param("liveQc") String liveQc,@Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findMetProvisionSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("met") String met, @Param("stationId") String stationId); + + ProvisionData findSohProvisionSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("soh") String soh, @Param("stationId") String stationId); + + ProvisionData findSphdProvisionSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetProvisionSpalax(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetSohProvisionSpalax(@Param("SPHD_NUM") String SPHD_NUM, @Param("MET_NUM") String MET_NUM, @Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("sphdMetSoh") String sphdMetSoh, @Param("stationId") String stationId); + + ProvisionData findPhdfProvisionRateParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdfProvisionEfficiencyParticulate(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity, @Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh, @Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findPhdProvisionRateParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("number") String number, @Param("stationId") String stationId); + + ProvisionData findPhdProvisionEfficiencyParticulate(@Param("liveLow") String liveLow,@Param("liveHigh") String liveHigh,@Param("quantity") String quantity, @Param("collectLow") String collectLow,@Param("collectHigh") String collectHigh, @Param("curDateTime") String curDateTime,@Param("pretime") String pretime,@Param("number") String number,@Param("stationId") String stationId); + + ProvisionData findMetProvisionParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("met") String met, @Param("stationId") String stationId); + + ProvisionData findSohProvisionParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("soh") String soh, @Param("stationId") String stationId); + + ProvisionData findSphdProvisionParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetProvisionParticulate(@Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("stationId") String stationId); + + ProvisionData findSphdMetSohProvisionParticulate(@Param("SPHD_NUM") String SPHD_NUM, @Param("MET_NUM") String MET_NUM, @Param("curDateTime") String curDateTime, @Param("pretime") String pretime, @Param("sphdMetSoh") String sphdMetSoh, @Param("stationId") String stationId); + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml new file mode 100644 index 00000000..678504e9 --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/mapper/xml/calCulStationInfoMapper.xml @@ -0,0 +1,398 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java new file mode 100644 index 00000000..b00184da --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/ICalCulStationDataService.java @@ -0,0 +1,64 @@ +package org.jeecg.modules.service; + +import org.jeecg.modules.entity.data.ProvisionData; +import org.jeecg.modules.entity.data.StationInfo; + +public interface ICalCulStationDataService { + + StationInfo getStationInfo(String stationCode); + + ProvisionData findPhdfProvisionRateSauna(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdfProvisionEfficiencySauna(String liveLow, String liveHigh, String quantity, String mdc, String collectLow, String collectHigh, String xeVolume, String nuclideName, String liveQc, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionRateSauna(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionEfficiencySauna(String liveLow, String liveHigh, String quantity, String mdc, String collectLow, String collectHigh, String xeVolume, String nuclideName, String liveQc, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findMetProvisionSauna(String curDateTime, String pretime, String met, String stationId); + + ProvisionData findSohProvisionSauna(String curDateTime, String pretime, String soh, String stationId); + + ProvisionData findSphdProvisionSauna(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetProvisionSauna(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetSohProvisionSauna(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh,String stationId); + + ProvisionData findPhdfProvisionRateSpalax(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdfProvisionEfficiencySpalax(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String liveQc, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionRateSpalax(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionEfficiencySpalax(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String liveQc, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findMetProvisionSpalax(String curDateTime, String pretime, String met, String stationId); + + ProvisionData findSohProvisionSpalax(String curDateTime, String pretime, String soh, String stationId); + + ProvisionData findSphdProvisionSpalax(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetProvisionSpalax(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetSohProvisionSpalax(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh,String stationId); + + ProvisionData findPhdfProvisionRateParticulate(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdfProvisionEfficiencyParticulate(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionRateParticulate(String curDateTime, String pretime, String number, String stationId); + + ProvisionData findPhdProvisionEfficiencyParticulate(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String curDateTime, String pretime, String number, String stationId); + + ProvisionData findMetProvisionParticulate(String curDateTime, String pretime, String met, String stationId); + + ProvisionData findSohProvisionParticulate(String curDateTime, String pretime, String soh, String stationId); + + ProvisionData findSphdProvisionParticulate(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetProvisionParticulate(String curDateTime, String pretime, String stationId); + + ProvisionData findSphdMetSohProvisionParticulate(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh,String stationId); + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java index 2d508031..057b09a5 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/IStationOperationService.java @@ -2,10 +2,8 @@ package org.jeecg.modules.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.entity.Point; import org.jeecg.modules.entity.PointVo; import org.jeecg.modules.entity.StationOperation; -import org.jeecg.modules.system.entity.GardsNuclearfacility; import java.util.List; @@ -52,4 +50,10 @@ public interface IStationOperationService extends IService { */ Result getDataReceivingStatus(String userId); + /** + * 获取台站数据的提供率及有效率 + * @return + */ + Result getDataProvisionEfficiency(); + } diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java new file mode 100644 index 00000000..2db7a7da --- /dev/null +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/CalCulStationInfoServiceImpl.java @@ -0,0 +1,444 @@ +package org.jeecg.modules.service.impl; + +import com.baomidou.dynamic.datasource.annotation.DS; +import org.jeecg.modules.entity.data.ProvisionData; +import org.jeecg.modules.entity.data.StationInfo; +import org.jeecg.modules.mapper.CalCulStationInfoMapper; +import org.jeecg.modules.service.ICalCulStationDataService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service("calCulStationDataService") +@DS("ora") +public class CalCulStationInfoServiceImpl implements ICalCulStationDataService { + + @Autowired + private CalCulStationInfoMapper calCulStationInfoMapper; + + @Override + public StationInfo getStationInfo(String stationCode) { + StationInfo stationInfo = calCulStationInfoMapper.getStationInfo(stationCode); + return stationInfo; + } + + /** + * 查询phdf的数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionRateSauna(String curDateTime, String pretime, String number, String stationId) { + ProvisionData provisionRate = calCulStationInfoMapper.findPhdfProvisionRateSauna(curDateTime, pretime, number, stationId); + return provisionRate; + } + + /** + * 查询phdf的数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param mdc + * @param collectLow + * @param collectHigh + * @param xeVolume + * @param nuclideName + * @param liveQc + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionEfficiencySauna(String liveLow, String liveHigh, String quantity, String mdc, String collectLow, String collectHigh, String xeVolume, String nuclideName, String liveQc, String curDateTime, String pretime, String number, String stationId) { + ProvisionData provisionEfficiency = calCulStationInfoMapper.findPhdfProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime, pretime, number, stationId); + return provisionEfficiency; + } + + /** + * 查询PHD数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionRateSauna(String curDateTime, String pretime, String number, String stationId) { + ProvisionData provisionRate = calCulStationInfoMapper.findPhdProvisionRateSauna(curDateTime, pretime, number, stationId); + return provisionRate; + } + + /** + * 查询PHD数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param mdc + * @param collectLow + * @param collectHigh + * @param xeVolume + * @param nuclideName + * @param liveQc + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionEfficiencySauna(String liveLow, String liveHigh, String quantity, String mdc, String collectLow, String collectHigh, String xeVolume, String nuclideName, String liveQc, String curDateTime, String pretime, String number, String stationId) { + ProvisionData provisionEfficiency = calCulStationInfoMapper.findPhdProvisionEfficiencySauna(liveLow, liveHigh, quantity, mdc, collectLow, collectHigh, xeVolume, nuclideName, liveQc, curDateTime, pretime, number, stationId); + return provisionEfficiency; + } + + + /** + * 查询MET数据提供率 + * @param curDateTime + * @param pretime + * @param met + * @param stationId + * @return + */ + @Override + public ProvisionData findMetProvisionSauna(String curDateTime, String pretime, String met, String stationId) { + ProvisionData metProvision = calCulStationInfoMapper.findMetProvisionSauna(curDateTime, pretime, met, stationId); + return metProvision; + } + + /** + * 查询SOH数据提供率 + * @param curDateTime + * @param pretime + * @param soh + * @param stationId + * @return + */ + @Override + public ProvisionData findSohProvisionSauna(String curDateTime, String pretime, String soh, String stationId) { + ProvisionData sohProvision = calCulStationInfoMapper.findSohProvisionSauna(curDateTime, pretime, soh, stationId); + return sohProvision; + } + + /** + * 查询SPHD MET SOh数据提供率 SPHD + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdProvisionSauna(String curDateTime, String pretime, String stationId) { + ProvisionData sphdProvision = calCulStationInfoMapper.findSphdProvisionSauna(curDateTime, pretime, stationId); + return sphdProvision; + } + + /** + * 查询SPHD MET SOh数据提供率 MET + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetProvisionSauna(String curDateTime, String pretime, String stationId) { + ProvisionData sphdMetProvision = calCulStationInfoMapper.findSphdMetProvisionSauna(curDateTime, pretime, stationId); + return sphdMetProvision; + } + + /** + * 查询SPHD MET SOh数据提供率 + * @param SPHD_NUM + * @param MET_NUM + * @param curDateTime + * @param pretime + * @param sphdMetSoh + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetSohProvisionSauna(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh, String stationId) { + ProvisionData sphdMetSohProvision = calCulStationInfoMapper.findSphdMetSohProvisionSauna(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + return sphdMetSohProvision; + } + + /** + * 查询SPALAX PHDF数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionRateSpalax(String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdfProvisionRate = calCulStationInfoMapper.findPhdfProvisionRateSpalax(curDateTime, pretime, number, stationId); + return phdfProvisionRate; + } + + /** + * 查询SPALAX PHDF数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param collectLow + * @param collectHigh + * @param liveQc + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionEfficiencySpalax(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String liveQc, String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdfProvisionEfficiency = calCulStationInfoMapper.findPhdfProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime, pretime, number, stationId); + return phdfProvisionEfficiency; + } + + /** + * 查询SPALAX PHD数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionRateSpalax(String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdProvisionRate = calCulStationInfoMapper.findPhdProvisionRateSpalax(curDateTime, pretime, number, stationId); + return phdProvisionRate; + } + + /** + * 查询SPALAX PHD数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param collectLow + * @param collectHigh + * @param liveQc + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionEfficiencySpalax(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String liveQc, String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdProvisionEfficiency = calCulStationInfoMapper.findPhdProvisionEfficiencySpalax(liveLow, liveHigh, quantity, collectLow, collectHigh, liveQc, curDateTime, pretime, number, stationId); + return phdProvisionEfficiency; + } + + /** + * 查询SPALAX MET数据提供率 + * @param curDateTime + * @param pretime + * @param met + * @param stationId + * @return + */ + @Override + public ProvisionData findMetProvisionSpalax(String curDateTime, String pretime, String met, String stationId) { + ProvisionData metProvision = calCulStationInfoMapper.findMetProvisionSpalax(curDateTime, pretime, met, stationId); + return metProvision; + } + + /** + * 查询SPALAX SOH数据提供率 + * @param curDateTime + * @param pretime + * @param soh + * @param stationId + * @return + */ + @Override + public ProvisionData findSohProvisionSpalax(String curDateTime, String pretime, String soh, String stationId) { + ProvisionData sohProvision = calCulStationInfoMapper.findSohProvisionSpalax(curDateTime, pretime, soh, stationId); + return sohProvision; + } + + /** + * 查询SPALAX SPHD MET SOH数据提供率 SPHD + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdProvisionSpalax(String curDateTime, String pretime, String stationId) { + ProvisionData sphdProvision = calCulStationInfoMapper.findSphdProvisionSpalax(curDateTime, pretime, stationId); + return sphdProvision; + } + + /** + * 查询SPALAX SPHD MET SOH数据提供率 MET + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetProvisionSpalax(String curDateTime, String pretime, String stationId) { + ProvisionData sphdMetProvision = calCulStationInfoMapper.findSphdMetProvisionSpalax(curDateTime, pretime, stationId); + return sphdMetProvision; + } + + /** + * 查询SPALAX SPHD MET SOH数据提供率 + * @param SPHD_NUM + * @param MET_NUM + * @param curDateTime + * @param pretime + * @param sphdMetSoh + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetSohProvisionSpalax(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh, String stationId) { + ProvisionData sphdMetSohProvision = calCulStationInfoMapper.findSphdMetSohProvisionSpalax(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + return sphdMetSohProvision; + } + + /** + * 查询PARTICULATE PHDF数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionRateParticulate(String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdfProvisionRate = calCulStationInfoMapper.findPhdfProvisionRateParticulate(curDateTime, pretime, number, stationId); + return phdfProvisionRate; + } + + /** + * 查询PARTICULATE PHDF数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param collectLow + * @param collectHigh + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdfProvisionEfficiencyParticulate(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdfProvisionEfficiency = calCulStationInfoMapper.findPhdfProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime, pretime, number, stationId); + return phdfProvisionEfficiency; + } + + /** + * 查询PARTICULATE PHD数据提供率 + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionRateParticulate(String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdProvisionRate = calCulStationInfoMapper.findPhdProvisionRateParticulate(curDateTime, pretime, number, stationId); + return phdProvisionRate; + } + + /** + * 查询PARTICULATE PHD数据提供率 + * @param liveLow + * @param liveHigh + * @param quantity + * @param collectLow + * @param collectHigh + * @param curDateTime + * @param pretime + * @param number + * @param stationId + * @return + */ + @Override + public ProvisionData findPhdProvisionEfficiencyParticulate(String liveLow, String liveHigh, String quantity, String collectLow, String collectHigh, String curDateTime, String pretime, String number, String stationId) { + ProvisionData phdProvisionEfficiency = calCulStationInfoMapper.findPhdProvisionEfficiencyParticulate(liveLow, liveHigh, quantity, collectLow, collectHigh, curDateTime, pretime, number, stationId); + return phdProvisionEfficiency; + } + + /** + * 查询PARTICULATE MET数据提供率 + * @param curDateTime + * @param pretime + * @param met + * @param stationId + * @return + */ + @Override + public ProvisionData findMetProvisionParticulate(String curDateTime, String pretime, String met, String stationId) { + ProvisionData metProvision = calCulStationInfoMapper.findMetProvisionParticulate(curDateTime, pretime, met, stationId); + return metProvision; + } + + /** + * 查询PARTICULATE SOH数据提供率 + * @param curDateTime + * @param pretime + * @param soh + * @param stationId + * @return + */ + @Override + public ProvisionData findSohProvisionParticulate(String curDateTime, String pretime, String soh, String stationId) { + ProvisionData sohProvision = calCulStationInfoMapper.findSohProvisionParticulate(curDateTime, pretime, soh, stationId); + return sohProvision; + } + + /** + * 查询PARTICULATE SPHD MET SOH数据提供率 SPHD + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdProvisionParticulate(String curDateTime, String pretime, String stationId) { + ProvisionData sphdProvision = calCulStationInfoMapper.findSphdProvisionParticulate(curDateTime, pretime, stationId); + return sphdProvision; + } + + /** + * 查询PARTICULATE SPHD MET SOH数据提供率 MET + * @param curDateTime + * @param pretime + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetProvisionParticulate(String curDateTime, String pretime, String stationId) { + ProvisionData sphdMetProvision = calCulStationInfoMapper.findSphdMetProvisionParticulate(curDateTime, pretime, stationId); + return sphdMetProvision; + } + + /** + * 查询PARTICULATE SPHD MET SOH数据提供率 + * @param SPHD_NUM + * @param MET_NUM + * @param curDateTime + * @param pretime + * @param sphdMetSoh + * @param stationId + * @return + */ + @Override + public ProvisionData findSphdMetSohProvisionParticulate(String SPHD_NUM, String MET_NUM, String curDateTime, String pretime, String sphdMetSoh, String stationId) { + ProvisionData sphdMetSohProvision = calCulStationInfoMapper.findSphdMetSohProvisionParticulate(SPHD_NUM, MET_NUM, curDateTime, pretime, sphdMetSoh, stationId); + return sphdMetSohProvision; + } + + +} diff --git a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java index 08c10a6e..27bbb9be 100644 --- a/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java +++ b/jeecg-module-station-operation/src/main/java/org/jeecg/modules/service/impl/StationOperationServiceImpl.java @@ -8,6 +8,7 @@ import com.spatial4j.core.context.SpatialContext; import com.spatial4j.core.distance.DistanceUtils; import com.spatial4j.core.shape.Rectangle; import org.jeecg.common.CacheName; +import org.jeecg.common.CalculateStationData; import org.jeecg.common.PointUtil; import org.jeecg.common.StationTypeUtil; import org.jeecg.common.api.vo.Result; @@ -16,13 +17,14 @@ import org.jeecg.modules.base.entity.GardsMetData; import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.entity.*; +import org.jeecg.modules.entity.data.RateParam; +import org.jeecg.modules.entity.data.StationInfo; import org.jeecg.modules.mapper.*; import org.jeecg.modules.service.ICacheTimeService; +import org.jeecg.modules.service.IStationOperationService; import org.jeecg.modules.system.entity.GardsDetectors; import org.jeecg.modules.system.entity.GardsNuclearfacility; import org.jeecg.modules.system.entity.GardsStations; -import org.jeecg.modules.service.IStationOperationService; -import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -30,7 +32,6 @@ import java.io.*; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.List; import java.util.stream.Collectors; @Service("stationOperationService") @@ -49,6 +50,8 @@ public class StationOperationServiceImpl extends ServiceImpl stationInfoMap = (HashMap) redisUtil.get("stationInfoMap"); + //获取所有的台站信息 + List stations = stationInfoMap.values().stream().collect(Collectors.toList()); + List stationInfos = new ArrayList<>(); + for (GardsStations gardsStations:stations) { + StationInfo stationInfo = new StationInfo(); + stationInfo.setStationCode(gardsStations.getStationCode()); + stationInfo.setCountryCode(gardsStations.getCountryCode()); + stationInfos.add(stationInfo); + } + RateParam mRateParam = calCulateStationData.initParameter(); + List stationInfoList = calCulateStationData.mutiThreadGetStationInfo(stationInfos,mRateParam); + result.setSuccess(true); + result.setResult(stationInfoList); + return result; } } diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java index 991fd73e..ade07f0f 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/common/util/ReadLineUtil.java @@ -1,16 +1,11 @@ package org.jeecg.common.util; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.StringPool; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.net.ftp.FTPClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; -import java.util.Objects; @Component @Slf4j diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java index ce9890c7..02368e50 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/controller/WebStatisticsController.java @@ -4,21 +4,14 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; -import org.jeecg.modules.base.entity.GardsMetData; -import org.jeecg.modules.base.entity.GardsSampleData; -import org.jeecg.modules.base.entity.GardsSohData; import org.jeecg.modules.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; -import java.io.*; import java.util.Date; -import java.util.List; @RestController @RequestMapping("webStatistics") diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java index 93dd0ebd..18725a39 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsAnalyses.java @@ -7,8 +7,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.Date; @Data diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java index a97edcd5..cf4b5018 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleAux.java @@ -7,7 +7,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.time.LocalDate; import java.util.Date; @Data diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java index d23e6873..e0a7551c 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/GardsSampleDescription.java @@ -1,7 +1,6 @@ package org.jeecg.modules.entity; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Certificate.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Certificate.java index ad64a94e..3711020c 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Certificate.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Certificate.java @@ -1,7 +1,6 @@ package org.jeecg.modules.entity.data; import lombok.Data; -import org.jeecg.modules.entity.GardsSampleCertLine; import java.io.Serializable; import java.util.List; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/CertificateLine.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/CertificateLine.java index c76affab..11e7a602 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/CertificateLine.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/CertificateLine.java @@ -1,6 +1,5 @@ package org.jeecg.modules.entity.data; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import java.io.Serializable; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Histogram.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Histogram.java index 9aecc898..028100fe 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Histogram.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/entity/data/Histogram.java @@ -1,7 +1,6 @@ package org.jeecg.modules.entity.data; import lombok.Data; -import org.apache.poi.ss.formula.functions.T; import java.io.Serializable; import java.util.List; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java index 045e710d..3a103774 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IAutoService.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsAnalyses; -import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java index 5241c1ec..bd84d661 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsMetDataService.java @@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.base.entity.GardsMetData; -import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; -import java.util.List; public interface IGardsMetDataService extends IService { diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java index 2e0d2f5b..1131f906 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IGardsSohDataService.java @@ -6,7 +6,6 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.modules.base.entity.GardsSohData; import java.util.Date; -import java.util.List; public interface IGardsSohDataService extends IService { diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IReviewedService.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IReviewedService.java index dad18d6c..dcb3575e 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IReviewedService.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/IReviewedService.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsAnalyses; -import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java index b3913992..bf98c278 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/AutoServiceImpl.java @@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.entity.GardsAnalyses; -import org.jeecg.modules.base.entity.GardsSampleData; import org.jeecg.modules.mapper.GardsAnalysesMapper; import org.jeecg.modules.service.IAutoService; import org.jeecg.modules.service.IGardsSampleDataService; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java index 45dd932a..5cbdebfa 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsMetDataServiceImpl.java @@ -2,7 +2,6 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.common.api.QueryRequest; @@ -11,13 +10,11 @@ import org.jeecg.common.util.DateUtils; import org.jeecg.modules.base.entity.GardsMetData; import org.jeecg.modules.mapper.GardsMetDataMapper; import org.jeecg.modules.service.IGardsMetDataService; -import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Service; import java.text.ParseException; import java.util.Collections; import java.util.Date; -import java.util.List; import java.util.Objects; @Service("gardsMetDataService") diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java index 2b04d465..2bf71e0b 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSampleDataServiceImpl.java @@ -11,8 +11,8 @@ import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.ReadLineUtil; import org.jeecg.common.util.RedisUtil; -import org.jeecg.modules.entity.*; import org.jeecg.modules.base.entity.GardsSampleData; +import org.jeecg.modules.entity.*; import org.jeecg.modules.entity.data.*; import org.jeecg.modules.mapper.*; import org.jeecg.modules.service.IGardsSampleDataService; diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java index 3526df39..ec159164 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/GardsSohDataServiceImpl.java @@ -2,10 +2,8 @@ package org.jeecg.modules.service.impl; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.QueryRequest; import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.DateUtils; @@ -17,7 +15,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.ParseException; -import java.util.*; +import java.util.Collections; +import java.util.Date; +import java.util.Map; +import java.util.Objects; @Service("gardsSohDataService") @DS("ori") diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java index 68054528..26f1775e 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/service/impl/SysDictServiceImpl.java @@ -2,7 +2,6 @@ package org.jeecg.modules.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; -import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; @@ -16,7 +15,10 @@ import org.jeecg.modules.system.entity.GardsStations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; @Service("sysDictService") diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java index e022036b..1495c58c 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsDetectors.java @@ -4,14 +4,9 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; -import org.jeecg.config.valid.InsertGroup; -import org.jeecg.config.valid.UpdateGroup; import org.springframework.format.annotation.DateTimeFormat; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; import java.io.Serializable; -import java.time.LocalDateTime; import java.util.Date; @Data diff --git a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java index a288144d..8966904d 100644 --- a/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java +++ b/jeecg-module-web-statistics/src/main/java/org/jeecg/modules/system/entity/GardsStations.java @@ -7,8 +7,6 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.time.LocalDate; -import java.time.LocalDateTime; import java.util.Date; @Data