修正水库溢洪查询不正确,主要是查询参数的dto的时间字段格式化没有时分秒
parent
090d0a1a1d
commit
e11c920fe9
|
|
@ -2,6 +2,7 @@ package com.gunshi.project.xyt.entity.dto;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import com.gunshi.db.dto.DateRangeSo;
|
import com.gunshi.db.dto.DateRangeSo;
|
||||||
|
import com.gunshi.db.dto.DateTimeRangeSo;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -20,6 +21,6 @@ public class StZqrlBDto {
|
||||||
private String stcd;
|
private String stcd;
|
||||||
|
|
||||||
@Schema(description = "时间范围")
|
@Schema(description = "时间范围")
|
||||||
private DateRangeSo dateSo;
|
private DateTimeRangeSo dateSo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -193,36 +193,63 @@ public class StStbprpBService extends ServiceImpl<StStbprpBMapper, StStbprpB> {
|
||||||
public StZqrlBCountVo count(Serializable stcd) {
|
public StZqrlBCountVo count(Serializable stcd) {
|
||||||
StZqrlBCountVo vo = new StZqrlBCountVo();
|
StZqrlBCountVo vo = new StZqrlBCountVo();
|
||||||
vo.setStcd(stcd.toString());
|
vo.setStcd(stcd.toString());
|
||||||
if (Objects.isNull(stcd)) {
|
|
||||||
return vo;
|
//取出当月的水位
|
||||||
|
Calendar calendar = Calendar.getInstance();
|
||||||
|
Date now = calendar.getTime();
|
||||||
|
calendar.set(Calendar.DAY_OF_MONTH, 1);
|
||||||
|
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
|
calendar.set(Calendar.MINUTE, 0);
|
||||||
|
calendar.set(Calendar.SECOND, 0);
|
||||||
|
calendar.set(Calendar.MILLISECOND, 0);
|
||||||
|
List<StRsvrR> rsvrList = rsvrRService.lambdaQuery()
|
||||||
|
.eq(StRsvrR::getStcd, stcd)
|
||||||
|
.between(StRsvrR::getTm, calendar.getTime(), now)
|
||||||
|
.orderByAsc(true, StRsvrR::getTm)
|
||||||
|
.list();
|
||||||
|
|
||||||
|
List<StZqrlB> zqrlList = stZqrlBService.list();
|
||||||
|
|
||||||
|
List<RsvrComplexVo> complexList = new ArrayList<>();
|
||||||
|
int idx = 0;
|
||||||
|
for (StRsvrR rsvr : rsvrList) {
|
||||||
|
RsvrComplexVo complex = new RsvrComplexVo();
|
||||||
|
BigDecimal rz = new BigDecimal(rsvr.getRz());
|
||||||
|
complex.setRz(rz);
|
||||||
|
complex.setTm(rsvr.getTm());
|
||||||
|
|
||||||
|
BigDecimal q = stZqrlBService.getQFromZqrl(rz, zqrlList);
|
||||||
|
complex.setQ(q);
|
||||||
|
if (idx == 0) {
|
||||||
|
complex.setSv(BigDecimal.ZERO);
|
||||||
|
} else {
|
||||||
|
RsvrComplexVo complexPrev = complexList.get(idx - 1);
|
||||||
|
complex.setSv(complexPrev.getSv().add(complexPrev.getQ().multiply(BigDecimal.valueOf(60 * 60))));
|
||||||
|
}
|
||||||
|
|
||||||
|
complexList.add(complex);
|
||||||
|
idx++;
|
||||||
}
|
}
|
||||||
String stcdstr = stcd.toString();
|
|
||||||
|
|
||||||
LambdaQueryWrapper<StZqrlB> qw = new LambdaQueryWrapper();
|
//当前流量
|
||||||
qw.eq(StZqrlB::getStcd, stcdstr).orderByDesc(StZqrlB::getModitime).last(" limit 1");
|
vo.setVal(complexList.getLast().getQ());
|
||||||
StZqrlB bean = stZqrlBService.getOne(qw);
|
vo.setCreateTime(complexList.getLast().getTm());
|
||||||
vo.setVal(bean.getQ());
|
|
||||||
vo.setCreateTime(bean.getModitime());
|
|
||||||
|
|
||||||
// 获取今天开始时间 (00:00:00)
|
calendar.setTime(now);
|
||||||
LocalDateTime todayStart = LocalDate.now().atStartOfDay();
|
calendar.set(Calendar.HOUR_OF_DAY, 0);
|
||||||
// 获取当前时间 (带时分秒)
|
calendar.set(Calendar.MINUTE, 0);
|
||||||
LocalDateTime now = LocalDateTime.now();
|
calendar.set(Calendar.SECOND, 0);
|
||||||
vo.setCurrDayValSum(sumVal(stcdstr, todayStart, now));
|
calendar.set(Calendar.MILLISECOND, 0);
|
||||||
|
Date today = calendar.getTime();
|
||||||
// 获取本月1号0点
|
//今日sv的和
|
||||||
LocalDateTime firstDayOfMonth = LocalDate.now().withDayOfMonth(1).atStartOfDay();
|
BigDecimal sumToday = complexList.stream().filter(complex -> complex.getTm().after(today))
|
||||||
vo.setCurrMonthSum(sumVal(stcdstr, firstDayOfMonth, now));
|
.map(RsvrComplexVo::getSv)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
// 获取本年第一天 00:00:00
|
vo.setCurrDayValSum(sumToday);
|
||||||
LocalDateTime firstDayOfYear = LocalDate.now().withDayOfYear(1).atStartOfDay();
|
//当月sv的和
|
||||||
vo.setCurrYearSum(sumVal(stcdstr, firstDayOfYear, now));
|
BigDecimal sumMonth = complexList.stream().map(RsvrComplexVo::getSv)
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
//年次数
|
vo.setCurrMonthSum(sumMonth);
|
||||||
vo.setCurrYearCount(countVal(stcdstr, firstDayOfYear, now));
|
|
||||||
|
|
||||||
//本年最大
|
|
||||||
vo.setCurrYearMaxVal(maxVal(stcdstr, firstDayOfYear, now));
|
|
||||||
|
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue