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 ZzxdbController : BaseController { private readonly ZzxdbManager _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 调拨入库业务 /// /// 扫描条码进行调拨入库处理 /// /// 查询参数 /// 处理结果和待处理明细 /// /// 请求示例: /// POST /api/TransferOut/ScanReceiveBarcode /// { /// "billNo": "DB202401010001", // 调拨单号(必填) /// "userName": "admin", // 用户名(必填) /// "barcode": "BC001" // 条码号(必填) /// } /// 业务处理: /// - 验证调拨单状态 /// - 验证条码库存信息 /// - 验证仓库一致性 /// - 验证数量是否超出未扫数量 /// - 执行调拨入库事务处理 /// 返回数据包含: /// - form: 处理结果表单 /// - items: 待处理明细列表 /// /// 扫描成功 /// 扫描失败,返回具体错误信息 [HttpPost("ScanReceiveBarcode")] public ResponseResult ScanReceiveBarcode([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); var (form, items) = _manager.ScanReceiveBarcode(query); resultInfos.form = form; resultInfos.items = items; return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } #endregion #region 调拨业务 /// /// 获取周转箱物料列表 /// /// 获取周转箱物料列表 /// /// /// /// 成功获取周转箱物料列表 /// 获取失败 [HttpPost("GetItemNoList")] public ResponseResult GetItemNoList([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetTransferOutNoList(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 根据单据号获取库位明细 /// /// 查询参数 /// /// /// /// /// 成功获取库位明细 /// 获取失败,返回具体错误信息 [HttpPost("GetKwByBillNo")] public ResponseResult GetKwByBillNo( [FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetTransferOutDetailListByBillNo(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 根据物料编号和调出库位获取物料及对应库存明细 /// /// 查询参数 /// /// /// /// /// 成功获取库位明细 /// 获取失败,返回具体错误信息 [HttpPost("GetMesItemByItemNo")] public ResponseResult GetMesItemByItemNo( [FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetMesItemByItemNo(query, RequestInfo); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } [HttpPost("GetTransferInDetailListByBillNo")] public ResponseResult GetTransferInDetailListByBillNo( [FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.GetTransferInDetailListByBillNo(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 扫描条码进行调拨出库处理 /// /// 查询参数 /// 处理结果和待处理明细 /// /// 请求示例: /// POST /api/TransferOut/ScanMoveBarcode /// { /// "billNo": "DB202401010001", // 调拨单号(必填) /// "userName": "admin", // 用户名(必填) /// "barcode": "BC001" // 条码号(必填) /// } /// 业务处理: /// - 验证调拨单状态 /// - 验证条码库存信息 /// - 验证仓库一致性 /// - 验证数量是否超出未扫数量 /// - 执行调拨出库事务处理 /// 返回数据包含: /// - form: 处理结果表单 /// - items: 待处理明细列表 /// /// 扫描成功 /// 扫描失败,返回具体错误信息 [HttpPost("saveDbsq")] public ResponseResult saveDbsq([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.saveDbsq(query,RequestInfo); 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/TransferOut/ScanMoveBarcode /// { /// "billNo": "DB202401010001", // 调拨单号(必填) /// "userName": "admin", // 用户名(必填) /// "barcode": "BC001" // 条码号(必填) /// } /// 业务处理: /// - 验证调拨单状态 /// - 验证条码库存信息 /// - 验证仓库一致性 /// - 验证数量是否超出未扫数量 /// - 执行调拨出库事务处理 /// 返回数据包含: /// - form: 处理结果表单 /// - items: 待处理明细列表 /// /// 扫描成功 /// 扫描失败,返回具体错误信息 [HttpPost("deleteDbsqMx")] public ResponseResult deleteDbsqMx([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.deleteDbsqMx(query); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 扫描条码进行调拨出库处理 /// /// 查询参数 /// 处理结果和待处理明细 /// /// 请求示例: /// POST /api/TransferOut/ScanMoveBarcode /// { /// "billNo": "DB202401010001", // 调拨单号(必填) /// "userName": "admin", // 用户名(必填) /// "barcode": "BC001" // 条码号(必填) /// } /// 业务处理: /// - 验证调拨单状态 /// - 验证条码库存信息 /// - 验证仓库一致性 /// - 验证数量是否超出未扫数量 /// - 执行调拨出库事务处理 /// 返回数据包含: /// - form: 处理结果表单 /// - items: 待处理明细列表 /// /// 扫描成功 /// 扫描失败,返回具体错误信息 [HttpPost("submit")] public ResponseResult submit([FromBody] WarehouseQuery query) { try { dynamic resultInfos = new ExpandoObject(); resultInfos.tbBillList = _manager.submitDbBillNo(query, RequestInfo); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { return ResponseResult.ResponseError(ex); } } /// /// 分割条码进行调拨出库处理 /// /// 查询参数 /// 处理结果和待处理明细 /// /// 请求示例: /// POST /api/TransferOut/SplitBarcode /// { /// "billNo": "DB202401010001", // 调拨单号(必填) /// "userName": "admin", // 用户名(必填) /// "barcode": "BC001" // 条码号(必填) /// "fum": "1" // 拆分数(必填) /// } /// 业务处理: /// - 验证调拨单状态 /// - 验证条码库存信息 /// - 验证仓库一致性 /// - 验证数量是否超出未扫数量 /// - 执行分割条码的调拨出库事务处理 /// /// 分割成功 /// 分割失败,返回具体错误信息 [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 }