DEPLOYMENT_GUIDE.md
6.56 KB
库存过滤修复 - 部署指南
📦 编译完成信息
✅ 后端编译完成
编译时间: 2024-10-29 01:43 (约7秒) 编译模式: Release (.NET 6.0) 编译状态: 成功 (0 错误, 37 个警告)
输出位置:
/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/netcore/src/Application/NCC.API/bin/Release/net6.0/
关键 DLL 文件:
NCC.API.dll- 主应用程序NCC.API.Core.dll- 核心库NCC.Extend.dll- 扩展模块 ✨ 包含库存过滤修复
✅ 前端编译完成
编译时间: 2024-10-29 01:43 编译模式: production (dotNetTest) 编译状态: 成功
输出位置:
/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/antis-ncc-admin/dist/
输出内容:
index.html- 主页面 ✨ 包含库存过滤修复static/- 静态资源 (JS, CSS)cdn/- CDN 资源 (Monaco Editor, ECharts)
🚀 部署步骤
步骤1️⃣: 部署后端服务 (2015端口)
方式A: 直接替换 DLL (推荐快速部署)
# 停止 API 服务
# (根据你的部署方式停止 NCC.API)
# 备份原文件
cp -r /path/to/api/bin /path/to/api/bin.bak
# 复制新编译的文件
cp -r /Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/netcore/src/Application/NCC.API/bin/Release/net6.0/* \
/path/to/api/bin/
# 重启 API 服务
# (根据你的部署方式启动 NCC.API)
方式B: 完整重新发布
cd /Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/netcore
# 发布应用
dotnet publish -c Release -o /path/to/publish/
# 替换服务
# 停止服务 → 备份原目录 → 复制新版本 → 启动服务
步骤2️⃣: 部署前端应用 (3000端口)
方式A: 复制到 Web 服务器目录
# 方式1: 如果是 Nginx/Apache 提供静态文件
cp -r /Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/antis-ncc-admin/dist/* \
/var/www/html/admin/
# 方式2: 如果使用 Node.js 开发服务器
cp -r /Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/antis-ncc-admin/dist/* \
/path/to/frontend/server/public/
方式B: 如果有 Docker 容器
# 为前端构建新镜像
docker build -f antis-ncc-admin/Dockerfile -t ncc-admin:latest .
# 重启容器
docker-compose down
docker-compose up -d
✨ 修改内容总结
前端修改 (index.html)
文件: antis-ncc-admin/dist/index.html
修复:搜索商品时添加门店ID参数
// 修改前:缺少 xsmd 参数
params: {
keyword: that.keyword,
}
// 修改后:添加了 xsmd 参数
params: {
keyword: that.keyword,
xsmd: this.selectedStore.id || mdId // ✨ 新增
}
后端修改 (NCC.Extend.dll)
文件: NCC.Extend/WtSpService.cs
修复位置:
GetList 方法(行154)
- 添加门店过滤条件
GetListByKeyword 方法(行291)
- 添加门店过滤条件
修改内容:
// 修改前:
var stockQuery = await _db.Queryable<WtSerialNumberEntity>()
.Where(s => productIds.Contains(s.Spbh) && s.Status == 0)
.GroupBy(s => s.Spbh)
.Select(s => new { ... })
.ToListAsync();
// 修改后:
var stockQuery = await _db.Queryable<WtSerialNumberEntity>()
.Where(s => productIds.Contains(s.Spbh) && s.Status == 0)
.WhereIF(!string.IsNullOrEmpty(input.xsmd), s => s.InWarehouse == input.xsmd) // ✨ 新增
.GroupBy(s => s.Spbh)
.Select(s => new { ... })
.ToListAsync();
🧪 验证部署
部署完成后,请按以下步骤验证:
验证步骤
启动服务
# 启动后端 API (2015端口) # 启动前端服务 (3000端口)打开浏览器
http://localhost:3000 或 http://你的服务器:3000测试收银台功能
- 登录景枫店收银台
- 搜索一个商品(使用关键词)
- 查看显示的库存数字
验证库存显示
- 修复前: 显示 39 件(全公司库存)❌
- 修复后: 显示 10 件(景枫店库存)✅
🔍 调试信息
后端日志检查
编译后的 DLL 包含调试输出,可以查看日志:
=== GetList方法开始执行 ===
输入参数: spmc=..., spbm=..., xsmd=...
门店ID: [你输入的门店ID]
开始查询库存,商品数量: ...
浏览器控制台
打开浏览器开发者工具 (F12),查看:
// 应该看到 API 请求包含 xsmd 参数
// 示例: /api/Extend/wtsp/GetListByKeyword?keyword=商品名&xsmd=景枫店ID
⚠️ 常见问题
Q1: 部署后库存仍然显示不正确
A:
- 确认后端 API 已重启(新 DLL 已加载)
- 确认前端已更新(浏览器清除缓存 Ctrl+Shift+Delete)
- 检查网络请求中是否包含
xsmd参数
Q2: 编译失败怎么办?
A:
- 确保 .NET 6.0 SDK 已安装
- 清理编译输出:
dotnet clean - 恢复依赖:
dotnet restore - 重新编译:
dotnet build -c Release
Q3: 前端构建失败怎么办?
A:
- 清除依赖:
rm -rf node_modules - 重新安装:
npm install - 重新构建:
npm run build:dotNetTest
📌 文件清单
后端编译输出
/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/netcore/src/Application/NCC.API/bin/Release/net6.0/
├── NCC.API.dll ← 主应用程序
├── NCC.API.Core.dll ← 核心库
├── NCC.Extend.dll ← ✨ 扩展模块(包含修复)
├── appsettings.json ← 应用配置
├── web.config ← IIS 配置
└── [其他依赖 DLL]
前端编译输出
/Users/hexiaodong/Desktop/git/erp2025/Antis.Erp.Plat/antis-ncc-admin/dist/
├── index.html ← ✨ 主页面(包含修复)
├── static/
│ ├── js/ ← JavaScript 文件
│ ├── css/ ← 样式文件
│ └── img/ ← 图片资源
├── cdn/ ← CDN 资源
│ ├── echarts/ ← ECharts 库
│ └── monaco-editor/ ← 代码编辑器
└── [worker 文件]
📞 需要帮助?
如果部署过程中遇到问题:
- 检查日志文件
- 查看浏览器控制台错误
- 对比本指南的验证步骤
- 参考详细的技术文档:
INVENTORY_FILTER_FIX.md
✅ 部署完成检查清单
- [ ] 后端 DLL 已复制
- [ ] API 服务已重启
- [ ] 前端文件已复制
- [ ] 浏览器缓存已清除
- [ ] 前端服务已启动
- [ ] 库存显示正确(显示门店库存,不是全公司库存)
- [ ] 其他功能正常运行