From fdbc5af6474abb39120b771af87005aeb6186ae5 Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期一, 14 九月 2026 15:28:28 +0800
Subject: [PATCH] feat: 售后工单按条绑定部门与原因类型;新增加班工资管理;员工附件留档

---
 yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketServiceImpl.java |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketServiceImpl.java b/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketServiceImpl.java
index c509cce..294181a 100644
--- a/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketServiceImpl.java
+++ b/yudao-module-aftersales/src/main/java/cn/iocoder/yudao/module/aftersales/service/ticket/AfterSaleTicketServiceImpl.java
@@ -67,13 +67,14 @@
                 .setOwnerUserId(userId);
         ticketMapper.insert(ticket);
 
-        // 3. 鎻掑叆鏄庣粏琛�
+        // 3. 鎻掑叆鏄庣粏琛岋紙姣忔潯鐢熸垚鐙珛鍞悗鍗曞彿锛氬伐鍗曞彿-搴忓彿锛�
         if (CollUtil.isNotEmpty(createReqVO.getItems())) {
-            createReqVO.getItems().forEach(item -> {
-                AfterSaleTicketItemDO itemDO = BeanUtils.toBean(item, AfterSaleTicketItemDO.class);
+            for (int i = 0; i < createReqVO.getItems().size(); i++) {
+                AfterSaleTicketItemDO itemDO = BeanUtils.toBean(createReqVO.getItems().get(i), AfterSaleTicketItemDO.class);
                 itemDO.setTicketId(ticket.getId());
+                itemDO.setItemNo(buildItemNo(no, i + 1));
                 ticketItemMapper.insert(itemDO);
-            });
+            }
         }
 
         // 4. 缁戝畾闄勪欢
@@ -102,14 +103,15 @@
         AfterSaleTicketDO updateObj = BeanUtils.toBean(updateReqVO, AfterSaleTicketDO.class);
         ticketMapper.updateById(updateObj);
 
-        // 3. 鏇存柊鏄庣粏琛岋紙鍏堝垹鍚庡锛�
+        // 3. 鏇存柊鏄庣粏琛岋紙鍏堝垹鍚庡锛屾瘡鏉$敓鎴愮嫭绔嬪敭鍚庡崟鍙凤細宸ュ崟鍙�-搴忓彿锛�
         ticketItemMapper.deleteByTicketId(ticket.getId());
         if (CollUtil.isNotEmpty(updateReqVO.getItems())) {
-            updateReqVO.getItems().forEach(item -> {
-                AfterSaleTicketItemDO itemDO = BeanUtils.toBean(item, AfterSaleTicketItemDO.class);
+            for (int i = 0; i < updateReqVO.getItems().size(); i++) {
+                AfterSaleTicketItemDO itemDO = BeanUtils.toBean(updateReqVO.getItems().get(i), AfterSaleTicketItemDO.class);
                 itemDO.setTicketId(ticket.getId());
+                itemDO.setItemNo(buildItemNo(ticket.getNo(), i + 1));
                 ticketItemMapper.insert(itemDO);
-            });
+            }
         }
 
         // 4. 鏇存柊闄勪欢
@@ -204,6 +206,11 @@
 
     // ========== 鍐呴儴鏂规硶 ==========
 
+    /** 鐢熸垚鏄庣粏鍞悗鍗曞彿锛氬伐鍗曞彿-涓や綅搴忓彿 */
+    private String buildItemNo(String ticketNo, int index) {
+        return ticketNo + "-" + String.format("%02d", index);
+    }
+
     private AfterSaleTicketDO validateTicketExists(Long id) {
         AfterSaleTicketDO ticket = ticketMapper.selectById(id);
         if (ticket == null) {

--
Gitblit v1.9.3