Crunchy
2024-07-30 cc594338fdf2de3d0527e9fc5e6dae9e900cf662
inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardProductListServiceImpl.java
@@ -1,6 +1,5 @@
package com.yuanchu.mom.service.impl;
import cn.hutool.core.lang.Console;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -11,6 +10,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.ProductDto;
import com.yuanchu.mom.exception.ErrorException;
import com.yuanchu.mom.mapper.StandardProductListMapper;
import com.yuanchu.mom.mapper.StandardTreeMapper;
import com.yuanchu.mom.pojo.InsSample;
@@ -85,8 +85,8 @@
                        if (Objects.equals(a.getBsm(), "1")) {
                            return true;
                        } else {
                            if (sections.get(i).contains("@")) {
                                String[] split = sections.get(i).split("@");
                            if (sections.get(i).contains("&")) {
                                String[] split = sections.get(i).split("&");
                                isIf = getIsIf(split[0], models[1]) && getIsIf(split[1], models[1]);
                            } else {
                                isIf = getIsIf(sections.get(i), models[1]);
@@ -139,6 +139,11 @@
    @Override
    public Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
        String[] trees = tree.split(" - ");
        try{
            String tree1 = trees[2];
        }catch (Exception e){
            throw new ErrorException("操作太快,系统传参错误!!!!");
        }
        List<StandardProductList> list = new ArrayList<>();
        if (trees.length == 3) {
            List<StandardTree> treeList = new ArrayList<>();
@@ -235,14 +240,48 @@
        }
        if (page == 1) {
            Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
            CompletableFuture.supplyAsync(() -> {
//            CompletableFuture.supplyAsync(() -> {
                System.out.println("开始开始开始开始!!!!!!!!!!");
                if (trees.length == 5) {
                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, id).eq(StandardProductList::getTree, tree));
                    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));
                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                            .eq(StandardProductList::getStandardMethodListId, id)
                            .like(StandardProductList::getTree, tree));
                }
                standardProductListService2.saveBatch(list.stream().map(a -> {
                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("结束结束结束结束@@@@@@@@@@@@");
                }
             /*   standardProductListService2.saveBatch(list.stream().map(a -> {
                    a.setFactory(trees[0]);
                    a.setLaboratory(trees[1]);
                    a.setSampleType(trees[2]);
@@ -250,14 +289,13 @@
                    a.setUpdateUser(userId);
                    a.setStandardMethodListId(id);
                    return a;
                }).collect(Collectors.toList()));
                System.out.println("结束结束结束结束@@@@@@@@@@@@");
                return null;
            }).thenAccept(res -> {
            }).exceptionally(e -> {
                e.printStackTrace();
                return null;
            });
                }).collect(Collectors.toList()));*/
//                return null;
//            }).thenAccept(res -> {
//            }).exceptionally(e -> {
//                e.printStackTrace();
//                return null;
//            });
        }
        Map<String, Object> map = new HashMap<>();
        Collections.sort(list, (o1, o2) -> {