package cn.com.ty.lift.common.utils;
import java.util.Objects;
/**
* Copy to jodd.util
*
* Pool of String
constants to prevent repeating of
* hard-coded String
literals in the code.
* Due to fact that these are public static final
* they will be inlined by java compiler and
* reference to this class will be dropped.
* There is no performance gain of using this pool.
* Read: https://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5
*
* - Literal strings within the same class in the same package represent references to the same
String
object.
* - Literal strings within different classes in the same package represent references to the same
String
object.
* - Literal strings within different classes in different packages likewise represent references to the same
String
object.
* - Strings computed by constant expressions are computed at compile time and then treated as if they were literals.
* - Strings computed by concatenation at run time are newly created and therefore distinct.
*
*/
public interface ValuePool {
String AMPERSAND = "&";
String AND = "and";
String AT = "@";
String ASTERISK = "*";
String STAR = ASTERISK;
String BACK_SLASH = "\\";
String COLON = ":";
String COMMA = ",";
String DASH = "-";
String DOLLAR = "$";
String DOT = ".";
String DOTDOT = "..";
String DOT_CLASS = ".class";
String DOT_JAVA = ".java";
String EMPTY = "";
String EQUALS = "=";
String FALSE = "false";
String SLASH = "/";
String HASH = "#";
String HAT = "^";
String LEFT_BRACE = "{";
String LEFT_BRACKET = "(";
String LEFT_CHEV = "<";
String NEWLINE = "\n";
String N = "n";
String NO = "no";
String NULL = "null";
String OFF = "off";
String ON = "on";
String PERCENT = "%";
String PIPE = "|";
String PLUS = "+";
String QUESTION_MARK = "?";
String EXCLAMATION_MARK = "!";
String QUOTE = "\"";
String RETURN = "\r";
String TAB = "\t";
String RIGHT_BRACE = "}";
String RIGHT_BRACKET = ")";
String RIGHT_CHEV = ">";
String SEMICOLON = ";";
String SINGLE_QUOTE = "'";
String SPACE = " ";
String LEFT_SQ_BRACKET = "[";
String RIGHT_SQ_BRACKET = "]";
String TRUE = "true";
String UNDERSCORE = "_";
String UTF_8 = "UTF-8";
String ISO_8859_1 = "ISO-8859-1";
String Y = "y";
String YES = "yes";
String ONE = "1";
String ZERO = "0";
String DOLLAR_LEFT_BRACE = "${";
String HASH_LEFT_BRACE = "#{";
String CRLF = "\r\n";
//HTML
String HTML_NBSP = " ";
String HTML_AMP = "&";
String HTML_QUOTE = """;
String HTML_LT = "<";
String HTML_GT = ">";
// ----------------------------------------------------------------log
String LOG_PREFIX = "###| ";
String LOG_LINE = "============================================================";
String LOG_GLOBAL_EXCEPTION_LINE = "====================== GlobalDefaultException ======================";
String LOG_URL = LOG_PREFIX + "URL : ";
String LOG_IP = LOG_PREFIX + "IP : ";
String LOG_CLASS_METHOD = LOG_PREFIX + "CLASS_METHOD : ";
String LOG_ARGS = LOG_PREFIX + "ARGS : ";
String LOG_RESPONSE = LOG_PREFIX + "RESPONSE : ";
String LOG_STATUS = LOG_PREFIX + "STATUS : ";
String LOG_EXCEPTION = LOG_PREFIX + "EXCEPTION : ";
//是否打印全部的结果
boolean LOG_PRINT_ALL = false;
// 结果字符串 > LOG_PRINT_MAX ,格式化打印首尾(LOG_PRINT_MAX / 2)部分,中间省略
int LOG_PRINT_MAX = 1000;
// 方法处理耗时 > LOG_GOOD_TIME,日志到warn中
long LOG_GOOD_TIME = 10 * 1000;
// ---------------------------------------------------------------- array
String[] EMPTY_ARRAY = new String[0];
byte[] BYTES_NEW_LINE = NEWLINE.getBytes();
long PLATFORM_IDENTIFICATION = 10086;
//android平台的推送
String QUEUE_ANDROID_TOKEN = "liftmanager_queue_android_token";
//ios平台的推送
String QUEUE_IOS_TOKEN = "liftmanager_queue_ios_token";
//android全平台的推送
String QUEUE_ANDROID_ALL = "liftmanager_queue_android_all";
//ios全平台的推送
String QUEUE_IOS_ALL = "liftmanager_queue_ios_all";
//一次最多推送的账号个数
int PUSH_MAX_SIZE = 1000;
//消息推送失败后重新尝试的最多次数
int PUSH_TRY_MAX_TIMES = 100;
String PATTERN_NAME = "^[\u4e00-\u9fa5a-zA-Z0-9·.。;&\\s]{1,20}$";
String PATTERN_TELEPHONE = "^1[345789]\\d{9}|0[1-9](\\d{1,2}\\-?)[1-9]\\d{6,7}$";
//======================年检相关状态值和判断方法======================================
/**
* 年检待完成
*/
int INSPECTION_STATUS_TO_DO = 0;
int INSPECTION_STATUS_COMPLETE = 1;
int INSPECTION_STATUS_OVERDUE = 2;
/**
* 年检 第一阶段
*/
int INSPECTION_STEP_ONE = 1;
/**
* 年检 第二阶段
*/
int INSPECTION_STEP_TWO = 2;
/**
* 年检 第三阶段
*/
int INSPECTION_STEP_THREE = 3;
/**
* 年检 第四阶段
*/
int INSPECTION_STEP_FOUR = 4;
/**
* 1 维保工确认年检计划
*/
int INSPECTION_STAGE_CONFIRM = 1;
/**
* 2 维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
* 文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
*/
int INSPECTION_STAGE_SELFCHECK = 2;
/**
* 3 企业文员确认现场检验时间
* 录入人员信息,政府质检,企业质检,联系电话
*/
int INSPECTION_STAGE_CONFIRM_CHECK = 3;
/**
* 4 维保工上传检验结果
*/
int INSPECTION_STAGE_UPLOAD_CHECK = 4;
/**
* 5 企业文员确认检验结果-合格 --> 不能算年检超期
*/
int INSPECTION_STAGE_CHECK_QUALIFIED = 5;
/**
* 6 企业文员确认检验结果-整改 --> 回到第二阶段
*/
int INSPECTION_STAGE_CHECK_RECTIFICATION = 6;
/**
* 7 企业文员确认检验结果-不合格 --> 可以算年检超期
*/
int INSPECTION_STAGE_CHECK_UNQUALIFIED = 7;
/**
* 8 维保工上传年检报告和合格证
*/
int INSPECTION_STAGE_UPLOAD_CERT_REPORT = 8;
/**
* 9 企业文员确认年检报告和合格证-合格
*/
int INSPECTION_STAGE_CERT_REPORT_QUALIFIED = 9;
/**
* 10 企业文员确认年检报告和合格证-不合格 -->停用电梯
*/
int INSPECTION_STAGE_CERT_REPORT_UNQUALIFIED = 10;
String INSPECTION_NOT_EXIST = "年检不存在,请确认年检计划";
//===================急修相关状态值和判断方法======================================
/**
* 急修状态(-1 暂停中)
*/
int EMERGENCY_STATE_STOPPING = -1;
/**
* 急修状态(0 待修理)
*/
int EMERGENCY_STATE_TO_DO = 0;
/**
* 急修状态(1 修理中)
*/
int EMERGENCY_STATE_DOING = 1;
/**
* 急修状态(2 完成)
*/
int EMERGENCY_STATE_COMPLETE = 2;
/**
* 急修状态(3 关闭)
*/
int EMERGENCY_STATE_CLOSE = 3;
String EMERGENCY_NOT_EXIST = "急修记录不存在,请核查";
String EMERGENCY_COST_NOT_EXIST = "急修收费项不存在,请核查";
String EMERGENCY_FAULT_MISSING = "缺少电梯故障项";
String EMERGENCY_HAVE_REPAIRING = "该电梯存在未完成的急修,无法创建";
String EMERGENCY_HAD_TAKEN = "急修已经接单,不能转派";
String EMERGENCY_MUST_TO_DO = "待急修才能操作";
String EMERGENCY_MUST_IN_DOING = "急修中才能操作";
String EMERGENCY_MUST_COMPLETE = "急修完成后才能操作";
String EMERGENCY_HAD_EVALUATE = "急修已经评价了";
String EMERGENCY_COST_INCORRECT_AMOUNT = "急修收费项金额有误";
String EMERGENCY_LIFT_IS_IN_INSPECTION = "电梯正在年检中,无法创建";
//===================上传相关状态值和判断方法======================================
/**
* 图片上传最大大小10M * 1024 * 1024
*/
long UPLOAD_MAX_SIZE_PIC = 10 << 20;
String UPLOAD_MAX_SIZE_PIC_DESC = "文件大小不超过10M";
/**
* 文件上传最大大小50M * 1024 * 1024
*/
long UPLOAD_MAX_SIZE_FILE = 50 << 20;
String UPLOAD_MAX_SIZE_FILE_DESC = "文件大小不超过50M";
/**
* 视频上传最大大小100M * 1024 * 1024
*/
long UPLOAD_MAX_SIZE_VIDEO = 100 << 20;
String UPLOAD_MAX_SIZE_VIDEO_DESC = "文件大小不超过100M";
/**
* 上传图片文件类型
*/
String[] UPLOAD_PICS = {".jpg", ".jpeg", ".png", ".bmp", ".gif"};
/**
* 上传其他文件类型
*/
String[] UPLOAD_FILES = {".pdf", ".txt", ".rar", ".zip", ".7z", ".xls", ".xlsx", ".doc", ".docx", ".ppt", ".pptx"};
/**
* 上传视频文件类型
*/
String[] UPLOAD_VIDEOS = {".mov", ".mp4", ".avi", ".mpg", ".mpeg", ".rm", ".rmvb", ".wmv"};
String UPLOAD_DATA_MISSING = "没有接收到文件数据";
String UPLOAD_FAIL = "上传文件失败";
String UPLOAD_FORMAT_NOT_SUPPORT = "文件格式暂时不支持";
String UPLOAD_FORMAT_MISSING = "原文件名解析不到文件格式";
String UPLOAD_FORMAT_ILLEGAL = "原文件名不合法";
String UPLOAD_ORIGINAL_NAME_MISSING = "未解析到原文件名";
//===================操作证相关======================================
String LIFT_CERT_MUST_TO_AUDIT = "操作证待审核才能操作";
String LIFT_CERT_HAD_EXIST = "操作证已存在,请核查";
String LIFT_CERT_NOT_EXIST = "操作证不存在,请核查";
//===================打卡相关======================================
String ATTEND_SET_AM_TIME = "请设置上午的上/下班时间";
String ATTEND_SET_PM_TIME = "请设置下午的上/下班时间";
String ATTEND_SET_OT_TIME = "请设置加班的上/下班时间";
String ATTEND_INVALID_AM_TIME = "上午的上(%tT)/下班(%tT)时间有误";
String ATTEND_INVALID_PM_TIME = "下午的上(%tT)/下班(%tT)时间有误";
String ATTEND_INVALID_OT_TIME = "加班的上(%tT)/下班(%tT)时间有误";
String ATTEND_AM_TOP_CLOCK = "上午上班打卡";
String ATTEND_AM_DOWN_CLOCK = "上午下班打卡";
String ATTEND_PM_TOP_CLOCK = "下午上班打卡";
String ATTEND_PM_DOWN_CLOCK = "下午下班打卡";
String ATTEND_OT_TOP_CLOCK = "加班上班打卡";
String ATTEND_OT_DOWN_CLOCK = "加班下班打卡";
String ATTEND_HAD_CLOCK = "记录已存在(打卡时间:%tF %tT)";
String ATTEND_MISSING_TIME = "请至少设置一组打卡时间";
String ATTEND_AM_DOWN_PM_TOP = "下午的上班(%tT)时间不得早于上午的下班(%tT)时间";
String ATTEND_PM_DOWN_OT_TOP = "加班的上班(%tT)时间不得早于下午的下班(%tT)时间";
String ATTEND_MAINTAIN_COMPANY_MISSING = "维保公司不存在,请核查";
//===================导入相关======================================
String EXCEL_IMPORT_DATA_MISSING = "未解析到有效数据";
String EXCEL_IMPORT_FORMAT_SUPPORT = "文件格式不支持,暂时只支持xls,xlsx";
String[] EXCEL_IMPORT_FORMATS = {".xls", ".xlsx"};
/**
* 一次导入表格的最大有效记录数
*/
int EXCEL_IMPORT_MAX_ROWS_ONETIME = 5000;
String EXCEL_IMPORT_MAX_ROWS_DESC = "一次性导入不能超过5000条数据";
static T nullable(T object, T nullable) {
return Objects.isNull(object) ? nullable : object;
}
}