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 | 145 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 132 insertions(+), 13 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 bcc475a..8dc3ac4 100644 --- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java +++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseServiceImpl.java @@ -1,19 +1,35 @@ 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 @@ -28,25 +44,128 @@ private WarehouseMapper warehouseMapper; @Autowired private WarehouseGoodsShelvesService warehouseGoodsShelvesService; - - @Override - public IPage<Warehouse> listPage(Page page, Warehouse warehouse) { - return warehouseMapper.listPage(page, warehouse); - } + @Autowired + private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper; + @Autowired + private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper; @Override public boolean deleteByIds(List<Long> ids) { - for (Long id : ids) { - WarehouseGoodsShelves shelves = new WarehouseGoodsShelves(); - shelves.setWarehouseId(id); - IPage<WarehouseGoodsShelves> page = warehouseGoodsShelvesService.listPage(new Page<>(), shelves); - if(page.getRecords().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()) { + boolean b = warehouseGoodsShelvesService.deleteByIds(shelvesIds); + if (!b) { + throw new RuntimeException("鍒犻櫎璐ф灦澶辫触"); } } - return true; + 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