jiazx0107
2025-11-30 87e5654c26476fabd1156023350d7726092af8c1
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -22,6 +22,7 @@
    private static final AtomicLong sequence = new AtomicLong(0);
    private static String lastTimestamp = "";
    //全局用户实时坐在部门
    public static Map<String, String> contextUserDept = new HashMap<>();
@@ -30,13 +31,33 @@
     */
    public static Map<String, String> contextSnCompanyIdMap = new HashMap<>();
    /**
     * 生成顺序ID:年月日时分秒毫秒(17位) + 序列号(4位) = 21位
     */
    public static String generateId() {
        String pattern = "yyyyMMddHHmmssSSS";
        return generateId(null, pattern);
    }
    /**
     * 生成单据编码, (格式: yyyyMMddHHmmss + 4位随机数)
     * @param prefix
     * @return
     */
    public static String generateOrderId(String prefix) {
        String pattern = "yyyyMMddHHmmss";
        return generateId(prefix, pattern);
    }
    /**
     *
     *
     * @return
     */
    public static String generateId() {
        String currentTimestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS"));
    private static String generateId(String prefix, String pattern) {
        if (null == pattern) pattern = "yyyyMMddHHmmss";
        String currentTimestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern(pattern));
        long seq;
        synchronized (ContextUtil.class) {
            if (currentTimestamp.equals(lastTimestamp)) {
@@ -44,13 +65,15 @@
            } else {
                sequence.set(0);
                seq = 0;
                lastTimestamp = currentTimestamp;
            }
        }
        return String.format("%s%04d", currentTimestamp, seq);
        if (null == prefix) return String.format("%s%04d", currentTimestamp, seq);
        return prefix + "_" + String.format("%s%04d", currentTimestamp, seq);
    }
    public static String UUID() {
        return UUID.randomUUID().toString().replaceAll("-", "");
    }