using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.service.Warehouse;
using NewPdaSqlServer.util;
namespace NewPdaSqlServer.Controllers.Warehouse;
///
/// 其他出库相关接口
///
[Route("api/[controller]")]
[ApiController]
public class MesItemQtController : ControllerBase
{
private readonly MesItemQtManager _manager = new();
#region 基础CRUD
///
/// 获取所有
///
/// 其他出库单列表
[HttpPost("GetList")]
public ResponseResult GetList()
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.GetList();
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
#endregion
#region 其他出库业务
///
/// 获取未完成的退料单号列表
///
/// 退料单号列表
///
/// 获取状态为已审核(Qt015=true)且未完结(Qt014=false)的退料单号列表
///
/// 成功获取退料单号列表
/// 获取失败
[HttpPost("GetPendingQtList")]
public ResponseResult GetPendingQtList()
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.GetPendingQtList();
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取待处理的退料单明细列表
///
/// 查询参数
/// 待处理的退料单明细列表
///
/// 请求示例:
/// POST /api/MesItemQt/GetPendingQtList
/// {
/// "userName": "admin", // 用户名(必填)
/// "billNo": "QT20240101001" // 退料单号(必填)
/// }
/// 返回未完成的明细记录(Qd007-Qd008>0)
///
/// 成功获取退料单明细
/// 获取失败,返回具体错误信息
[HttpPost("GetPendingQtDetailList")]
public ResponseResult GetPendingQtDetailList(
[FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.GetPendingQtList(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 扫描条码出库
///
/// 查询参数
/// 出库结果、待处理明细和提示消息
///
/// 请求示例:
/// POST /api/MesItemQt/OutScanBarcode
/// {
/// "billNo": "QT20240101001", // 退料单号(必填)
/// "barcode": "BC001", // 条码号(必填)
/// "userName": "admin" // 用户名(必填)
/// }
/// 返回数据包含:
/// - form: 处理结果表单
/// - item: 待处理明细列表
/// - message: 处理结果消息
///
/// 扫描成功
/// 扫描失败,返回具体错误信息
[HttpPost("OutScanBarcode")]
public ResponseResult OutScanBarcode([FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
var (form, items, message) = _manager.OutScanBarcode(query);
resultInfos.form = form;
resultInfos.items = items;
resultInfos.message = message;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 打印条码出库
///
/// 查询参数
/// 出库结果、待处理明细和提示消息
///
/// 请求示例:
/// POST /api/MesItemQt/PrintQtckBarcode
/// {
/// "userName": "admin", // 用户名(必填)
/// "billNo": "QT20240101001", // 退料单号(必填)
/// "barcode": "BC001", // 条码号(必填)
/// "Fum": 10 // 发料数量(必填,必须大于0)
/// }
/// 返回数据包含:
/// - form: 处理结果表单
/// - item: 待处理明细列表
/// - message: 处理结果消息
///
/// 打印成功
/// 打印失败,返回具体错误信息
[HttpPost("PrintQtckBarcode")]
public ResponseResult PrintQtckBarcode([FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
var (form, items, message) = _manager.PrintQtckBarcode(query);
resultInfos.form = form;
resultInfos.items = items;
resultInfos.message = message;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
#endregion
}