From 7d188cc913d5ea547c5e99ae434ea3b1cf4e818a Mon Sep 17 00:00:00 2001 From: yaowanxin <3588231647@qq.com> Date: 星期五, 15 八月 2025 09:00:41 +0800 Subject: [PATCH] 仓库货架业务流程修改 --- src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java | 96 ++++++++++++++++++++++++----------------------- 1 files changed, 49 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java index 9de15d6..314be51 100644 --- a/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java +++ b/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java @@ -9,9 +9,12 @@ 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.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; @@ -41,6 +44,10 @@ private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper; @Autowired private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper; + @Autowired + private DocumentationService documentationService; + @Autowired + private DocumentationMapper documentationMapper; @Override public IPage<WarehouseGoodsShelves> listPage(Page page, WarehouseGoodsShelves warehouseGoodsShelves) { return warehouseGoodsShelvesMapper.listPage(page,warehouseGoodsShelves); @@ -49,11 +56,17 @@ @Override @Transactional(rollbackFor = Exception.class) public boolean add(WarehouseGoodsShelves warehouseGoodsShelves) { - int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves); - if (insert <= 0) { - log.error("璐ф灦涓昏褰曟坊鍔犲け璐�"); - return false; + WarehouseGoodsShelves one = warehouseGoodsShelvesMapper.selectOne(new LambdaQueryWrapper<WarehouseGoodsShelves>().eq(WarehouseGoodsShelves::getId, warehouseGoodsShelves.getId())); + // 1. 妫�鏌ヨ揣鏋跺悕绉版槸鍚﹀凡瀛樺湪 + if (one == null) { + log.error("璐ф灦ID涓嶅瓨鍦�"); + int insert = warehouseGoodsShelvesMapper.insert(warehouseGoodsShelves); + if (insert <= 0) { + log.error("璐ф灦涓昏褰曟坊鍔犲け璐�"); + return false; + } } + Long shelvesId = warehouseGoodsShelves.getId(); Long warehouseId = warehouseGoodsShelves.getWarehouseId(); // 3. 鎵归噺鍒涘缓琛屽垪璁板綍 @@ -91,52 +104,38 @@ * @return 鏄惁鏇存柊鎴愬姛 */ @Override + @Transactional(rollbackFor = Exception.class) public boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves) { - // 鎻愬彇鍏抽敭ID锛屽噺灏戦噸澶嶈皟鐢� Long shelvesId = warehouseGoodsShelves.getId(); - Long warehouseId = warehouseGoodsShelves.getWarehouseId(); + // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈣璐ф灦涓嬬殑鎵�鏈夎鍒楄褰� + 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()) { + log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鏇存柊", shelvesId); + return false; + } // 鍏堟洿鏂拌揣鏋朵富淇℃伅 boolean isShelvesUpdated = updateById(warehouseGoodsShelves); if (!isShelvesUpdated) { log.warn("璐ф灦[{}]涓讳俊鎭洿鏂板け璐�", shelvesId); return false; } - - // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈣璐ф灦涓嬬殑鎵�鏈夎鍒楄褰� - WarehouseGoodsShelvesRowcol queryRowcol = new WarehouseGoodsShelvesRowcol(); - queryRowcol.setWarehouseGoodsShelvesId(shelvesId); - queryRowcol.setWarehouseId(warehouseId); - - IPage<WarehouseGoodsShelvesRowcol> rowcolPage = warehouseGoodsShelvesRowcolService.listPage(new Page<>(), queryRowcol); - List<WarehouseGoodsShelvesRowcol> oldRowcolList = rowcolPage.getRecords(); - - // 濡傛灉娌℃湁鏃х殑琛屽垪璁板綍锛岀洿鎺ユ坊鍔犳柊璁板綍 - if (oldRowcolList.isEmpty()) { - add(warehouseGoodsShelves); - return true; - } - - // 妫�鏌ヨ揣鏋朵笂鏄惁鏈夊晢鍝侊紙鏈夊晢鍝佸垯涓嶅厑璁告洿鏂帮級 - boolean hasGoodsOnShelves = oldRowcolList.stream() - .anyMatch(rowcol -> rowcol.getDocumentationId() != null); - if (hasGoodsOnShelves) { - log.error("璐ф灦[{}]涓婂瓨鍦ㄥ晢鍝侊紝涓嶅厑璁告洿鏂拌鍒椾俊鎭�", shelvesId); - return false; - } - - // 鎻愬彇鏃ц鍒楄褰曠殑ID闆嗗悎锛岀敤浜庡垹闄ゆ搷浣� - List<Long> oldRowcolIds = oldRowcolList.stream() - .map(WarehouseGoodsShelvesRowcol::getId) - .collect(Collectors.toList()); - // 鍒犻櫎鏃х殑琛屽垪璁板綍 - boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(oldRowcolIds); + boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(rowcolIds); if (!isOldRowcolRemoved) { log.error("璐ф灦[{}]鐨勬棫琛屽垪璁板綍鍒犻櫎澶辫触", shelvesId); return false; } - // 娣诲姞鏂扮殑琛屽垪璁板綍 add(warehouseGoodsShelves); log.info("璐ф灦[{}]鐨勮鍒椾俊鎭洿鏂版垚鍔�", shelvesId); @@ -148,6 +147,7 @@ * @return 鏄惁鍒犻櫎鎴愬姛 */ @Override + @Transactional(rollbackFor = Exception.class) public boolean deleteByIds(List<Long> ids) { // 1. 鍏堟煡璇㈡墍鏈夎鍒犻櫎鐨勮揣鏋朵俊鎭� List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesMapper.selectBatchIds(ids); @@ -159,21 +159,23 @@ // 2. 妫�鏌ユ墍鏈夎揣鏋舵槸鍚﹀瓨鍦ㄥ晢鍝侊紙鏈夊晢鍝佸垯涓嶅厑璁稿垹闄わ級 for (WarehouseGoodsShelves shelves : shelvesList) { Long shelvesId = shelves.getId(); - Long warehouseId = shelves.getWarehouseId(); - // 鏋勫缓鏌ヨ鏉′欢锛氭煡璇㈠綋鍓嶈揣鏋剁殑鎵�鏈夎鍒楄褰� Wrapper<WarehouseGoodsShelvesRowcol> queryWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>() - .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId) - .eq(WarehouseGoodsShelvesRowcol::getWarehouseId, warehouseId); + .eq(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, shelvesId); - // 鏌ヨ琛屽垪璁板綍锛堜粎闇�鍒ゆ柇鏄惁鏈夊晢鍝侊紝鏃犻渶鍒嗛〉锛� List<WarehouseGoodsShelvesRowcol> rowcolList = warehouseGoodsShelvesRowcolService.list(queryWrapper); - - // 妫�鏌ユ槸鍚︽湁鍟嗗搧 - boolean hasGoods = rowcolList.stream() - .anyMatch(rowcol -> rowcol.getDocumentationId() != null && rowcol.getDocumentationId()!=0); - - if (hasGoods) { + 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()) { log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鍒犻櫎", shelvesId); return false; // 浠讳竴璐ф灦鏈夊晢鍝佸垯缁堟鍒犻櫎 } -- Gitblit v1.9.3