package com.prolog.cs.biz.inbound.constant;

import org.apache.commons.collections4.map.HashedMap;

import java.util.Map;

public class BizConstant {

	public final static String ACCESS_LEAVEL = "9"; // 数据等级默认9

	public final static String STATUS = "1"; // 状态默认1

	public final static Integer PAGE_SIZE = 15; // 默认1

	public final static Integer PAGE_NUM = 1; // 默认1

	public final static String ASN_STATUS = "20";//ASN初始状态默认10
	public final static String ASND_STATUS = "20";//ASN初始状态默认10

	// ========================异常单节点常量===========================
	// 收货异常
	public final static String WMS_EXCEPTION_NODE_RCV = "10";
	// 质检异常
	public final static String WMS_EXCEPTION_NODE_RQC = "20";
	// 复检异常
	public final static String WMS_EXCEPTION_NODE_RERQC = "30";
	// 上架异常
	public final static String WMS_EXCEPTION_NODE_INSTOCK = "40";

	// ========================异常单节点常量===========================

	// =========================收货类型常量=============================
	/**
	 * 收货类型全部 0
	 */
	public final static String ALL_IN = "0";

	/**
	 * 采购入库 1
	 */
	public final static String PURCHASE_IN = "1";
	/**
	 * 销售退回 2
	 */
	public final static String SALE_RETURN_IN = "2";

	/**
	 * 调拨入库 3
	 */
	public final static String ALLOT_IN = "3";// 没有客户,没有供应商,跨配送中心

	/**
	 * 移库入库 4
	 */
	public final static String MOVE_IN = "4"; // 外部仓库 同3
	/**
	 * 调账入库 5
	 */
	public final static String ACCOUNT_REG_IN = "5"; // 空入有实物 ,库内有实物,刷单
	/**
	 * 越库入库 6
	 */
	public final static String OVERSTEP_IN = "6"; // 指定固定的货位,正常采购流程
	/**
	 * 直调入库 7
	 */
	public final static String STRAIGHT_IN = "7"; // 供应商-客户,不走仓库 人工质检,自动上架
	/**
	 * 代管入库 8
	 */
	public final static String HOSTED_IN = "8";
	/**
	 * 待检入库 9
	 */
	public final static String WAIT_CHECK_IN = "9";
	/**
	 * 器械入库 10
	 */
	public final static String INSTRUMENT_IN = "10"; // 一模一样采购入库
	/**
	 * 赠品入库 11
	 */
	public final static String FREE_IN = "11"; // pass
	/**
	 * 空入入库(有实物) 12
	 */
	public final static String BLANK_ENTITY_IN = "12"; // 调账
	/**
	 * 空入入库(无实物) 13
	 */
	public final static String BLANK_IN = "13"; // 空入,自动生成质检,上架;货位无限制 不合法的直调
	/**
	 * 空退入库(有实物) 14 有实物必须先出再入
	 */
	public final static String BLANK_RETURN_ENTITY_IN = "14"; // 调账的一种类型
	/**
	 * 空退入库(无实物) 15
	 */
	public final static String BLANK_RETURN_IN = "15"; // 销售退回的一种,物品损坏退回
	/**
	 * 厂家维修入库
	 */
	
	public final static String FACTORY_MAINTENANCE_IN ="65";
	/**
	 * 客户维修入库
	 */
	
	public final static String CUSTORM_MAINTENANCE_IN ="60";

	// =========================收货类型常量=============================

	// ========================结论常量===========================
	// 合格
	public final static String QUALIFIED = "0";
	// 不合格
	public final static String UN_QUALIFIED = "1";
	// 待处理
	public final static String PENDING = "2";
	// 拒收
	public final static String REJECT = "3";

	// ========================质检结论常量===========================
	
	// 库别常量
	/**
	 * 暂存区
	 */
	public final static String ZCQ = "ZCQ";
	/**
	 * 零货库
	 */
	public final static String LHK = "LHK";
	/**
	 * 整件库
	 */
	public final static String ZJK = "ZJK";
	/**
	 * 立体库
	 */
	public final static String LTK = "LTK";
	/**
	 * 备货库
	 */
	public final static String BHK = "BHK";
	/**
	 * 不合格品库
	 */
	public final static String NHK = "NHK";
	/**
	 * 退货库
	 */
	public final static String THK = "THK";
	/**
	 * 盘点库
	 */
	public final static String PDK = "PDK";
	/**
	 * 待检库
	 */
	public final static String DYK = "DYK";
	/**
	 * 整散合一库
	 */
	public final static String HYK = "HYK";
	/**
	 * 待处理库
	 */
	public final static String CLK = "CLK";
	/**
	 * 调整库
	 */
	public final static String ADJ = "ADJ";
	/**
	 * 代管库
	 */
	public final static String DGK = "DGK";
	/**
	 * 越库区
	 */
	public final static String YKQ = "YKQ";
	/**
	 * 空入库
	 */
	public final static String KRK = "KRK";
	/**
	 * 箱体库
	 */
	public final static String XTK = "XTK";
	/**
	 * 直调库
	 */
	public final static String ZDK = "ZDK";
	/**
	 * 自动化库
	 */
	public final static String SBK = "SBK";
	/**
	 * 维修库
	 */
	public final static String WXK = "WXK";
	/**
	 * 次品库
	 */
	public final static String CPK = "CPK";

	/**
	 * AGV库
	 */
	public final static String AGVK = "AGVK";
	
	/**
	 * 业务参数编码(待处理复检代管入)
	 */
	public final static String INBOUND_PEND_RERQC_HOSTIN = "INBOUND_PEND_RERQC_HOSTIN";
	/**
	 * 业务参数编码(复检待处理erp二次审核)
	 */
	public final static String INBOUND_RERQC_PEND_TOERP = "INBOUND_RERQC_PEND_TOERP";
	
	/**
	 * 业务参数编码(复检待处理erp二次审核)
	 */
	public final static String ENABLE_USE_SAMPLE_STRATEGY = "ENABLE_USE_SAMPLE_STRATEGY";
	
	/**
	 * 业务参数编码(自动单据间隔时间)
	 */
	public final static String AUTO_BILL_INTERVAL_TIME = "AUTO_BILL_INTERVAL_TIME";
	
	/**
	 * 业务参数编码(是否校验容器)
	 */
	public final static String ENABLE_VAILDATE_CONTAINER = "ENABLE_VAILDATE_CONTAINER";

	/**
	 * pda上架是否校验货位限定
	 */
	public final static String ENABLE_PDA_MATCH_LOCATOR_LIMIT = "ENABLE_PDA_MATCH_LOCATOR_LIMIT";
	
	/**
	 * 业务参数编码(是否校验结论)
	 */
	public final static String ENABLE_VAILDATE_CONCLUSION = "ENABLE_VAILDATE_CONCLUSION";

	
	/**
	 * 货位拣货方式
	 */
	/**
	 * 默认拣货
	 */
	public final static String PICK_MODE_DEFAULT = "DEFAULT";
	/**
	 * 纸单拣货
	 */
	public final static String PICK_MODE_PAPER = "Paper";
	/**
	 * 设备拣货
	 */
	public final static String PICK_MODE_DEVICE = "Device";

	
	public static Map<String, String> getAreaCodeAndNameList(){
		Map<String,String> map = new HashedMap<String, String>();
		map.put(ZCQ, "暂存区");
		map.put(LHK, "零货库");
		map.put(ZJK, "整件库");
		map.put(LTK, "立体库");
		map.put(BHK, "备货库");
		map.put(NHK, "不合格品库");
		map.put(THK, "退货库");
		map.put(PDK, "盘点库");
		map.put(DYK, "待检库");
		map.put(HYK, "整散合一库");
		map.put(CLK, "待处理库");
		map.put(ADJ, "调整库");
		map.put(DGK, "代管库");
		map.put(YKQ, "越库区");
		map.put(KRK, "空入库");
		map.put(XTK, "箱体库");
		map.put(ZDK, "直调库");
		map.put(SBK, "自动化库");
		map.put(WXK, "维修库");
		map.put(CPK, "次品库");
		return map;
	}
}