From b04a7e554c7d7c5ffb6305915bb142ed26d0cabf Mon Sep 17 00:00:00 2001
From: YYC <1833023622@qq.com>
Date: 星期三, 01 十一月 2023 14:24:47 +0800
Subject: [PATCH] 药剂Id生成--日期+三位顺序号

---
 igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java b/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java
index b8ffb1d..ec6a803 100644
--- a/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java
+++ b/igds-recir/src/main/java/com/ld/igds/drug/service/HDrugService.java
@@ -14,6 +14,7 @@
 import com.ld.igds.util.ContextUtil;
 import com.ld.igds.util.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.hibernate.Session;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -93,7 +94,7 @@
         data.setUpdateUser(ContextUtil.getLoginUserCName());
         try {
             if (null == data.getId()) {
-                String id = createId(data.getCompanyId());
+                String id = createId(data.getCompanyId(), data.getCgrq());
                 data.setId(id);
                 session.save(data);
             } else {
@@ -184,26 +185,27 @@
 
     }
 
-    public String createId(String companyId) {
+    public String createId(String companyId, Date time) {
 
+        String timeKey = DateFormatUtils.format(time, "yyyyMMdd");
         // 浠庣紦瀛樹腑鑾峰彇宸叉湁鐨勭粍缁囩紪鐮�
         String cacheKey = RedisConst.buildKey(companyId, HDrugService.CACHE_DRUG_ID);
 
         String cacheId = (String) redisUtil.get(cacheKey);
 
-        if (null != cacheId) {
+        if (null != cacheId && cacheId.indexOf(timeKey) >= 0) {
             String temp = cacheId.substring(cacheId.length() - 3);
             Integer i = Integer.valueOf(temp);
-            cacheId = String.format("%03d", ++i);
+            cacheId = timeKey + String.format("%03d", ++i);
         } else {
             List<Drug> result = listDrug(companyId, null);
             if (null == result || result.size() == 0) {
-                cacheId = "001";
+                cacheId = timeKey + "001";
             } else {
                 Drug drug = result.get(0);
                 String temp = drug.getId().substring(drug.getId().length() - 3);
                 Integer i = Integer.valueOf(temp);
-                cacheId = String.format("%03d", ++i);
+                cacheId = timeKey + String.format("%03d", ++i);
             }
         }
         // 鏇存柊缂撳瓨

--
Gitblit v1.9.3