/*
 * 文 件 名:  QueryMeterReading
 * 版    权:  浩鲸云计算科技股份有限公司
 * 描    述:  <描述>
 * 修 改 人:  lvwenbin
 * 修改时间:  2024/8/28
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.ruoyi.ems.model;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.huashe.common.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Set;

/**
 * 查询抄表记录
 * <功能详细描述>
 *
 * @author lvwenbin
 * @version [版本号, 2024/8/28]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Data
public class QueryMeter extends BaseEntity  {
    @ApiModelProperty("区域代码")
    private String areaCode;

    @ApiModelProperty("设备代码")
    private String deviceCode;

    @ApiModelProperty("设备代码列表")
    private Set<String> deviceCodes;

    @ApiModelProperty("对象类型 1-区域 2-设施")
    private Integer objType;

    @ApiModelProperty("对象代码")
    private String objCode;

    @ApiModelProperty("对象名称")
    private String objName;

    @ApiModelProperty("设施分类")
    private String facsCategory;

    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String startRecTime;

    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endRecTime;

    @ApiModelProperty("时间维度 day-日 month-月 year-年")
    private String timeDimension;

    @ApiModelProperty("排序方式 asc-升序 desc-降序")
    private String orderFlag = "desc";

    @ApiModelProperty("页码")
    private Integer pageNum = 1;

    @ApiModelProperty("页大小")
    private Integer pageSize = 10;

    @ApiModelProperty("是否按区域分组")
    private Boolean groupByArea = false;

    private String areaName;

    /**
     * 设施代码
     */
    private String facsCode;

    /**
     * 对象标签
     */
    private Integer objTag;

    /**
     * 计量介质
     */
    private Integer meterCls;

    /**
     * 年份
     */
    private String year;

    /**
     * 设施子类
     */
    private String facsSubCategory;

    private String date;

    public QueryMeter() {
        super();
    }

    public QueryMeter(String areaCode, Integer objTag, Integer meterCls, String startTime, String endTime) {
        super();
        this.areaCode = areaCode;
        this.objTag = objTag;
        this.meterCls = meterCls;
        this.setStartRecTime(startTime);
        this.setEndRecTime(endTime);
    }

    public QueryMeter(String areaCode, String facsCode, String startTime, String endTime) {
        super();
        this.areaCode = areaCode;
        this.facsCode = facsCode;
        this.setStartRecTime(startTime);
        this.setEndRecTime(endTime);
    }
}