package com.shkpr.service.aimodelpower.jsonbean.zilaishui; import com.global.base.log.LogLevelFlag; import com.global.base.log.LogPrintMgr; import com.shkpr.service.aimodelpower.commtools.TimeTool; import com.shkpr.service.aimodelpower.controllervalid.CommonParamValidList; import com.shkpr.service.aimodelpower.controllervalid.CommonParamValidSS; import lombok.Data; import org.hibernate.validator.constraints.Range; import org.springframework.util.StringUtils; import java.time.Instant; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; /** * @ClassName JPTbMHourWater * @Description: TODO 查询日预测小时数据 * @Author LX * @Date 2024/5/27 * @Version V1.0 **/ @Data public class JPTbMHourWater { private Boolean isPage = false;//是否分页 默认false private String orgId;//水厂id @Range(min = 0, max = 65535, groups = {CommonParamValidList.class, CommonParamValidSS.class}) private Integer limit = 20;//若分页 默认数为20 @Range(min = 0, max = Integer.MAX_VALUE, groups = {CommonParamValidList.class, CommonParamValidSS.class}) private Integer offset = 0;//若分页 默认起始值为0 private Long queryDate;//开始日期 (实际时间为 年 月 日(就为当月的一号),时分秒为 00:00:00,如2023-03-01 00:00:00) //业务字段 private String forDateStr; public boolean checkValid(){ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); StringBuilder strSql = new StringBuilder(""); if(!StringUtils.isEmpty(orgId)){ strSql.append(" AND \"orgId\" = '"+orgId+"'"); } if(queryDate==null){ //TODO 说明前端没传,那么默认为今天 LocalDateTime nowDate = LocalDateTime.now();//结束时间 nowDate = nowDate.with(TemporalAdjusters.lastDayOfMonth()); nowDate = nowDate.withHour(0); nowDate = nowDate.withMinute(0); nowDate = nowDate.withSecond(0); strSql.append(" AND \"Date\" = '"+nowDate.format(formatter)+"' "); forDateStr = strSql.toString(); }else if(queryDate!=null){ try { //TODO 说明符合可组成查询日期的条件 String sqlStr = LocalDateTime.ofInstant(Instant.ofEpochMilli(queryDate), ZoneId.systemDefault()) .withHour(0).withMinute(0).withSecond(0).format(formatter); strSql.append(" AND \"Date\" = '"+sqlStr+"' "); forDateStr = strSql.toString(); }catch(Exception ex){ LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.LOG_ERROR, "JPCustomerMeterSS", "JPCustomerMeterSS" ,String.format("errorMsg:%s====>" ,ex.getLocalizedMessage())); return false; } } return true; } }