# attendance **Repository Path**: anyin891/attendance ## Basic Information - **Project Name**: attendance - **Description**: attendance - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-04-14 - **Last Updated**: 2025-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 企业考勤管理系统 (Enterprise Attendance Management System) ## 项目简介 (Project Introduction) 企业考勤管理系统是一个现代化的考勤解决方案,旨在满足企业日益增长的考勤管理需求。本系统借鉴了钉钉、飞书等主流考勤应用的设计理念,为企业提供灵活、智能的考勤管理方案。 ### 主要特点 (Key Features) - 🕒 灵活班次:支持多种班次设定和跨天考勤 - 📍 智能打卡:支持GPS定位、WiFi等多种打卡方式 - 📊 数据分析:提供详细的考勤统计和分析功能 - ✅ 审批流程:灵活的审批流程配置 - 🔔 智能提醒:自动化的考勤提醒和异常通知 ## 技术栈 (Tech Stack) - 前端 (Frontend): - Vue 3 - Vue Router - Pinia - Element Plus - Axios - Vite - TypeScript - 后端 (Backend): - Java 17 - Spring Boot 3.x - Spring Security - Spring Data JPA - MyBatis - MySQL 8.0 - Maven - JWT - OAuth 2.0 - Redis ## 功能模块 (Features) ### 1. 考勤规则设置 (Attendance Rules) - 班次管理 - 考勤地点设置:可针对每个人、部门、组织、公司配置考勤地点,可以配置多个,可以配置地点范围(比如某个定位方圆200米) - 考勤方式配置:gps打卡、WiFi打卡 - 班次策略配置:每个单位可以设定一个或多个班次策略,班次策略支持固定班次和轮班次。固定班次支持跨天班次,轮班类型支持两班倒、三班倒和自定义轮班(允许根据企业特殊需求,灵活设置不同班次的轮换顺序、周期以及每个班次的工作时长等)。 - 人员班次配置:支持员工分组排班,将员工按照部门、岗位等属性进行分组,然后对不同组设置不同的班次,提高排班效率。 可以针对特殊员工群体(如新员工、实习生等)设置专门的班次安排。 允许为个别员工单独设置特殊班次,满足员工的特殊工作需求或临时任务安排。 可查看员工的历史班次记录,以便进行合理的班次调整和规划。 ### 2. 考勤记录与统计 (Attendance Records & Statistics) - 打卡记录管理 - 考勤数据统计 - 异常考勤分析 ### 3. 审批与请假管理 (Approval & Leave Management) - 请假申请 - 加班申请 - 调休管理 - 补卡申请 - 审批流程配置 ### 4. 打卡 (Attendance) - 移动端打卡 - 位置记录 - 外勤审批 - 外勤审批通过后,可以自动完成打卡 ### 5. 通知与提醒 (Notifications) - 打卡提醒 - 异常提醒 - 审批结果通知 ## 系统要求 (System Requirements) - JDK >= 17 - Maven >= 3.8 - MySQL >= 8.0 - Redis >= 6.0 - Node.js >= 16.0.0 - Vue >= 3.0.0 ## 安装说明 (Installation) 1. 克隆项目 (Clone the repository) ```bash git clone [repository-url] ``` 2. 安装依赖 (Install dependencies) ```bash # 后端依赖 cd server mvn clean install # 前端依赖 cd ../client npm install # 移动端依赖 cd ../mobile npm install ``` 3. 配置环境变量 (Configure environment variables) ```bash # 复制环境变量模板 cp .env.example .env # 编辑 .env 文件,填入必要的配置信息 ``` 4. 启动服务 (Start services) ```bash # 启动后端服务 cd server mvn spring-boot:run # 启动前端服务 cd ../client npm run dev # 启动移动端服务 cd ../mobile npm start ``` ## 项目结构 (Project Structure) ``` attendance/ ├── client/ # Vue前端 │ ├── src/ # 源代码 │ │ ├── api/ # API接口 │ │ ├── assets/ # 静态资源 │ │ ├── components/ # 组件 │ │ ├── router/ # 路由配置 │ │ ├── stores/ # Pinia状态管理 │ │ ├── types/ # TypeScript类型定义 │ │ ├── utils/ # 工具函数 │ │ └── views/ # 页面视图 │ ├── public/ # 公共资源 │ └── package.json # 项目依赖 ├── server/ # 后端服务 ├── docs/ # 项目文档 └── README.md # 项目说明 ``` ## 性能指标 (Performance Metrics) - 响应时间:用户操作响应 < 1秒 - 并发支持:支持1000+用户同时在线 - 数据安全:采用AES加密算法 - 系统可用性:99.9% ## 安全特性 (Security Features) - 数据加密传输 - 基于角色的访问控制 (RBAC) - JWT身份认证 - 定期安全审计 ## 贡献指南 (Contributing) ## 开发规范 (Development Standards) ### Vue 开发规范 #### 1. 项目结构规范 - 使用 `src` 目录存放源代码 - 使用 `components` 目录存放可复用组件 - 使用 `views` 目录存放页面级组件 - 使用 `stores` 目录存放 Pinia 状态管理 - 使用 `types` 目录存放 TypeScript 类型定义 - 使用 `utils` 目录存放工具函数 - 使用 `api` 目录存放 API 接口定义 #### 2. 命名规范 - 组件名使用 PascalCase(如:`UserProfile.vue`) - 文件名使用 kebab-case(如:`user-profile.vue`) - 变量名使用 camelCase - 常量使用 UPPER_SNAKE_CASE - CSS 类名使用 kebab-case #### 3. 组件开发规范 - 使用 `