ValuePool.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. package cn.com.ty.lift.common.utils;
  2. import java.time.LocalDate;
  3. import java.time.LocalDateTime;
  4. import java.time.LocalTime;
  5. import java.util.Objects;
  6. /**
  7. * 系统常量池
  8. * Copy to jodd.util
  9. *
  10. * @author wcz
  11. * @since 2020/5/8
  12. */
  13. public interface ValuePool {
  14. String AMPERSAND = "&";
  15. String AND = "and";
  16. String AT = "@";
  17. String ASTERISK = "*";
  18. String STAR = ASTERISK;
  19. String BACK_SLASH = "\\";
  20. String COLON = ":";
  21. String COMMA = ",";
  22. String DASH = "-";
  23. String DOLLAR = "$";
  24. String DOT = ".";
  25. String DOTDOT = "..";
  26. String DOT_CLASS = ".class";
  27. String DOT_JAVA = ".java";
  28. String EMPTY = "";
  29. String EQUALS = "=";
  30. String FALSE = "false";
  31. String SLASH = "/";
  32. String HASH = "#";
  33. String HAT = "^";
  34. String LEFT_BRACE = "{";
  35. String LEFT_BRACKET = "(";
  36. String LEFT_CHEV = "<";
  37. String NEWLINE = "\n";
  38. String N = "n";
  39. String NO = "no";
  40. String NULL = "null";
  41. String OFF = "off";
  42. String ON = "on";
  43. String PERCENT = "%";
  44. String PIPE = "|";
  45. String PLUS = "+";
  46. String QUESTION_MARK = "?";
  47. String EXCLAMATION_MARK = "!";
  48. String QUOTE = "\"";
  49. String RETURN = "\r";
  50. String TAB = "\t";
  51. String RIGHT_BRACE = "}";
  52. String RIGHT_BRACKET = ")";
  53. String RIGHT_CHEV = ">";
  54. String SEMICOLON = ";";
  55. String SINGLE_QUOTE = "'";
  56. String SPACE = " ";
  57. String LEFT_SQ_BRACKET = "[";
  58. String RIGHT_SQ_BRACKET = "]";
  59. String TRUE = "true";
  60. String UNDERSCORE = "_";
  61. String UTF_8 = "UTF-8";
  62. String ISO_8859_1 = "ISO-8859-1";
  63. String Y = "y";
  64. String YES = "yes";
  65. String ONE = "1";
  66. String ZERO = "0";
  67. String DOLLAR_LEFT_BRACE = "${";
  68. String HASH_LEFT_BRACE = "#{";
  69. String CRLF = "\r\n";
  70. //HTML
  71. String HTML_NBSP = "&nbsp;";
  72. String HTML_AMP = "&amp";
  73. String HTML_QUOTE = "&quot;";
  74. String HTML_LT = "&lt;";
  75. String HTML_GT = "&gt;";
  76. // ----------------------------------------------------------------log
  77. String LOG_PREFIX = "###| ";
  78. String LOG_LINE = "============================================================";
  79. String LOG_GLOBAL_EXCEPTION_LINE = "====================== GlobalDefaultException ======================";
  80. String LOG_URL = LOG_PREFIX + "URL : ";
  81. String LOG_IP = LOG_PREFIX + "IP : ";
  82. String LOG_CLASS_METHOD = LOG_PREFIX + "CLASS_METHOD : ";
  83. String LOG_ARGS = LOG_PREFIX + "ARGS : ";
  84. String LOG_RESPONSE = LOG_PREFIX + "RESPONSE : ";
  85. String LOG_STATUS = LOG_PREFIX + "STATUS : ";
  86. String LOG_EXCEPTION = LOG_PREFIX + "EXCEPTION : ";
  87. //是否打印全部的结果
  88. boolean LOG_PRINT_ALL = false;
  89. // 结果字符串 > LOG_PRINT_MAX ,格式化打印首尾(LOG_PRINT_MAX / 2)部分,中间省略
  90. int LOG_PRINT_MAX = 1000;
  91. // 方法处理耗时 > LOG_GOOD_TIME,日志到warn中
  92. long LOG_GOOD_TIME = 10 * 1000;
  93. // ---------------------------------------------------------------- array
  94. String[] EMPTY_ARRAY = new String[0];
  95. byte[] BYTES_NEW_LINE = NEWLINE.getBytes();
  96. long PLATFORM_IDENTIFICATION = 10086;
  97. // ---------------推送相关-------------------------------------------------
  98. //android平台的推送
  99. String PUSH_QUEUE_ANDROID_TOKEN = "liftmanager_queue_android_token";
  100. //ios平台的推送
  101. String PUSH_QUEUE_IOS_TOKEN = "liftmanager_queue_ios_token";
  102. //android全平台的推送
  103. String PUSH_QUEUE_ANDROID_ALL = "liftmanager_queue_android_all";
  104. //ios全平台的推送
  105. String PUSH_QUEUE_IOS_ALL = "liftmanager_queue_ios_all";
  106. //一次最多推送的账号个数
  107. int PUSH_MAX_SIZE = 1000;
  108. //消息推送失败后重新尝试的最多次数
  109. int PUSH_TRY_MAX_TIMES = 100;
  110. int PUSH_DEVICE_MODEL_ANDROID = 1;
  111. int PUSH_DEVICE_MODEL_IOS = 2;
  112. String PATTERN_NAME = "^[\u4e00-\u9fa5a-zA-Z0-9·.。;&\\s]{1,20}$";
  113. String PATTERN_TELEPHONE = "^1[345789]\\d{9}|0[1-9](\\d{1,2}\\-?)[1-9]\\d{6,7}$";
  114. static String beginTimeToEndTimeIllegal(LocalDate begin, LocalDate end) {
  115. return String.format("开始时间(%tF)不能晚于结束时间(%tF)", begin, end);
  116. }
  117. //======================年检相关状态值和判断方法======================================
  118. /**
  119. * 年检待完成
  120. */
  121. int INSPECTION_STATUS_TO_DO = 0;
  122. int INSPECTION_STATUS_COMPLETE = 1;
  123. int INSPECTION_STATUS_OVERDUE = 2;
  124. /**
  125. * 年检 第一阶段
  126. */
  127. int INSPECTION_STEP_ONE = 1;
  128. String INSPECTION_STEP_ZERO_DESC = "确认操作";
  129. String INSPECTION_STEP_ONE_DESC = "自检阶段";
  130. String INSPECTION_STEP_TWO_DESC = "报检阶段";
  131. String INSPECTION_STEP_THREE_DESC = "场检阶段";
  132. String INSPECTION_STEP_FOUR_DESC = "确认阶段";
  133. /**
  134. * 年检 第二阶段
  135. */
  136. int INSPECTION_STEP_TWO = 2;
  137. /**
  138. * 年检 第三阶段
  139. */
  140. int INSPECTION_STEP_THREE = 3;
  141. /**
  142. * 年检 第四阶段
  143. */
  144. int INSPECTION_STEP_FOUR = 4;
  145. /**
  146. * 1 维保工确认年检计划
  147. */
  148. int INSPECTION_STAGE_CONFIRM = 1;
  149. /**
  150. * 2 维保工上传自检报告,选择自检时间 或者 文员设置 是否检查限速器和荷载年检设置,
  151. * 文员也可以上传自检报告或者确认自检报告和自检时间,自检时间以最后设置的为准
  152. */
  153. int INSPECTION_STAGE_SELFCHECK = 2;
  154. /**
  155. * 3 企业文员确认现场检验时间
  156. * 录入人员信息,政府质检,企业质检,联系电话
  157. */
  158. int INSPECTION_STAGE_CONFIRM_CHECK = 3;
  159. /**
  160. * 4 维保工上传检验结果
  161. */
  162. int INSPECTION_STAGE_UPLOAD_CHECK = 4;
  163. /**
  164. * 5 企业文员确认检验结果-合格 --> 不能算年检超期
  165. */
  166. int INSPECTION_STAGE_CHECK_QUALIFIED = 5;
  167. /**
  168. * 6 企业文员确认检验结果-整改 --> 回到第二阶段
  169. */
  170. int INSPECTION_STAGE_CHECK_RECTIFICATION = 6;
  171. /**
  172. * 7 企业文员确认检验结果-不合格 --> 可以算年检超期
  173. */
  174. int INSPECTION_STAGE_CHECK_UNQUALIFIED = 7;
  175. /**
  176. * 8 维保工上传年检报告和合格证
  177. */
  178. int INSPECTION_STAGE_UPLOAD_CERT_REPORT = 8;
  179. /**
  180. * 9 企业文员确认年检报告和合格证-合格
  181. */
  182. int INSPECTION_STAGE_CERT_REPORT_QUALIFIED = 9;
  183. /**
  184. * 10 企业文员确认年检报告和合格证-不合格 -->停用电梯
  185. */
  186. int INSPECTION_STAGE_CERT_REPORT_UNQUALIFIED = 10;
  187. String INSPECTION_NOT_EXIST = "年检不存在,请确认年检计划";
  188. String INSPECTION_EXIST_SAME = "年检计划已存在。";
  189. String INSPECTION_SELF_CHECK_IMAGE_COUNT = "自检图片不得超过三张。";
  190. LocalDate INSPECTION_MIN_PLAN_DATE = LocalDate.of(1970,1,1);
  191. static String inspectionStepToNextIllegal(String previous, String current) {
  192. return String.format("请先完成%s再进行%s操作", previous, current);
  193. }
  194. static String inspectionCurrentStepStatusIllegal(int currentStepStatus, String step) {
  195. return String.format("年检当前状态(%s),不能进行%s操作", currentStepStatus, step);
  196. }
  197. static String inspectionNewStepStatusIllegal(int newStepStatus, String step) {
  198. return String.format("年检新状态(%s),不能进行%s操作", newStepStatus, step);
  199. }
  200. static String inspectionSetPlanDateIllegal(LocalDate previous, LocalDate deadline) {
  201. return String.format("上次年检时间%tF,下次年检设置%tF之前有效", previous, deadline);
  202. }
  203. static String inspectionOptionOnStageIllegal(String stage) {
  204. return String.format("年检必须在%s才能操作", stage);
  205. }
  206. //===================急修相关状态值和判断方法======================================
  207. /**
  208. * 急修状态(-1 暂停中)
  209. */
  210. int EMERGENCY_STATE_STOPPING = -1;
  211. /**
  212. * 急修状态(0 待修理)
  213. */
  214. int EMERGENCY_STATE_TO_DO = 0;
  215. /**
  216. * 急修状态(1 修理中)
  217. */
  218. int EMERGENCY_STATE_DOING = 1;
  219. /**
  220. * 急修状态(2 完成)
  221. */
  222. int EMERGENCY_STATE_COMPLETE = 2;
  223. /**
  224. * 急修状态(3 关闭)
  225. */
  226. int EMERGENCY_STATE_CLOSE = 3;
  227. String EMERGENCY_NOT_EXIST = "急修记录不存在,请核查";
  228. String EMERGENCY_COST_NOT_EXIST = "急修收费项不存在,请核查";
  229. String EMERGENCY_FAULT_MISSING = "缺少电梯故障项";
  230. String EMERGENCY_HAVE_REPAIRING = "该电梯存在未完成的急修,无法创建";
  231. String EMERGENCY_HAD_TAKEN = "急修已经接单,不能转派";
  232. String EMERGENCY_MUST_TO_DO = "急修状态为待处理才能操作";
  233. String EMERGENCY_MUST_IN_DOING = "急修状态为处理中才能操作";
  234. String EMERGENCY_MUST_COMPLETE = "急修完成后才能操作";
  235. String EMERGENCY_HAD_EVALUATE = "急修已经评价了";
  236. String EMERGENCY_COST_INCORRECT_AMOUNT = "急修收费项金额有误";
  237. String EMERGENCY_LIFT_IS_IN_INSPECTION = "电梯正在年检中,无法创建急修";
  238. static String emergencyProcessTimeIllegal(String options, LocalDateTime optionsTime) {
  239. return String.format("急修处理时间不能早于上次操作时间(%s: %tF %tT)", options, optionsTime, optionsTime);
  240. }
  241. //===================上传相关状态值和判断方法======================================
  242. /**
  243. * 图片上传最大大小10M * 1024 * 1024
  244. */
  245. long UPLOAD_MAX_SIZE_PIC = 10 << 20;
  246. String UPLOAD_MAX_SIZE_PIC_DESC = "图片文件大小不超过10M";
  247. /**
  248. * 文件上传最大大小50M * 1024 * 1024
  249. */
  250. long UPLOAD_MAX_SIZE_FILE = 50 << 20;
  251. String UPLOAD_MAX_SIZE_FILE_DESC = "常用文件大小不超过50M";
  252. /**
  253. * 视频上传最大大小100M * 1024 * 1024
  254. */
  255. long UPLOAD_MAX_SIZE_VIDEO = 100 << 20;
  256. String UPLOAD_MAX_SIZE_VIDEO_DESC = "视频文件大小不超过100M";
  257. /**
  258. * 上传图片文件类型
  259. */
  260. String[] UPLOAD_TYPE_PICS = {".jpg", ".jpeg", ".png", ".bmp", ".gif"};
  261. /**
  262. * 上传其他文件类型
  263. */
  264. String[] UPLOAD_TYPE_FILES = {".pdf", ".txt", ".rar", ".zip", ".7z", ".xls", ".xlsx", ".doc", ".docx", ".ppt", ".pptx"};
  265. /**
  266. * 上传视频文件类型
  267. */
  268. String[] UPLOAD_TYPE_VIDEOS = {".mov", ".mp4", ".avi", ".mpg", ".mpeg", ".rm", ".rmvb", ".wmv"};
  269. String UPLOAD_DATA_MISSING = "没有接收到文件数据";
  270. String UPLOAD_FAIL = "上传文件失败";
  271. String UPLOAD_FORMAT_NOT_SUPPORT = "文件格式暂时不支持";
  272. String UPLOAD_FORMAT_MISSING = "原文件名解析不到文件格式";
  273. String UPLOAD_FORMAT_ILLEGAL = "原文件名不合法";
  274. String UPLOAD_ORIGINAL_NAME_MISSING = "未解析到原文件名";
  275. //===================操作证相关======================================
  276. String LIFT_CERT_MUST_TO_AUDIT = "操作证待审核才能操作";
  277. String LIFT_CERT_HAD_EXIST = "操作证已存在,请核查";
  278. String LIFT_CERT_NOT_EXIST = "操作证不存在,请核查";
  279. //===================打卡相关======================================
  280. String ATTEND_SET_AM_TIME = "请设置上午的上/下班时间";
  281. String ATTEND_SET_PM_TIME = "请设置下午的上/下班时间";
  282. String ATTEND_SET_OT_TIME = "请设置加班的上/下班时间";
  283. static String attendInvalidAmTime(LocalTime topTime, LocalTime downTime) {
  284. return String.format("上午的上(%tT)/下班(%tT)时间有误", topTime, downTime);
  285. }
  286. static String attendInvalidPmTime(LocalTime topTimePm, LocalTime downTimePm) {
  287. return String.format("下午的上(%tT)/下班(%tT)时间有误", topTimePm, downTimePm);
  288. }
  289. static String attendInvalidOtTime(LocalTime topTimeOt, LocalTime downTimeOt) {
  290. return String.format("加班的上(%tT)/下班(%tT)时间有误", topTimeOt, downTimeOt);
  291. }
  292. String ATTEND_AM_TOP_CLOCK = "上午上班打卡";
  293. String ATTEND_AM_DOWN_CLOCK = "上午下班打卡";
  294. String ATTEND_PM_TOP_CLOCK = "下午上班打卡";
  295. String ATTEND_PM_DOWN_CLOCK = "下午下班打卡";
  296. String ATTEND_OT_TOP_CLOCK = "加班上班打卡";
  297. String ATTEND_OT_DOWN_CLOCK = "加班下班打卡";
  298. String ATTEND_HAD_CLOCK = "打卡记录已存在。";
  299. String ATTEND_MISSING_TIME = "请至少设置一组打卡时间";
  300. static String attendAmDownPmTop(LocalTime downTime, LocalTime topTimePm) {
  301. return String.format("下午的上班(%tT)时间不得早于上午的下班(%tT)时间", topTimePm, downTime);
  302. }
  303. static String attendPmDownOtTop(LocalTime downTimePm, LocalTime topTimeOt) {
  304. return String.format("加班的上班(%tT)时间不得早于下午的下班(%tT)时间", topTimeOt, downTimePm);
  305. }
  306. String ATTEND_MAINTAIN_COMPANY_MISSING = "维保公司不存在,请核查";
  307. String ATTEND_MISSING = "打卡记录不存在,请核查";
  308. String ATTEND_UNKNOWN_TYPE = "打卡类型未知,请核查";
  309. //===================导入相关======================================
  310. String EXCEL_IMPORT_DATA_MISSING = "未解析到有效数据";
  311. String EXCEL_IMPORT_FORMAT_SUPPORT = "文件格式不支持,暂时只支持xls,xlsx";
  312. String[] EXCEL_IMPORT_FORMATS = {".xls", ".xlsx"};
  313. /**
  314. * 一次导入表格的最大有效记录数
  315. */
  316. int EXCEL_IMPORT_MAX_ROWS_ONETIME = 5000;
  317. String EXCEL_IMPORT_MAX_ROWS_DESC = "一次性导入不能超过5000条数据";
  318. //三元运算,判断object是否为空,为空返回默认值
  319. static <T> T nullable(T object, T valueForNull) {
  320. return Objects.isNull(object) ? valueForNull : object;
  321. }
  322. //===================维保相关======================================
  323. String MAINTENANCE_RECORD_NOT_EXIST = "维保记录不存在,请核查";
  324. String MAINTENANCE_PLAN_NOT_EXIST = "维保计划不存在,请核查";
  325. String MAINTENANCE_OPTION_NOT_EXIST = "维保操作项不存在,请核查";
  326. String MAINTENANCE_RECORD_MUST_AUDITING = "维保单必须待审核才能操作,请核查";
  327. String MAINTENANCE_RECORD_MUST_COMPLETE = "维保单必须完成后才能操作,请核查";
  328. String MAINTENANCE_HAD_EVALUATE = "维保已经评价了";
  329. //法规维保间隔15天
  330. int MAINTENANCE_INTERVAL = 15;
  331. int EVALUATE_SOURCE_MAINTENANCE = 1;
  332. int EVALUATE_SOURCE_EMERGENCY = 2;
  333. String SYSTEM_USER_DIR = System.getProperty("user.dir");
  334. }