From 7d188cc913d5ea547c5e99ae434ea3b1cf4e818a Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期五, 15 八月 2025 09:00:41 +0800
Subject: [PATCH] 仓库货架业务流程修改

---
 src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java                      |    9 +
 src/main/java/com/ruoyi/warehouse/pojo/Documentation.java                                  |    2 
 src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java    |   61 ++++++-----
 src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java          |    9 -
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java |   39 ++-----
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java                   |   36 +++++-
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java       |   96 +++++++++---------
 7 files changed, 134 insertions(+), 118 deletions(-)

diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java
index 45fe997..64ad5c6 100644
--- a/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java
+++ b/src/main/java/com/ruoyi/warehouse/controller/WarehouseController.java
@@ -1,14 +1,16 @@
 package com.ruoyi.warehouse.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
-
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.ruoyi.warehouse.pojo.Warehouse;
+import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
 import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
 import com.ruoyi.warehouse.service.WarehouseService;
 import io.swagger.annotations.Api;
@@ -26,7 +28,6 @@
     @Autowired
     private WarehouseService warehouseService;
 
-
     @GetMapping("/listPage")
     @ApiOperation("浠撳簱-鏌ヨ")
     @Log(title = "浠撳簱-鏌ヨ", businessType = BusinessType.OTHER)
@@ -37,7 +38,7 @@
     @ApiOperation("浠撳簱-娣诲姞")
     @Log(title = "浠撳簱-娣诲姞", businessType = BusinessType.INSERT)
     public AjaxResult add(@RequestBody Warehouse warehouse) {
-        return warehouseService.save(warehouse) ? AjaxResult.success("娣诲姞鎴愬姛") : AjaxResult.error("娣诲姞澶辫触");
+        return AjaxResult.success(warehouseService.save(warehouse));
     }
 
     @PostMapping("/update")
@@ -52,6 +53,6 @@
     @Log(title = "浠撳簱-鍒犻櫎", businessType = BusinessType.DELETE)
     public AjaxResult delete(@RequestBody List<Long> ids) {
         if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
-        return warehouseService.deleteByIds(ids) ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+        return AjaxResult.success(warehouseService.deleteByIds(ids));
     }
 }
diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java
index 64eefd2..f373b88 100644
--- a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java
+++ b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesController.java
@@ -43,22 +43,19 @@
     @ApiOperation("鍟嗗搧璐ф灦-娣诲姞")
     @Log(title = "鍟嗗搧璐ф灦-娣诲姞", businessType = BusinessType.INSERT)
     public AjaxResult add(@RequestBody WarehouseGoodsShelves warehouseGoodsShelves) {
-        boolean save = warehouseGoodsShelvesService.add(warehouseGoodsShelves);
-        return save ? AjaxResult.success("娣诲姞鎴愬姛") : AjaxResult.error("娣诲姞澶辫触");
+        return AjaxResult.success(warehouseGoodsShelvesService.add(warehouseGoodsShelves));
     }
     @PostMapping("/update")
     @ApiOperation("鍟嗗搧璐ф灦-鏇存柊")
     @Log(title = "鍟嗗搧璐ф灦-鏇存柊", businessType = BusinessType.UPDATE)
     public AjaxResult update(@RequestBody WarehouseGoodsShelves warehouseGoodsShelves) {
-        boolean update = warehouseGoodsShelvesService.updateRowcolById(warehouseGoodsShelves);
-        return update ? AjaxResult.success("鏇存柊鎴愬姛") : AjaxResult.error("鏇存柊澶辫触");
+        return AjaxResult.success(warehouseGoodsShelvesService.updateRowcolById(warehouseGoodsShelves));
     }
     @DeleteMapping("/delete")
     @ApiOperation("鍟嗗搧璐ф灦-鍒犻櫎")
     @Log(title = "鍟嗗搧璐ф灦-鍒犻櫎", businessType = BusinessType.DELETE)
     public AjaxResult delete(@RequestBody List<Long> ids) {
         if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
-        boolean remove = warehouseGoodsShelvesService.deleteByIds(ids);
-        return remove ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
+        return  AjaxResult.success(warehouseGoodsShelvesService.deleteByIds(ids));
     }
 }
diff --git a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java
index a0c7479..8f6c136 100644
--- a/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java
+++ b/src/main/java/com/ruoyi/warehouse/controller/WarehouseGoodsShelvesRowcolController.java
@@ -25,36 +25,39 @@
     private WarehouseGoodsShelvesRowcolService warehouseGoodsShelvesRowcolService;
     @Autowired
     private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
-
-    @GetMapping("/listPage")
-    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鍒嗛〉鏌ヨ")
-    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
-    public AjaxResult listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
-        IPage<WarehouseGoodsShelvesRowcol> listPage = warehouseGoodsShelvesRowcolService.listPage(page, warehouseGoodsShelvesRowcol);
-        return AjaxResult.success(listPage);
+    @GetMapping("/list")
+    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鏌ヨ")
+    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult list() {
+        List<WarehouseGoodsShelvesRowcol> list = warehouseGoodsShelvesRowcolService.list();
+        return AjaxResult.success(list);
     }
-    @PostMapping("/add")
-    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-娣诲姞")
-    @Log(title = "鍟嗗搧璐ф灦琛屽垪-娣诲姞", businessType = BusinessType.INSERT)
-    public AjaxResult add(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
-        boolean save = warehouseGoodsShelvesRowcolService.save(warehouseGoodsShelvesRowcol);
-        return save ? AjaxResult.success("娣诲姞鎴愬姛") : AjaxResult.error("娣诲姞澶辫触");
-    }
-    @PostMapping("/update")
-    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鏇存柊")
-    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鏇存柊", businessType = BusinessType.UPDATE)
-    public AjaxResult update(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
-        boolean up = warehouseGoodsShelvesRowcolService.updateById(warehouseGoodsShelvesRowcol);
-        return up ? AjaxResult.success("鏇存柊鎴愬姛") : AjaxResult.error("鏇存柊澶辫触");
-    }
-    @PostMapping("/delete")
-    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鍒犻櫎")
-    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鍒犻櫎", businessType = BusinessType.DELETE)
-    public AjaxResult delete(@RequestBody List<Long> ids) {
-        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
-        boolean remove = warehouseGoodsShelvesRowcolService.deleteByIds(ids);
-        return remove ? AjaxResult.success("鍒犻櫎鎴愬姛") : AjaxResult.error("鍒犻櫎澶辫触");
-    }
+//    @GetMapping("/listPage")
+//    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鍒嗛〉鏌ヨ")
+//    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+//    public AjaxResult listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
+//        IPage<WarehouseGoodsShelvesRowcol> listPage = warehouseGoodsShelvesRowcolService.listPage(page, warehouseGoodsShelvesRowcol);
+//        return AjaxResult.success(listPage);
+//    }
+//    @PostMapping("/add")
+//    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-娣诲姞")
+//    @Log(title = "鍟嗗搧璐ф灦琛屽垪-娣诲姞", businessType = BusinessType.INSERT)
+//    public AjaxResult add(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
+//        return AjaxResult.success(warehouseGoodsShelvesRowcolService.save(warehouseGoodsShelvesRowcol));
+//    }
+//    @PostMapping("/update")
+//    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鏇存柊")
+//    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鏇存柊", businessType = BusinessType.UPDATE)
+//    public AjaxResult update(@RequestBody WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
+//        return AjaxResult.success(warehouseGoodsShelvesRowcolService.updateById(warehouseGoodsShelvesRowcol));
+//    }
+//    @PostMapping("/delete")
+//    @ApiOperation("鍟嗗搧璐ф灦琛屽垪-鍒犻櫎")
+//    @Log(title = "鍟嗗搧璐ф灦琛屽垪-鍒犻櫎", businessType = BusinessType.DELETE)
+//    public AjaxResult delete(@RequestBody List<Long> ids) {
+//        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇蜂紶鍏ヨ鍒犻櫎鐨処D");
+//        return AjaxResult.success(warehouseGoodsShelvesRowcolService.removeByIds(ids));
+//    }
 
 
 }
diff --git a/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java b/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java
index f6c58ec..8c50afa 100644
--- a/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java
+++ b/src/main/java/com/ruoyi/warehouse/pojo/Documentation.java
@@ -6,6 +6,7 @@
 import java.time.LocalDateTime;
 import java.util.Date;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.framework.aspectj.lang.annotation.Excel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -73,6 +74,7 @@
      */
     @Excel(name = "鏂囨。鏃ユ湡")
     @ApiModelProperty(value = "鏂囨。鏃ユ湡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime docDate;
 
     /**
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java
index 3a0f3cc..c564012 100644
--- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java
+++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesRowcolServiceImpl.java
@@ -1,10 +1,14 @@
 package com.ruoyi.warehouse.service.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.warehouse.mapper.DocumentationMapper;
 import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
+import com.ruoyi.warehouse.pojo.Documentation;
 import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
 import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService;
 import lombok.extern.slf4j.Slf4j;
@@ -12,6 +16,7 @@
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -25,6 +30,8 @@
     implements WarehouseGoodsShelvesRowcolService {
     @Autowired
     private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
+    @Autowired
+    private DocumentationMapper documentationMapper;
 
     @Override
     public IPage<WarehouseGoodsShelvesRowcol> listPage(Page page, WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
@@ -34,13 +41,13 @@
 
     @Override
     public boolean deleteByIds(List<Long> ids) {
-        for (int i = 0; i < ids.size(); i++) {
-            Long id = ids.get(i);
-            WarehouseGoodsShelvesRowcol rowcol = warehouseGoodsShelvesRowcolMapper.selectById(id);
-            if(rowcol.getDocumentationId()!=null && rowcol.getDocumentationId()!=0){
-                log.error("璐ф灦涓婃湁鍟嗗搧,涓嶈兘鍒犻櫎");
-                return false;
-            }
+        // 3. 妫�鏌ユ槸鍚︽湁鍟嗗搧
+        Wrapper<Documentation> queryWrapper = new LambdaQueryWrapper<Documentation>()
+                .in(Documentation::getWarehouseGoodsShelvesRowcolId, ids);
+        List<Documentation> documentations = documentationMapper.selectList(queryWrapper);
+        if (!documentations.isEmpty()) {
+            log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鍒犻櫎", ids);
+            return false;
         }
         int i = warehouseGoodsShelvesRowcolMapper.deleteBatchIds(ids);
         if(i!=ids.size()){
@@ -49,24 +56,6 @@
         }
         return true;
     }
-
-
-//    @Override
-//    public boolean add(WarehouseGoodsShelvesRowcol warehouseGoodsShelvesRowcol) {
-//        for (int i = 0; i < warehouseGoodsShelvesRowcol.getRow(); i++) {
-//            for (int j = 0; j < warehouseGoodsShelvesRowcol.getCol(); j++) {
-//                WarehouseGoodsShelvesRowcol rowcol = new WarehouseGoodsShelvesRowcol();
-//                rowcol.setRow((long) i);
-//                rowcol.setCol((long) j);
-//                rowcol.setWarehouseGoodsShelvesId(warehouseGoodsShelvesRowcol.getWarehouseGoodsShelvesId());
-//                rowcol.setWarehouseId(warehouseGoodsShelvesRowcol.getWarehouseId());
-//                rowcol.setCreateUser(warehouseGoodsShelvesRowcol.getCreateUser());
-//                rowcol.setCreateTime(warehouseGoodsShelvesRowcol.getCreateTime());
-//                warehouseGoodsShelvesRowcolMapper.insert(rowcol);
-//            }
-//        }
-//        return true;
-//    }
 }
 
 
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java
index 9de15d6..314be51 100644
--- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java
+++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java
@@ -9,9 +9,12 @@
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.warehouse.mapper.DocumentationMapper;
 import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesMapper;
 import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
+import com.ruoyi.warehouse.pojo.Documentation;
 import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
+import com.ruoyi.warehouse.service.DocumentationService;
 import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService;
 import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
 import lombok.extern.slf4j.Slf4j;
@@ -41,6 +44,10 @@
     private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
     @Autowired
     private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper;
+    @Autowired
+    private DocumentationService documentationService;
+    @Autowired
+    private DocumentationMapper documentationMapper;
     @Override
     public IPage<WarehouseGoodsShelves> listPage(Page page, WarehouseGoodsShelves warehouseGoodsShelves) {
         return warehouseGoodsShelvesMapper.listPage(page,warehouseGoodsShelves);
@@ -49,11 +56,17 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean add(WarehouseGoodsShelves warehouseGoodsShelves) {
-        int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves);
-        if (insert <= 0) {
-            log.error("璐ф灦涓昏褰曟坊鍔犲け璐�");
-            return false;
+        WarehouseGoodsShelves one = warehouseGoodsShelvesMapper.selectOne(new LambdaQueryWrapper<WarehouseGoodsShelves>().eq(WarehouseGoodsShelves::getId, warehouseGoodsShelves.getId()));
+        // 1. 妫�鏌ヨ揣鏋跺悕绉版槸鍚﹀凡瀛樺湪
+        if (one == null) {
+            log.error("璐ф灦ID涓嶅瓨鍦�");
+            int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves);
+            if (insert <= 0) {
+                log.error("璐ф灦涓昏褰曟坊鍔犲け璐�");
+                return false;
+            }
         }
+
         Long shelvesId = warehouseGoodsShelves.getId();
         Long warehouseId = warehouseGoodsShelves.getWarehouseId();
         // 3. 鎵归噺鍒涘缓琛屽垪璁板綍
@@ -91,52 +104,38 @@
      * @return 鏄惁鏇存柊鎴愬姛
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves) {
-        // 鎻愬彇鍏抽敭ID锛屽噺灏戦噸澶嶈皟鐢�
         Long shelvesId = warehouseGoodsShelves.getId();
-        Long warehouseId = warehouseGoodsShelves.getWarehouseId();
 
+        // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈣璐ф灦涓嬬殑鎵�鏈夎鍒楄褰�
+        Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>()
+                .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId);
+        List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper);
+        //鑾峰緱rowcolList涓墍鏈夌殑Id
+        List<Long> rowcolIds = rowcolList.stream()
+                .map(WarehouseGoodsShelvesRowcol::getId)
+                .collect(Collectors.toList());
+        // 3. 妫�鏌ユ槸鍚︽湁鍟嗗搧
+        Wrapper<Documentation> queryWrapper1 = new LambdaQueryWrapper<Documentation>()
+                .in(Documentation::getWarehouseGoodsShelvesRowcolId, rowcolIds);
+        List<Documentation> documentations = documentationMapper.selectList(queryWrapper1);
+        if (!documentations.isEmpty()) {
+            log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鏇存柊", shelvesId);
+            return false;
+        }
         // 鍏堟洿鏂拌揣鏋朵富淇℃伅
         boolean isShelvesUpdated = updateById(warehouseGoodsShelves);
         if (!isShelvesUpdated) {
             log.warn("璐ф灦[{}]涓讳俊鎭洿鏂板け璐�", shelvesId);
             return false;
         }
-
-        // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈣璐ф灦涓嬬殑鎵�鏈夎鍒楄褰�
-        WarehouseGoodsShelvesRowcol queryRowcol = new WarehouseGoodsShelvesRowcol();
-        queryRowcol.setWarehouseGoodsShelvesId(shelvesId);
-        queryRowcol.setWarehouseId(warehouseId);
-
-        IPage<WarehouseGoodsShelvesRowcol> rowcolPage = warehouseGoodsShelvesRowcolService.listPage(new Page<>(), queryRowcol);
-        List<WarehouseGoodsShelvesRowcol> oldRowcolList = rowcolPage.getRecords();
-
-        // 濡傛灉娌℃湁鏃х殑琛屽垪璁板綍锛岀洿鎺ユ坊鍔犳柊璁板綍
-        if (oldRowcolList.isEmpty()) {
-            add(warehouseGoodsShelves);
-            return true;
-        }
-
-        // 妫�鏌ヨ揣鏋朵笂鏄惁鏈夊晢鍝侊紙鏈夊晢鍝佸垯涓嶅厑璁告洿鏂帮級
-        boolean hasGoodsOnShelves = oldRowcolList.stream()
-                .anyMatch(rowcol -> rowcol.getDocumentationId() != null);
-        if (hasGoodsOnShelves) {
-            log.error("璐ф灦[{}]涓婂瓨鍦ㄥ晢鍝侊紝涓嶅厑璁告洿鏂拌鍒椾俊鎭�", shelvesId);
-            return false;
-        }
-
-        // 鎻愬彇鏃ц鍒楄褰曠殑ID闆嗗悎锛岀敤浜庡垹闄ゆ搷浣�
-        List<Long> oldRowcolIds = oldRowcolList.stream()
-                .map(WarehouseGoodsShelvesRowcol::getId)
-                .collect(Collectors.toList());
-
         // 鍒犻櫎鏃х殑琛屽垪璁板綍
-        boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(oldRowcolIds);
+        boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(rowcolIds);
         if (!isOldRowcolRemoved) {
             log.error("璐ф灦[{}]鐨勬棫琛屽垪璁板綍鍒犻櫎澶辫触", shelvesId);
             return false;
         }
-
         // 娣诲姞鏂扮殑琛屽垪璁板綍
         add(warehouseGoodsShelves);
         log.info("璐ф灦[{}]鐨勮鍒椾俊鎭洿鏂版垚鍔�", shelvesId);
@@ -148,6 +147,7 @@
      * @return 鏄惁鍒犻櫎鎴愬姛
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean deleteByIds(List<Long> ids) {
         // 1. 鍏堟煡璇㈡墍鏈夎鍒犻櫎鐨勮揣鏋朵俊鎭�
         List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesMapper.selectBatchIds(ids);
@@ -159,21 +159,23 @@
         // 2. 妫�鏌ユ墍鏈夎揣鏋舵槸鍚﹀瓨鍦ㄥ晢鍝侊紙鏈夊晢鍝佸垯涓嶅厑璁稿垹闄わ級
         for (WarehouseGoodsShelves shelves : shelvesList) {
             Long shelvesId = shelves.getId();
-            Long warehouseId = shelves.getWarehouseId();
-
             // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈠綋鍓嶈揣鏋剁殑鎵�鏈夎鍒楄褰�
             Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>()
-                    .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId)
-                    .eq(WarehouseGoodsShelvesRowcol::getWarehouseId, warehouseId);
+                    .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId);
 
-            // 鏌ヨ琛屽垪璁板綍锛堜粎闇�鍒ゆ柇鏄惁鏈夊晢鍝侊紝鏃犻渶鍒嗛〉锛�
             List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper);
-
-            // 妫�鏌ユ槸鍚︽湁鍟嗗搧
-            boolean hasGoods = rowcolList.stream()
-                    .anyMatch(rowcol -> rowcol.getDocumentationId() != null && rowcol.getDocumentationId()!=0);
-
-            if (hasGoods) {
+            if (CollectionUtils.isEmpty(rowcolList)) {
+                continue; // 鏃犲叧鑱旇褰曪紝璺宠繃妫�鏌�
+            }
+            //鑾峰緱rowcolList涓墍鏈夌殑Id
+            List<Long> rowcolIds = rowcolList.stream()
+                    .map(WarehouseGoodsShelvesRowcol::getId)
+                    .collect(Collectors.toList());
+            // 3. 妫�鏌ユ槸鍚︽湁鍟嗗搧
+            Wrapper<Documentation> queryWrapper1 = new LambdaQueryWrapper<Documentation>()
+                    .in(Documentation::getWarehouseGoodsShelvesRowcolId, rowcolIds);
+            List<Documentation> documentations = documentationMapper.selectList(queryWrapper1);
+            if (!documentations.isEmpty()) {
                 log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鍒犻櫎", shelvesId);
                 return false; // 浠讳竴璐ф灦鏈夊晢鍝佸垯缁堟鍒犻櫎
             }
diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
index 4a98196..3a7b095 100644
--- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
+++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
@@ -1,10 +1,13 @@
 package com.ruoyi.warehouse.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.warehouse.mapper.WarehouseMapper;
 import com.ruoyi.warehouse.pojo.Warehouse;
 import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
@@ -13,9 +16,11 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.sql.Array;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
 * @author 86151
@@ -36,18 +41,35 @@
         return warehouseMapper.listPage( warehouse);
     }
 
+//    @Override
+//    public boolean deleteByIds(List<Long> ids) {
+//
+//        for (Long id : ids) {
+//            List<WarehouseGoodsShelves> list = warehouseGoodsShelvesService.list(new QueryWrapper<WarehouseGoodsShelves>().lambda()
+//                    .eq(WarehouseGoodsShelves::getWarehouseId, id));
+//            if(list.size()>0){
+//                log.error("浠撳簱涓嬫湁璐ф灦,涓嶈兘鍒犻櫎 閲嶆柊閫夋嫨");
+//                return false;
+//            }
+//        }
+//        return removeByIds(ids);
+//    }
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public boolean deleteByIds(List<Long> ids) {
-        for (Long id : ids) {
-            List<WarehouseGoodsShelves> list = warehouseGoodsShelvesService.list(new QueryWrapper<WarehouseGoodsShelves>().lambda()
-                    .eq(WarehouseGoodsShelves::getWarehouseId, id));
-            if(list.size()>0){
-                log.error("浠撳簱涓嬫湁璐ф灦,涓嶈兘鍒犻櫎 閲嶆柊閫夋嫨");
-                return false;
-            }
+        // 1. 妫�鏌ユ槸鍚︽湁璐ф灦
+        Wrapper<WarehouseGoodsShelves> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelves>()
+                .in(WarehouseGoodsShelves::getWarehouseId, ids);
+        List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesService.list(queryWrapper);
+        //鑾峰緱shelvesList涓墍鏈夌殑Id
+        List<Long> shelvesIds = shelvesList.stream().map(WarehouseGoodsShelves::getId).collect(Collectors.toList());
+        // 2. 鍒犻櫎璐ф灦
+        if (!shelvesIds.isEmpty()) {
+            warehouseGoodsShelvesService.deleteByIds(shelvesIds);
         }
         return removeByIds(ids);
     }
+
 }
 
 

--
Gitblit v1.9.3