From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 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 5f68604..22e8c6a 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
@@ -30,6 +30,7 @@
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_TASK_LINE_NOT_EXISTS;
+import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_TASK_LINE_TASK_MISMATCH;
 import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.WM_STOCK_TAKING_TASK_NO_STOCK;
 
 /**
@@ -104,11 +105,15 @@
     public void updateStockTakingTaskLine(MesWmStockTakingTaskLineSaveReqVO updateReqVO) {
         // 1.1 鏍¢獙鐩樼偣浠诲姟琛屽瓨鍦�
         MesWmStockTakingTaskLineDO line = validateStockTakingTaskLineExists(updateReqVO.getId());
+        if (!Objects.equals(line.getTaskId(), updateReqVO.getTaskId())) {
+            throw exception(WM_STOCK_TAKING_TASK_LINE_TASK_MISMATCH);
+        }
         // 1.2 鏍¢獙鐩樼偣浠诲姟瀛樺湪锛屽苟涓斿浜庛�愬噯澶囦腑銆戠姸鎬�
-        stockTakingTaskService.validateStockTakingTaskExistsAndPrepare(updateReqVO.getTaskId());
+        stockTakingTaskService.validateStockTakingTaskExistsAndPrepare(line.getTaskId());
 
         // 2. 鏇存柊鐩樼偣浠诲姟琛�
         MesWmStockTakingTaskLineDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingTaskLineDO.class);
+        updateObj.setTaskId(line.getTaskId());
         stockTakingTaskLineMapper.updateById(updateObj);
     }
 
@@ -171,8 +176,10 @@
     }
 
     @Override
-    public MesWmStockTakingTaskLineDO getStockTakingTaskLine(Long taskId, Long itemId, Long areaId) {
-        return stockTakingTaskLineMapper.selectByTaskIdAndItemIdAndAreaId(taskId, itemId, areaId);
+    public MesWmStockTakingTaskLineDO getStockTakingTaskLine(Long taskId, Long itemId, Long warehouseId,
+                                                            Long locationId, Long areaId, Long batchId) {
+        return stockTakingTaskLineMapper.selectByStockDimensions(taskId, itemId, warehouseId,
+                locationId, areaId, batchId);
     }
 
     @Override
@@ -189,6 +196,7 @@
     public Long createStockTakingTaskLine(MesWmStockTakingTaskResultSaveReqVO createReqVO) {
         MesWmStockTakingTaskLineDO line = new MesWmStockTakingTaskLineDO()
                 .setTaskId(createReqVO.getTaskId()).setItemId(createReqVO.getItemId()).setBatchId(createReqVO.getBatchId())
+                .setBatchCode(createReqVO.getBatchCode())
                 .setWarehouseId(createReqVO.getWarehouseId()).setLocationId(createReqVO.getLocationId()).setAreaId(createReqVO.getAreaId())
                 .setQuantity(BigDecimal.ZERO) // 璐﹂潰鏁伴噺榛樿涓� 0
                 .setTakingQuantity(createReqVO.getTakingQuantity()) // 鐩樼偣鏁伴噺
@@ -197,6 +205,15 @@
         return line.getId();
     }
 
+    @Override
+    public void deleteAutoGeneratedLine(Long lineId) {
+        MesWmStockTakingTaskLineDO line = validateStockTakingTaskLineExists(lineId);
+        if (line.getMaterialStockId() == null && line.getQuantity() != null
+                && line.getQuantity().compareTo(BigDecimal.ZERO) == 0) {
+            stockTakingTaskLineMapper.deleteById(lineId);
+        }
+    }
+
     /**
      * 璁$畻鐩樼偣浠诲姟琛岀姸鎬�
      *

--
Gitblit v1.9.3