# 绿纤ERP管理系统 ## 项目简介 绿纤ERP管理系统是一个基于现代化技术栈开发的企业资源规划系统,专为绿纤行业量身定制。系统采用前后端分离架构,提供完整的门店管理、业绩统计、工资核算、报表分析等业务管理功能。 ## 🎯 核心功能亮点 - **📊 业绩统计系统** - 门店业绩、个人业绩、金三角业绩等多维度统计 - **💰 工资核算系统** - 健康师底薪、提成、奖励等自动计算 - **📈 报表分析系统** - 可视化图表、趋势分析、排行榜展示 - **🏪 门店管理系统** - 门店信息、归属管理、新店保护 - **👥 人员管理系统** - 健康师管理、金三角团队管理 - **📋 客户管理系统** - 客户信息、会员权益、拓客记录 ## 技术栈 ### 后端技术 - **.NET Core 3.1/5.0** - 跨平台Web框架 - **SqlSugar** - 轻量级ORM框架 - **MySQL** - 关系型数据库 - **JWT** - 身份认证 - **Serilog** - 结构化日志 - **Swagger** - API文档 ### 前端技术 - **Vue 2.6** - 渐进式JavaScript框架 - **Element UI** - 企业级UI组件库 - **Vuex** - 状态管理 - **Vue Router** - 路由管理 - **Axios** - HTTP客户端 - **SCSS** - CSS预处理器 - **ECharts** - 数据可视化图表库 ## 项目结构 ``` lvqianmeiye_ERP/ ├── netcore/ # 后端.NET Core项目 │ └── src/ │ ├── Application/ # 应用层 │ ├── Infrastructure/ # 基础设施层 │ └── Modularity/ # 业务模块层 │ ├── System/ # 系统管理模块 │ ├── Extend/ # 🎯 核心业务模块(绿纤ERP业务逻辑) │ │ ├── NCC.Extend/ # 业务服务层 │ │ ├── NCC.Extend.Entitys/ # 实体模型层 │ │ └── NCC.Extend.Interfaces/ # 接口定义层 │ ├── OAuth/ # 身份认证模块 │ ├── Message/ # 消息中心模块 │ ├── Order/ # 订单管理模块 │ ├── VisualDev/ # 可视化开发模块 │ └── Tenant/ # 多租户支持模块 ├── antis-ncc-admin/ # 前端Vue项目 │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面视图 │ │ │ ├── salaryStatistics/ # 工资统计页面 │ │ │ ├── personalPerformanceStatistics/ # 个人业绩统计 │ │ │ ├── storeTotalPerformanceStatistics/ # 门店总业绩统计 │ │ │ ├── departmentConsumePerformanceStatistics/ # 部门消耗业绩统计 │ │ │ ├── techPerformanceStatistics/ # 科技部业绩统计 │ │ │ ├── storeConsumePerformanceStatistics/ # 门店消耗业绩统计 │ │ │ ├── report/ # 报表分析页面 │ │ │ └── ... # 其他业务页面 │ │ ├── router/ # 路由配置 │ │ └── store/ # 状态管理 │ ├── package.json # 前端依赖配置 │ └── vue.config.js # Vue构建配置 └── html/ # 静态资源 ``` ## 🎯 核心业务模块说明 **Extend模块**是系统的核心业务模块,包含绿纤ERP的所有业务逻辑。该模块采用三层架构设计: ### NCC.Extend(业务服务层) 包含所有业务服务的具体实现,按功能分类: #### 📊 业绩统计类 - `LqStatisticsService` - 核心统计服务(个人业绩、门店业绩、金三角业绩等) - `LqReportService` - 报表分析服务(趋势图、排行榜、仪表盘) #### 💰 工资核算类 - `LqGzService` - 工资核算服务(健康师底薪、提成计算) #### 🏪 门店管理类 - `LqMdxxService` - 门店信息管理服务 - `LqMdXdbhsjService` - 门店新店保护时间管理 #### 👥 人员管理类 - `LqYcsdJsjService` - 金三角设定管理服务 - `LqJinsanjiaoUserService` - 金三角用户绑定管理 #### 📋 客户管理类 - `LqKhxxService` - 客户信息管理服务 - `LqTkjlbService` - 拓客记录管理服务 - `LqEventService` - 拓客活动管理服务 #### 🔧 系统工具类 - `EmailService` - 邮件服务 - `DocumentService` - 文档管理服务 - `BigDataService` - 大数据分析服务 - `WorkLogService` - 工作日志服务 ### NCC.Extend.Entitys(实体模型层) - **Entity/** - 数据库实体模型(包含统计表、工资表等核心实体) - `lq_statistics_personal_performance/` - 个人业绩统计实体 - `lq_statistics_store_total_performance/` - 门店总业绩统计实体 - `lq_statistics_gold_triangle/` - 金三角业绩统计实体 - `lq_statistics_department_consume_performance/` - 部门消耗业绩统计实体 - `lq_statistics_tech_performance/` - 科技部业绩统计实体 - `lq_statistics_store_consume_performance/` - 门店消耗业绩统计实体 - `lq_salary_statistics/` - 工资统计实体 - **Dto/** - 数据传输对象(包含统计、报表等DTO) - **Mapper/** - 对象映射配置 - **Model/** - 业务模型类 ### NCC.Extend.Interfaces(接口定义层) - 定义所有业务服务的接口契约 - 支持依赖注入和单元测试 - 提供清晰的业务边界 ## 环境要求 ### 开发环境 - **Node.js**: 16.20.2 (必须使用此版本) - **.NET Core SDK**: 3.1 或 5.0 - **MySQL**: 5.7 或 8.0 - **Visual Studio 2019/2022** 或 **VS Code** ### 浏览器支持 - Chrome 70+ - Firefox 65+ - Safari 12+ - Edge 79+ ## 快速开始 ### 1. 克隆项目 ```bash git clone [项目地址] cd lvqianmeiye_ERP ``` ### 2. 后端启动 #### 方式一:Visual Studio 1. 打开 `netcore/smart.agriculture.platform.NET.sln` 2. 设置 `NCC.API` 为启动项目 3. 按 F5 运行 #### 方式二:命令行 ```bash cd netcore/src/Application/NCC.API dotnet restore dotnet run ``` ### 3. 前端启动 ```bash cd antis-ncc-admin # 安装依赖 npm install # 启动开发服务器 npm run dev ``` ### 4. 访问系统 - 前端地址:http://localhost:3000 - 后端API:http://localhost:5000 - API文档:http://localhost:5000/antis.doc ## 默认账号 - **管理员账号**:admin - **默认密码**:123456 ## 主要功能模块 > 💡 **说明**:所有业务功能的核心代码都位于 `netcore/src/Modularity/Extend/` 模块中 ### 📊 业绩统计模块 - **个人业绩统计** (`LqStatisticsService`) - 健康师个人业绩统计,包含首单业绩、升单业绩等 - **门店总业绩统计** (`LqStatisticsService`) - 门店整体业绩统计,包含总业绩、欠款金额等 - **金三角业绩统计** (`LqStatisticsService`) - 金三角团队业绩统计和分析 - **部门消耗业绩统计** (`LqStatisticsService`) - 部门消耗业绩统计,包含人头数、人次等 - **科技部业绩统计** (`LqStatisticsService`) - 科技部老师业绩统计 - **门店消耗业绩统计** (`LqStatisticsService`) - 门店消耗业绩统计 ### 💰 工资核算模块 - **工资统计** (`LqGzService`) - 健康师工资核算,包含底薪、提成、奖励等 - **底薪计算** - 根据业绩标准自动计算健康师底薪(一星、二星、三星标准) - **提成计算** - 根据业绩类型计算各类提成(基础业绩、合作业绩、奖励业绩等) - **占比计算** - 队伍业绩与个人总业绩的占比分析 ### 📈 报表分析模块 - **门店业绩趋势** (`LqReportService`) - 门店业绩时间趋势分析 - **门店业绩排行榜** (`LqReportService`) - 门店业绩排名统计 - **健康师业绩趋势** (`LqReportService`) - 健康师个人业绩趋势 - **健康师业绩排行榜** (`LqReportService`) - 健康师业绩排名统计 - **金三角业绩趋势** (`LqReportService`) - 金三角团队业绩趋势 - **金三角业绩排行榜** (`LqReportService`) - 金三角团队排名统计 - **综合仪表盘** (`LqReportService`) - 多维度数据汇总展示 ### 🏪 门店管理模块 - **门店信息管理** (`LqMdxxService`) - 门店基础信息维护 - **门店归属管理** - 门店归属事业部、教育部、科技部等 - **新店保护时间** (`LqMdXdbhsjService`) - 新店保护期管理 ### 👥 人员管理模块 - **金三角设定** (`LqYcsdJsjService`) - 金三角团队配置管理 - **金三角用户绑定** (`LqJinsanjiaoUserService`) - 用户与金三角团队绑定关系 - **顾问身份管理** - 根据金三角绑定自动设置顾问身份 ### 📋 客户管理模块 - **客户信息管理** (`LqKhxxService`) - 客户档案管理 - **拓客记录管理** (`LqTkjlbService`) - 拓客活动记录 - **拓客活动管理** (`LqEventService`) - 拓客活动配置 - **会员权益管理** - 历史会员权益数据管理 ### ⚙️ 系统管理模块(位于System模块) - **用户管理** - 系统用户维护,用户权限管理 - **角色权限** - 权限分配管理,角色权限配置 - **系统配置** - 系统参数设置,基础配置维护 - **日志管理** - 操作日志查看,系统日志分析 ## 开发指南 ### 🎯 核心业务开发(Extend模块) #### 统计服务开发规范 1. **统计表实体** (`NCC.Extend.Entitys/Entity/lq_statistics_*/`) ```csharp [SugarTable("lq_statistics_新统计表")] [Tenant(ClaimConst.TENANT_ID)] public class LqStatistics新统计Entity { [SugarColumn(ColumnName = "F_Id", IsPrimaryKey = true)] public string Id { get; set; } [SugarColumn(ColumnName = "F_StatisticsMonth")] public string StatisticsMonth { get; set; } // 其他统计字段... } ``` 2. **统计DTO对象** (`NCC.Extend.Entitys/Dto/LqStatistics/`) - `Lq新统计ListQueryInput` - 列表查询输入 - `Lq新统计ListOutput` - 列表输出DTO 3. **统计服务实现** (`LqStatisticsService`) ```csharp /// /// 保存新统计数据 /// public async Task Save新统计Statistics(string statisticsMonth) { // 统计逻辑实现 } /// /// 获取新统计列表 /// public async Task Get新统计StatisticsList(Lq新统计ListQueryInput input) { // 查询逻辑实现 } ``` #### 报表服务开发规范 1. **报表接口定义** (`NCC.Extend.Interfaces/LqReport/`) ```csharp public interface ILqReportService { Task Get新报表Data(新报表Input input); } ``` 2. **报表服务实现** (`LqReportService`) ```csharp [HttpPost("get-新报表-data")] public async Task Get新报表Data(新报表Input input) { // 报表数据查询和格式化 } ``` #### 前端页面开发规范 1. **统计页面组件** (`antis-ncc-admin/src/views/新统计Statistics/`) - `index.vue` - 统计列表页面 - 使用 `NCC-table` 组件 - 支持分页、筛选、导出功能 2. **报表页面组件** (`antis-ncc-admin/src/views/report/`) - 集成到现有报表页面 - 使用 ECharts 图表组件 - 支持时间筛选、类型切换 3. **API接口** (`antis-ncc-admin/src/api/`) ```javascript // 统计接口 export function get新统计StatisticsList(data) { return request({ url: '/api/Extend/LqStatistics/get-新统计-statistics-list', method: 'post', data }) } // 报表接口 export function get新报表Data(data) { return request({ url: '/api/Extend/LqReport/get-新报表-data', method: 'post', data }) } ``` ### 前端开发 ```bash # 开发模式 npm run dev # 构建生产版本 npm run build # 代码检查 npm run lint ``` ### 后端开发 ```bash # 还原包 dotnet restore # 编译项目 dotnet build # 运行项目 dotnet run # 发布项目 dotnet publish -c Release ``` ## 配置说明 ### 数据库配置 修改 `netcore/src/Application/NCC.API/appsettings.json` 中的连接字符串: ```json { "ConnectionStrings": { "DefaultConnection": "Database=lqerp;Data Source=localhost;Port=3306;User Id=root;Password=yourpassword;Charset=utf8;" } } ``` ### 前端代理配置 修改 `antis-ncc-admin/vue.config.js` 中的代理地址: ```javascript proxy: { '/dev': { target: 'http://localhost:5000', // 后端API地址 changeOrigin: true, pathRewrite: { '^/dev': '' } } } ``` ## 部署说明 ### 后端部署 1. 发布项目:`dotnet publish -c Release` 2. 配置数据库连接字符串 3. 部署到IIS或Linux服务器 ### 前端部署 1. 构建项目:`npm run build` 2. 将 `dist` 目录部署到Web服务器 3. 配置Nginx或IIS反向代理 ## 开发规范 ### 📋 项目开发规范 - **ID生成规范**: 必须使用 `YitIdHelper.NextId().ToString()` 生成ID,禁止使用 `Guid.NewGuid().ToString()` - **API接口规范**: GET请求使用data字段传参,不使用params - **权限控制**: 所有数据查询必须添加园区权限过滤 - **数据一致性**: 统计数据和列表数据必须使用相同的过滤条件 - **UI一致性**: 所有页面必须使用统一的布局和样式规范 - **性能优化**: 所有列表接口支持分页,避免大数据量查询 - **安全防护**: 使用SqlSugar ORM防止SQL注入 ### 🗄️ 数据库规范 - **表命名**: 业务前缀 + 功能名称 (如: lq_) - **字段命名**: 驼峰化 - **时间字段**: 统一使用 DateTime 类型 - **删除标记**: `base_organize.DeleteMark` 为 `null` 表示未删除 - **SQL查询验证**: 对于统计类型的SQL查询,在提交代码前必须先使用MCP MySQL工具执行验证 ### 🎨 前端开发规范 - **组件开发**: views 与 components 分离,弹窗、二级页面必须单独创建 Vue 文件 - **文件命名**: 使用 kebab-case (如: user-dialog.vue) - **UI规范**: 统一使用 NCC-table,标签右对齐,卡片高度100px,内边距12px,圆角12px - **性能要求**: 启用懒加载和代码分割,页面加载时间 < 3s ## 常见问题 ### Q: 前端启动失败 A: 确保使用Node.js 16.20.2版本,其他版本可能不兼容 ### Q: 后端连接数据库失败 A: 检查数据库连接字符串和MySQL服务状态 ### Q: 权限验证失败 A: 检查JWT配置和Token有效期设置 ### Q: 页面显示异常 A: 检查浏览器控制台错误信息和网络请求状态 ### Q: 统计SQL执行失败 A: 使用MCP MySQL工具先验证SQL语法和字段名是否正确 ### Q: 报表页面404错误 A: 检查LqReportService是否正确实现ITransient接口并注册到DI容器 ## 技术支持 如有技术问题,请联系开发团队或查看项目文档。 ## 📊 已完成功能 ### ✅ 核心统计功能 - [x] 个人业绩统计 - 健康师个人业绩统计,包含首单业绩、升单业绩等 - [x] 门店总业绩统计 - 门店整体业绩统计,包含总业绩、欠款金额等 - [x] 金三角业绩统计 - 金三角团队业绩统计和分析 - [x] 部门消耗业绩统计 - 部门消耗业绩统计,包含人头数、人次等 - [x] 科技部业绩统计 - 科技部老师业绩统计 - [x] 门店消耗业绩统计 - 门店消耗业绩统计 ### ✅ 工资核算功能 - [x] 工资统计 - 健康师工资核算,包含底薪、提成、奖励等 - [x] 底薪计算 - 根据业绩标准自动计算健康师底薪(一星、二星、三星标准) - [x] 提成计算 - 根据业绩类型计算各类提成(基础业绩、合作业绩、奖励业绩等) - [x] 占比计算 - 队伍业绩与个人总业绩的占比分析 ### ✅ 报表分析功能 - [x] 门店业绩趋势 - 门店业绩时间趋势分析 - [x] 门店业绩排行榜 - 门店业绩排名统计 - [x] 健康师业绩趋势 - 健康师个人业绩趋势 - [x] 健康师业绩排行榜 - 健康师业绩排名统计 - [x] 金三角业绩趋势 - 金三角团队业绩趋势 - [x] 金三角业绩排行榜 - 金三角团队排名统计 - [x] 综合仪表盘 - 多维度数据汇总展示 ### ✅ 系统优化 - [x] 删除废弃代码 - 清理lq_ryzl、lq_tk_xsc等废弃模块 - [x] 修复SQL语法 - 解决MySQL兼容性问题 - [x] 修复字段映射 - 解决数据库字段名不匹配问题 - [x] 优化前端页面 - 修复布局、分页、样式等问题 ## 版本信息 - **当前版本**:v2.0.0 - **最后更新**:2024年12月 - **维护状态**:活跃开发中 - **主要更新**:完成业绩统计、工资核算、报表分析等核心功能 --- **注意**:本项目仅供学习和内部使用,请勿用于商业用途。