package com.huaheng.common.constant;

/**
 * 数字自定义常量
 *
 * @author ricard
 */
public class QuantityConstant {
    /**
     * 1、入库单状态
     * 2、出库单状态
     * 3、单据上传状态
     * 4、入库组盘状态
     * 5、出库组盘状态
     * 6、任务类型
     * 7、任务状态
     * 8、波次状态
     * 9、质检状态
     * 10、盘点状态
     * 11、INVENTORY_TRANSACTION_RECEIPT
     * 12、调整单状态
     * 13、任务内部类型
     * 14、质检单类型
     * 15、AGV任务状态
     * 16、外部接口地址
     * 17、mes任务类型
     * 18、mes区分账套
     */

    //1、入库单状态

    //新建
    public static final Integer RECEIPT_HEADER_BUILD = 0;

    //等待审核
    public static final Integer RECEIPT_HEADER_VERIFYING = 5;

    //驳回
    public static final Integer RECEIPT_HEADER_REJECTED = 10;

    //作废
    public static final Integer RECEIPT_HEADER_OBSOLETE = 20;

    /**通过*/
//    public static final Integer RECEIPT_HEADER_APPROVE = 50;

    /**
     * 订单池
     */
    public static final Integer RECEIPT_HEADER_POOL = 100;

    //入库预约
    public static final Integer RECEIPT_HEADER_RESERVATION = 120;

    //入库到货
    public static final Integer RECEIPT_HEADER_ARRIVAL = 150;

    //入库质检
    public static final Integer RECEIPT_HEADER_CHECK = 180;

    //收货
    public static final Integer RECEIPT_HEADER_RECEIVING = 200;

    //定位
    public static final Integer RECEIPT_HEADER_POSITION = 240;

    //等待上架
    public static final Integer RECEIPT_HEADER_WAIT = 280;

    /**
     * 上架
     */
    public static final Integer RECEIPT_HEADER_SHELF = 300;

    /**
     * 过账
     */
    public static final Integer RECEIPT_HEADER_POSTING = 800;

    /**
     * 回传
     */
    public static final Integer RECEIPT_HEADER_RETURN = 900;


    //2、出库单状态

    //新建
    public static final Integer SHIPMENT_HEADER_BUILD = 0;

    //订单池
    public static final Integer SHIPMENT_HEADER_POOL = 100;

    //出库预约
    public static final Integer SHIPMENT_HEADER_RESERVATION = 120;

    //订单分析
    public static final Integer SHIPMENT_HEADER_ANALYSIS = 150;

    //波次
    public static final Integer SHIPMENT_HEADER_WAVE = 200;

    //出库组盘
    public static final Integer SHIPMENT_HEADER_GROUPDISK = 300;

    //拣货完成
    public static final Integer SHIPMENT_HEADER_COMPLETED = 500;

    //发运
    public static final Integer SHIPMENT_HEADER_SHIPPING = 800;

    //回传
    public static final Integer SHIPMENT_HEADER_RETURN = 900;


    //3、单据上传状态

    //未上传
    public static final Integer UPLOAD_NOT = 0;

    //上传失败
    public static final Integer UPLOAD_FAILED = 10;

    //上架完成
    public static final Integer UPLOAD_SUCCESS = 20;


    //4、入库组盘状态

    //新建
    public static final Integer RECEIPT_CONTAINER_BUILD = 0;

    /**
     * 生成任务
     */
    public static final Integer RECEIPT_CONTAINER_TASK = 10;

    /**
     * 上架完成
     */
    public static final Integer RECEIPT_CONTAINER_FINISHED = 20;

    /**
     * 复核完成
     */
    public static final Integer RECEIPT_CONTAINER_REVIEWSUCCESS = 30;


    //5、出库组盘状态

    /**
     * 新建
     */
    public static final Integer SHIPMENT_CONTAINER_BUILD = 0;

    /**
     * 生成任务
     */
    public static final Integer SHIPMENT_CONTAINER_TASK = 10;

    /**
     * 拣货完成
     */
    public static final Integer SHIPMENT_CONTAINER_FINISHED = 20;

    /**
     * 复核完成
     */
    public static final Integer SHIPMENT_CONTAINER_REVIEWSUCCESS = 30;


    //6、任务类型

    /**
     * 整盘入库
     */
    public static final int TASK_TYPE_WHOLERECEIPT = 100;

    /**
     * 补充入库
     */
    public static final int TASK_TYPE_SUPPLEMENTRECEIPT = 200;

    /**
     * 整盘出库
     */
    public static final int TASK_TYPE_WHOLESHIPMENT = 300;

    /**
     * 分拣出库
     */
    public static final int TASK_TYPE_SORTINGSHIPMENT = 400;

    /**
     * 空容器入库
     */
    public static final int TASK_TYPE_EMPTYRECEIPT = 500;

    /**
     * 空容器出库
     */
    public static final int TASK_TYPE_EMPTYSHIPMENT = 600;

    /**
     * 盘点
     */
    public static final int TASK_TYPE_CYCLECOUNT = 700;

    /**
     * 移库
     */
    public static final int TASK_TYPE_TRANSFER = 800;

    /**
     * 出库查看
     */
    public static final int TASK_TYPE_VIEW = 900;

    /**
     * 过站
     */
    public static final int TASK_TYPE_OVER_STATION = 1000;

    /**
     * 空托盘组入库
     */
    public static final int TASK_TYPE_MANY_EMPTYRECEIPT = 1100;

    /**
     * 空托盘组出库
     */
    public static final int TASK_TYPE_MANY_EMPTYSHIPMENT = 1200;


    //7、任务状态

    /**
     * 生成任务
     */
    public static final int TASK_STATUS_BUILD = 1;

    /**
     * 下达任务
     */
    public static final int TASK_STATUS_RELEASE = 10;

    /**
     * 开始执行
     */
    public static final int TASK_STATUS_RUNNING = 20;

    /**
     * 到达拣选站台
     */
    public static final int TASK_STATUS_ARRIVED_STATION = 50;


    /**
     * 任务完成
     */
    public static final int TASK_STATUS_COMPLETED = 100;

    /**
     * 单据已删除
     */
    public static final int TASK_STATUS_REMOVE = 170;


    //8、波次状态

    //未执行
    public static final Integer WAVE_STATUS_BUILD = 10;

    //执行中
    public static final Integer WAVE_STATUS_START = 20;

    //结束
    public static final Integer WAVE_STATUS_END = 30;

    //执行失败
    public static final Integer WAVE_STATUS_ERROR = 40;


    //波次新建
    public static final Integer WAVE_STEP_BUILD = 0;

    //剔除订单
    public static final Integer WAVE_STEP_CULL = 5;

    //波次执行
    public static final Integer WAVE_STEP_START = 10;

    //波次释放
    public static final Integer WAVE_STEP_FREED = 130;

    //波次完成
    public static final Integer WAVE_STEP_END = 100;

    //波次失败
    public static final Integer WAVE_STEP_ERROR = 120;


    //9、质检状态

    //新建
    public static final Integer CHECK_STATUS_BUILD = 0;

    //质检中
    public static final Integer CHECK_STATUS_IN = 10;

    //质检完成
    public static final Integer CHECK_STATUS_COMPLETED = 20;


    //10、盘点状态

    //新建
    public static final Integer CYCLECOUNT_STATUS_BUILD = 1;

    //盘点任务生成
    public static final Integer CYCLECOUNT_STATUS_BUILDTASK = 5;

    //执行中
    public static final Integer CYCLECOUNT_STATUS_EXECUTING = 10;

    //已登记
    public static final Integer CYCLECOUNT_STATUS_REGISTERED = 15;

    //审核
    public static final Integer CYCLECOUNT_STATUS_REVIEW = 30;

    //关闭
    public static final Integer CYCLECOUNT_STATUS_CLOSE = 99;

    //盘点完成
    public static final Integer CYCLECOUNT_STATUS_COMPLETED = 100;

    //盘点有差异
    public static final Integer CYCLECOUNT_STATUS_DIFFERENCE = 105;

    //已生成调整单
    public static final Integer CYCLECOUNT_STATUS_GENERATEADJUST = 110;


    //11、库存交易类型

    /**
     * 入库
     */
    public static final Integer INVENTORY_TRANSACTION_RECEIPT = 10;

    /**
     * 出库
     */
    public static final Integer INVENTORY_TRANSACTION_SHIPMENT = 20;

    /**
     * 调整入
     */
    public static final Integer INVENTORY_TRANSACTION_ADJUSTINTO = 30;

    /**
     * 调整出
     */
    public static final Integer INVENTORY_TRANSACTION_ADJUSTOUT = 40;

    /**
     * 调整属性
     */
    public static final Integer INVENTORY_TRANSACTION_ADJUSTPROPERTIES = 50;

    /**
     * 盘点
     */
    public static final Integer INVENTORY_TRANSACTION_CYCLECOUNT = 60;

    /**
     * 移库入
     */
    public static final Integer INVENTORY_TRANSACTION_TRANSFERINTO = 70;

    /**
     * 移库出
     */
    public static final Integer INVENTORY_TRANSACTION_TRANSFEROUT = 80;


    /**
     * clearReceipt
     */
    public static final Integer INVENTORY_TRANSACTION_CLEAR_RECEIPT = 200;
    /**
     * clearShipment
     */
    public static final Integer INVENTORY_TRANSACTION_CLEAR_SHIPMENT = 210;


    //12、调整单状态

    //未批准
    public static final Integer ADJUST_STATUS_NOAPPROVED = 0;

    //已批准
    public static final Integer ADJUST_STATUS_APPROVED = 1;

    //待调整
    public static final Integer ADJUST_STATUS_WAIT = 2;

    //已调整
    public static final Integer ADJUST_STATUS_STOP = 3;


    //13、任务内部类型

    /**
     * 上架任务
     */
    public static final Integer TASK_INTENERTYPE_RECEIPT = 100;

    /**
     * 拣货任务
     */
    public static final Integer TASK_INTENERTYPE_SHIPMENT = 200;

    /**
     * 工作任务
     */
    public static final Integer TASK_INTENERTYPE_WORK = 300;

    //盘点任务
    public static final Integer TASK_INTENERTYPE_CYCLECOUNT = 400;


    //13、质检单类型

    //入库质检
    public static final Integer CHECK_TYPE_RECEIPT = 100;

    //在库全检
    public static final Integer CHECK_TYPE_FULL = 200;

    //在库抽检
    public static final Integer CHECK_TYPE_SELECT = 300;

    //空货架
    public static final Integer POINTS_EMPTY = 0;

    //非空货架
    public static final Integer POINTS_SOME = 1;
    //1,4行
    public static final int ROW_OUT = 1;
    //2,3行
    public static final int ROW_IN = 0;

    //WCS任务下发
    public static final String ADDRESS_WCS_TASK_ASSIGN = "wcs";
    //WCS任务取消
    public static final String ADDRESS_WCS_TASK_CANCEL = "WCS_TASK_CANCEL";
    //WCS任务信息查询
    public static final String ADDRESS_WCS_TASK_INFO = "WCS_TASK_INFO";
    //WCS设置任务优先级
    public static final String ADDRESS_WCS_TASK_PRIORITY_CHANGE = "WCS_TASK_PRIORITY_CHANGE";
    //WCS站台信息查询
    public static final String ADDRESS_WCS_STATION_INFOS = "WCS_STATION_INFOS";

    public static final String ADDRESS_WCS_TASK_STATIONINFOS_ = "WCS_TASK_STATIONINFOS";

    public static final String ADDRESS_WCS_TASK_GETLOCATIONS = "WCS_TASK_GETLOCATIONS";

    public static final String ADDRESS_WCS_TASK_GETAVAILABLE_ROWDWAY = "WCS_TASK_GETAVAILABLE_ROWDWAY";

    public static final String ADDRESS_WCS_TASK_GETSTATIONCONTAINER = "WCS_TASK_GETSTATIONCONTAINER";
    //WCS获取可用巷道
    public static final String ADDRESS_WCS_AVAILABLE_ROADWAY = "WCS_AVAILABLE_ROADWAY";
    //拆盘机地址
    public static final String ADDRESS_WCS_MANY_EMPTY_CONTAINER = "WCS_MANY_EMPTY_CONTAINER";
    //mms
    public static final String ADDRESS_MMS = "mms";

    //ERP
    public static final String PLATFORM_ERP = "ERP";
    public static final String PLATFORM_WMS = "WMS";
    public static final String PLATFORM_SRM = "SRM";
    public static final String PLATFORM_MES = "MES";
    public static final String PLATFORM_MES_PASSWORD = "123456";
    //good
    public static final String GOOD = "good";
    public static final String EMPTY_STRING = "";

    //入口
    public static final int STATION_IN = 1;
    //出口
    public static final int STATION_OUT = 2;
    //出入口
    public static final int STATION_PICK = 3;
    //出入口和出口
    public static final int STATION_PICK_AND_OUT = 4;

    public static final String STATUS_CONTAINER_EMPTY = "empty";
    public static final String STATUS_CONTAINER_LOCK = "lock";
    public static final String STATUS_CONTAINER_SOME = "some";
    public static final String STATUS_CONTAINER_FULL = "full";
    public static final String STATUS_CONTAINER_MANY = "many";

    public static final String STATUS_LOCATION_EMPTY = "empty";
    public static final String STATUS_LOCATION_LOCK = "lock";

    public static final String RULE_SHIPMENT_TASK = "shipmentTaskRule";
    public static final String RULE_TASK_LOCATION = "taskLocationRule";
    public static final String RULE_CONNECT_WCS = "connectWcs";
    public static final String RULE_ALLOCATION = "allocationRule";
    public static final String ZONE_MUTLI_ROADWAY = "ZONE_MUTLI_ROADWAY";
    public static final String DOUBLE_FORK_RESERVE_LOCATION = "doubleForkReserveLocation";
    public static final String XZ_LOCATION_ONE_ONOFF = "xz_location_one_onoff";

    public static final int DOUBLE_FORK = 1;
    public static final int SINGLE_FORK = 0;

    public static final int RULE_TASK_SET_LOCATION = 1;
    public static final int RULE_TASK_NOT_LOCATION = 0;

    public static final int RULE_TASK_PICK_SHIPMENT = 1;
    public static final int RULE_TASK_WHOLE_SHIPMENT = 0;

    public static final int RULE_WCS_CONNECT = 1;
    public static final int RULE_WCS_DISCONNECT = 0;

    public static final int NOT_MATERIAL_AREAS = 0;

    public static final int RYTASK_STATUS_RUN = 0;
    public static final int RYTASK_STATUS_STOP = 1;

    public static final int DOUBLE_IN = 1;
    public static final int NORMAL_IN = 0;

    public static final int EMPTY_OUT = 1;
    public static final int NORMAL_OUT = 0;


    public static String ryTask_warehouse_code;

    public static String RECEIPT_TYPE_PPI = "PPI";
    public static String RECEIPT_TYPE_PPII = "PPII";
    public static String U8_RECEIPT_TYPE_PCI = "PCI";
    public static String U8_RECEIPT_TYPE_CI = "CI";
    public static String U8_RECEIPT_TYPE_PI = "PI";
    public static String U8_RECEIPT_TYPE_SRI = "SRI";
    public static String MES_RECEIPT_TYPE_SI = "SI";

    public static String SHIPMENT_TYPE_PO = "PO";
    public static String U8_SHIPMENT_TYPE_OO = "OO";
    public static String U8_SHIPMENT_TYPE_MO = "MO";
    public static String U8_SHIPMENT_TYPE_SO = "SO";
    public static String U8_SHIPMENT_TYPE_PRO = "PRO";

    public static String U8_RECEIPT_BACK = "U8_RECEIPT_BACK";
    public static String U8_SHIPMENT_BACK = "U8_SHIPMENT_BACK";
    public static String MES_RECEIPT_BACK = "MES";

    /**
     * 回传状态
     */
    public static Integer ISRETURN_FAIL = 1;
    public static Integer ISRETURN_SUCC = 2;
    public static Integer NOT_RETURN = 3;

    /**
     * 公司
     */
    public static String COMPANY_CS = "cshuahengweld";
    /**
     * 光腾仓库编码
     */
    public static String COMPANY_GT = "ksguangtengweId";

    /**
     * 光腾U8仓库
     */
    public static String U_WAREHOUSE_CODE_GT = "01";

    public static String WAREHOUSE_CS = "CS0001";
    public static String WAREHOUSE_KS = "KS0001";
    public static String WAREHOUSE_XZ = "XZ0001";


    public static final int ROLE_XC = 13;

    public static final String ZONECODE_LK = "LK";
    public static final String ZONECODE_XC = "XC";

    public static final String STATUS_TASK_SHELF = "100";
    public static final String STATUS_TASK_PICK = "200";
    public static final String STATUS_TASK_ROTATE = "300";

    public static final int RULE_AGV_CONNECT = 1;
    //是否连接AGV
    public static final String RULE_CONNECT_AGV = "RULE_CONNECT_AGV";
    //1是只下发P1001,2是只下发P1009,3是轮流下发
    public static final String RULE_PORT_AGV = "RULE_PORT_AGV";

    //AGV接口地址
    public static final String AGV_CANCEL_TASK = "AGV_CANCEL_TASK";
    public static final String AGV_CREATED_TASK = "AGV_CREATED_TASK";

    //AGV容器类型
    public static final String AGV_CONTAINER_TYPE = "A";

    //库区类型
    public static final String ZONE_CODE_TYPE_LK = "LK";


    // 16 送货单类型

    // 到货单
    public static Integer THE_ARRIVAL = 2;

    // 未到货单
    public static Integer NO_THE_ARRIVAL = 0;

    // 17 长沙立库移库任务二维距离
    public static final String SPACE_3D = "SPACE_3D";


    public static final String CONTAINER_TYPEM = "M";

    public static final String CONTAINER_TYPEC = "C";

    public static final Integer STATUS_TASK_CARRY = 300;
    public static final String STATUS_POSITION_LOCK = "lock";
    public static final String STATUS_POSITION_EMPTY = "empty";
    public static final String ADDRESS_AGV_TASK_ASSIGN = "AGV_TASK_ASSIGN";
    public static final String ADDRESS_AGV_TASK_CANCEL = "AGV_TASK_CANCEL";
    public static final Integer STATUS_TASK_AGV_START = 20;
    public static final Integer STATUS_TASK_AGV_TASKOVER = 50;
    public static final Integer STATUS_TASK_FINISH = 100;

    //14、AGV任务
    /** AGV取放货任务 */
    public static final int AGV_TYPE_TAKE_AND_RELEASE = 100;
    /** AGV行走任务 */
    public static final int AGV_TYPE_MOVE = 200;
    /** AGV取货任务 入库*/
    public static final int AGV_TYPE_TAKE = 300;
    /** AGV放货任务 出库*/
    public static final int AGV_TYPE_RELEASE = 400;
    //15、AGV任务状态
    /** AGV生成任务 */
    public static final int AGV_TASK_STATUS_ERROR= 0;
    /** AGV生成任务 */
    public static final int AGV_TASK_STATUS_BUILD = 1;
    /** AGV下发任务 */
    public static final int AGV_TASK_STATUS_RELEASE = 10;
    /**
     * AGV任务执行
     */
    public static final int AGV_TASK_STATUS_EXECUTE = 20;
    /**
     * AGV任务完成
     */
    public static final int AGV_TASK_STATUS_COMPLETE = 100;

    /** AGV库区 */
    public static final String AGV_ZONE_CS = "V";
    /** 长沙AGV默认站台 */
    public static final String AGV_PORT_CS = "P1001";

    public static final String CONFIG_WEGHT = "AGV_CONTAINER_WEGHT";
    public static final String CONFIG_TOTAL_WEGHT = "AGV_COLUMN_WEIGTH";

    // 16、外部接口地址
    /**
     * 下发AGV任务接口地址
     */
    public static String AGV_TASK_ASSIGN = "AGV_TASK_ASSIGN";

    public static String GET_MESINFO = "GET_MESINFO";

    /**
     * AGV任务取消
     */
    public static String AGV_TASK_CANCEL = "TaskCancel";

    // 17、mes任务类型
    /**
     * 光腾入库单类型
     */
    public static String GT_RECEIPT_TYPE = "GT";

    public static String JJ_RECEIPT_TYPE = "JJ";

    /**
     * 机加出库口
     */
    public static  String JIJIA_PORT = "P2003";
    public static  String JIJIA_PORT_SORTING = "P2001";


    // 18、mes区分账套
    /**
     * 华恒
     */
    public static String HUAHENG = "888";

    /**
     * 光腾
     */
    public static String GUANGTENG = "808";
}