gunshi-project-ss/src/main/java/com/gunshi/project/ss/service/RainBasinDivisionService.java

710 lines
25 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.gunshi.project.ss.service;
import cn.hutool.core.bean.BeanUtil;
import com.gunshi.project.ss.common.util.LocalDateTimeConverter;
import com.gunshi.project.ss.entity.so.StPptnSo;
import com.gunshi.project.ss.entity.so.WeatherSo;
import com.gunshi.project.ss.entity.vo.*;
import com.gunshi.project.ss.mapper.RealRainMapper;
import com.gunshi.project.ss.common.mapper.StPptnRMapper;
import com.gunshi.project.ss.model.StPptnRD;
import com.gunshi.project.ss.common.model.StPptnRReal;
import jakarta.annotation.Resource;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* Description:
* Created by wanyan on 2024/7/8
*
* @author wanyan
* @version 1.0
*/
@Service
@Slf4j
public class RainBasinDivisionService {
@Autowired
private RealRainMapper realRainMapper;
@Autowired
private StPptnRMapper stPptnRMapper;
@Resource
private StStbprpBService stStbprpBAutoDao;
/**
* 根据测站编码查询时间段内每小时的雨量
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public List<StPptnVo> queryStPptnPerHourByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
String stcd = stPptnSo.getStcd();
List<StPptnVo> stPptnVos = realRainMapper.queryStPptnPerHourByStcdAndStartTimeAndEndTime(stcd, stPptnSo.getStartTime(), stPptnSo.getEndTime());
SimpleDateFormat df = new SimpleDateFormat("MM-dd HH:mm");
for (StPptnVo stPptnVo : stPptnVos) {
Date time = stPptnVo.getTime();
stPptnVo.setTimeStr(df.format(time));
}
return stPptnVos;
}
/**
* 根据测站编码查询时间段内每小时的雨量统计
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public CartogramVo queryStPptnPerHourChartByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
//实测
List<StPptnVo> stPptnVos1 = queryStPptnPerHourNowByStcdAndStartTimeAndEndTime(stPptnSo);
//累计
List<StPptnVo> stPptnVos2 = queryStPptnPerHourSumByStcdAndStartTimeAndEndTime(stPptnSo);
CartogramVo cartogramVo = new CartogramVo();
List<String> time = new ArrayList<>();
List<BigDecimal> actual = new ArrayList<>();
List<BigDecimal> total = new ArrayList<>();
for (StPptnVo stPptnVo : stPptnVos1) {
time.add(stPptnVo.getTimeStr());
actual.add(stPptnVo.getSumDrp());
}
for (StPptnVo stPptnVo : stPptnVos2) {
total.add(stPptnVo.getSumDrp());
}
cartogramVo.setTime(time);
cartogramVo.setActual(actual);
cartogramVo.setTotal(total);
return cartogramVo;
}
/**
* 根据测站编码查询时间段内每小时的实测雨量
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public List<StPptnVo> queryStPptnPerHourNowByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
List<StPptnVo> stPptnVos = queryStPptnPerHourByStcdAndStartTimeAndEndTime(stPptnSo);
Collections.reverse(stPptnVos);
return stPptnVos;
}
/**
* 根据测站编码查询时间段内每小时的累计雨量
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public List<StPptnVo> queryStPptnPerHourSumByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
List<StPptnVo> stPptnVos = queryStPptnPerHourNowByStcdAndStartTimeAndEndTime(stPptnSo);
BigDecimal sumdrp = BigDecimal.valueOf(0);
for (StPptnVo stPptnVo : stPptnVos) {
sumdrp = sumdrp.add(stPptnVo.getSumDrp());
stPptnVo.setSumDrp(sumdrp);
}
return stPptnVos;
}
/**
* 根据测站编码查询时间段内每天的雨量
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
@SneakyThrows
public List<StPptnVo> queryStPptnPerDayByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
String stcd = stPptnSo.getStcd();
Date stm = stPptnSo.getStartTime();
Date etm = stPptnSo.getEndTime();
Date now = new Date();
if (etm.getTime() > now.getTime()) etm = now;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
stm = df.parse(df.format(stm));
etm = df.parse(df.format(etm));
Calendar cal = Calendar.getInstance();
List<StPptnVo> stPptnVos = new ArrayList<>();
while (etm.getTime() >= stm.getTime()) {
cal.setTime(stm);
StPptnVo stPptnVo = new StPptnVo();
stPptnVo.setTime(stm);
stPptnVo.setTimeStr(df.format(stm));
int year = cal.get(Calendar.YEAR);
StPptnRD pptnrd = realRainMapper.getStPptnRD(
stcd, stm, year
);
if (pptnrd != null) {
stPptnVo.setSumDrp(pptnrd.getDrp());
}
stPptnVos.add(stPptnVo);
cal.add(Calendar.DAY_OF_MONTH, 1);
stm = cal.getTime();
}
return stPptnVos;
}
/**
* 根据测站编码查询时间段内每天的雨量统计
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public CartogramVo queryStPptnPerDayChartChartByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
//实测
List<StPptnVo> stPptnVos1 = queryStPptnPerDayByStcdAndStartTimeAndEndTime(stPptnSo);
//累计
List<StPptnVo> stPptnVos2 = queryStPptnPerDaySumByStcdAndStartTimeAndEndTime(stPptnSo);
CartogramVo cartogramVo = new CartogramVo();
List<String> time = new ArrayList<>();
List<BigDecimal> actual = new ArrayList<>();
List<BigDecimal> total = new ArrayList<>();
for (StPptnVo stPptnVo : stPptnVos1) {
time.add(stPptnVo.getTimeStr());
actual.add(stPptnVo.getSumDrp());
}
for (StPptnVo stPptnVo : stPptnVos2) {
total.add(stPptnVo.getSumDrp());
}
cartogramVo.setTime(time);
cartogramVo.setActual(actual);
cartogramVo.setTotal(total);
return cartogramVo;
}
/**
* 根据测站编码查询时间段内每天的累计雨量
*
* @param stPptnSo 雨量站降雨量查询参数
* @return
*/
public List<StPptnVo> queryStPptnPerDaySumByStcdAndStartTimeAndEndTime(StPptnSo stPptnSo) {
List<StPptnVo> stPptnVos = queryStPptnPerDayByStcdAndStartTimeAndEndTime(stPptnSo);
BigDecimal sumdrp = BigDecimal.valueOf(0);
for (StPptnVo stPptnVo : stPptnVos) {
if (stPptnVo.getSumDrp() != null){
sumdrp = sumdrp.add(stPptnVo.getSumDrp());
}
stPptnVo.setSumDrp(sumdrp);
}
return stPptnVos;
}
/**
* 根据测站编码查询详细雨量情况
*
* @param stcd 测站编码
* @return
*/
public StPptnDetailsVo queryStPptnDetailsByStcd(String stcd) {
// StPptnRStat stPptnRStat = stPptnRStatMapper.queryStPptnRStatByStcd(stcd);
StPptnRReal stPptnRReal = realRainMapper.queryPptnByStcd(stcd);
StPptnDetailsVo stPptnDetailsVo = new StPptnDetailsVo();
if (stPptnRReal != null){
BeanUtil.copyProperties(stPptnRReal, stPptnDetailsVo);
Date tm = stPptnRReal.getTm();
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime latestTime = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
boolean isToday = latestTime.toLocalDate().equals(nowTime.toLocalDate());
if(!isToday){
stPptnDetailsVo.setH1(null);
stPptnDetailsVo.setH3(null);
stPptnDetailsVo.setH6(null);
stPptnDetailsVo.setH12(null);
stPptnDetailsVo.setH24(null);
stPptnDetailsVo.setH48(null);
stPptnDetailsVo.setDrp(null);
stPptnDetailsVo.setToday(null);
}
}else {
stPptnDetailsVo.setStcd(stcd);
}
Date date = new Date();
// //今日雨量
BigDecimal todayDrp = queryTodayDrpByStcdAndTime(stcd, date);
if (todayDrp == null) {
stPptnDetailsVo.setTodayDrp(null);
} else {
stPptnDetailsVo.setTodayDrp(todayDrp);
}
//昨日雨量
BigDecimal yesterdayDrp = queryYesterdayDrpByStcdAndTime(stcd, date);
if (yesterdayDrp == null) {
stPptnDetailsVo.setYesterdayDrp(null);
} else {
stPptnDetailsVo.setYesterdayDrp(yesterdayDrp);
}
//本月降雨量
BigDecimal monthDay = queryMonthDrpByStcdAndTime(stcd, date);
if (monthDay == null) {
stPptnDetailsVo.setMonthDrp(null);
} else {
stPptnDetailsVo.setMonthDrp(monthDay);
}
//本年降雨量
BigDecimal yearDrp = queryYearDrpByStcdAndTime(stcd, date);
if (yearDrp == null) {
stPptnDetailsVo.setYearDrp(null);
} else {
stPptnDetailsVo.setYearDrp(yearDrp);
}
//本年天数
Long yearDay = countYearDay(date);
stPptnDetailsVo.setYearDay(yearDay);
Map<String, Object> map = queryYearDrpDayAndMaxDrpAndMaxDrpTimeByStcdAndTime(stcd, date);
//本年降雨天数
Long yearDrpDay = (Long) map.get("count");
stPptnDetailsVo.setYearDrpDay(yearDrpDay);
//本年最大日雨量
BigDecimal maxDrp = (BigDecimal) map.get("maxDrp");
stPptnDetailsVo.setMaxDrp(maxDrp);
//本年最大日雨量时间
Date maxDrpTime =(Date) map.get("maxDrpTime");
stPptnDetailsVo.setMaxDrpTime(maxDrpTime);
return stPptnDetailsVo;
}
@Autowired
private StStbprpBService stStbprpBService;
@Autowired
private ForecastService forecastService;
public List<StPptnDetailsVo> queryStPptnDetailsByStcdList() {
List<StStatusVo> stStatusVos = stStbprpBService.rainList();
List<StPptnDetailsVo> res = new ArrayList<>();
for (StStatusVo stStatusVo : stStatusVos) {
String stcd = stStatusVo.getStcd();
StPptnRReal stPptnRReal = realRainMapper.queryPptnByStcd(stcd);
StPptnDetailsVo stPptnDetailsVo = new StPptnDetailsVo();
if (stPptnRReal != null){
BeanUtil.copyProperties(stPptnRReal, stPptnDetailsVo);
Date tm = stPptnRReal.getTm();
LocalDateTime nowTime = LocalDateTime.now();
LocalDateTime latestTime = LocalDateTime.ofInstant(tm.toInstant(), ZoneId.systemDefault());
boolean isToday = latestTime.toLocalDate().equals(nowTime.toLocalDate());
if(!isToday){
stPptnDetailsVo.setH1(null);
stPptnDetailsVo.setH3(null);
stPptnDetailsVo.setH6(null);
stPptnDetailsVo.setH12(null);
stPptnDetailsVo.setH24(null);
stPptnDetailsVo.setH48(null);
stPptnDetailsVo.setDrp(null);
stPptnDetailsVo.setToday(null);
}
}else {
stPptnDetailsVo.setStcd(stcd);
}
Date date = new Date();
// //今日雨量
BigDecimal todayDrp = queryTodayDrpByStcdAndTime(stcd, date);
if (todayDrp == null) {
stPptnDetailsVo.setTodayDrp(null);
} else {
stPptnDetailsVo.setTodayDrp(todayDrp);
}
//昨日雨量
BigDecimal yesterdayDrp = queryYesterdayDrpByStcdAndTime(stcd, date);
if (yesterdayDrp == null) {
stPptnDetailsVo.setYesterdayDrp(null);
} else {
stPptnDetailsVo.setYesterdayDrp(yesterdayDrp);
}
//本月降雨量
BigDecimal monthDay = queryMonthDrpByStcdAndTime(stcd, date);
if (monthDay == null) {
stPptnDetailsVo.setMonthDrp(null);
} else {
stPptnDetailsVo.setMonthDrp(monthDay);
}
//本年降雨量
BigDecimal yearDrp = queryYearDrpByStcdAndTime(stcd, date);
if (yearDrp == null) {
stPptnDetailsVo.setYearDrp(null);
} else {
stPptnDetailsVo.setYearDrp(yearDrp);
}
//本年天数
Long yearDay = countYearDay(date);
stPptnDetailsVo.setYearDay(yearDay);
Map<String, Object> map = queryYearDrpDayAndMaxDrpAndMaxDrpTimeByStcdAndTime(stcd, date);
//本年降雨天数
Long yearDrpDay = (Long) map.get("count");
stPptnDetailsVo.setYearDrpDay(yearDrpDay);
//本年最大日雨量
BigDecimal maxDrp = (BigDecimal) map.get("maxDrp");
stPptnDetailsVo.setMaxDrp(maxDrp);
//本年最大日雨量时间
Date maxDrpTime =(Date) map.get("maxDrpTime");
stPptnDetailsVo.setMaxDrpTime(maxDrpTime);
//降雨预测数据
WeatherSo weatherSo = new WeatherSo();
String tm;
LocalDateTime now = LocalDateTime.now();
int hour = now.getHour();
if(hour < 8){
// 使用昨日20时的tm
LocalDateTime yesterday20 = now.minusDays(1).withHour(20).withMinute(0).withSecond(0);
tm = formatTm(yesterday20);
}else if(hour > 8 && hour < 20){
// 使用今日08时的tm
LocalDateTime today08 = now.withHour(8).withMinute(0).withSecond(0);
tm = formatTm(today08);
}else{
// 使用今日20时的tm
LocalDateTime today20 = now.withHour(20).withMinute(0).withSecond(0);
tm = formatTm(today20);
}
weatherSo.setTm(tm);
try {
List<ForeRainVo> fore = forecastService.fore(weatherSo);
if(fore != null && !fore.isEmpty()){
fore.stream().forEach(o ->{
if(o.getStcd().equals(stcd)){
Double h24 = o.getH24();
stPptnDetailsVo.setForce24hDrp(h24 == null?null:new BigDecimal(h24.toString()));
}
});
}
} catch (Exception e) {
//接口不知道是好的还是坏的,反正这个接口坏了别影响其它的接口
e.printStackTrace();
}
res.add(stPptnDetailsVo);
}
return res;
}
/**
* 格式化时间为YYYYMMDDHH格式
*/
private String formatTm(LocalDateTime dateTime) {
return String.format("%04d%02d%02d%02d",
dateTime.getYear(),
dateTime.getMonthValue(),
dateTime.getDayOfMonth(),
dateTime.getHour());
}
/**
* 根据测站编码和时间查看今日降雨量
*
* @param stcd 测站编码
* @param time 当前时间
* @return 今日降雨量
*/
public BigDecimal queryTodayDrpByStcdAndTime(String stcd, Date time) {
LocalDateTime now = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault());
LocalDateTime startTime;
LocalDateTime endTime;
// 如果当前时间大于等于8:00则从今日8:00开始计算
if (now.getHour() >= 8) {
startTime = LocalDateTime.of(
now.getYear(),
now.getMonthValue(),
now.getDayOfMonth(),
8,
0,
0
);
endTime = now;
} else {
// 如果当前时间小于8:00则从昨日8:00开始计算到今日8:00
// 因为今日8:00之前的降雨量实际上属于昨日的统计
LocalDateTime yesterday = now.minusDays(1);
startTime = LocalDateTime.of(
yesterday.getYear(),
yesterday.getMonthValue(),
yesterday.getDayOfMonth(),
8,
0,
0
);
endTime = LocalDateTime.of(
now.getYear(),
now.getMonthValue(),
now.getDayOfMonth(),
8,
0,
0
);
}
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(
stcd,
Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()),
Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())
);
}
/**
* 根据测站编码和时间查看昨日降雨量
*
* @param stcd 测站编码
* @param time 当前时间
* @return 昨日降雨量
*/
public BigDecimal queryYesterdayDrpByStcdAndTime(String stcd, Date time) {
LocalDateTime now = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault());
LocalDateTime startTime;
LocalDateTime endTime;
LocalDateTime yesterday = now.minusDays(1);
if (now.getHour() >= 8) {
startTime = LocalDateTime.of(
yesterday.getYear(),
yesterday.getMonthValue(),
yesterday.getDayOfMonth(),
8,
0,
0
);
endTime = LocalDateTime.of(
now.getYear(),
now.getMonthValue(),
now.getDayOfMonth(),
8,
0,
0
);
} else {
endTime = endTime = LocalDateTime.of(
yesterday.getYear(),
yesterday.getMonthValue(),
yesterday.getDayOfMonth(),
8,
0,
0
);
yesterday = yesterday.minusDays(1);
startTime = LocalDateTime.of(
yesterday.getYear(),
yesterday.getMonthValue(),
yesterday.getDayOfMonth(),
8,
0,
0
);
}
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(
stcd,
Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()),
Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())
);
}
/**
* 根据测站编码和时间查看本月降雨量
*
* @param stcd 测站编码
* @param time 当前时间
* @return 本月降雨量
*/
public BigDecimal queryMonthDrpByStcdAndTime(String stcd, Date time) {
LocalDateTime now = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault());
LocalDateTime startTime;
LocalDateTime endTime;
if (now.getHour() >= 8 || (now.getHour() < 8 && now.getDayOfMonth() > 1)) {
startTime = LocalDateTime.of(
now.getYear(),
now.getMonthValue(),
1,
8,
0,
0
);
endTime = now;
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(
stcd,
Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()),
Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())
);
}
BigDecimal monthdrp = BigDecimal.valueOf(0);
return monthdrp;
}
/**
* 根据测站编码和时间查看本年降雨量
*
* @param stcd 测站编码
* @param time 当前时间
* @return 本年降雨量
*/
public BigDecimal queryYearDrpByStcdAndTime(String stcd, Date time) {
LocalDateTime now = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault());
LocalDateTime startTime;
LocalDateTime endTime;
if (now.getHour() >= 8 || (now.getHour() < 8 && now.getMonthValue() > 1) || (now.getHour() < 8 && now.getMonthValue() == 1 && now.getDayOfMonth() >= 1)) {
startTime = LocalDateTime.of(
now.getYear(),
1,
1,
8,
0,
0
);
endTime = now;
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(
stcd,
Date.from(startTime.atZone(ZoneId.systemDefault()).toInstant()),
Date.from(endTime.atZone(ZoneId.systemDefault()).toInstant())
);
}
BigDecimal monthDrp = BigDecimal.valueOf(0);
return monthDrp;
}
/**
* 根据测站编码和时间查询本年降雨天数、本年最大日雨量、本年最大日雨量时间
*
* @param stcd 测站编码
* @param time 当前时间
* @return 本年降雨天数、本年最大日雨量、本年最大日雨量时间
*/
public Map<String, Object> queryYearDrpDayAndMaxDrpAndMaxDrpTimeByStcdAndTime(String stcd, Date time) {
Date now = new Date();
Date startTime = new Date(now.getYear(), 0, 1, 8, 0, 0);
BigDecimal maxDrp = BigDecimal.valueOf(0);
Date maxDrpTime = startTime;
Long count = 0L;
Map<String, Object> map = new HashMap<>();
map.put("count", count);
map.put("maxDrp", maxDrp);
map.put("maxDrpTime", maxDrpTime);
// QueryWrapper<StStbprpB> queryWrapper = new QueryWrapper<>();
// queryWrapper.eq(StStbprpB.COL_STCD,stcd);
// StStbprpB stStbprpB = stStbprpBAutoDao.getOne(queryWrapper);
StPptnRD stPptnRD = realRainMapper.getMaxOfYear(stcd,now.getYear() + 1900);
if (stPptnRD == null){
return map;
}
count = realRainMapper.getRainOfDayInYear(stcd, now.getYear()+1900);
map.put("count", count);
map.put("maxDrp", stPptnRD.getDrp());
map.put("maxDrpTime", stPptnRD.getTm());
return map;
}
/**
* 计算本年天数
*
* @param time 当前时间
* @return 本年天数
*/
public Long countYearDay(Date time) {
LocalDateTime now = LocalDateTime.ofInstant(time.toInstant(), ZoneId.systemDefault());
LocalDateTime startTime = LocalDateTime.of(now.getYear(), 1, 1, 8, 0, 0);
long count = ChronoUnit.DAYS.between(startTime, now);
return count + 1;
}
public StPptnRReal maxRain(StPptnSo stPptnSo) {
StPptnRReal stPptnRReal = new StPptnRReal();
List<StPptnVo> stPptnVos = realRainMapper.queryStPptnPerHourByStcdAndStartTimeAndEndTime(stPptnSo.getStcd(), stPptnSo.getStartTime(), stPptnSo.getEndTime());
if (stPptnVos == null || stPptnVos.isEmpty()) {
return null;
}
stPptnRReal.setH1(stPptnVos.stream().max(Comparator.comparing(StPptnVo::getSumDrp)).get().getSumDrp());
Collections.reverse(stPptnVos);
List<Integer> list = Arrays.asList(3, 6, 12);
for(Integer num : list){
BigDecimal data = calcMaxData(num,stPptnVos);
if(num == 3){
stPptnRReal.setH3(data);
}
if(num == 6){
stPptnRReal.setH6(data);
}
if(num == 12){
stPptnRReal.setH12(data);
}
}
return stPptnRReal;
}
private BigDecimal calcMaxData(Integer num, List<StPptnVo> stPptnVos) {
List<BigDecimal> list = stPptnVos.stream().map(StPptnVo::getSumDrp).collect(Collectors.toList());
return IntStream.range(0, list.size() - num -1)
.mapToObj(i -> list.subList(i, Math.min(i + num, list.size()))) // 获取每几个数的子列表
.map(sublist -> sublist.stream().reduce(BigDecimal.ZERO, BigDecimal::add))
.max(BigDecimal::compareTo)
.orElse(BigDecimal.ZERO);
}
public StPptnRReal queryStPptnRealByStcd(String stcd) {
return realRainMapper.queryPptnByStcd(stcd);
}
public BigDecimal queryLast24HoursDrpByStcdAndTime(String stcd, Date date) {
LocalDateTime end = LocalDateTimeConverter.fromDate(date);
LocalDateTime start = end.minusDays(1);
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(stcd,LocalDateTimeConverter.toDate(start),LocalDateTimeConverter.toDate(end));
}
public BigDecimal queryLast48HoursDrpByStcdAndTime(String stcd, Date date) {
LocalDateTime end = LocalDateTimeConverter.fromDate(date);
LocalDateTime start = end.minusDays(2);
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(stcd,LocalDateTimeConverter.toDate(start),LocalDateTimeConverter.toDate(end));
}
public BigDecimal queryLast72HoursDrpByStcdAndTime(String stcd, Date date) {
LocalDateTime end = LocalDateTimeConverter.fromDate(date);
LocalDateTime start = end.minusDays(3);
return stPptnRMapper.queryStPptnTimeQuantumByStcdAndTime(stcd,LocalDateTimeConverter.toDate(start),LocalDateTimeConverter.toDate(end));
}
}