21 Star 75 Fork 40

埃毕致开源商业套件/PLM-Service(软件生命周期管理)后台

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

🌀 iBizPLM Groovy 架构项目说明

项目背景

本项目基于原 plm-code (SpringBoot) 改造而来,采用 Groovy 语言重构,将传统的 Controller/Service/Repository 模板演变为每个实体对应一个 Groovy 控制类,发布 DTO 与 Runtime 控制逻辑,底层基于以SpringBoot/SpringCloud为内核 ibiz-service-runner 引擎,该引擎来自 iBizLab 技术中台,支持全动态解释执行与插件化扩展。

通过引入 Groovy 动态语言特性,结合 ibiz-service-runner 动态执行引擎,极大简化了代码结构,提高了开发效率与可维护性。同时解决了 service-runner 不便调试的问题。

📢 📢 介绍视频 📢 📢

img

架构说明

✅ 动态控制器生成

每个实体对应一个 Groovy 控制类,无需传统 Controller/Service/Repository 分层样板代码。例如:

包路径:

cn.ibizlab.plm.prodmgmt.product
├── Product              ← 实体控制器(Groovy类)
└── dto/
    ├── ProductDTO       ← 数据传输对象
    └── ProductFilterDTO ← 查询过滤对象

✅ DTO 简洁链式调用

@Test
void testSave() {
    ProductDTO dto = Product.getInstance().entity()
        .setId("test1")
        .setName("test1产品")
        .setIdentifier("0000")
        .setScopeType("organization")
        .setVisibility("public")
        .setMembers([
            new ProductMemberDTO()
                .setUserId("demo_admin")
                .setName("管理员")
                .setRoleId("admin")
        ])
        .save() as ProductDTO

    println dto
}

✅ 动态获取与查询示例

@Test
void testGet() {
    ProductDTO dto = Product.getInstance().get("test1", true)
    if (!dto) {
        dto = Product.getInstance().create(new ProductDTO()
            .setId("test1")
            .setName("test1产品")
            .setIdentifier("0000")
            .setScopeType("organization")
            .setVisibility("public")
            .setMembers([
                new ProductMemberDTO().setUserId("demo_admin").setName("管理员").setRoleId("admin")
            ]))
        println "未命中,创建新数据: ${dto}"
    } else {
        println "命中: ${dto}"
    }
}
@Test
void testFetchDefault() {
    Page<ProductDTO> page = Product.getInstance()
        .fetchDefault(new ProductFilterDTO().sort("create_time,desc"))
    println "共${page.totalPages}页,${page.totalElements}行"

    // 简写方式
    page = Product.getInstance().filter().sort("create_time,desc").fetch()
    page.content.each { println it }
}

本地IDEA

启动依赖项目

可通过 docker-compose 启动当前项目运行所需的 mysql、nacos、redis 等基础服务,详见Install

修改调试依赖服务域名解析地址

依赖服务均在docker网络内运行,为了本机调试时转接依赖地址,需要修改本机host域名解析,Linux或MacOS修改 /etc/hosts,Windows修改C:\Windows\System32\drivers\etc\hosts

  • 将 nacos 中实例注册的短域名映射成依赖服务ip地址如:10.144.0.1
sudo vi /etc/hosts
# nacos 映射
10.144.0.1	nacos

# redis 映射
10.144.0.1	redis 
 
# 数据库 映射
10.144.0.1	mysql

# zookepr 映射
10.144.0.1	zoo1

# ibizlab-cloud云服务 映射
10.144.0.1	ibiz-ebsx-allinone

# 认证微服务 映射
10.144.0.1	ibizlab-uaa-api

# emqx 消息服务 映射
10.144.0.1	emqx

10.144.0.1 nacos

克隆此仓库

git clone https://gitee.com/ibizlab/plm-code.git

调试启动

环境要求:jdk === 1.8

mvn package -Pruntime

#编译器中 Run 或 Debug plm-provider/src/main/java/cn/ibizlab/plm/RuntimeApplication.java

出现以下界面提示说明服务器启动成功:

[DEBUG] n.i.central.cloud.core.ServiceHubBase    : 系统[ibizplm]已经注册
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Heap Memory Usage:
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Init: 786432000
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Used: 1489565680
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Committed: 4904714240
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Max: 11169955840
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Non-Heap Memory Usage:
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Init: 2555904
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Used: 222739928
[DEBUG] n.i.central.cloud.core.ServiceHubBase    : Committed: 231342080

Nacos实例替代

启动依赖环境时,集群中已经注册有docker中启动的plmservice实例,因此我们将会看到有两个实例注册,调试服务请手工下线docker中的实例,以调试启动的实例承接网关的转发。

img

img

断点调试

正常访问iBizPLM的前端页面地址,本机启动的服务会正常接收到断点。

img

img


动态执行引擎:ibiz-service-runner

ibiz-service-runner 是基于 iBiz 技术中台 的全动态解释型业务引擎,具备以下核心能力:

🌐 全动态解释执行

  • 实时解析模型文件,自动生成数据库表结构、API 接口、服务逻辑与前端 Schema。
  • 支持模型热更新,无需重启服务即刻生效。

🧩 插件化能力扩展

  • 支持通过 ibiz-plugin 动态加载持久化、消息队列、AI 模块等能力。
  • 可通过 ibiz-plugin-extension 进行二次扩展与规则控制。

☁️ 云原生集成

  • 对接 ibiz-cloud 中台:认证、配置中心、流程引擎。
  • 内建 SaaS 多租户支持,自动处理租户隔离和资源管理。

🏢 企业级扩展能力

  • 兼容私有协议、DevOps 流程等企业定制需求。
  • 支持“云管端”混合部署模式,适配企业级部署策略。

总结

通过本次 Groovy 化改造,你可以:

  • 💡 用更少的代码完成更强的业务控制逻辑;
  • 🔍 更轻松地调试和运行 ibiz-service-runner
  • 🚀 快速上线基于模型的动态系统。
MIT License Copyright (c) 2025 iBizLab Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

PLM-Service(软件生命周期管理)后台是一套基于 SpringBoot/Groovy的应用程序源码。iBizPLM是新一代的研发管理平台,其设计宗旨在于通过简化操作界面,实现研发管理流程的自动化、数字化及智能化,帮助企业加快研发进度。平台充分汲取pingcode项目管理软件的核心。 展开 收起
README
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ibizlab/plm-service.git
git@gitee.com:ibizlab/plm-service.git
ibizlab
plm-service
PLM-Service(软件生命周期管理)后台
main

搜索帮助