Files
f9-web-ai-test/工作进度/工作进度-20.md
T
yanpeng200212 1f1b184411 新增工资/仓储/生产日报等模块,移除旧考勤模块
- 新增 PayRoll(工资)、Wms(仓储)、Prod(车速/缫丝/考勤/丝片检测/丝片台账/纤检日报/质量日报) 模块
- 新增对应 Domain 实体、Application DTO/Service、Api Controller 与前端页面
- 移除旧 Attendance 考勤模块(Controller/Service/Entity/DTO 及 5 个前端页面),由 Prod/Kaoqin 取代
- 调整路由、仪表盘、Lsjl 流丝记录实体与服务
- 更新业务种子数据与 DbSeeder
- 补充工作进度文档 14-27
2026-10-27 09:09:57 +08:00

77 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 工作进度-20:生产 · 选剥茧 前端完成(模块可运行)
> **协作规则(长期生效)**:**每次对话结尾都要生成工作进度**。
> 即在每轮对话结束前,把本轮完成的内容追加为 `工作进度/工作进度-N.md`,并在文档中保留本条规则,方便下一轮接续。
> 承接 [工作进度-19](./工作进度-19.md)(后端完成)。本轮完成前端,模块至此可运行。
## 一、本次完成(前端)
新建目录 `web/src/views/prod/xuanjian/`:
| 文件 | 内容 |
| --- | --- |
| `index.vue` | Tab 容器;三个菜单共用本组件,**按路由末段自动定位 Tab**(`/rb`、`/plan`、`/banzu`) |
| `XjrbPanel.vue` | **选茧日报**:查询、多表头列表(8 类茧各自包数/重量)、编辑弹窗、「计算盈亏」按钮 |
| `XjrbPlanPanel.vue` | **选茧计划**:列表 + **展开行主从联动**显示计划明细,明细增删改,明细内「计算盈亏」 |
| `XjpbBanzuPanel.vue` | **选茧班组**:班组列表 + 展开行显示职工,「编辑录入」弹窗按班次批量分配职工与组别 |
### 关键实现
- **日报「计算盈亏」**:填完包数/重量后点按钮 → `POST /prod/xjrb/count-yingkui` →
回填 `liantongRate` / `yingkui`,并 `ElMessage` 提示"从 xxx 开始累计"(即后端返回的 `startDateText`)
- **标包重**:老系统从注册表 `生产\选剥茧` 读取(重量 = 包数 × 标包重,茧花/退回手工录入)。
本次**先用 `localStorage`(key `xuanjian_biaobaozhong`)临时存放**并带「按标包重换算」按钮;
折叠面板可编辑 7 个品类的标包重(联统/好五级/五级/绵/双宫/下脚/茧衣)
- **计划维度**联统率按**包数**口径(与日报按重量不同),明细勾选「选茧完成」保存后计划置为已完成、不可再改
- **班组「编辑录入」**:按班次整体覆盖(后端先清该班次旧职工与班组,再重建)
### 接口对接要点(踩坑)
| 事项 | 正确写法 |
| --- | --- |
| 工艺庄口选择 | 用组件 `web/src/components/select/CraftZhuangKouSelect.vue`,`@confirm` 回调参数含 `id` / `zhuangKouName` / `productionDisplayName` |
| 员工列表 | `GET /sys/employee`,参数是 **`depId`**、**`worktypeId`**(注意不是 workTypeId)、`banci`、`workStatus`、`like` |
| 工种列表 | `GET /sys/worktype`,返回 `res.data.items` |
| 员工筛选口径 | 部门 = 职责类型「选剥茧」的车间(`depOptions({ duty: [DUTY.选剥茧] })`)+ 工种名含「选茧」 |
| 路由 | `web/src/router/index.js` 的路径映射表,新增 `'prod/xuanjian/index'` |
## 二、注册与菜单
1. **路由**(`web/src/router/index.js`):
```js
'prod/xuanjian/index': () => import('../views/prod/xuanjian/index.vue'),
```
2. **菜单**(`backend/F9WebAiTest.Infrastructure/Data/BusinessSeedData.cs`):
新建一级目录「生产-选剥茧」(`/prod/xuanjian`,Sort 7),下挂三个菜单:
- 选茧日报 → `/prod/xuanjian/rb`
- 选茧计划 → `/prod/xuanjian/plan`
- 选茧班组 → `/prod/xuanjian/banzu`
组件均为 `prod/xuanjian/index`
> ⚠️ `DbSeeder.cs` 里**另有一处**生产菜单的批量插入(`SeedProdMenus`,含"纤度检验/黑板检验…"元组列表)。
> 若启动后菜单未出现,需在那一处同步补上选剥茧的三个菜单项(本轮只改了 `BusinessSeedData.cs`)。
## 三、验证情况
- 前端 4 个新文件 lint:**0 错误**
- `F9WebAiTest.Infrastructure` 编译:无 `error CS`(菜单种子数据通过)
- 后端(19 轮):Application 已成功生成、Api 无 CS 错误
## 四、待办 / 可优化
1. **标包重改为注册表**:新系统有 `/sys/registry` 接口(老系统正是存注册表 `生产\选剥茧`)。
当前用 localStorage 是临时方案,建议改为后端注册表读写,实现多端一致
2. **领料单选择**:计划里的「领料单ID」目前是手填数字框,老系统是选择原料出库单,
应改为下拉/弹窗选择并回填 `yllingliaodanCode`
3. **日报/计划关联**:老系统计划可按领料单生成日报,当前两侧独立,未做联动
4. 菜单如未显示,补 `DbSeeder.SeedProdMenus`
5. 启动前需**重启后端服务**(新表在启动时建立;且 Api 进程会锁定 DLL 导致编译复制失败)
## 五、下次接续提示
- 选剥茧三个页面都挂在 `prod/xuanjian/index.vue`,改 Tab 逻辑看 `tabOf(route.path)`
- 日报盈亏口径最易改错:起始日期由近及远跳过 `LiantongRate == 0` 的记录,见 19 轮文档第二节
- 计划维度联统率用**包数**,日报用**重量**,两者分母不同,勿混用
- **每轮对话结尾记得生成本工作进度文档**