# work-hours-tracker **Repository Path**: wxl212/work-hours-tracker ## Basic Information - **Project Name**: work-hours-tracker - **Description**: 专为出差工作人员设计的工作/休息时间记录和管理系统 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-20 - **Last Updated**: 2025-11-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工作时间记录系统 > 专为出差工作人员设计的工作/休息时间记录和管理系统 ## 🎯 项目简介 这是一个帮助出差工作人员记录和管理工作时间、休息时间的Web应用。系统能够智能计算应休时间、实际休息时间和欠休情况,支持复杂的休息记录管理和车程时间处理。 ### ✨ 主要特性 - 🔐 **简单登录**:口令登录,自动用户创建 - 📅 **智能日历**:集成中国法定节假日,直观显示工作/休息状态 - ⏰ **灵活记录**:支持复杂休息场景,智能间隔验证 - 🚗 **车程处理**:休息期间首尾天数可选择性计入休息时间 - 📊 **统计分析**:多维度统计,自定义时间范围查询 - 🎨 **现代界面**:Vue3 + Element Plus,响应式设计 ## 🏗️ 技术架构 ### 前端技术栈 - **Vue 3** - 渐进式JavaScript框架 - **Element Plus** - Vue 3组件库 - **Pinia** - 状态管理 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 - **Vite** - 构建工具 ### 后端技术栈 - **Java 8** - 编程语言 - **Spring Boot 2.7** - 应用框架 - **MyBatis Plus** - ORM框架 - **SaToken** - 权限认证框架 - **MySQL 8.0** - 数据库 - **SpringDoc OpenAPI** - API文档 ## 🚀 快速开始 ### 环境要求 - **前端**:Node.js 18+ - **后端**:Java 8+, Maven 3.6+ - **数据库**:MySQL 8.0+ ### 安装步骤 1. **克隆项目** ```bash git clone https://github.com/18739626704/work-hours-tracker.git cd work-hours-tracker ``` 2. **启动后端** ```bash cd work-hours-backend # 配置数据库连接(修改 application.yml) # 创建数据库和表(执行 src/main/resources/sql/schema.sql) mvn spring-boot:run ``` 后端将在 http://localhost:8081 启动 3. **启动前端** ```bash cd work-hours-front npm install npm run dev ``` 前端将在 http://localhost:8080 启动 ### 数据库配置 1. 创建MySQL数据库: ```sql CREATE DATABASE work_hours DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行数据库脚本: ```bash mysql -u root -p work_hours < work-hours-backend/src/main/resources/sql/schema.sql ``` 3. 修改后端配置文件 `work-hours-backend/src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/work_hours username: your_username password: your_password ``` ## 📖 使用指南 ### 基本流程 1. **登录系统**:输入口令(数字+字母,最多20位) 2. **设置出差开始日期**:选择开始出差的日期 3. **记录休息时间**:添加休息开始和结束日期 4. **查看统计**:实时查看工作天数、休息天数、欠休情况 ### 核心功能 #### 🏖️ 休息记录管理 - **简单记录**:选择开始和结束日期 - **复杂场景**:支持在现有记录间插入新记录 - **车程时间**:休息期间首尾两天可选择计入工作或休息 - **未来预选**:支持一个未来日期的休息预设 #### 📊 统计分析 - **工作天数**:实际工作的天数 - **休息天数**:实际休息的天数(可包含/排除车程) - **应休天数**:周末 + 法定节假日 - 调休工作日 - **欠休天数**:应休 - 实休(负数表示多休了) #### 📅 智能日历 - **节假日集成**:自动获取中国法定节假日和调休信息 - **直观显示**:不同颜色区分工作日、周末、节假日、休息期间 - **便捷操作**:点击日期快速添加/修改休息记录 ## 🔧 开发指南 ### 项目结构 ``` work-hours-tracker/ ├── work-hours-front/ # 前端项目 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia状态管理 │ │ └── main.js # 入口文件 │ └── package.json ├── work-hours-backend/ # 后端项目 │ ├── src/main/java/com/workhours/ │ │ ├── controller/ # 控制器 │ │ ├── service/ # 业务逻辑 │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # 数据访问层 │ │ └── config/ # 配置类 │ └── pom.xml └── README.md ``` ### API文档 启动后端后,访问 http://localhost:8081/swagger-ui.html 查看完整的API文档。 ### 主要API端点 - `POST /api/auth/login` - 用户登录 - `GET /api/user/status` - 获取用户状态 - `POST /api/user/trip-start` - 设置出差开始日期 - `POST /api/rest` - 添加休息记录 - `GET /api/holidays/{year}` - 获取年度节假日 - `GET /api/statistics/default` - 获取统计数据 ## 🤝 贡献指南 欢迎提交Issue和Pull Request! 1. Fork 本仓库 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🙏 致谢 - [提莫科技](http://timor.tech/) - 提供节假日API服务 - [Element Plus](https://element-plus.org/) - 优秀的Vue 3组件库 - [SaToken](https://sa-token.cc/) - 轻量级权限认证框架 ## 📞 联系方式 如有问题或建议,请通过以下方式联系: - 提交 [Issue](https://github.com/18739626704/work-hours-tracker/issues) - 发送邮件至:3224581857@qq.com --- ⭐ 如果这个项目对您有帮助,请给个Star支持一下!