| | |
| | | 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; |
| | |
| | | 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手机号和姓名组合校验) |
| | |
| | | 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 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" ; |
| | |
| | | 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 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; |
| | |
| | | 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; |
| | |
| | | |
| | | 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; |
| | |
| | | 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); |
| | | 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; |
| | | } |
| | |
| | | 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任务下载已结束 |
| | |
| | | |
| | | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 运单了单位类型 0万支 1箱 |
| | | */ |
| | | public static final int UNIT_TYPE =1; |
| | | public interface memberType{ |
| | | int driver = 0;//司机人员 |
| | | int visitor = 1;//普通访客 |
| | | int internal = 2;//内部人员 |
| | | int gkuser = 3;//管控人员(运单查询) |
| | | } |
| | | |
| | | |
| | |
| | | int logisticsCarUse = 4;//物流车审批 |
| | | int system = 5;//系统消息 |
| | | int reason = 6;//入园原因 |
| | | int hknotice = 7;//海康考勤代办 |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | System.out.println(Constants.checkCarNo("皖A10991")); |
| | | System.out.println(Constants.checkCarNo("皖AA10991")); |
| | | // 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>"); |
| | | } |
| | | |
| | | |
| | |
| | | CALLING(1, "叫号中","${param}请前往${param2}等待作业"), |
| | | DONE(2, "作业完成","${param}作业完成,请尽快驶离" ), |
| | | WRONG_IN(3, "错误停靠","${param}月台停靠错误,请尽快驶离" ), |
| | | TIMEOUT_IN(4, "超时停靠","${param}月台停靠超时,请尽快驶离请尽快驶离" ), |
| | | TIMEOUT_IN(4, "超时停靠","${param}月台停靠超时,请尽快驶离" ), |
| | | TIMEOUT_WORK(5, "作业超时","${param}作业超时" ), |
| | | ; |
| | | |
| | |
| | | this.info = info; |
| | | this.name = name; |
| | | } |
| | | |
| | | public static String getName(int index) { |
| | | for (PlatformBroadcastContent c : PlatformBroadcastContent.values()) { |
| | | if (c.getKey() == index) { |
| | |
| | | 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, "待确认","待确认" ), |
| | |
| | | WAIT_CALL(2, "已签到","已签到"), |
| | | IN_WAIT(3, "入园等待","入园等待" ), |
| | | CALLED(4, "已叫号","已叫号" ), |
| | | WORKING(5, "作业中","作业中" ), |
| | | WORKING(5, "作业中","作业中" ), |
| | | DONE(6, "作业完成 ","作业完成" ), |
| | | TRANSFERING(7, "转移中","转移中" ), |
| | | EXCEPTION(8, "异常挂起","异常挂起" ), |
| | |
| | | } |
| | | |
| | | } |
| | | 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); |
| | |
| | | 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}"), |
| | | ; |
| | | |
| | | // 成员变量 |