feat(报废管理): 增强报废单功能并完善相关业务逻辑

refactor(报废单): 重构报废单DTO和实体类结构
fix(报废单): 修复审批和撤销逻辑中的问题
feat(报废单): 添加工单关联和库存操作功能
style(报废单): 优化代码格式和注释
This commit is contained in:
2026-02-10 19:00:54 +08:00
parent 9793fdd42f
commit 0885d26796
5 changed files with 631 additions and 279 deletions

View File

@@ -1,8 +1,8 @@
using Microsoft.AspNetCore.Mvc;
using DOAN.Model.BZFM.Dto;
using DOAN.Model.BZFM;
using DOAN.Service.BZFM.IService;
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
@@ -37,7 +37,6 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
return SUCCESS(response);
}
/// <summary>
/// 查询报废记录表详情
/// </summary>
@@ -142,9 +141,16 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
[HttpPut("approve/{id}")]
[ActionPermissionFilter(Permission = "qcscraprecords:approve")]
[Log(Title = "审批报废记录", BusinessType = BusinessType.UPDATE)]
public IActionResult ApproveScrapRecord([FromRoute] long id, [FromBody] ScrapApproveDto parm)
public IActionResult ApproveScrapRecord(
[FromRoute] long id,
[FromBody] ScrapApproveDto parm
)
{
var response = _QcScrapRecordsService.ApproveScrapRecord(id, parm.IsApproved, parm.Approver);
var response = _QcScrapRecordsService.ApproveScrapRecord(
id,
parm.IsApproved,
parm.Approver
);
return ToResponse(response);
}
@@ -190,14 +196,21 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
[Log(Title = "根据工单号创建报废单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateScrapOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
{
if (string.IsNullOrEmpty(parm.Workorder))
try
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateScrapOrderByWorkorder(modal);
return SUCCESS(response);
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>
@@ -210,14 +223,21 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
[Log(Title = "根据工单号创建转用单", BusinessType = BusinessType.INSERT)]
public IActionResult CreateTransferOrderByWorkorder([FromBody] QcScrapRecordsDto parm)
{
if (string.IsNullOrEmpty(parm.Workorder))
try
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
if (string.IsNullOrEmpty(parm.Workorder))
{
return ToResponse(StatusCodes.Status400BadRequest, "工单号不能为空");
}
var modal = parm.Adapt<QcScrapRecords>().ToCreate(HttpContext);
var response = _QcScrapRecordsService.CreateTransferOrderByWorkorder(modal);
return SUCCESS(response);
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>
@@ -230,8 +250,25 @@ namespace DOAN.Admin.WebApi.Controllers.BZFM
[Log(Title = "根据ID撤销不良品记录", BusinessType = BusinessType.UPDATE)]
public IActionResult RevokeScrapRecordById([FromRoute] long id)
{
var response = _QcScrapRecordsService.RevokeScrapRecordById(id);
return ToResponse(response);
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);
}
}
}
}
}