zhangherong
2025-07-09 7cd4326bda3ce46633e8590ba4e36c5d92d0e001
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -102,7 +102,54 @@
        return Collections.emptyList();
    }
    public BaseFactory searchCenterByKeyWord(String keyWord) {
        if (StringUtils.isBlank(keyWord)) {
            return null;
        }
        if (keyWord.contains("/")) {
            return searchByHierarchy(keyWord);
        } else {
            return searchByCode(keyWord);
        }
    }
    private BaseFactory searchByHierarchy(String path) {
        String[] levels = path.split("/");
        int depth = levels.length;
        // 检查层级深度
        if (depth < 2 || depth > 3) {
            return null; // 无效的层级深度
        }
        // 查询第一级中心
        BaseFactory center = findFactory(levels[0], 1, null);
        if (center == null) return null;
        // 查询第二级工区
        BaseFactory workArea = findFactory(levels[1], null, center.getId());
        if (workArea == null || depth == 2) return workArea;
        // 查询第三级工段
        return findFactory(levels[2], null, workArea.getId());
    }
    private BaseFactory searchByCode(String code) {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        query.like(BaseFactory::getFactoryCode, code);
        return this.baseMapper.selectOne(query); // 使用selectOne避免多个结果
    }
    private BaseFactory findFactory(String name, Integer category, String parentId) {
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        query.eq(BaseFactory::getFactoryName, name);
        if (category != null) query.eq(BaseFactory::getFactoryCategory, category);
        if (parentId != null) query.eq(BaseFactory::getParentId, parentId);
        return this.baseMapper.selectOne(query);
    }
    /**
     * saveProductionData 对应 add 保存用户在页面添加的新的设备车间管理对象数据