feat(IPQC): 添加根据工单号处理不良品记录功能

新增以下功能:
1. 根据工单号查询不良品记录
2. 根据工单号创建报废单和转用单
3. 根据ID撤销不良品记录
This commit is contained in:
2026-02-09 17:46:24 +08:00
parent 898ee3de2a
commit 6bc3343414
3 changed files with 160 additions and 0 deletions

View File

@@ -161,5 +161,77 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
var response = _QcScrapRecordsService.RevokeScrapRecord(id); var response = _QcScrapRecordsService.RevokeScrapRecord(id);
return ToResponse(response); 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);
}
} }
} }

View File

@@ -46,5 +46,33 @@ namespace DOAN.Service.BZFM.IService
/// <returns></returns> /// <returns></returns>
int RevokeScrapRecord(long id); int RevokeScrapRecord(long id);
/// <summary>
/// 根据工单号查询不良品记录
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns></returns>
PagedInfo<QcScrapRecordsDto> GetQcScrapRecordsByWorkorder(string workorder);
/// <summary>
/// 根据工单号填写报废单
/// </summary>
/// <param name="parm">报废单数据</param>
/// <returns></returns>
QcScrapRecords CreateScrapOrderByWorkorder(QcScrapRecords parm);
/// <summary>
/// 根据工单号填写转用单
/// </summary>
/// <param name="parm">转用单数据</param>
/// <returns></returns>
QcScrapRecords CreateTransferOrderByWorkorder(QcScrapRecords parm);
/// <summary>
/// 根据不良品记录ID撤销不良品记录
/// </summary>
/// <param name="id">不良品记录ID</param>
/// <returns></returns>
int RevokeScrapRecordById(long id);
} }
} }

View File

@@ -278,5 +278,65 @@ namespace DOAN.Service.BZFM
return Context.Updateable(updateObj).UpdateColumns(x => new { x.Status, x.UpdatedTime }).ExecuteCommand(); return Context.Updateable(updateObj).UpdateColumns(x => new { x.Status, x.UpdatedTime }).ExecuteCommand();
} }
/// <summary>
/// 根据工单号查询不良品记录
/// </summary>
/// <param name="workorder">工单号</param>
/// <returns></returns>
public PagedInfo<QcScrapRecordsDto> GetQcScrapRecordsByWorkorder(string workorder)
{
var queryDto = new QcScrapRecordsQueryDto
{
Workorder = workorder
};
return GetList(queryDto);
}
/// <summary>
/// 根据工单号填写报废单
/// </summary>
/// <param name="parm">报废单数据</param>
/// <returns></returns>
public QcScrapRecords CreateScrapOrderByWorkorder(QcScrapRecords parm)
{
// 验证工单号
if (string.IsNullOrEmpty(parm.Workorder))
{
throw new Exception("工单号不能为空");
}
// 调用现有的创建报废单方法
return CreateScrapOrder(parm);
}
/// <summary>
/// 根据工单号填写转用单
/// </summary>
/// <param name="parm">转用单数据</param>
/// <returns></returns>
public QcScrapRecords CreateTransferOrderByWorkorder(QcScrapRecords parm)
{
// 验证工单号
if (string.IsNullOrEmpty(parm.Workorder))
{
throw new Exception("工单号不能为空");
}
// 调用现有的创建转用单方法
return CreateTransferOrder(parm);
}
/// <summary>
/// 根据不良品记录ID撤销不良品记录
/// </summary>
/// <param name="id">不良品记录ID</param>
/// <returns></returns>
public int RevokeScrapRecordById(long id)
{
// 调用现有的撤销方法
return RevokeScrapRecord(id);
}
} }
} }