package com.cf.imes.module.executor.controller.admin.processStep.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.cf.imes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 生产单工序步骤分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProcessStepPageReqVO extends PageParam {

    @Schema(description = "生产单号")
    private Long orderId;

    @Schema(description = "完成时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] finishTime;

    @Schema(description = "工序状态，0未加工，1已加工", example = "1")
    private Boolean status;

    @Schema(description = "加工类型，0全部加工，1开料，2部件加工，3异形封边，4分堆，5打包，6出库，7组件加工，8板材", example = "1")
    private Integer type;

    @Schema(description = "计件工资")
    private Double pieceRate;

    @Schema(description = "计件工资类型，1数量，2长度，3平方，4宽，5高，6体积，7生产单金额百分比", example = "1")
    private Integer pieceType;

    @Schema(description = "排序优先级")
    private Integer sort;

    @Schema(description = "工序名称", example = "李四")
    private String name;

    @Schema(description = "工序 ID", example = "20663")
    private Long processinfoId;

    @Schema(description = "生产单工序 ID", example = "9384")
    private Long orderProcessId;

    @Schema(description = "计划日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] scheduleDate;

    @Schema(description = "工序处理时长")
    private Double duration;

    @Schema(description = "工序负责人")
    private String manager;

    @Schema(description = "工序处理日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] processDate;

    @Schema(description = "创建日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}