jiangping
2025-04-29 7f17cd5b503840c750e03ca9f51e780b7991f462
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;
@@ -123,6 +114,7 @@
    public static final Integer THREE =3 ;
    public static final Integer FOUR =4 ;
    public static final Integer FIVE =5 ;
    public static final Integer SIX =6 ;
    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" ;
@@ -140,18 +132,26 @@
    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;
@@ -211,7 +211,13 @@
     * @return
     */
    public static String getWxUrl(String code, WxUrlParams paramCode, String ywid) {
        return  code.replace("${type}",paramCode.type+"").replace("${yw}",paramCode.yw).replace("${ywid}",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{
@@ -329,11 +335,12 @@
            return "";
        }
        int l = s.length();
        if(Constants.equalsInteger(l,7)){
            return s.substring(0,3)+"**"+s.substring(l-2,l);
        }
        if(l <= 8){
            return s.substring(0,3)+"***"+s.substring(l-2,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;
    }
@@ -404,14 +411,44 @@
         int invalid =9;
    }
    /**
     *   0=访客车辆-访客车辆
     *   1=wms推送的物流车辆(非自有车):货运车辆-外协运输车辆
     *   2= 市公司的预约入园车辆:货运车辆-市公司卸货车辆
     *   3= 安泰的预约入园车辆:货运车辆-加工烟卸货车辆
     *   4= 安泰公务车:公务车-安泰物流公务用车
     *   5= 安泰自有车:货运车辆-安泰物流货运车辆
     */
    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;
        //作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货
//         int internal = 0;
//         int relation = 1;
//         int visitor = 2;
//         int selfTruck = 3;
//         int outTruck = 4;
//         int cityComTruck = 5;
//         int unknown = 6;
        int fkCar = 0;//访客车辆-访客车辆
        int wxysCar = 1;//推送的物流车辆(非自有车):货运车辆-外协运输车辆
        int sgsxhCar = 2;//市公司的预约入园车辆:货运车辆-市公司卸货车辆
         int jgyxhCar = 3;//安泰的预约入园车辆:货运车辆-加工烟卸货车辆
         int atwlgwCar = 4;//安泰公务车:公务车-安泰物流公务用车
         int atwlzyCar = 5;//安泰自有车:货运车辆-安泰物流货运车辆
         int other = 6;//未知车辆
    }
    /**
     * 在场人员类型
     */
    public interface RetentionMemberType{
        //类型 0劳务访客 1普通访客 2内部员工 3车辆信息 4相关方人员 5货运司机
        int lwfk = 0;//0劳务访客
        int fk = 1;//1普通访客
        int internalMember = 2;//内部员工
         int car = 3;//车辆信息
         int relMember = 4;//相关方人员
         int driver = 5;//货运司机
    }
@@ -536,10 +573,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;//管控人员(运单查询)
}
@@ -553,6 +595,16 @@
    int reason = 6;//入园原因
}
public interface  noticesObjectType{
    int visit = 0;//访客申请
    int visitReporting = 1;//访客报备
    int useCar = 2;//用车申请
    int dangerDeal = 3;//隐患处理
    int logisticsCarUse = 4;//物流车审批
    int system = 5;//系统消息
    int reason = 6;//入园原因
    int hknotice = 7;//海康考勤代办
}
public static Integer  approveTypeToNoticeType(Integer approveType){
@@ -576,16 +628,6 @@
    public interface  noticesObjectType{
    int visit = 0;//访客申请
    int visitReporting = 1;//访客报备
    int useCar = 2;//用车申请
    int dangerDeal = 3;//隐患处理
    int logisticsCarUse = 4;//物流车审批
    int system = 5;//系统消息
    int reason = 6;//入园原因
    int hknotice = 7;//海康考勤代办
}
public interface  approveStatus{
@@ -666,12 +708,60 @@
    }
    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 in(0,2) and b.isdeleted=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>");
    }
@@ -691,6 +781,10 @@
        LW_FK(0,"劳务访客"),
        PT_FK(1,"普通访客"),
        NB_FK(2,"内部人员"),
        COMPANY_TYPE_REL(0,"相关方组织"),
        COMPANY_TYPE_INTERNAL(1,"内部人员"),
        COMPANY_TYPE_FK(3,"访客"),
        /** 进场类型 **/
        OUT(0,"出"),
@@ -974,6 +1068,25 @@
            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();
    }
    /**
     * 月台作业 状态
@@ -985,7 +1098,7 @@
        WAIT_CALL(2, "已签到","已签到"),
        IN_WAIT(3, "入园等待","入园等待" ),
        CALLED(4, "已叫号","已叫号" ),
        WORKING(5, "作业中","作业中" ),
         WORKING(5, "作业中","作业中" ),
        DONE(6, "作业完成 ","作业完成" ),
        TRANSFERING(7, "转移中","转移中" ),
        EXCEPTION(8, "异常挂起","异常挂起" ),
@@ -1163,11 +1276,20 @@
    }
    public  enum WxUrlParams {
        BISCREEN_CODE(0,0, "0", "门口大屏二维码"),
        MEETING_CODE(1,1, "1","会议室大屏")
        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司机
        private int type;//用户类型 0司机 1访客 2员工
        private String yw;//业务类型
        private String info;//说明
@@ -1242,6 +1364,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}"),
        ;
        // 成员变量
@@ -1296,6 +1425,7 @@
        HIDDEN_DANGER_SUBMIT(0, "隐患随手拍提报", "隐患随手拍提报"),
        HIDDEN_DANGER_DEAL_BEFORE(1, "隐患随手拍处理前", "隐患随手拍处理前"),
        HIDDEN_DANGER_DEAL_AFTER(2, "隐患随手拍处理后 ", "隐患随手拍处理后 "),
        MEETING_BOOKS(4, "会议文件 ", "会议文件 "),
        ;
        // 成员变量
        private String name;