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" ;
|
|
//被拜访人信息校验方式(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 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 boolean DEALING_HK_IMG = 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 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 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 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 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 interface RedisKeys {
|
public static final String ERP_TOKEN ="ERP_TOKEN";
|
public static final long EXPIRE_TIME = 7200;
|
|
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 visitor = 0;//普通访客
|
int lw_visitor = 1;//劳务访客
|
int internal = 2;//内部人员
|
}
|
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,"禁用");
|
|
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> T toSnakeObject(String json, Class<T> clazz) throws IOException {
|
ObjectMapper mapper = new ObjectMapper();
|
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
T reqJson = mapper.readValue(json, clazz);
|
return reqJson;
|
}
|
|
|
}
|