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