liukangdong
2025-03-05 3201bba04baf50d368fbc4ac11658701e97a0a97
server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -1,26 +1,17 @@
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 net.sourceforge.pinyin4j.PinyinHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.util.CollectionUtils;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLDecoder;
import java.text.Collator;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import  java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.*;
import java.util.Date;
import java.util.regex.Matcher;
@@ -39,18 +30,26 @@
    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 LOGIN_OUT_URL ="LOGIN_OUT" ;
    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_CARS_OPENAPI_ACCESS_KEY = "HK_CARS_OPENAPI_ACCESS_KEY";
    public static final String HK_CARS_OPENAPI_ACCESS_SECRET = "HK_CARS_OPENAPI_ACCESS_SECRET";
    public static final String HK_CARS_OPENAPI_URL = "HK_CARS_OPENAPI_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 SPECIAL_COMPANY_ID ="SPECIAL_COMPANY_ID" ;
    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" ;
    public static final String SIGN_IN_ATTENTION ="SIGN_IN_ATTENTION" ;
    public static final String SIGN_IN_QRCODE_PREFIX ="SIGN_IN_QRCODE_PREFIX" ;
    //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验)
@@ -73,6 +72,10 @@
    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 TIME_OUT_CONFIG = "TIME_OUT_CONFIG";
    public static final String VISIT_REPORT_TIME_OUT_MOBILE = "VISIT_REPORT_TIME_OUT_MOBILE";
    public static final String VISIT_TIME_OUT_MOBILE = "VISIT_TIME_OUT_MOBILE";
    //健康证配置
    public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
    public static final String HEALTH_CARD = "HEALTH_CARD";
@@ -102,6 +105,7 @@
    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 FTP_LOCAL_RESOURCE_PATH ="FTP_LOCAL_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" ;
@@ -122,10 +126,31 @@
    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_PARAM ="WMS_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_INTERFACE_URL_PREFIX ="TMS_INTERFACE_URL_PREFIX" ;
    public static final String MYSQL_BACKUP_CDOE ="MYSQL_BACKUP_CDOE" ;
    public static final String MYSQL_BACKUP_DIR ="MYSQL_BACKUP_DIR" ;
    public static final String EVENT_FILES_PRIVATE_DOMAIN ="EVENT_FILES_PRIVATE_DOMAIN" ;
    public static final String EVENT_FILES_PUBLIC_DOMAIN ="EVENT_FILES_PUBLIC_DOMAIN" ;
    public static final String TEMPERATURE_HUMIDITY ="TEMPERATURE_HUMIDITY" ;
    public static final String HK_WXTOKEN_CONFIGID ="HK_WXTOKEN_CONFIGID" ;
    public static final String HK_WXTOKEN_TAGID ="HK_WXTOKEN_TAGID" ;
    public static final String WMS_TOTAL_STOCK_NUM ="WMS_TOTAL_STOCK_NUM" ;
    public static final String WMS_LIQUID_LEVEL ="WMS_LIQUID_LEVEL" ;
    public static final String WMS_PRESSURE_LEVEL ="WMS_PRESSURE_LEVEL" ;
    public static final String WX_REDIRECT_URL = "WX_REDIRECT_URL";
    public static final String HK_CHANGNEI_SCREEN_INDEXCODES = "HK_CHANGNEI_SCREEN_INDEXCODES";
    public static final String CITY_XH_REASON_ID ="CITY_XH_REASON_ID" ;
    public static final String ATWL_XH_PLATFORM_ID ="ATWL_XH_PLATFORM_ID" ;
    public static final String SCREEN_SEVENT_ARRIVAL_STARTDATE = "SCREEN_SEVENT_ARRIVAL_STARTDATE";
    public static final String EARLY_START_WX_NOTICE = "EARLY_START_WX_NOTICE";
    public static final String OVER_NOTICE_WX = "OVER_NOTICE_WX";
    public static  boolean DEALING_HK_SYNCPRIVILEGE= false;
    public static  boolean DEALING_HK_SYNCDEVICE = false;
    public static  boolean DEALING_HK_SYNCPLATFORM = false;
@@ -138,6 +163,7 @@
    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_HK_NOTICE_LIST = false;
    public static  boolean DEALING_FROM_HK_VISIT = false;
    public static  boolean DEALING_HK_EMPOWER = false;
    public static  boolean DEALING_HK_EMPOWER_DETAIL = false;
@@ -175,6 +201,24 @@
        return sb.toString();
    }
    /**
     * 获取公众号跳转重定向业务地址
     * @param code
     * @param paramCode
     * @param ywid
     * @return
     */
    public static String getWxUrl(String code, WxUrlParams paramCode, String ywid) {
        String url = code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",ywid);
//        try {
//            url = URLEncoder.encode(code,"UTF-8");
//        }catch (Exception e){
//
//        }
        return url;
    }
    public interface VisitIccmStatus{
        //访客状态(0:未签到,1:已签到,2:已签退,3:滞留,4:未访问,5:自动签离,6:未签退)
        int waitSign = 0;
@@ -233,6 +277,7 @@
        return  null;
    }
    /**
     *   判断是否为有效车牌号
     */
@@ -282,6 +327,24 @@
        }
        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(l >= 7){
            String tt = "";
            for (int i = 0; i < l-6; i++) {
                tt = tt+"*";
            }
            return s.substring(0,2)+tt+s.substring(l-4,l);
        }
        return s;
    }
    /**
     * 切分逗号拼接的整形集合
@@ -347,6 +410,17 @@
         int invalid =9;
    }
    public interface RetentionCarType{
        //车辆类型 0内部车辆 1相关方车辆 2访客车辆 3内运物流车 4外协车辆 5市公司卸货车
         int internal = 0;
         int relation = 1;
         int visitor = 2;
         int selfTruck = 3;
         int outTruck = 4;
         int cityComTruck = 5;
         int unknown = 6;
    }
    public interface EmpowerStatus{
        //一卡通授权下发状态 0待下发 1已下发 2下发成功   3已取消 4下发失败 5任务下载已结束
@@ -397,7 +471,10 @@
    public interface RedisKeys {
        public static final String IMPORTING_CARS ="IMPORTING_CARS";
        public static final String IMPORTING_MEMBER ="IMPORTING_MEMBER";
        public static final String BIGSCREEN_UUID ="BIGSCREEN_UUID";
        public static final String IMPORTING_GAS ="IMPORTING_GAS";
        public static final String ERP_TOKEN ="ERP_TOKEN";
        public static final long EXPIRE_TIME = 7200;
@@ -425,6 +502,22 @@
        d = d.setScale(4, BigDecimal.ROUND_HALF_UP);
        return  d;
    }
    public static BigDecimal formatBigdecimal0Float(BigDecimal d) {
        if (d == null) {
            d = new BigDecimal(0.0);
        }
        //保留两位小数且四舍五入
        d = d.setScale(0, BigDecimal.ROUND_HALF_UP);
        return  d;
    }
    public static BigDecimal formatBigdecimal2Float(BigDecimal d) {
        if (d == null) {
            d = new BigDecimal(0.0);
        }
        //保留两位小数且四舍五入
        d = d.setScale(2, BigDecimal.ROUND_HALF_UP);
        return  d;
    }
@@ -450,10 +543,15 @@
    }
    /**
     * 运单了单位类型 0万支 1箱
     */
    public static final  int UNIT_TYPE =1;
public interface  memberType{
    int driver = 0;//司机人员
    int visitor = 1;//普通访客
    int internal = 2;//内部人员
    int gkuser = 3;//管控人员(运单查询)
}
@@ -498,6 +596,7 @@
    int logisticsCarUse = 4;//物流车审批
    int system = 5;//系统消息
    int reason = 6;//入园原因
    int hknotice = 7;//海康考勤代办
}
@@ -579,11 +678,60 @@
    }
    public static void main(String[] args) {
        System.out.println(Constants.getVehiclePlateNo("皖AA10991").getDescription());
//        getChinesePingyin("DDaa江萍的对对对");
//        System.out.println(DateUtil.getShortTime(new Date()));
//        System.out.println( "2025-01-14 10:50:56".substring(0,10));
//        System.out.println(Constants.checkCarNo("皖AA10991"));
//        System.out.println(Constants.getVehiclePlateNo("湘B140D17").getDescription());
//        System.out.println(Constants.getVehiclePlateNo("宿AP0637").getDescription());
        System.out.println("<script> SELECT \n" +
                "t1.REALNAME `REALNAME`,\n" +
                "MAX(t1.`01`) `januaryCount`,\n" +
                "MAX(t1.`02`) `februaryCount`,\n" +
                "MAX(t1.`03`) `marchCount`,\n" +
                "MAX(t1.`04`) `aprilCount`,\n" +
                "MAX(t1.`05`) `mayCount`,\n" +
                "MAX(t1.`06`) `juneCount`,\n" +
                "MAX(t1.`07`) `julyCount`,\n" +
                "MAX(t1.`08`) `augustCount`,\n" +
                "MAX(t1.`09`) `septemberCount`,\n" +
                "MAX(t1.`10`) `octoberCount`,\n" +
                "MAX(t1.`11`) `novemberCount`,\n" +
                "MAX(t1.`12`) `decemberCount`\n" +
                "FROM(\n" +
                "SELECT \n" +
                "t.id,\n" +
                "t.REALNAME,\n" +
                "CASE  WHEN t.yue='01' THEN t.c ELSE 0 END AS `01`,\n" +
                "CASE  WHEN t.yue='02' THEN t.c ELSE 0 END AS `02`,\n" +
                "CASE  WHEN t.yue='03' THEN t.c ELSE 0 END AS `03`,\n" +
                "CASE  WHEN t.yue='04' THEN t.c ELSE 0 END AS `04`,\n" +
                "CASE  WHEN t.yue='05' THEN t.c ELSE 0 END AS `05`,\n" +
                "CASE  WHEN t.yue='06' THEN t.c ELSE 0 END AS `06`,\n" +
                "CASE  WHEN t.yue='07' THEN t.c ELSE 0 END AS `07`,\n" +
                "CASE  WHEN t.yue='08' THEN t.c ELSE 0 END AS `08`,\n" +
                "CASE  WHEN t.yue='09' THEN t.c ELSE 0 END AS `09`,\n" +
                "CASE  WHEN t.yue='10' THEN t.c ELSE 0 END AS `10`,\n" +
                "CASE  WHEN t.yue='11' THEN t.c ELSE 0 END AS `11`,\n" +
                "CASE  WHEN t.yue='12' THEN t.c ELSE 0 END AS `12`  \n" +
                "FROM   \n" +
                "(SELECT \n" +
                "su.id,\n" +
                "su.REALNAME,\n" +
                "DATE_FORMAT(b.START_TIME,'%m') yue,\n" +
                "SUM(" +
                "CONVERT( (UNIX_TIMESTAMP(b.END_TIME) - UNIX_TIMESTAMP(b.START_TIME))/(60*60), DECIMAL(5,1))) c\n" +
                "FROM \n" +
                "meeting_user_rel ur\n" +
                "LEFT JOIN `SYSTEM_USER` su ON ur.USER_ID = su.id \n" +
                "LEFT JOIN meeting_book b ON ur.OBJ_ID = b.id \n" +
                "WHERE DATE_FORMAT(b.START_TIME,'%Y') = #{yearNum} AND b.STATUS = 0" +
                "<if test='userId != null'>"+
                "and ur.USER_ID = #{userId}\n" +
                "</if>"+
                "GROUP BY su.id, DATE_FORMAT(b.START_TIME,'%m')) t) t1 GROUP BY t1.id" +
                "</script>");
    }
@@ -603,6 +751,10 @@
        LW_FK(0,"劳务访客"),
        PT_FK(1,"普通访客"),
        NB_FK(2,"内部人员"),
        COMPANY_TYPE_REL(0,"相关方组织"),
        COMPANY_TYPE_INTERNAL(1,"内部人员"),
        COMPANY_TYPE_FK(3,"访客"),
        /** 进场类型 **/
        OUT(0,"出"),
@@ -649,108 +801,10 @@
    }
    public  enum NoticeType {
        ZERO(0, "待审核","","","待审核","待处理","处理中"),
        ONE(1, "企业待签署","","","工种待审核","","已结案"),
        TWO(2, "待出单","待审核","待审核","","",""),
        THREE(3, "申请退回","申请退回","申请退回","","",""),
        FOUR(4, "已退回","已退回","已退回","","","已撤销"),
        FIVE(5, "申请驳回","申请驳回","申请驳回","","",""),
        //续保通知
        SIX(6, "","","","","",""),
        //商户端 委托保 - 投保待审核 加减保 换厂 待审核
        SEVEN(7, "待审核","待审核","待审核","","",""),
        EIGHT(8, "","","","","",""),
        NINE(9, "","","","","",""),
        ;
        // 成员变量
        private int status;
        private String insuranceApplyDetail;
        private String applyChangeDetail;
        private String changeFactoryDetail;
        private String dispatchUnitDetail;
        private String taxesDetail;
        private String settleClaimsDetail;
        // 构造方法
        NoticeType(int status, String insuranceApplyDetail,String applyChangeDetail
                , String changeFactoryDetail,String dispatchUnitDetail
                , String taxesDetail,String settleClaimsDetail) {
            this.status = status;
            this.insuranceApplyDetail = insuranceApplyDetail;
            this.applyChangeDetail = applyChangeDetail;
            this.changeFactoryDetail = changeFactoryDetail;
            this.dispatchUnitDetail = dispatchUnitDetail;
            this.taxesDetail = taxesDetail;
            this.settleClaimsDetail = settleClaimsDetail;
        }
        // get set 方法
        public int getStatus() {
            return status;
        }
        public void setStatus(int status) {
            this.status = status;
        }
        public String getInsuranceApplyDetail() {
            return insuranceApplyDetail;
        }
        public void setInsuranceApplyDetail(String name) {
            this.insuranceApplyDetail = insuranceApplyDetail;
        }
        public String getApplyChangeDetail() {
            return applyChangeDetail;
        }
        public void setApplyChangeDetail(String info) {
            this.applyChangeDetail = applyChangeDetail;
        }
        public String getChangeFactoryDetail() {
            return changeFactoryDetail;
        }
        public void setChangeFactoryDetail(String info) {
            this.changeFactoryDetail = changeFactoryDetail;
        }
        public String getDispatchUnitDetail() {
            return dispatchUnitDetail;
        }
        public void setDispatchUnitDetail(String info) {
            this.dispatchUnitDetail = dispatchUnitDetail;
        }
        public String getTaxesDetail() {
            return taxesDetail;
        }
        public void setTaxesDetail(String info) {
            this.taxesDetail = taxesDetail;
        }
        public String getSettleClaimsDetail() {
            return settleClaimsDetail;
        }
        public void setSettleClaimsDetail(String info) {
            this.settleClaimsDetail = settleClaimsDetail;
        }
    }
    public  enum PlatformWarnEvent {
        STOP_TIMEOUT(0, "停靠超时","${carCode}月台停靠超时" ),
        STOP_ERROR(1, "停靠错误","${carCode}月台停靠错误" );
        STOP_ERROR(1, "停靠错误","${carCode}月台停靠错误" ),
        WORK_TIMEOUT(2, "作业超时","${carCode}作业超时" );
        // 成员变量
        private int key;
@@ -870,11 +924,13 @@
     * 5、超时停靠:1号月台 皖A12345 当前车辆超时停靠,请尽快驶离
     */
    public  enum PlatformLedContent {
        IDEL_CONTNET(1, "空闲中","{param}" ),
        IDEL_CONTNET(1, "空闲中","安泰物流有限责任公司" ),
        CALLING(2, "叫号中","${param} ${param2}  叫号中"),
        WORKING(3, "作业中","${param} ${param2} 作业中" ),
        WRONG_IN(4, "错误停靠","${param} ${param2} 当前车辆错误停靠,请尽快驶离" ),
        TIMEOUT_IN(5, "超时停靠","${param} ${param2} 当前车辆超时停靠,请尽快驶离" ),
        TIMEOUT_WORK(6, "作业超时","${param} ${param2} 当前车辆作业超时" ),
        DONE(7, "作业完成","${param} ${param2} 作业完成" ),
        ;
        // 成员变量
@@ -927,12 +983,14 @@
     2. 作业完成:皖A12345作业完成,请尽快驶离
     3. 错误停靠:皖A12345月台停靠错误,请尽快驶离
     4. 超时停靠:皖A12345月台停靠超时,请尽快驶离请尽快驶离
     5. 作业超时:皖A12345月台停靠超时,请尽快驶离请尽快驶离
     */
    public  enum PlatformBroadcastContent {
        CALLING(1, "叫号中"," ${param}请前往${param2}等待作业"),
        CALLING(1, "叫号中","${param}请前往${param2}等待作业"),
        DONE(2, "作业完成","${param}作业完成,请尽快驶离" ),
        WRONG_IN(3, "错误停靠","${param}月台停靠错误,请尽快驶离" ),
        TIMEOUT_IN(4, "超时停靠","${param}月台停靠超时,请尽快驶离请尽快驶离" ),
        TIMEOUT_IN(4, "超时停靠","${param}月台停靠超时,请尽快驶离" ),
        TIMEOUT_WORK(5, "作业超时","${param}作业超时" ),
        ;
        // 成员变量
@@ -946,6 +1004,7 @@
            this.info = info;
            this.name = name;
        }
        public static String getName(int index) {
            for (PlatformBroadcastContent c : PlatformBroadcastContent.values()) {
                if (c.getKey() == index) {
@@ -979,10 +1038,29 @@
            this.info = info;
        }
    }
    public static String getChinesePingyin(String chinese) {
        if(StringUtils.isBlank(chinese)){
            return null;
        }
        StringBuilder result = new StringBuilder();
        for (char ch : chinese.toCharArray()) {
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(ch);
            // 如果字符是中文,则获取其拼音的首字母
            if (pinyinArray != null && pinyinArray.length > 0) {
                result.append(pinyinArray[0].charAt(0));
            } else {
                // 非中文字符直接拼接
                result.append(ch);
            }
        }
        System.out.println(result.toString());
        return result.toString().toUpperCase();
    }
    /**
     * 月台作业 状态
     * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号
     * 0待确认 1待签到 2等待叫号 3入园等待 4已叫号 5作业中 6作业完成 7转移中 8异常挂起 9已授权离园 10已离园 11 已过号 12已取消
     */
    public  enum PlatformJobStatus {
        WAIT_CONFIRM(0, "待确认","待确认" ),
@@ -990,7 +1068,7 @@
        WAIT_CALL(2, "已签到","已签到"),
        IN_WAIT(3, "入园等待","入园等待" ),
        CALLED(4, "已叫号","已叫号" ),
        WORKING(5, "作业中","作业中" ),
         WORKING(5, "作业中","作业中" ),
        DONE(6, "作业完成 ","作业完成" ),
        TRANSFERING(7, "转移中","转移中" ),
        EXCEPTION(8, "异常挂起","异常挂起" ),
@@ -1166,6 +1244,66 @@
        }
    }
    public  enum WxUrlParams {
        BISCREEN_CODE(0,0, "0", "门口大屏二维码"),
        MEETING_CODE(1,2, "1","会议室大屏"),
        VISIT_RECORD_VISIT(2,1, "2","访客记录-访客"),
        VISIT_RECORD_USER(3,2, "2","访客记录-员工"),
        VISIT_REPORT_RECORD_USER(5,2, "3","访客报备记录-员工"),
        HIDDEN_DANGER(6,2, "4","隐患随手拍"),
        CAR_USE(7,2, "5","用车申请"),
        MEETING(8,2, "6","会议详情"),
        PLATFORM_BOOK_DRIVER(9,0, "7","物流车预约-司机"),
        PLATFORM_BOOK(10,2, "7","物流车预约-员工"),
        PLATFORM_JOB_DRIVER(11,0, "8","月台作业-司机"),
        ;
        // 成员变量
        private int key;
        private int type;//用户类型 0司机 1访客 2员工
        private String yw;//业务类型
        private String info;//说明
        // 构造方法
        WxUrlParams(int key,int type, String yw,String  info) {
            this.yw = yw;
            this.key = key;
            this.type = type;
            this.info= info;
        }
        public int getKey() {
            return key;
        }
        public void setKey(int key) {
            this.key = key;
        }
        public int getType() {
            return type;
        }
        public void setType(int type) {
            this.type = type;
        }
        public String getYw() {
            return yw;
        }
        public void setYw(String yw) {
            this.yw = yw;
        }
        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);
@@ -1196,6 +1334,13 @@
        IMPORT_TRAIMETIME(14, "导入培训有效","由【${param1}】于【${param2}】,进行【导入培训有效】操作" ),
        BE_HEAD(15, "设为主管","由【${param1}】于【${param2}】,进行【设为主管】操作" ),
        NOT_HEAD(16, "取消主管","由【${param1}】于【${param2}】,进行【取消主管】操作" ),
        MEET_BOOK_DEL(17, "删除会议室申请","由【${param1}】于【${param2}】,进行【删除会议室申请】操作,对象信息${param3}" ),
        VISIT_DEL(18, "删除访客申请","由【${param1}】于【${param2}】,进行【删除访客申请】,对象信息:${param3}" ),
        VISIT_CAR_DEL(19, "删除访客报备","由【${param1}】于【${param2}】,进行【删除访客报备】,对象信息:${param3}" ),
        PLATFROM_BOOK_DEL(20, "删除月台预约任务","由【${param1}】于【${param2}】,进行【删除月台预约任务】,对象信息:${param3}"  ),
        CAR_BOOK_DEL(21, "删除公车申请","由【${param1}】于【${param2}】,进行【删除公车申请】,对象信息:${param3}"),
        PLATFROM_JOB_DEL(22, "删除安泰物流作业任务","由【${param1}】于【${param2}】,进行【删除安泰物流作业任务】,对象信息:${param3}"  ),
        HIDEN_DANGER_DEL(23, "删除隐患随手拍","由【${param1}】于【${param2}】,进行【删除隐患随手拍】,对象信息:${param3}"),
        ;
        // 成员变量
@@ -1250,6 +1395,7 @@
        HIDDEN_DANGER_SUBMIT(0, "隐患随手拍提报", "隐患随手拍提报"),
        HIDDEN_DANGER_DEAL_BEFORE(1, "隐患随手拍处理前", "隐患随手拍处理前"),
        HIDDEN_DANGER_DEAL_AFTER(2, "隐患随手拍处理后 ", "隐患随手拍处理后 "),
        MEETING_BOOKS(4, "会议文件 ", "会议文件 "),
        ;
        // 成员变量
        private String name;