liding
2025-03-28 9b5243a4eb50a6e034620f2fb9b2ffd6fb80820a
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -2,25 +2,20 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.*;
import com.ruoyi.basic.pojo.*;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.basic.dto.CopyStandardProductListDto;
import com.ruoyi.basic.dto.InsSampleReceiveDto;
import com.ruoyi.basic.dto.ProductDto;
import com.ruoyi.basic.dto.ResetTreeDragDTO;
import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.mapper.StandardProductListMapper;
import com.ruoyi.basic.mapper.StandardProductListSupplierAskMapper;
import com.ruoyi.basic.mapper.StandardTreeMapper;
import com.ruoyi.basic.pojo.StandardProductList;
import com.ruoyi.basic.pojo.StandardProductListSupplierAsk;
import com.ruoyi.basic.pojo.StandardTree;
import com.ruoyi.basic.service.StandardProductListService;
import com.ruoyi.basic.service.StandardProductListService2;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -45,11 +40,13 @@
    private StandardTreeMapper standardTreeMapper;
    private StandardProductListService2 standardProductListService2;
    private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
    private StandardProductListSupplierAskMapper standardProductListSupplierAskMapper;
    private ProductPartMapper productPartMapper;
    private StructureTestObjectPartMapper  structureTestObjectPartMapper;
    @Override
@@ -188,6 +185,25 @@
            }
        }
        ProductPart productPart = productPartMapper.selectOne(new LambdaQueryWrapper<ProductPart>().eq(ProductPart::getPartNo, insSample.getPartNo()));
        if (productPart != null){
            if (StringUtils.isNotEmpty(productPart.getInspectionItem())){
                String inspectionItem = productPart.getInspectionItem();
                list = list.stream()
                        .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem()))
                        .collect(Collectors.toList());
            }
        }
        StructureTestObjectPart structureTestObjectPart = structureTestObjectPartMapper.selectOne(new LambdaQueryWrapper<StructureTestObjectPart>().eq(StructureTestObjectPart::getPartNo, insSample.getPartNo()));
        if (structureTestObjectPart != null){
            if (StringUtils.isNotEmpty(structureTestObjectPart.getInspectionItem())){
                String inspectionItem = structureTestObjectPart.getInspectionItem();
                list = list.stream()
                        .filter(standardProductList -> inspectionItem.equals(standardProductList.getInspectionItem()))
                        .collect(Collectors.toList());
            }
        }
        return list;
    }
@@ -403,10 +419,6 @@
                    if (sp.getTemplateId() != null && !sp.getTemplateId().equals("")) {
                        pl.setTemplateId(sp.getTemplateId());
                    }
                    //因为还有个产品叫耐张线夹 接续金具 ,这两个项目的数据完全一样,特殊处理
                    if (sp.getTree() != null && !sp.getTree().equals("") && !pl.getTree().equals("中天科技检测中心 - 电力产品实验室 - 金具 - 耐张线夹 - null")) {
                        pl.setTree(sp.getTree());
                    }
                    break;
                }
            }
@@ -423,23 +435,22 @@
                    .like(StandardProductList::getTree, tree));
        }
        try {
            List<StandardProductList> productLists = list.stream().map(a -> {
                a.setFactory(trees[0]);
                a.setLaboratory(trees[1]);
                a.setSampleType(trees[2]);
                a.setCreateUser(userId);
                a.setUpdateUser(userId);
                a.setStandardMethodListId(id);
                return a;
            }).collect(Collectors.toList());
            standardProductListService2.saveBatch(productLists);
        } catch (Exception e) {
            // 处理重复 ID 的记录,重新生成 ID 并继续尝试插入
            for (StandardProductList productList : list) {
                productList.setId(IdWorker.getId());
            }
        List<StandardProductList> productLists = list.stream().map(a -> {
            a.setFactory(trees[0]);
            a.setLaboratory(trees[1]);
            a.setSampleType(trees[2]);
            a.setCreateUser(userId);
            a.setUpdateUser(userId);
            a.setStandardMethodListId(id);
            return a;
        }).collect(Collectors.toList());
//            this.saveBatch(productLists);
        // 批量添加标准
        if (CollectionUtils.isNotEmpty(productLists)) {
            baseMapper.saveBatchProductLists(productLists);
        }
        Collections.sort(list, (o1, o2) -> {
            String field1 = o1.getManHourGroup();
@@ -562,7 +573,7 @@
    @Override
    public void resetTreeDragBatch(List<StandardProductList> standardProductLists) {
        standardProductListService2.updateBatchById(standardProductLists);
        this.updateBatchById(standardProductLists);
    }
    /**