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

import com.cf.imes.module.executor.controller.admin.plan.dto.Material;
import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

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

/**
 * @author Beal
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class OptimizeParamRespVO {
    @Schema(description = "排单id")
    private Long planId;
    @Schema(description = "排单号")
    private String planNo;
    @Schema(description = "排序优先级")
    private Integer sort;
    @Schema(description = "排单类型：1 混单排单，2 生产单排单")
    private Integer type;
    @Schema(description = "排单状态 0 新单，1 板材已申请，2 开料中，3 已开料")
    private Integer status;
    @Schema(description = "机台 ID")
    private Long machineId;
    @Schema(description = "计划时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date planTime;
    @Schema(description = "生产单号")
    private String orderNos;
    @Schema(description = "排单优化文件地址")
    private String placeDateFileUrl;
    @Schema(description = "排单优化文件地址")
    private String placeOrderFileUrl;
    @Schema(description = "备注")
    private String remark;
    @Schema(description = "生产操作人")
    private String operator;
    @Schema(description = "生产时间")
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private Date produceTime;
    @Schema(description = "生产单列表")
    private List<OrderResp> orderList;
    @Schema(description = "大板使用信息列表")
    private List<Material> materialList;
    /*@Schema(description = "商品列表")
    private List<GoodsRespVO> goodsList;*/
    @Schema(description = "小板列表")
    private List<PlateRespVO> plateList;
    @Schema(description = "区域删除")
    private Boolean areaDeleted;
    @Schema(description = "源id")
    private Long sourceNo;
}
