¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.warehouse.service.impl; |
| | | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.warehouse.dto.WarehouseGoodsShelvesDto; |
| | | import com.ruoyi.warehouse.mapper.DocumentationMapper; |
| | | import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesMapper; |
| | | import com.ruoyi.warehouse.mapper.WarehouseGoodsShelvesRowcolMapper; |
| | | import com.ruoyi.warehouse.pojo.Documentation; |
| | | import com.ruoyi.warehouse.pojo.WarehouseGoodsShelvesRowcol; |
| | | import com.ruoyi.warehouse.service.DocumentationService; |
| | | import com.ruoyi.warehouse.service.WarehouseGoodsShelvesRowcolService; |
| | | import com.ruoyi.warehouse.service.WarehouseGoodsShelvesService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import com.ruoyi.warehouse.pojo.WarehouseGoodsShelves; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author 86151 |
| | | * @description é对表ãwarehouse_goods_shelves(ä»åºè´§æ¶è¡¨)ãçæ°æ®åºæä½Serviceå®ç° |
| | | * @createDate 2025-08-13 11:49:02 |
| | | */ |
| | | @Service |
| | | @Slf4j |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public class WarehouseGoodsShelvesServiceImpl extends ServiceImpl<WarehouseGoodsShelvesMapper, WarehouseGoodsShelves> |
| | | implements WarehouseGoodsShelvesService { |
| | | @Autowired |
| | | private WarehouseGoodsShelvesRowcolService warehouseGoodsShelvesRowcolService; |
| | | @Autowired |
| | | private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper; |
| | | @Autowired |
| | | private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper; |
| | | @Autowired |
| | | private DocumentationService documentationService; |
| | | @Autowired |
| | | private DocumentationMapper documentationMapper; |
| | | |
| | | @Override |
| | | public boolean add(WarehouseGoodsShelves warehouseGoodsShelves) { |
| | | WarehouseGoodsShelves one = warehouseGoodsShelvesMapper.selectOne(new LambdaQueryWrapper<WarehouseGoodsShelves>().eq(WarehouseGoodsShelves::getId, warehouseGoodsShelves.getId())); |
| | | // 1. æ£æ¥è´§æ¶åç§°æ¯å¦å·²åå¨ |
| | | if (one == null) { |
| | | if(warehouseGoodsShelves.getRow() == null || warehouseGoodsShelves.getRow() == 0 && warehouseGoodsShelves.getCol() == null || warehouseGoodsShelves.getCol() == 0){ |
| | | throw new IllegalArgumentException("屿°ååæ°ä¸è½ä¸ºç©º"); |
| | | } |
| | | int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves); |
| | | if (insert <= 0) return false; |
| | | } |
| | | |
| | | Long shelvesId = warehouseGoodsShelves.getId(); |
| | | Long warehouseId = warehouseGoodsShelves.getWarehouseId(); |
| | | // 3. æ¹éå建è¡åè®°å½ |
| | | List<WarehouseGoodsShelvesRowcol> rowcolList = new ArrayList<>(); |
| | | for (long i = 1; i <= warehouseGoodsShelves.getRow(); i++) { |
| | | for (long j = 1; j <= warehouseGoodsShelves.getCol(); j++) { |
| | | WarehouseGoodsShelvesRowcol rowcol = new WarehouseGoodsShelvesRowcol(); |
| | | rowcol.setRow(i); |
| | | rowcol.setCol(j); |
| | | rowcol.setWarehouseGoodsShelvesId(shelvesId); |
| | | rowcolList.add(rowcol); |
| | | } |
| | | } |
| | | // 4. æ¹éæå
¥è¡åè®°å½ |
| | | if (!rowcolList.isEmpty()) { |
| | | try { |
| | | // ä½¿ç¨æ¹éæå
¥æ¹æ³æ¿ä»£å¾ªç¯åæ¡æå
¥ |
| | | warehouseGoodsShelvesRowcolService.saveBatch(rowcolList); |
| | | } catch (Exception e) { |
| | | // æåºå¼å¸¸è§¦åäºå¡åæ» |
| | | throw e; |
| | | } |
| | | } |
| | | return true; |
| | | } |
| | | /** |
| | | * æ ¹æ®IDæ´æ°è´§æ¶åå
¶è¡åä¿¡æ¯ |
| | | * @param warehouseGoodsShelves è´§æ¶ä¿¡æ¯ |
| | | * @return æ¯å¦æ´æ°æå |
| | | */ |
| | | @Override |
| | | public boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves) { |
| | | Long shelvesId = warehouseGoodsShelves.getId(); |
| | | |
| | | // æå»ºæ¥è¯¢æ¡ä»¶ï¼æ¥è¯¢è¯¥è´§æ¶ä¸çææè¡åè®°å½ |
| | | Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>() |
| | | .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId); |
| | | List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper); |
| | | //è·å¾rowcolList䏿æçId |
| | | List<Long> rowcolIds = rowcolList.stream() |
| | | .map(WarehouseGoodsShelvesRowcol::getId) |
| | | .collect(Collectors.toList()); |
| | | // 3. æ£æ¥æ¯å¦æåå |
| | | Wrapper<Documentation> queryWrapper1 = new LambdaQueryWrapper<Documentation>() |
| | | .in(Documentation::getWarehouseGoodsShelvesRowcolId, rowcolIds); |
| | | List<Documentation> documentations = documentationMapper.selectList(queryWrapper1); |
| | | if (!documentations.isEmpty()) throw new RuntimeException("è´§æ¶ä¸æååï¼ä¸è½å é¤"); |
| | | |
| | | // å
æ´æ°è´§æ¶ä¸»ä¿¡æ¯ |
| | | updateById(warehouseGoodsShelves); |
| | | // å 餿§çè¡åè®°å½ |
| | | warehouseGoodsShelvesRowcolService.removeByIds(rowcolIds); |
| | | // æ·»å æ°çè¡åè®°å½ |
| | | add(warehouseGoodsShelves); |
| | | return true; |
| | | } |
| | | /** |
| | | * æ¹éå é¤è´§æ¶åå
¶å
³èçè¡åè®°å½ |
| | | * @param ids è´§æ¶IDå表 |
| | | * @return æ¯å¦å 餿å |
| | | */ |
| | | @Override |
| | | public boolean deleteByIds(List<Long> ids) { |
| | | // 1. å
æ¥è¯¢ææè¦å é¤çè´§æ¶ä¿¡æ¯ |
| | | List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesMapper.selectBatchIds(ids); |
| | | |
| | | // 2. æ£æ¥ææè´§æ¶æ¯å¦åå¨ååï¼æåååä¸å
许å é¤ï¼ |
| | | for (WarehouseGoodsShelves shelves : shelvesList) { |
| | | Long shelvesId = shelves.getId(); |
| | | // æå»ºæ¥è¯¢æ¡ä»¶ï¼æ¥è¯¢å½åè´§æ¶çææè¡åè®°å½ |
| | | Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>() |
| | | .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId); |
| | | |
| | | List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper); |
| | | if (CollectionUtils.isEmpty(rowcolList)) { |
| | | continue; // æ å
³èè®°å½ï¼è·³è¿æ£æ¥ |
| | | } |
| | | //è·å¾rowcolList䏿æçId |
| | | List<Long> rowcolIds = rowcolList.stream() |
| | | .map(WarehouseGoodsShelvesRowcol::getId) |
| | | .collect(Collectors.toList()); |
| | | // 3. æ£æ¥æ¯å¦æåå |
| | | Wrapper<Documentation> queryWrapper1 = new LambdaQueryWrapper<Documentation>() |
| | | .in(Documentation::getWarehouseGoodsShelvesRowcolId, rowcolIds); |
| | | List<Documentation> documentations = documentationMapper.selectList(queryWrapper1); |
| | | if (!documentations.isEmpty()) throw new RuntimeException("è´§æ¶ä¸æååï¼ä¸è½å é¤"); // ä»»ä¸è´§æ¶æåååç»æ¢å é¤ |
| | | } |
| | | |
| | | // 3. å
å é¤è´§æ¶ä¸»è®°å½ |
| | | warehouseGoodsShelvesMapper.deleteBatchIds(ids); |
| | | |
| | | // 4. æ¹éå 餿æè¡åè®°å½ |
| | | List<Long> allShelvesIds = shelvesList.stream() |
| | | .map(WarehouseGoodsShelves::getId) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // æå»ºæ¹éå 餿¡ä»¶ |
| | | Wrapper<WarehouseGoodsShelvesRowcol> deleteWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>() |
| | | .in(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, allShelvesIds); |
| | | warehouseGoodsShelvesRowcolService.remove(deleteWrapper); |
| | | return true; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<WarehouseGoodsShelvesDto> findList(WarehouseGoodsShelves warehouseGoodsShelves) { |
| | | return warehouseGoodsShelvesMapper.listAll(warehouseGoodsShelves); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |