修复销售订单查询报错的问题

This commit is contained in:
qmj
2025-10-09 02:08:11 +08:00
parent 5def74f70a
commit 4d48bbf980
7 changed files with 848 additions and 19 deletions
@@ -925,5 +925,200 @@ namespace UFIDA.U8.Framework.Api.ControlObject.PU
return res;
}
/// <summary>
/// 批量提交工作流(单号)
/// </summary>
/// <param name="baseLogin"></param>
/// <param name="sCardNum"></param>
/// <param name="enmVoucherType"></param>
/// <param name="cCodes"></param>
/// <param name="bPositive"></param>
/// <param name="sBillType"></param>
/// <param name="sBusType"></param>
/// <param name="UserMode"></param>
/// <param name="sOverDetailsXml"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<List<BaseResult<string>>> SubmintWf(BaseLogin baseLogin, string sCardNum, vouchertype enmVoucherType, List<string> cCodes, bool bPositive = true, string sBillType = null, string sBusType = null, UseMode UserMode = UseMode.CS, string sOverDetailsXml = null)
{
_logInfo.Debug("开始输出登录信息");
_logInfo.Debug(baseLogin._vbLogin.userToken);
var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml);
var conn = baseLogin.Connection;
var vouchers = CommonHelper.GetVouchers(conn, sCardNum);
var resList = new List<BaseResult<string>>();
foreach (var cCode in cCodes)
{
try
{
var strWhere = CommonHelper.GetPUVoucherWhereSqlByCode(vouchers, cCode);
var curId = CommonHelper.GetVoucherId(conn, cCode, vouchers);
var verifyResult = await SubmintWf(co, conn, enmVoucherType, cCode, curId, strWhere);
resList.Add(verifyResult);
}
catch (Exception ex)
{
await Task.Delay(1);
_logInfo.Error(ex.Message, ex);
}
}
return resList;
}
/// <summary>
/// 批量提交工作流(ID)
/// </summary>
/// <param name="baseLogin"></param>
/// <param name="sCardNum"></param>
/// <param name="enmVoucherType"></param>
/// <param name="vouchIds"></param>
/// <param name="bPositive"></param>
/// <param name="sBillType"></param>
/// <param name="UserMode"></param>
/// <param name="sOverDetailsXml"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<List<BaseResult<string>>> SubmintWf(BaseLogin baseLogin, string sCardNum, vouchertype enmVoucherType, List<long> vouchIds, bool bPositive = true, string sBillType = null, string sBusType = null, UseMode UserMode = UseMode.CS, string sOverDetailsXml = null)
{
var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml);
var conn = baseLogin.Connection;
var vouchers = CommonHelper.GetVouchers(conn, sCardNum);
var resList = new List<BaseResult<string>>();
foreach (var vouchId in vouchIds)
{
var strWhere = CommonHelper.GetPUVoucherWhereSqlById(vouchers, vouchId);
var cCode = CommonHelper.GetVoucherCode(conn, vouchId, vouchers);
var verifyResult = await SubmintWf(co, conn, enmVoucherType, cCode, vouchId, strWhere);
resList.Add(verifyResult);
}
return resList;
}
/// <summary>
/// 提交工作流(单号)
/// </summary>
/// <param name="baseLogin"></param>
/// <param name="sCardNum"></param>
/// <param name="enmVoucherType"></param>
/// <param name="cCode"></param>
/// <param name="bPositive"></param>
/// <param name="sBillType"></param>
/// <param name="sBusType"></param>
/// <param name="UserMode"></param>
/// <param name="sOverDetailsXml"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmintWf(BaseLogin baseLogin, string sCardNum, vouchertype enmVoucherType, string cCode, bool bPositive = true, string sBillType = null, string sBusType = null, UseMode UserMode = UseMode.CS, string sOverDetailsXml = null)
{
var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml);
var conn = baseLogin.Connection;
var vouchers = CommonHelper.GetVouchers(conn, sCardNum);
var curId = CommonHelper.GetVoucherId(conn, cCode, vouchers);
var strWhere = CommonHelper.GetPUVoucherWhereSqlByCode(vouchers, cCode);
var verifyResult = await SubmintWf(co, conn, enmVoucherType, cCode, curId, strWhere);
return verifyResult;
}
/// <summary>
/// 提交工作流(ID)
/// </summary>
/// <param name="baseLogin"></param>
/// <param name="sCardNum"></param>
/// <param name="enmVoucherType"></param>
/// <param name="vouchId"></param>
/// <param name="bPositive"></param>
/// <param name="sBillType"></param>
/// <param name="sBusType"></param>
/// <param name="UserMode"></param>
/// <param name="sOverDetailsXml"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmintWf(BaseLogin baseLogin, string sCardNum, vouchertype enmVoucherType, long vouchId, bool bPositive = true, string sBillType = null, string sBusType = null, UseMode UserMode = UseMode.CS, string sOverDetailsXml = null)
{
var co = InitCo(baseLogin, enmVoucherType, bPositive, sBillType, sBusType, UserMode, sOverDetailsXml);
var conn = baseLogin.Connection;
var vouchers = CommonHelper.GetVouchers(conn, sCardNum);
var strWhere = CommonHelper.GetPUVoucherWhereSqlById(vouchers, vouchId);
var cCode = CommonHelper.GetVoucherCode(conn, vouchId, vouchers);
var verifyResult = await SubmintWf(co, conn, enmVoucherType, cCode, vouchId, strWhere);
return verifyResult;
}
/// <summary>
/// 提交工作流
/// </summary>
/// <param name="voucherCO"></param>
/// <param name="conn"></param>
/// <param name="sVouchType"></param>
/// <param name="cCode"></param>
/// <param name="vouchId"></param>
/// <param name="strWhere"></param>
/// <returns></returns>
public async Task<BaseResult<string>> SubmintWf(dynamic voucherCO, Connection conn, vouchertype sVouchType, string cCode, object vouchId, string strWhere)
{
IXMLDOMDocument2 domHead = new DOMDocument();
IXMLDOMDocument2 domBody = new DOMDocument();
IXMLDOMDocument2 domMsg = new DOMDocument();
_logInfo.Debug("开始获取单据数据...");
voucherCO.GetVoucherData(ref domHead, ref domBody, strWhere);
var res = new BaseResult<string>
{
voucherCode = cCode,
voucherId = $"{vouchId}"
};
var errorMsg = "";
voucherCO.SubmintWf(domHead, ref errorMsg, vouchId);
res.bSuccess = string.IsNullOrWhiteSpace(errorMsg);
if (res.bSuccess)
{
res.message = "提交成功";
res.result = res.voucherId;
}
else
{
res.message = "提交失败";
res.result = string.IsNullOrWhiteSpace(errorMsg) ? "未知错误" : errorMsg;
await Task.Delay(1);
}
return res;
}
}
}