Commit ba386929de370339c97ad794d424718aeca175d0

Authored by “wangming”
1 parent 073fdd9a

docs: update README.md for project overview and structure

- Simplified project description to focus on core functionalities of the ERP system.
- Revised the project structure section for clarity and organization.
- Updated environment requirements and quick start instructions for better accessibility.
README.md
1 -# 绿纤美业ERP管理系统  
2 -  
3 -## 📋 项目简介  
4 -  
5 -绿纤美业ERP管理系统是一个基于现代化技术栈开发的企业资源规划系统,专为绿纤美业行业量身定制。系统采用前后端分离架构,提供完整的门店管理、业绩统计、工资核算、报表分析、客户管理等业务管理功能。  
6 -  
7 -**项目状态**:✅ 生产环境运行中 | 📅 最后更新:2025年1月  
8 -  
9 -## 🎯 核心功能模块  
10 -  
11 -### 📊 业绩统计系统  
12 -- **个人业绩统计** - 健康师个人业绩统计,包含首单业绩、升单业绩等  
13 -- **门店总业绩统计** - 门店整体业绩统计,包含总业绩、欠款金额等  
14 -- **金三角业绩统计** - 金三角团队业绩统计和分析  
15 -- **部门消耗业绩统计** - 部门消耗业绩统计,包含人头数、人次等  
16 -- **科技部业绩统计** - 科技部老师业绩统计  
17 -- **门店消耗业绩统计** - 门店消耗业绩统计  
18 -  
19 -### 💰 工资核算系统  
20 -- **健康师工资核算** - 健康师底薪、提成、奖励等自动计算  
21 -- **店长工资核算** - 店长工资计算,包含底薪、提成、奖励等  
22 -- **主任工资核算** - 主任工资计算,包含底薪、提成、奖励等  
23 -- **大项目主管工资核算** - 大项目主管工资计算  
24 -- **科技部总经理工资核算** - 科技部总经理工资计算  
25 -- **事业部总经理工资核算** - 事业部总经理工资计算  
26 -  
27 -### 📈 报表分析系统  
28 -- **门店业绩趋势** - 门店业绩时间趋势分析  
29 -- **门店业绩排行榜** - 门店业绩排名统计  
30 -- **健康师业绩趋势** - 健康师个人业绩趋势  
31 -- **健康师业绩排行榜** - 健康师业绩排名统计  
32 -- **金三角业绩趋势** - 金三角团队业绩趋势  
33 -- **综合仪表盘** - 多维度数据汇总展示  
34 -  
35 -### 🏪 门店管理系统  
36 -- **门店信息管理** - 门店基础信息维护  
37 -- **门店归属管理** - 门店归属事业部、教育部、科技部等  
38 -- **新店保护时间** - 新店保护期管理  
39 -- **门店股份统计** - 门店股份统计和分析  
40 -  
41 -### 👥 人员管理系统  
42 -- **金三角设定** - 金三角团队配置管理  
43 -- **金三角用户绑定** - 用户与金三角团队绑定关系  
44 -- **顾问身份管理** - 根据金三角绑定自动设置顾问身份  
45 -  
46 -### 📋 客户管理系统  
47 -- **客户信息管理** - 客户档案管理  
48 -- **拓客记录管理** - 拓客活动记录  
49 -- **拓客活动管理** - 拓客活动配置  
50 -- **会员权益管理** - 历史会员权益数据管理  
51 -- **用户画像** - 会员画像数据分析和展示  
52 -  
53 -### 🔧 其他业务模块  
54 -- **合同管理系统** - 合同信息管理  
55 -- **合作成本管理** - 合作成本表管理  
56 -- **店内支出管理** - 店内支出表管理  
57 -- **库存使用审批** - 库存使用审批流程  
58 -- **年度汇总统计** - 年度经营统计分析  
59 -  
60 -## 🛠 技术栈  
61 -  
62 -### 后端技术  
63 -- **.NET Core 3.1/5.0** - 跨平台Web框架  
64 -- **SqlSugar** - 轻量级ORM框架  
65 -- **MySQL** - 关系型数据库  
66 -- **JWT** - 身份认证  
67 -- **Serilog** - 结构化日志  
68 -- **Swagger** - API文档  
69 -  
70 -### 前端技术  
71 -- **Vue 2.6** - 渐进式JavaScript框架  
72 -- **Element UI** - 企业级UI组件库  
73 -- **Vuex** - 状态管理  
74 -- **Vue Router** - 路由管理  
75 -- **Axios** - HTTP客户端  
76 -- **SCSS** - CSS预处理器  
77 -- **ECharts** - 数据可视化图表库  
78 -  
79 -### 移动端  
80 -- **uni-app** - 跨平台移动应用框架  
81 -- **微信小程序** - 支持微信小程序平台  
82 -  
83 -## 📁 项目结构 1 +# 绿纤美业 ERP
84 2
85 -```  
86 -lvqianmeiye_ERP/  
87 -├── netcore/ # 后端.NET Core项目  
88 -│ └── src/  
89 -│ ├── Application/ # 应用层  
90 -│ ├── Infrastructure/ # 基础设施层  
91 -│ └── Modularity/ # 业务模块层  
92 -│ ├── System/ # 系统管理模块  
93 -│ ├── Extend/ # 🎯 核心业务模块(绿纤ERP业务逻辑)  
94 -│ │ ├── NCC.Extend/ # 业务服务层  
95 -│ │ ├── NCC.Extend.Entitys/ # 实体模型层  
96 -│ │ └── NCC.Extend.Interfaces/ # 接口定义层  
97 -│ ├── OAuth/ # 身份认证模块  
98 -│ ├── Message/ # 消息中心模块  
99 -│ ├── Order/ # 订单管理模块  
100 -│ ├── VisualDev/ # 可视化开发模块  
101 -│ └── Tenant/ # 多租户支持模块  
102 -├── antis-ncc-admin/ # 前端Vue管理后台  
103 -│ ├── src/  
104 -│ │ ├── api/ # API接口  
105 -│ │ ├── components/ # 公共组件  
106 -│ │ ├── views/ # 页面视图  
107 -│ │ │ ├── salaryStatistics/ # 工资统计页面  
108 -│ │ │ ├── personalPerformanceStatistics/ # 个人业绩统计  
109 -│ │ │ ├── storeTotalPerformanceStatistics/ # 门店总业绩统计  
110 -│ │ │ ├── departmentConsumePerformanceStatistics/ # 部门消耗业绩统计  
111 -│ │ │ ├── techPerformanceStatistics/ # 科技部业绩统计  
112 -│ │ │ ├── storeConsumePerformanceStatistics/ # 门店消耗业绩统计  
113 -│ │ │ ├── report/ # 报表分析页面  
114 -│ │ │ └── extend/ # 其他业务页面  
115 -│ │ ├── router/ # 路由配置  
116 -│ │ └── store/ # 状态管理  
117 -│ ├── package.json # 前端依赖配置  
118 -│ └── vue.config.js # Vue构建配置  
119 -├── 绿纤uni-app/ # 移动端uni-app项目  
120 -│ ├── pages/ # 页面文件  
121 -│ ├── components/ # 组件  
122 -│ ├── apis/ # API接口  
123 -│ └── service/ # 服务层  
124 -├── 绿纤html/ # 静态HTML页面  
125 -│ ├── appointment.html # 预约页面  
126 -│ ├── expansion.html # 拓客页面  
127 -│ ├── member-consume.html # 会员消耗页面  
128 -│ └── ... # 其他页面  
129 -├── docs/ # 📚 项目文档  
130 -│ ├── 数据库说明.md # 数据库文档  
131 -│ ├── 工资计算规则梳理.md # 工资计算规则文档  
132 -│ ├── 接口文档.md # API接口文档  
133 -│ └── ... # 其他需求文档  
134 -├── scripts/ # 🔧 脚本工具  
135 -│ ├── sh/ # Shell测试脚本  
136 -│ │ ├── test_*.sh # 接口测试脚本  
137 -│ │ └── verify_*.sh # 数据验证脚本  
138 -│ └── py/ # Python工具脚本  
139 -│ ├── export_*.py # 数据导出脚本  
140 -│ └── generate_*.py # 数据生成脚本  
141 -├── sql/ # 📊 SQL脚本  
142 -│ ├── 表结构.sql # 数据库表结构  
143 -│ ├── 初始化数据.sql # 初始化数据脚本  
144 -│ └── ... # 其他SQL脚本  
145 -├── excel/ # 📄 Excel模板文件  
146 -│ ├── 健康师额外数据模板.xlsx  
147 -│ ├── 合作成本表.xlsx  
148 -│ └── ... # 其他模板文件  
149 -├── ExportFiles/ # 📤 导出文件目录  
150 -├── PROJECT_RULES.md # 项目开发规范  
151 -└── README.md # 项目说明文档  
152 -``` 3 +> 面向绿纤美业的企业资源规划系统,前后端分离,覆盖门店管理、业绩统计、工资核算、报表分析与客户管理等核心业务。
153 4
154 -## 🎯 核心业务模块说明 5 +**状态**:生产环境运行中 · **版本**:v2.5.0 · **更新**:2025年1月
155 6
156 -**Extend模块**是系统的核心业务模块,包含绿纤ERP的所有业务逻辑。该模块采用三层架构设计: 7 +---
157 8
158 -### NCC.Extend(业务服务层) 9 +## 功能概览
159 10
160 -#### 📊 业绩统计类  
161 -- `LqStatisticsService` - 核心统计服务(个人业绩、门店业绩、金三角业绩等)  
162 -- `LqReportService` - 报表分析服务(趋势图、排行榜、仪表盘) 11 +| 模块 | 说明 |
  12 +|--------------|------|
  13 +| **业绩统计** | 个人 / 门店总 / 金三角 / 部门消耗 / 科技部 / 门店消耗业绩统计 |
  14 +| **工资核算** | 健康师、店长、主任、大项目主管、科技部总经理、事业部总经理工资计算 |
  15 +| **报表分析** | 门店/健康师/金三角业绩趋势、排行榜、综合仪表盘 |
  16 +| **门店管理** | 门店信息、归属管理、新店保护、股份统计 |
  17 +| **人员管理** | 金三角设定与用户绑定、顾问身份管理 |
  18 +| **客户管理** | 客户档案、拓客记录与活动、会员权益、用户画像 |
  19 +| **其他** | 合同、合作成本、店内支出、库存使用审批、年度汇总 |
163 20
164 -#### 💰 工资核算类  
165 -- `LqGzService` - 健康师工资核算服务  
166 -- `LqStoreManagerSalaryService` - 店长工资核算服务  
167 -- `LqDirectorSalaryService` - 主任工资核算服务  
168 -- `LqMajorProjectDirectorSalaryService` - 大项目主管工资核算服务  
169 -- `LqTechGeneralManagerSalaryService` - 科技部总经理工资核算服务  
170 -- `LqBusinessUnitManagerSalaryService` - 事业部总经理工资核算服务 21 +---
171 22
172 -#### 🏪 门店管理类  
173 -- `LqMdxxService` - 门店信息管理服务  
174 -- `LqMdXdbhsjService` - 门店新店保护时间管理 23 +## 技术栈
175 24
176 -#### 👥 人员管理类  
177 -- `LqYcsdJsjService` - 金三角设定管理服务  
178 -- `LqJinsanjiaoUserService` - 金三角用户绑定管理 25 +| 端 | 技术 |
  26 +|--------|------|
  27 +| **后端** | .NET Core 3.1/5.0 · SqlSugar · MySQL · JWT · Serilog · Swagger |
  28 +| **前端** | Vue 2.6 · Element UI · Vuex · Vue Router · Axios · SCSS · ECharts |
  29 +| **移动端** | uni-app(支持微信小程序) |
179 30
180 -#### 📋 客户管理类  
181 -- `LqKhxxService` - 客户信息管理服务  
182 -- `LqTkjlbService` - 拓客记录管理服务  
183 -- `LqEventService` - 拓客活动管理服务 31 +---
184 32
185 -#### 🔧 系统工具类  
186 -- `EmailService` - 邮件服务  
187 -- `DocumentService` - 文档管理服务  
188 -- `BigDataService` - 大数据分析服务  
189 -- `WorkLogService` - 工作日志服务 33 +## 项目结构
190 34
191 -### NCC.Extend.Entitys(实体模型层)  
192 -- **Entity/** - 数据库实体模型  
193 -- **Dto/** - 数据传输对象  
194 -- **Mapper/** - 对象映射配置  
195 -- **Model/** - 业务模型类 35 +```
  36 +lvqianmeiye_ERP/
  37 +├── netcore/ # 后端
  38 +│ └── src/
  39 +│ ├── Application/ # 应用入口(NCC.API)
  40 +│ ├── Infrastructure/ # 基础设施(SqlSugar、JWT、日志等)
  41 +│ └── Modularity/
  42 +│ ├── Extend/ # 绿纤 ERP 核心业务(NCC.Extend / Entitys / Interfaces)
  43 +│ ├── System/ # 系统管理
  44 +│ ├── OAuth/ # 认证
  45 +│ └── ...
  46 +├── antis-ncc-admin/ # 前端管理后台(Vue)
  47 +│ └── src/
  48 +│ ├── api/ # 接口封装
  49 +│ ├── views/ # 页面(业绩、工资、报表、门店、客户等)
  50 +│ ├── components/ # 公共组件
  51 +│ └── router/、store/
  52 +├── 绿纤uni-app/ # 移动端
  53 +├── docs/ # 项目文档(数据库说明、工资规则、接口文档等)
  54 +├── scripts/ # Shell 测试脚本、Python 工具脚本
  55 +├── sql/ # 表结构、初始化、迁移、统计等 SQL
  56 +├── excel/ # Excel 模板
  57 +└── PROJECT_RULES.md # 开发规范(必读)
  58 +```
196 59
197 -## 🚀 快速开始 60 +---
198 61
199 -### 环境要求 62 +## 快速开始
200 63
201 -#### 开发环境  
202 -- **Node.js**: 16.20.2 (⚠️ 必须使用此版本,其他版本可能不兼容)  
203 -- **.NET Core SDK**: 3.1 或 5.0  
204 -- **MySQL**: 5.7 或 8.0  
205 -- **Visual Studio 2019/2022** 或 **VS Code** 64 +### 环境要求
206 65
207 -#### 浏览器支持  
208 -- Chrome 70+  
209 -- Firefox 65+  
210 -- Safari 12+  
211 -- Edge 79+ 66 +- **Node.js**:16.20.2(必须,其他版本可能不兼容)
  67 +- **.NET Core SDK**:3.1 或 5.0
  68 +- **MySQL**:5.7 或 8.0
  69 +- **IDE**:Visual Studio 2019/2022 或 VS Code
212 70
213 -### 1. 克隆项目 71 +### 克隆与启动
214 72
215 ```bash 73 ```bash
216 git clone [项目地址] 74 git clone [项目地址]
217 cd lvqianmeiye_ERP 75 cd lvqianmeiye_ERP
218 ``` 76 ```
219 77
220 -### 2. 后端启动  
221 -  
222 -#### 方式一:Visual Studio  
223 -1. 打开 `netcore/smart.agriculture.platform.NET.sln`  
224 -2. 设置 `NCC.API` 为启动项目  
225 -3. 按 F5 运行 78 +**后端**
226 79
227 -#### 方式二:命令行  
228 ```bash 80 ```bash
229 cd netcore/src/Application/NCC.API 81 cd netcore/src/Application/NCC.API
230 dotnet restore 82 dotnet restore
231 dotnet run 83 dotnet run
232 ``` 84 ```
233 85
234 -### 3. 前端启动 86 +或使用 Visual Studio:打开 `netcore/smart.agriculture.platform.NET.sln`,将 `NCC.API` 设为启动项目,F5 运行。
  87 +
  88 +**前端**
235 89
236 ```bash 90 ```bash
237 cd antis-ncc-admin 91 cd antis-ncc-admin
238 -  
239 -# 安装依赖  
240 npm install 92 npm install
241 -  
242 -# 启动开发服务器  
243 npm run dev 93 npm run dev
244 ``` 94 ```
245 95
246 -### 4. 访问系统  
247 -- 前端地址:http://localhost:3000  
248 -- 后端API:http://localhost:5000  
249 -- API文档:http://localhost:5000/antis.doc 96 +### 访问与默认账号
250 97
251 -### 默认账号  
252 -- **管理员账号**:admin  
253 -- **默认密码**:123456  
254 -  
255 -## 📚 项目文档  
256 -  
257 -项目文档统一存放在 `docs/` 目录下,包含:  
258 -  
259 -### 核心文档  
260 -- **数据库说明.md** - 数据库表结构、字段说明、关联关系  
261 -- **PROJECT_RULES.md** - 项目开发规范、编码规范、最佳实践  
262 -  
263 -### 业务文档  
264 -- **工资计算规则梳理.md** - 各类工资计算规则说明  
265 - - 健康师工资计算规则  
266 - - 店长工资计算规则  
267 - - 主任工资计算规则  
268 - - 大项目主管工资计算规则  
269 - - 科技部总经理工资计算规则  
270 - - 事业部总经理工资计算规则  
271 -- **接口文档.md** - API接口调用说明  
272 -- **需求分析文档** - 各类业务需求分析文档  
273 -  
274 -### 查看文档  
275 -```bash  
276 -# 查看所有文档  
277 -ls docs/ 98 +| 项 | 地址/信息 |
  99 +|--------|-----------|
  100 +| 前端 | http://localhost:3000 |
  101 +| 后端 API | http://localhost:5000 |
  102 +| API 文档 | http://localhost:5000/antis.doc |
  103 +| 默认账号 | admin / 123456 |
278 104
279 -# 查看特定文档  
280 -cat docs/数据库说明.md  
281 -```  
282 -  
283 -## 🔧 脚本工具  
284 -  
285 -项目提供了丰富的脚本工具,位于 `scripts/` 目录下:  
286 -  
287 -### Shell测试脚本 (`scripts/sh/`)  
288 -用于接口测试和数据验证:  
289 -```bash  
290 -# 测试个人业绩统计接口  
291 -./scripts/sh/test_personal_performance_api.sh  
292 -  
293 -# 测试门店总业绩统计接口  
294 -./scripts/sh/test_store_total_performance_statistics.sh  
295 -  
296 -# 验证门店总业绩数据  
297 -./scripts/sh/verify_store_total_performance_data.sh  
298 -```  
299 -  
300 -### Python工具脚本 (`scripts/py/`)  
301 -用于数据导出和生成:  
302 -```bash  
303 -# 导出所有会员剩余权益数据  
304 -python scripts/py/export_all_member_remaining_rights.py  
305 -  
306 -# 生成客户Excel数据  
307 -python scripts/py/generate_november_customer_excel.py  
308 -```  
309 -  
310 -## 📊 SQL脚本  
311 -  
312 -数据库相关SQL脚本存放在 `sql/` 目录下:  
313 -  
314 -- **表结构脚本** - 数据库表结构定义  
315 -- **初始化数据脚本** - 系统初始化数据  
316 -- **数据迁移脚本** - 数据库版本升级脚本  
317 -- **统计脚本** - 统计数据生成脚本 105 +---
318 106
319 -## ⚙️ 配置说明 107 +## 配置
320 108
321 -### 数据库配置  
322 -修改 `netcore/src/Application/NCC.API/appsettings.json` 中的连接字符串: 109 +**数据库**:修改 `netcore/src/Application/NCC.API/appsettings.json` 中的 `ConnectionStrings.DefaultConnection`:
323 110
324 ```json 111 ```json
325 -{  
326 - "ConnectionStrings": {  
327 - "DefaultConnection": "Database=lqerp;Data Source=localhost;Port=3306;User Id=root;Password=yourpassword;Charset=utf8;"  
328 - }  
329 -}  
330 -```  
331 -  
332 -### 前端代理配置  
333 -修改 `antis-ncc-admin/vue.config.js` 中的代理地址:  
334 -  
335 -```javascript  
336 -proxy: {  
337 - '/dev': {  
338 - target: 'http://localhost:5000', // 后端API地址  
339 - changeOrigin: true,  
340 - pathRewrite: {  
341 - '^/dev': ''  
342 - }  
343 - }  
344 -} 112 +"DefaultConnection": "Database=lqerp;Data Source=localhost;Port=3306;User Id=root;Password=你的密码;Charset=utf8;"
345 ``` 113 ```
346 114
347 -## 📦 部署说明 115 +**前端代理**:修改 `antis-ncc-admin/vue.config.js` 中 `proxy['/dev'].target` 为实际后端地址(默认 `http://localhost:5000`)。
348 116
349 -### 后端部署  
350 -1. 发布项目:`dotnet publish -c Release`  
351 -2. 配置数据库连接字符串  
352 -3. 部署到IIS或Linux服务器 117 +---
353 118
354 -### 前端部署  
355 -1. 构建项目:`npm run build`  
356 -2. 将 `dist` 目录部署到Web服务器  
357 -3. 配置Nginx或IIS反向代理 119 +## 文档与脚本
358 120
359 -## 📋 开发规范 121 +- **文档**:`docs/` 目录
  122 + - `数据库说明.md`:表结构、字段、关联与弃用表说明
  123 + - `工资计算规则梳理.md`:各类工资计算规则
  124 + - `接口文档.md`:API 说明
360 125
361 -详细的开发规范请参考 [PROJECT_RULES.md](./PROJECT_RULES.md),主要规范包括: 126 +- **脚本**:`scripts/sh/`(接口测试、数据验证)、`scripts/py/`(导出、生成等)。Shell 脚本需执行权限:`chmod +x scripts/sh/*.sh`。
362 127
363 -### 核心规范  
364 -- **ID生成规范**: 必须使用 `YitIdHelper.NextId().ToString()` 生成ID  
365 -- **API接口规范**: GET请求使用data字段传参,不使用params  
366 -- **权限控制**: 所有数据查询必须添加园区权限过滤  
367 -- **数据一致性**: 统计数据和列表数据必须使用相同的过滤条件  
368 -- **SQL查询验证**: 统计类型SQL查询必须先使用MCP MySQL工具验证 128 +- **SQL**:`sql/` 内存放表结构、初始化、迁移及统计相关脚本。
369 129
370 -### 前端规范  
371 -- **组件开发**: views 与 components 分离,弹窗、二级页面必须单独创建 Vue 文件  
372 -- **文件命名**: 使用 kebab-case (如: user-dialog.vue)  
373 -- **UI规范**: 统一使用 NCC-table,标签右对齐,卡片高度100px,内边距12px,圆角12px 130 +---
374 131
375 -### 后端规范  
376 -- **分层架构**: Entitys → Interfaces → Services  
377 -- **异常处理**: 全局捕获,统一 JSON 格式返回  
378 -- **XML注释**: 关键方法必须添加 XML 注释 132 +## 核心业务模块(Extend)
379 133
380 -## ❓ 常见问题 134 +业务逻辑集中在 `netcore/src/Modularity/Extend/`,服务通过动态 API 暴露为 `api/Extend/[ServiceName]`。
381 135
382 -### Q: 前端启动失败  
383 -**A**: 确保使用Node.js 16.20.2版本,其他版本可能不兼容 136 +| 业务 | 主要服务类 |
  137 +|------------|------------|
  138 +| 业绩统计 | `LqStatisticsService`、`LqReportService` |
  139 +| 工资核算 | `LqGzService`、`LqStoreManagerSalaryService`、`LqDirectorSalaryService`、`LqMajorProjectDirectorSalaryService`、`LqTechGeneralManagerSalaryService`、`LqBusinessUnitManagerSalaryService` |
  140 +| 门店管理 | `LqMdxxService`、`LqMdXdbhsjService` |
  141 +| 人员/金三角 | `LqYcsdJsjService`、金三角用户绑定相关服务 |
  142 +| 客户管理 | `LqKhxxService`、`LqTkjlbService`、`LqEventService` |
  143 +| 工具 | `EmailService`、`DocumentService`、`BigDataService`、`WorkLogService` |
384 144
385 -### Q: 后端连接数据库失败  
386 -**A**: 检查数据库连接字符串和MySQL服务状态 145 +实体与 DTO 在 `NCC.Extend.Entitys`(Entity、Dto、Mapper、Model)。
387 146
388 -### Q: 权限验证失败  
389 -**A**: 检查JWT配置和Token有效期设置 147 +---
390 148
391 -### Q: 统计SQL执行失败  
392 -**A**: 使用MCP MySQL工具先验证SQL语法和字段名是否正确 149 +## 开发规范
393 150
394 -### Q: 接口测试脚本无法运行  
395 -**A**: 确保脚本有执行权限:`chmod +x scripts/sh/*.sh` 151 +完整规范见 **[PROJECT_RULES.md](./PROJECT_RULES.md)**(或仓库内 `.cursor/rules/project_rules.mdc`),开发前请阅读。要点包括:
396 152
397 -## 📈 项目状态 153 +- **后端**:ID 使用 `YitIdHelper.NextId().ToString()`;分层 Entitys → Interfaces → Services;关键方法写 XML 注释;统一异常与返回格式。
  154 +- **前端**:GET 请求用 `data` 传参;表格用 NCC-table;弹窗/二级页单独组件;文件命名 kebab-case。
  155 +- **数据**:统计与列表使用相同筛选条件;涉及人员/门店归属等见「已弃用表」说明,使用约定表与字段。
398 156
399 -### ✅ 已完成功能  
400 -- [x] 业绩统计系统(个人、门店、金三角、部门消耗、科技部、门店消耗)  
401 -- [x] 工资核算系统(健康师、店长、主任、大项目主管、科技部总经理、事业部总经理)  
402 -- [x] 报表分析系统(趋势图、排行榜、仪表盘)  
403 -- [x] 门店管理系统(门店信息、归属管理、新店保护)  
404 -- [x] 客户管理系统(客户信息、拓客记录、会员权益)  
405 -- [x] 合同管理系统  
406 -- [x] 合作成本和店内支出管理  
407 -- [x] 库存使用审批流程  
408 -- [x] 年度汇总统计 157 +---
409 158
410 -### 🔄 持续优化  
411 -- 性能优化  
412 -- 代码重构  
413 -- 文档完善  
414 -- 测试覆盖 159 +## 部署
415 160
416 -## 📞 技术支持 161 +- **后端**:`dotnet publish -c Release`,配置生产环境连接字符串,部署至 IIS 或 Linux。
  162 +- **前端**:`npm run build`,将 `antis-ncc-admin/dist` 部署至 Web 服务器,并配置反向代理(如 Nginx)指向后端 API。
417 163
418 -如有技术问题,请:  
419 -1. 查看项目文档:`docs/` 目录  
420 -2. 查看开发规范:`PROJECT_RULES.md`  
421 -3. 联系开发团队 164 +---
422 165
423 -## 📝 版本信息 166 +## 常见问题
424 167
425 -- **当前版本**:v2.5.0  
426 -- **最后更新**:2025年1月  
427 -- **维护状态**:✅ 生产环境运行中  
428 -- **主要特性**:完整的业绩统计、工资核算、报表分析等核心功能 168 +| 问题 | 处理建议 |
  169 +|--------------------|----------|
  170 +| 前端启动失败 | 确认 Node.js 为 16.20.2(`nvm use 16.20.2` 或安装该版本)。 |
  171 +| 后端连不上数据库 | 检查 `appsettings.json` 连接字符串及 MySQL 服务是否启动。 |
  172 +| 权限/Token 报错 | 检查 JWT 配置与 Token 有效期。 |
  173 +| 统计类 SQL 报错 | 先用 MCP MySQL 工具验证 SQL 语法与表名字段名。 |
  174 +| 脚本无法执行 | 执行 `chmod +x scripts/sh/*.sh`。 |
429 175
430 --- 176 ---
431 177
432 -**注意**:本项目仅供学习和内部使用,请勿用于商业用途。 178 +## 许可证与说明
  179 +
  180 +本项目仅供学习与内部使用,请勿用于商业用途。
  181 +技术问题可先查阅 `docs/` 与 `PROJECT_RULES.md`,或联系开发团队。
netcore/src/Modularity/Extend/NCC.Extend/LqDailyReportService.cs
@@ -1538,8 +1538,8 @@ namespace NCC.Extend @@ -1538,8 +1538,8 @@ namespace NCC.Extend
1538 // 3. 查询指定日期的有效开单记录(有金额的) 1538 // 3. 查询指定日期的有效开单记录(有金额的)
1539 // 使用 lq_md_target 表获取门店归属,替代已弃用的 lq_mdxx.syb 字段 1539 // 使用 lq_md_target 表获取门店归属,替代已弃用的 lq_mdxx.syb 字段
1540 var billingQuery = _db.Queryable<LqKdKdjlbEntity, LqMdTargetEntity, LqMdxxEntity, OrganizeEntity>( 1540 var billingQuery = _db.Queryable<LqKdKdjlbEntity, LqMdTargetEntity, LqMdxxEntity, OrganizeEntity>(
1541 - (billing, target, store, org) =>  
1542 - billing.Djmd == target.StoreId 1541 + (billing, target, store, org) =>
  1542 + billing.Djmd == target.StoreId
1543 && target.Month == month 1543 && target.Month == month
1544 && target.BusinessUnit == org.Id 1544 && target.BusinessUnit == org.Id
1545 && billing.Djmd == store.Id) 1545 && billing.Djmd == store.Id)