value
2024-05-24 87d82df87ff8846898a88ff9bfcb2cd595bab78b
inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java
@@ -1,29 +1,25 @@
package com.yuanchu.mom.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.mom.common.GetLook;
import com.yuanchu.mom.dto.FactoryDto;
import com.yuanchu.mom.dto.SampleTypeDto;
import com.yuanchu.mom.mapper.StandardMethodListMapper;
import com.yuanchu.mom.mapper.StandardProductListMapper;
import com.yuanchu.mom.pojo.StandardMethodList;
import com.yuanchu.mom.mapper.StandardTreeMapper;
import com.yuanchu.mom.pojo.StandardProductList;
import com.yuanchu.mom.pojo.StandardTree;
import com.yuanchu.mom.service.StandardMethodListService;
import com.yuanchu.mom.service.StandardProductListService;
import com.yuanchu.mom.service.StandardTreeService;
import com.yuanchu.mom.mapper.StandardTreeMapper;
import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.List;
import java.util.Map;
/**
 * @author Administrator
@@ -45,8 +41,6 @@
    private StandardProductListService standardProductListService;
    private GetLook getLook;
    @Override
    public List<FactoryDto> selectStandardTreeList() {
        return standardTreeMapper.selectStandardTreeList();
@@ -55,31 +49,6 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addStandardTree(StandardTree standardTree) {
        List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(standardTree.getSampleType());
        List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(standardTree.getSampleType());
        for (StandardMethodList standardMethod : methodList) {
            standardMethod.setFactory(standardTree.getFactory());
            standardMethod.setLaboratory(standardTree.getLaboratory());
            standardMethod.setSampleType(standardTree.getSampleType());
            standardMethod.setSample(standardTree.getSample());
            standardMethod.setModel(standardTree.getModel());
            standardMethodListMapper.insert(standardMethod);
            for (StandardProductList standardProductList : productList) {
                standardProductList.setFactory(standardTree.getFactory());
                standardProductList.setLaboratory(standardTree.getLaboratory());
                standardProductList.setSampleType(standardTree.getSampleType());
                standardProductList.setSample(standardTree.getSample());
                standardProductList.setModel(standardTree.getModel());
                standardProductList.setStandardMethodListId(standardMethod.getId());
                standardProductList.setState(1);
                standardProductList.setId(null);
                standardProductList.setCreateUser(null);
                standardProductList.setCreateTime(null);
                standardProductList.setUpdateUser(null);
                standardProductList.setUpdateTime(null);
                standardProductListMapper.insert(standardProductList);
            }
        }
        return standardTreeMapper.insert(standardTree);
    }
@@ -91,7 +60,7 @@
            case 5:
                standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]).eq(StandardTree::getModel, trees[4]));
                break;
            case 4:
            /*case 4:
                standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]).eq(StandardTree::getLaboratory, trees[1]).eq(StandardTree::getSampleType, trees[2]).eq(StandardTree::getSample, trees[3]));
                break;
            case 3:
@@ -102,18 +71,7 @@
                break;
            case 1:
                standardTreeMapper.delete(Wrappers.<StandardTree>lambdaUpdate().eq(StandardTree::getFactory, trees[0]));
                break;
        }
        Map<String, List<?>> listMap = standardMethodListService.selectsStandardMethodByFLSSM2(tree);
        if (listMap.get("standardMethodList").size() != 0) {
            for (Object o : listMap.get("standardMethodList")) {
                JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(o));
                List<StandardProductList> list = standardProductListService.selectStandardProductListByMethodId((Integer) jsonObject.get("id"));
                if (list.size() != 0) {
                    standardProductListMapper.deleteBatchIds(list);
                }
            }
            standardMethodListMapper.deleteBatchIds(listMap.get("standardMethodList"));
                break;*/
        }
        return 1;
    }
@@ -148,105 +106,17 @@
    }
    @Override
    public List<SampleTypeDto> getStandardTree2() {
        return standardTreeMapper.getStandardTree2();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void reTreeBySampleType(String sampleType) {
//        Integer userId = getLook.selectPowerByMethodAndUserId(null).get("userId");
        CompletableFuture.supplyAsync(() -> {
            List<StandardProductList> productList = standardTreeMapper.getStandardProductListBySample(sampleType);
            List<StandardProductList> productList1 = JSON.parseArray(JSON.toJSONString(productList), StandardProductList.class);
            List<StandardMethodList> methodList = standardTreeMapper.getStandardMethodListBySample(sampleType);
            List<StandardMethodList> methodList1 = JSON.parseArray(JSON.toJSONString(methodList), StandardMethodList.class);
            List<StandardTree> treeList = standardTreeMapper.selectList(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getSampleType, sampleType));
            for (StandardTree tree : treeList) {
                String treeStr = tree.getFactory() + " - " + tree.getLaboratory() + " - " + tree.getSampleType() + (tree.getSample() == null ? "" : " - " + tree.getSample()) + (tree.getModel() == null ? "" : " - " + tree.getModel());
                List<StandardMethodList> standardMethodList = JSON.parseArray(JSON.toJSONString(standardMethodListService.selectsStandardMethodByFLSSM(treeStr).get("standardMethodList")), StandardMethodList.class);
                for (StandardMethodList sl1 : standardMethodList) {
                    int count1 = 0;
                    for (StandardMethodList sl2 : methodList) {
                        if (sl1.getCode().equals(sl2.getCode())) {
                            sl1.setName(sl2.getName());
                            sl1.setRemark(sl2.getRemark());
                            sl2.setId(sl1.getId());
                            standardMethodListMapper.updateById(sl1);
                            List<StandardProductList> standardProductList = standardProductListService.selectStandardProductListByMethodId(sl1.getId());
                            for (StandardProductList pl1 : standardProductList) {
                                int count2 = 0;
                                for (StandardProductList pl2 : productList) {
                                    if (Objects.equals(pl1.getInspectionItemSubclass(), pl2.getInspectionItemSubclass()) && Objects.equals(pl1.getInspectionItem(), pl2.getInspectionItem())) {
                                        pl2.setUpdateUser(null);
                                        pl2.setUpdateTime(null);
                                        pl2.setId(pl1.getId());
                                        standardProductListMapper.updateById(pl2);
                                        break;
                                    } else {
                                        count2++;
                                    }
                                }
                                if (count2 == productList.size()) {
                                    standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId()));
                                }
                            }
                            for (StandardProductList pl2 : productList) {
                                if (pl2.getId() == null) {
                                    pl2.setFactory(tree.getFactory());
                                    pl2.setLaboratory(tree.getLaboratory());
                                    pl2.setSampleType(tree.getSampleType());
                                    pl2.setSample(tree.getSample());
                                    pl2.setModel(tree.getModel());
                                    pl2.setStandardMethodListId(sl1.getId());
                                    pl2.setState(1);
                                    pl2.setId(null);
                                    pl2.setCreateUser(null);
                                    pl2.setCreateTime(null);
                                    pl2.setUpdateUser(null);
                                    pl2.setUpdateTime(null);
                                    standardProductListMapper.insert(pl2);
                                }
                            }
                            break;
                        } else {
                            count1++;
                        }
                    }
                    if (count1 == methodList.size()) {
                        standardMethodListMapper.deleteById(sl1);
                        standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, sl1.getId()));
                    }
                }
                for (StandardMethodList sl2 : methodList) {
                    if (sl2.getId() == null) {
                        sl2.setFactory(tree.getFactory());
                        sl2.setLaboratory(tree.getLaboratory());
                        sl2.setSampleType(tree.getSampleType());
                        sl2.setSample(tree.getSample());
                        sl2.setModel(tree.getModel());
                        standardMethodListMapper.insert(sl2);
                        for (StandardProductList standardProductList : productList) {
                            standardProductList.setFactory(tree.getFactory());
                            standardProductList.setLaboratory(tree.getLaboratory());
                            standardProductList.setSampleType(tree.getSampleType());
                            standardProductList.setSample(tree.getSample());
                            standardProductList.setModel(tree.getModel());
                            standardProductList.setStandardMethodListId(sl2.getId());
                            standardProductList.setState(1);
                            standardProductList.setId(null);
                            standardProductList.setCreateUser(null);
                            standardProductList.setCreateTime(null);
                            standardProductList.setUpdateUser(null);
                            standardProductList.setUpdateTime(null);
                            standardProductListMapper.insert(standardProductList);
                        }
                    }
                }
                methodList = JSON.parseArray(JSON.toJSONString(methodList1), StandardMethodList.class);
                productList = JSON.parseArray(JSON.toJSONString(productList1), StandardProductList.class);
            }
            return 1;
        }).thenAccept(res -> {
        }).exceptionally(e -> {
            e.printStackTrace();
            return null;
        });
    public int upStandardProducts(Map<String, Object> product) {
        List<Integer> ids = JSON.parseArray(product.get("ids")+"");
        StandardProductList productList = JSON.parseObject(JSON.toJSONString(product.get("standardProductList")), StandardProductList.class);
        standardProductListMapper.update(productList, Wrappers.<StandardProductList>lambdaUpdate().in(StandardProductList::getId, ids));
        return 1;
    }
}