using System.Dynamic; using Microsoft.AspNetCore.Mvc; using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.service.@base; using NewPdaSqlServer.service.Warehouse; using NewPdaSqlServer.util; namespace NewPdaSqlServer.Controllers.Warehouse; /// /// 其他出库相关接口 /// [Route("api/[controller]")] [ApiController] public class MesItemQtController : BaseController { private readonly MesItemQtManager _manager = new(); private readonly MesPrintMangeer _mCf = 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(RequestInfo); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 获取待处理的退料单明细列表 /// /// 查询参数 /// 待处理的退料单明细列表 /// /// 请求示例: /// POST /api/MesItemQt/GetPendingQtDetailList /// { /// "userName": "admin", // 用户名(必填) /// "billNo": "QT20240101001" // 退料单号(必填) /// } /// 返回未完成的明细记录(Qd007-Qd008>0) /// /// 成功获取退料单明细 /// 获取失败,返回具体错误信息 [HttpPost("GetPendingQtDetailList")] public ResponseResult GetPendingQtDetailList([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetPendingQtDetailList(query, RequestInfo); 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); //} try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.ScanCode(query); if (resultInfos.tbBillList.result == "2") { return new ResponseResult { status = Convert.ToInt32(resultInfos.tbBillList.result), message = resultInfos.tbBillList.strMsg, data = resultInfos }; } 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); } } [HttpPost("ScanCodeCF")] public ResponseResult ScanCodeCF(WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = new ExpandoObject(); resultInfos.tbBillList.printInfo = _mCf.getPrintInfo(query); var scanResult = _manager.ScanCodeCF(query); resultInfos.tbBillList.cfBarInfo = _mCf.getCfInfo(scanResult); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion }