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();
|
|
/// <summary>
|
/// 扫码
|
/// </summary>
|
/// <param name="query">扫码请求参数</param>
|
/// <returns>ResponseResult对象,包含状态、消息和数据</returns>
|
/// // Demo Request:
|
// POST /api/WwGd/ScanCode
|
// BodyGetItemsByDaa001
|
// {
|
// "query": {
|
// "Code": "SampleCode",
|
// "Type": 1
|
// }
|
// }
|
[HttpPost("ScanCode")]
|
public ResponseResult ScanCode(WarehouseQuery query)
|
{
|
try
|
{
|
// 调用WwGdManager的ScanCode方法进行扫码操作
|
dynamic resultInfos = new ExpandoObject();
|
resultInfos.tbBillList = m.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);
|
}
|
}
|
|
/// <summary>
|
/// 扫码确认
|
/// </summary>
|
/// <param name="query">扫码确认请求参数</param>
|
/// <returns>ResponseResult对象,包含状态、消息和数据</returns>
|
/// // 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);
|
}
|
}
|
|
/// <summary>
|
/// 根据工单号获取代领物料明细
|
/// </summary>
|
/// <param name="query">工单号请求参数</param>
|
/// <returns>ResponseResult对象,包含状态、消息和数据</returns>
|
// 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);
|
}
|
}
|
|
/// <summary>
|
/// 委外工单补料扫码
|
/// </summary>
|
/// <param name="query">条形码号</param>
|
/// <returns>ResponseResult对象,包含状态、消息和数据</returns>
|
// Demo Request:
|
// POST /api/WwGd/WwblScanBarcode
|
// Body:
|
// {
|
// 参数说明:
|
// - billNo: 单据号(必填)
|
// - barcode: 条码(必填)
|
// - userName: 用户名
|
// - blNo: 补料单号(必填)
|
// }
|
[HttpPost("WwblScanBarcode")]
|
public ResponseResult WwblScanBarcode(WarehouseQuery query)
|
{
|
try
|
{
|
dynamic resultInfos = new ExpandoObject();
|
var (success, pendingList) = m.WwblScanBarcode(query);
|
resultInfos.success = success;
|
resultInfos.pendingList = pendingList;
|
if (success.status == 2)
|
{
|
return new ResponseResult
|
{
|
status = Convert.ToInt32(success.status),
|
message = success.message,
|
data = resultInfos.success
|
};
|
}
|
return new ResponseResult
|
{
|
status = 0,
|
message = "OK",
|
data = resultInfos
|
};
|
}
|
catch (Exception ex)
|
{
|
// 如果发生异常,返回错误信息
|
return ResponseResult.ResponseError(ex);
|
}
|
}
|
|
/// <summary>
|
/// 生产补料单条码拆分
|
/// </summary>
|
/// <param name="query">查询参数</param>
|
/// <returns>拆分结果和待处理列表</returns>
|
/// <remarks>
|
/// 请求示例:
|
/// POST /api/WwGd/SplitBarcode
|
/// {
|
/// "billNo": "WO202401010001", // 工单号(必填)
|
/// "barcode": "BC001", // 条码号(必填)
|
/// "userName": "admin", // 用户名(必填)
|
/// "blNo": "BL202401010001", // 补料单号(必填)
|
/// "Num": 10 // 拆分数量(必填,必须大于0)
|
/// }
|
/// 业务处理:
|
/// - 验证补料单状态
|
/// - 验证条码库存信息
|
/// - 验证拆分数量是否合理
|
/// - 执行条码拆分事务处理
|
/// - 更新工单和补料单相关数量
|
/// 返回数据包含:
|
/// - success: 拆分是否成功
|
/// - pendingList: 待处理明细列表,包含:
|
/// * Bld012: 物料ID
|
/// * Bld002: 物料编号
|
/// * Bld003: 物料名称
|
/// * Bld004: 物料规格
|
/// * Bld007: 计划数量
|
/// * Bld008: 已补数量
|
/// </remarks>
|
/// <response code="200">拆分成功</response>
|
/// <response code="400">拆分失败,返回具体错误信息</response>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 扫描条码
|
/// </summary>
|
/// <param name="query">查询对象</param>
|
/// <returns>ResponseResult对象,包含状态、消息和数据</returns>
|
/// <remarks>
|
/// 请求示例:
|
/// POST /api/WwGd/WwtlScanBarcode
|
/// {
|
/// "barcode": "BC001", // 条码号(必填)
|
/// "userName": "admin", // 用户名(必填)
|
/// }
|
/// 业务处理:
|
/// - 验证条码是否存在
|
/// - 验证用户是否有权限
|
/// - 执行条码扫描事务处理
|
/// - 更新相关记录
|
/// 返回数据包含:
|
/// - success: 扫描是否成功
|
/// - message: 扫描结果信息
|
/// </remarks>
|
/// <response code="200">扫描成功</response>
|
/// <response code="400">扫描失败,返回具体错误信息</response>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 获取所有
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
|
/// <summary>
|
/// 根据主键获取
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 根据主键删除
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 添加
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 添加返回自增
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
|
/// <summary>
|
/// 修改
|
/// </summary>
|
/// <returns></returns>
|
[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);
|
}
|
}
|
}
|