From 9f3a45da6d1dc9c71187f15131665eb9806f5588 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 28 十月 2025 15:58:03 +0800
Subject: [PATCH] yys 1.修改配置文件 2.增加模板
---
src/main/java/com/ruoyi/warehouse/service/impl/WarehouseGoodsShelvesServiceImpl.java | 156 +++++++++++++++++++--------------------------------
1 files changed, 58 insertions(+), 98 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 fd5594b..3d33d5c 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,13 @@
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;
@@ -19,6 +23,7 @@
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;
@@ -32,6 +37,7 @@
*/
@Service
@Slf4j
+@Transactional(rollbackFor = Exception.class)
public class WarehouseGoodsShelvesServiceImpl extends ServiceImpl<WarehouseGoodsShelvesMapper, WarehouseGoodsShelves>
implements WarehouseGoodsShelvesService {
@Autowired
@@ -40,33 +46,33 @@
private WarehouseGoodsShelvesRowcolMapper warehouseGoodsShelvesRowcolMapper;
@Autowired
private WarehouseGoodsShelvesMapper warehouseGoodsShelvesMapper;
- @Override
- public IPage<WarehouseGoodsShelves> listPage(Page page, WarehouseGoodsShelves warehouseGoodsShelves) {
- return warehouseGoodsShelvesMapper.listPage(page,warehouseGoodsShelves);
- }
+ @Autowired
+ private DocumentationService documentationService;
+ @Autowired
+ private DocumentationMapper documentationMapper;
@Override
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) {
+ 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();
- Long createUser = warehouseGoodsShelves.getCreateUser();
- Long updateUser = warehouseGoodsShelves.getUpdateUser();
// 3. 鎵归噺鍒涘缓琛屽垪璁板綍
List<WarehouseGoodsShelvesRowcol> rowcolList = new ArrayList<>();
- for (long i = 1; i <= warehouseGoodsShelves.getStorey(); i++) {
- for (long j = 1; j <= warehouseGoodsShelves.getArrange(); j++) {
+ for (long i = 1; i <= warehouseGoodsShelves.getRow(); i++) {
+ for (long j = 1; j <= warehouseGoodsShelves.getCol(); j++) {
WarehouseGoodsShelvesRowcol rowcol = new WarehouseGoodsShelvesRowcol();
- rowcol.setStorey(i);
- rowcol.setArrange(j);
+ rowcol.setRow(i);
+ rowcol.setCol(j);
rowcol.setWarehouseGoodsShelvesId(shelvesId);
- rowcol.setWarehouseId(warehouseId);
- rowcol.setCreateUser(createUser);
- rowcol.setUpdateUser(updateUser);
rowcolList.add(rowcol);
}
}
@@ -74,22 +80,12 @@
if (!rowcolList.isEmpty()) {
try {
// 浣跨敤鎵归噺鎻掑叆鏂规硶鏇夸唬寰幆鍗曟潯鎻掑叆
- boolean saveBatch = warehouseGoodsShelvesRowcolService.saveBatch(rowcolList);
-
- if (!saveBatch) {
- log.warn("璐ф灦[{}]鐨勮鍒楄褰曢儴鍒嗘坊鍔犲け璐�", shelvesId);
- }
+ warehouseGoodsShelvesRowcolService.saveBatch(rowcolList);
} catch (Exception e) {
- log.error("璐ф灦[{}]鐨勮鍒楄褰曟壒閲忔坊鍔犲け璐�", shelvesId, e);
// 鎶涘嚭寮傚父瑙﹀彂浜嬪姟鍥炴粴
throw e;
}
}
-
- log.info("璐ф灦[{}]娣诲姞鎴愬姛锛屽眰鏁�:{}锛屾帓鏁�:{}",
- shelvesId,
- warehouseGoodsShelves.getStorey(),
- warehouseGoodsShelves.getArrange());
return true;
}
/**
@@ -99,54 +95,28 @@
*/
@Override
public boolean updateRowcolById(WarehouseGoodsShelves warehouseGoodsShelves) {
- // 鎻愬彇鍏抽敭ID锛屽噺灏戦噸澶嶈皟鐢�
Long shelvesId = warehouseGoodsShelves.getId();
- Long warehouseId = warehouseGoodsShelves.getWarehouseId();
-
- // 鍏堟洿鏂拌揣鏋朵富淇℃伅
- 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()
+ 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);
// 鍒犻櫎鏃х殑琛屽垪璁板綍
- boolean isOldRowcolRemoved = warehouseGoodsShelvesRowcolService.removeByIds(oldRowcolIds);
- if (!isOldRowcolRemoved) {
- log.error("璐ф灦[{}]鐨勬棫琛屽垪璁板綍鍒犻櫎澶辫触", shelvesId);
- return false;
- }
-
+ warehouseGoodsShelvesRowcolService.removeByIds(rowcolIds);
// 娣诲姞鏂扮殑琛屽垪璁板綍
add(warehouseGoodsShelves);
- log.info("璐ф灦[{}]鐨勮鍒椾俊鎭洿鏂版垚鍔�", shelvesId);
return true;
}
/**
@@ -158,42 +128,33 @@
public boolean deleteByIds(List<Long> ids) {
// 1. 鍏堟煡璇㈡墍鏈夎鍒犻櫎鐨勮揣鏋朵俊鎭�
List<WarehouseGoodsShelves> shelvesList = warehouseGoodsShelvesMapper.selectBatchIds(ids);
- if (CollectionUtils.isEmpty(shelvesList)) {
- log.info("鏈煡璇㈠埌闇�鍒犻櫎鐨勮揣鏋讹紝ID鍒楄〃锛歿}", ids);
- return true; // 鏃犳暟鎹彲鍒狅紝瑙嗕负鎴愬姛
- }
// 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) {
- log.error("璐ф灦[ID:{}]涓婂瓨鍦ㄥ晢鍝侊紝绂佹鍒犻櫎", shelvesId);
- return false; // 浠讳竴璐ф灦鏈夊晢鍝佸垯缁堟鍒犻櫎
+ 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. 鍏堝垹闄よ揣鏋朵富璁板綍
- boolean isShelvesDeleted = removeByIds(ids);
- if (!isShelvesDeleted) {
- log.error("璐ф灦涓昏褰曞垹闄ゅけ璐ワ紝ID鍒楄〃锛歿}", ids);
- return false;
- }
+ warehouseGoodsShelvesMapper.deleteBatchIds(ids);
- // 4. 鎵归噺鍒犻櫎鎵�鏈夊叧鑱旂殑琛屽垪璁板綍
+ // 4. 鎵归噺鍒犻櫎鎵�鏈夎鍒楄褰�
List<Long> allShelvesIds = shelvesList.stream()
.map(WarehouseGoodsShelves::getId)
.collect(Collectors.toList());
@@ -201,17 +162,16 @@
// 鏋勫缓鎵归噺鍒犻櫎鏉′欢
Wrapper<WarehouseGoodsShelvesRowcol> deleteWrapper = new LambdaQueryWrapper<WarehouseGoodsShelvesRowcol>()
.in(WarehouseGoodsShelvesRowcol::getWarehouseGoodsShelvesId, allShelvesIds);
-
- boolean isRowcolDeleted = warehouseGoodsShelvesRowcolService.remove(deleteWrapper);
- if (!isRowcolDeleted) {
- log.warn("璐ф灦鍏宠仈鐨勮鍒楄褰曞垹闄ゅけ璐ワ紝璐ф灦ID鍒楄〃锛歿}", allShelvesIds);
- // 姝ゅ鍙牴鎹笟鍔¢渶姹傚喅瀹氭槸鍚﹀洖婊氳揣鏋跺垹闄ゆ搷浣�
- }
-
- log.info("璐ф灦鎵归噺鍒犻櫎鎴愬姛锛孖D鍒楄〃锛歿}", ids);
+ warehouseGoodsShelvesRowcolService.remove(deleteWrapper);
return true;
}
+
+ @Override
+ public List<WarehouseGoodsShelvesDto> findList(WarehouseGoodsShelves warehouseGoodsShelves) {
+ return warehouseGoodsShelvesMapper.listAll(warehouseGoodsShelves);
+ }
+
}
--
Gitblit v1.9.3