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
}