Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs
git_rabbit 722ef40fd2 feat(报废管理): 实现报废单和转用单的创建与审批流程
添加报废审批DTO和供应商字段
实现创建报废单/转用单功能
新增审批和撤销报废记录接口
优化查询条件并生成唯一报废单号
2026-01-26 17:57:18 +08:00

165 lines
5.8 KiB
C#
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.

using Microsoft.AspNetCore.Mvc;
using DOAN.Model.BZFM.Dto;
using DOAN.Model.BZFM;
using DOAN.Service.BZFM.IService;
using DOAN.Admin.WebApi.Filters;
//创建时间2026-01-22
namespace DOAN.Admin.WebApi.Controllers.BZFM
{
/// <summary>
/// 报废记录表
/// </summary>
[Verify]
[Route("mes/qualityManagement/IPQC/QcScrapRecords")]
public class QcScrapRecordsController : BaseController
{
/// <summary>
/// 报废记录表接口
/// </summary>
private readonly IQcScrapRecordsService _QcScrapRecordsService;
public QcScrapRecordsController(IQcScrapRecordsService QcScrapRecordsService)
{
_QcScrapRecordsService = QcScrapRecordsService;
}
/// <summary>
/// 查询报废记录表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "qcscraprecords:list")]
public IActionResult QueryQcScrapRecords([FromQuery] QcScrapRecordsQueryDto parm)
{
var response = _QcScrapRecordsService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询报废记录表详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpGet("{Id}")]
[ActionPermissionFilter(Permission = "qcscraprecords:query")]
public IActionResult GetQcScrapRecords(long Id)
{
var response = _QcScrapRecordsService.GetInfo(Id);
var info = response.Adapt<QcScrapRecordsDto>();
return SUCCESS(info);
}
/// <summary>
/// 添加报废记录表
/// </summary>
/// <returns></returns>
[HttpPost]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "报废记录表", BusinessType = BusinessType.INSERT)]
public IActionResult AddQcScrapRecords([FromBody] QcScrapRecordsDto parm)
{
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.AddQcScrapRecords(modal);
return SUCCESS(response);
}
/// <summary>
/// 更新报废记录表
/// </summary>
/// <returns></returns>
[HttpPut]
[ActionPermissionFilter(Permission = "qcscraprecords:edit")]
[Log(Title = "报废记录表", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateQcScrapRecords([FromBody] QcScrapRecordsDto parm)
{
var modal = parm.Adapt<QcScrapRecords>().ToUpdate(HttpContext);
var response = _QcScrapRecordsService.UpdateQcScrapRecords(modal);
return ToResponse(response);
}
/// <summary>
/// 删除报废记录表
/// </summary>
/// <returns></returns>
[HttpPost("delete/{ids}")]
[ActionPermissionFilter(Permission = "qcscraprecords:delete")]
[Log(Title = "报废记录表", BusinessType = BusinessType.DELETE)]
public IActionResult DeleteQcScrapRecords([FromRoute] string ids)
{
var idArr = Tools.SplitAndConvert<long>(ids);
return ToResponse(_QcScrapRecordsService.Delete(idArr));
}
/// <summary>
/// 创建报废单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("scrap-order")]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "创建报废单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateScrapOrder([FromBody] QcScrapRecordsDto parm)
{
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateScrapOrder(modal);
return SUCCESS(response);
}
/// <summary>
/// 创建转用单
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("transfer-order")]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "创建转用单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateTransferOrder([FromBody] QcScrapRecordsDto parm)
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateTransferOrder(modal);
return SUCCESS(response);
}
/// <summary>
/// 审批报废记录
/// </summary>
/// <param name="id">记录ID</param>
/// <param name="parm">审批信息</param>
/// <returns></returns>
[HttpPut("approve/{id}")]
[ActionPermissionFilter(Permission = "qcscraprecords:approve")]
[Log(Title = "审批报废记录", BusinessType = BusinessType.UPDATE)]
public IActionResult ApproveScrapRecord([FromRoute] long id, [FromBody] ScrapApproveDto parm)
{
var response = _QcScrapRecordsService.ApproveScrapRecord(id, parm.IsApproved, parm.Approver);
return ToResponse(response);
}
/// <summary>
/// 撤销报废记录
/// </summary>
/// <param name="id">记录ID</param>
/// <returns></returns>
[HttpPut("revoke/{id}")]
[ActionPermissionFilter(Permission = "qcscraprecords:revoke")]
[Log(Title = "撤销报废记录", BusinessType = BusinessType.UPDATE)]
public IActionResult RevokeScrapRecord([FromRoute] long id)
{
var response = _QcScrapRecordsService.RevokeScrapRecord(id);
return ToResponse(response);
}
}
}