lyh
2025-03-19 362dfdd63912552114f89c731ec650a1af3909b4
Merge remote-tracking branch 'origin/master'
已添加5个文件
已修改7个文件
756 ■■■■■ 文件已修改
db/数据库产品化设计.pdma.json 436 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/Êý¾Ý¿â²úÆ·»¯Éè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-3-14 17:48:33",
  "updatedTime": "2025-3-19 13:16:28",
  "dbConns": [],
  "profile": {
    "default": {
@@ -620,7 +620,7 @@
        "freeze": false
      }
    ],
    "modelType": "modalAll",
    "modelType": "modalGroup",
    "recentColors": [
      "#d148d1",
      "#ce4bce",
@@ -2810,6 +2810,24 @@
          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
          "id": "66A13E43-E49B-42F5-B3E2-3AF22E0A3D07",
          "uiHint": null
        },
        {
          "defKey": "parameter_category",
          "defName": "参数分类",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "id": "D724F162-FAB5-448E-B0A1-14AD0C5A8CE9"
        }
      ],
      "correlations": [],
@@ -14782,12 +14800,12 @@
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "domain": "BE09D493-E183-402D-ACC4-EEA21EB35B8E",
          "id": "8E2E374D-26D3-43F7-B21D-9F426E598DAA"
        },
        {
          "defKey": "file_name",
          "defName": "文件原始名称",
          "defName": "文件名称",
          "comment": "",
          "type": "",
          "len": "",
@@ -14820,24 +14838,6 @@
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "7DD92935-AF34-4DCF-8AF7-310BF043C96C"
        },
        {
          "defKey": "full_path",
          "defName": "文件全路径",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
          "id": "13A5EDE6-6902-4DFE-95E6-7D853D1CE808"
        },
        {
          "defKey": "file_suffix",
@@ -15248,7 +15248,7 @@
        },
        {
          "defKey": "day_format",
          "defName": "天 ç¼–码格式",
          "defName": "天编码格式",
          "comment": "",
          "type": "",
          "len": "",
@@ -15281,10 +15281,355 @@
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "81BF4261-D1BC-494E-981B-7B069AAFAD6A"
        }
      ],
      "correlations": [],
      "indexes": [],
      "type": "P"
    },
    {
      "id": "C0BBEF88-3FC1-443D-AC9D-EC780080BC93",
      "env": {
        "base": {
          "nameSpace": "",
          "codeRoot": ""
        }
      },
      "defKey": "sys_business_code_seq",
      "defName": "业务编码生成序列",
      "comment": "",
      "properties": {
        "partitioned by": "(date string)",
        "row format delimited": "",
        "fields terminated by ','": "",
        "collection items terminated by '-'": "",
        "map keys terminated by ':'": "",
        "store as textfile;": ""
      },
      "sysProps": {
        "nameTemplate": "{defKey}[{defName}]"
      },
      "notes": {},
      "headers": [
        {
          "refKey": "hideInGraph",
          "hideInGraph": true
        },
        {
          "defKey": "current_num",
          "defName": "当前序号",
          "refKey": "defKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "defName",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "primaryKey",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "notNull",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "autoIncrement",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "domain",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "type",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "len",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "scale",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "comment",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "refDict",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "defaultValue",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "isStandard",
          "freeze": false,
          "hideInGraph": false
        },
        {
          "refKey": "uiHint",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "extProps",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr1",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr2",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr3",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr4",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr5",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr6",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr7",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr8",
          "freeze": false,
          "hideInGraph": true
        },
        {
          "refKey": "attr9",
          "freeze": false,
          "hideInGraph": true
        }
      ],
      "fields": [
        {
          "defKey": "id",
          "defName": "主键",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": true,
          "notNull": true,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "9DD983C4-9AB5-4A9F-B7CA-0203B1E580AD"
        },
        {
          "defKey": "create_by",
          "defName": "创建人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "8FD1D5E4-2A2B-4052-828A-C1C0AB1BD31E",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "create_time",
          "defName": "创建时间",
          "comment": "",
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "D59D8049-B400-4650-AF75-67EF1B60B5AC",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "update_by",
          "defName": "更新人",
          "comment": "",
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "refDict": "",
          "uiHint": "",
          "id": "56CA7F2E-C1D6-47B9-BB08-2A3E442D3778",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "update_time",
          "defName": "更新时间",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": true,
          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
          "refDict": "",
          "extProps": {},
          "notes": {},
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "attr4": "",
          "attr5": "",
          "attr6": "",
          "attr7": "",
          "attr8": "",
          "attr9": "",
          "id": "B415329C-1A9B-4992-9164-138B6BC194F4",
          "baseType": "89D69E81-EA34-42EE-9FA2-93B8BD27E098"
        },
        {
          "defKey": "rule_id",
          "defName": "规则编码",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "id": "1361B964-C35F-4FBF-808F-7FFD289A133E"
        },
        {
          "defKey": "prefix",
          "defName": "前缀",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "223B017A-F289-4FE4-AF2B-BC9847ECF977"
        },
        {
          "defKey": "current_year",
          "defName": "当前年份",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "F103D770-A2A4-4E1F-9D80-6768C7431AD7"
        },
        {
          "defKey": "current_month",
          "defName": "当前月份",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "ABF01002-A024-417D-8765-75FD12826579"
        },
        {
          "defKey": "current_day",
          "defName": "当前天",
          "comment": "",
          "type": "",
          "len": "",
          "scale": "",
          "primaryKey": false,
          "notNull": false,
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "refDict": "",
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64",
          "extProps": {},
          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
          "id": "35896231-A3CC-44D7-8B39-06DB21B05DC7"
        },
        {
          "defKey": "current_seq",
          "defName": "当前序列值",
          "comment": "",
          "type": "",
          "len": "",
@@ -15298,7 +15643,7 @@
          "baseType": "1D764C4A-6F9F-421E-B11A-6F3E23B51811",
          "extProps": {},
          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
          "id": "C65F1569-4D7D-4400-A25D-492661AD94B4"
          "id": "20C01EF4-19BC-40DE-8BB6-CC1915FD8AC2"
        }
      ],
      "correlations": [],
@@ -15938,6 +16283,39 @@
          "id": "6C803912-BF5E-404E-8ABB-6CB5C8C42BA9"
        }
      ]
    },
    {
      "defKey": "process_parameters_category",
      "defName": "工艺参数分类",
      "sort": "",
      "intro": "",
      "id": "3AA9C9FB-86F2-4836-83EB-E2F8B2E540E7",
      "items": [
        {
          "defKey": "1",
          "defName": "加工范围",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "81046783-462D-4D8E-995A-9BA2106B8476"
        },
        {
          "defKey": "2",
          "defName": "形位公差",
          "sort": "",
          "parentKey": "",
          "intro": "",
          "enabled": true,
          "attr1": "",
          "attr2": "",
          "attr3": "",
          "id": "6D24525A-2701-47DB-976C-424B244268D0"
        }
      ]
    }
  ],
  "viewGroups": [
@@ -15980,7 +16358,8 @@
        "804A08AE-C5BE-49C9-BCA3-B6521C236EE1",
        "918CE0CD-78C7-4BEF-95F3-BAE2C4F828ED",
        "378CF92C-B63B-4D7F-84DF-5D2F84CE4753",
        "DD05C32B-EF6C-40DB-A6BB-3A9E3AD75E65"
        "DD05C32B-EF6C-40DB-A6BB-3A9E3AD75E65",
        "C0BBEF88-3FC1-443D-AC9D-EC780080BC93"
      ],
      "refViews": [],
      "refDiagrams": [],
@@ -15993,7 +16372,8 @@
        "7C1D42A1-3178-484D-800D-AF47EC1B2836",
        "26337992-3648-404E-AB89-521D93C6F5DB",
        "401E137A-715C-4AF4-A54C-4EDCB8EB44A6",
        "9F5E1ECC-9826-4C0B-BC55-725E0ADCA2F6"
        "9F5E1ECC-9826-4C0B-BC55-725E0ADCA2F6",
        "3AA9C9FB-86F2-4836-83EB-E2F8B2E540E7"
      ],
      "id": "8270D4EA-5A4E-46A2-B341-B84890AD8F5F"
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamProcessParametersController.java
@@ -9,6 +9,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.util.oConvertUtils;
@@ -20,6 +21,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -48,6 +50,9 @@
public class EamProcessParametersController extends JeecgController<EamProcessParameters, IEamProcessParametersService> {
    @Autowired
    private IEamProcessParametersService eamProcessParametersService;
    @Autowired
    private ISysBusinessCodeRuleService businessCodeRuleService;
    
    /**
     * åˆ†é¡µåˆ—表查询
@@ -66,6 +71,7 @@
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<EamProcessParameters> queryWrapper = QueryGenerator.initQueryWrapper(eamProcessParameters, req.getParameterMap());
        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        Page<EamProcessParameters> page = new Page<EamProcessParameters>(pageNo, pageSize);
        IPage<EamProcessParameters> pageList = eamProcessParametersService.page(page, queryWrapper);
        return Result.OK(pageList);
@@ -81,6 +87,9 @@
    @ApiOperation(value="工序参数维护-添加", notes="工序参数维护-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody EamProcessParameters eamProcessParameters) {
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq("ProcessParametersRule");
        eamProcessParameters.setParameterCode(codeSeq);
        eamProcessParameters.setDelFlag(CommonConstant.DEL_FLAG_0);
        eamProcessParametersService.save(eamProcessParameters);
        return Result.OK("添加成功!");
    }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/EamProcessParameters.java
@@ -8,6 +8,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
@@ -30,34 +31,32 @@
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**删除标记*/
    @Excel(name = "删除标记", width = 15)
    @ApiModelProperty(value = "删除标记")
    private Integer delFlag;
    /**参数编码*/
    @Excel(name = "参数编码", width = 15)
    @Excel(name = "参数编码", width = 25)
    @ApiModelProperty(value = "参数编码")
    private String parameterCode;
    /**参数名称*/
    @Excel(name = "参数名称", width = 15)
    @Excel(name = "参数名称", width = 25)
    @ApiModelProperty(value = "参数名称")
    private String parameterName;
    /**参数分类*/
    @Excel(name = "参数分类", width = 15)
    @Excel(name = "参数分类", width = 15, dicCode = "process_parameters_category")
    @ApiModelProperty(value = "参数分类")
    @Dict(dicCode = "process_parameters_category")
    private String parameterCategory;
    /**计量单位*/
    @Excel(name = "计量单位", width = 15)
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/SysBusinessCodeRuleController.java
@@ -7,6 +7,7 @@
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.system.entity.SysBusinessCodeRule;
@@ -48,6 +49,7 @@
                                   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
                                   HttpServletRequest req) {
        QueryWrapper<SysBusinessCodeRule> queryWrapper = QueryGenerator.initQueryWrapper(sysBusinessCodeRule, req.getParameterMap());
        queryWrapper.eq("del_flag", CommonConstant.DEL_FLAG_0);
        Page<SysBusinessCodeRule> page = new Page<SysBusinessCodeRule>(pageNo, pageSize);
        IPage<SysBusinessCodeRule> pageList = sysBusinessCodeRuleService.page(page, queryWrapper);
        return Result.OK(pageList);
@@ -63,6 +65,7 @@
    @ApiOperation(value="业务编码规则-添加", notes="业务编码规则-添加")
    @PostMapping(value = "/add")
    public Result<?> add(@RequestBody SysBusinessCodeRule sysBusinessCodeRule) {
        sysBusinessCodeRule.setDelFlag(CommonConstant.DEL_FLAG_0);
        sysBusinessCodeRuleService.save(sysBusinessCodeRule);
        return Result.OK("添加成功!");
    }
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeRule.java
@@ -69,15 +69,11 @@
    @ApiModelProperty(value = "月份编码格式")
    private String monthFormat;
    /**天 ç¼–码格式*/
    @Excel(name = "天 ç¼–码格式", width = 15)
    @ApiModelProperty(value = "天 ç¼–码格式")
    @Excel(name = "天编码格式", width = 15)
    @ApiModelProperty(value = "天编码格式")
    private String dayFormat;
    /**序号长度*/
    @Excel(name = "序号长度", width = 15)
    @ApiModelProperty(value = "序号长度")
    private Integer seqLength;
    /**当前序号*/
    @Excel(name = "当前序号", width = 15)
    @ApiModelProperty(value = "当前序号")
    private Integer currentNum;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/SysBusinessCodeSeq.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,71 @@
package org.jeecg.modules.system.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.io.Serializable;
import java.util.Date;
/**
 * @Description: ä¸šåŠ¡ç¼–ç ç”Ÿæˆåºåˆ—
 * @Author: jeecg-boot
 * @Date:   2025-03-19
 * @Version: V1.0
 */
@Data
@TableName("sys_business_code_seq")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="sys_business_code_seq对象", description="业务编码生成序列")
public class SysBusinessCodeSeq implements Serializable {
    /**主键*/
    @TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private String id;
    /**创建人*/
    @Excel(name = "创建人", width = 15)
    @ApiModelProperty(value = "创建人")
    private String createBy;
    /**创建时间*/
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**更新人*/
    @Excel(name = "更新人", width = 15)
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**更新时间*/
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;
    /**规则编码*/
    @Excel(name = "规则编码", width = 15)
    @ApiModelProperty(value = "规则编码")
    private String ruleId;
    /**前缀*/
    @Excel(name = "前缀", width = 15)
    @ApiModelProperty(value = "前缀")
    private String prefix;
    /**当前年份*/
    @Excel(name = "当前年份", width = 15)
    @ApiModelProperty(value = "当前年份")
    private String currentYear;
    /**当前月份*/
    @Excel(name = "当前月份", width = 15)
    @ApiModelProperty(value = "当前月份")
    private String currentMonth;
    /**当前天*/
    @Excel(name = "当前天", width = 15)
    @ApiModelProperty(value = "当前天")
    private String currentDay;
    /**当前序列值*/
    @Excel(name = "当前序列值", width = 15)
    @ApiModelProperty(value = "当前序列值")
    private Integer currentSeq;
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/SysBusinessCodeSeqMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package org.jeecg.modules.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.jeecg.modules.system.entity.SysBusinessCodeSeq;
/**
 * @Description: ä¸šåŠ¡ç¼–ç ç”Ÿæˆåºåˆ—
 * @Author: jeecg-boot
 * @Date:   2025-03-19
 * @Version: V1.0
 */
public interface SysBusinessCodeSeqMapper extends BaseMapper<SysBusinessCodeSeq> {
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/SysBusinessCodeSeqMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.system.mapper.SysBusinessCodeSeqMapper">
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeRuleService.java
@@ -10,5 +10,10 @@
 * @Version: V1.0
 */
public interface ISysBusinessCodeRuleService extends IService<SysBusinessCodeRule> {
    /**
     * ç”Ÿæˆä¸šåŠ¡ç¼–ç å¯¹åº”çš„æµæ°´å·
     * @param businessCode ä¸šåŠ¡ç¼–ç 
     * @return
     */
    String generateBusinessCodeSeq(String businessCode);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/ISysBusinessCodeSeqService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
package org.jeecg.modules.system.service;
import org.jeecg.modules.system.entity.SysBusinessCodeSeq;
import com.baomidou.mybatisplus.extension.service.IService;
/**
 * @Description: ä¸šåŠ¡ç¼–ç ç”Ÿæˆåºåˆ—
 * @Author: jeecg-boot
 * @Date:   2025-03-19
 * @Version: V1.0
 */
public interface ISysBusinessCodeSeqService extends IService<SysBusinessCodeSeq> {
    /**
     * èŽ·å–å½“å‰åºåˆ—ç”Ÿæˆè®°å½•
     * @param ruleId è§„则Id
     * @param prefix å‰ç¼€
     * @param yearValue å¹´ä»½
     * @param monthValue æœˆä»½
     * @param dayValue å¤©
     * @return
     */
    SysBusinessCodeSeq queryByParams(String ruleId, String prefix, String yearValue, String monthValue, String dayValue);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeRuleServiceImpl.java
@@ -1,19 +1,128 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.system.entity.SysBusinessCodeRule;
import org.jeecg.modules.system.entity.SysBusinessCodeSeq;
import org.jeecg.modules.system.mapper.SysBusinessCodeRuleMapper;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.jeecg.modules.system.service.ISysBusinessCodeSeqService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
 * @Description: ä¸šåŠ¡ç¼–ç è§„åˆ™
 * @Author: jeecg-boot
 * @Date:   2025-03-17
 * @Date: 2025-03-17
 * @Version: V1.0
 */
@Service
public class SysBusinessCodeRuleServiceImpl extends ServiceImpl<SysBusinessCodeRuleMapper, SysBusinessCodeRule> implements ISysBusinessCodeRuleService {
    @Resource
    private SysBusinessCodeRuleMapper businessCodeRuleMapper;
    @Autowired
    private ISysBusinessCodeSeqService businessCodeSeqService;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public String generateBusinessCodeSeq(String businessCode) {
        //查询生成规则
        LambdaQueryWrapper<SysBusinessCodeRule> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysBusinessCodeRule::getBusinessCode, businessCode);
        queryWrapper.eq(SysBusinessCodeRule::getDelFlag, CommonConstant.DEL_FLAG_0);
        List<SysBusinessCodeRule> list = businessCodeRuleMapper.selectList(queryWrapper);
        if (CollectionUtil.isEmpty(list)) {
            throw new JeecgBootException("未查询到配置的业务编码生成规则,请联系管理员检查!");
        }
        if (list.size() > 1) {
            throw new JeecgBootException("查询到多个配置的业务编码生成规则,请联系管理员检查!");
        }
        SysBusinessCodeRule businessCodeRule = list.get(0);
        String prefix = businessCodeRule.getPrefix();
        String yearFormat = businessCodeRule.getYearFormat() == null ? "" : businessCodeRule.getYearFormat().trim();
        String monthFormat = businessCodeRule.getMonthFormat() == null ? "" : businessCodeRule.getMonthFormat().trim();
        String dayFormat = businessCodeRule.getDayFormat() == null ? "" : businessCodeRule.getDayFormat().trim();
        Integer seqLength = businessCodeRule.getSeqLength();
        String formatter = yearFormat + "-" + monthFormat + "-" + dayFormat;
        //转换当前日期对应的生成序列
        String[] currentDate = LocalDate.now().format(DateTimeFormatter.ofPattern(formatter)).split("-");
        int i = 0;
        if (StringUtils.isNotBlank(yearFormat)) {
            yearFormat = currentDate[i];
            i++;
        }else {
            yearFormat = null;
        }
        if (StringUtils.isNotBlank(monthFormat)) {
            monthFormat = currentDate[i];
            i++;
        }else {
            monthFormat = null;
        }
        if (StringUtils.isNotBlank(dayFormat)) {
            dayFormat = currentDate[i];
        }else {
            dayFormat = null;
        }
        //查询生成序列
        SysBusinessCodeSeq sysBusinessCodeSeq = businessCodeSeqService.queryByParams(businessCodeRule.getId(), prefix, yearFormat, monthFormat, dayFormat);
        if(sysBusinessCodeSeq == null){
            //新增生成序列
            sysBusinessCodeSeq = new SysBusinessCodeSeq();
            sysBusinessCodeSeq.setRuleId(businessCodeRule.getId());
            sysBusinessCodeSeq.setPrefix(prefix);
            sysBusinessCodeSeq.setCurrentYear(yearFormat);
            sysBusinessCodeSeq.setCurrentMonth(monthFormat);
            sysBusinessCodeSeq.setCurrentDay(dayFormat);
            sysBusinessCodeSeq.setCurrentSeq(1);
            businessCodeSeqService.save(sysBusinessCodeSeq);
        }else {
            //更新生成序列
            sysBusinessCodeSeq.setCurrentSeq(sysBusinessCodeSeq.getCurrentSeq() + 1);
            businessCodeSeqService.updateById(sysBusinessCodeSeq);
        }
        //返回生成的序列
        return appendPrefix(prefix, yearFormat, monthFormat, dayFormat, seqLength, sysBusinessCodeSeq.getCurrentSeq());
    }
    /**
     * æ‹¼æŽ¥ä¸šåŠ¡æµæ°´å·
     * @param prefix å‰ç¼€
     * @param yearFormat å¹´ä»½
     * @param monthFormat æœˆä»½
     * @param dayFormat å¤©
     * @param seqLength åºå·é•¿åº¦
     * @param currentSeq å½“前序号
     * @return
     */
    private String appendPrefix(String prefix, String yearFormat, String monthFormat, String dayFormat, Integer seqLength, Integer currentSeq) {
        StringBuilder sb = new StringBuilder();
        if(StringUtils.isNotBlank(prefix)){
            sb.append(prefix);
        }
        if(StringUtils.isNotBlank(yearFormat)){
            sb.append(yearFormat);
        }
        if(StringUtils.isNotBlank(monthFormat)){
            sb.append(monthFormat);
        }
        if(StringUtils.isNotBlank(dayFormat)){
            sb.append(dayFormat);
        }
        sb.append(StringUtils.leftPad(currentSeq.toString(), seqLength, '0'));
        return sb.toString();
    }
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysBusinessCodeSeqServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
package org.jeecg.modules.system.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.system.entity.SysBusinessCodeSeq;
import org.jeecg.modules.system.mapper.SysBusinessCodeSeqMapper;
import org.jeecg.modules.system.service.ISysBusinessCodeSeqService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
/**
 * @Description: ä¸šåŠ¡ç¼–ç ç”Ÿæˆåºåˆ—
 * @Author: jeecg-boot
 * @Date:   2025-03-19
 * @Version: V1.0
 */
@Service
public class SysBusinessCodeSeqServiceImpl extends ServiceImpl<SysBusinessCodeSeqMapper, SysBusinessCodeSeq> implements ISysBusinessCodeSeqService {
    @Override
    public SysBusinessCodeSeq queryByParams(String ruleId, String prefix, String yearValue, String monthValue, String dayValue) {
        LambdaQueryWrapper<SysBusinessCodeSeq> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(SysBusinessCodeSeq::getRuleId, ruleId);
        queryWrapper.orderByDesc(SysBusinessCodeSeq::getCreateTime);
        if(StringUtils.isNotBlank(prefix)){
            queryWrapper.eq(SysBusinessCodeSeq::getPrefix, prefix);
        }else {
            queryWrapper.isNull(SysBusinessCodeSeq::getPrefix);
        }
        if(StringUtils.isNotBlank(yearValue)){
            queryWrapper.eq(SysBusinessCodeSeq::getCurrentYear, yearValue);
        }else {
            queryWrapper.isNull(SysBusinessCodeSeq::getCurrentYear);
        }
        if(StringUtils.isNotBlank(monthValue)){
            queryWrapper.eq(SysBusinessCodeSeq::getCurrentMonth, monthValue);
        }else {
            queryWrapper.isNull(SysBusinessCodeSeq::getCurrentMonth);
        }
        if(StringUtils.isNotBlank(dayValue)){
            queryWrapper.eq(SysBusinessCodeSeq::getCurrentDay, dayValue);
        }else {
            queryWrapper.isNull(SysBusinessCodeSeq::getCurrentDay);
        }
        List<SysBusinessCodeSeq> list = super.list(queryWrapper);
        if(CollectionUtil.isEmpty(list)){
            return null;
        }
        return list.get(0);
    }
}