using System.Dynamic; // 引入动态类型支持 using Masuit.Tools.Win32.AntiVirus; // 引入防病毒工具库(但未在代码中使用) using Microsoft.AspNetCore.Mvc; // 引入ASP.NET Core MVC功能 using NewPdaSqlServer.Dto.service; // 引入项目特定的DTO服务 using NewPdaSqlServer.entity; // 引入项目实体类 using NewPdaSqlServer.service.@base; // 引入基础服务 using NewPdaSqlServer.service.Warehouse; // 引入仓库服务 using NewPdaSqlServer.util; // 引入工具类 using static Microsoft.EntityFrameworkCore.DbLoggerCategory; // 引入EF日志类别(但未在代码中使用) namespace NewPdaSqlServer.Controllers.Warehouse; // 控制器命名空间 /// /// 库位变更控制器,处理与库位变更相关的API请求 /// [ApiController] // 标记该类为API控制器,自动进行模型验证和错误处理 [Route("api/[controller]")] // 定义控制器路由模板,路由前缀为api/控制器名(Kwbg) public class KwbgController : ControllerBase // 控制器类继承自ControllerBase,提供Web API功能 { private readonly KwbgManager k = new(); // 创建库位变更管理器实例,用于处理业务逻辑 private readonly MesPrintMangeer _kBG = new(); // 创建打印管理器实例,用于处理打印相关业务 /// /// 获取条码信息和物料信息 /// /// 前端传递的WarehouseQuery对象,包含查询参数 /// 统一的响应结果,包含条码信息和物料信息 [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); // 调用统一错误处理方法,返回错误响应 } } /// /// 库位变更接口。 /// 接收前端传递的WarehouseQuery参数,完成条码变更及相关信息的查询和返回。 /// /// /// WarehouseQuery对象,包含条码、拆分数量、用户名等库位变更所需参数。 /// /// /// 返回ResponseResult统一响应对象,status为0表示成功,data包含变更后的条码及打印信息。 /// [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); } } }