using System.Dynamic;
using Microsoft.AspNetCore.Mvc;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.service.Warehouse;
using NewPdaSqlServer.util;
namespace NewPdaSqlServer.Controllers.Warehouse;
///
/// 生产补料相关接口
///
[Route("api/[controller]")]
[ApiController]
public class MesXsckController : ControllerBase
{
private readonly MesXsckManager _manager = new();
/***进入模版管理可以修改模版***/
///
/// 获取所有
///
///
[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);
}
}
///
/// 根据主键获取
///
///
[HttpPost("GetById")]
public ResponseResult GetById(int id)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.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 = _manager.DeleteByIds(ids);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 添加
///
///
[HttpPost("Insert")]
public ResponseResult Add([FromBody] MesItemBl data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.Insert(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 添加返回自增
///
///
[HttpPost("InsertReturnIdentity")]
public ResponseResult InsertReturnIdentity([FromBody] MesItemBl data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.InsertReturnIdentity(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 修改
///
///
[HttpPost("Update")]
public ResponseResult Update([FromBody] MesItemBl data)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.Update(data);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 生产补料单条码拆分
///
/// 查询参数
/// 拆分结果和待处理列表
///
/// 请求示例:
/// POST /api/MesItemBl/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) = _manager.SplitBarcode(query);
resultInfos.success = success;
resultInfos.pendingList = pendingList;
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
#region 销售出库
///
/// 获取生产补料单号列表
///
/// 补料单号列表
/// 成功获取补料单号列表
/// 获取失败
[HttpPost("GetFHTZBillNo")]
public ResponseResult GetFHTZBillNo(WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.GetFHTZBillNo(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 根据单号获取生产补料单明细
///
/// 查询参数,必须包含billNo
/// 补料单明细列表
///
/// 请求示例:
/// POST /api/MesItemBl/GetMesItemBlDetailByBillNo
/// {
/// "billNo": "BL202401010001"
/// }
///
/// 成功获取补料单明细
/// 获取失败,可能是单据号不存在或已完成
[HttpPost("GetMesItemFHTZetailByBillNo")]
public ResponseResult GetMesItemFHTZetailByBillNo(
[FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.GetMesItemFHTZetailByBillNo(query);
return new ResponseResult
{
status = 0,
message = "OK",
data = resultInfos
};
}
catch (Exception ex)
{
return ResponseResult.ResponseError(ex);
}
}
///
/// 扫描条码
///
/// 查询参数
/// 扫描结果和待处理列表
///
/// 请求示例:
/// POST /api/MesItemBl/SctlScanBarcode
/// {
/// "billNo": "WO202401010001",
/// "barcode": "1234567890",
/// "userName": "admin",
/// "blNo": "BL202401010001"
/// }
///
/// 扫描成功
/// 扫描失败,返回具体错误信息
[HttpPost("XSCKScanBarcode")]
public ResponseResult XSCKScanBarcode([FromBody] WarehouseQuery query)
{
try
{
dynamic resultInfos = new ExpandoObject();
resultInfos.tbBillList = _manager.XSCKScanBarcode(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);
}
}
#endregion
}