package com.prolog.rdc.tms.constant;

/**
 * 常量类
 * 
 * @author Administrator
 *
 */
public class BmsConstant {

	public final static String AUDIT_CONFIGURATION_ID = "AUDIT_CONFIGURATION_ID";
	public final static String AUDIT_CONFIGURATION_CONDITION_ID = "AUDIT_CONFIGURATION_CONDITION_ID";
	public final static String EXPENSE_ACCOUNT = "EXPENSE_ACCOUNT";
	public final static String EXPENSE_MANAGEMENT = "EXPENSE_MANAGEMENT";
	public final static String AUDIT_CONFIGURATION_NODE_ID = "AUDIT_CONFIGURATION_NODE_ID";
	public final static String SHIP_BILL_HEAD_ID = "SHIP_BILL_HEAD_ID";
	public final static String LOADING_BILL_HEAD_ID = "LOADING_BILL_HEAD_ID";
	public final static String SHIP_BILL_DETAIL_ID = "SHIP_BILL_DETAIL_ID";
	public final static String BMS_SUPPLIER_ID = "BMS_SUPPLIER_ID";

	public final static String SHIP_BILL_EXPENSE_NO = "SHIP_BILL_EXPENSE_NO";
	public final static String BMS_SHIP_BILL_SETTLEMENT_ID = "BMS_SHIP_BILL_SETTLEMENT_ID";


	// 导入
	public static final String EXPENSE_ACCOUNT_IMPORT = "EXPENSE_ACCOUNT_IMPORT";
	public static final String IMPORT_BATCHNO = "IMPORT_BATCHNO";
	public static final String SUPPLIER_SHIPPER_IMPORT = "SUPPLIER_SHIPPER_IMPORT";
	public static final String SUPPLIER_IMPORT = "SUPPLIER_IMPORT";
	public final static String SETTLEMENT_FEE_IMPORT = "SETTLEMENT_FEE_IMPORT";
	public final static String BMS_SHIP_BILL_IMPORT = "BMS_SHIP_BILL_IMPORT";

	public static final String BMS_FREIGHT_PRICE_IMPORT = "BMS_FREIGHT_PRICE_IMPORT";

	public static final String BMS_FEE_ADJUST_IMPORT = "BMS_FEE_ADJUST_IMPORT";


	// 用户分类: I-内部员工(自有) C-客户 V-供应商 H-货主 S-服务商(承运商) D-司机 M-送货员
	public static final String USER_TYPE_ZY = "I";
	public static final String USER_TYPE_CYS = "S";
	public static final String USER_TYPE_GYS = "V";
	public static final String USER_TYPE_HZ = "H";
	public static final String USER_TYPE_KH = "C";
	public static final String USER_TYPE_SJ = "D";
	public static final String USER_TYPE_SHY = "M";

	// 来源 数据字典SOURCE 1.新增 2.excel导入 3.接口导入 4：tms下传
	public static final Integer SOURCE_ADD = 1;
	public static final Integer SOURCE_EXCEL = 2;
	public static final Integer SOURCE_INTERFACE = 3;
	public static final Integer TMS_DOWN = 4;

	// 来源 数据字典SOURCE 1.用户 2.系统
	public static final Integer SOURCE_USER = 1;
	public static final Integer SOURCE_SYSTEM = 2;

	// 是否通用状态:0否 1是
	public static final Integer WHETHER_NO = 0;
	public static final Integer WHETHER_YES = 1;
	public static final String WHETHER_STRING_NO = "否";
	public static final String WHETHER_STRING_YES = "是";

	// 导入状态 数据字典IMPORT_STATUS:0失败，1.成功
	public static final String IMPORT_STATUS = "IMPORT_STATUS";
	public static final Integer IMPORT_STATUS_NO = 0;
	public static final Integer IMPORT_STATUS_YES = 1;

	// 文件大小
	public static final int FILE_SIZE = 15728640;
	public static final String CARRIER_IMPORT_LOG = "CARRIER_IMPORT_LOG";

	// 运输状态 数据字典TRANSPORT_STATUS:10待发货 20 配送中 30 已送达
	public final static String TRANSPORT_STATUS = "TRANSPORT_STATUS";
	public final static Integer TRANSPORT_STATUS_PENDING_SHIP = 10;
	public final static Integer TRANSPORT_STATUS_SHIPPING = 20;
	public final static Integer TRANSPORT_STATUS_ARRIVED = 30;

	// 承运方类型 数据字典LINE_CARRIER_TYPE:1.承运商 2.司机
	public static final String LINE_CARRIER_TYPE = "LINE_CARRIER_TYPE";
	public static final Integer LINE_CARRIER_TYPE_CYF = 1;
	public static final Integer LINE_CARRIER_TYPE_SJ = 2;
	public static final Integer LINE_CARRIER_TYPE_ZT = 3;

	// 运单异常状态
	public final static String ABNORMAL_STATUS = "ABNORMAL_STATUS";
	public final static Integer SHIPBILL_ABNORMAL_STATUS_NO = 0;// 未异常
	public final static Integer SHIPBILL_ABNORMAL_STATUS = 10;// 异常
	public final static Integer SHIPBILL_ABNORMAL_CLOSE_STATUS = 20;// 异常关闭

	// 扫描状态 数据字典SCAN_STATUS:10初始 20已装车扫描
	public final static String SCAN_STATUS = "SCAN_STATUS";
	public final static Integer SCAN_STATUS_INIT = 10;
	public final static Integer SCAN_STATUS_LOADED = 20;

	// 订单类型 数据字典ORDER_TYPE：1普通 2紧急 3加急
	public final static String ORDER_TYPE = "ORDER_TYPE";
	public final static Integer ORDER_TYPE_P = 1;
	public final static Integer ORDER_TYPE_JJ = 2;
	public final static Integer ORDER_TYPE_JJJ = 3;

	// 订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送 2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提
	// 5销售退货 6采购退货 7调拨
	public final static String ORDER_BUSINESS_TYPE = "ORDER_BUSINESS_TYPE";

	// 配送方式 数据字典DELIVERY_METHOD_TYPE：1配送 2自提
	public final static String DELIVERY_METHOD_TYPE = "DELIVERY_METHOD_TYPE";
	public final static Integer DELIVERY_METHOD_TYPE_SEND = 1;
	public final static Integer DELIVERY_METHOD_TYPE_ZT = 2;

	// 运输类型(运输模式) 数据字典TRANSPORT_TYPE:1整车 2零担
	public final static String TRANSPORT_TYPE = "TRANSPORT_TYPE";
	public final static Integer TRANSPORT_TYPE_ZC = 1;
	public final static Integer TRANSPORT_TYPE_LD = 2;

	// 温度要求 数据字典TEMPERATURE_REQUIREMENT：1常温 2冷藏 3冷冻 4恒温
	public final static String TEMPERATURE_REQUIREMENT = "TEMPERATURE_REQUIREMENT";
	public final static Integer TEMPERATURE_REQUIREMENT_CW = 1;
	public final static Integer TEMPERATURE_REQUIREMENT_LC = 2;
	public final static Integer TEMPERATURE_REQUIREMENT_LD = 3;
	public final static Integer TEMPERATURE_REQUIREMENT_HW = 4;

	// 运单状态 数据字典SHIPBILL_STATUS:0已作废 5已回退 10初始化 15审批中 20已提交 30已审核 40已调度 45调度单审核
	// 47待预约 // 48预约中
	// 50待开始理货 60待理货完成 70待开始装卸 75待装车扫描 80待装卸完成
	// 100未装 110待装车确认 120待启运 130拒收 140未送 150待送达 155托运交接
	// 160待回单 170待正本回单 180待自提 190完成状态
	public final static String SHIPBILL_STATUS = "SHIPBILL_STATUS";
	public final static Integer SHIPBILL_STATUS_ZF = 0;
	public final static Integer SHIPBILL_STATUS_YTH = 5;
	public final static Integer SHIPBILL_STATUS_CSH = 10;
	public final static Integer SHIPBILL_STATUS_DSH = 15;
	public final static Integer SHIPBILL_STATUS_YTJ = 20;
	public final static Integer SHIPBILL_STATUS_REVIEW = 30;
	public final static Integer SHIPBILL_STATUS_DISPATCH = 40;
	public final static Integer SHIPBILL_STATUS_DISPATCH_CHECK = 45;
	public final static Integer SHIPBILL_STATUS_PENDING_APP = 47;
	public final static Integer SHIPBILL_STATUS_APP_ING = 48;
	public final static Integer SHIPBILL_STATUS_LH_START = 50;
	public final static Integer SHIPBILL_STATUS_LH_FINISH = 60;
	public final static Integer SHIPBILL_STATUS_ZX_START = 70;
	public final static Integer SHIPBILL_STATUS_ZC_SCAN = 75;
	public final static Integer SHIPBILL_STATUS_ZX_FINISH = 80;
	public final static Integer SHIPBILL_STATUS_WZ = 100;
	public final static Integer SHIPBILL_STATUS_ZX_CONFIRM = 110;
	public final static Integer SHIPBILL_STATUS_QY = 120;
	public final static Integer SHIPBILL_STATUS_RS = 130;
	public final static Integer SHIPBILL_STATUS_WS = 140;
	public final static Integer SHIPBILL_STATUS_SD = 150;
	public final static Integer SHIPBILL_STATUS_CONSIGNMENT_HANDOVER = 155;
	public final static Integer SHIPBILL_STATUS_HD_PIC = 160;
	public final static Integer SHIPBILL_STATUS_HD_ZB = 170;
	public final static Integer SHIPBILL_STATUS_HD_ZT = 180;
	public final static Integer SHIPBILL_STATUS_END = 190;

	public final static String SHIPBILL_STATUSNAME_ZF = "已作废";
	public final static String SHIPBILL_STATUSNAME_CSH = "初始化";
	public final static String SHIPBILL_STATUSNAME_DSH = "待审核";
	public final static String SHIPBILL_STATUSNAME_YTJ_APPROVAL = "运单提交审批中";
	public final static String SHIPBILL_STATUSNAME_YTJ = "已提交";
	public final static String SHIPBILL_STATUSNAME_YTH = "已回退";
	public final static String SHIPBILL_STATUSNAME_DIS_REVOKE = "已调度撤销";

	// 运单节点事件
	public final static String SHIPBILL_NODE_STATUSNAME_SC = "运单已生成，等待系统确认";
	public final static String SHIPBILL_NODE_STATUSNAME_TJ = "运单已确认";

	// 发货发类型
	public final static String SHIPPER_TYPE = "SHIPPER_TYPE";
	public final static String CONSIGNEE_TYPE = "CONSIGNEE_TYPE";
	public final static String SOURCE = "SOURCE";

	public final static Integer SHIPPER_TYPE_KH = 1;
	public final static Integer SHIPPER_TYPE_CK = 2;
	public final static Integer SHIPPER_TYPE_GYS = 3;

	// 部分权限 1有 0没有
	public static final Integer USER_DEPARTMENT_AUTH_Y = 1;
	public static final Integer USER_DEPARTMENT_AUTH_N = 0;

	// 合同性质 数据字典CONTRACT_NATURE:1合同 2临时
	public static final String CONTRACT_NATURE = "CONTRACT_NATURE";

	// 开户行 数据字典BANK 1 工商银行 2 建设银行
	public static final String BANK = "BANK";

	// 是否绑定状态 数据字典WHETHER 0未绑 1已绑
	public static final String WHETHER = "WHETHER";

	// 数据字典MAINDATA_STATUS: 0停用 1已创建 5审核中 10启用
	public static final String MAINDATA_STATUS = "MAINDATA_STATUS";
	public static final Integer STATUS_DISABLE = 0;
	public static final Integer STATUS_CREATE = 1;
	public static final Integer STATUS_UNDER_REVIEW = 5;
	public static final Integer STATUS_ENABLE = 10;

	// 区域层级
	public static final Integer ZONE_ZLEVEL = 1;
	public static final String ITEM_CATEGORY_LEVEL = "ITEM_CATEGORY_LEVEL";

	public static final String PACK_TYPE = "PACK_TYPE";
	public static final String CARGO_THERMOSPHERE = "CARGO_THERMOSPHERE";

	// 审核
	// 审批流程类型 数据字典 APPROVAL_FLOW_TYPE：1 货主审核 2 承运商审核 3 运单提交 4调度审核 5承运商调度审核，6运单核算，7
	public static final String APPROVAL_FLOW_TYPE = "APPROVAL_FLOW_TYPE";
	public static final Integer APPROVAL_FLOW_TYPE_OWNER = 1;
	public static final Integer APPROVAL_FLOW_TYPE_CARRIER = 2;
	public static final Integer APPROVAL_FLOW_TYPE_SHIPBILL = 3;
	public static final Integer APPROVAL_FLOW_TYPE_DISPATCH = 4;
	public static final Integer APPROVAL_FLOW_TYPE_DISPATCH_CARRIER = 5;
	public static final Integer APPROVAL_FLOW_TYPE_SHIP_ACCOUNT = 6; // 运单核算
	public static final Integer APPROVAL_FLOW_TYPE_PRICE_SUBMIT = 7; // 费用提交
	public static final Integer APPROVAL_FLOW_TYPE_CONTRACT = 8; // 合同审批

	// 审批结果 数据字典 NODE_APPROVAL_RESULT:1发起申请 2驳回发起人 3驳回上一级 4审批通过 5撤回 6 作废
	public static final String NODE_APPROVAL_RESULT = "NODE_APPROVAL_RESULT";
	public static final Integer NODE_APPROVAL_RESULT_APPLY = 1;
	public static final Integer NODE_APPROVAL_RESULT_REJECT_FIRST = 2;
	public static final Integer NODE_APPROVAL_RESULT_REJECT_PREVIOUS = 3;
	public static final Integer NODE_APPROVAL_RESULT_PASS = 4;
	public static final Integer NODE_APPROVAL_RESULT_RETRACT = 5;
	public static final Integer NODE_APPROVAL_RESULT_INVALID = 6;

	// 节点审批者类型 1 角色 2 用户
	public static final Integer NODE_APPROVER_TYPE_ROLE = 1;
	public static final Integer NODE_APPROVER_TYPE_USER = 2;

	// 合作性质 1合同 2临时
	public static final String COOPERATIVE_NATURE = "COOPERATIVE_NATURE";
	// 有效、无效
	public static final String EARLY_WARNING_STATUS = "EARLY_WARNING_STATUS";

	// 客户收货方配送方式 数据字典 DELIVERY_PATTERN:1.配送 2.自提
	public static final String DELIVERY_PATTERN = "DELIVERY_PATTERN";
	public static final Integer DELIVERY_PATTERN_DELIVERY = 1;
	public static final Integer DELIVERY_PATTERN_PICKUP = 2;

	// 可预约时间点 数据字典AVAILABLE_TIME 10预计提货时间 20下单时间 30提交时间 40审核时间 50调度时间 60调度审核时间
	public static final String AVAILABLE_TIME = "AVAILABLE_TIME";
	public static final Integer AVAILABLE_TIME_PICK_UP = 10;
	public static final Integer AVAILABLE_TIME_ORDER = 20;
	public static final Integer AVAILABLE_TIME_COMMIT = 30;
	public static final Integer AVAILABLE_TIME_REVIEW = 40;
	public static final Integer AVAILABLE_TIME_DISPATCH = 50;
	public static final Integer AVAILABLE_TIME_DISPATCH_CHECK = 60;

	// 可预约时间单位 数据字典AVAILABLE_UNIT 1小时 2天
	public static final String AVAILABLE_UNIT = "AVAILABLE_UNIT";
	public static final Integer AVAILABLE_UNIT_HOUR = 1;
	public static final Integer AVAILABLE_UNIT_DAY = 2;

	// 预约类型 数据字典:APPOINTMENT_TYPE 10提货 20送货
	public static final String APPOINTMENT_TYPE = "APPOINTMENT_TYPE";
	public static final Integer APPOINTMENT_TYPE_TH = 10;
	public static final Integer APPOINTMENT_TYPE_SH = 20;

	// 叫号处理方式 数据字典CALL_HANDLE_TYPE 10等待区先叫号 20按照排队号叫号
	public static final String CALL_HANDLE_TYPE = "CALL_HANDLE_TYPE";
	public static final Integer CALL_HANDLE_TYPE_WAITINGAREA = 10;
	public static final Integer CALL_HANDLE_TYPE_NUMBER = 20;

	// 过号处理方式 数据字典OVER_NUM_HANDLE_TYPE 10重新取号 20往后排三位 30往后排五位
	public static final String OVER_NUM_HANDLE_TYPE = "OVER_NUM_HANDLE_TYPE";
	// 车型类别 数据字典VEHICLE_TYPE_CATEGORY：1冷藏车、2平顶车、3厢式货车
	public static final String VEHICLE_TYPE_CATEGORY = "VEHICLE_TYPE_CATEGORY";
	public static final String CARPORT_TYPE = "CARPORT_TYPE";

	// 车辆类型 数据字典VEHICLE_TYPE: 1自有、2挂靠、3临时
	public static final String VEHICLE_TYPE = "VEHICLE_TYPE";
	public static final Integer VEHICLE_TYPE_OWN = 1;
	public static final Integer VEHICLE_TYPE_ANCHORED = 2;
	public static final Integer VEHICLE_TYPE_TEMPORARY = 3;
	public static final String VEHICLE_TYPE_ZY = "自有";
	public static final String VEHICLE_TYPE_GK = "挂靠";
	public static final String VEHICLE_TYPE_LS = "临时";

	// 费用规则
	public static final String FEE_RULE = "FEE_RULE";
	public static final String OMS_START_DATE_STRATEGY = "OMS_START_DATE_STRATEGY";
	public static final String OMS_END_DATE_STRATEGY = "OMS_END_DATE_STRATEGY";
	public static final String CONTRACT_TYPE = "CONTRACT_TYPE";
	public static final String CONTRACT_STATUS = "CONTRACT_STATUS";
	public static final String SETTLEMENT_WAY = "SETTLEMENT_WAY";
	public static final String SETTLEMENT_TYPE = "SETTLEMENT_TYPE";

	public static final String SETTLEMENT_ORDER_TYPE = "SETTLEMENT_ORDER_TYPE";
	public static final String COST_TYPE = "COST_TYPE";
	public static final String LADDER_TYPE = "LADDER_TYPE";
	public static final String SETTLEMENT_MODEL = "SETTLEMENT_MODEL";
	public static final String SECTION_SYMBOL = "SECTION_SYMBOL";
	public static final String LESS_THAN = "LESS_THAN";
	public static final String WEIGHT_INTEGER = "WEIGHT_INTEGER";
	public static final String EXPENSE_STATUS = "EXPENSE_STATUS";
	public static final Integer EXPENSE_STATUS_0 = 0;
	public static final Integer EXPENSE_STATUS_1 = 1;
	public static final Integer EXPENSE_STATUS_2 = 2;
	public static final String BILLING_STATUS = "BILLING_STATUS";
	public static final String CHECK_STATUS = "CHECK_STATUS";
	public static final String CALCULATE_RULE = "CALCULATE_RULE";
	/**
	 * 未结算
	 */
	public static final Integer CHECK_STATUS_0 = 0;
	// 对账提交
	public static final Integer CHECK_STATUS_1 = 1;
	// 对账确认
	public static final Integer CHECK_STATUS_2 = 2;
	// 结算单生成
	public static final Integer CHECK_STATUS_3 = 3;
	// 结算单审核
	public static final Integer CHECK_STATUS_4 = 4;

	public static final String BMS_APPROVAL_CONDITION_TYPE = "BMS_APPROVAL_CONDITION_TYPE";

	public static final String FIRST_PARTY_TYPE = "FIRST_PARTY_TYPE";
	public static final String SECOND_PARTY_TYPE = "SECOND_PARTY_TYPE";

	public static final int LADDER_COST = 1;  // 阶梯计费
	public static final int PRICE = 2;  // 一口价
	public static final int PRICE_MERGE = 3;  // 一口价+合并计费
	public static final int PRICE_NUM = 4;  // 按数量计费
	public static final int PRICE_PROPORTION = 5; // 比例计费
	public static final int PRICE_TIME = 6;  // 按时间计费
	public static final int PRICE_MERGE_INCOME = 7;  // 单价-合并计费
	public static final int JD_LADDER_COST = 8;  // 京东阶梯计费

	public static final int LADDER_FOR_PACKAGE = 10;  // 包裹阶梯

	// 运单状态
	public static final String SETTLEMENT_STATUS = "SETTLEMENT_STATUS";
	public static final Integer SETTLEMENT_STATUS_0 = 0;  // 未核算
	public static final Integer SETTLEMENT_STATUS_1 = 1;  // 核算待提交
	public static final Integer SETTLEMENT_STATUS_2 = 2; // 核算审批中
	public static final Integer SETTLEMENT_STATUS_3 = 3; // 核算完成

	public static final String SETTLEMENT_CYCLE = "SETTLEMENT_CYCLE";
	public static final String CLOSE_ACCOUNT_STATUS = "CLOSE_ACCOUNT_STATUS";


	// 同步状态 数据字典synchronous_status 1.成功 2.失败
	public final static String SYNCHRONOUS_STATUS = "SYNCHRONOUS_STATUS";
	public static final Integer SYNCHRONOUS_STATUS_SUCCESS = 1;
	public static final Integer SYNCHRONOUS_STATUS_FAILED = 2;

	// 是否为部门权限
	public static final String IS_DEPT_YES = "YES";
	public static final String IS_DEPT_NO = "NO";

	// 扩展对象
	// 18 bms-运单主表
	// 19 bms-运单明细表
	// 20 结算单主表
	public static final String EXTENDED_OBJECT_BMS_SHIPBILL_HEADER = "18";
	public static final String EXTENDED_OBJECT_BMS_SHIPBILL_DETAIL = "19";
	public static final String EXTENDED_OBJECT_SHIPBILL_SETTLEMENT = "20";

	// 计费状态 数据字典COST_STATUS 1.成功 2.失败
	public final static String COST_STATUS = "COST_STATUS";
	public static final Integer COST_STATUS_SUCCESS = 1;
	public static final Integer COST_STATUS_FAILED = 2;

	// 价格表省市区匹配方式 数据字典PRICE_PCD_MATCH_TYPE 1.省市区精确匹配 2.省市区向上匹配 3.省市区向上匹配,未匹配到忽略省市区 4.忽略省市区作为匹配条件
	public final static String PRICE_PCD_MATCH_TYPE = "PRICE_PCD_MATCH_TYPE";
	public static final Integer PRICE_PCD_MATCH_TYPE_PRECISE = 1;
	public static final Integer PRICE_PCD_MATCH_TYPE_UP = 2;
	public static final Integer PRICE_PCD_MATCH_TYPE_UP_IGNORE = 3;
	public static final Integer PRICE_PCD_MATCH_TYPE_IGNORE = 4;

	// 费用计算类型 FEE_CLT_TYPE 10:按运单计费  20:按派车单计费 30:未匹配到价格
	public final static String FEE_CLT_TYPE = "FEE_CLT_TYPE";
	public static final Integer FEE_CLT_TYPE_SHIP_BILL = 10;
	public static final Integer FEE_CLT_TYPE_LOADING_BILL = 20;
	public static final Integer FEE_CLT_TYPE_NO_MATCH = 30;

	// 价格表计费方式 PRICE_COST_TYPE 10:仅计算支出  20:计算收入，支出
	public final static String PRICE_COST_TYPE = "PRICE_COST_TYPE";
	public static final Integer PRICE_COST_TYPE_PAY = 10;
	public static final Integer PRICE_COST_TYPE_ALL = 20;

	public final static String LOADING_BILL_STATUS = "LOADING_BILL_STATUS";

	//  TMS下传单据 10-仅运单,20-运单和派车单
	public static final String TMS_TRANSFER_ORDER_TYPE = "TMS_TRANSFER_ORDER_TYPE";
	public final static Integer TMS_TRANSFER_ORDER_TYPE_SHIP_BILL = 10;
	public final static Integer TMS_TRANSFER_ORDER_TYPE_SHIP_LOADING_BILL = 20;

}
