From 6916862c6dbb26fc850d3c28bec89e7382b77dd2 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 24 三月 2026 13:02:08 +0800
Subject: [PATCH] feat: 报工编号提取公共方法

---
 src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java |   58 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 30 insertions(+), 28 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index fa34114..e8237a8 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -106,33 +106,7 @@
         //鏌ヨ璇ョ敓浜ц鍗曞搴旂殑bom
         ProductProcessRoute productProcessRoute = productProcessRouteMapper.selectById(productProcessRouteItem.getProductRouteId());
         /*鏂板鎶ュ伐涓昏〃*/
-        //鏌ヨ鏈�澶ф姤宸ョ紪鍙�
-        String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
-        QueryWrapper<ProductionProductMain> queryWrapper = new QueryWrapper<>();
-        queryWrapper.select("MAX(product_no) as maxNo")
-                .likeRight("product_no", datePrefix);
-        List<Map<String, Object>> resultList = productionProductMainMapper.selectMaps(queryWrapper);
-        int sequenceNumber = 1;
-        if (resultList != null && !resultList.isEmpty()) {
-            Map<String, Object> result = resultList.get(0);
-            if (result != null) {
-                Object maxNoObj = result.get("maxNo");
-                if (maxNoObj != null) {
-                    String lastNo = maxNoObj.toString();
-                    System.out.println("lastNo: " + lastNo);
-                    if (lastNo.startsWith(datePrefix)) {
-                        try {
-                            String seqStr = lastNo.substring(datePrefix.length());
-                            sequenceNumber = Integer.parseInt(seqStr) + 1;
-                        } catch (NumberFormatException e) {
-                            sequenceNumber = 1;
-                        }
-                    }
-                }
-            }
-        }
-        String productNo = String.format("%s%03d", datePrefix, sequenceNumber);
-        productionProductMain.setProductNo(productNo);
+        productionProductMain.setProductNo(generateProductNo());
         productionProductMain.setUserId(dto.getUserId());
         productionProductMain.setUserName(dto.getUserName());
         productionProductMain.setProductProcessRouteItemId(dto.getProductProcessRouteItemId());
@@ -140,7 +114,7 @@
         productionProductMain.setStatus(0);
         productionProductMainMapper.insert(productionProductMain);
         /*鏂板鎶ュ伐鎶曞叆琛�*/
-        List<ProductStructureDto> productStructureDtos = productStructureMapper.listBybomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
+        List<ProductStructureDto> productStructureDtos = productStructureMapper.listByBomAndProcess(productProcessRoute.getBomId(), productProcess.getId());
         if (productStructureDtos.size() == 0) {
             //濡傛灉璇ュ伐搴忔病鏈変骇鍝佺粨鏋勭殑鎶曞叆鍝�,閭h繖涓姇鍏ュ搧鍜屼骇鍑哄搧鏄悓涓�涓�
             ProductStructureDto productStructureDto = new ProductStructureDto();
@@ -345,4 +319,32 @@
     public ArrayList<Long> listMain(List<Long> idList) {
         return productionProductMainMapper.listMain(idList);
     }
+
+    @Override
+    public String generateProductNo() {
+        String datePrefix = "BG" + LocalDate.now().format(DateTimeFormatter.ofPattern("yyMMdd"));
+        QueryWrapper<ProductionProductMain> queryWrapper = new QueryWrapper<>();
+        queryWrapper.select("MAX(product_no) as maxNo")
+                .likeRight("product_no", datePrefix);
+        List<Map<String, Object>> resultList = productionProductMainMapper.selectMaps(queryWrapper);
+        int sequenceNumber = 1;
+        if (resultList != null && !resultList.isEmpty()) {
+            Map<String, Object> result = resultList.get(0);
+            if (result != null) {
+                Object maxNoObj = result.get("maxNo");
+                if (maxNoObj != null) {
+                    String lastNo = maxNoObj.toString();
+                    if (lastNo.startsWith(datePrefix)) {
+                        try {
+                            String seqStr = lastNo.substring(datePrefix.length());
+                            sequenceNumber = Integer.parseInt(seqStr) + 1;
+                        } catch (NumberFormatException e) {
+                            sequenceNumber = 1;
+                        }
+                    }
+                }
+            }
+        }
+        return String.format("%s%03d", datePrefix, sequenceNumber);
+    }
 }

--
Gitblit v1.9.3