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/MesWmStockTakingTaskLineServiceImpl.java |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java
index 1fed457..93662a1 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java
@@ -21,6 +21,7 @@
 import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService;
 import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanParamService;
 import jakarta.annotation.Resource;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
@@ -52,6 +53,10 @@
     private MesWmMaterialStockService materialStockService;
     @Resource
     private MesWmStockTakingTaskService stockTakingTaskService;
+    // 涓� ResultService 鐩镐簰寮曠敤锛圧esultServiceImpl 宸叉敞鍏� LineService锛夛紝椤荤敤 @Lazy 鎵撶牬寰幆
+    @Lazy
+    @Resource
+    private MesWmStockTakingTaskResultService stockTakingTaskResultService;
     @Resource
     private cn.iocoder.yudao.module.mdm.api.item.MdmItemApi mdmItemApi;
 
@@ -74,7 +79,8 @@
         // 3. 鎵归噺鐢熸垚鏄庣粏琛�
         List<MesWmStockTakingTaskLineDO> lines = convertList(stocks, stock -> MesWmStockTakingTaskLineDO.builder()
                 .taskId(task.getId()).materialStockId(stock.getId()).itemId(stock.getItemId())
-                .batchId(stock.getBatchId()).quantity(stock.getQuantity()).takingQuantity(BigDecimal.ZERO)
+                .batchId(stock.getBatchId()).batchCode(stock.getBatchCode())
+                .quantity(stock.getQuantity()).takingQuantity(BigDecimal.ZERO)
                 .warehouseId(stock.getWarehouseId()).locationId(stock.getLocationId()).areaId(stock.getAreaId())
                 .status(MesWmStockTakingTaskLineStatusEnum.LOSS.getStatus()).build());
         stockTakingTaskLineMapper.insertBatch(lines);
@@ -244,6 +250,8 @@
         if (CollUtil.isEmpty(list)) {
             return respVO;
         }
+        // 0. 鏍¢獙鐩樼偣浠诲姟澶勪簬鐩樼偣涓姸鎬侊紙涓庝汉宸ュ綍鍏ョ洏鐐圭粨鏋滃彛寰勪竴鑷达紝浠呯洏鐐逛腑鍙鍏ワ級
+        stockTakingTaskService.validateStockTakingTaskExistsAndApproving(taskId);
         // 1. 鑾峰彇鐩樼偣浠诲姟琛�
         List<MesWmStockTakingTaskLineDO> lines = stockTakingTaskLineMapper.selectListByTaskId(taskId);
         if (CollUtil.isEmpty(lines)) {
@@ -283,6 +291,8 @@
                 continue;
             }
             updateStockTakingTaskLineTakingQuantity(matched.getId(), row.getTakingQuantity());
+            // 鍚屾鍐欑洏鐐圭粨鏋滐紝淇濊瘉宸紓鏍搁攢鏉ユ簮锛坱ask_result锛変竴鑷�
+            stockTakingTaskResultService.upsertResultForImport(matched, row.getTakingQuantity());
             respVO.setSuccessCount(respVO.getSuccessCount() + 1);
         }
         return respVO;

--
Gitblit v1.9.3