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 73 ```bash
216 74 git clone [项目地址]
217 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 80 ```bash
229 81 cd netcore/src/Application/NCC.API
230 82 dotnet restore
231 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 90 ```bash
237 91 cd antis-ncc-admin
238   -
239   -# 安装依赖
240 92 npm install
241   -
242   -# 启动开发服务器
243 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 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 1538 // 3. 查询指定日期的有效开单记录(有金额的)
1539 1539 // 使用 lq_md_target 表获取门店归属,替代已弃用的 lq_mdxx.syb 字段
1540 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 1543 && target.Month == month
1544 1544 && target.BusinessUnit == org.Id
1545 1545 && billing.Djmd == store.Id)
... ...