¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 é对表ãwarehouse(ä»åºè¡¨)ãçæ°æ®åºæä½Serviceå®ç° |
| | | * @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; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |