| src/main/java/com/ruoyi/basic/dto/ProductModelDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/basic/dto/ProductModelDto.java
@@ -3,9 +3,11 @@ import com.ruoyi.basic.pojo.ProductModel; import com.ruoyi.production.bean.dto.ProductStructureDto; import lombok.Data; import lombok.EqualsAndHashCode; import java.util.List; @EqualsAndHashCode(callSuper = true) @Data public class ProductModelDto extends ProductModel { private List<ProductStructureDto> productStructureList; src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -47,6 +47,11 @@ @Override public int addOrEditProductModel(ProductModelDto productModelDto) { String model = StringUtils.trim(productModelDto.getModel()); String productCode = StringUtils.trim(productModelDto.getProductCode()); productModelDto.setModel(model); productModelDto.setProductCode(productCode); checkModelAndProductCodeUnique(model, productCode, productModelDto.getId()); if (productModelDto.getId() == null) { ProductModel productModel = new ProductModel(); @@ -57,6 +62,21 @@ } } private void checkModelAndProductCodeUnique(String model, String productCode, Long currentId) { if (StringUtils.isEmpty(model) || StringUtils.isEmpty(productCode)) { return; } LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ProductModel::getModel, model) .eq(ProductModel::getProductCode, productCode) .ne(currentId != null, ProductModel::getId, currentId) .last("limit 1"); ProductModel duplicateProductModel = productModelMapper.selectOne(queryWrapper); if (duplicateProductModel != null) { throw new ServiceException("对应的型号" + model + "的产品编码" + productCode + "已经存在"); } } @Override public int delProductModel(Long[] ids) { src/main/java/com/ruoyi/basic/service/impl/ProductServiceImpl.java
@@ -13,12 +13,10 @@ import com.ruoyi.basic.pojo.ProductModel; import com.ruoyi.basic.service.IProductService; import com.ruoyi.basic.vo.ProductModelVo; import com.ruoyi.common.utils.StringUtils; 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; @@ -94,17 +92,18 @@ if (ObjectUtils.isEmpty(productDto.getParentId())) { throw new IllegalArgumentException("请选择父节点"); } String productName = StringUtils.trim(productDto.getProductName()); if (StringUtils.isEmpty(productName)) { throw new IllegalArgumentException("产品名称不能为空"); } productDto.setProductName(productName); checkProductNameUnique(productDto.getParentId(), productName, productDto.getId()); if (productDto.getId() == null) { // 新增产品逻辑 if (productDto.getParentId() == null) { // 若未指定父节点,默认为根节点(parentId 设为 null) productDto.setParentId(null); } else { // 检查父节点是否存在(可选,根据业务需求) Product parent = productMapper.selectById(productDto.getParentId()); if (parent == null) { throw new IllegalArgumentException("父节点不存在,无法添加子产品"); } // 检查父节点是否存在(可选,根据业务需求) Product parent = productMapper.selectById(productDto.getParentId()); if (parent == null) { throw new IllegalArgumentException("父节点不存在,无法添加子产品"); } return productMapper.insert(productDto); } else { @@ -118,6 +117,18 @@ } } private void checkProductNameUnique(Long parentId, String productName, Long currentId) { LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Product::getParentId, parentId) .eq(Product::getProductName, productName) .ne(currentId != null, Product::getId, currentId) .last("limit 1"); Product duplicateProduct = productMapper.selectOne(queryWrapper); if (duplicateProduct != null) { throw new IllegalArgumentException("对应的" + productName + "已经存在"); } } @Override public int delProductByIds(Long[] ids) { // 1. 删除子表 product_model 中关联的数据