点狮OA:企业级开源OA系统推荐
作为一名技术从业者,我一直关注着国内开源OA系统的发展。今天要向大家推荐的是一款功能全面、技术先进的企业级OA系统——点狮OA。它不仅提供了完善的办公自动化功能,更在技术架构和代码质量上达到了工业级水准。
相关链接
- 🌐 官网:http://www.dianshixinxi.com/
- 📱 演示站:http://admin.dianshixinxi.com:90/
源码地址
- 🎨 Gitee:https://gitee.com/glorylion/JFinalOA
- 💻 GitCode:https://gitcode.com/Glory_Lion/pointlion-cloud
为什么选择点狮OA?
技术架构:微服务+多端适配
点狮OA采用了业界领先的Spring Cloud Alibaba微服务架构,支持:
- 后端架构:JDK 8 + Spring Boot 2.7 / JDK 17+21 + Spring Boot 3.2
- 前端技术:Vue3 + Element-Plus、Vue3 + Ant Design Vue、Vue2 + Element UI
- 移动端:基于uni-app实现,一份代码支持APP、小程序、H5多端适配
- 数据库兼容:MySQL、Oracle、PostgreSQL、SQL Server、达梦DM、TiDB等
核心功能模块
点狮OA涵盖了企业办公的方方面面,功能点超过200+个:
1. 办公自动化(OA)
// 以日程管理为例,展示技术实现@RestController@RequestMapping("/oa/schedule")publicclassScheduleInstanceController{@AutowiredprivateScheduleInstanceServicescheduleService;/** * 创建日程安排 */@PostMapping("/create")@Operation(summary="创建日程")@PreAuthorize("@ss.hasPermission('oa:schedule:create')")publicCommonResult<String>createSchedule(@Valid@RequestBodyScheduleInstanceCreateReqVOcreateReqVO){// 支持日程分享给其他用户returnsuccess(scheduleService.createSchedule(createReqVO));}}核心OA功能包括:
- 日程管理:个人日程安排与分享
- 通知公告:企业内部通知发布与查看
- 日报周报:工作汇报与审批流程
- 各类申请:请假、出差、用车、会议室、费用报销等
- 公文管理:收文登记、发文拟稿、审核签发、归档管理
2. 人力资源管理(HRM)
- 员工档案:完整的员工信息管理(教育经历、工作经历、家庭成员等)
- 考勤管理:打卡签到、地图定位、考勤统计
- 薪酬管理:工资条、工资计算、工资发放
- 招聘管理:职位发布、简历管理、面试安排
- 绩效考核:考核指标设置、绩效评分、结果查看
3. 审批流程引擎
点狮OA集成了强大的Flowable工作流引擎,支持:
<!-- Flowable流程配置示例 --><beanid="processEngine"class="org.flowable.spring.ProcessEngineFactoryBean"><propertyname="processEngineConfiguration"ref="processEngineConfiguration"/></bean><!-- 支持会签、或签、依次审批等复杂流程 --><serviceTaskid="approvalTask"name="审批任务"><multiInstanceLoopCharacteristicsisSequential="false"><loopCardinality>${nrOfInstances}</loopCardinality><completionCondition>${nrOfCompletedInstances >= nrOfInstances}</completionCondition></multiInstanceLoopCharacteristics></serviceTask>特色功能:
- 双设计器:仿钉钉/飞书的轻量设计器 + BPMN标准设计器
- 复杂审批:会签、或签、依次审批、驳回、转办、委派
- 超时处理:自动审批、提醒、超时处理
- 子流程:支持同步/异步子流程
4. 多租户支持
// 多租户架构实现示例@Component@AspectpublicclassTenantAspect{@Around("@annotation(tenantIgnore)")publicObjectaround(ProceedingJoinPointpoint,TenantIgnoretenantIgnore)throwsThrowable{// 多租户数据隔离逻辑LongtenantId=TenantContextHolder.getTenantId();// 修改SQL语句添加租户条件returnpoint.proceed();}}- SaaS支持:完整的租户隔离机制
- 租户套餐:自定义每个租户的权限
- 数据权限:支持按部门、岗位等维度的数据权限控制
技术亮点
1. 代码质量
- 113770行Java代码,42462行代码注释
- 遵循《阿里巴巴Java开发手册》规范
- 完整的单元测试覆盖
// 代码示例:统一的API响应格式@DatapublicclassCommonResult<T>{privatestaticfinalintSUCCESS_CODE=0;privatestaticfinalStringSUCCESS_MSG="操作成功";@ApiModelProperty(value="响应码")privateIntegercode;@ApiModelProperty(value="响应消息")privateStringmsg;@ApiModelProperty(value="响应数据")privateTdata;publicstatic<T>CommonResult<T>success(Tdata){CommonResult<T>result=newCommonResult<>();result.code=SUCCESS_CODE;result.msg=SUCCESS_MSG;result.data=data;returnresult;}}2. 性能优化
- Redis缓存:提升系统性能
- 数据库优化:MyBatis Plus增强,支持动态数据源
- 服务保障:Sentinel限流、熔断、降级
- 分布式锁:基于Redisson实现
// 分布式锁使用示例@ServicepublicclassOrderServiceImpl{@AutowiredprivateRedissonClientredissonClient;publicvoidcreateOrder(Orderorder){RLocklock=redissonClient.getLock("order:create:"+order.getUserId());try{// 尝试加锁,最多等待5秒,锁自动释放时间10秒if(lock.tryLock(5,10,TimeUnit.SECONDS)){// 业务逻辑处理processOrder(order);}}finally{lock.unlock();}}}3. 扩展性设计
- 模块化设计:清晰的模块划分
- 代码生成器:一键生成前后端代码
- 插件化架构:支持自定义扩展
部署方案
点狮OA支持多种部署方式:
# Docker Compose部署示例version:'3'services:# MySQL数据库mysql:image:mysql:8.0environment:MYSQL_ROOT_PASSWORD:rootvolumes:-mysql-data:/var/lib/mysql# Redis缓存redis:image:redis:6.0command:redis-server--appendonly yesvolumes:-redis-data:/data# Nacos注册中心nacos:image:nacos/nacos-server:2.3.2environment:MODE:standaloneports:-"8848:8848"# 点狮OA服务pointlion-oa:image:pointlion/pointlion-oa:latestports:-"8080:8080"depends_on:-mysql-redis-nacos实战案例
企业日常办公场景
- 请假审批:员工发起请假 → 主管审批 → HR备案 → 自动更新考勤
- 会议室预约:查看会议室状态 → 选择时间段 → 填写会议信息 → 自动发送通知
- 费用报销:上传发票 → 填写报销信息 → 财务审核 → 自动生成报销记录
技术实现细节
// 请假审批实现示例@ServicepublicclassLeaveApplyServiceImpl{@AutowiredprivateProcessRuntimeprocessRuntime;@AutowiredprivateTaskRuntimetaskRuntime;/** * 发起请假流程 */@Transactional(rollbackFor=Exception.class)publicStringstartLeaveProcess(LeaveApplyDTOleaveApply){// 1. 启动流程实例ProcessInstanceprocessInstance=processRuntime.start(ProcessPayloadBuilder.start().withProcessDefinitionKey("leaveApproval").withVariable("leaveType",leaveApply.getType()).withVariable("days",leaveApply.getDays()).withVariable("reason",leaveApply.getReason()).build());// 2. 保存请假申请记录saveLeaveApply(leaveApply,processInstance.getId());// 3. 发送待办通知notifyNextAssignee(processInstance.getId());returnprocessInstance.getId();}/** * 审批请假申请 */publicvoidapproveLeave(StringtaskId,booleanapproved,Stringcomment){TaskPayloadBuildertaskPayload=TaskPayloadBuilder.complete().withTaskId(taskId).withVariable("approved",approved).withVariable("comment",comment);taskRuntime.complete(taskPayload);// 更新请假状态updateLeaveStatus(taskId,approved);}}总结
点狮OA作为一款企业级开源OA系统,具有以下优势:
- 功能全面:涵盖OA、HRM、CRM、ERP等多个业务场景
- 技术先进:基于Spring Cloud Alibaba微服务架构
- 代码质量高:规范的代码风格,完善的注释
- 扩展性强:支持多租户、多端适配
- 社区活跃:持续更新,问题响应及时
无论是企业自建OA系统,还是开发者学习企业级应用开发,点狮OA都是一个值得选择的优秀开源项目。
项目信息:
- 开源协议:MIT License
- 技术栈:Spring Boot 2.7 + Spring Cloud Alibaba + Vue3 + Element-Plus
- 支持数据库:MySQL、Oracle、PostgreSQL、DM、TiDB等
如果您觉得这个项目对您有帮助,别忘了给项目点个Star,这是对开源作者最大的支持和鼓励!