From 1ce606a5cd06b859a57eabf8b12c4fb3704168b4 Mon Sep 17 00:00:00 2001
From: zjh <1084500556@qq.com>
Date: 星期一, 06 一月 2025 16:46:16 +0800
Subject: [PATCH] 20250106

---
 ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java                   |   28 ++++++++++++++
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java |   54 ++++++++++++++++----------
 2 files changed, 61 insertions(+), 21 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
index 6e0d904..fbc2e45 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1085,11 +1085,21 @@
 
     @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED)
     public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) {
-        //鐢熸垚浣撴鍙�
-        String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
-        tjOrder.setTjNumber(tjNumber);
-        BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
 
+        //鑾峰彇鎷兼帴鍓嶇紑
+        String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
+
+        //鐢熸垚浣撴鍙�
+//        String tjNumber = (SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmss").format(new Date()));
+//        if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber;
+
+
+        String tjNumber = (SecurityUtils.getUsername()+IdUtils.getTjNumber());
+        if(StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber=makeLisTmhPrefix+tjNumber;
+        tjOrder.setTjNumber(tjNumber);
+
+
+        BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
         tjOrder.setDiscount(discount.toString());
         if (tjOrderService.save(tjOrder)) {
             //淇濆瓨鏀惰揣鍦板潃
@@ -3481,24 +3491,26 @@
                 log.info("閫�璐圭敵璇� 鍏ュ弬 -> {}", JSONUtil.toJsonStr(map));
                 String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
                 log.info("閫�璐圭敵璇� 杩斿洖 -> {}", JSONUtil.toJsonStr(post));
-                JSONObject jsonObject = JSONUtil.parseObj(post);
-                if (jsonObject.getStr("code").equals("200")) {
-                    // hisTfWaterId
-                    String tfid = jsonObject.getJSONObject("data").getStr("feiYongId");
-                    water.setHisTfWaterId(tfid);
-                    tjFlowingWaterService.updateById(water);
-                    if (isDelete) {
-                        for (TjFlowingWater water1 : yizhifu) {
-                            String bldh1 = water1.getJxbz();
-                            remarkService.deleteTjOrderDetailByjxbz(bldh1);
-                            tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh1);
-                            tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh1);
-                            transitionService.deleteTjOrderDetailByjxbz(bldh1);
-                            blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1));
-                            tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1);
+                if(null !=post){
+                    JSONObject jsonObject = JSONUtil.parseObj(post);
+                    if (jsonObject.getStr("code").equals("200")) {
+                        // hisTfWaterId
+                        String tfid = jsonObject.getJSONObject("data").getStr("feiYongId");
+                        water.setHisTfWaterId(tfid);
+                        tjFlowingWaterService.updateById(water);
+                        if (isDelete) {
+                            for (TjFlowingWater water1 : yizhifu) {
+                                String bldh1 = water1.getJxbz();
+                                remarkService.deleteTjOrderDetailByjxbz(bldh1);
+                                tjOrderDetailService.deleteTjOrderDetailByjxbz(bldh1);
+                                tjFlowingWaterService.deleteTjOrderDetailByjxbz(bldh1);
+                                transitionService.deleteTjOrderDetailByjxbz(bldh1);
+                                blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh, tjNum).eq(TjProBl::getBldh, bldh1));
+                                tjSamplingMapper.deleteByTjNumAndCusIdAndJxbzo(tjNum, order.getUserId(), bldh1);
+                            }
                         }
-                    }
-                } else return AjaxResult.error();
+                    } else return AjaxResult.error();
+                }
             }
         }
         return null;
diff --git a/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java b/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java
index 1936ff9..f681ca0 100644
--- a/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java
+++ b/ltkj-common/src/main/java/com/ltkj/common/utils/IdUtils.java
@@ -6,6 +6,7 @@
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Random;
 
 /**
  * @Company: 瑗垮畨璺嘲绉戞妧鏈夐檺鍏徃
@@ -17,6 +18,8 @@
 
     private static final String LIS_LAST_ID_KEY = "id:generate:lis:id";
     private static final String LIS_CURRENT_DATE_KEY = "id:generate:lis:currentDate";
+
+//    private static final UidGenerator uidGenerator = new DefaultUidGenerator();  // 浣跨敤榛樿鐨凷nowflake鐢熸垚鍣�
 
     @Autowired
     private StringRedisTemplate stringRedisTemplate;
@@ -38,4 +41,29 @@
         return String.format(prefix+"%s%05d", yyMMdd, lastId);
     }
 
+
+    //鐢熸垚浣撴鍙风敤
+    private static long lastTimestamp = -1;
+    private static final Random random = new Random();
+
+    public static synchronized String getTjNumber() {
+        long timestamp = System.currentTimeMillis();  // 鑾峰彇褰撳墠鏃堕棿鎴筹紙姣锛�
+
+        // 濡傛灉鏃堕棿鎴冲拰涓婃鐢熸垚鐨勬椂闂存埑鐩稿悓锛岀敓鎴愪竴涓柊鐨勯殢鏈烘暟
+        if (timestamp == lastTimestamp) {
+            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
+        } else {
+            lastTimestamp = timestamp;  // 鏇存柊鏈�鍚庣敓鎴愭椂闂存埑
+            return String.format("%09d", (timestamp % 1000000000) + random.nextInt(900) + 100);
+        }
+    }
+
+
+//    浣跨敤鍒嗗竷寮廔D鐢熸垚鍣紙濡係nowflake锛�
+    public static String generateExamNumber() {
+//        long id = uidGenerator.getUID();  // 鑾峰彇鐢熸垚鐨勫敮涓�ID
+//        return String.format("%09d", Math.abs(id) % 1000000000);  // 鏍煎紡鍖栦负9浣�
+        return null;
+    }
+
 }

--
Gitblit v1.8.0