package com.rongwei.bsentity.vo;


import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.rongwei.bsentity.domain.ApsAnnealingDifferenceDo;
import com.rongwei.bsentity.domain.ApsFurnaceInstallationDo;
import com.rongwei.bsentity.domain.ApsMergeFurnaceDo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
public class ProductionScheduleVo {

    /**
     * 排程标识ID
     */
    private String productionScheduleId;

    /**
     * APS 排程计划开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date apsPlanStartDate;

    /**
     * 指定运行秒数
     */
    private Integer planSeconds;

    /**
     * 生产工序集合
     */
    private List<ProductionProcesses> processes;

    /**
     * 生产设备集合
     */
    private List<Equipment> equipmentList;

    /**
     * 工序之间流转时间设置(暂时不考虑跨工厂)
     * 车间内流转时间：WORKSHOP_IN
     * 跨车间流转时间：WORKSHOP_CROSS
     */
    private Map<String,Integer> roamTime;

    private Integer environmentMode;

    private Map<String,List<String>> blankProcessIds;

    /**
     * 洗炉合金
     */
    private List<WashingMetal> closealloynames;

    /**
     * 小卷成退合并装炉分组规则
     */
    private List<ApsFurnaceInstallationDo> furnaceInstallations;

    /**
     * 小卷成退合并装炉兼容规则
     */
    private List<ApsMergeFurnaceDo> mergeFurnaces;

    /**
     * 退火合炉厚差配置表
     */
    private List<ApsAnnealingDifferenceDo> apsAnnealingDifferences;

    /**
     * 洗炉时间（小时）
     */
    private Integer washingtime;
    /**
     * 立板时间（小时）
     */
    private Integer standingtime;
    /**
     * 周期立板产量（吨）
     */
    private Integer standingyield;
    /**
     * 松散度
     */
    private BigDecimal looseness;

    /**
     * 排程速度
     */
    private Integer pcspeed;

    /**
     * 除铸轧外期望交货天数
     */
    private Integer expecteddays;
    /**
     * 中退组炉宽差,默认：250mm
     */
    private Integer middifference;
    /**
     * 成退组炉宽差,默认：200mm
     */
    private Integer furnacedifference;

}
