src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -55,7 +55,8 @@
        String productCode = StringUtils.trim(productModelDto.getProductCode());
        productModelDto.setModel(model);
        productModelDto.setProductCode(productCode);
        checkModelAndProductCodeUnique(model, productCode, productModelDto.getId());
        // 产品编号非必填,规格型号在同一产品下唯一
        checkModelUnique(productModelDto.getProductId(), model, productModelDto.getId());
        if (productModelDto.getId() == null) {
            ProductModel productModel = new ProductModel();
@@ -66,18 +67,18 @@
        }
    }
    private void checkModelAndProductCodeUnique(String model, String productCode, Long currentId) {
        if (StringUtils.isEmpty(model) || StringUtils.isEmpty(productCode)) {
    private void checkModelUnique(Long productId, String model, Long currentId) {
        if (StringUtils.isEmpty(model)) {
            return;
        }
        LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ProductModel::getModel, model)
                .eq(ProductModel::getProductCode, productCode)
        queryWrapper.eq(ProductModel::getProductId, productId)
                .eq(ProductModel::getModel, model)
                .ne(currentId != null, ProductModel::getId, currentId)
                .last("limit 1");
        ProductModel duplicateProductModel = productModelMapper.selectOne(queryWrapper);
        if (duplicateProductModel != null) {
            throw new ServiceException("对应的型号" + model + "的产品编码" + productCode + "已经存在");
            throw new ServiceException("对应的型号" + model + "已经存在");
        }
    }