From e2db1aee94ab93365b846f3856a5e8928efca328 Mon Sep 17 00:00:00 2001 From: futian.liu <liufutianyoo@163.com> Date: 星期六, 09 十二月 2023 10:56:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- 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