# kpi-360-backend **Repository Path**: fish982000/kpi-360-backend ## Basic Information - **Project Name**: kpi-360-backend - **Description**: 具备高扩展性和灵活性的绩效考核系统,项目基本全是由AI完成 - **Primary Language**: Java - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-06-04 - **Last Updated**: 2026-06-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # KPI-360 后端 绩效考核系统(KPI / OKR / 360 度 / 通用考核)后端服务,基于 DDD 分层架构。 ## 开源协议 本项目采用 **GPL2.0(GNU General Public License)** 协议开源,并加了Commons Clause: > 允许使用、修改、分发,但禁止用于商业目的(包括卖、收费服务、商业产品) - 允许个人/团队用于 **技术学习** 与 **企业内部使用** - **禁止任何形式的商业使用**(包括但不限于:对外销售、SaaS 化对外服务、二次封装售卖等) - 如需 **商业授权** 或定制合作,请联系作者(详见文末知识星球二维码) 二次分发须遵守 GPL 协议,保留版权声明与作者署名。 ## 📸 系统截图 | 模块 | 截图 | |------|------| | 仪表盘(按季度概览) | ![dashboard](./img/dashboard.png) | | 考核模板设计器(维度 / 指标 / 考核方式 / 积分规则) | ![template](./img/templates1.png) | | 考核活动管理(生成关系 → 启动 → 计算成绩) | ![campaign](./img/camp1.png) | | 动态评价表单(按计算方式实时算分) | ![evaluation](./img/evalute.png) | | 我的成绩(扁平实例视图 + 结果确认) | ![my-score](./img/scores.png) | | 权限管理(角色 + 资源树 + 按钮级控制) | ![rbac](./img/resoures2.png) | ## 技术栈 | 类别 | 选型 | 版本 | |---|---|---| | 语言 | Java | 17 | | 框架 | Spring Boot | 3.2.5 | | 持久层 | MyBatis-Plus | 3.5.6 | | 数据库 | MySQL | 8.x | | 缓存 | Redis | 6.x+ | | 权限认证 | Sa-Token (+ Redis Jackson) | 1.38.0 | | 对象映射 | MapStruct | 1.5.5 | | 接口文档 | Knife4j (OpenAPI 3) | 4.4.0 | | 工具库 | Hutool | 5.8.26 | | Excel | EasyExcel | 3.3.4 | | 简化代码 | Lombok | - | | 构建 | Maven | 3.8+ | ### 架构 采用 **DDD(领域驱动设计)四层架构**: ``` facade(接口层 / Controller + VO + Assembler) ↓ application(应用层 / AppService + Command + DTO + Query/View) ↓ domain(领域层 / Entity + Repository 接口 + 领域服务) ↑ infrastructure(基础设施层 / Mapper + DO + Converter + Repository 实现) ``` 依赖方向严格单向:`facade → application → domain ← infrastructure`,领域层不依赖任何技术框架。 ## 部署方式 ### 1. 环境要求 - JDK 17+ - Maven 3.8+ - MySQL 8.x - Redis 6.x+ ### 2. 初始化数据库 > sql 脚本请联系星主 ### 3. 修改配置 编辑 `src/main/resources/application.yml`,修改数据库与 Redis 连接信息: ```yaml spring: datasource: url: jdbc:mysql://127.0.0.1:3306/kpi360?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai username: your_username password: your_password data: redis: host: 127.0.0.1 port: 6379 password: ``` ### 4. 编译与启动 ```bash # 编译 mvn clean compile # 本地启动 mvn spring-boot:run # 打包 mvn clean package -DskipTests # 运行 jar java -jar target/kpi-360-backend-1.0.0.jar ``` 服务默认端口 `8080`,启动后访问: - 接口文档(Knife4j): - 健康检查:(如已开启) ### 5. 生产部署建议 - 使用 `nohup java -jar ... &` 或 `systemd` 托管 - 配合 Nginx 反向代理与前端静态资源同域部署,避免跨域 - 生产环境务必修改默认账号密码、Sa-Token salt 与数据库账号权限 ## 目录结构(简) ``` backend/ ├── doc/ # 设计文档与汇总 ├── src/main/java/com/kpi360/ │ ├── facade/ # 接口层 │ ├── application/ # 应用层 │ ├── domain/ # 领域层 │ ├── infrastructure/ # 基础设施层 │ └── common/ # 通用工具 ├── src/main/resources/ │ ├── application.yml │ └── mapper/ # MyBatis XML └── pom.xml ``` 详细模块说明见 [doc/代码汇总20260522v2.md](doc/代码汇总20260522v2.md)。 ## 联系作者 / 商用授权 扫描下方二维码加入作者 **知识星球**,获取技术答疑、商用授权咨询与版本更新通知: ![知识星球](./img/zsxq.png)