Files
yanpeng200212 2985003896 新增「车间班次」功能(前缫车间排班配置)
后端
- 新增实体 ChejianBanci(表 ChejianBancis:车间 / 班次 / 日工作小时数)
- 新增 ChejianBanciService 与 ChejianBanciController(api/prod/chejianbanci)
  分页列表、编辑回显、新增、修改、删除、前缫车间下拉;含必填校验与同车间同班次重复校验
- 菜单种子:基础数据 → 车间班次(Timer 图标,权限 base:chejianbanci:list)
- 修正历史数据:名称以「前缫」开头的部门职责类型改为「前缫」(25)。
  迁移时 duty_type 被统一写成「其他」,导致按职责类型筛选车间取不到数据

前端
- 新增 web/src/views/base/chejianbanci/index.vue(列表 / 搜索 / 分页 / 新增 / 编辑 / 删除)
- 注册组件映射 base/chejianbanci/index
2026-10-12 16:33:40 +08:00

76 lines
2.6 KiB
C#

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;
/// <summary>车间班次(前缫车间排班配置)</summary>
[ApiController]
[Route("api/prod/chejianbanci")]
[Authorize]
public class ChejianBanciController : ControllerBase
{
private readonly IChejianBanciService _svc;
public ChejianBanciController(IChejianBanciService svc) => _svc = svc;
// 分页列表
[HttpGet]
public async Task<IActionResult> GetPaged([FromQuery] string like = "", [FromQuery] int pageIndex = 1,
[FromQuery] int pageSize = 20)
=> Ok(ApiResult<PageResult<ChejianbanciReadDto_View>>.Ok(
await _svc.GetPagedAsync(pageIndex, pageSize, like ?? string.Empty)));
// 车间下拉(前缫车间)
[HttpGet("qianxian-deps")]
public async Task<IActionResult> GetQianxianDeps()
=> Ok(ApiResult<List<ChejianbanciDepOptionDto>>.Ok(await _svc.GetQianxianDepsAsync()));
// 编辑回显
[HttpGet("{id}")]
public async Task<IActionResult> GetByIdForEdit(long id)
{
try { return Ok(ApiResult<ChejianbanciReadDto_Edit>.Ok(await _svc.GetByIdForEditAsync(id))); }
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
}
// 新增
[HttpPost]
public async Task<IActionResult> Create([FromBody] ChejianbanciReadDto_Edit dto)
{
try
{
await _svc.CreateAsync(dto);
return Ok(ApiResult<object>.Ok(null, "新增成功"));
}
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
}
// 修改
[HttpPut("{id}")]
public async Task<IActionResult> Update(long id, [FromBody] ChejianbanciReadDto_Edit dto)
{
try
{
await _svc.UpdateAsync(id, dto);
return Ok(ApiResult<object>.Ok(null, "修改成功"));
}
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
}
// 删除
[HttpDelete("{id}")]
public async Task<IActionResult> Delete(long id)
{
try
{
await _svc.DeleteAsync(id);
return Ok(ApiResult<object>.Ok(null, "删除成功"));
}
catch (ServiceException ex) { return StatusCode(ex.Code, ApiResult<object>.Fail(ex.Message, ex.Code)); }
}
}