liding
9 天以前 94ec4e9e9214cb5dc28aef4a7f38be462cfda728
fix(product): 产品型号复制功能的进行勾选复制
已修改2个文件
20 ■■■■ 文件已修改
src/main/java/com/ruoyi/basic/dto/ProductModelDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/dto/ProductModelDto.java
@@ -12,4 +12,7 @@
    //复制的目标产品id
    private Long targetProductId;
    //型号list
    private List<Long> modelListId;
}
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -165,6 +165,7 @@
        Long sourceProductId = productModelDto.getProductId();
        Long targetProductId = productModelDto.getTargetProductId();
        List<Long> modelListId = productModelDto.getModelListId();
        if (sourceProductId.equals(targetProductId)) {
            throw new ServiceException("源产品和目标产品不能相同");
@@ -180,15 +181,23 @@
            throw new ServiceException("目标产品不存在");
        }
        List<ProductModel> sourceModels = productModelMapper.selectList(
                new LambdaQueryWrapper<ProductModel>()
        LambdaQueryWrapper<ProductModel> queryWrapper = new LambdaQueryWrapper<ProductModel>()
                        .eq(ProductModel::getProductId, sourceProductId)
                        .orderByAsc(ProductModel::getId)
        );
                .orderByAsc(ProductModel::getId);
        Set<Long> selectedModelIds = null;
        if (CollectionUtils.isNotEmpty(modelListId)) {
            selectedModelIds = new LinkedHashSet<>(modelListId);
            queryWrapper.in(ProductModel::getId, selectedModelIds);
        }
        List<ProductModel> sourceModels = productModelMapper.selectList(queryWrapper);
        if (CollectionUtils.isEmpty(sourceModels)) {
            throw new ServiceException("源产品下没有可复制的型号");
        }
        if (selectedModelIds != null && sourceModels.size() != selectedModelIds.size()) {
            throw new ServiceException("部分型号不存在或不属于源产品");
        }
        List<ProductModel> copyList = new ArrayList<>();
        for (ProductModel sourceModel : sourceModels) {
            ProductModel copy = new ProductModel();