package com.hdkj.fhzg.request;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @Author: hyh
 * @Date: 2025/5/29
 * @Description:
 */
@Data
public class WorkOrderRequest implements Serializable {

    /**
     * 用户ID
     */
    @ApiModelProperty("用户ID（分页）")
    private Long userId;
    /**
     * 当前页
     */
    @ApiModelProperty("当前页（分页）")
    protected Long current;

    /**
     * 分页大小
     */
    @ApiModelProperty("分页大小（分页）")
    protected Long size;

    /**
     * 待办类型
     * 列表筛选
     * 0-验收入库, 1-领料出库
     */
    @ApiModelProperty("业务；类型（分页、详情）")
    private Integer businessType;
    /**
     * 工厂code
     */
    @ApiModelProperty("工厂code（分页）")
    private String factoryCode;
    /**
     * 仓库id
     */
    @ApiModelProperty("仓库code（分页）")
    private String warehouseCode;

    /**
     * 工厂id
     */
    @ApiModelProperty("工厂id（分页）")
    private String factoryId;
    /**
     * 仓库id
     */
    @ApiModelProperty("仓库id（分页）")
    private String warehouseId;
    /**
     * 仓库地点ID或者专业仓ID
     */
    @ApiModelProperty("仓库地点ID列表")
    private List<Long> warehouseIdList;

    @ApiModelProperty("单据状态")
    private String status;
    /**
     * 单据编号
     */
    @ApiModelProperty("单据编号（分页）")
    private String orderNo;
    /**
     * 项目名称
     */
    @ApiModelProperty("项目名称（分页）")
    private String projectName;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间（分页）")
    private String startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间（分页）")
    private String endTime;

    @ApiModelProperty("业务id（详情）")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long businessId;

    @ApiModelProperty("来源,1、app,2、pc")
    private Integer origin;


    /**
     * 工厂code
     */
    @ApiModelProperty("工厂code")
    private List<String> factoryCodeList;
    /**
     * 仓库code
     */
    @ApiModelProperty("仓库code")
    private List<String> warehouseCodeList;

    @ApiModelProperty("物料来源")
    private String materialResource;
}
