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