From b852254d90e7d1955db31db154193ec8ee84d8b3 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 10:57:59 +0800
Subject: [PATCH] feat(hrm): 新增员工用工性质、班组归属字段及考勤异常处理优化

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java |   24 ++++++++++++++++++++++++
 1 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
index f7c8664..a7fbc02 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskResultServiceImpl.java
@@ -15,6 +15,7 @@
 
 import java.math.BigDecimal;
 import java.util.List;
+import java.util.Objects;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_TASK_LINE_ALREADY_TAKEN;
@@ -132,6 +133,29 @@
         return stockTakingTaskResultMapper.selectListByTaskId(taskId);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void upsertResultForImport(MesWmStockTakingTaskLineDO line, BigDecimal takingQuantity) {
+        // 1. 鏌ヨ璇ヤ换鍔′笅鏄惁宸插瓨鍦ㄨ琛岀殑鐩樼偣缁撴灉
+        MesWmStockTakingTaskResultDO existing = stockTakingTaskResultMapper.selectListByTaskId(line.getTaskId()).stream()
+                .filter(result -> Objects.equals(result.getLineId(), line.getId()))
+                .findFirst().orElse(null);
+        if (existing != null) {
+            // 2. 宸插瓨鍦細瑕嗙洊瀹炵洏鏁伴噺锛堥噸澶嶅鍏ヤ互鏈�鍚庝竴娆′负鍑嗭級
+            existing.setTakingQuantity(takingQuantity);
+            stockTakingTaskResultMapper.updateById(existing);
+            return;
+        }
+        // 3. 涓嶅瓨鍦細鎸夌洏鐐硅缁村害鏂板缓锛岃处闈㈡暟閲忓彇琛岃处闈㈡暟閲忥紝淇濊瘉鏍搁攢宸鍙e緞涓�鑷�
+        MesWmStockTakingTaskResultDO result = MesWmStockTakingTaskResultDO.builder()
+                .taskId(line.getTaskId()).lineId(line.getId()).materialStockId(line.getMaterialStockId())
+                .itemId(line.getItemId()).batchId(line.getBatchId()).batchCode(line.getBatchCode())
+                .warehouseId(line.getWarehouseId()).locationId(line.getLocationId()).areaId(line.getAreaId())
+                .quantity(line.getQuantity()).takingQuantity(takingQuantity)
+                .build();
+        stockTakingTaskResultMapper.insert(result);
+    }
+
     /**
      * 鏍¢獙鐩樼偣缁撴灉鏄惁瀛樺湪
      *

--
Gitblit v1.9.3