package com.gci.boot.constant;

import java.text.DecimalFormat;

import org.springframework.util.StringUtils;

public interface CommonConstant {



	public static DecimalFormat df2 =new DecimalFormat("#.0");

	    /*运维部领导		Maintenance_leader
	    运维部管理员		Maintenance_admin
	    司机				Driver
	    租赁方管理员		Custom_admin
	    维修厂管理员            Repair_admin
	    法务合约部管理员	Legal_admin
	    市场开发部管理员	Market_admin*/
	public static final String DRIVER_ROLE_CODE = "Driver";

	public static final String MAINTENANCE_ADMIN_ROLE_CODE = "Maintenance_admin";

    public static final String  REPAIR_ADMIN_ROLE_CODE = "Repair_admin";

    public static final String CUSTOM_ADMIN_ROLE_CODE = "Custom_admin";

    public static final String SIGN_OUT_TASK_LOCK = "sign:out:task:lock";

    public static final String CONTRACK_STATUS_TASK_LOCK = "contrack:status:task:lock";

    public static final String CHECK_STATUS_TASK_LOCK = "check:status:task:lock";

    public static final String INSURANCE_REMIND_TASK_LOCK = "insurance:remind:task:lock";

    public static final String VEHICLE_BIND_DRIVER = "vehicle:bind:driver:";


    public static final String INNER_PROJECT = "INNER_PROJECT";

    /**
     * 默认客户回访模板Id
     */
    public static final String DEFAULT_CUSTOMER = "default_customer";

    /**
     * 默认车辆巡检模板Id
     */
    public static final String DEFAULT_INSPECTION = "default_inspection";

    /**
     * 默认车辆阈值id
     */
    public static final String DEFAULT_THRESHOLD = "default_threshold";

    /**
     * 车辆阈值前缀
     */
    public static final String THRESHOLD = "THRESHOLD:";

    /**
     * 超级管理员用户名，修改需要慎重，由于该用户名涉及超级管理员权限，具有该用户名则用户具有系统所有权限
     */
    String SUPER_ADMIN_NAME="admin";
    /**
     * 超级管理员用户type为9999
     */
    Integer SUPER_ADMIN_TYPE=9999;

    /**
     * 正常状态
     */
    Integer STATUS_NORMAL = 0;

    /**
     * 禁用状态
     */
    Integer STATUS_DISABLE = -1;

    /**
     * 删除标志
     */
    Integer DEL_FLAG_1 = 1;

    /**
     * 未删除
     */
    Integer DEL_FLAG_0 = 0;

    /**
     * 系统日志类型： 登录
     */
    int LOG_TYPE_LOGIN = 1;

    /**
     * 系统日志类型： 操作
     */
    int LOG_TYPE_OP = 2;

    /**
     * 操作日志类型： 查询
     */
    int OPERATE_TYPE_QUERY = 1;

    /**
     * 操作日志类型： 添加
     */
    int OPERATE_TYPE_INSERT = 2;

    /**
     * 操作日志类型： 更新
     */
    int OPERATE_TYPE_UPDATE = 3;

    /**
     * 操作日志类型： 删除
     */
    int OPERATE_TYPE_DELETE = 4;

    /**
     * 操作日志类型： 导入
     */
    int OPERATE_TYPE_IMPORT = 5;

    /**
     * 操作日志类型： 导出
     */
    int OPERATE_TYPE_EXPORT = 6;


    /** {@code 500 Server Error} (HTTP/1.0 - RFC 1945) */
    Integer SC_INTERNAL_SERVER_ERROR_500 = 500;
    /** {@code 200 OK} (HTTP/1.0 - RFC 1945) */
    Integer SC_OK_200 = 200;

    /**访问权限认证未通过 510*/
    Integer SC_JEECG_NO_AUTHZ=510;

    /** 登录用户Shiro权限缓存KEY前缀 */
    public static String PREFIX_USER_SHIRO_CACHE  = "shiro:cache:org.jeecg.modules.shiro.authc.ShiroRealm.authorizationCache:";
    /** 登录用户Token令牌缓存KEY前缀 */
    String PREFIX_USER_TOKEN  = "prefix_user_token_";

    String PREFIX_PC_USER  = "prefix_pc_user_";

    /** Token缓存时间：3600秒即一小时 */
    int  TOKEN_EXPIRE_TIME  = 3600;


    /**
     *  0：一级菜单
     */
    Integer MENU_TYPE_MAIN = 0;
    /**
     *  1：子菜单
     */
    Integer MENU_TYPE_SUB = 1;
    /**
     *  2：按钮权限
     */
    Integer MENU_TYPE_BUTTON = 2;

    /**通告对象类型（USER:指定用户，ALL:全体用户）*/
    String MSG_TYPE_UESR  = "USER";
    String MSG_TYPE_ALL  = "ALL";

    /**发布状态（0未发布，1已发布，2已撤销）*/
    String NO_SEND  = "0";
    String HAS_SEND  = "1";
    String HAS_CANCLE  = "2";

    /**阅读状态（0未读，1已读）*/
    String HAS_READ_FLAG  = "1";
    String NO_READ_FLAG  = "0";

    /**优先级（L低，M中，H高）*/
    String PRIORITY_L  = "L";
    String PRIORITY_M  = "M";
    String PRIORITY_H  = "H";

    /**
     * 短信模板方式  0 .登录模板、1.注册模板、2.忘记密码模板
     */
    String SMS_TPL_TYPE_0  = "0";
    String SMS_TPL_TYPE_1  = "1";
    String SMS_TPL_TYPE_2  = "2";

    /**
     * 状态(0无效1有效)
     */
    String STATUS_0 = "0";
    String STATUS_1 = "1";

    /**
     * 同步工作流引擎1同步0不同步
     */
    Integer ACT_SYNC_1 = 1;
    Integer ACT_SYNC_0 = 0;

    /**
     * 消息类型1:通知公告2:系统消息
     */
    String MSG_CATEGORY_1 = "1";
    String MSG_CATEGORY_2 = "2";

    /**
     * 是否配置菜单的数据权限 1是0否
     */
    Integer RULE_FLAG_0 = 0;
    Integer RULE_FLAG_1 = 1;

    /**
     * 是否 字符常量
     */
    String YES = "1";
    String NO = "0";

    /**
     * 是否用户已被冻结 1正常(解冻) 2冻结
     */
    Integer USER_UNFREEZE = 1;
    Integer USER_FREEZE = 2;

    /**字典翻译文本后缀*/
    String DICT_TEXT_SUFFIX = "_dictText";

    /**
     * 表单设计器主表类型
     */
    Integer DESIGN_FORM_TYPE_MAIN = 1;

    /**
     * 表单设计器子表表类型
     */
    Integer DESIGN_FORM_TYPE_SUB = 2;

    /**
     * 表单设计器URL授权通过
     */
    Integer DESIGN_FORM_URL_STATUS_PASSED = 1;

    /**
     * 表单设计器URL授权未通过
     */
    Integer DESIGN_FORM_URL_STATUS_NOT_PASSED = 2;

    /**
     * 表单设计器新增 Flag
     */
    String DESIGN_FORM_URL_TYPE_ADD = "add";
    /**
     * 表单设计器修改 Flag
     */
    String DESIGN_FORM_URL_TYPE_EDIT = "edit";
    /**
     * 表单设计器详情 Flag
     */
    String DESIGN_FORM_URL_TYPE_DETAIL = "detail";
    /**
     * 表单设计器复用数据 Flag
     */
    String DESIGN_FORM_URL_TYPE_REUSE = "reuse";
    /**
     * 表单设计器编辑 Flag （已弃用）
     */
    String DESIGN_FORM_URL_TYPE_VIEW = "view";

    /**
     * online参数值设置（是：Y, 否：N）
     */
    String ONLINE_PARAM_VAL_IS_TURE = "Y";
    String ONLINE_PARAM_VAL_IS_FALSE = "N";

    /**
     * 文件上传类型（本地：local，Minio：minio，阿里云：alioss）
     */
    String UPLOAD_TYPE_LOCAL = "local";
    String UPLOAD_TYPE_MINIO = "minio";
    String UPLOAD_TYPE_OSS = "alioss";

    /**
     * 文档上传自定义桶名称
     */
    String UPLOAD_CUSTOM_BUCKET = "eoafile";
    /**
     * 文档上传自定义路径
     */
    String UPLOAD_CUSTOM_PATH = "eoafile";
    /**
     * 文件外链接有效天数
     */
    Integer UPLOAD_EFFECTIVE_DAYS = 1;

    /**
     * 员工身份 （1:普通员工  2:上级）
     */
    Integer USER_IDENTITY_1 = 1;
    Integer USER_IDENTITY_2 = 2;

    /** sys_user 表 username 唯一键索引 */
    String SQL_INDEX_UNIQ_SYS_USER_USERNAME = "uniq_sys_user_username";
    /** sys_user 表 work_no 唯一键索引 */
    String SQL_INDEX_UNIQ_SYS_USER_WORK_NO = "uniq_sys_user_work_no";
    /** sys_user 表 phone 唯一键索引 */
    String SQL_INDEX_UNIQ_SYS_USER_PHONE = "uniq_sys_user_phone";
    /** sys_user 表 email 唯一键索引 */
    String SQL_INDEX_UNIQ_SYS_USER_EMAIL = "uniq_sys_user_email";
    /** sys_quartz_job 表 job_class_name 唯一键索引 */
    String SQL_INDEX_UNIQ_JOB_CLASS_NAME = "uniq_job_class_name";
    /** sys_position 表 code 唯一键索引 */
    String SQL_INDEX_UNIQ_CODE = "uniq_code";
    /** sys_role 表 code 唯一键索引 */
    String SQL_INDEX_UNIQ_SYS_ROLE_CODE = "uniq_sys_role_role_code";
    /** sys_depart 表 code 唯一键索引 */
    String SQL_INDEX_UNIQ_DEPART_ORG_CODE = "uniq_depart_org_code";
    /**
     * 在线聊天 是否为默认分组
     */
    String IM_DEFAULT_GROUP = "1";
    /**
     * 在线聊天 图片文件保存路径
     */
    String IM_UPLOAD_CUSTOM_PATH = "imfile";
    /**
     * 在线聊天 用户状态
     */
    String IM_STATUS_ONLINE = "online";

    /**
     * 在线聊天 SOCKET消息类型
     */
    String IM_SOCKET_TYPE = "chatMessage";

    /**
     * 考勤补卡业务状态 （1：同意  2：不同意）
     */
    String SIGN_PATCH_BIZ_STATUS_1 = "1";
    String SIGN_PATCH_BIZ_STATUS_2 = "2";

    /**
     * 公文文档上传自定义路径
     */
    String UPLOAD_CUSTOM_PATH_OFFICIAL = "officialdoc";
    /**
     * 公文文档下载自定义路径
     */
    String DOWNLOAD_CUSTOM_PATH_OFFICIAL = "officaldown";

    /**
     * WPS存储值类别(1 code文号 2 text（WPS模板还是公文发文模板）)
     */
    String WPS_TYPE_1="1";
    String WPS_TYPE_2="2";

    /**
     * 运维部领导		    Maintenance_leader
     * 运维部管理员		Maintenance_admin
     * 司机				Driver
     * 租赁方管理员		Custom_admin
     * 维修厂管理员         Repair_admin
     * 法务合约部管理员	    Legal_admin
     * 市场开发部管理员	    Market_admin
     */
    String Maintenance_leader="Maintenance_leader";
    String Maintenance_admin="Maintenance_admin";
    String Driver="Driver";
    String Custom_admin="Custom_admin";
    String Repair_admin="Repair_admin";
    String Legal_admin="Legal_admin";
    String Market_admin="Market_admin";

    /**
     * 违章导入失败Excel文件名称 违章信息导入异常数据
     */
    String VIOLATE_IMPORT_FAIL_EXCEL_NAME = "VIOLATE_IMPORT_FAIL_EXCEL_NAME.xlsx";
    /**
     * 维修导入失败Excel文件名称 维修信息导入异常数据
     */
    String REPAIR_IMPORT_FAIL_EXCEL_NAME = "REPAIR_IMPORT_FAIL_EXCEL_NAME.xlsx";
    /**
     * 保养导入失败Excel文件名称 保养信息导入异常数据
     */
    String UPKEEP_IMPORT_FAIL_EXCEL_NAME = "UPKEEP_IMPORT_FAIL_EXCEL_NAME.xlsx";
    /**
     * 司机档案导入失败Excel文件名称 司机档案导入异常数据
     */
    String DRIVER_IMPORT_FAIL_EXCEL_NAME = "DRIVER_IMPORT_FAIL_EXCEL_NAME.xlsx";

    String INSURANCE_IMPORT_FAIL_EXCEL_NAME = "INSURANCE_IMPORT_FAIL_EXCEL_NAME.xlsx";
    /**
     * 加油充电导入失败Excel文件名称 加油充电导入异常数据
     */
    String REFUEL_CHARGE_RECORD_FAIL_EXCEL_NAME = "REFUEL_CHARGE_RECORD_FAIL_EXCEL_NAME.xlsx";

    /**
     * 非法字符
     */
    String SPECIAL_CHAR = "[\"'{};<>!@#$%^&*|\\\\]";

    /**
     *
     */
    String IS_INNER = "Is-Inner";

	public static Double formatDouble(double price) {
		return new Double(df2.format(price));
	}

	public static boolean checkFileUrl(String fileUrl,int max) {
		if(StringUtils.hasLength(fileUrl)) {
			if(fileUrl.split(",").length>max) {
				return true;
			}
		}
		return false;
	}


}
