zss
2024-08-01 30a143f368dd2ff6e9c27b9d5dd17923ffed03ae
inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -69,14 +69,20 @@
            String[] split = insSample.getFactory().split(" - ");
            String tree = split[0] + " - " + split[1] + " - " + split[2] + " - " + split[3] + " - null";
            list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree);
            if (list.size()==0){
                String tree1 = split[0] + " - " + split[1] + " - " + split[2] + " - null - " + split[3] ;
            if (list.size() == 0) {
                String tree1 = split[0] + " - " + split[1] + " - " + split[2] + " - null - " + split[3];
                list = standardProductListMapper.selectDetail2(insSample.getStandardMethodListId(), 1, tree1);
            }
        }
        String[] split1 = insSample.getFactory().split(" - ");
        if (ObjectUtils.isNotEmpty(split1[3])){
            list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList());
        //判断长度
        if (split1.length > 3) {
            if (ObjectUtils.isNotEmpty(split1[3])) {
                list = list.stream().filter(list1 -> list1.getSample().equals(split1[3])).collect(Collectors.toList());
            }else if (split1[3].equals("")) {
                list = list.stream().filter(list1 -> list1.getSampleType().equals(split1[2])).collect(Collectors.toList());
            }
        }
        list = list.stream().filter(a -> {
            try {
@@ -147,9 +153,9 @@
    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
        String[] trees = tree.split(" - ");
        try{
        try {
            String tree1 = trees[2];
        }catch (Exception e){
        } catch (Exception e) {
            throw new ErrorException("操作太快,系统传参错误!!!!");
        }
        List<StandardProductList> list = new ArrayList<>();
@@ -183,7 +189,8 @@
                list.addAll(standardTreeMapper.selectStandardProductListByTree("\"" + trees[2] + "\"", standardTree2.getSample(), standardTree2.getModel(), tree2, trees[1]));
                list.addAll(standardTreeMapper.selectStandardProductListByTree2("\"" + trees[2] + "\",\"" + standardTree2.getSample() + "\"", standardTree2.getSample(), standardTree2.getModel(), tree2, trees[1]));
            }
        } else if (trees.length == 4) {
        }
        else if (trees.length == 4) {
            List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]));
            if (treeList.size() == 0) {
                StandardTree standardTree = new StandardTree();
@@ -198,7 +205,8 @@
                list.addAll(standardTreeMapper.selectStandardProductListByTree("\"" + trees[2] + "\"", standardTree.getSample(), standardTree.getModel(), str, trees[1]));
                list.addAll(standardTreeMapper.selectStandardProductListByTree2("\"" + trees[2] + "\",\"" + trees[3] + "\"", standardTree.getSample(), standardTree.getModel(), str, trees[1]));
            }
        } else {
        }
        else {
            list.addAll(standardTreeMapper.selectStandardProductListByTree("\"" + trees[2] + "\"", trees[3].equals("null") ? null : trees[3], trees[4], tree, trees[1]));
            list.addAll(standardTreeMapper.selectStandardProductListByTree2("\"" + trees[2] + "\",\"" + trees[3] + "\"", trees[3].equals("null") ? null : trees[3], trees[4], tree, trees[1]));
        }
@@ -249,45 +257,46 @@
        if (page == 1) {
            Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
//            CompletableFuture.supplyAsync(() -> {
                System.out.println("开始开始开始开始!!!!!!!!!!");
                if (trees.length == 5) {
                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                            .eq(StandardProductList::getStandardMethodListId, id)
                            .eq(StandardProductList::getTree, tree));
                } else {
                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                            .eq(StandardProductList::getStandardMethodListId, id)
                            .like(StandardProductList::getTree, tree));
                }
            System.out.println("开始开始开始开始!!!!!!!!!!");
            if (trees.length == 5) {
                standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                        .eq(StandardProductList::getStandardMethodListId, id)
                        .eq(StandardProductList::getTree, tree));
            } else {
                standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                        .eq(StandardProductList::getStandardMethodListId, id)
                        .like(StandardProductList::getTree, tree));
            }
                boolean success = false;
                int retryCount = 0;
                while (!success && retryCount < 100) {
                    try {
                        standardProductListService2.saveBatch(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()));;
                        success = true;
                    } catch (Exception e) {
                        retryCount++;
                        System.out.println("重复"+ retryCount+"次");
                        // 处理重复 ID 的记录,重新生成 ID 并继续尝试插入
                        for (StandardProductList productList : list) {
                            productList.setId(IdWorker.getId());
                        }
            boolean success = false;
            int retryCount = 0;
            while (!success && retryCount < 100) {
                try {
                    standardProductListService2.saveBatch(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()));
                    ;
                    success = true;
                } catch (Exception e) {
                    retryCount++;
                    System.out.println("重复" + retryCount + "次");
                    // 处理重复 ID 的记录,重新生成 ID 并继续尝试插入
                    for (StandardProductList productList : list) {
                        productList.setId(IdWorker.getId());
                    }
                }
                if (!success) {
                    throw new RuntimeException("插入失败");
                }else {
                    System.out.println("结束结束结束结束@@@@@@@@@@@@");
                }
            }
            if (!success) {
                throw new RuntimeException("插入失败");
            } else {
                System.out.println("结束结束结束结束@@@@@@@@@@@@");
            }
             /*   standardProductListService2.saveBatch(list.stream().map(a -> {
                    a.setFactory(trees[0]);