From 78e70bb892fd12843ead1b5bbbe5de2c23967ded Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 15 四月 2026 13:30:16 +0800
Subject: [PATCH] fix: 入库修改销售订单状态
---
src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java | 56 ++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
index 9825b39..9c3cf89 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ProductTreeDto;
@@ -10,8 +12,11 @@
import com.ruoyi.basic.pojo.ProductModel;
import com.ruoyi.basic.service.IProductService;
import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.web.domain.AjaxResult;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import java.util.Arrays;
@@ -49,6 +54,12 @@
return tree;
}
+ @Override
+ public IPage<ProductModel> listPageProductModel(Page<ProductModel> page, ProductModel productModel) {
+ return productModelMapper.listPageProductModel(page, productModel);
+ }
+
+
// 閫掑綊鏋勫缓瀛愯妭鐐�
private List<ProductTreeDto> buildChildrenNodes(Long parentId) {
// 鏌ヨ褰撳墠鐖惰妭鐐圭殑瀛愯妭鐐�
@@ -78,27 +89,48 @@
@Override
public int addOrEditProduct(ProductDto productDto) {
+ checkDuplicateName(productDto);
if (productDto.getId() == null) {
- // 鏂板浜у搧閫昏緫
- if (productDto.getParentId() == null) {
- // 鑻ユ湭鎸囧畾鐖惰妭鐐癸紝榛樿涓烘牴鑺傜偣锛坧arentId 璁句负 null锛�
- productDto.setParentId(null);
- } else {
- // 妫�鏌ョ埗鑺傜偣鏄惁瀛樺湪锛堝彲閫夛紝鏍规嵁涓氬姟闇�姹傦級
+ if (productDto.getParentId() != null) {
Product parent = productMapper.selectById(productDto.getParentId());
if (parent == null) {
- throw new IllegalArgumentException("鐖惰妭鐐逛笉瀛樺湪锛屾棤娉曟坊鍔犲瓙浜у搧");
+ throw new IllegalArgumentException("鐖惰妭鐐逛笉瀛樺湪");
}
}
- return productMapper.insert(productDto);
+ Product product = new Product();
+ BeanUtils.copyProperties(productDto, product);
+ return productMapper.insert(product);
} else {
- // 缂栬緫浜у搧閫昏緫
- // 妫�鏌ヤ骇鍝佹槸鍚﹀瓨鍦紙鍙�夛紝鏍规嵁涓氬姟闇�姹傦級
Product existingProduct = productMapper.selectById(productDto.getId());
if (existingProduct == null) {
- throw new IllegalArgumentException("瑕佺紪杈戠殑浜у搧涓嶅瓨鍦�");
+ throw new IllegalArgumentException("浜у搧涓嶅瓨鍦�");
}
- return productMapper.updateById(productDto);
+ Product product = new Product();
+ BeanUtils.copyProperties(productDto, product);
+ return productMapper.updateById(product);
+ }
+ }
+
+ /**
+ * 鏍¢獙鍚岀骇鐩綍涓嬫槸鍚﹀瓨鍦ㄩ噸澶嶅悕绉�
+ */
+ private void checkDuplicateName(ProductDto productDto) {
+ LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
+
+ if (productDto.getParentId() == null) {
+ queryWrapper.isNull(Product::getParentId);
+ } else {
+ queryWrapper.eq(Product::getParentId, productDto.getParentId());
+ }
+
+ queryWrapper.eq(Product::getProductName, productDto.getProductName());
+
+ if (productDto.getId() != null) {
+ queryWrapper.ne(Product::getId, productDto.getId());
+ }
+
+ if (productMapper.selectCount(queryWrapper) > 0) {
+ throw new IllegalArgumentException("鍦ㄨ灞傜骇涓嬪凡瀛樺湪鍚嶄负 [" + productDto.getProductName() + "] 鐨勪骇鍝�");
}
}
--
Gitblit v1.9.3