Files
kunshan-bzfm-mes-backend/DOAN.Admin.WebApi/Controllers/MES/Quality/IPQC/QcScrapRecordsController.cs

302 lines
11 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 DOAN.Admin.WebApi.Filters;
using DOAN.Model.BZFM;
using DOAN.Model.BZFM.Dto;
using DOAN.Service.BZFM.IService;
using Microsoft.AspNetCore.Mvc;
//创建时间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)
{
try
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateScrapOrderByWorkorder(modal);
return SUCCESS(response);
}
catch (Exception ex)
{
return ToResponse(StatusCodes.Status500InternalServerError, ex.Message);
}
}
/// <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)
{
try
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateTransferOrderByWorkorder(modal);
return SUCCESS(response);
}
catch (Exception ex)
{
return ToResponse(StatusCodes.Status500InternalServerError, ex.Message);
}
}
/// <summary>
/// 根据工单号填写不良品单
/// </summary>
/// <param name="parm">不良品单数据</param>
/// <returns></returns>
[HttpPost("defectOrder/byWorkorder")]
[ActionPermissionFilter(Permission = "qcscraprecords:add")]
[Log(Title = "根据工单号创建不良品单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateDefectOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
{
try
{
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateDefectOrderByWorkorder(modal);
return SUCCESS(response);
}
catch (Exception ex)
{
return ToResponse(StatusCodes.Status500InternalServerError, ex.Message);
}
}
/// <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)
{
try
{
var response = _QcScrapRecordsService.RevokeScrapRecordById(id);
if (response > 0)
{
return SUCCESS(response);
}
else
{
return ToResponse(
StatusCodes.Status400BadRequest,
"撤销不良品记录失败,可能记录已被审批或不存在"
);
}
}
catch (Exception ex)
{
return ToResponse(StatusCodes.Status500InternalServerError, ex.Message);
}
}
}
}