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

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;
}
}
}
@@ -206,7 +206,7 @@ namespace UFIDA.U8.Framework.Api.ControlObject.SA
IXMLDOMDocument2 domMsg = new DOMDocument();
_logInfo.Debug("开始获取单据数据...");
voucherCo.GetVoucherData(ref domHead, ref domBody, vouchId, true, strWhere);
voucherCo.GetVoucherData(ref domHead, ref domBody, vouchId, true, "");
var res = new BaseResult<string>
{
@@ -2,6 +2,7 @@
using System.Threading.Tasks;
using System.Web.UI.WebControls;
using log4net;
using Newtonsoft.Json.Linq;
using UFIDA.U8.Audit.ServiceProxy;
using UFIDA.U8.Framework.Api.ControlObject.Common;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
@@ -58,14 +59,26 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
{
var auditServiceProxy = new AuditServiceProxy();
var isWfControled = false;
var isWfControled = IsFlowEnabled(login, bizObjectId, eventId);
var errMsg = "";
var res = auditServiceProxy.SubmitApplicationMessage(bizObjectId, eventId, voucherId, login._productContext.calledContext, ref isWfControled, ref errMsg);
if (!res && !string.IsNullOrWhiteSpace(errMsg))
if (isWfControled)
{
throw new Exception(errMsg);
var context = new CalledContext() { subId = "PU", token = login.userToken };
var res = auditServiceProxy.SubmitApplicationMessage(bizObjectId, eventId, voucherId, context,
ref isWfControled, ref errMsg);
if (!res && !string.IsNullOrWhiteSpace(errMsg))
{
throw new Exception(errMsg);
}
if (!res)
{
throw new Exception("审批流发生异常");
}
}
if (!isWfControled && !string.IsNullOrWhiteSpace(errMsg))
@@ -78,12 +91,6 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
throw new Exception("当前单据无法进入工作流");
}
if (!res)
{
throw new Exception("审批流发生异常");
}
return new BaseResult<string>
{
bSuccess = true,
@@ -505,6 +512,98 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Workflow
}
}
/// <summary>
/// #提交审批流#
/// </summary>
/// <param name="login"></param>
/// <param name="cCardNum"></param>
/// <param name="voucherCode"></param>
/// <param name="bUAP"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmitResubmitMessage(BaseLogin login, string cCardNum, string voucherCode, bool bUAP = false)
{
var voucherId = "";
try
{
var vouchers = CommonHelper.GetVouchers(login.Connection, cCardNum);
voucherId = $"{CommonHelper.GetVoucherId(login.Connection, voucherCode, vouchers)}";
var bizObjectId = cCardNum;
if (bUAP)
{
bizObjectId = $"UAPFORM.{bizObjectId}";
}
return await SubmitResubmitMessage(login, bizObjectId, voucherId, voucherCode);
}
catch (Exception ex)
{
_logInfo.Error($"审批流异常:{ex.Message}", ex);
await Task.Delay(1);
return new BaseResult<string>
{
bSuccess = false,
message = "提交失败",
voucherCode = voucherCode,
voucherId = voucherId,
result = ex.Message
};
}
}
/// <summary>
/// #提交审批流#
/// </summary>
/// <param name="login"></param>
/// <param name="cCardNum"></param>
/// <param name="voucherId"></param>
/// <param name="bUAP"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public async Task<BaseResult<string>> SubmitResubmitMessage(BaseLogin login, string cCardNum, object voucherId, bool bUAP = false)
{
var voucherCode = "";
try
{
var vouchers = CommonHelper.GetVouchers(login.Connection, cCardNum);
voucherCode = $"{CommonHelper.GetVoucherCode(login.Connection, voucherId, vouchers)}";
var bizObjectId = cCardNum;
if (bUAP)
{
bizObjectId = $"UAPFORM.{bizObjectId}";
}
return await SubmitResubmitMessage(login, bizObjectId, $"{voucherId}", voucherCode);
}
catch (Exception ex)
{
_logInfo.Error($"审批流异常:{ex.Message}", ex);
await Task.Delay(1);
return new BaseResult<string>
{
bSuccess = false,
message = "提交失败",
voucherCode = voucherCode,
voucherId = $"{voucherId}",
result = ex.Message
};
}
}
/// <summary>
/// #取得代办任务#
/// </summary>