ValuePool.java 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289
  1. package cn.com.ty.lift.common.utils;
  2. import java.util.Objects;
  3. /**
  4. * Copy to jodd.util
  5. * <p>
  6. * Pool of <code>String</code> constants to prevent repeating of
  7. * hard-coded <code>String</code> literals in the code.
  8. * Due to fact that these are <code>public static final</code>
  9. * they will be inlined by java compiler and
  10. * reference to this class will be dropped.
  11. * There is <b>no</b> performance gain of using this pool.
  12. * Read: https://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10.5
  13. * <ul>
  14. * <li>Literal strings within the same class in the same package represent references to the same <code>String</code> object.</li>
  15. * <li>Literal strings within different classes in the same package represent references to the same <code>String</code> object.</li>
  16. * <li>Literal strings within different classes in different packages likewise represent references to the same <code>String</code> object.</li>
  17. * <li>Strings computed by constant expressions are computed at compile time and then treated as if they were literals.</li>
  18. * <li>Strings computed by concatenation at run time are newly created and therefore distinct.</li>
  19. * </ul>
  20. */
  21. public interface ValuePool {
  22. String AMPERSAND = "&";
  23. String AND = "and";
  24. String AT = "@";
  25. String ASTERISK = "*";
  26. String STAR = ASTERISK;
  27. String BACK_SLASH = "\\";
  28. String COLON = ":";
  29. String COMMA = ",";
  30. String DASH = "-";
  31. String DOLLAR = "$";
  32. String DOT = ".";
  33. String DOTDOT = "..";
  34. String DOT_CLASS = ".class";
  35. String DOT_JAVA = ".java";
  36. String EMPTY = "";
  37. String EQUALS = "=";
  38. String FALSE = "false";
  39. String SLASH = "/";
  40. String HASH = "#";
  41. String HAT = "^";
  42. String LEFT_BRACE = "{";
  43. String LEFT_BRACKET = "(";
  44. String LEFT_CHEV = "<";
  45. String NEWLINE = "\n";
  46. String N = "n";
  47. String NO = "no";
  48. String NULL = "null";
  49. String OFF = "off";
  50. String ON = "on";
  51. String PERCENT = "%";
  52. String PIPE = "|";
  53. String PLUS = "+";
  54. String QUESTION_MARK = "?";
  55. String EXCLAMATION_MARK = "!";
  56. String QUOTE = "\"";
  57. String RETURN = "\r";
  58. String TAB = "\t";
  59. String RIGHT_BRACE = "}";
  60. String RIGHT_BRACKET = ")";
  61. String RIGHT_CHEV = ">";
  62. String SEMICOLON = ";";
  63. String SINGLE_QUOTE = "'";
  64. String SPACE = " ";
  65. String LEFT_SQ_BRACKET = "[";
  66. String RIGHT_SQ_BRACKET = "]";
  67. String TRUE = "true";
  68. String UNDERSCORE = "_";
  69. String UTF_8 = "UTF-8";
  70. String ISO_8859_1 = "ISO-8859-1";
  71. String Y = "y";
  72. String YES = "yes";
  73. String ONE = "1";
  74. String ZERO = "0";
  75. String DOLLAR_LEFT_BRACE = "${";
  76. String HASH_LEFT_BRACE = "#{";
  77. String CRLF = "\r\n";
  78. //HTML
  79. String HTML_NBSP = "&nbsp;";
  80. String HTML_AMP = "&amp";
  81. String HTML_QUOTE = "&quot;";
  82. String HTML_LT = "&lt;";
  83. String HTML_GT = "&gt;";
  84. // ----------------------------------------------------------------log
  85. String LOG_PREFIX = "###| ";
  86. String LOG_LINE = "============================================================";
  87. String LOG_GLOBAL_EXCEPTION_LINE = "====================== GlobalDefaultException ======================";
  88. String LOG_URL = LOG_PREFIX + "URL : ";
  89. String LOG_IP = LOG_PREFIX + "IP : ";
  90. String LOG_CLASS_METHOD = LOG_PREFIX + "CLASS_METHOD : ";
  91. String LOG_ARGS = LOG_PREFIX + "ARGS : ";
  92. String LOG_RESPONSE = LOG_PREFIX + "RESPONSE : ";
  93. String LOG_STATUS = LOG_PREFIX + "STATUS : ";
  94. String LOG_EXCEPTION = LOG_PREFIX + "EXCEPTION : ";
  95. //是否打印全部的结果
  96. boolean LOG_PRINT_ALL = false;
  97. // 结果字符串 > LOG_PRINT_MAX ,格式化打印首尾(LOG_PRINT_MAX / 2)部分,中间省略
  98. int LOG_PRINT_MAX = 1000;
  99. // 方法处理耗时 > LOG_GOOD_TIME,日志到warn中
  100. long LOG_GOOD_TIME = 10 * 1000;
  101. // ---------------------------------------------------------------- array
  102. String[] EMPTY_ARRAY = new String[0];
  103. byte[] BYTES_NEW_LINE = NEWLINE.getBytes();
  104. long PLATFORM_IDENTIFICATION = 10086;
  105. //android平台的推送
  106. String QUEUE_ANDROID_TOKEN = "liftmanager_queue_android_token";
  107. //ios平台的推送
  108. String QUEUE_IOS_TOKEN = "liftmanager_queue_ios_token";
  109. //android全平台的推送
  110. String QUEUE_ANDROID_ALL = "liftmanager_queue_android_all";
  111. //ios全平台的推送
  112. String QUEUE_IOS_ALL = "liftmanager_queue_ios_all";
  113. //一次最多推送的账号个数
  114. int PUSH_MAX_SIZE = 1000;
  115. //消息推送失败后重新尝试的最多次数
  116. int PUSH_TRY_MAX_TIMES = 100;
  117. String PATTERN_NAME = "^[\u4e00-\u9fa5a-zA-Z0-9·.。;&\\s]{1,20}$";
  118. String PATTERN_TELEPHONE = "^1[345789]\\d{9}|0[1-9](\\d{1,2}\\-?)[1-9]\\d{6,7}$";
  119. //======================年检相关状态值和判断方法======================================
  120. /**
  121. * 年检待完成
  122. */
  123. int INSPECTION_STATUS_TO_DO = 0;
  124. int INSPECTION_STATUS_COMPLETE = 1;
  125. int INSPECTION_STATUS_OVERDUE = 2;
  126. /**
  127. * 年检 第一阶段
  128. */
  129. int INSPECTION_STEP_ONE = 1;
  130. /**
  131. * 年检 第二阶段
  132. */
  133. int INSPECTION_STEP_TWO = 2;
  134. /**
  135. * 年检 第三阶段
  136. */
  137. int INSPECTION_STEP_THREE = 3;
  138. /**
  139. * 年检 第四阶段
  140. */
  141. int INSPECTION_STEP_FOUR = 4;
  142. /**
  143. * 1 维保工确认年检计划
  144. */
  145. int INSPECTION_STAGE_CONFIRM = 1;
  146. /**
  147. * 2 维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
  148. * 文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
  149. */
  150. int INSPECTION_STAGE_SELFCHECK = 2;
  151. /**
  152. * 3 企业文员确认现场检验时间
  153. * 录入人员信息,政府质检,企业质检,联系电话
  154. */
  155. int INSPECTION_STAGE_CONFIRM_CHECK = 3;
  156. /**
  157. * 4 维保工上传检验结果
  158. */
  159. int INSPECTION_STAGE_UPLOAD_CHECK = 4;
  160. /**
  161. * 5 企业文员确认检验结果-合格 --> 不能算年检超期
  162. */
  163. int INSPECTION_STAGE_CHECK_QUALIFIED = 5;
  164. /**
  165. * 6 企业文员确认检验结果-整改 --> 回到第二阶段
  166. */
  167. int INSPECTION_STAGE_CHECK_RECTIFICATION = 6;
  168. /**
  169. * 7 企业文员确认检验结果-不合格 --> 可以算年检超期
  170. */
  171. int INSPECTION_STAGE_CHECK_UNQUALIFIED = 7;
  172. /**
  173. * 8 维保工上传年检报告和合格证
  174. */
  175. int INSPECTION_STAGE_UPLOAD_CERT_REPORT = 8;
  176. /**
  177. * 9 企业文员确认年检报告和合格证-合格
  178. */
  179. int INSPECTION_STAGE_CERT_REPORT_QUALIFIED = 9;
  180. /**
  181. * 10 企业文员确认年检报告和合格证-不合格 -->停用电梯
  182. */
  183. int INSPECTION_STAGE_CERT_REPORT_UNQUALIFIED = 10;
  184. String INSPECTION_NOT_EXIST = "年检不存在,请确认年检计划";
  185. //===================急修相关状态值和判断方法======================================
  186. /**
  187. * 急修状态(-1 暂停中)
  188. */
  189. int EMERGENCY_STATE_STOPPING = -1;
  190. /**
  191. * 急修状态(0 待修理)
  192. */
  193. int EMERGENCY_STATE_TO_DO = 0;
  194. /**
  195. * 急修状态(1 修理中)
  196. */
  197. int EMERGENCY_STATE_DOING = 1;
  198. /**
  199. * 急修状态(2 完成)
  200. */
  201. int EMERGENCY_STATE_COMPLETE = 2;
  202. /**
  203. * 急修状态(3 关闭)
  204. */
  205. int EMERGENCY_STATE_CLOSE = 3;
  206. String EMERGENCY_NOT_EXIST = "急修记录不存在,请核查";
  207. String EMERGENCY_COST_NOT_EXIST = "急修收费项不存在,请核查";
  208. String EMERGENCY_FAULT_MISSING = "缺少电梯故障项";
  209. String EMERGENCY_HAVE_REPAIRING = "该电梯存在未完成的急修,无法创建";
  210. String EMERGENCY_HAD_TAKEN = "急修已经接单,不能转派";
  211. String EMERGENCY_MUST_TO_DO = "待急修才能操作";
  212. String EMERGENCY_MUST_IN_DOING = "急修中才能操作";
  213. String EMERGENCY_MUST_COMPLETE = "急修完成后才能操作";
  214. String EMERGENCY_HAD_EVALUATE = "急修已经评价了";
  215. String EMERGENCY_COST_INCORRECT_AMOUNT = "急修收费项金额有误";
  216. String EMERGENCY_LIFT_IS_IN_INSPECTION = "电梯正在年检中,无法创建";
  217. //===================上传相关状态值和判断方法======================================
  218. /**
  219. * 图片上传最大大小10M * 1024 * 1024
  220. */
  221. long UPLOAD_MAX_SIZE_PIC = 10 << 20;
  222. String UPLOAD_MAX_SIZE_PIC_DESC = "文件大小不超过10M";
  223. /**
  224. * 文件上传最大大小50M * 1024 * 1024
  225. */
  226. long UPLOAD_MAX_SIZE_FILE = 50 << 20;
  227. String UPLOAD_MAX_SIZE_FILE_DESC = "文件大小不超过50M";
  228. /**
  229. * 视频上传最大大小100M * 1024 * 1024
  230. */
  231. long UPLOAD_MAX_SIZE_VIDEO = 100 << 20;
  232. String UPLOAD_MAX_SIZE_VIDEO_DESC = "文件大小不超过100M";
  233. /**
  234. * 上传图片文件类型
  235. */
  236. String[] UPLOAD_PICS = {".jpg", ".jpeg", ".png", ".bmp", ".gif"};
  237. /**
  238. * 上传其他文件类型
  239. */
  240. String[] UPLOAD_FILES = {".pdf", ".txt", ".rar", ".zip", ".7z", ".xls", ".xlsx", ".doc", ".docx", ".ppt", ".pptx"};
  241. /**
  242. * 上传视频文件类型
  243. */
  244. String[] UPLOAD_VIDEOS = {".mov", ".mp4", ".avi", ".mpg", ".mpeg", ".rm", ".rmvb", ".wmv"};
  245. String UPLOAD_DATA_MISSING = "没有接收到文件数据";
  246. String UPLOAD_FAIL = "上传文件失败";
  247. String UPLOAD_FORMAT_NOT_SUPPORT = "文件格式暂时不支持";
  248. String UPLOAD_FORMAT_MISSING = "原文件名解析不到文件格式";
  249. String UPLOAD_FORMAT_ILLEGAL = "原文件名不合法";
  250. String UPLOAD_ORIGINAL_NAME_MISSING = "未解析到原文件名";
  251. //===================操作证相关======================================
  252. String LIFT_CERT_MUST_TO_AUDIT = "操作证待审核才能操作";
  253. String LIFT_CERT_HAD_EXIST = "操作证已存在,请核查";
  254. String LIFT_CERT_NOT_EXIST = "操作证不存在,请核查";
  255. //===================打卡相关======================================
  256. String ATTEND_SET_AM_TIME = "请设置上午的上/下班时间";
  257. String ATTEND_SET_PM_TIME = "请设置下午的上/下班时间";
  258. String ATTEND_SET_OT_TIME = "请设置加班的上/下班时间";
  259. String ATTEND_INVALID_AM_TIME = "上午的上(%tT)/下班(%tT)时间有误";
  260. String ATTEND_INVALID_PM_TIME = "下午的上(%tT)/下班(%tT)时间有误";
  261. String ATTEND_INVALID_OT_TIME = "加班的上(%tT)/下班(%tT)时间有误";
  262. String ATTEND_AM_TOP_CLOCK = "上午上班打卡";
  263. String ATTEND_AM_DOWN_CLOCK = "上午下班打卡";
  264. String ATTEND_PM_TOP_CLOCK = "下午上班打卡";
  265. String ATTEND_PM_DOWN_CLOCK = "下午下班打卡";
  266. String ATTEND_OT_TOP_CLOCK = "加班上班打卡";
  267. String ATTEND_OT_DOWN_CLOCK = "加班下班打卡";
  268. String ATTEND_HAD_CLOCK = "记录已存在(打卡时间:%tF %tT)";
  269. String ATTEND_MISSING_TIME = "请至少设置一组打卡时间";
  270. String ATTEND_AM_DOWN_PM_TOP = "下午的上班(%tT)时间不得早于上午的下班(%tT)时间";
  271. String ATTEND_PM_DOWN_OT_TOP = "加班的上班(%tT)时间不得早于下午的下班(%tT)时间";
  272. String ATTEND_MAINTAIN_COMPANY_MISSING = "维保公司不存在,请核查";
  273. //===================导入相关======================================
  274. String EXCEL_IMPORT_DATA_MISSING = "未解析到有效数据";
  275. String EXCEL_IMPORT_FORMAT_SUPPORT = "文件格式不支持,暂时只支持xls,xlsx";
  276. String[] EXCEL_IMPORT_FORMATS = {".xls", ".xlsx"};
  277. /**
  278. * 一次导入表格的最大有效记录数
  279. */
  280. int EXCEL_IMPORT_MAX_ROWS_ONETIME = 5000;
  281. String EXCEL_IMPORT_MAX_ROWS_DESC = "一次性导入不能超过5000条数据";
  282. static <T> T nullable(T object, T nullable) {
  283. return Objects.isNull(object) ? nullable : object;
  284. }
  285. }