package com.rongwei.bsentity.vo;

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.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * APS全局配置类
 */
@Data
public class ApsOverallConfig implements Serializable {

    // 排程计划指定开始时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime startTime;

    // 排程计划指定开始时间戳
    private Long startTimeLong;

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

    /**
     * 相近合金
     */
    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;
    /**
     * 中退组炉宽差,默认：250mm
     */
    private Integer middifference;
    /**
     * 成退组炉宽差,默认：200mm
     */
    private Integer furnacedifference;

}
