From 7a6140f9dd6463cadb86a86e9a44df005cfefbbe Mon Sep 17 00:00:00 2001
From: zhangxiaofeng <1939543722@qq.com>
Date: Fri, 19 Jul 2024 11:00:53 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0MSK=E5=89=AF=E6=9C=AC?=
=?UTF-8?q?=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BookingOrder/BookingValueAddedService.cs | 56 +++++++++++++------
1 file changed, 40 insertions(+), 16 deletions(-)
diff --git a/Myshipping.Application/Service/BookingOrder/BookingValueAddedService.cs b/Myshipping.Application/Service/BookingOrder/BookingValueAddedService.cs
index 8311b254..4bc5e3fb 100644
--- a/Myshipping.Application/Service/BookingOrder/BookingValueAddedService.cs
+++ b/Myshipping.Application/Service/BookingOrder/BookingValueAddedService.cs
@@ -2611,18 +2611,29 @@ namespace Myshipping.Application
///
/// 单票正本下载
+ /// 1=正本下载 2=副本下载
///
[HttpGet("/BookingValueAdded/DownloadOriginal")]
- public async Task DownloadOriginal(long id, bool? isCheck)
+ public async Task DownloadOriginal(long id, bool? isCheck, int downloadType = 1)
{
- const string FileTypeCode = "zhengben";
- const string FileTypeName = "正本";
+ string fileTypeCode = downloadType switch
+ {
+ 1 => "zhengben",
+ 2 => "fuben",
+ _ => throw new NotImplementedException()
+ };
+ string fileTypeName = downloadType switch
+ {
+ 1 => "正本",
+ 2 => "副本",
+ _ => throw new NotImplementedException()
+ };
TaskManageOrderResultDto result = new TaskManageOrderResultDto();
if (isCheck == true)
{
- if (await _bookingFileRepository.IsExistsAsync(x => x.BookingId == id && x.TypeCode == FileTypeCode))
+ if (await _bookingFileRepository.IsExistsAsync(x => x.BookingId == id && x.TypeCode == fileTypeCode))
{
result.status = -1;
result.succ = false;
@@ -2686,7 +2697,7 @@ namespace Myshipping.Application
carrierId = (carrierId ?? order.CARRIERID).ToUpper();
if (carrierId != "MSK")
{
- throw Oops.Bah($"船公司=[{order.CARRIER}]暂不支持正本下载");
+ throw Oops.Bah($"船公司=[{order.CARRIER}]暂不支持{fileTypeName}下载");
}
// 判断签单方式是否符合条件
@@ -2694,11 +2705,16 @@ namespace Myshipping.Application
issueType = issueType ?? order.ISSUETYPE;
if (!issueType.Equals("original", StringComparison.OrdinalIgnoreCase))
{
- throw Oops.Bah("此单签单方式非[正本下载],无法下载正本");
+ throw Oops.Bah($"此单签单方式非[正本],无法下载");
}
// 实时下载接口
- url += "/documents_server/api/draft/v1/download_realtime";
+ url += downloadType switch
+ {
+ 1 => "/documents_server/api/bill_lading/v1/download_realtime",
+ 2 => "/documents_server/api/copy/v1/download_realtime",
+ _ => throw new NotImplementedException()
+ };
var body = new
{
web_code = carrierId,
@@ -2712,7 +2728,7 @@ namespace Myshipping.Application
{
{ "Token",token }, { "Content-Type", "application/json" }
};
- _logger.LogInformation("请求正本下载接口开始,mblno={mblno}, url={url}, body={body}", order.MBLNO, url, body);
+ _logger.LogInformation("请求fileTypeName={fileTypeName}下载接口开始,mblno={mblno}, url={url}, body={body}", fileTypeName, order.MBLNO, url, body);
DateTime bDate = DateTime.Now;
var rtn = await url.OnClientCreating(client =>
{
@@ -2723,12 +2739,12 @@ namespace Myshipping.Application
TimeSpan ts = eDate.Subtract(bDate);
var timeDiff = ts.TotalMilliseconds;
- _logger.LogInformation("请求正本下载接口结束,mblno={mblno}, rtn={rtn}, 耗时:{timeDiff}ms", order.MBLNO, rtn, timeDiff);
+ _logger.LogInformation("请求fileTypeName={fileTypeName}下载接口结束,mblno={mblno}, rtn={rtn}, 耗时:{timeDiff}ms", fileTypeName, order.MBLNO, rtn, timeDiff);
var jsonRtn = JObject.Parse(rtn);
if (jsonRtn.GetIntValue("status") == 1)
{
- _logger.LogInformation("请求正本下载接口成功,转存本地,mblno={mblno}", order.MBLNO);
+ _logger.LogInformation("请求fileTypeName={fileTypeName}下载接口成功,转存本地,mblno={mblno}", fileTypeName, order.MBLNO);
var data = jsonRtn.GetJObjectValue("data");
@@ -2740,7 +2756,15 @@ namespace Myshipping.Application
// 读取文件保存配置
var fileCfg = App.GetOptions();
- string relativePath = $"{fileCfg.relativePath}\\originalfiles\\{order.Id}";
+ // 实时下载接口
+ string floderName = downloadType switch
+ {
+ 1 => "originalfiles",
+ 2 => "copyfiles",
+ _ => throw new NotImplementedException()
+ };
+
+ string relativePath = $"{fileCfg.relativePath}\\{floderName}\\{order.Id}";
string relativeDic = $"{(!string.IsNullOrWhiteSpace(fileCfg.basePath) ? fileCfg.basePath : App.WebHostEnvironment.WebRootPath)}\\{relativePath}";
string fileSavePath = $"{relativeDic}\\{new System.IO.FileInfo(remoteFilePath).Name}";
@@ -2781,15 +2805,15 @@ namespace Myshipping.Application
}
result.succ = true;
- result.msg = "正本下载成功";
+ result.msg = $"{fileTypeName}下载成功";
- await _bookingFileRepository.DeleteAsync(x => x.TypeCode == FileTypeCode && x.BookingId == order.Id);
- await SaveEDIFile(order.Id, bookFilePath, reallyFileName, FileTypeCode, FileTypeName);
+ await _bookingFileRepository.DeleteAsync(x => x.TypeCode == fileTypeCode && x.BookingId == order.Id);
+ await SaveEDIFile(order.Id, bookFilePath, reallyFileName, fileTypeCode, fileTypeName);
}
else
{
var msg = jsonRtn.GetStringValue("message")?.Replace("爬虫", "");
- _logger.LogInformation("请求正本下载接口失败,mblno={mblno}, 服务返回:{msg}", order.MBLNO, msg);
+ _logger.LogInformation("请求fileTypeName={fileTypeName}下载接口失败,mblno={mblno}, 服务返回:{msg}", fileTypeName, order.MBLNO, msg);
throw Oops.Bah(msg);
}
}
@@ -2797,7 +2821,7 @@ namespace Myshipping.Application
{
result.succ = false;
result.status = -2;
- result.msg = $"正本下载失败,{ex.Message}";
+ result.msg = $"{fileTypeName}下载失败,{ex.Message}";
}
return result;
}