From b7fa11ff11ea34ac0231fcdd41135b3def7129de Mon Sep 17 00:00:00 2001
From: jiazx0107 <jiazx0107@163.com>
Date: 星期日, 18 一月 2026 01:22:54 +0800
Subject: [PATCH] 调功工单功能
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java | 341 ++++++++++++++++++++++++++++++--------------------------
1 files changed, 181 insertions(+), 160 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
index 5794b9f..5a95626 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/utils/ContextUtil.java
@@ -1,14 +1,18 @@
-package com.fzzy.eoms.utils;
+package com.fzzy.igds.utils;
-import com.fzzy.eoms.data.ConfigData;
+import com.fzzy.igds.camera.data.ydqly.YdQlyNode;
+import com.fzzy.igds.constant.GrainFrequence;
+import com.ruoyi.common.config.FrameworkConfig;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.ShiroUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.RandomUtils;
-import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
+import java.util.concurrent.atomic.AtomicLong;
/**
* 绯荤粺鍏敤鏂规硶
@@ -17,29 +21,165 @@
*/
public class ContextUtil {
- public static Map<String, Boolean> l = new HashMap<>();
+ private static final AtomicLong sequence = new AtomicLong(0);
+ private static String lastTimestamp = "";
+
+
//鍏ㄥ眬鐢ㄦ埛瀹炴椂鍧愬湪閮ㄩ棬
public static Map<String, String> contextUserDept = new HashMap<>();
- /**
- * 鍏ㄥ眬鍛戒护ID
- */
- public static Map<String, Integer> contextOrderId = new HashMap<>();
/**
- * UUID鐢熸垚瑙勫垯
+ * 鍏ㄥ眬鐢ㄤ簬瀛樻斁SN涓庣粍缁囩紪鐮佺殑鍏崇郴锛屼緥濡傚垎鏈篠N鍜岀粍缁囩紪鐮佸叧绯�
+ */
+ public static Map<String, String> contextSnCompanyIdMap = new HashMap<>();
+
+ /**
+ * 娴佸獟浣撹妭鐐逛娇鐢�
+ */
+ public static List<YdQlyNode> nodeList = null;
+
+ /**
+ * 鐢熸垚椤哄簭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 getUUID() {
- return UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
+ 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)) {
+ seq = sequence.incrementAndGet();
+ } else {
+ sequence.set(0);
+ seq = 0;
+ lastTimestamp = currentTimestamp;
+ }
+ }
+
+ if (null == prefix) return String.format("%s%02d", currentTimestamp, seq);
+ return prefix + "_" + String.format("%s%02d", currentTimestamp, seq);
}
- public static String getBusinessID() {
- return DateFormatUtils.format(new Date(), "yyyyMMdd") + String.format("%04d", RandomUtils.nextInt(0, 10000));
+
+ public static String UUID() {
+ return UUID.randomUUID().toString().replaceAll("-", "");
}
- public static String getCurTimeMillis() {
- return System.currentTimeMillis() + "";
+
+ /**
+ * 榛樿鑾峰彇鐧诲綍浜烘墍鍦ㄧ粍缁囷紝濡傛灉鏈櫥褰曞垯鑾峰彇绯荤粺榛樿缁勭粐
+ * @return 缁勭粐ID
+ */
+ public static String getCompanyId() {
+
+ SysUser user = ShiroUtils.getSysUser();
+ if (null != user) return user.getCompanyId();
+ return FrameworkConfig.getCompanyId();
+ }
+
+ public static String getLoginUserName() {
+ SysUser user = ShiroUtils.getSysUser();
+ return null == user ? "绯荤粺" : user.getUserName();
+ }
+
+ public static String getLoginName() {
+ SysUser user = ShiroUtils.getSysUser();
+ return null == user ? "sys" : user.getLoginName();
+ }
+
+ public static SysUser getLoginUser() {
+ return ShiroUtils.getSysUser();
+ }
+
+ public static String subDeptId(SysUser user) {
+ if (null == user) {
+ user = getLoginUser();
+ }
+
+ if (null == user) {
+ return getCompanyId() + "001";
+ }
+
+ //浠庡叏灞�鑾峰彇锛屽鏋滄湁鍒欏彇鍏ㄥ眬鐨勯粯璁わ紝濡傛灉娌℃湁鍒欏彇鑷繁鎵�灞�
+ if (null != contextUserDept.get(user.getLoginName())) {
+ return contextUserDept.get(user.getLoginName());
+ }
+
+ if (null == user.getDeptId()) {
+ return user.getCompanyId();
+ }
+ return user.getDeptId().toString();
+ }
+
+ public static void updateSubDept(String userId, String deptId) {
+ if (null == deptId) return;
+ contextUserDept.put(userId, deptId);
+ }
+
+ /**
+ * 鑾峰彇椤哄簭鍙�
+ * @param oldOrderId 鍘熸湁椤哄簭鍙�
+ * @param num 浣嶆暟
+ * @return
+ */
+ public static String getOrderId(String oldOrderId, Integer num) {
+ Integer index3 = 1001;
+ Integer index4 = 10001;
+ Integer index5 = 100001;
+ Integer index = 0;
+ String orderId = "001";
+ if (StringUtils.isNotEmpty(oldOrderId)) {
+ index = Integer.valueOf(oldOrderId);
+ }
+ if (3 == num) {
+ orderId = ((index3 + index) + "").substring(1);
+ }
+ if (4 == num) {
+ orderId = ((index4 + index) + "").substring(1);
+ }
+ if (5 == num) {
+ orderId = ((index5 + index) + "").substring(1);
+ }
+ return orderId;
+ }
+
+ /**
+ * 瀛樻斁SN涓庢墍灞炵粍缁囩殑鍏崇郴
+ *
+ * @param sn
+ * @param companyId
+ */
+ public static void addSerCompany(String sn, String companyId) {
+ contextSnCompanyIdMap.put(sn, companyId);
+ }
+
+ /**
+ * 閫氳繃SN鑾峰彇褰撳墠SN鎵�灞炵殑缁勭粐
+ *
+ * @param sn
+ * @return
+ */
+ public static String getCompanyIdBySn(String sn) {
+ return contextSnCompanyIdMap.get(sn);
}
public static String getTimeId() {
@@ -52,168 +192,49 @@
/**
- * 鑾峰彇褰撳墠骞翠唤
+ * 濡傛灉鐢ㄦ埛鏄簱鍖虹敤鎴凤紝鍒ゆ柇鏄惁鏁版嵁鍏徃绾у埆
*
- * @return
+ * @param userDeptId 褰撳墠鐢ㄦ埛閮ㄩ棬ID
+ * @return 濡傛灉閮ㄩ棬ID澶т簬闀垮害7璇存槑鏄簱鍖猴紝鍚﹀垯灏辨槸鍏徃绾у埆
*/
- public static String getYear() {
- return DateFormatUtils.format(new Date(), "yyyyMM");
- }
-
- /**
- * 鐢熸垚璧勪骇缂栫爜ID
- * @return
- */
- public static String createAssetId() {
- return "NO" + randomChar(4) + getYear() + randomNum(6);
+ public static boolean isDepotUser(String userDeptId) {
+ if(StringUtils.isBlank(userDeptId)) return false;
+ return userDeptId.length() > 7;
}
/**
- * 鐢熸垚涓氬姟ID
- * @param prefix
- * @return
- */
- public static String getBizId(String prefix) {
- if (prefix == null) prefix = "ID";
- return prefix + getTimeId() + randomNum(4);
- }
-
-
- /**
- * 闅忔満鐢熸垚澶у啓瀛楁瘝
+ * 鏍规嵁绯荤粺閰嶇疆鐨勬壒娆¢鐜囪幏鍙栨壒娆$紪鍙�
*
- * @param length 闀垮害
+ * @param freq
* @return
*/
- public static String randomChar(int length) {
- Random random = new Random();
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < length; i++) {
- char randomLetter = (char) (random.nextInt(26) + 'A'); // 65-90
- sb.append(randomLetter);
+ public static String getBatchIdByFireq(String freq) {
+ // 涓�澶╀竴娆�
+ if (GrainFrequence.FREQ_02.getCode().equals(freq)) {
+ return DateFormatUtils.format(new Date(), "yyyyMMdd") + "1801";
}
- return sb.toString();
- }
- /**
- * 闅忔満鐢熸垚鏁板瓧
- * @param length
- * @return
- */
- public static String randomNum(int length) {
- Random random = new Random();
- StringBuffer sb = new StringBuffer();
- for (int i = 0; i < length; i++) {
- int digit = random.nextInt(10); // 鐢熸垚0-9鐨勯殢鏈烘暟
- sb.append(digit);
+ // 涓�澶╀袱娆�
+ if (GrainFrequence.FREQ_03.getCode().equals(freq)) {
+ String hour = DateFormatUtils.format(new Date(), "HH");
+ if (Integer.valueOf(hour) >= 0 && Integer.valueOf(hour) <= 12) {
+ return DateFormatUtils.format(new Date(), "yyyyMMdd") + "1301";
+ } else {
+ return DateFormatUtils.format(new Date(), "yyyyMMdd") + "1802";
+ }
}
- return sb.toString();
+ return getDefaultBatchId();
}
-
public static String getDefaultBatchId() {
return DateFormatUtils.format(new Date(), "yyyyMMddHHmm");
}
- /**
- * 鏍规嵁褰撳墠鐧婚檰浜鸿幏鍙栫粍缁囩紪鍙凤紝濡傛灉娌℃湁鐧婚檰浜鸿幏鍙栫郴缁熼粯璁ょ殑缁勭粐缂栧彿
- *
- * @return
- */
- public static String getCompanyId() {
- return ShiroUtils.getLoginUserCompanyId();
- }
-
- /**
- * 鑾峰彇绯荤粺榛樿鐨�=companyId
- *
- * @return
- */
- public static String getDefaultCompanyId() {
- SysUser user = ShiroUtils.getSysUser();
- if (null != user) {
- return user.getCompanyId();
- } else {
- ConfigData configData = SpringUtils.getBean(ConfigData.class);
- return configData.getDefaultCompanyId();
+ public static void main(String[] args) {
+ for (int i = 0; i < 10; i++){
+ String id = generateId();
+ System.out.println(id);
}
}
-
-
- /**
- * 鏈�楂樼殑缂栫爜涓猴細缁勭粐缂栫爜锛岀劧鍚庨�愮骇寰�涓嬶紝濡傦細5013,5013_001,5013_002,5013_001_001
- *
- * @param companyId 蹇呴』
- * @param parentId 鍙┖
- * @param endId 鍙┖
- * @param format 蹇呴』 涓変綅浼�1000锛屽洓浣嶄紶10000
- * @return
- */
- public static String getNextId(String companyId, String parentId,
- String endId, int format) {
- if (parentId == null) {
- return companyId;
- }
- try {
- int endNum = 0;
- if (StringUtils.isNotEmpty(endId)) {
- endNum = Integer.valueOf(endId.substring(endId.length() - 3));
- }
- String endStr = ("" + (endNum + format + 1)).substring(1);
-
- if (parentId.equals(companyId)) {
- return companyId + "_" + endStr;
- }
- parentId = parentId.substring(parentId.lastIndexOf("_") + 1);
- return companyId + "_" + parentId + "_" + endStr;
-
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
- /**
- * 鑾峰彇浠撳簱缂栫爜 鏍煎紡锛�
- *
- * @param deptId 5102_001_001 5102_001_002
- * 蹇呴』 鍒嗗簱缂栫爜
- * @param endId 蹇呴』 鏈�鍚庣殑浠撳簱缂栫爜
- * @param format 蹇呴』 涓変綅浼�1000锛屽洓浣嶄紶10000锛岄粯璁ら兘浼�1000
- * @return
- */
- public static String getNextDepotId(String deptId, String endId, int format) {
- try {
- int endNum = 0;
- if (StringUtils.isNotEmpty(endId)) {
- endNum = Integer.valueOf(endId.substring(endId.length() - 3));
- }
- String endStr = ("" + (endNum + format + 1)).substring(1);
-
- endStr = deptId.substring(deptId.indexOf("_") + 1) + "_" + endStr;
-
- return endStr.replaceAll("_", "");
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
-
-
- /**
- * 鑾峰彇鍒犻櫎娉ㄩ噴
- *
- * @author sgj
- * @date 2025/08/05
- * @param desc 鍒犻櫎鏂囨鎻忚堪
- */
- public static String getDeleteDesc(String desc) {
- if (StringUtils.isEmpty(desc)) {
- desc = "鍒犻櫎鏁版嵁";
- }
- return desc + "_" + ShiroUtils.getLoginName() + "_" + new Date();
- }
-
-
}
--
Gitblit v1.9.3