fix: 更新用印文件提取逻辑,改为从 fjFileInfo 中获取

This commit is contained in:
锦麟 王
2026-04-22 13:29:04 +08:00
parent 09ba40d1c7
commit f163b5ba79
+15 -36
View File
@@ -548,10 +548,10 @@ namespace YLErp.Modules.TradeModule
return new TradeOAResult { TradeId = oa.trade_id, Success = false, Message = "未找到确认书文档" };
}
// 从 detailMap 中提取用印文件信息
if (!TryExtractFileFromDetailMap(queryData.flowInfos, out var fileId, out var fileName))
// 从 fjFileInfo 中提取用印文件信息
if (!TryExtractFileFromFjFileInfo(queryData.flowInfos, out var fileId, out var fileName))
{
logger.Info($"无法从 detailMap 中提取用印文件信息,contract_code:{oa.contract_code}");
logger.Info($"无法从 fjFileInfo 中提取用印文件信息,contract_code:{oa.contract_code}");
return new TradeOAResult { TradeId = oa.trade_id, Success = false, Message = "无法提取用印文件信息" };
}
@@ -630,53 +630,32 @@ namespace YLErp.Modules.TradeModule
/// </summary>
private bool HasStampFiles(Newtonsoft.Json.Linq.JObject flowInfos)
{
var detailMap = flowInfos?["detailMap"];
if (detailMap == null || !detailMap.Any())
{
return false;
}
foreach (var detail in detailMap)
{
var fileInfos = detail["gatewayFileRequestFileInfo"];
if (fileInfos != null && fileInfos.Any())
{
return true;
}
}
return false;
var fjFileInfo = flowInfos?["fjFileInfo"];
return fjFileInfo != null && fjFileInfo.Any();
}
/// <summary>
/// 从 detailMap 中提取用印文件 ID 和文件名
/// 从 fjFileInfo 中提取用印文件 ID 和文件名
/// </summary>
private bool TryExtractFileFromDetailMap(Newtonsoft.Json.Linq.JObject flowInfos, out string fileId, out string fileName)
private bool TryExtractFileFromFjFileInfo(Newtonsoft.Json.Linq.JObject flowInfos, out string fileId, out string fileName)
{
fileId = null;
fileName = null;
var detailMap = flowInfos?["detailMap"];
if (detailMap == null || !detailMap.Any())
var fjFileInfo = flowInfos?["fjFileInfo"];
if (fjFileInfo == null || !fjFileInfo.Any())
{
return false;
}
foreach (var detail in detailMap)
var firstFile = fjFileInfo.FirstOrDefault();
if (firstFile != null)
{
var fileInfos = detail["gatewayFileRequestFileInfo"];
if (fileInfos != null && fileInfos.Any())
fileId = firstFile["id"]?.ToString();
fileName = firstFile["fileName"]?.ToString();
if (!string.IsNullOrEmpty(fileId))
{
var firstFile = fileInfos.FirstOrDefault();
if (firstFile != null)
{
fileId = firstFile["id"]?.ToString();
fileName = firstFile["fileName"]?.ToString();
if (!string.IsNullOrEmpty(fileId))
{
return true;
}
}
return true;
}
}