using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.Wom;
using NewPdaSqlServer.util;
namespace NewPdaSqlServer.Controllers.Wom;
[ApiController]
[Route("api/[controller]")]
public class WwGdController : ControllerBase
{
private readonly WwGdManager m = new();
///
/// 扫码
///
/// 扫码请求参数
/// ResponseResult对象,包含状态、消息和数据
/// // Demo Request:
// POST /api/WwGd/ScanCode
// Body:
// {
// "query": {
// "Code": "SampleCode",
// "Type": 1
// }
// }
[HttpPost("ScanCode")]
public ResponseResult ScanCode(WarehouseQuery query)
{
try
{
// 调用WwGdManager的ScanCode方法进行扫码操作
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.ScanCode(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
// 如果发生异常,返回错误信息
return ResponseResult.ResponseError(ex);
}
}
///
/// 扫码确认
///
/// 扫码确认请求参数
/// ResponseResult对象,包含状态、消息和数据
/// // Demo Request:
// POST /api/WwGd/ScanCodeCF
// Body:
// {
// "query": {
// "Code": "SampleCode",
// "Type": 1
// }
// }
[HttpPost("ScanCodeCF")]
public ResponseResult ScanCodeCF(WarehouseQuery query)
{
try
{
// 调用WwGdManager的ScanCodeCF方法进行扫码确认操作
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.ScanCodeCF(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
// 如果发生异常,返回错误信息
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据工单号获取代领物料明细
///
/// 工单号请求参数
/// ResponseResult对象,包含状态、消息和数据
// Demo Request:
// POST /api/WwGd/GetItemsByDaa001
// Body:
// {
// "query": {
// "BillNo": "SampleBillNo"
// }
// }
[HttpPost("GetItemsByDaa001")]
public ResponseResult GetItemsByDaa001(WarehouseQuery query)
{
try
{
// 调用WwGdManager的GetItemsByDaa001方法获取代领物料明细
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.GetItemsByDaa001(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
// 如果发生异常,返回错误信息
return ResponseResult.ResponseError(ex);
}
}
///
/// 委外工单补料扫码
///
/// 条形码号
/// ResponseResult对象,包含状态、消息和数据
// Demo Request:
// POST /api/WwGd/WwblScanBarcode
// Body:
// {
// 参数说明:
// - billNo: 单据号(必填)
// - barcode: 条码(必填)
// - userName: 用户名
// - blNo: 补料单号(必填)
// }
[HttpPost("WwblScanBarcode")]
public ResponseResult WwblScanBarcode(WarehouseQuery query)
{
try
{
// 调用WwGdManager的WwblScanBarcode方法获取物料信息
dynamic resultInfos = new ExpandoObject();
resultInfos.materialInfo = m.WwblScanBarcode(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
// 如果发生异常,返回错误信息
return ResponseResult.ResponseError(ex);
}
}
///
/// 生产补料单条码拆分
///
/// 查询参数
/// 拆分结果和待处理列表
///
/// 请求示例:
/// POST /api/WwGd/SplitBarcode
/// {
/// "billNo": "WO202401010001", // 工单号(必填)
/// "barcode": "BC001", // 条码号(必填)
/// "userName": "admin", // 用户名(必填)
/// "blNo": "BL202401010001", // 补料单号(必填)
/// "Num": 10 // 拆分数量(必填,必须大于0)
/// }
/// 业务处理:
/// - 验证补料单状态
/// - 验证条码库存信息
/// - 验证拆分数量是否合理
/// - 执行条码拆分事务处理
/// - 更新工单和补料单相关数量
/// 返回数据包含:
/// - success: 拆分是否成功
/// - pendingList: 待处理明细列表,包含:
/// * Bld012: 物料ID
/// * Bld002: 物料编号
/// * Bld003: 物料名称
/// * Bld004: 物料规格
/// * Bld007: 计划数量
/// * Bld008: 已补数量
///
/// 拆分成功
/// 拆分失败,返回具体错误信息
[HttpPost("SplitBarcode")]
public ResponseResult SplitBarcode([FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
var (success, pendingList) = m.SplitBarcode(query);
resultInfos.success = success;
resultInfos.pendingList = pendingList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 扫描条码
///
/// 查询对象
/// ResponseResult对象,包含状态、消息和数据
///
/// 请求示例:
/// POST /api/WwGd/WwtlScanBarcode
/// {
/// "barcode": "BC001", // 条码号(必填)
/// "userName": "admin", // 用户名(必填)
/// }
/// 业务处理:
/// - 验证条码是否存在
/// - 验证用户是否有权限
/// - 执行条码扫描事务处理
/// - 更新相关记录
/// 返回数据包含:
/// - success: 扫描是否成功
/// - message: 扫描结果信息
///
/// 扫描成功
/// 扫描失败,返回具体错误信息
[HttpPost("WwtlScanBarcode")]
public ResponseResult WwtlScanBarcode([FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
var wwtlScanBarcode = m.WwtlScanBarcode(query);
resultInfos.tbBillList = wwtlScanBarcode;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 获取所有
///
///
[HttpPost("GetList")]
public ResponseResult GetList()
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.GetList();
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据主键获取
///
///
[HttpPost("GetById")]
public ResponseResult GetById(int id)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.GetById(id);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据主键删除
///
///
[HttpPost("DeleteByIds")]
public ResponseResult DeleteByIds([FromBody] object[] ids)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.DeleteByIds(ids);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 添加
///
///
[HttpPost("Insert")]
public ResponseResult Add([FromBody] WwGd data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.Insert(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 添加返回自增
///
///
[HttpPost("InsertReturnIdentity")]
public ResponseResult InsertReturnIdentity([FromBody] WwGd data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.InsertReturnIdentity(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 修改
///
///
[HttpPost("Update")]
public ResponseResult Update([FromBody] WwGd data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = m.Update(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
}