package com.doumee.core.utils; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.math.BigDecimal; import java.net.URLDecoder; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Constants { public static final String[] ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; public static final int ZERO = 0 ; public static final int ONE = 1 ; public static final int TWO = 2 ; public static final String HK_PARAM ="HK_PARAM" ; public static final String HK_HOST ="HK_HOST" ; public static final String HK_APPKEY ="HK_APPKEY" ; public static final String HK_APPSECRET ="HK_APPSECRET" ; public static final String HK_HTTPS ="HK_HTTPS" ; public static final String HK_PUSH_URL = "HK_PUSH_URL"; public static final String HK_ROOTORG_CODE ="HK_ROOTORG_CODE" ; public static final String HK_ROOTORG_NAME ="HK_ROOTORG_NAME" ; //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验) public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID"; public static final String SELECT_DOORS_VISIT_REQUIRED = "SELECT_DOORS_VISIT_REQUIRED"; public static final String SELECT_DOORS_LW_REQUIRED = "SELECT_DOORS_LW_REQUIRED"; public static final String PROBLEM_LW_REQUIRED = "PROBLEM_LW_REQUIRED"; public static final String PROBLEM_VISIT_REQUIRED = "PROBLEM_VISIT_REQUIRED"; public static final String MDJ_LW_REQUIRED = "MDJ_LW_REQUIRED"; public static final String MDJ_VISIT_REQUIRED = "MDJ_VISIT_REQUIRED"; public static final String EDS_PWD ="!@#$%^&QWERTY" ; public static final String ROOT_PATH = ""; public static final String FILE_DIR = ""; // 访客来访配置 public static final String VISIT_CONFIG = "VISIT_CONFIG"; public static final String MEMBER_IMG = "MEMBER_IMG"; // 劳务来访配置 public static final String LABOR_CONFIG = "LABOR_CONFIG"; public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG"; public static final String CAR_EVENT_IMG = "CAR_EVENT_IMG"; public static final String DEVICE_EVENT_IMG = "DEVICE_EVENT_IMG"; public static final String FTP ="FTP" ; public static final String FTP_HOST ="FTP_HOST" ; public static final String FTP_PORT ="FTP_PORT" ; public static final String FTP_USERNAME ="FTP_USERNAME" ; public static final String FTP_PWD ="FTP_PWD" ; public static final String FTP_RESOURCE_PATH ="FTP_RESOURCE_PATH" ; public static final String ERP_ORGLIST_URL ="ERP_ORGLIST_URL" ; public static final String ERP_USERLIST_URL ="ERP_USERLIST_URL" ; public static final String ERP_APPROVE_URL ="ERP_APPROVE_URL" ; public static final String ERP_USERSTATUS_RL ="ERP_USERSTATUS_RL" ; public static final String ERP ="ERP" ; public static final Integer THREE =3 ; public static final Integer FOUR =4 ; public static final String ORG_USER_ORIGIN = "ORG_USER_ORIGIN"; public static final String VIRTUAL_CARD_INDEX = "02098469790"; public static boolean DEALING_HK_SYNCPRIVILEGE= false; public static boolean DEALING_HK_SYNCDEVICE = false; public static boolean DEALING_HK_SYNCPARK = false; public static boolean DEALING_HK_IMG = false; public static boolean DEALING_HK_ORG = false; public static boolean DEALING_HK_USER = false; public static boolean DEALING_HK_VISIT = false; public static boolean DEALING_HK_EMPOWER = false; public static boolean DEALING_HK_EMPOWER_DETAIL = false; public static boolean DEALING_HK_EMPOWER_RESULT = false; public static boolean DEALING_HK_PARKBOOK = false; // ERP接口配置 public static final String ERP_CONFIG = "ERP_CONFIG"; // ERP ACCESS_KEY public static final String ERP_ACCESS_KEY = "ERP_ACCESS_KEY"; // ERP ACCESS_SECRET public static final String ERP_ACCESS_SECRET = "ERP_ACCESS_SECRET"; // 内部人员冻结配置时间 public static final String TIMEOUT_FREEZE = "TIMEOUT_FREEZE"; // FTP文件服务器资源访问地址 public static Date getBirthdyByCardNo(String idCard){ if(idCard ==null || idCard.length()<14){ return null; } Date birthday = null; // 解析为日期对象 String birthdayString = idCard.substring(6, 14); // 截取身份证号的前六位数字作为出生日期 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); try { birthday = dateFormat.parse(birthdayString); } catch (Exception e) { // throw new RuntimeException(e); } return birthday; } public static Integer getSexByCardNo(String idCard){ if(idCard ==null || idCard.length()<17){ return null; } String str = idCard.substring(16, 17); // 截取身份证号的前六位数字作为出生日期 try { Integer num = Integer.parseInt(str); return (num % 2 !=0) ? 1:2 ; } catch (Exception e) { } return null; } /** * 判断是否为有效车牌号 */ public static boolean checkCarNo(String str) { String patt="^[京津沪冀晋辽吉黑苏浙皖闽赣鲁豫鄂湘粤桂琼川黔云渝藏陕陇青宁新闽粤晋琼使领A_Z]{1}[A_Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$"; Pattern r = Pattern.compile(patt); Matcher matcher = r.matcher(str); return matcher.find(); } public static String getTuominStr(String s){ if(StringUtils.isEmpty(s)){ return ""; } int l = s.length(); if(l <= 2){ return s.substring(0,1)+"****"; } if(l <= 5){ return s.substring(0,2)+"***"; } if(l <= 10){ return s.substring(0,3)+"***"+s.substring(l-3,l); } if(l <= 11){ return s.substring(0,3)+"****"+s.substring(l-4,l); } if(l <= 15){ return s.substring(0,3)+"****"+s.substring(l-4,l); } return s.substring(0,5)+"*******"+s.substring(l-6,l); } /** * mq tag */ public interface MQ_TAG{ String order = "order"; String activity = "activity"; } public interface MQ_KEY{ String activity_looknum = "looknum"; String activity_signup = "signup"; } public interface DeviceRoleType{ int lw = 0;//劳务访客 int fk = 1;//普通访客 int nb = 2;//内部访客 } public interface VisitStatus{ //审核状态 0待审核 1已提交ERP审批 2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7已签离 int waitCheck = 0; int submitCheck = 1; int pass = 2; int noPass = 3; int cancel = 4; int xfSuccess = 5; int xfFail = 6; int signout = 7; } public interface EmpowerStatus{ //一卡通授权下发状态 0待下发 1已下发 2下发成功 3已取消 4下发失败 5任务下载已结束 int wait = 0; int ing = 1; int pass = 2; int cancel = 3; int fail = 4; int downloaded = 5; } public interface DOOR_ROLE_TYPE{ int lw = 0; int fk = 1; int nb = 2; } public static final String SUCCESS_STR = "SUCCESS" ; //开门时间有效期(分钟) public static final String ACCESS_ID="ACCESS_ID"; public static final String BUCKETNAME = "BUCKETNAME"; public static final String OSS = "OSS"; public static final String ACCESS_KEY = "ACCESS_KEY"; public static final String ENDPOINT = "ENDPOINT"; public static final String RESOURCE_PATH = "RESOURCE_PATH"; //发送会议开始 定时提前多少分钟发送 public static final String SYSTEM ="SYSTEM"; public static final String COFFEE_BEAN_TASK ="COFFEE_BEAN_TASK"; public static final String HOME_IMAGE ="HOME_IMAGE"; public static final String WX_PLATFORM = "WX_PLATFORM"; public static final String WX_PLATFORM_ACCESS_TOKEN = "WX_PLATFORM_ACCESS_TOKEN"; public static final String WX_PLATFORM_APPID = "WX_PLATFORM_APPID"; public static final String WX_PLATFORM_SECRET = "WX_PLATFORM_SECRET"; public static final String WX_PLATFORM_AUDIT_VISIT = "WX_PLATFORM_AUDIT_VISIT"; public static final String WX_PLATFORM_PREFIX = "WX_PLATFORM_PREFIX"; public interface RedisKeys { public static final String ERP_TOKEN ="ERP_TOKEN"; public static final long EXPIRE_TIME = 7200; public static final String INTERNAL_TOKEN ="INTERNAL_TOKEN"; public static final String GOODSORDER_KEY = "ordercode_"; public static final String ACTIVITY_SIGN_KEY = "actcode_"; public static final String AFTERSALE_KEY = "salecode_"; } public static BigDecimal formatBigdecimal(BigDecimal d) { if (d == null) { d = new BigDecimal(0.0); } //保留两位小数且四舍五入 // d = d.setScale(2, BigDecimal.ROUND_HALF_UP); return d; } public static BigDecimal formatBigdecimal4Float(BigDecimal d) { if (d == null) { d = new BigDecimal(0.0); } //保留两位小数且四舍五入 d = d.setScale(4, BigDecimal.ROUND_HALF_UP); return d; } public static boolean equalsObject(Object a, Object b) { if (a == null && b == null) { return true; } if (a != null){ return a.equals(b); } return false; } public static boolean equalsInteger(Integer a, Integer b) { if (formatIntegerNum(a) == formatIntegerNum(b)) { return true; } return false; } public static int formatIntegerNum(Integer d) { if (d == null) { d = 0; } return d.intValue(); } public static long formatLongNum(Long d) { if (d == null) { d = 0L; } return d.longValue(); } public interface memberType{ int lw_visitor = 0;//劳务访客 int visitor = 1;//普通访客 int internal = 2;//内部人员 } public interface approveStatus{ int wait = 0;//待审批 int auditIng = 1;//审批中 int pass = 2;//审批通过 int unPass = 3;//审批未通过 int otherDeal = 4;//他人已处理 } public static void main(String[] args) { String t = URLDecoder.decode("https://lsqw.gtja.com/qwcos/v-index.html#/loginforProperty?corpId=ww4b7aefafeb430e4b&corpId=ww4b7aefafeb430e4b&agentId=1000005&agentId=1000005&fromRoute=&userCode=013561&userCode=&userId=zz&userId=&encryptUserCode=&custQwId=wmIUuSDgAAR8MhtVY8w90EyKltvoK5fA&custCode=&openId=op1wZwD1dKuBQywmWWS5957zUOJI&name=%E8%B9%84%E8%B9%84&headUrl=http%3A%2F%2Fwx.qlogo.cn%2Fmmhead%2FQ3auHgzwzM4QlibSOAvYcvRMdsoyF3Ua7duLOYSJfB3dsGsYxIYonBw%2F0&dbHeadUrl=https%3A%2F%2Ftgf.gtja.com%2Ff%2F%2Fqwoms%2F2022512%2Fqwoms_1652332606613_8.jpg"); System.out.println(t); } /** * 数据状态枚举 * */ public enum Status { /** 用户启用禁用枚举值*/ ENABLE(0,"正常"), DISABLE(1,"禁用"), FREEZE(2,"拉黑/冻结"), /** 用户类型 **/ LW_FK(0,"劳务访客"), PT_FK(1,"普通访客"), NB_FK(2,"内部人员"), /** 进场类型 **/ OUT(0,"出"), IN(1,"进"); private Integer value; private String des; Status(Integer value, String des) { this.value = value; this.des = des; } public Integer getValue() { return value; } public void setValue(Integer value) { this.value = value; } public String getDes() { return des; } public void setDes(String des) { this.des = des; } } /** * 对象驼峰属性转下划线 * @param object * @return * @throws JsonProcessingException */ public static String toUnderlineJSONString(Object object) throws JsonProcessingException { ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); String reqJson = mapper.writeValueAsString(object); return reqJson; } public static T toSnakeObject(String json, Class clazz) throws IOException { ObjectMapper mapper = new ObjectMapper(); mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); T reqJson = mapper.readValue(json, clazz); return reqJson; } }