using MES.Service.DB;
|
using MES.Service.Dto.service;
|
using MES.Service.util;
|
using SqlSugar;
|
using System.Data;
|
|
namespace MES.Service.service.QC;
|
|
public class GDBLQRService
|
{
|
/// <summary>
|
/// 获取工单头信息和备料明细列表(双游标)
|
/// </summary>
|
public (dynamic Header, List<dynamic> Details, string Msg) GetMoFullInfo(string moNo)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
|
var parameters = new List<SugarParameter>
|
{
|
new("pi_mo_no", moNo),
|
new("po_header", null) { Direction = ParameterDirection.Output },
|
new("po_details", null) { Direction = ParameterDirection.Output },
|
new("po_msg", null)
|
{
|
Direction = ParameterDirection.Output,
|
DbType = System.Data.DbType.String,
|
Size = 200
|
}
|
};
|
|
DataSet resultSets = db.Ado.UseStoredProcedure().GetDataSetAll("PRC_PREPARE_GET_MO_FULL_INFO", parameters);
|
|
var msg = parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "OK";
|
|
if (msg != "OK")
|
return (null, null, msg); // ❌ 状态异常,不返回任何数据
|
|
var header = resultSets.Tables[0].ToDynamic().FirstOrDefault();
|
var details = resultSets.Tables[1].ToDynamic();
|
return (header, details, msg);
|
}
|
|
/// <summary>
|
/// 扫码更新物料扫描数量
|
/// </summary>
|
public string ScanBarcode(string moNo, string barcode)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
|
var parameters = new List<SugarParameter>
|
{
|
new("pi_mo_no", moNo),
|
new("pi_barcode", barcode),
|
new("po_msg", null)
|
{
|
Direction = ParameterDirection.Output,
|
DbType = System.Data.DbType.String, // ✅ 显式指定 System.Data.DbType 避免歧义
|
Size = 200
|
}
|
};
|
|
db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_SCAN_BARCODE", parameters);
|
|
return parameters.First(p => p.ParameterName == "po_msg").Value?.ToString() ?? "";
|
}
|
|
/// <summary>
|
/// 工单生产确认(打标确认人和时间)
|
/// </summary>
|
public void ConfirmPrepare(string moNo, string user)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
|
var parameters = new List<SugarParameter>
|
{
|
new("pi_mo_no", moNo),
|
new("pi_user", user)
|
};
|
|
db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_PRODUCTION_CONFIRM", parameters);
|
}
|
|
/// <summary>
|
/// 工单品质复核确认(打标确认人和时间)
|
/// </summary>
|
public void ReviewPrepare(string moNo, string user)
|
{
|
var db = SqlSugarHelper.GetInstance();
|
|
var parameters = new List<SugarParameter>
|
{
|
new("pi_mo_no", moNo),
|
new("pi_user", user)
|
};
|
|
db.Ado.UseStoredProcedure().ExecuteCommand("PRC_PREPARE_QUALITY_REVIEW", parameters);
|
}
|
}
|