新增工资/仓储/生产日报等模块,移除旧考勤模块

- 新增 PayRoll(工资)、Wms(仓储)、Prod(车速/缫丝/考勤/丝片检测/丝片台账/纤检日报/质量日报) 模块
- 新增对应 Domain 实体、Application DTO/Service、Api Controller 与前端页面
- 移除旧 Attendance 考勤模块(Controller/Service/Entity/DTO 及 5 个前端页面),由 Prod/Kaoqin 取代
- 调整路由、仪表盘、Lsjl 流丝记录实体与服务
- 更新业务种子数据与 DbSeeder
- 补充工作进度文档 14-27
This commit is contained in:
yanpeng200212
2026-10-27 09:09:57 +08:00
parent 69c4052a64
commit 1f1b184411
119 changed files with 21576 additions and 1668 deletions
+76
View File
@@ -0,0 +1,76 @@
# 工作进度-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 轮文档第二节
- 计划维度联统率用**包数**,日报用**重量**,两者分母不同,勿混用
- **每轮对话结尾记得生成本工作进度文档**