package com.ruoyi.web.v3.model.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.ruoyi.web.v3.model.BasePageRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.time.LocalDateTime;


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="HbSlaughterSummaryMonthlyPageReq", description="v3.0 屠宰情况月汇总分页查询报文")
public class HbSlaughterSummaryMonthlyPageReq extends BasePageRequest implements Serializable {

    @ApiModelProperty(value = "数据唯一性标识id")
    private String id;

    @ApiModelProperty(value = "汇总日期（年月日）", required = true)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime summaryDate;

    @ApiModelProperty(value = "进厂数量（头/只/羽）")
    private Integer entranceQuantity = 0;

    @ApiModelProperty(value = "合格数量（头/只/羽）")
    private Integer qualifiedQuantity = 0;

    @ApiModelProperty(value = "急宰数量（头/只/羽）")
    private Integer emergencySlaughterQuantity = 0;

    @ApiModelProperty(value = "检出病害数（头/只/羽）")
    private Integer quarantineQuantity = 0;

    @ApiModelProperty(value = "宰前不合格数（头/只/羽）")
    private Integer unqualifiedQuantity = 0;

    @ApiModelProperty(value = "肉品检验不合格公斤数")
    private Integer meatUnqualifiedKilograms = 0;

    @ApiModelProperty(value = "出场数量（头/只/羽）")
    private Integer releaseQuantity = 0;

    @ApiModelProperty(value = "结转下月数（头/只/羽）")
    private Integer transferNextMonthQuantity = 0;

    @ApiModelProperty(value = "兽医卫生检验负责人")
    private String veterinaryName;

    @ApiModelProperty(value = "畜禽定点屠宰企业负责人")
    private String directorName;

    @ApiModelProperty(value = "填表人")
    private String clerkName;

    @ApiModelProperty(value = "备注信息")
    private String remarks;

}
