using System.Dynamic;
|
using Microsoft.AspNetCore.Mvc;
|
using NewPdaSqlServer.service.@base;
|
using NewPdaSqlServer.service.Warehouse;
|
using NewPdaSqlServer.util;
|
// 引入动态类型支持
|
// 引入防病毒工具库(但未在代码中使用)
|
// 引入ASP.NET Core MVC功能
|
// 引入项目特定的DTO服务
|
// 引入项目实体类
|
// 引入基础服务
|
// 引入仓库服务
|
// 引入工具类
|
|
// 引入EF日志类别(但未在代码中使用)
|
|
namespace NewPdaSqlServer.Controllers.Warehouse;
|
// 控制器命名空间
|
|
/// <summary>
|
/// 库位变更控制器,处理与库位变更相关的API请求
|
/// </summary>
|
[ApiController] // 标记该类为API控制器,自动进行模型验证和错误处理
|
[Route("api/[controller]")] // 定义控制器路由模板,路由前缀为api/控制器名(Kwbg)
|
public class
|
KwbgController : ControllerBase // 控制器类继承自ControllerBase,提供Web API功能
|
{
|
private readonly MesPrintMangeer _kBG = new(); // 创建打印管理器实例,用于处理打印相关业务
|
private readonly KwbgManager k = new(); // 创建库位变更管理器实例,用于处理业务逻辑
|
|
/// <summary>
|
/// 获取条码信息和物料信息
|
/// </summary>
|
/// <param name="unity">前端传递的WarehouseQuery对象,包含查询参数</param>
|
/// <returns>统一的响应结果,包含条码信息和物料信息</returns>
|
[HttpPost("GetBarInfo")] // 定义HTTP POST方法及子路由,访问路径为api/Kwbg/GetBarInfo
|
//public ResponseResult GetBarInfo(dynamic unity) // 旧方法签名,参数为dynamic类型(已注释)
|
public ResponseResult GetBarInfo(dynamic unity) // 新方法签名,参数为WarehouseQuery类型
|
{
|
try // 捕获异常,保证接口稳定性
|
{
|
dynamic resultInfos = new ExpandoObject(); // 创建动态对象,用于存储返回结果
|
resultInfos.tbBillList =
|
k.GetBarInfo(unity); // 调用管理器方法,获取条码信息,赋值给动态对象的tbBillList属性
|
return new ResponseResult // 构造统一响应结果对象
|
{
|
status = 0, // 状态码0表示成功
|
message = "OK", // 返回消息为OK
|
data = resultInfos // 返回数据为动态对象,包含条码和物料信息
|
};
|
}
|
catch (Exception ex) // 捕获所有异常
|
{
|
return ResponseResult.ResponseError(ex); // 调用统一错误处理方法,返回错误响应
|
}
|
}
|
|
/// <summary>
|
/// 库位变更接口。
|
/// 接收前端传递的WarehouseQuery参数,完成条码变更及相关信息的查询和返回。
|
/// </summary>
|
/// <param name="unity">
|
/// WarehouseQuery对象,包含条码、拆分数量、用户名等库位变更所需参数。
|
/// </param>
|
/// <returns>
|
/// 返回ResponseResult统一响应对象,status为0表示成功,data包含变更后的条码及打印信息。
|
/// </returns>
|
[HttpPost("ChangeDepotSection")]
|
public ResponseResult ChangeDepotSection(dynamic unity)
|
{
|
try
|
{
|
// 创建动态对象resultInfos,用于存储返回结果
|
dynamic resultInfos = new ExpandoObject();
|
// 初始化tbBillList属性为动态对象,用于存储条码相关信息
|
resultInfos.tbBillList = new ExpandoObject();
|
|
//resultInfos.tbBillList.printInfo = _kBG.getPrintInfo(unity);// 获取打印信息,调用打印管理器的getPrintInfo方法,结果赋值给tbBillList.printInfo
|
|
// 调用库位变更管理器的ChangeDepotSection方法,执行条码变更操作,返回拆分结果scanResult
|
var scanResult = k.ChangeDepotSection(unity);
|
|
//resultInfos.tbBillList.cfBarInfo = _kBG.getCfInfo(scanResult);// 获取拆分后条码的详细信息,调用打印管理器的getCfInfo方法,结果赋值给tbBillList.cfBarInfo
|
// 构造并返回统一响应对象,status为0表示成功,message为"OK",data为resultInfos
|
return new ResponseResult
|
{
|
status = 0,
|
message = "OK",
|
data = resultInfos
|
};
|
}
|
catch (Exception ex)
|
{
|
// 捕获异常,调用统一错误处理方法ResponseError,返回错误响应
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
}
|