diff --git a/Framework/YLErp.MailKit/MailSender.cs b/Framework/YLErp.MailKit/MailSender.cs index 2c45c5b0..b20ccdfa 100644 --- a/Framework/YLErp.MailKit/MailSender.cs +++ b/Framework/YLErp.MailKit/MailSender.cs @@ -229,6 +229,7 @@ namespace YLErp.MailKit // 创建一个HttpClient实例 using (var httpClient = new HttpClient()) { + httpClient.Timeout = TimeSpan.FromMinutes(3); // 根据需要调整 var content = new MultipartFormDataContent(); // 添加收件人 content.Add(new StringContent(string.Join(",", option.MailTo)), "to"); @@ -276,6 +277,10 @@ namespace YLErp.MailKit } } } + if (log != null) { + log.Invoke("邮件发送接口", "BaseUrl:" + baseUrl); + log.Invoke("邮件发送接口", "EmailPath:" + emailPath); + } // 发送POST请求 var response = httpClient.PostAsync($"{baseUrl}{emailPath}", content).Result; @@ -284,6 +289,10 @@ namespace YLErp.MailKit { // 解析响应内容并返回结果 var result = response.Content.ReadAsStringAsync().Result; + if (log != null) + { + log.Invoke("邮件发送接口", "响应内容:" + result); + } if (string.IsNullOrEmpty(result)) { throw new ArgumentException("发送邮件失败"); @@ -297,6 +306,11 @@ namespace YLErp.MailKit } else { + if (log != null) + { + log.Invoke("邮件发送接口", "响应状态码:" + response.StatusCode); + log.Invoke("邮件发送接口", "响应内容:" + response.Content.ReadAsStringAsync().Result); + } // 处理错误情况 } } diff --git a/Plugins/YLErp.Plugins.ZheShang/YLErp.Plugins.ZheShang.csproj b/Plugins/YLErp.Plugins.ZheShang/YLErp.Plugins.ZheShang.csproj index 80af5486..dfd1a154 100644 --- a/Plugins/YLErp.Plugins.ZheShang/YLErp.Plugins.ZheShang.csproj +++ b/Plugins/YLErp.Plugins.ZheShang/YLErp.Plugins.ZheShang.csproj @@ -25,6 +25,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/YLErpDAL/Helpers/EmailHelper.cs b/YLErpDAL/Helpers/EmailHelper.cs index 89086f15..665456da 100644 --- a/YLErpDAL/Helpers/EmailHelper.cs +++ b/YLErpDAL/Helpers/EmailHelper.cs @@ -71,7 +71,7 @@ namespace YLErp.Helpers .ToHashSet(StringComparer.OrdinalIgnoreCase); var mailToArr = toSet.ToArray(); - + LogFactory.GetLogger("邮件发送").Info($"开始发送邮件,mailTo={mailTo},subject={subject}"); string result = MailSender.SendApi(new MailSendingOption { MailTo = mailToArr, @@ -80,8 +80,8 @@ namespace YLErp.Helpers IsBodyHtml = isBodyHtml, FilesToAttach = filesToAttach, CC = ccEmail - }); - + }, (name, info) => { LogFactory.GetLogger(name).Info(info); }); + LogFactory.GetLogger("邮件发送").Info($"邮件发送完成,mailTo={mailTo},subject={subject},result={result}"); return string.Empty; } catch (Exception ex) diff --git a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs index 70995b1a..7118089b 100644 --- a/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs +++ b/YLErpDAL/Modules/ReportModule/SettlementReportModule/SettlementReportFotShanXiService.cs @@ -121,9 +121,7 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule /// public (EmailTradeConfirmResultType status, string message) SendSettlementReports(DingShiReportEmail emailData, ClientDingShiReport_ShanXi report, string template, bool IsSkipCheckMarginCall = false, List recevier = null) { - LogFactory.GetLogger().Error("开始发邮件[error]SendSettlementReports"); LogFactory.GetLogger().Info("开始发邮件[info]SendSettlementReports"); - Console.WriteLine("开始发邮件[console]SendSettlementReports"); string message = null; var attachFiles = new List(); List fileTypes=new List(); @@ -175,13 +173,9 @@ namespace YLErp.Modules.ReportModule.SettlementReportModule mailFrom = DBCacheManager.Single.GetStr(CacheTable.TradeMarketSendUser); } - LogFactory.GetLogger().Error("开始发邮件[error]SendSettlementReports_start"); LogFactory.GetLogger().Info("开始发邮件[info]SendSettlementReports_start"); - Console.WriteLine("开始发邮件[console]SendSettlementReports_start"); message = EmailHelper.SendMail(string.Join(";", emails), title, detail, true, attachFiles, emailData.CCEmail, mailFrom); - LogFactory.GetLogger().Error($"开始发邮件[error]SendSettlementReports_end {message}"); LogFactory.GetLogger().Info($"开始发邮件[info]SendSettlementReports_end {message}"); - Console.WriteLine($"开始发邮件[console]SendSettlementReports_end {message}"); if (!string.IsNullOrEmpty(message)) { diff --git a/YLErpDAL/Services/CashRecordModule/ExternalCashFlowService.cs b/YLErpDAL/Services/CashRecordModule/ExternalCashFlowService.cs index dd87becd..d2f6049a 100644 --- a/YLErpDAL/Services/CashRecordModule/ExternalCashFlowService.cs +++ b/YLErpDAL/Services/CashRecordModule/ExternalCashFlowService.cs @@ -56,7 +56,6 @@ namespace YLErp.Services.CashRecordModule // 构建请求 URL var apiUrl = $"{_baseUrl}/eusp/queryStatement"; var queryString = $"?token={Uri.EscapeDataString(token)}" + - $"&account={Uri.EscapeDataString(account)}" + $"&beginDate={Uri.EscapeDataString(beginDate)}" + $"&endDate={Uri.EscapeDataString(endDate)}"; diff --git a/YLErpWeb/Areas/Admin/Controllers/OtcConfigController.cs b/YLErpWeb/Areas/Admin/Controllers/OtcConfigController.cs index a1898080..b186e765 100644 --- a/YLErpWeb/Areas/Admin/Controllers/OtcConfigController.cs +++ b/YLErpWeb/Areas/Admin/Controllers/OtcConfigController.cs @@ -157,7 +157,9 @@ namespace YLErp.Web.Areas.Admin.Controllers { return JsonError("发送邮件地址不能为空"); } + LogFactory.GetLogger().Info($"邮件发送测试,mailTo={mailTo}"); var error = EmailHelper.SendMail(mailTo, "邮件发送测试", "邮件发送测试"); + LogFactory.GetLogger().Info($"邮件发送测试完成,mailTo={mailTo},error={error}"); if (string.IsNullOrWhiteSpace(error)) { return JsonSuccess(); diff --git a/YLErpWeb/Controllers/clientbalanceController.cs b/YLErpWeb/Controllers/clientbalanceController.cs index ff93790a..88d4af66 100644 --- a/YLErpWeb/Controllers/clientbalanceController.cs +++ b/YLErpWeb/Controllers/clientbalanceController.cs @@ -480,9 +480,7 @@ namespace YLErp.Web.Controllers { try { - LogFactory.GetLogger().Error("开始发邮件[error]SendReportMails"); - LogFactory.GetLogger().Info("开始发邮件[info]SendReportMails"); - Console.WriteLine("开始发邮件[console]SendReportMails"); + LogFactory.GetLogger().Info("开始发邮件[error]SendReportMails"); EmailTradeConfirmResultType status; string message; var report = new SettlementReportFotShanXiService(user).GetReportData(emailData, userAssetUnits, template); @@ -501,10 +499,6 @@ namespace YLErp.Web.Controllers } catch (Exception e) { - LogFactory.GetLogger().Error($"开始发邮件[error]SendSettlementReports_end", e); - LogFactory.GetLogger().Info($"开始发邮件[info]SendSettlementReports_end11"); - Console.WriteLine($"开始发邮件[console]SendSettlementReports_end", e); - LogFactory.GetLogger().Error(e, "GenerateTradeMarketBill2"); return JsonError(e.Message == "The number of columns in PdfPTable constructor must be greater than zero." ? "生成的pdf列表的列数必须大于零,请检查配置列不可为空" : e.Message); } diff --git a/YLErpWeb/Controllers/entryexitController.cs b/YLErpWeb/Controllers/entryexitController.cs index 37b39cc2..34c0942b 100644 --- a/YLErpWeb/Controllers/entryexitController.cs +++ b/YLErpWeb/Controllers/entryexitController.cs @@ -537,12 +537,6 @@ namespace YLErp.Web.Controllers return JsonSuccess("未获取到银行流水数据"); } - var clientId = req.clientId; - if (!clientId.HasValue || clientId == 0) - { - return JsonError("请选择客户"); - } - var existingFlowIds = yldb.ClientCashInCashOut .Where(c => !string.IsNullOrEmpty(c.BankFlowId)) .Select(c => c.BankFlowId) @@ -553,6 +547,7 @@ namespace YLErp.Web.Controllers var skipCount = 0; var duplicateCount = 0; var invalidCounterpartyCount = 0; + var ids = new List(); foreach (var flow in result.data) { @@ -601,14 +596,19 @@ namespace YLErp.Web.Controllers BankFlowId = flow.flowId, SerialNumber = flow.flowId, OpenBankCard = flow.counterpartyAccount, + cash_type = direction == "入金" ? "追保账户" : "初保账户", Comments = $"银行流水导入 | 对方账号:{flow.counterpartyAccount} | 对方户名:{flow.counterpartyName} | 用途:{flow.useDescribe}" }; try { - service.SaveEntryexit(null, cashRecord); - existingFlowIds.Add(flow.flowId); - saveCount++; + var savedId = service.SaveEntryexit(null, cashRecord); + if (null != savedId ) + { + ids.Add(savedId.id); + existingFlowIds.Add(flow.flowId); + saveCount++; + } } catch (Exception ex) { @@ -616,6 +616,11 @@ namespace YLErp.Web.Controllers } } + if (ids.Any()) + { + new ClientCashInCashOutDataService(CurUser).ExcuteEntryExit(ids, kafkaProduceHelper); + } + return JsonSuccess($"获取银行流水成功,共处理{result.data.Count}条,成功保存{saveCount}条,跳过{skipCount}条(无效对手方账号{invalidCounterpartyCount}条,重复{duplicateCount}条)"); } catch (Exception ex)