From 31692354e8191b583250c213152bfd0068ffe0fc Mon Sep 17 00:00:00 2001
From: futian.liu <liufutianyoo@163.com>
Date: 星期一, 13 十一月 2023 10:43:05 +0800
Subject: [PATCH] 整理代码

---
 consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java |   84 +++++++++++++++++++++++++----------------
 1 files changed, 51 insertions(+), 33 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java
index b976bbc..623102a 100644
--- a/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java
+++ b/consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java
@@ -1,10 +1,13 @@
 package com.consum.base.core;
 
 
+import com.consum.base.core.utils.SqlParameter;
+import com.consum.model.po.BaseCodeIndexing;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.NumberGenerator;
 import com.walker.jdbc.service.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
-
-import java.util.List;
 
 /**
  * 缂栫爜缁熶竴鐢熸垚鏈嶅姟
@@ -13,54 +16,63 @@
 public class CodeGeneratorService extends BaseServiceImpl {
 
 
+    public static void main(String[] args) {
+        String prefix = "RK";
+        int[] days = DateUtils.getCurrentYearMonthDay();
+        prefix +=  StringUtils.removeStart(Integer.valueOf(days[0]).toString(),"20");
+        prefix += days[1] < 9 ? "0" + Integer.valueOf(days[1]).toString() : days[1];
+        prefix += days[2] < 9 ? "0" + Integer.valueOf(days[2]).toString() : days[2];
+        System.out.println(prefix);
+    }
+
+    private String createCodeByPrefix(String prefix,int length){
+        String CODE_PREFIX = prefix;
+        String sql = "SELECT * from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX";
+
+        BaseCodeIndexing  codeIndexing = get(sql,new SqlParameter().put("CODE_PREFIX",CODE_PREFIX),new BaseCodeIndexing());
+        if (codeIndexing == null){
+            codeIndexing = new BaseCodeIndexing();
+            codeIndexing.setId(NumberGenerator.getLongSequenceNumber());
+            codeIndexing.setCodePrefix(CODE_PREFIX);
+            codeIndexing.setCodeIndex(1);
+            insert(codeIndexing);
+        } else {
+            codeIndexing.setCodeIndex(codeIndexing.getCodeIndex()+1);
+            update(codeIndexing);
+        }
+
+        String index = codeIndexing.getCodeIndex().toString();
+        String intPrefix = "0";
+        for (int i=1;i<(length-index.length());i++){
+            intPrefix += "0";
+        }
+        return CODE_PREFIX+intPrefix+index;
+    }
+
     /**
      * 鑾峰彇浠撳簱缂栫爜
      *
      * @return 浠撳簱缂栫爜瑙勫垯涓猴細WH+鍥涗綅鏁板瓧杩炲彿锛�0001锛�
      */
-    public String createWarehouseCode() {
-        // TODO: 10/10/2023  鑾峰彇浠撳簱缂栫爜
-
-        String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue();
-        /*
+    public synchronized String createWarehouseCode() {
+      /*
         1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX
           CODE_PREFIX鏄�"WH"
           濡傛灉鑾峰彇涓嶅埌锛屽氨浠�1寮�濮嬶紝浣嗛渶瑕佽ˉ鍏ㄥ墠闈㈢殑"0"杩斿洖 "0001"锛涘悓鏃堕渶瑕佹彃鍏ユ暟鎹簱
           insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�="WH"  where CODE_PREFIX=:CODE_PREFIX;
          2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "0001"
          */
-        return null;
-    }
-
-    /**
-     * 杩炵画鑾峰彇澶氫釜浠撳簱缂栫爜
-     *
-     * @return 浠撳簱缂栫爜瑙勫垯涓猴細WH+鍥涗綅鏁板瓧杩炲彿锛�0001锛�
-     */
-    public List<String> createWarehouseCodeList(int count) {
-        // TODO: 10/10/2023  鑾峰彇浠撳簱缂栫爜
-
         String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue();
-        /*
-        1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX
-          CODE_PREFIX鏄�"WH"
-          濡傛灉鑾峰彇涓嶅埌锛屽氨浠�1寮�濮嬶紝浣嗛渶瑕佽ˉ鍏ㄥ墠闈㈢殑"0"杩斿洖 "0001"锛涘悓鏃堕渶瑕佹彃鍏ユ暟鎹簱
-          insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�="WH"  where CODE_PREFIX=:CODE_PREFIX;
-         2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "0001"
-         */
-        return null;
+        return createCodeByPrefix(CODE_PREFIX,4);
     }
 
     /**
      * 鐢熸垚鐗╁搧缂栫爜
      *
      * @param classify A,B,C
-     * @param type     1=闆嗛噰锛�2=鑷噰
      * @return 鍏�8浣嶏紝 涓�浣嶇墿鍝佸垎绫伙紙A/B/C锛�+涓�浣嶇被鍨嬶紙1涓洪泦閲囷紝2涓鸿嚜閲囷級+6浣嶈繛缁暟瀛楀彿
      */
-    public String createGoodsTemplateCode(String classify, int type) {
-        String prefix = classify + Integer.valueOf(type).toString();
-
+    public synchronized String createGoodsTemplateCode(String classify) {
         /*
         1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX
           CODE_PREFIX鏄� prefix
@@ -68,7 +80,8 @@
           insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX鏄�=:prefix  where CODE_PREFIX=:CODE_PREFIX;
          2.濡傛灉鑳藉鑾峰彇鍒帮紝鍒欏皢CODE_INDEX=CODE_INDEX+1鍚庢洿鏂板埌鏁版嵁搴擄紝琛ュ叏鍓嶉潰鐨�"0"杩斿洖 "000001"
          */
-        return null;
+        String prefix = classify;
+        return createCodeByPrefix(prefix,6);
     }
 
     /**
@@ -77,9 +90,14 @@
      * @param codeGeneratorEnum CodeGeneratorEnum
      * @return 1.涓や綅鍓嶇紑锛堝锛欳G浠h〃閲囪喘鍗曪級+鍏綅骞存湀鏃ワ紙230226锛�23骞�2鏈�26鏃ワ級+鍥涗綅鏁板瓧杩炲彿锛�0002锛�
      */
-    public String createBusinessFormCode(CodeGeneratorEnum codeGeneratorEnum) {
+    public synchronized String createBusinessFormCode(CodeGeneratorEnum codeGeneratorEnum) {
 
-        return null;
+        String prefix = codeGeneratorEnum.getValue();
+        int[] days = DateUtils.getCurrentYearMonthDay();
+        prefix +=  StringUtils.removeStart(Integer.valueOf(days[0]).toString(),"20");
+        prefix += days[1] < 9 ? "0" + Integer.valueOf(days[1]).toString() : days[1];
+        prefix += days[2] < 9 ? "0" + Integer.valueOf(days[2]).toString() : days[2];
+        return createCodeByPrefix(prefix,4);
     }
 
 

--
Gitblit v1.9.1