nidapeng
2024-04-19 89610234a2bdc56f60e0998045892ef2672edccc
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -30,9 +30,11 @@
    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 LW_BEVISITED_USER_VALID = "LW_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";
@@ -42,9 +44,23 @@
    public static final String EDS_PWD ="!@#$%^&QWERTY" ;
    public static final String ROOT_PATH = "";
    public static final String FILE_DIR = "";
    public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD";
    public static final String VALIDATE_VISIT = "VALIDATE_VISIT";
    // 访客来访配置
    public static final String VISIT_CONFIG = "VISIT_CONFIG";
    public static final String MEMBER_IMG = "MEMBER_IMG";
    public static final String VISIT_NOTICE = "VISIT_NOTICE";
    //健康证配置
    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
    public static final String HEALTH_CARD = "HEALTH_CARD";
    //答题说明
    public static final String LW_DESCRIPTION = "LW_DESCRIPTION";
    public static final String DESCRIPTION = "DESCRIPTION";
    //答题主题
    public static final String LW_THEME = "LW_THEME";
    public static final String THEME = "THEME";
    // 劳务来访配置
    public static final String LABOR_CONFIG = "LABOR_CONFIG";
    public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG";
@@ -64,13 +80,19 @@
    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 final String RETRY_CONNECT_NUM ="RETRY_CONNECT_NUM" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCDEVICE_STATUS = 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_DEL_USER = false;
    public static  boolean DEALING_HK_VISIT = false;
    public static  boolean DEALING_HK_VISIT_EXPIRE = false;
    public static  boolean DEALING_FROM_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;
@@ -85,6 +107,8 @@
    // 内部人员冻结配置时间
    public static final String TIMEOUT_FREEZE = "TIMEOUT_FREEZE";
    // 超时预警配置
    public static final String TIMEOUT_WARNING = "TIMEOUT_WARNING";
    // FTP文件服务器资源访问地址
    public static  Date  getBirthdyByCardNo(String idCard){
@@ -118,10 +142,27 @@
     *   判断是否为有效车牌号
     */
    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();
//        String patt="^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵川青藏琼宁秦川]\\\\d{5}[A-Z]$";
//        Pattern r = Pattern.compile(patt);
//        Matcher matcher = r.matcher(str);
//        String regex = "^[\u4e00-\u9fa5]{1}[A-Z]{1}[A-HJ-NP-Z]{1}[A-HJ-NP-Z0-9]{4}[D0-9X]$";
//        Pattern pattern = Pattern.compile(regex);
//        Matcher matcher = pattern.matcher(str);
//        boolean isMatcher = matcher.matches();
//        return isMatcher;
        if (str.length() >= 7 && str.length() <= 8){
            Pattern pattern = Pattern.compile("^([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[a-zA-Z](([ABCDF]((?![IO])[a-zA-Z0-9](?![IO]))[0-9]{4})|([0-9]{5}[ABCDF]))|[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1})$");
            Matcher m = pattern.matcher(str);
            if (!m.matches()){
                return false;
            }
            return true;
        }else {
            return false;
        }
    }
    public static  String  getTuominStr(String s){
@@ -155,6 +196,16 @@
         String order = "order";
        String activity = "activity";
    }
    /**
     * 卡片状态 0禁用 1启用 2退卡 3挂失
     */
    public interface MemberCard{
         int  forbidden  = 0;
         int  normal  = 1;
         int  returned  = 2;
         int  loss  = 3;
    }
    public interface MQ_KEY{
         String activity_looknum = "looknum";
         String activity_signup = "signup";
@@ -165,7 +216,7 @@
         int nb = 2;//内部访客
    }
    public interface VisitStatus{
        //审核状态 0待审核 1已提交ERP审批  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7已签离
        //审核状态 0待审核 1已提交ERP审批  2审核通过 3审核不通过 4取消 5下发成功 6下发失败 7已登记 8已签离 9已失效
         int waitCheck = 0;
         int submitCheck = 1;
         int pass = 2;
@@ -173,7 +224,9 @@
         int cancel = 4;
         int xfSuccess = 5;
         int xfFail = 6;
         int signout = 7;
         int signin= 7;
         int signout =  8;
         int invalid =9;
    }
    public interface EmpowerStatus{
        //一卡通授权下发状态 0待下发 1已下发 2下发成功   3已取消 4下发失败 5任务下载已结束
@@ -206,6 +259,7 @@
    public static final String COFFEE_BEAN_TASK ="COFFEE_BEAN_TASK";
    public static final String HOME_IMAGE ="HOME_IMAGE";
@@ -225,6 +279,8 @@
    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_";
@@ -287,9 +343,89 @@
    int visitor = 1;//普通访客
    int internal = 2;//内部人员
}
public interface  approveStatus{
    int wait = 0;//待审批
    int auditIng = 1;//审批中
    int pass = 2;//审批通过
    int unPass = 3;//审批未通过
    int otherDeal = 4;//他人已处理
}
    /**
     * 获取车牌类型信息
     *
     * @param plateNo
     * @return 返回null,表示车牌不匹配
     */
    public static VehiclePlateNoEnum getVehiclePlateNo(String plateNo) {
        for (VehiclePlateNoEnum vehiclePlateNoEnum : VehiclePlateNoEnum.values()) {
            Matcher matcher = vehiclePlateNoEnum.pattern.matcher(plateNo);
            if (matcher.find()) {
                return vehiclePlateNoEnum;
            }
        }
        return null;
    }
    public enum VehiclePlateNoEnum {
        /**
         * 匹配民用车牌和使馆车牌
         * 1、第一位为汉子省份缩写
         * 2、第二位为大写字母城市编码
         * 3、后面是5位仅含字母和数字的组合
         */
        CIVIL_LICENSE_PLATE_AND_EMBASSY_LICENSE_PLATE(1, "民用车牌和使馆车牌", Pattern.compile("^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1}[A-Z]{1}[0-9a-zA-Z]{5}$")),
        /**
         * 匹配特种车牌(挂,警,学,领,港,澳)
         */
        SPECIAL_LICENSE_PLATES(2, "特种车牌", Pattern.compile("^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1}[A-Z]{1}[0-9a-zA-Z]{4}[挂警学领港澳]{1}$")),
        /**
         * 匹配
         */
        ARMED_POLICE_CAR(3, "武警车牌", Pattern.compile("^WJ[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]?[0-9a-zA-Z]{5}$")),
        /**
         * 匹配军牌
         */
        MILITARY_CAR(4, "军用车牌", Pattern.compile("^[A-Z]{2}[0-9]{5}$")),
        /**
         * 小型新能源车
         * 1、匹配新能源车辆6位车牌
         */
        SMALL_NEW_ENERGY_VEHICLE(5, "小型新能源车牌", Pattern.compile("^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1}[A-Z]{1}[A-Z]{1}[0-9a-zA-Z]{5}$")),
        /**
         * 大型新能源车
         */
        LARGE_NEW_ENERGY_VEHICLE(6, "大型新能源车牌", Pattern.compile("^[京津冀晋蒙辽吉黑沪苏浙皖闽赣鲁豫鄂湘粤桂琼川贵云渝藏陕甘青宁新]{1}[A-Z]{1}[0-9a-zA-Z]{5}[DF]{1}$"));
        private int code;
        private String description;
        private Pattern pattern;
        VehiclePlateNoEnum(int code, String description, Pattern pattern) {
            this.code = code;
            this.description = description;
            this.pattern = pattern;
        }
        public int getCode() {
            return code;
        }
        public String getDescription() {
            return description;
        }
    }
    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);
        System.out.println(Constants.getVehiclePlateNo("皖AA10991").getDescription());
//        System.out.println(Constants.getVehiclePlateNo("湘B140D17").getDescription());
//        System.out.println(Constants.getVehiclePlateNo("宿AP0637").getDescription());
    }