liukangdong
2024-10-12 bf79a36667124868583fcbf47af0e709e088b5e9
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,11 +1,16 @@
package com.doumee.core.utils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.core.model.LoginUserInfo;
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 io.swagger.models.auth.In;
import org.apache.batik.util.Platform;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.math.BigDecimal;
@@ -16,17 +21,22 @@
import  java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.*;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Constants {
    public static final String HEADER_USER_TOKEN = "dm_user_token";
    public static final String REDIS_TOKEN_KEY = "token_";
    public static final String REDIS_HK_TOKEN_KEY = "hk_token_";
    public static final String HK_TOKEN_VALIDITY = "HK_TOKEN_VALIDITY";
    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 LED_CONTENT_SPEED ="LED_CONTENT_SPEED" ;
    public static final String HK_HOST ="HK_HOST" ;
    public static final String HK_APPKEY ="HK_APPKEY" ;
    public static final String HK_APPSECRET ="HK_APPSECRET" ;
@@ -34,6 +44,14 @@
    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" ;
    public static final String PLATFORM ="PLATFORM" ;
    public static final String POWER_MINUTE ="POWER_MINUTE" ;
    public static final String RESERVATION_TOTAL_NUM ="RESERVATION_TOTAL_NUM" ;
    public static final String SIGN_IN_PLACE_LAT ="SIGN_IN_PLACE_LAT" ;
    public static final String SIGN_IN_PLACE_LNT ="SIGN_IN_PLACE_LNT" ;
    public static final String SIGN_IN_PLACE_DISTANCE ="SIGN_IN_PLACE_DISTANCE" ;
    public static final String SIGN_IN_QRCODE ="SIGN_IN_QRCODE" ;
    //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
    public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID";
@@ -53,6 +71,7 @@
    // 访客来访配置
    public static final String VISIT_CONFIG = "VISIT_CONFIG";
    public static final String MEMBER_IMG = "MEMBER_IMG";
    public static final String PLATFORM_EVENT_IMG = "PLATFORM_EVENT_IMG";
    public static final String VISIT_NOTICE = "VISIT_NOTICE";
    //健康证配置
    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
@@ -67,6 +86,8 @@
    public static final String WORK_START = "WORK_START";
    public static final String WORK_END = "WORK_END";
    public static final String INTERVAL = "INTERVAL";
    public static final String USE_CAR_TAKE_CARE = "USE_CAR_TAKE_CARE";
@@ -88,15 +109,33 @@
    public static final String ERP ="ERP" ;
    public static final Integer THREE =3 ;
    public static final Integer FOUR =4 ;
    public static final Integer FIVE =5 ;
    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 final String CLOUD_SERVICE_URL_INDEX = "/cloudService";
    public static final String VISIT_TIPS = "VISIT_TIPS";
    public static final String VISIT_GUIDEMAP = "VISIT_GUIDEMAP";
    public static final String HIDDEN_DANGER_FILE = "HIDDEN_DANGER_FILE";
    public static final String LOG_DEL_DAYS_LIMIT ="LOG_DEL_DAYS_LIMIT" ;
    public static final String HK_LOG_DEL_DAYS_LIMIT ="HK_LOG_DEL_DAYS_LIMIT" ;
    public static final String HK_NGINX_URL = "HK_NGINX_URL";
    public static final String PLATFORM_BOOKING_TIPS = "PLATFORM_BOOKING_TIPS";
    public static final String PLATFORM_GUIDEMAP = "PLATFORM_GUIDEMAP";
    public static final String WSM_PARAM ="WSM_PARAM" ;
    public static final String WMS_INBOUND_PLATFROM_URL ="WMS_INBOUND_PLATFROM_URL" ;
    public static final String WMS_GET_INVENTORYLIST_URL ="WMS_GET_INVENTORYLIST_URL" ;
    public static final String WMS_OUTBOUND_PLATFROM_URL ="WMS_OUTBOUND_PLATFROM_URL" ;
    public static final String TSM_PARAM ="TSM_PARAM" ;
    public static final String TMS_ORDER_LIST_URL ="TMS_ORDER_LIST_URL" ;
    public static final String TMS_ORDER_DETAIL_URL ="TMS_ORDER_DETAIL_URL" ;
    public static final String TMS_LOCK_STATUS_URL ="TMS_LOCK_STATUS_URL" ;
    public static final String TMS_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCPLATFORM = false;
    public static  boolean DEALING_HK_SYNCDEVICE_STATUS = false;
    public static  boolean DEALING_HK_SYNCPLATFORM_STATUS = false;
    public static  boolean DEALING_HK_SYNCPARK = false;
    public static  boolean DEALING_HK_IMG = false;
    public static  boolean DEALING_HK_ORG = false;
@@ -129,6 +168,7 @@
    public static final String TIMEOUT_WARNING = "TIMEOUT_WARNING";
    // FTP文件服务器资源访问地址
    public static String getRandom6Num( ) {
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
@@ -140,6 +180,36 @@
        return sb.toString();
    }
    public interface VisitIccmStatus{
        //访客状态(0:未签到,1:已签到,2:已签退,3:滞留,4:未访问,5:自动签离,6:未签退)
        int waitSign = 0;
        int signin= 1;
        int signout = 2;
        int noleave =3;
        int novisit =4;
        int autoOut =5;
        int noSignout =6;
    }
    public interface DATAPERMISSION_TYPE{
        public static final  int all = 0;
        public static final  int departAndChild = 1;
        public static final  int departAndLeaf = 2;
        public static final  int depart = 3;
        public static final  int custom = 4;
        public static final  int self = -1;
    }
    /**
     * 作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货
     */
    public interface platformJobType{
       int zycxh = 0;
       int zyczh = 1;
       int wxcxh = 2;
       int wxczh = 3;
       int sgscxh = 4;
    }
    public static  Date  getBirthdyByCardNo(String idCard){
    if(idCard ==null || idCard.length()<14){
@@ -218,6 +288,23 @@
        return s.substring(0,5)+"*******"+s.substring(l-6,l);
}
    public static  String  carCodeTuominStr(String s){
        if(StringUtils.isEmpty(s)){
            return "";
        }
        int l = s.length();
        if(Constants.equalsInteger(l,7)){
            return s.substring(0,3)+"***"+s.substring(l-1,l);
        }
        if(l <= 8){
            return s.substring(0,3)+"****"+s.substring(l-1,l);
        }
        return s;
    }
    /**
     * 切分逗号拼接的整形集合
     * @param memberIds
@@ -280,14 +367,6 @@
         int signin= 7;
         int signout =  8;
         int invalid =9;
    }
    public interface multifileObjType{
        //0隐患现场情况 1隐患处理前情况 2隐患处理后情况 3隐患退回说明
        int zero = 0;
        int one = 1;
        int two = 2;
        int three = 3;
    }
@@ -369,15 +448,6 @@
        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) {
@@ -403,9 +473,53 @@
public interface  memberType{
    int lw_visitor = 0;//劳务访客
    int driver = 0;//司机人员
    int visitor = 1;//普通访客
    int internal = 2;//内部人员
}
public interface  approveObjectType{
    int unConstructionVisit = 0;//非施工人员访客申请
    int constructionVisit = 1;//工人员访客申请
    int visitReporting = 2;//访客报备
    int cityUseCar = 3;//市内用车
    int unCityUseCar = 4;//市外用车
    int logisticsCarUse = 5;//物流车预约
    int reason = 6;//入园原因
}
public static Integer  approveTypeToNoticeType(Integer approveType){
    if(Constants.equalsInteger(approveType,Constants.approveObjectType.unConstructionVisit)
            ||Constants.equalsInteger(approveType,Constants.approveObjectType.constructionVisit)){
        return Constants.noticesObjectType.visit;
    }else if(Constants.equalsInteger(approveType,Constants.approveObjectType.visitReporting)){
        return Constants.noticesObjectType.visitReporting;
    }else if(Constants.equalsInteger(approveType,Constants.approveObjectType.cityUseCar)
            ||Constants.equalsInteger(approveType,Constants.approveObjectType.unCityUseCar)){
        return Constants.noticesObjectType.useCar;
    }else if(Constants.equalsInteger(approveType,Constants.approveObjectType.logisticsCarUse)){
        return Constants.noticesObjectType.logisticsCarUse;
    }else if(Constants.equalsInteger(approveType, approveObjectType.reason)){
        return noticesObjectType.reason;
    }else {
        return Constants.noticesObjectType.system;
    }
}
    public interface  noticesObjectType{
    int visit = 0;//访客申请
    int visitReporting = 1;//访客报备
    int useCar = 2;//用车申请
    int dangerDeal = 3;//隐患处理
    int logisticsCarUse = 4;//物流车审批
    int system = 5;//系统消息
    int reason = 6;//入园原因
}
@@ -414,7 +528,9 @@
    int auditIng = 1;//审批中
    int pass = 2;//审批通过
    int unPass = 3;//审批未通过
    int otherDeal = 4;//他人已处理
    int cancel = 4;//已取消
    int otherDeal = 5;//他人已处理
    int otherUnPass = 6;//他人拒绝
}
    /**
@@ -485,7 +601,8 @@
    }
    public static void main(String[] args) {
        System.out.println(Constants.getVehiclePlateNo("皖AA10991").getDescription());
        System.out.println(Constants.carCodeTuominStr("皖A10991"));
        System.out.println(Constants.carCodeTuominStr("皖AA10991"));
//        System.out.println(Constants.getVehiclePlateNo("湘B140D17").getDescription());
//        System.out.println(Constants.getVehiclePlateNo("宿AP0637").getDescription());
@@ -553,6 +670,7 @@
        String reqJson = mapper.writeValueAsString(object);
        return reqJson;
    }
    public  enum NoticeType {
@@ -653,6 +771,436 @@
    }
    public  enum PlatformWarnEvent {
        STOP_TIMEOUT(0, "停靠超时","${carCode}月台停靠超时" ),
        STOP_ERROR(1, "停靠错误","${carCode}月台停靠错误" ),
        WORK_TIMEOUT(2, "作业超时","${carCode}作业超时" );
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        PlatformWarnEvent(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformWarnEvent c : PlatformWarnEvent.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * 月台作业 状态
     * 0任务创建 1司机确认任务 2司机签到 3入园等待 4月台叫号 5开始作业 6作业完成 7月台转移 8任务挂起 9下发授权离园 10离园
     */
    public  enum PlatformJobLogType {
        CREATE(0, "任务创建","入园预约成功" ),
        CONFIRM_TASK(1, "司机确认任务","已完成时间确认" ),
        SIGN(2, "司机签到","排队等待叫号"),
        IN_WAIT(3, "入园等待","叫号入园等待" ),
        CALLED(4, "月台叫号","{data}叫号" ),
        WORKING(5, "开始作业","进入{data}开始作业" ),
        DONE(6, "作业完成 ","月台作业完成,驶离月台" ),
        TRANSFERING(7, "月台转移","{data}发起月台转移" ),
        EXCEPTION(8, "任务挂起","作业异常被挂起" ),
        AUTHED_LEAVE(9, "下发授权离园","下发授权离园" ),
        LEAVED(10, "已离园 ","车辆从{data}离场 " ),
        OVER_NUMBER(11, "已过号","超时未到指定月台自动过号" ),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        PlatformJobLogType(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformJobLogType c : PlatformJobLogType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * 月台作业大屏文案 状态
     * 1、月台空闲:1号月台(月台名称)
     * 2、叫号中:1号月台 皖A12345  叫号中
     * 3、作业中:1号月台 皖A12345 作业中
     * 4、错误停靠:1号月台 皖A12345 当前车辆错误停靠,请尽快驶离
     * 5、超时停靠:1号月台 皖A12345 当前车辆超时停靠,请尽快驶离
     */
    public  enum PlatformLedContent {
        IDEL_CONTNET(1, "空闲中","{param}" ),
        CALLING(2, "叫号中","${param} ${param2}  叫号中"),
        WORKING(3, "作业中","${param} ${param2} 作业中" ),
        WRONG_IN(4, "错误停靠","${param} ${param2} 当前车辆错误停靠,请尽快驶离" ),
        TIMEOUT_IN(5, "超时停靠","${param} ${param2} 当前车辆超时停靠,请尽快驶离" ),
        TIMEOUT_WORK(6, "作业超时","${param} ${param2} 当前车辆作业超时" ),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        PlatformLedContent(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformLedContent c : PlatformLedContent.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * 广播通知内容
     1. 叫号中:皖A12345请前往1号月台等待作业
     2. 作业完成:皖A12345作业完成,请尽快驶离
     3. 错误停靠:皖A12345月台停靠错误,请尽快驶离
     4. 超时停靠:皖A12345月台停靠超时,请尽快驶离请尽快驶离
     5. 作业超时:皖A12345月台停靠超时,请尽快驶离请尽快驶离
     */
    public  enum PlatformBroadcastContent {
        CALLING(1, "叫号中","${param}请前往${param2}等待作业"),
        DONE(2, "作业完成","${param}作业完成,请尽快驶离" ),
        WRONG_IN(3, "错误停靠","${param}月台停靠错误,请尽快驶离" ),
        TIMEOUT_IN(4, "超时停靠","${param}月台停靠超时,请尽快驶离请尽快驶离" ),
        TIMEOUT_WORK(5, "作业超时","${param}作业超时" ),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        PlatformBroadcastContent(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformBroadcastContent c : PlatformBroadcastContent.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * 月台作业 状态
     * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号
     */
    public  enum PlatformJobStatus {
        WAIT_CONFIRM(0, "待确认","待确认" ),
        WART_SIGN_IN(1, "待签到","待签到" ),
        WAIT_CALL(2, "已签到","已签到"),
        IN_WAIT(3, "入园等待","入园等待" ),
        CALLED(4, "已叫号","已叫号" ),
        WORKING(5, "作业中","作业中" ),
        DONE(6, "作业完成 ","作业完成" ),
        TRANSFERING(7, "转移中","转移中" ),
        EXCEPTION(8, "异常挂起","异常挂起" ),
        AUTHED_LEAVE(9, "已授权离园","已授权离园" ),
        LEAVED(10, "已离园 ","已离园 " ),
        OVER_NUMBER(11, "已过号","已过号" ),
        CANCEL(12, "已取消","已取消" ),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        PlatformJobStatus(int key, String name,String info ) {
            this.key = key;
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformJobStatus c : PlatformJobStatus.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    /**
     * 审批模拟类型 0非施工人员访客申请 1非施工人员访客申请 2访客报备 3公车市内用车 4公车室外用车 5市公司物流车预约
     */
    public  enum ApproveTmplType{
        NOT_SG_VISIT(0, "非施工人员访客申请", "非施工人员访客申请"),
        SG_VISIT(1, "施工人员访客申请", "施工人员访客申请"),
        CAR_VISIT(2, "访客报备 ", "访客报备 "),
        IN_CITY_CAR_USE(3, "公车市内用车 ", "公车市内用车 "),
        OUT_CITY_CAR_USE(4, "公车室外用车 ", "公车室外用车 "),
        CITY_WLC_BOOK(5, "市公司物流车预约 ", "5市公司物流车预约 "),
        PLATFROM_REASON(6, "月台入园原因审批 ", "月台入园原因审批 "),
        ;
        // 成员变量
        private String name;
        private int key;
        private String noteinfo;// 描述
        // 构造方法
        ApproveTmplType(int key, String name, String noteinfo) {
            this.name = name;
            this.key = key;
            this.noteinfo = noteinfo;
        }
        // 普通方法
        public static String getName(int index) {
            for (ApproveTmplType c : ApproveTmplType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        // 普通方法
        public static String getInfo(int index) {
            for (ApproveTmplType c : ApproveTmplType.values()) {
                if (c.getKey() == index) {
                    return c.noteinfo;
                }
            }
            return null;
        }
        // get set 方法
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getNoteinfo() {
            return noteinfo;
        }
    }
    public  enum NoticeObjectType {
        MEETING_BOOK_SUCCESS(0, "会与预定成功","会与预定成功"),
        MEETING_CACEL(1, "会议取消","会议取消"),
        MEETING_START(2, "会议即将开始","会议即将开始"),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        // 构造方法
        NoticeObjectType(int key, String name,String info) {
            this.name = name;
            this.key = key;
            this.info = info;
        }
        // 普通方法
        public static String getName(int index) {
            for (NoticeObjectType c : NoticeObjectType.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
            }
            return null;
        }
        // get set 方法
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public String getInfo() {
            return info;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    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;
    }
    /**
     * 员工信息维护操作历史类型 0解冻 1冻结 2拉黑 3恢复 4设为拜访人 5取消拜访人 6设为高级审批人 7取消高级审批人 8手动离场 9删除 10更新 11授权门禁权限 12离职 13恢复在职
     */
@@ -721,27 +1269,30 @@
            this.info = info;
        }
    }
    public  enum NoticeObjectType {
        MEETING_BOOK_SUCCESS(0, "会与预定成功","会与预定成功"),
        MEETING_CACEL(1, "会议取消","会议取消"),
        MEETING_START(2, "会议即将开始","会议即将开始"),
    /**
     * 关联对象类型
     关联对象类型 0企业营业执照 1理赔报案事故视频或图片 2理赔员工关系证明材料 3理赔门诊资料 4理赔住院资料 5理赔伤残资料 6理赔赔付结案材料 7企业身份证号 8保单申请表PDF 9签署后保单申请表PDF 10企业签章 11最终报单
     */
    public  enum MultiFile{
        HIDDEN_DANGER_SUBMIT(0, "隐患随手拍提报", "隐患随手拍提报"),
        HIDDEN_DANGER_DEAL_BEFORE(1, "隐患随手拍处理前", "隐患随手拍处理前"),
        HIDDEN_DANGER_DEAL_AFTER(2, "隐患随手拍处理后 ", "隐患随手拍处理后 "),
        ;
        // 成员变量
        private int key;
        private String name;
        private String info;
        private int key;
        private String noteinfo;// 描述
        // 构造方法
        NoticeObjectType(int key, String name,String info) {
        MultiFile(int key, String name, String noteinfo) {
            this.name = name;
            this.key = key;
            this.info = info;
            this.noteinfo = noteinfo;
        }
        // 普通方法
        public static String getName(int index) {
            for (NoticeObjectType c : NoticeObjectType.values()) {
            for (MultiFile c : MultiFile.values()) {
                if (c.getKey() == index) {
                    return c.name;
                }
@@ -749,6 +1300,15 @@
            return null;
        }
        // 普通方法
        public static String getInfo(int index) {
            for (MultiFile c : MultiFile.values()) {
                if (c.getKey() == index) {
                    return c.noteinfo;
                }
            }
            return null;
        }
        // get set 方法
        public String getName() {
@@ -767,20 +1327,11 @@
            this.key = key;
        }
        public String getInfo() {
            return info;
        public String getNoteinfo() {
            return noteinfo;
        }
        public void setInfo(String info) {
            this.info = info;
        }
    }
    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;
    }
}