- 新增 PayRoll(工资)、Wms(仓储)、Prod(车速/缫丝/考勤/丝片检测/丝片台账/纤检日报/质量日报) 模块 - 新增对应 Domain 实体、Application DTO/Service、Api Controller 与前端页面 - 移除旧 Attendance 考勤模块(Controller/Service/Entity/DTO 及 5 个前端页面),由 Prod/Kaoqin 取代 - 调整路由、仪表盘、Lsjl 流丝记录实体与服务 - 更新业务种子数据与 DbSeeder - 补充工作进度文档 14-27
76 lines
3.5 KiB
Markdown
76 lines
3.5 KiB
Markdown
# 工作进度-22:重启前后端(使选剥茧菜单与代码生效)
|
||
|
||
> **协作规则(长期生效)**:**每次对话结尾都要生成工作进度**。
|
||
> 即在每轮对话结束前,把本轮完成的内容追加为 `工作进度/工作进度-21.md` 之外的 `工作进度-N.md`,
|
||
> 并在文档中保留本条规则,方便下一轮接续。
|
||
|
||
## 一、任务
|
||
|
||
重启前端与后端,使 19~21 轮的选剥茧模块(新表 / 新接口 / 新菜单)生效。
|
||
|
||
## 二、进程定位(本项目实际端口)
|
||
|
||
| 服务 | 端口 | 重启前 PID | 重启后 PID |
|
||
| --- | --- | --- | --- |
|
||
| 后端 `F9WebAiTest.Api` | **3000** | 23880(正是锁 DLL 的那个) | 8976 |
|
||
| 前端 vite | **5173** | 21392 | 13696 |
|
||
|
||
- 后端端口来自 `backend/F9WebAiTest.Api/Properties/launchSettings.json` 的 `applicationUrl`
|
||
- 前端端口 vite 默认 5173
|
||
|
||
## 三、重启步骤(可复用)
|
||
|
||
```powershell
|
||
# 1) 按 PID 停止(先 netstat 确认,勿误杀其它 dotnet/node)
|
||
Stop-Process -Id <后端PID> -Force
|
||
Stop-Process -Id <前端PID> -Force
|
||
|
||
# 2) 启动后端(新窗口,非阻塞)
|
||
Start-Process -FilePath "dotnet" -ArgumentList "run" `
|
||
-WorkingDirectory "d:/f9webaitest/f9-web-ai-test/backend/F9WebAiTest.Api" -WindowStyle Minimized
|
||
|
||
# 3) 启动前端(见下方「坑」:npm/node 不在 PATH)
|
||
Start-Process -FilePath "C:\Users\32453\.workbuddy\binaries\node\versions\22.22.2-6\node.exe" `
|
||
-ArgumentList "node_modules/vite/bin/vite.js" `
|
||
-WorkingDirectory "d:/f9webaitest/f9-web-ai-test/web" -WindowStyle Minimized
|
||
```
|
||
|
||
## 四、坑(下次直接照做)
|
||
|
||
1. **npm / node 不在 PATH**:本机 node 由 workbuddy 管理,路径为
|
||
`C:\Users\32453\.workbuddy\binaries\node\versions\22.22.2-6\node.exe`。
|
||
`Get-Command npm/node` 返回空 → 必须用**完整路径**启动,不能 `npm run dev`。
|
||
2. **`netstat | Select-String ":5|:8"` 会漏掉 3000**:过滤端口时注意 3000 不含 5/8,别误判"后端没运行"。
|
||
3. **后端 DLL 被运行中的 Api 进程锁定**(MSB3021 / MSB3027):编译前先停后端,或只编译
|
||
Application/Infrastructure 项目并单独筛 `error CS`。
|
||
4. 多个 dotnet 进程并存(3916 / 9636 / 11548 / 29256 …),**必须按端口定位**再杀,不能
|
||
`Stop-Process -Name dotnet` 全杀。
|
||
|
||
## 五、验证结果
|
||
|
||
| 检查项 | 结果 |
|
||
| --- | --- |
|
||
| 后端 `GET /api/prod/xjrb` | **401**(已注册、需认证)→ Controller 已加载 |
|
||
| 前端 `http://localhost:5173` | **200** → vite 正常 |
|
||
| 数据库 `backend/F9WebAiTest.Api/f9_web_ai_test_rbac.db` | 最后修改 **2026/10/26 10:49**(重启时刻)→ seed 已执行,菜单已写入 |
|
||
|
||
> 注:`bin/Debug/net8.0/` 下另有一份同名 db(10/20 的旧副本),**实际运行时用的是项目根目录下那份**。
|
||
|
||
## 六、用户待确认
|
||
|
||
1. **重新登录**(菜单随登录接口下发),用 **admin** 角色查看左侧是否出现「生产-选剥匣」→
|
||
选茧日报 / 选茧计划 / 选茧班组
|
||
2. 非 admin 角色需在「角色管理」手动勾选这三个菜单
|
||
|
||
## 七、遗留(承接 20/21 轮)
|
||
|
||
- 标包重仍是 localStorage 临时方案,建议改 `/sys/registry`
|
||
- 计划里「领料单ID」为手填数字框,老系统是选择原料出库单
|
||
- 日报与计划暂未做联动
|
||
|
||
## 八、下次接续提示
|
||
|
||
- 改后端代码后必须**重启后端**才生效;改前端 vite 会自动热更新
|
||
- 重启前记得先停后端,否则 DLL 锁定导致编译复制失败
|
||
- **每轮对话结尾记得生成本工作进度文档**
|