diff --git a/Myshipping.Application/Entity/TaskManagePlat/TaskLARAPaperInfo.cs b/Myshipping.Application/Entity/TaskManagePlat/TaskLARAPaperInfo.cs
index 3d60754a..efaeb6e7 100644
--- a/Myshipping.Application/Entity/TaskManagePlat/TaskLARAPaperInfo.cs
+++ b/Myshipping.Application/Entity/TaskManagePlat/TaskLARAPaperInfo.cs
@@ -91,5 +91,10 @@ namespace Myshipping.Application
/// 状态 succ-成功 failure-失败 timeout-超时
///
public string STATUS { get; set; }
+
+ ///
+ /// 提单纸页数
+ ///
+ public int DRAFT_NUM { get; set; }
}
}
diff --git a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs
index 1252cdda..25c99866 100644
--- a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskManageMapper.cs
@@ -357,6 +357,26 @@ namespace Myshipping.Application
.Map(dest => dest.UpdatedUserName, src => src.UpdatedUserName);
+ config.ForType()
+ .Map(dest => dest.PK_ID, src => src.PKId)
+ .Map(dest => dest.TASK_ID, src => src.TaskId)
+ .Map(dest => dest.NUMBER_FROM, src => src.NumberFrom)
+ .Map(dest => dest.NUMBER_TO, src => src.NumberTo)
+ .Map(dest => dest.PAGE_NUMBERS, src => src.PageNumbers)
+ .Map(dest => dest.PAGE_SUM, src => src.PageSum)
+ .Map(dest => dest.MBL_NO, src => src.MBLNo)
+ .Map(dest => dest.ORIGINAL_DOWN_TIME, src => src.OriginalDownTime)
+ .Map(dest => dest.ISSUE_TYPE, src => src.IssueType)
+ .Map(dest => dest.ISSUE_TYPE_NAME, src => src.IssueTypeName)
+ .Map(dest => dest.CreatedTime, src => src.CreatedTime)
+ .Map(dest => dest.UpdatedTime, src => src.UpdatedTime)
+ .Map(dest => dest.RESULT_NOTE, src => src.ResultNote)
+ .Map(dest => dest.CreatedUserId, src => src.CreatedUserId)
+ .Map(dest => dest.CreatedUserName, src => src.CreatedUserName)
+ .Map(dest => dest.UpdatedUserId, src => src.UpdatedUserId)
+ .Map(dest => dest.UpdatedUserName, src => src.UpdatedUserName);
+
+
config.ForType()
.Map(dest => dest.Shipper, src => src.SHIPPER)
.Map(dest => dest.Consignee, src => src.CONSIGNEE)
diff --git a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageService.cs b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageService.cs
index 43c8f955..73b8c6dd 100644
--- a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageService.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskManageService.cs
@@ -93,10 +93,9 @@ namespace Myshipping.Application
///
/// 请求提单纸登记
///
- /// 任务主键
- /// 提单纸登记请求参数
+ /// 提单纸登记请求参数列表
/// 返回结果
- Task LaraPaperRegistPost(string taskPKId, LaraPaperRegistPostDto model);
+ Task LaraPaperRegistPost(List laraPaperList);
///
/// 下载任务附件
diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs
index 5fc8cde8..745a7b7b 100644
--- a/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/TaskManageService.cs
@@ -59,6 +59,7 @@ using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Xml.Linq;
using static Aliyun.OSS.Model.CreateSelectObjectMetaInputFormatModel;
+using static Aliyun.OSS.Model.ListPartsResult;
namespace Myshipping.Application
{
@@ -1368,17 +1369,16 @@ namespace Myshipping.Application
///
/// 请求提单纸登记
///
- /// 任务主键
- /// 提单纸登记请求参数
- ///
+ /// 提单纸登记请求参数列表
+ /// 返回结果
[HttpPost("/TaskManage/LaraPaperRegistPost")]
- public async Task LaraPaperRegistPost(string taskPKId, LaraPaperRegistPostDto model)
+ public async Task LaraPaperRegistPost(List laraPaperList)
{
TaskManageOrderResultDto result = new TaskManageOrderResultDto();
string batchNo = IDGen.NextID().ToString();
- _logger.LogInformation("批次={no} id={id} LARA提单纸登记开始", batchNo, taskPKId);
+ _logger.LogInformation("批次={no} num={num} LARA提单纸登记开始", batchNo, laraPaperList.Count);
/*
1、读取LARA网站的配置账户。
@@ -1392,7 +1392,10 @@ namespace Myshipping.Application
try
{
- var taskInfo = _taskBaseInfoRepository.AsQueryable().First(t => t.PK_ID == taskPKId);
+ var taskArg = laraPaperList.Select(t => t.TaskId).Distinct().ToArray();
+
+ var taskList = _taskBaseInfoRepository.AsQueryable().Where(t => taskArg.Contains(t.PK_ID)).ToList();
+
_logger.LogInformation("批次={no} 获取任务完成", batchNo);
@@ -1404,130 +1407,84 @@ namespace Myshipping.Application
if (userWebAccountConfig == null)
throw Oops.Bah($"个人/公司网站【{CONST_WEB_LARA_ACCOUNT_TYPE}】获取失败,请维护个人/公司网站账户信息");
- await InnerDownloadOriginalTask(batchNo, taskInfo, userWebAccountConfig);
- }
- catch (Exception ex)
- {
- throw Oops.Bah("请求提单纸登记异常,{0}", ex.Message);
- }
-
- return result;
- }
- #endregion
-
-
- //LaraPaperPostUrl
- private async Task InnerLaraPaperRegistPost(string batchNo, TaskBaseInfo taskBaseInfo, LaraPaperRegistPostDto model,
- DjyWebsiteAccountConfig webAccountConfig)
- {
-
- TaskManageOrderResultDto result = new TaskManageOrderResultDto();
- //正本下载URL
- string originalUrl = string.Empty;
-
- try
- {
- DateTime startDate = DateTime.Now;
-
var downloadUrl = _cache.GetAllDictData().GetAwaiter().GetResult()
.First(t => t.Code.Equals(CONST_LARA_DOWN_URL_CODE, StringComparison.OrdinalIgnoreCase))?.Value;
if (string.IsNullOrWhiteSpace(downloadUrl))
- throw Oops.Bah($"正本下载URL不存在,请确认字典是否配置 code={CONST_BOOK_ORIGINAL_DOWN_URL_CODE}");
-
- TaskLARAPaperInfo taskLARAPaperInfo = new TaskLARAPaperInfo
- {
- PK_ID = IDGen.NextID().ToString(),
- TASK_ID = taskBaseInfo.PK_ID,
- BOOKING_ORDER_NO = "",
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name,
- STATUS = "temp",
- IS_TIMEOUT = 0,
- START_DATE = startDate,
- TenantId = UserManager.TENANT_ID,
- TenantName = UserManager.TENANT_NAME
- };
-
- //写入记录
- _taskLARAPaperInfoRepository.Insert(taskLARAPaperInfo);
-
- //请求远程链接
- Dictionary formDict = new Dictionary {
- {"bno", taskBaseInfo.MBL_NO },
- {"num_from", model.NumberFrom },
- {"num_to", model.NumberTo },
- {"numbers", model.PageNumbers },
- {"vessel_code", "" },
- {"voyage_code", "" },
- {"bl_status", "All" },
- {"bl_type", "Original Bill" },
- {"issue_code", "ALL" },
- {"web_user", webAccountConfig.Account },
- {"web_pwd", webAccountConfig.Password },
- {"customer_user", "myshipping" },
- {"customer_pwd", "" },
- };
+ throw Oops.Bah($"LARA纸下载URL不存在,请确认字典是否配置 code={CONST_LARA_DOWN_URL_CODE}");
- //请求
- var postResult = await InnerRemoteDownLaraPaper(batchNo, downloadUrl, formDict);
+ JObject jobjPost = new JObject();
+ jobjPost.Add("customer_user", "myshipping");
+ jobjPost.Add("customer_pwd", "");
+ JArray jarr = new JArray();
+ jobjPost.Add("lara_list", jarr);
- //重新获取下载历史
- var downloadHisInfo = _taskOriginalDownloadHisInfoRepository.AsQueryable()
- .First(t => t.PK_ID == taskLARAPaperInfo.PK_ID);
+ laraPaperList.ForEach(async lara =>
+ {
+ TaskLARAPaperInfo taskLARAPaperInfo = new TaskLARAPaperInfo
+ {
+ PK_ID = IDGen.NextID().ToString(),
+ TASK_ID = lara.TaskId,
+ BOOKING_ORDER_NO = "",
+ CreatedUserId = UserManager.UserId,
+ CreatedUserName = UserManager.Name,
+ STATUS = "temp",
+ IS_TIMEOUT = 0,
+ START_DATE = DateTime.Now,
+ TenantId = UserManager.TENANT_ID,
+ TenantName = UserManager.TENANT_NAME,
+ PAGE_NUMBERS = lara.PageNumbers,
+ PAGE_SUM = lara.PageSum,
+ ISSUE_TYPE = lara.ISSUETYPE,
+ MBL_NO = lara.MBLNO,
+ NUMBER_FROM = lara.NumberFrom,
+ NUMBER_TO = lara.NumberTo,
+ DRAFT_NUM = lara.DraftNum,
+ };
- //更新任务状态
- var taskModel = _taskBaseInfoRepository.AsQueryable().First(t => t.PK_ID == taskBaseInfo.PK_ID);
+ //写入记录
+ await _taskLARAPaperInfoRepository.InsertAsync(taskLARAPaperInfo);
+
+ JObject jobjItem = new JObject();
+ jobjItem.Add("customer_user", "myshipping");
+ jobjItem.Add("customer_pwd", "");
+ jobjItem.Add("web_user", userWebAccountConfig.Account);
+ jobjItem.Add("web_pwd", userWebAccountConfig.Password);
+ jobjItem.Add("bno", lara.MBLNO);
+ jobjItem.Add("num_from", lara.NumberFrom);
+ jobjItem.Add("num_to", lara.NumberTo);
+ jobjItem.Add("numbers", lara.PageNumbers);
+ jobjItem.Add("vessel_code", "");
+ jobjItem.Add("voyage_code", "");
+ jobjItem.Add("bl_status", "All");
+ jobjItem.Add("bl_type", "Original Bill");
+ jobjItem.Add("issue_code", "ALL");
+ jarr.Add(jobjItem);
- downloadHisInfo.END_DATE = (DateTime)postResult.ext;
- downloadHisInfo.RESULT_NOTE = postResult.msg;
+ });
+ //await InnerDownloadOriginalTask(batchNo, taskInfo, userWebAccountConfig);
- bool isDownSucc = false;
+ var postResult = await InnerRemoteDownLaraPaper(batchNo, downloadUrl, JSON.Serialize(jobjPost));
- //下载返回成功后,更新记录并生成扣费记录
if (postResult.succ)
{
- downloadHisInfo.STATUS = "succ";
- downloadHisInfo.RESULT_URL = postResult.msg;
-
- taskModel.COMPLETE_DEAL = TaskCompleteDealEnum.MANUAL.ToString();
- taskModel.COMPLETE_DEAL_NAME = TaskCompleteDealEnum.MANUAL.GetDescription();
- taskModel.COMPLETE_DATE = DateTime.Now;
- taskModel.STATUS = TaskStatusEnum.Complete.ToString();
- taskModel.IS_COMPLETE = 1;
-
- isDownSucc = true;
+ result.succ = true;
+ result.msg = "成功";
}
else
{
- if (postResult.isTimeout)
- {
- downloadHisInfo.STATUS = "timeout";
- }
- else
- {
- downloadHisInfo.STATUS = "failure";
- }
+ result.succ = false;
+ result.msg = postResult.msg;
}
-
- //更新下载历史
- await _taskOriginalDownloadHisInfoRepository.AsUpdateable(downloadHisInfo).IgnoreColumns(it => new
- {
- it.TenantId,
- it.CreatedUserId,
- it.CreatedUserName
- }).ExecuteCommandAsync();
-
-
}
catch (Exception ex)
{
- result.succ = false;
- result.msg = ex.Message;
+ throw Oops.Bah("请求提单纸登记异常,{0}", ex.Message);
}
return result;
}
+ #endregion
#region 远程请求请求提单纸登记
///
@@ -1535,9 +1492,9 @@ namespace Myshipping.Application
///
/// 批次号
/// 请求URL
- /// 请求参数
+ /// 请求参数
///
- private async Task InnerRemoteDownLaraPaper(string batchNo, string url, Dictionary dic)
+ private async Task InnerRemoteDownLaraPaper(string batchNo, string url, string jsonMsg)
{
var result = new TaskManageOrderResultDto();
@@ -1548,7 +1505,7 @@ namespace Myshipping.Application
_logger.LogInformation("批次={no} 请求报文开始", batchNo);
var res = await url.SetHttpMethod(HttpMethod.Post)
- .SetBody(dic, "application/x-www-form-urlencoded")
+ .SetBody(jsonMsg, "application/json")
.SetContentEncoding(Encoding.UTF8)
.PostAsync();
@@ -1597,7 +1554,7 @@ namespace Myshipping.Application
/// 任务主键数组
/// 返回结果
[HttpPost("/TaskManage/LaraPaperRegist")]
- public async Task LaraPaperRegist(string[] PKIds)
+ public async Task LaraPaperRegist([FromQuery]string[] PKIds)
{
LaraPaperRegistDto result = new LaraPaperRegistDto();