|  |  | 
 |  |  | import com.fasterxml.jackson.core.JsonProcessingException; | 
 |  |  | import com.fasterxml.jackson.databind.ObjectMapper; | 
 |  |  | import com.fasterxml.jackson.databind.PropertyNamingStrategy; | 
 |  |  | import org.apache.commons.collections4.CollectionUtils; | 
 |  |  | 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.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; | 
 |  |  | 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[]  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 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"; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |     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  boolean DEALING_HK_SYNCPRIVILEGE= false; | 
 |  |  |     public static  boolean DEALING_HK_SYNCDEVICE = false; | 
 |  |  |     public static  boolean DEALING_HK_SYNCDEVICE_STATUS = false; | 
 |  |  | 
 |  |  |         return sb.toString(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     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; | 
 |  |  |     } | 
 |  |  |     public static  Date  getBirthdyByCardNo(String idCard){ | 
 |  |  |     if(idCard ==null || idCard.length()<14){ | 
 |  |  |         return null; | 
 |  |  | 
 |  |  |         return s.substring(0,5)+"*******"+s.substring(l-6,l); | 
 |  |  | } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 切分逗号拼接的整形集合 | 
 |  |  |      * @param memberIds | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |  | 
 |  |  |     public static List<Integer> getIntegerListByStrs(String memberIds) { | 
 |  |  |         List<Integer> idsList = null; | 
 |  |  |         try { | 
 |  |  |             String[] strs = memberIds.split(","); | 
 |  |  |             for(String id :strs){ | 
 |  |  |                 if(idsList == null){ | 
 |  |  |                     idsList = new ArrayList<>(); | 
 |  |  |                 } | 
 |  |  |                 idsList.add(Integer.parseInt(id)); | 
 |  |  |             } | 
 |  |  |         }catch (Exception e){ | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return idsList; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * mq tag | 
 |  |  | 
 |  |  |          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; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |         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) { | 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 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;//物流车预约 | 
 |  |  | } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 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 { | 
 |  |  |         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 auditIng = 1;//审批中 | 
 |  |  |     int pass = 2;//审批通过 | 
 |  |  |     int unPass = 3;//审批未通过 | 
 |  |  |     int otherDeal = 4;//他人已处理 | 
 |  |  |     int cancel = 4;//已取消 | 
 |  |  |     int otherDeal = 5;//他人已处理 | 
 |  |  |     int otherUnPass = 6;//他人拒绝 | 
 |  |  | } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |         String reqJson = mapper.writeValueAsString(object); | 
 |  |  |         return reqJson; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public  enum NoticeType { | 
 |  |  |  | 
 |  |  | 
 |  |  |             this.info = info; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 关联对象类型 | 
 |  |  |      关联对象类型 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 String name; | 
 |  |  |         private int key; | 
 |  |  |         private String noteinfo;// 描述 | 
 |  |  |  | 
 |  |  |         // 构造方法 | 
 |  |  |         MultiFile(int key, String name, String noteinfo) { | 
 |  |  |             this.name = name; | 
 |  |  |             this.key = key; | 
 |  |  |             this.noteinfo = noteinfo; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 普通方法 | 
 |  |  |         public static String getName(int index) { | 
 |  |  |             for (MultiFile c : MultiFile.values()) { | 
 |  |  |                 if (c.getKey() == index) { | 
 |  |  |                     return c.name; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             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() { | 
 |  |  |             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; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |     /** | 
 |  |  |      * 审批模拟类型 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市公司物流车预约 "), | 
 |  |  |         ; | 
 |  |  |         // 成员变量 | 
 |  |  |         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, "会议取消","会议取消"), |