From b33e6f53dd537abaebad066de12474580fcc33b2 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期四, 21 八月 2025 15:03:14 +0800
Subject: [PATCH] Merge branch 'pim_ywx'

---
 src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java |  175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 175 insertions(+), 0 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
new file mode 100644
index 0000000..74276a7
--- /dev/null
+++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java
@@ -0,0 +1,175 @@
+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.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;
+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.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static org.springframework.beans.BeanUtils.copyProperties;
+
+/**
+* @author 86151
+* @description 閽堝琛ㄣ�恮arehouse(浠撳簱琛�)銆戠殑鏁版嵁搴撴搷浣淪ervice瀹炵幇
+* @createDate 2025-08-13 11:49:02
+*/
+@Service
+@Slf4j
+public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper, Warehouse>
+    implements WarehouseService {
+    @Autowired
+    private WarehouseMapper warehouseMapper;
+    @Autowired
+    private WarehouseGoodsShelvesService warehouseGoodsShelvesService;
+    @Autowired
+    private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper;
+    @Autowired
+    private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
+
+    @Override
+    public boolean deleteByIds(List<Long> ids) {
+        // 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()) {
+            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.setLabel(shelf.getName());
+        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.setLabel(rowcol.getRow() + "-" + rowcol.getCol());
+        dto.setChildren(new ArrayList<>());
+        return dto;
+    }
+
+}
+
+
+
+

--
Gitblit v1.9.3