using Masuit.Tools;
|
using MES.Service.Modes;
|
using NewPdaSqlServer.DB;
|
using NewPdaSqlServer.Dto.service;
|
using NewPdaSqlServer.entity;
|
using NewPdaSqlServer.entity.Base;
|
using NewPdaSqlServer.util;
|
using OracleInternal.Sharding;
|
using SqlSugar;
|
using SqlSugar.Extensions;
|
using System.Data;
|
using System.Data.SqlClient;
|
|
namespace NewPdaSqlServer.service.Warehouse;
|
|
public class MesXsthManager : Repository<MesItemBl>
|
{
|
/// <summary>
|
/// 获取销售退货申请列表
|
/// </summary>
|
/// <returns>销售退货申请列表</returns>
|
public dynamic GetXsthBillNo(WarehouseQuery query,dynamic RequestInfo)
|
{
|
var orgId = RequestInfo.OrgId;
|
|
if (orgId == null)
|
throw new Exception("组织不存在!");
|
|
// 获取未完成的退料单号列表
|
var parameters = new[]
|
{
|
new SugarParameter("@pi_orgId", orgId),
|
new SugarParameter("@inP1", null),
|
new SugarParameter("@inP2", null),
|
new SugarParameter("@inP3", null),
|
new SugarParameter("@inP4", null)
|
};
|
try
|
{
|
// 返回单号字符串列表
|
var blDetails = Db.Ado.SqlQuery<string>(
|
"EXEC prc_pda_xsth_list @pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters);
|
return blDetails;
|
}
|
catch (Exception ex)
|
{
|
throw new Exception($"{ex.Message}");
|
}
|
}
|
|
/// <summary>
|
/// 根据单号获取MES物料表明细
|
/// </summary>
|
/// <param name="query">仓库查询参数</param>
|
/// <returns>物料明细列表</returns>
|
public dynamic GetMesItemDetailByBillNo(dynamic query, dynamic RequestInfo)
|
{
|
if (string.IsNullOrEmpty(query.billNo))
|
throw new Exception("请选单据号!");
|
|
if (query == null)
|
throw new ArgumentNullException(nameof(query), "参数对象不能为null");
|
|
if (string.IsNullOrEmpty(query.billNo?.ToString()))
|
throw new ArgumentException("单据号不能为空", nameof(query.billNo));
|
|
var orgId = RequestInfo.OrgId;
|
|
if (orgId == null)
|
throw new Exception("组织不存在!");
|
|
// 获取未完成的销售退货明细
|
var parameters = new[]
|
{
|
new SugarParameter("@billNo", query.billNo),
|
new SugarParameter("@pi_orgId",orgId),
|
new SugarParameter("@inP1", null),
|
new SugarParameter("@inP2", null),
|
new SugarParameter("@inP3", null),
|
new SugarParameter("@inP4", null)
|
};
|
try
|
{
|
List<dynamic>? blDetails = Db.Ado.SqlQuery<dynamic>(
|
"EXEC prc_pda_xsth_detailList @billNo,@pi_orgId,@inP1,@inP2,@inP3,@inP4", parameters);
|
var items = blDetails.Where(x => x.DSQty > 0).ToList(); // 待扫物料
|
var ysitems = blDetails.Where(x => x.SQty > 0).ToList(); // 已扫物料
|
return new
|
{
|
items = items,
|
ysitems = ysitems,
|
Count = items.Count + ysitems.Count
|
};
|
}
|
catch (Exception ex)
|
{
|
// 保留原有异常处理逻辑
|
throw new Exception($"{ex.Message}");
|
}
|
}
|
|
/// <summary>
|
/// 销售退货入库
|
/// </summary>
|
/// <param name="unity"></param>
|
/// <returns></returns>
|
/// <exception cref="Exception"></exception>
|
public string XsthScanBarcode(WarehouseQuery unity)
|
{
|
var _strMsg = "";
|
var _intSum = "";
|
using (var conn = new SqlConnection(DbHelperSQL.strConn))
|
{
|
if (unity.userName.IsNullOrEmpty()) throw new Exception("用户名不允许为空");
|
if (unity.sectionCode.IsNullOrEmpty()) throw new Exception("库位编号不允许为空");
|
if (unity.barcode.IsNullOrEmpty()) throw new Exception("条码不允许为空");
|
if (unity.billNo.IsNullOrEmpty()) throw new Exception("申请单号不允许为空");
|
|
using (var cmd = new SqlCommand("[prc_pda_inv_xsth]", conn))
|
{
|
try
|
{
|
conn.Open();
|
cmd.CommandType = CommandType.StoredProcedure;
|
SqlParameter[] parameters =
|
{
|
new("@po_outMsg", SqlDbType.NVarChar, 300),
|
new("@po_outSum", SqlDbType.NVarChar, 300),
|
//new("@po_womInBarSum", SqlDbType.NVarChar, 300),
|
new("@pi_user", unity.userName),
|
new("@pi_barcode", unity.barcode),
|
new("@pi_sectionCode", unity.sectionCode),
|
new("@pi_billno", unity.billNo),
|
|
};
|
parameters[0].Direction = ParameterDirection.Output;
|
parameters[1].Direction = ParameterDirection.Output;
|
// parameters[2].Direction = ParameterDirection.Output;
|
|
foreach (var parameter in parameters)
|
cmd.Parameters.Add(parameter);
|
cmd.ExecuteNonQuery();
|
_strMsg = parameters[0].Value.ToString();
|
_intSum = parameters[1].Value.ToString();
|
|
var result = Convert.ToInt32(_intSum);
|
if (result <= 0) throw new Exception(_strMsg);
|
|
return _strMsg;
|
|
//return 0;
|
|
}
|
catch (Exception ex)
|
{
|
throw new Exception(ex.Message);
|
}
|
finally
|
{
|
conn.Close();
|
}
|
}
|
}
|
}
|
}
|