From 8114cb3d085e64ad82ccb1274816831d131a8683 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期二, 31 三月 2026 13:35:19 +0800
Subject: [PATCH] feat(sales): 按年月格式优化销售合同编号生成规则

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index 2326c13..96260b6 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.convert.Convert;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
@@ -670,7 +671,7 @@
             salesLedger.setTenantId(customer.getTenantId());
             // 3. 鏂板鎴栨洿鏂颁富琛�
             if (salesLedger.getId() == null) {
-                String contractNo = generateSalesContractNo();
+                String contractNo = generateSalesContractNoBy8Date();
                 salesLedger.setSalesContractNo(contractNo);
                 salesLedgerMapper.insert(salesLedger);
             } else {
@@ -814,6 +815,19 @@
         return entity;
     }
 
+    public String generateSalesContractNoBy8Date(){
+        String yyMM = DateUtil.format(new Date(), "yyMM");
+        // 鏌ヨ涓�涓湀鏈夊灏戣鍗�
+        Date begin = DateUtil.beginOfMonth(new Date());
+        Date end = DateUtil.endOfMonth(new Date());
+        LambdaQueryWrapper<SalesLedger> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.between(SalesLedger::getEntryDate, begin, end);
+        long count = salesLedgerMapper.selectCount(queryWrapper);
+        return StrUtil.format("{}{:04d}", yyMM, count + 1);
+    }
+
+
+
     @Transactional(readOnly = true)
     public String generateSalesContractNo() {
         LocalDate currentDate = LocalDate.now();

--
Gitblit v1.9.3