package cn.cecep.talroad.vo.query.analysis;

import cn.cecep.talroad.common.core.domain.query.PageQuery;
import cn.cecep.talroad.domain.analysis.SRaAreaTransferRateAnalysis;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 区域传输率分析对象 s_ra_area_transfer_rate_analysis
 *
 * @author szhpt
 * @date 2023-04-11*/
@ApiModel(value = "区域传输率分析")
@EqualsAndHashCode(callSuper = false)
@Data
public class SRaAreaTransferRateAnalysisQuery extends PageQuery
{

    @ApiModelProperty(value = "id")
    private String id;
    @ApiModelProperty(value = "区域名称")
    private String districtName;
    @ApiModelProperty(value = "区域编码")
    private String districtCode;
    @ApiModelProperty(value = "统计时间")
    private Date statisticsTime;
    @ApiModelProperty(value = "分表计电-应传个数")
    private Long elecTransmittNum;
    @ApiModelProperty(value = "分表计电-实际上传个数")
    private Long elecActualTransmittNum;
    @ApiModelProperty(value = "分表计电-传输率")
    private BigDecimal elecTransmissionRate;
    @ApiModelProperty(value = "无组织管控-分钟数据-应传个数")
    private Long unorganizedTransmittMinuteNum;
    @ApiModelProperty(value = "无组织管控-分钟数据-实际上传个数")
    private Long unorganizedActualTransmittMinuteNum;
    @ApiModelProperty(value = "无组织管控-分钟数据-传输率")
    private BigDecimal unorganizedTransmissionMinuteRate;
    @ApiModelProperty(value = "无组织管控-小时数据-应传个数")
    private Long unorganizedTransmittHourNum;
    @ApiModelProperty(value = "无组织管控-小时数据-实际上传个数")
    private Long unorganizedActualTransmittHourNum;
    @ApiModelProperty(value = "无组织管控-小时数据-传输率")
    private BigDecimal unorganizedTransmissionHourRate;
    @ApiModelProperty(value = "dcs监控数据-应传个数")
    private Long dcsTransmittMinuteNum;
    @ApiModelProperty(value = "dcs监控数据-实际上传个数")
    private Long dcsActualTransmittNum;
    @ApiModelProperty(value = "dcs监控数据-传输率")
    private BigDecimal dcsTransmissionRate;
    @ApiModelProperty(value = "网格化数据-分钟数据-应传个数")
    private Long griddedTransmittMinuteNum;
    @ApiModelProperty(value = "网格化数据-分钟数据-实际上传个数")
    private Long griddedActualTransmittMinuteNum;
    @ApiModelProperty(value = "网格化数据-分钟数据-传输率")
    private BigDecimal griddedTransmissionMinuteRate;
    @ApiModelProperty(value = "网格化数据-小时数据-应传个数")
    private Long griddedTransmittHourNum;
    @ApiModelProperty(value = "网格化数据-小时数据-实际上传个数")
    private Long griddedActualTransmittHourNum;
    @ApiModelProperty(value = "网格化数据-小时数据-传输率")
    private BigDecimal griddedTransmissionHourRate;
    @ApiModelProperty(value = "网格化数据-日数据-应传个数")
    private Long griddedTransmittDayNum;
    @ApiModelProperty(value = "网格化数据-日数据-实际上传个数")
    private Long griddedActualTransmittGriddedTransmittDayNum;
    @ApiModelProperty(value = "网格化数据-日数据-传输率")
    private BigDecimal griddedTransmissionDayRate;
    @ApiModelProperty(value = "创建人")
    private String createBy;
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    @ApiModelProperty(value = "统计时间开始")
    private String statisticsTimeStart;
    @ApiModelProperty(value = "统计时间结束")
    private String statisticsTimeEnd;
    @ApiModelProperty(value = "执行报告类型;字典bus_executive_report（y 年报 s 季报 m 月报 d 日报）")
    private String reportType;
    /**
     *
     * @Title: getQueryWrapper
     * @Description: 查询参数组装
     * @param: @return
     * @return: QueryWrapper<BasIndustry>
     * @throws
     */
    public static QueryWrapper<SRaAreaTransferRateAnalysis> createLambdaQueryWrapper(SRaAreaTransferRateAnalysisQuery query) {
        QueryWrapper<SRaAreaTransferRateAnalysis> wrapper = new QueryWrapper<>();
        wrapper.eq(ObjectUtil.isNotNull(query.getId()), "id", query.getId());
        wrapper.like(ObjectUtil.isNotEmpty(query.getDistrictName()), "district_name", query.getDistrictName());
        wrapper.eq(ObjectUtil.isNotEmpty(query.getDistrictCode()), "district_code", query.getDistrictCode());
        wrapper.eq(ObjectUtil.isNotNull(query.getStatisticsTime()), "statistics_time", query.getStatisticsTime());
        wrapper.eq(ObjectUtil.isNotNull(query.getElecTransmittNum()), "elec_transmitt_num", query.getElecTransmittNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getElecActualTransmittNum()), "elec_actual_transmitt_num", query.getElecActualTransmittNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getElecTransmissionRate()), "elec_transmission_rate", query.getElecTransmissionRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedTransmittMinuteNum()), "unorganized_transmitt_minute_num", query.getUnorganizedTransmittMinuteNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedActualTransmittMinuteNum()), "unorganized_actual_transmitt_minute_num", query.getUnorganizedActualTransmittMinuteNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedTransmissionMinuteRate()), "unorganized_transmission_minute_rate", query.getUnorganizedTransmissionMinuteRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedTransmittHourNum()), "unorganized_transmitt_hour_num", query.getUnorganizedTransmittHourNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedActualTransmittHourNum()), "unorganized_actual_transmitt_hour_num", query.getUnorganizedActualTransmittHourNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getUnorganizedTransmissionHourRate()), "unorganized_transmission_hour_rate", query.getUnorganizedTransmissionHourRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getDcsTransmittMinuteNum()), "dcs_transmitt_minute_num", query.getDcsTransmittMinuteNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getDcsActualTransmittNum()), "dcs_actual_transmitt_num", query.getDcsActualTransmittNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getDcsTransmissionRate()), "dcs_transmission_rate", query.getDcsTransmissionRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmittMinuteNum()), "gridded_transmitt_minute_num", query.getGriddedTransmittMinuteNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedActualTransmittMinuteNum()), "gridded_actual_transmitt_minute_num", query.getGriddedActualTransmittMinuteNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmissionMinuteRate()), "gridded_transmission_minute_rate", query.getGriddedTransmissionMinuteRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmittHourNum()), "gridded_transmitt_hour_num", query.getGriddedTransmittHourNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedActualTransmittHourNum()), "gridded_actual_transmitt_hour_num", query.getGriddedActualTransmittHourNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmissionHourRate()), "gridded_transmission_hour_rate", query.getGriddedTransmissionHourRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmittDayNum()), "gridded_transmitt_day_num", query.getGriddedTransmittDayNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedActualTransmittGriddedTransmittDayNum()), "gridded_actual_transmitt_gridded_transmitt_day_num", query.getGriddedActualTransmittGriddedTransmittDayNum());
        wrapper.eq(ObjectUtil.isNotNull(query.getGriddedTransmissionDayRate()), "gridded_transmission_day_rate", query.getGriddedTransmissionDayRate());
        wrapper.eq(ObjectUtil.isNotNull(query.getCreateBy()), "create_by", query.getCreateBy());
        wrapper.eq(ObjectUtil.isNotNull(query.getCreateTime()), "create_time", query.getCreateTime());
        wrapper.eq(ObjectUtil.isNotNull(query.getUpdateBy()), "update_by", query.getUpdateBy());
        wrapper.eq(ObjectUtil.isNotNull(query.getUpdateTime()), "update_time", query.getUpdateTime());
        wrapper.ge(ObjectUtil.isNotEmpty(query.getStatisticsTimeStart()), "statistics_time", query.getStatisticsTimeStart());
        wrapper.le(ObjectUtil.isNotEmpty(query.getStatisticsTimeEnd()), "statistics_time", query.getStatisticsTimeEnd());
        wrapper.eq(ObjectUtil.isNotEmpty(query.getReportType()), "count_type", query.getReportType());
        return wrapper;
        }
}
