chenrui
2025-04-03 cf396d3076a064998fbac84f76861f5ed918c5e5
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java
@@ -1,6 +1,8 @@
package com.ruoyi.basic.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.StandardMethodListMapper;
@@ -39,61 +41,69 @@
    @Override
    public Map<String, List<?>> selectsStandardMethodByFLSSM(String tree) {
        // 判断是否包含车间
        boolean workshopExist = existWorkShop(tree);
        Map<String, List<?>> map = new HashMap<>();
        String str = "";
        List<StandardMethodList> standardMethodLists = new ArrayList<>();
        String sampleType = ""; // 检验对象
        // 拼接树
        String[] trees = tree.split(" - ");
        if(trees != null && trees.length >= 4){
            // 判断是否有车间
            if(workshopExist){
                switch (trees.length - 4){
                    case 3:
                        str += "\"" + trees[4] + "\",\"" + trees[5] + "\",\"" + trees[6] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\",\"" + trees[5] + "\""));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\""));
                        break;
                    case 2:
                        str += "\"" + trees[4] + "\",\"" + trees[5] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[4] + "\""));
                        break;
                    case 1:
                        str += "\"" + trees[4] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists3(str));
                        break;
                    default:
                        map.put("standardMethodList", null);
                        return map;
                }
            }else {
                switch (trees.length - 4){
                    case 2:
                        str += "\"" + trees[3] + "\",\"" + trees[4] + "\",\"" + trees[5] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\",\"" + trees[4] + "\""));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\""));
                        break;
                    case 1:
                        str += "\"" + trees[3] + "\",\"" + trees[4] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists(str));
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists("\"" + trees[3] + "\""));
                        break;
                    case 0:
                        str += "\"" + trees[3] + "\"";
                        standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodLists3(str));
                        break;
                    default:
                        map.put("standardMethodList", null);
                        return map;
                }
        map.put("standardMethodList", null);
        if(trees == null && trees.length < 4){
            return map;
        }
        StringBuilder checkItemQueryTree = new StringBuilder();   // 检查项查询
        StringBuilder productTree = new StringBuilder(); // 检验产品树
        // 判断是否包含车间
        boolean existWorkShopFlag = this.existWorkShop(tree);
        // 车间层级多一层级
        if(existWorkShopFlag){
            switch (trees.length) {
                case 7:
                    sampleType = trees[4];
                    checkItemQueryTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\",\"").append(trees[6]).append("\"");
                    productTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"");
                    break;
                case 6:
                    sampleType = trees[4];
                    checkItemQueryTree.append("\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"");
                    break;
                case 5:
                    sampleType = trees[4];
                    checkItemQueryTree.append("\"").append(trees[4]).append("\"").append("]");
                    break;
            }
        }else {
            standardMethodLists.addAll(standardMethodListMapper.selectStandardMethodListsByNull(str));
            switch (trees.length) {
                case 6:
                    sampleType = trees[3];
                    checkItemQueryTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\",\"").append(trees[5]).append("\"");
                    productTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\"");
                    break;
                case 5:
                    sampleType = trees[3];
                    checkItemQueryTree.append("\"").append(trees[3]).append("\",\"").append(trees[4]).append("\"");
                    break;
                case 4:
                    sampleType = trees[3];
                    checkItemQueryTree.append("\"").append(trees[3]).append("\"").append("]");
                    break;
            }
        }
        map.put("standardMethodList", standardMethodLists);
        if(StringUtils.isEmpty(checkItemQueryTree.toString())){
            return map;
        }
        List<StandardMethodList> standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(checkItemQueryTree.toString());
        // 查不到查询检查对象
        if(CollectionUtils.isEmpty(standardMethodListArray)){
            // 如果是完整层级,向上推到产品层级
            if((existWorkShopFlag&&trees.length == 7) || (!existWorkShopFlag&&trees.length == 6)){
                standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(productTree.toString());
            }
            // 还是为空查询对象层级
            if(CollectionUtils.isEmpty(standardMethodListArray)){
                standardMethodListArray = standardMethodListMapper.selectStandardMethodLists(sampleType);
            }
        }
        map.put("standardMethodList", standardMethodListArray);
        return map;
    }