package com.xisc.pm.infra.constant;

/**
 * Utils
 */
public class Constants {

    private Constants() {
    }

    public static class LovCode {
        // 复合板组板出切最大长度
        public static final String PM_CUT_LENGTH = "PM.CUT_LENGTH";
        // 复合板切头长度
        public static final String PM_COMPOSITE_CUT_HEAD = "PM.COMPOSITE_CUT_HEAD";

        // 是否（01）
        public static final String XISC_WHETHER_FLAG_01 = "XISC.WHETHER_FLAG_01";

        // 连铸机类型
        public static final String BT_CC_TYPE = "PM.BT_CC_TYPE";

        // 厚板品种代码
        public static final String TM_PROD_CODE_HP = "XISC.TM_PROD_CODE_HP";

        // 切边标记
        public static final String WITH_SIDE_FLAG  = "PM.WITH_SIDE_FLAG";

        // 轧制产线号
        public static final String ROLL_LINE_NO = "QD.TM_ROLL_PL";

        // 设计产线号
        public static final String MSC_LINE_NO = "PM.MSC_LINE_NO";

        // 轧制模式
        public static final String BT_ROLL_MODE = "PM.BT_ROLL_MODE";

        // 轧制方向代码
        public static final String BT_ROLL_DIRECT_CODE = "PM.BT_ROLL_DIRECT_CODE";

        // 组板方式
        public static final String FORM_PLATE_MODE = "PM.FORM_PLATE_MODE";

        // 组板类型
        public static final String RECORD_EVENT_CODE = "PM.RECORD_EVENT_CODE";

        // 自动人工标记
        public static final String AUTO_MANUAL_FLAG = "PM.AUTO_MANUAL_FLAG";

        // 基表用组板方式首位值集
        public static final String FORM_PLATE_MODE_FIRST = "PM.FORM_PLATE_MODE_FIRST";

        // AD模式
        public static final String BT_AD_TYPE_MODE = "PM.BT_AD_TYPE_MODE";

        // 热处理类型
        public static final String BT_HEAT_TREAT_MODE = "PM.BT_WHOLE_HEAT_TREATMENT_TYPE";

        // 坯料类型
        public static final String CC_TYPE = "PM.CC_TYPE";

        // 合同状态
        public static final String ORDER_STATUS = "CT.ORDER_STATUS";

        // 热处理模式
        public static final String HOT_TREAT_METHOD_CODE = "PM.HOT_TREAT_METHOD_CODE";

        // 合同分组
        public static final String  ORDER_GROUP = "PM.ORDER_GROUP";

        // 锭坯型
        public static final String INGOT_TYPE = "PM.INGOT_TYPE";

        // 复合坯值集
        public static final String COMP_SLAB_MSC_LINE_CODE_FLAG = "PM.COMP_SLAB_MSC_LINE_CODE_FLAG";

        // 公差类型代码
        public static final String TM_CROSS_CODE = "QD.TM_CROSS_CODE";

        // 复合坯对应合同类型
        public static final String COMPOSITE_CONTRACT_INQUIRY001 = "PM.COMPOSITE_CONTRACT_INQUIRY001";

        public static final String COMPOSITE_CONTRACT_INQUIRY002 = "PM.COMPOSITE_CONTRACT_INQUIRY002";

        public static final String COMPOSITE_CONTRACT_INQUIRY003 = "PM.COMPOSITE_CONTRACT_INQUIRY003";

        public static final String COMPOSITE_LENGTH_WIDTH_CONSISTENT = "PM.COMPOSITE_LENGTH_WIDTH_CONSISTENT";

        public static final String MERGE_VIRTUALSLABNO_CHARACTER = "PM.MERGE_VIRTUALSLABNO_CHARACTER";
        
    }
    
    public static final String SYSTEM_PD_CODE = "PMOU";
    public static final String SYSTEM_CODE = "PM";

    /**
     * 见证点
     */
    public static final String WITNESS_POINT = "2";
    
    public static class PdProgram {
        
        private PdProgram(){
        }
        /**
         * 系统组板程序
         */
        public static final String SYSTEM_PD_PROGRAM = "SYSTEM";
        
        public static final String SLAB_INFO_PD_PROGRAM = "余材板坯新增分割";
        public static final String SLAB_DELETED_PD_PROGRAM = "余材板坯删除分割";
        public static final String SLAB_PD_PROGRAM = "余材板坯组板";
        public static final String PLATE_INFO_PD_PROGRAM = "余材钢板组板";
        public static final String PLATE_DELETE_PD_PROGRAM = "余材钢板组板删除";
        public static final String CC_SLAB_FINSHED_PD_PROGRAM = "连铸出钢材组板";
        public static final String CC_SLAB_COPY_PD_PROGRAM = "连铸出钢材复制";
        public static final String FHB_PD_PROGRAM = "复合板组板";
        public static final String FHB_PD_DELETED_PROGRAM = "单层组板解散";
        public static final String CC_SLAB_DETAIL_DELETE_PROGRAM = "出钢材组板解散";
        
        public static final String MID_SLAB_PROGRAM = "二次开坯";
        public static final String IG_SLAB_PROGRAM = "钢锭组板";
        public static final String MID_DELETE_SLAB_PROGRAM = "删除分割";

        public static final String ORDER_POOL_ADD_PROGRAM = "收池函数";
        public static final String ORDER_POOL_DEL_PROGRAM = "退池函数";
        public static final String ORDER_POOL_UNLOCK_PROGRAM = "组板释放函数";

        public static final String ORDER_HANG_PROGRAM = "余材板坯充当_挂合同";

        public static final String ORDER_BREAK_PROGRAM = "余材板坯充当_脱合同";

        public static final String STEEL_HANG_PROGRAM = "余材钢板充当_挂合同";

        public static final String STEEL_BREAK_PROGRAM = "余材钢板充当_脱合同";

        public static final String COMPOSTITE_DELETE_EVENT = "复合坯脱合同删除事件";

        public static final String CC_SLAB_DELETE_EVENT = "出钢材脱合同删除事件";

        public static final String PLATE_DELETE_EVENT = "余材钢板脱合同删除事件";

        public static final String SLAB_DELETE_EVENT = "余材板坯脱合同删除事件";

        public static final String PD_SLAB_DETAIL_DELETE_PROGRAM = "余坯组板解散";
        
    }

    /**
     * 编码规则
     */
    public static class CodeRule {

        public static final String GLOBAL_LEVEL_VALUE = "GLOBAL";
        public static final String TYPE_2_LEVEL_CODE = "TYPE_2";
        public static final String TYPE_4_LEVEL_CODE = "TYPE_4";
        public static final String TYPE_5_LEVEL_CODE = "TYPE_5";
        public static final String TYPE_20_LEVEL_CODE = "TYPE_20";
        public static final String TYPE_30_LEVEL_CODE = "TYPE_30";
        /**
         * 复合/叠轧坯号
         */
        public static final String COMPOSITE_SLAB_NO = "PM.COMPOSITE_SLAB_NO";
        // 虚拟板坯号
        public static final String VIRTUAL_SLAB_NO = "PM.VIRTUAL_SLAB_NO";
        // 分割坯-虚拟板坯号
        public static final String SPLIT_VIRTUAL_SLAB_NO = "PM.SPLIT_VIRTUAL_SLAB_NO";
        // 预CASTLOT号
        public static final String PREC_CAST_LOT_NO = "PM.SET.PREC_CAST_LOT_NO";
        // 预制造命令号
        public static final String PREC_PONO = "PM.SET_PREC_PONO";
        // CASTLOT号
        public static final String CAST_LOT_NO = "PM.SET_CAST_LOT_NO";
        // 制造命令号
        public static final String PONO = "PM.SET_PONO";
        // 外供板坯虚拟板坯号
        public static final String WG_VIRTUAL_SLAB_NO = "PM.SET_WG_VIRTUAL_SLAB_NO";
        // 无委板坯虚拟板坯号
        public static final String W_VIRTUAL_SLAB_NO = "PM.SET_W_VIRTUAL_SLAB_NO";
        
        // 二次开坯坯-虚拟板坯号
        public static final String MID_VIRTUAL_SLAB_NO = "PM.MID_VIRTUAL_SLAB_NO";
        // 二次开坯坯-分割-虚拟板坯号
        public static final String MID_SPLIT_VIRTUAL_SLAB_NO = "PM.MID_SPLIT_VIRTUAL_SLAB_NO";
        // 生产-策略编码
        public static final String POLICY_CODE = "PM.POLICY_CODE";
        // 生产-策略组编码
        public static final String POLICY_GROUP_NO = "PM.POLICY_GROUP_NO";

        // 复合坯试样号
        public static final String SAMPLE_LOT_NO = "PM.SAMPLE_LOT_NO";

        // 钢锭虚拟板坯号
        public static final String IG_VIRTUAL_SLAB_NO = "PM.IG_VIRTUAL_SLAB_NO";
        
        public static final String AUTO_VIRTUAL_SLAB_NO = "PM.AUTO_VIRTUAL_SLAB_NO";

        public static final String PM_PD_PLATE_TMP_SLAB_NO = "PM.PM_PD_PLATE_TMP_SLAB_NO";

        private CodeRule() {
        }
    }


    public static class AutoManualFlag {

        public static final String AUTO_MANUA_FLAG_M = "M";
        public static final String AUTO_MANUA_FLAG_C = "C";

        private AutoManualFlag() {
        }
    }

    /**
     * Xbus接口请求编码
     */
    public static final class XbusCode {
        /**
         * 请求系统编码
         */
        public static final String SOURCE_APP_CODE_VALUE = "OM";
        /**
         * 请求的时间格式
         */
        public static final String MSG_SEND_TIME_FORMAT = "yyyyMMddHHmmssSSS";
        /**
         * 请求参数
         */
        public static final String MSG_SEND_TIME = "msgSendTime";
        public static final String PASSWORD = "password";
        public static final String SOURCE_APP_CODE = "sourceAppCode";
        public static final String SERVICE_ID = "serviceId";
        public static final String CONTENT_LENGTH = "Content-length";
        public static final String CONTENT_TYPE = "Content-type";
        /**
         * 请求类型格式
         */
        public static final String APPLICATION_JSON_UTF8 = "application/json;charset=UTF-8";
    }

    /**
     * 状态代码
     */
    public static class StatusCode {

        public static final String STATUS_CODE_29 = "29";
        public static final String STATUS_CODE_38 = "38";
        public static final String STATUS_CODE_40 = "40";
        public static final String STATUS_CODE_50 = "50";
        public static final String STATUS_CODE_54 = "54";
        public static final String STATUS_CODE_56 = "56";
        public static final String STATUS_CODE_52 = "52";
        public static final String STATUS_CODE_58 = "58";
        public static final String STATUS_CODE_66 = "66";
        public static final String STATUS_CODE_67 = "67";

        private StatusCode() {
        }
    }


    /**
     * 厚组板状态
     */
    public static class PdStatusHp {

        public static final String PD_STATUS_HP_00 = "00";
        public static final String PD_STATUS_HP_11 = "11";
        public static final String PD_STATUS_HP_12 = "12";
        public static final String PD_STATUS_HP_15 = "15";
        public static final String PD_STATUS_HP_16 = "16";
        public static final String PD_STATUS_HP_17 = "17";
        public static final String PD_STATUS_HP_18 = "18";
        public static final String PD_STATUS_HP_20 = "20";
        public static final String PD_STATUS_HP_23 = "23";
        public static final String PD_STATUS_HP_25 = "25";
        public static final String PD_STATUS_HP_26 = "26";
        public static final String PD_STATUS_HP_27 = "27";
        public static final String PD_STATUS_HP_24 = "24";
        public static final String PD_STATUS_HP_31 = "31";
        public static final String PD_STATUS_HP_32 = "32";
        public static final String PD_STATUS_HP_52 = "52";
        public static final String PD_STATUS_HP_54 = "54";
        public static final String PD_STATUS_HP_56 = "56";
        public static final String PD_STATUS_HP_58 = "58";

        private PdStatusHp() {
        }
    }

    /**
     * 生效/失效
     */
    public static class ValidFlag {

        public static final String ONE = "1";
        public static final String ZERO = "0";

        private ValidFlag() {
        }
    }

    /**
     * 全程工序代码
     */
    public static class WholeBacklogCode {

        public static final String CODE_13 = "13";
        public static final String CODE_14 = "14";
        public static final String CODE_P1 = "P1";


        private WholeBacklogCode() {
        }
    }

    /**
     * 编制状态
     */
    public static class EstaStatus {

        public static final String STATUS_0 = "0";
        public static final String STATUS_1 = "1";

        private EstaStatus() {
        }
    }

    /**
     * 全程工序途径码
     */
    public static class WholeBacklog {

        public static final String CODE_14 = "14";

        private WholeBacklog() {
        }
    }

    /**
     * 铸坯类型
     */
    public static class CcType {

        // 板坯连铸
        public static final String TYPE_1 = "1";
        // 板坯连铸（备坯）
        public static final String TYPE_2 = "2";
        // 方坯
        public static final String TYPE_3 = "3";
        // 外卖坯连铸
        public static final String TYPE_4 = "4";
        // 钢锭连铸
        public static final String TYPE_5 = "5";

        private CcType() {
        }
    }

    /**
     * 组炉规则
     */
    public static class RuleCode {

        public static final String CODE_1 = "1";
        public static final String CODE_2 = "2";
        public static final String CODE_3 = "3";
        public static final String CODE_4 = "4";

        private RuleCode() {
        }
    }
    
    /**
     * 主工序代码
     */
    public static class RollDirectCode {

        public static final String C = "C";

        public static final String L = "L";

        private RollDirectCode() {
        }
    }

    /**
     * 主工序代码
     */
    public static class MainBacklogCode {

        public static final String CODE_A = "A";

        public static final String CODE_C = "C";

        private MainBacklogCode() {
        }
    }

    /**
     * 钢坯类型
     */
    public static class BilletType {

        public static final String TYPE_1 = "1";

        public static final String TYPE_5 = "5";

        private BilletType() {
        }
    }

    /**
     * 事件编码
     */
    public static class EventCode {

        public static final String PM_MATERIAL_HANGING_CONTRACT = "PM_MATERIAL_HANGING_CONTRACT";

        public static final String MM_RESIDUE_IN_PROCESS_MATERIAL_BOARD_HANG_CONTRACT = "MM_RESIDUE_IN_PROCESS_MATERIAL_BOARD_HANG_CONTRACT";

        /**
         * 在制品余材释放
         */
        public static final String MM_IN_PROCESS_SUR_MATERIAL_RELEASE = "MM_IN_PROCESS_SUR_MATERIAL_RELEASE";

        public static final String MM_END_PROCESS_MATERIAL_HANG_CONTRACT = "MM_END_PROCESS_MATERIAL_HANG_CONTRACT";

        /**
         * 在制品材料管理封锁事件接口
         */
        public static final String MM_PM_PROD_MANAGEMENT_BLOCKED_IN_PROCESS_MATERIAL = "MM_PM_PROD_MANAGEMENT_BLOCKED_IN_PROCESS_MATERIAL";

        public static final String MM_IN_PROCESS_MATERIAL_RELEASE = "MM_IN_PROCESS_MATERIAL_RELEASE";

        public static final String QE_MATERIAL_BREACH_OF_CONTRACT = "QE_MATERIAL_BREACH_OF_CONTRACT";

        public static final String MM_END_PROCESS_MATERIAL_DISENGAGE_CONTRACT = "MM_END_PROCESS_MATERIAL_DISENGAGE_CONTRACT";

        // 修改基材材料状态 33->37
        public static final String PM_MODIF_BASE_MAT_STATUS_LOCK = "PM_MODIF_BASE_MAT_STATUS_LOCK";

        // 修改基材材料状态 37->33
        public static final String PM_MODIF_BASE_MAT_STATUS_RELEASE = "PM_MODIF_BASE_MAT_STATUS_RELEASE";

        // 余材\余坯组板已封锁材料挂合同事件
        public static final String  MM_RESIDUE_IN_PROCESS_BLOCKED_MATERIAL_BOARD_HANG_CONTRACT = "MM_RESIDUE_IN_PROCESS_BLOCKED_MATERIAL_BOARD_HANG_CONTRACT";

        public static final String MM_PROD_MANAGEMENT_BLOCKED_END_PROCESS_MATERIAL = "MM_PROD_MANAGEMENT_BLOCKED_END_PROCESS_MATERIAL";

        public static final String PM_HANG_ORDER_PROCESS_MATERIAL = "PM_HANG_ORDER_PROCESS_MATERIAL";

        // 取消超投
        public static final String PM_CONTRACT_BOARD_OVER_CANCEL = "PM_CONTRACT_BOARD_OVER_CANCEL";

        // 超投
        public static final String PM_CONTRACT_BOARD_OVER = "PM_CONTRACT_BOARD_OVER";
        private EventCode() {
        }
    }



    public static class PonoStatus {

        public static final String STATUS_11 = "11";

        public static final String STATUS_13 = "13";

        public static final String STATUS_14 = "14";

        public static final String STATUS_15 = "15";

        public static final String STATUS_18 = "18";

        public static final String STATUS_91 = "91";

        private PonoStatus() {
        }
    }

    /**
     * 连铸预定计划状态
     */
    public static class CsPrecPlanStatus {
        public static final String STATUS_01 = "01";
        public static final String STATUS_02 = "02";
        public static final String STATUS_03 = "03";
        public static final String STATUS_08 = "08";
        public static final String STATUS_09 = "09";
        public static final String STATUS_10 = "10";

        private CsPrecPlanStatus() {
        }
    }

    public static class RestrandFlg {

        public static final String FLAG_W = "W";

        public static final String FLAG_T = "T";

        private RestrandFlg() {
        }
    }

    /**
     * 合同性质
     */
    public static class OrderTypeCode {

        // 外卖坯合同
        public static final String QBP = "QBP";

        // 生产转备用合同
        public static final String YZA = "YZA";

        // 复合基材
        public static final String ZFH = "ZFH";

        private OrderTypeCode() {
        }
    }

    /**
     * 接口状态
     *
     * @author 汉得-杨杰
     *
     */
    public static class ItfStatus {

        private ItfStatus() {
        }
        /** 待处理 */
        public static final String N = "N";

        /** 处理中 */
        public static final String P = "P";

        /** 处理失败*/
        public static final String E = "E";

        /** 处理成功 */
        public static final String S = "S";
    }

    /**
     * 接口消息
     *
     * @author 汉得-杨杰
     *
     */
    public static class ItfMessage {

        private ItfMessage() {
        }
        public static final String REPEAT = "该数据重复";

        public static final String EXIST = "该数据已存在";
    }

    public static class PpFlag {
        private PpFlag() {
        }
        public static final String HP = "HP";

        public static final String SM = "SM";

    }

    public static class ErpCreator {
        private ErpCreator() {
        }
        public static final String PMCDHP = "PMCDHP";

        public static final String PMCDSM = "PMCDSM";

    }

    public static class ProdcCd {
        private ProdcCd() {
        }
        public static final String CD_14A = "14A";

          public static final String CD_P1A = "P1A";
          
          public static final String CD_13B = "13B";


    }


    public static class PdOver {

        private PdOver(){
        }
        public static final String CC_SLAB_FINSHED_PD_OVER = "组板超投";
    }

     public static class HoldCauseCode {

        private HoldCauseCode(){
        }
        public static final String PM01 = "PM01";
    }

    public static class MergeStatus {

        private MergeStatus(){
        }

        // 未合并
        public static final String MERGE_N = "N";
        // 合并后-第三条
        public static final String MERGE_A = "A";
        // 合并前-那两条
        public static final String MERGE_B = "B";
    }

    public static class CmdRecordOperation {

        private CmdRecordOperation(){
        }
        public static final String SAMPLE_ADDITION = "试样添加";
        public static final String SAMPLE_ADDITION_ROLLBACK = "试样添加回退";
        public static final String SECONDARY_DESIGN = "二次设计";
        public static final String SECONDARY_DESIGN_ROLLBACK = "二次设计回退";
        public static final String COMMAND_CREATE = "命令做成";
    }

    /**
     * 转换类型
     *
     * @author 汉得-杨杰
     * @date 2024/12/14
     */
    public static class ConversionType {
        private ConversionType(){
        }
        /** 重量 */
        public static final String WEIGHT = "WEIGHT";
        /** 厚度 */
        public static final String THICKNESS = "THICKNESS";
        /** 宽度 */
        public static final String WIDTH = "WIDTH";
        /** 长度 */
        public static final String LENGTH = "LENGTH";
    }

}
