From 9d5128803ebebb5788f13924a5775ac16494dfef Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期一, 18 八月 2025 10:05:05 +0800
Subject: [PATCH] 仓库,树,文档,借出修改

---
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java |  135 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 116 insertions(+), 19 deletions(-)

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 7ab7312..8dc3ac4 100644
--- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
+++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
@@ -8,9 +8,15 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.warehouse.dto.WarehouseDto;
+import com.ruoyi.warehouse.dto.WarehouseGoodsShelvesDto;
+import com.ruoyi.warehouse.dto.WarehouseTreeDto;
+import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesMapper;
+import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper;
 import com.ruoyi.warehouse.mapper.WarehouseMapper;
 import com.ruoyi.warehouse.pojo.Warehouse;
 import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves;
+import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol;
 import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService;
 import com.ruoyi.warehouse.service.WarehouseService;
 import lombok.extern.slf4j.Slf4j;
@@ -19,8 +25,11 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.sql.Array;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
+
+import static org.springframework.beans.BeanUtils.copyProperties;
 
 /**
 * @author 86151
@@ -35,25 +44,11 @@
     private WarehouseMapper warehouseMapper;
     @Autowired
     private WarehouseGoodsShelvesService warehouseGoodsShelvesService;
+    @Autowired
+    private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper;
+    @Autowired
+    private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
 
-    @Override
-    public List<Warehouse> listPage(Warehouse warehouse) {
-        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
     public boolean deleteByIds(List<Long> ids) {
         // 1. 妫�鏌ユ槸鍚︽湁璐ф灦
@@ -61,14 +56,116 @@
                 .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);
+            boolean b = warehouseGoodsShelvesService.deleteByIds(shelvesIds);
+            if (!b) {
+                throw new RuntimeException("鍒犻櫎璐ф灦澶辫触");
+            }
         }
         return removeByIds(ids);
     }
 
+    @Override
+    public List<Warehouse> findList(Warehouse warehouse) {
+        return warehouseMapper.listAll(warehouse);
+    }
+    /**
+     * 鏌ヨ浠撳簱-璐ф灦-灞傚垪涓夌骇鏍戠粨鏋�
+     */
+    @Override
+    public List<WarehouseTreeDto> findListTree() {
+
+        // 鏌ヨ鎵�鏈夋牴鑺傜偣锛堜粨搴擄級
+        LambdaQueryWrapper<Warehouse> queryWrapper = new LambdaQueryWrapper<>();
+        // 鏌ヨ浠撳簱鍒楄〃锛堜竴绾ц妭鐐癸級
+        List<Warehouse> warehouseList = warehouseMapper.selectList(queryWrapper);
+
+        // 杞崲涓烘爲鑺傜偣骞舵瀯寤哄瓙鏍�
+        List<WarehouseTreeDto> tree = new ArrayList<>();
+        for (Warehouse warehouse : warehouseList) {
+            WarehouseTreeDto node = convertToWarehouseTreeDto(warehouse);
+            // 涓烘瘡涓粨搴撴坊鍔犺揣鏋跺瓙鑺傜偣
+            node.setChildren(buildShelfChildrenNodes(warehouse.getId()));
+            tree.add(node);
+        }
+        return tree;
+    }
+    /**
+     * 鏋勫缓璐ф灦瀛愯妭鐐癸紙浜岀骇鑺傜偣锛�
+     */
+    private List<WarehouseTreeDto> buildShelfChildrenNodes(Long warehouseId) {
+        // 鏌ヨ鎸囧畾浠撳簱涓嬬殑鎵�鏈夎揣鏋�
+        LambdaQueryWrapper<WarehouseGoodsShelves> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(WarehouseGoodsShelves::getWarehouseId, warehouseId);
+        List<WarehouseGoodsShelves> shelfList = warehouseGoodsShelvesMapper.selectList(queryWrapper);
+
+        // 杞崲涓烘爲鑺傜偣骞舵瀯寤哄眰鍒楀瓙鑺傜偣
+        List<WarehouseTreeDto> shelfNodes = new ArrayList<>();
+        for (WarehouseGoodsShelves shelf : shelfList) {
+            WarehouseTreeDto shelfNode = convertToShelfTreeDto(shelf);
+            // 涓烘瘡涓揣鏋舵坊鍔犲眰鍒楀瓙鑺傜偣
+            shelfNode.setChildren(buildRowcolChildrenNodes(shelf.getId()));
+            shelfNodes.add(shelfNode);
+        }
+
+        return shelfNodes;
+    }
+
+    /**
+     * 鏋勫缓灞傚垪瀛愯妭鐐癸紙涓夌骇鑺傜偣锛�
+     */
+    private List<WarehouseTreeDto> buildRowcolChildrenNodes(Long shelfId) {
+        // 鏌ヨ鎸囧畾璐ф灦涓嬬殑鎵�鏈夊眰鍒�
+        LambdaQueryWrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelfId);
+        List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolMapper.selectList(queryWrapper);
+
+        // 杞崲涓烘爲鑺傜偣锛堝眰鍒楁病鏈夊瓙鑺傜偣锛�
+        List<WarehouseTreeDto> rowcolNodes = new ArrayList<>();
+        for (WarehouseGoodsShelvesRowcol rowcol : rowcolList) {
+            WarehouseTreeDto rowcolNode = convertToRowcolTreeDto(rowcol);
+            rowcolNodes.add(rowcolNode);
+        }
+
+        return rowcolNodes;
+    }
+
+    /**
+     * 浠撳簱瀹炰綋杞崲涓烘爲鑺傜偣DTO
+     */
+    private WarehouseTreeDto convertToWarehouseTreeDto(Warehouse warehouse) {
+        WarehouseTreeDto dto = new WarehouseTreeDto();
+        copyProperties(warehouse, dto);
+        dto.setLabel(warehouse.getWarehouseName());
+        dto.setChildren(new ArrayList<>());
+        return dto;
+    }
+
+    /**
+     * 璐ф灦瀹炰綋杞崲涓烘爲鑺傜偣DTO
+     */
+    private WarehouseTreeDto convertToShelfTreeDto(WarehouseGoodsShelves shelf) {
+        WarehouseTreeDto dto = new WarehouseTreeDto();
+        copyProperties(shelf, dto);
+        dto.setLabel(shelf.getGoodsShelvesName());
+        dto.setChildren(new ArrayList<>());
+        return dto;
+    }
+
+    /**
+     * 灞傚垪瀹炰綋杞崲涓烘爲鑺傜偣DTO
+     */
+    private WarehouseTreeDto convertToRowcolTreeDto(WarehouseGoodsShelvesRowcol rowcol) {
+        WarehouseTreeDto dto = new WarehouseTreeDto();
+        copyProperties(rowcol, dto);
+        dto.setLabel(rowcol.getStorey() + "-" + rowcol.getArrange());
+        dto.setChildren(new ArrayList<>());
+        return dto;
+    }
+
 }
 
 

--
Gitblit v1.9.3