From 2985003896c0fb277b5991c70e9418dfe7e51c95 Mon Sep 17 00:00:00 2001
From: yanpeng200212 <32453@DESKTOP-HTJ2T0B>
Date: Mon, 12 Oct 2026 16:33:40 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E3=80=8C=E8=BD=A6=E9=97=B4?=
=?UTF-8?q?=E7=8F=AD=E6=AC=A1=E3=80=8D=E5=8A=9F=E8=83=BD=EF=BC=88=E5=89=8D?=
=?UTF-8?q?=E7=BC=AB=E8=BD=A6=E9=97=B4=E6=8E=92=E7=8F=AD=E9=85=8D=E7=BD=AE?=
=?UTF-8?q?=EF=BC=89?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
后端
- 新增实体 ChejianBanci(表 ChejianBancis:车间 / 班次 / 日工作小时数)
- 新增 ChejianBanciService 与 ChejianBanciController(api/prod/chejianbanci)
分页列表、编辑回显、新增、修改、删除、前缫车间下拉;含必填校验与同车间同班次重复校验
- 菜单种子:基础数据 → 车间班次(Timer 图标,权限 base:chejianbanci:list)
- 修正历史数据:名称以「前缫」开头的部门职责类型改为「前缫」(25)。
迁移时 duty_type 被统一写成「其他」,导致按职责类型筛选车间取不到数据
前端
- 新增 web/src/views/base/chejianbanci/index.vue(列表 / 搜索 / 分页 / 新增 / 编辑 / 删除)
- 注册组件映射 base/chejianbanci/index
---
.../Prod/ChejianBanciController.cs | 75 +++++++
.../F9WebAiTest.Api/f9_web_ai_test_rbac.db | Bin 1150976 -> 1159168 bytes
.../DependencyInjection.cs | 1 +
.../Dtos/Prod/ChejianBanciDtos.cs | 30 +++
.../Services/Prod/ChejianBanciService.cs | 138 ++++++++++++
.../Entities/Prod/ChejianBanci.cs | 15 ++
.../Data/DbSeeder.cs | 37 ++++
web/src/router/index.js | 1 +
web/src/views/base/chejianbanci/index.vue | 199 ++++++++++++++++++
9 files changed, 496 insertions(+)
create mode 100644 backend/F9WebAiTest.Api/Controllers/Prod/ChejianBanciController.cs
create mode 100644 backend/F9WebAiTest.Application/Dtos/Prod/ChejianBanciDtos.cs
create mode 100644 backend/F9WebAiTest.Application/Services/Prod/ChejianBanciService.cs
create mode 100644 backend/F9WebAiTest.Domain/Entities/Prod/ChejianBanci.cs
create mode 100644 web/src/views/base/chejianbanci/index.vue
diff --git a/backend/F9WebAiTest.Api/Controllers/Prod/ChejianBanciController.cs b/backend/F9WebAiTest.Api/Controllers/Prod/ChejianBanciController.cs
new file mode 100644
index 0000000..99eaf9f
--- /dev/null
+++ b/backend/F9WebAiTest.Api/Controllers/Prod/ChejianBanciController.cs
@@ -0,0 +1,75 @@
+using F9WebAiTest.Application.Common;
+using F9WebAiTest.Application.Dtos.Prod;
+using F9WebAiTest.Application.Services.Prod;
+using F9WebAiTest.Domain.Common;
+using F9WebAiTest.Domain.Entities;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+
+namespace F9WebAiTest.Api.Controllers.Prod;
+
+/// 车间班次(前缫车间排班配置)
+[ApiController]
+[Route("api/prod/chejianbanci")]
+[Authorize]
+public class ChejianBanciController : ControllerBase
+{
+ private readonly IChejianBanciService _svc;
+ public ChejianBanciController(IChejianBanciService svc) => _svc = svc;
+
+ // 分页列表
+ [HttpGet]
+ public async Task GetPaged([FromQuery] string like = "", [FromQuery] int pageIndex = 1,
+ [FromQuery] int pageSize = 20)
+ => Ok(ApiResult>.Ok(
+ await _svc.GetPagedAsync(pageIndex, pageSize, like ?? string.Empty)));
+
+ // 车间下拉(前缫车间)
+ [HttpGet("qianxian-deps")]
+ public async Task GetQianxianDeps()
+ => Ok(ApiResult>.Ok(await _svc.GetQianxianDepsAsync()));
+
+ // 编辑回显
+ [HttpGet("{id}")]
+ public async Task GetByIdForEdit(long id)
+ {
+ try { return Ok(ApiResult.Ok(await _svc.GetByIdForEditAsync(id))); }
+ catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult