同步操作将从 埃毕致开源商业套件/plm-code 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
iBiz产品生命周期管理(iBizPLM)的一套基于 Spring Boot 和 Vue 的轻量级应用程序源码。
前端技术栈
微服务技术栈
主要分为 plm-core、plm-serviceapi 和 plm-user 三个子项目,以及前台vue代码目录。
/plm-code
|-- /frontend --前端vue代码
|-- /plm-core --业务核心代码
| |-- /src/main/java --源码目录
| | |-- cn.ibizlab.plm --系统包路径
| | | |-- core --业务服务层
| | | | |-- base --模块名
| | | | | |-- domain --实体类
| | | | | |-- filter --搜索项
| | | | | |-- mapper --mybatis-plus 增删改查接口
| | | | | |-- service --实体服务对象
| | | |-- serviceapi --系统服务接口
| | | | |-- dto --服务接口DTO数据对象
| | | | |-- mapping --服务接口DTO数据对象转换服务
| | | | |-- rest --服务接口
| | | |-- util --工具类
| | | | |-- aspect --切面
| | | | |-- config --mybatis-plus、数据库版本配置
| | | | |-- enums --枚举
| | | | |-- job --任务
| |-- src/main/resource --资源文件目录
| | |-- i18n --国际化
| | |-- liquibase --数据库版本管理
| | |-- mapper --mybatis mapper.xml
|-- /plm-serviceapi --系统服务接口配置
| |-- /src/main/java --源码目录
| | |-- cn.ibizlab.plm --系统包路径
| | | |-- config --服务接口配置
| | | |-- serviceapi.rest --服务接口
| | | |-- BootApplication.java --程序主入口
|-- /plm-user --用户扩展目录
| |-- /src/main/java --源码目录
| | |-- cn.ibizlab.plm --系统包路径
| | | |-- core --业务服务扩展目录
| | | |-- serviceapi.rest --服务接口扩展目录
启动依赖
启动过 plm 主仓库 deploy/compose/docker-compose.yml 的可以忽略此步骤
仅启动开发依赖mysql、nacos、redis、zk、ebsx、uaa 请执行以下命令
#Linux OR MacOS 临时设置 IPADDR环境变量为本机ip地址如:192.168.1.3
$ export IPADDR=192.168.1.3 && docker-compose -f plm-serviceapi/src/main/docker/docker-compose.yml up -d
#Windows 临时设置 IPADDR环境变量为本机ip地址如:192.168.1.3
$ set IPADDR=192.168.1.3 && docker-compose -f plm-serviceapi/src/main/docker/docker-compose.yml up -d
修改调试依赖服务域名解析地址
依赖服务均在docker网络内运行,为了本机调试时转接依赖地址,需要修改本机host域名解析,Linux或MacOS修改 /etc/hosts,Windows修改C:\Windows\System32\drivers\etc\hosts
#将 nacos.ibizcloud.cn 映射成本机ip地址如:192.168.1.3
$ 192.168.1.3 nacos.ibizcloud.cn
$ mvn package -Pserviceapi
启动系统微服务:
编译器中 Run 或 Debug
plm-serviceapi/src/main/java/cn/ibizlab/plm/BootApplication.java
前端预览:
更多内容详见 frontend/README.md 说明。
$ cd frontend
$ pnpm install && pnpm preview
plm-user 项目中预留了用户扩展的实现类,可重写基类中的默认实现逻辑。
如:在 ProjectServiceImpl 中重写获取项目信息的行为, 其上级 AbstractProjectService 继承自 mybatis-plus 的 ServiceImpl,方便使用 mybatis-plus 所提供方法。
@Slf4j
@Service("ProjectService")
public class ProjectServiceImpl extends AbstractProjectService {
@Override
public Project get(Project et) {
//此处使用了mybatis-plus IService 中所提供方法
et = this.getOne(Wrappers.<Project>lambdaQuery().eq(Project::getId,et.getId()));
return et;
}
}
除了重写 Service 实现能力外,也可以在 plm-user 项目中重写或添加 rest 接口来满足您的业务需求。
public class ProjectResourceImpl extends AbstractProjectResource {
@RequestMapping("/call")
public Map call(@RequestBody Map body){
return projectService.call(body);
}
}
iBizPLM 中内置了表单设计器、规则设计器等。可以根据业务需要定制业务表单或者配置动态规则,这些动态扩展能力依托动态引擎实现,保障系统在运行过程中能够灵活的定制功能,满足用户方不断变化的需求。
使用内置的表单设计器,用户可以轻松设计业务表单。
用户可以创建自动化规则,当执行特定业务操作时,规则将自动触发并执行相应的业务操作。 如:在用户创建工作项时,可以通过配置自动化规则来生成工作项编号。
定制的表单和规则等数据存储为模型文件(JSON)。在系统运行时,动态引擎加载并解释执行模型文件,提供相应的服务能力。
系统通过引擎适配器 (adapter) 与动态引擎进行交互。以切面方式监听 Service 中的 Action(如创建、更新、删除等),驱动动态引擎来解析对应的模型文件并执行相应的操作。
示例&说明:下面将以生成工作项编号的动态规则为例说明代码如何与动态引擎进行交互。
功能名称 | 功能描述 | 代码实现 | 动态引擎 |
---|---|---|---|
主状态检查 | 在执行某些业务操作前,通过校验数据状态来决定是否满足执行条件。 | √ | |
默认值填充 | 设置实体属性的默认值。 | √ | |
属性序列值填充 | 为实体的某些属性生成序列值,如自增ID。 | √ | |
逻辑附加 BEFORE 模式 | 在实体逻辑执行前进行一些额外的操作。 | √ | |
关系的删除检查 ,重置、关联删除 | 在删除实体时,检查与其相关的其他实体,并可能进行重置或关联删除。 | √ | |
工作流相关 | 执行流程启动、流程取消等操作。 | √ | |
实体行为-处理逻辑 | 执行实体处理逻辑。 | √ | |
实体行为-脚本代码 | 解析并执行脚本代码。 | √ | |
嵌套数据处理 | 处理嵌套的数据结构或数据关系。 | √ | |
值校验 | 对数据或输入值进行检查和验证。 | √ | |
值变更 | 跟踪实体属性值的变化,并在值变更时执行某些操作。 | √ | |
值转换 | 将实体的属性值从一种格式或类型转换为另一种。 | √ | |
索引相关处理 | 暂无。 | √ | |
继承相关处理 | 暂无。 | √ | |
逻辑附加 AFTER 模式 | 在实体逻辑执行后进行一些额外的操作。 | √ | |
数据同步 | 以实体作为载体,实现系统内/外的数据传递。 | √ |
iBizPLM 使用 iBizCloud 云服务来为其系统的运行提供支持和赋能,目前所使用的云服务包含:
云服务 | 功能描述 |
---|---|
认证服务 | 提供用户身份验证和授权的功能。 |
组织人员服务 | 管理单位、部门、人员等信息。 |
消息通知服务 | 提供钉钉、微信、短信、邮件等消息通知服务。 |
日志服务 | 记录系统的操作日志、错误日志等。 |
文件存储服务 | 提供文件上传、下载、存储和管理的功能。 |
报表服务 | 提供报表的统计分析服务。 |
工作流服务 | 提供流程部署、流程启动、待办任务审批等服务。 |
开放平台服务 | 提供钉钉、微信、码云等开放平台接入及认证服务。 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。