using System.Data;
|
using System.Data.SqlClient;
|
using Masuit.Tools;
|
using NewPdaSqlServer.DB;
|
using NewPdaSqlServer.Dto.service;
|
using NewPdaSqlServer.entity;
|
using NewPdaSqlServer.entity.Base;
|
using SqlSugar;
|
|
namespace NewPdaSqlServer.service.Warehouse;
|
|
public class MesOaToMesManager : Repository<OaToMesQuery>
|
{
|
public string ApproveIqcEx(OaToMesQuery query)
|
{
|
var _strMsg = "";
|
var _intSum = 0;
|
using (var conn = new SqlConnection(DbHelperSQL.strConn))
|
{
|
// 参数校验增强
|
if (query.iqcExNo.IsNullOrEmpty()) throw new Exception("异常单号不允许为空");
|
if (query.dataJson == null || !query.dataJson.Any()) throw new Exception("检验数据不能为空");
|
|
using (var cmd = new SqlCommand("[iqc_ycd_oa_mes]", conn))
|
{
|
try
|
{
|
conn.Open();
|
|
//// 校验MES检验单
|
//var checkSql = @"SELECT B.releaseNo AS jydNo
|
// FROM Mes_QC_Exceptional_Detail B
|
// LEFT JOIN Mes_QC_Exceptional A ON A.guid = B.pGuid
|
// WHERE A.fBillNo = @iqcExNo";
|
//using (var checkCmd = new SqlCommand(checkSql, conn))
|
//{
|
// checkCmd.Parameters.AddWithValue("@iqcExNo", query.iqcExNo);
|
// var dbJydList = new List<string>();
|
// using (var reader = checkCmd.ExecuteReader())
|
// {
|
// while (reader.Read())
|
// {
|
// dbJydList.Add(reader["jydNo"].ToString());
|
// }
|
// }
|
|
// // 验证数据一致性
|
// var inputJydList = query.dataJson.Select(d => d.jyd).ToList();
|
// var diff = inputJydList.Except(dbJydList).Union(dbJydList.Except(inputJydList));
|
// if (diff.Any())
|
// {
|
// throw new Exception($"传入异常处置单对应的检验单号与MES不匹配,差异单号:{string.Join(",", diff)}");
|
// }
|
//}
|
|
// 循环处理每条数据
|
foreach (var item in query.dataJson)
|
{
|
cmd.Parameters.Clear();
|
cmd.CommandType = CommandType.StoredProcedure;
|
SqlParameter[] parameters =
|
{
|
new SqlParameter("@outMsg", SqlDbType.NVarChar, 150) { Direction = ParameterDirection.Output },
|
new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
|
new SqlParameter("@ycdNo", query.iqcExNo),
|
new SqlParameter("@jydNo", item.jyd),
|
new SqlParameter("@xblb", item.xblb),
|
new SqlParameter("@clyj", item.clyj),
|
new SqlParameter("@jssl", item.jssl),
|
new SqlParameter("@inFieldValue", 1)
|
};
|
cmd.Parameters.AddRange(parameters);
|
cmd.ExecuteNonQuery();
|
|
_intSum += (int)parameters[1].Value;
|
if ((int)parameters[1].Value <= 0)
|
{
|
throw new Exception(parameters[0].Value.ToString());
|
}
|
}
|
string rtnMsg = $"{query.iqcExNo}审批推送MES成功!";
|
|
return rtnMsg;
|
}
|
catch (Exception ex)
|
{
|
// 增强异常日志
|
_strMsg = $"异常处置失败:{ex.Message}";
|
throw new Exception(_strMsg);
|
}
|
finally
|
{
|
conn.Close();
|
}
|
}
|
}
|
}
|
|
public string RetrunIqcEx(OaToMesRQuery query)
|
{
|
var _strMsg = "";
|
var _intSum = 0;
|
using (var conn = new SqlConnection(DbHelperSQL.strConn))
|
{
|
// 参数校验增强
|
if (query.iqcExNo.IsNullOrEmpty()) throw new Exception("异常单号不允许为空");
|
|
using (var cmd = new SqlCommand("[iqc_ycd_oa_mes]", conn))
|
{
|
try
|
{
|
conn.Open();
|
int inFieldValue = 0;
|
|
cmd.CommandType = CommandType.StoredProcedure;
|
SqlParameter[] parameters =
|
{
|
new SqlParameter("@outMsg", SqlDbType.NVarChar, 150) { Direction = ParameterDirection.Output },
|
new SqlParameter("@outSum", SqlDbType.Int) { Direction = ParameterDirection.Output },
|
new SqlParameter("@ycdNo", query.iqcExNo),
|
new SqlParameter("@jydNo", DBNull.Value),
|
new SqlParameter("@xblb", DBNull.Value),
|
new SqlParameter("@clyj", DBNull.Value),
|
new SqlParameter("@jssl", DBNull.Value),
|
new SqlParameter("@inFieldValue", inFieldValue)
|
};
|
cmd.Parameters.AddRange(parameters);
|
cmd.ExecuteNonQuery();
|
|
_intSum = (int)parameters[1].Value;
|
if (_intSum <= 0)
|
{
|
throw new Exception(parameters[0].Value.ToString());
|
}
|
|
return $"{query.iqcExNo}退回操作成功!影响记录数:{_intSum}";
|
}
|
catch (Exception ex)
|
{
|
_strMsg = $"异常单退回失败:{ex.Message}";
|
throw new Exception(_strMsg);
|
}
|
finally
|
{
|
conn.Close();
|
}
|
}
|
}
|
}
|
}
|