luqingyang
2023-10-24 cb642724c54d7d850aec5e5ee27fcc7186f352d7
consum-base/src/main/java/com/consum/base/core/CodeGeneratorService.java
@@ -58,7 +58,7 @@
     *
     * @return 仓库编码规则为:WH+四位数字连号(0001)
     */
    public String createWarehouseCode() {
    public synchronized String createWarehouseCode() {
      /*
        1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX
          CODE_PREFIX是"WH"
@@ -66,20 +66,17 @@
          insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX是="WH"  where CODE_PREFIX=:CODE_PREFIX;
         2.如果能够获取到,则将CODE_INDEX=CODE_INDEX+1后更新到数据库,补全前面的"0"返回 "0001"
         */
        synchronized (this){
            String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue();
            return createCodeByPrefix(CODE_PREFIX,4);
        }
        String CODE_PREFIX = CodeGeneratorEnum.Warehouse.getValue();
        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) {
    public synchronized String createGoodsTemplateCode(String classify) {
        /*
        1.SELECT CODE_INDEX from BASE_CODE_INDEXING where CODE_PREFIX=:CODE_PREFIX
          CODE_PREFIX是 prefix
@@ -87,10 +84,8 @@
          insert BASE_CODE_INDEXING CODE_INDEX=1 CODE_PREFIX是=:prefix  where CODE_PREFIX=:CODE_PREFIX;
         2.如果能够获取到,则将CODE_INDEX=CODE_INDEX+1后更新到数据库,补全前面的"0"返回 "000001"
         */
        synchronized (this){
            String prefix = classify + Integer.valueOf(type).toString();
            return createCodeByPrefix(prefix,6);
        }
        String prefix = classify;
        return createCodeByPrefix(prefix,6);
    }
    /**
@@ -99,16 +94,14 @@
     * @param codeGeneratorEnum CodeGeneratorEnum
     * @return 1.两位前缀(如:CG代表采购单)+六位年月日(230226:23年2月26日)+四位数字连号(0002)
     */
    public String createBusinessFormCode(CodeGeneratorEnum codeGeneratorEnum) {
    public synchronized String createBusinessFormCode(CodeGeneratorEnum codeGeneratorEnum) {
        synchronized (this){
            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);
        }
        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);
    }