# oinone-example **Repository Path**: qkoala/oinone-example ## Basic Information - **Project Name**: oinone-example - **Description**: oinone-example - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-02-11 - **Last Updated**: 2025-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 后端工程 ### 模型相关 - 简单模型,模型的一些注解(如:模型的注解、labelFields、index、unique、等);了解模型基础概念。 - 模型关系字段:关系字段many2one, one2many, many2many 理解各种关系怎么用模型的方式表达出来;默认操作自动具备多表操作 - 模型字段,序列化与多值、模型编码和字段编码; 通过配置就可以实现业务编码功能,了解字段的一些要点(包括:必填,不可见、columnDefinition定义) - 模型分类和模型继承,代理模型和传输模型 不同的场景使用的场景 - 枚举与数据字典;数据表方式维护的字典 - 模型动作相关 - 1)Action覆盖示例,默认函数使用场景说明:create、update、delete、queryPage、queryOne和construct, 默认动作的场景, 默认Action覆盖方式 - 2)有哪些默认动作,怎么去覆盖默认的Action去扩展自定义的功能(标品和个性化)。 - 3)增加自定义Action,抽取方法到Service或者Manager - 4)根据业务场景,自行增加Action ### 基础功能 - 从queryWrappr中获取参数,包括Rsql解析和queryData中获取数据及使用 处理复杂搜索,如何通过非存储字段搜索(不在表的的字段),如果自定义搜索 - IWrapper、QueryWrapper和LambdaQueryWrapper各种使用 根据怎么进行复杂查询,怎么批量更新等 - 查询排序的各种方式(查询时自定义排序字段和排序规则) - 树表的配置及后端实现 - 联动配置 & 后端实现 - 自定义SQL Mapper的实现;自定义SQL Mapper方式实现复杂SQL(如:子查询,Join等) - 自定义Excel的导入与导出 - 定时任务,异步汇总部门人数 ## 总体说明 hr-example模拟一个组织内部的公司、部门、官网和员工管理以及员工出差申请和报销单审批的示例 ## 标品与个性化 ### 工程分层说明 - 标品工程:hr-simple-std - 个性化工程:hr-simple-ce (CE=Custom Edition, 代表定制版的意思) - 启动工程:hr-simple-boot 从标品构建到定制(扩展)包的开发: https://doc.oinone.top/kai-fa-shi-jian/13346.html ## 扩展能力 ### 1、继承与多态 - CustBusinessTrip extends BusinessTrip, 那么CustBusinessTrip自动继承了BusinessTrip所有的方法; - CustBusinessTrip可以覆盖父类的方法,CustBusinessTripAction重新了sayHello方法 ### 2、Hook机制 - HrSimpleSessionHook--hook拦截 3、SPI机制(扩展点和SPI) ## Session扩展 1、框架之Session 在日常开发中,我们通常需要把一些通用的信息放入程序执行的上下文中,一边业务开发能快速获取。那么Oinone的ParmisSession就是来解决此类问题的。 框架之Session参考:https://doc.oinone.top/oio4/9295.html 2、构建模块自身Session - HrSimpleSessionHook(hook拦截) pro.shushi.pamirs.hr.core.session.HrSimpleSession - 模型Session实现实例(参考下面包的代码示例): pro.shushi.pamirs.hr.core.session ## 导入导出功能 ### 具体实现步骤(包括默认模版和自定义模版) 1、boot工程引入依赖 ``` pro.shushi.pamirs.core pamirs-file2-core ``` 2、yml文件配置 ``` pamirs: # 开启生成默认导入导出模版(也可不开启,不开启需要手动定义模版) file: auto-create-template: true # 安装file模块 boot: modules: - file ``` 3、自定义导出模版,示例参考: ``` pro.shushi.pamirs.ce.hr.core.excel.CustBusinessTripExportTemplate ``` 4、更多导入导出参考:https://doc.oinone.top/oio4/9325.html