Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs
git_rabbit 6bc3343414 feat(IPQC): 添加根据工单号处理不良品记录功能
新增以下功能:
1. 根据工单号查询不良品记录
2. 根据工单号创建报废单和转用单
3. 根据ID撤销不良品记录
2026-02-09 17:46:24 +08:00

237 lines
8.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);
}
/// <summary>
/// 根据工单号查询不良品记录
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns></returns>
[HttpGet("byWorkorder")]
[ActionPermissionFilter(Permission = "qcscraprecords:list")]
public IActionResult GetQcScrapRecordsByWorkorder([FromQuery] string workorder)
{
if (string.IsNullOrEmpty(workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var response = _QcScrapRecordsService.GetQcScrapRecordsByWorkorder(workorder);
return SUCCESS(response);
}
/// <summary>
/// 根据工单号填写报废单
/// </summary>
/// <param name="parm">报废单数据</param>
/// <returns></returns>
[HttpPost("scrapOrder/byWorkorder")]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "根据工单号创建报废单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateScrapOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateScrapOrderByWorkorder(modal);
return SUCCESS(response);
}
/// <summary>
/// 根据工单号填写转用单
/// </summary>
/// <param name="parm">转用单数据</param>
/// <returns></returns>
[HttpPost("transferOrder/byWorkorder")]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "根据工单号创建转用单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateTransferOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateTransferOrderByWorkorder(modal);
return SUCCESS(response);
}
/// <summary>
/// 根据不良品记录ID撤销不良品记录
/// </summary>
/// <param name="id">不良品记录ID</param>
/// <returns></returns>
[HttpPut("revokeById/{id}")]
[ActionPermissionFilter(Permission = "qcscraprecords:revoke")]
[Log(Title = "根据ID撤销不良品记录", BusinessType = BusinessType.UPDATE)]
public IActionResult RevokeScrapRecordById([FromRoute] long id)
{
var response = _QcScrapRecordsService.RevokeScrapRecordById(id);
return ToResponse(response);
}
}
}