From 1822fb1b8dc476bdb3270d0dd0cd79cbbc02ae2c Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期二, 12 十二月 2023 16:58:25 +0800
Subject: [PATCH] feat: 物品规格管理页面

---
 consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java |   79 ++++++++++++++++++++++-----------------
 1 files changed, 45 insertions(+), 34 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..c909105 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,27 +1,54 @@
 package com.consum.base.core;
 
-
-import com.walker.jdbc.service.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
+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;
 
 /**
  * 缂栫爜缁熶竴鐢熸垚鏈嶅姟
  */
 @Service
+@Transactional(propagation = Propagation.NOT_SUPPORTED)
 public class CodeGeneratorService extends BaseServiceImpl {
 
+    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"
@@ -29,38 +56,17 @@
           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 +74,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,10 +84,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