diff --git a/Myshipping.Application/EDI/InttraEdiHelper.cs b/Myshipping.Application/EDI/InttraEdiHelper.cs
index 206e10f3..4e7683e2 100644
--- a/Myshipping.Application/EDI/InttraEdiHelper.cs
+++ b/Myshipping.Application/EDI/InttraEdiHelper.cs
@@ -501,7 +501,11 @@ namespace Myshipping.Application.EDI
if (string.IsNullOrEmpty(headData.NOTIFYPARTY))
{
- error = error + "
提单号:" + headData.MBLNO + " 通知人不能为空";
+ //CMA 订舱时可以不填通知人
+ if (headData.CARRIEREDICODE != "CMDU")
+ {
+ error = error + "
提单号:" + headData.MBLNO + " 通知人不能为空";
+ }
}
else
{
diff --git a/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedTraceProductService.cs b/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedTraceProductService.cs
index f9ca955e..ab80a334 100644
--- a/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedTraceProductService.cs
+++ b/Myshipping.Application/Service/EmbedProjectGoodsStatus/EmbedTraceProductService.cs
@@ -94,7 +94,8 @@ namespace Myshipping.Application
Dictionary> statusEnumDict = statusDict.Select(a => new { Key = a.Code, Val = new Tuple(a.Value, a.Sort), Sort = a.Sort })
.OrderBy(a => a.Sort).ToDictionary(a => a.Key, b => b.Val);
- string[] skipStatus = new string[] { "GIOI", "LOFV", "FVD", "FVA", "DFFV", "ETA", "LOR", "DFR", "RA", "DIFR", "LOT", "DIFT", "ADI", "DIDI", "CGRL", "RFP" };
+ string[] skipStatus = new string[] { "GIOI", "LOFV", "FVD", "FVA", "DFFV", "LOR", "DFR", "RA", "DIFR", "LOT", "DIFT", "ADI", "DIDI", "CGRL", "RFP" };
+ string[] transferStatus = new string[] { "AIP", "BIP", "ETDIP", "DIIP", "GOIP", "GIIP", "LIP", "EDIP", "DEIP" };
if (queryRlt.code == 200)
{
@@ -106,6 +107,8 @@ namespace Myshipping.Application
{
Dictionary referToCtnDict = new Dictionary();
+ bool isTransfer = false;
+
if (result.resultData.containerInfoList != null && result.resultData.containerInfoList.Count > 0)
{
result.resultData.containerInfoList.ForEach(s =>
@@ -134,6 +137,12 @@ namespace Myshipping.Application
});
}
+ //legType = "T" 标识当票有中转
+ if (result.resultData.routingInfoList.Any(t => t.legType.Equals("T", StringComparison.OrdinalIgnoreCase)))
+ {
+ isTransfer = true;
+ }
+
result.embedTraceFlowStatusList = new List();
var ctnNo = referToCtnDict.OrderByDescending(a => a.Value).FirstOrDefault().Key;
@@ -181,20 +190,24 @@ namespace Myshipping.Application
{
if(!skipStatus.Contains(kvp.Key))
{
- var currStatus = takeList.FirstOrDefault(p => p.statusCd.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase));
-
- if(currStatus == null)
+ //不是中转的需要把状态节点去掉
+ if (isTransfer || (!isTransfer && !transferStatus.Contains(kvp.Key)))
{
- currStatus = new EmbedTraceFlowStatusInfo
+ var currStatus = takeList.FirstOrDefault(p => p.statusCd.Equals(kvp.Key, StringComparison.OrdinalIgnoreCase));
+
+ if (currStatus == null)
{
- statusCd = kvp.Key,
- statusCnName = kvp.Value.Item1,
- sortNo = kvp.Value.Item2,
- statusCtnStatic = $"0/{referToCtnDict.Count}",
- };
+ currStatus = new EmbedTraceFlowStatusInfo
+ {
+ statusCd = kvp.Key,
+ statusCnName = kvp.Value.Item1,
+ sortNo = kvp.Value.Item2,
+ statusCtnStatic = $"0/{referToCtnDict.Count}",
+ };
+ }
+
+ result.embedTraceFlowStatusList.Add(currStatus);
}
-
- result.embedTraceFlowStatusList.Add(currStatus);
}
}
}
diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs
index fcb99de9..2ea5f233 100644
--- a/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/TaskManageRollingNominationService.cs
@@ -300,40 +300,13 @@ namespace Myshipping.Application
}
if (withDispatchList.Any(a =>
- !a.Detail.NOM_STATUS_NOTE.Equals("Load", StringComparison.OrdinalIgnoreCase)))
+ a.Detail.NOM_STATUS_NOTE.Equals("Load", StringComparison.OrdinalIgnoreCase)))
{
- model.PreBillList.AddRange(withDispatchList.Where(a =>
- !a.Detail.NOM_STATUS_NOTE.Equals("Load", StringComparison.OrdinalIgnoreCase))
+ model.LoadDetailList.AddRange(withDispatchList.Where(a =>
+ a.Detail.NOM_STATUS_NOTE.Equals("Load", StringComparison.OrdinalIgnoreCase))
.Select((a, idx) =>
{
- TaskRollingNominationShipPreBillShowDto preBillInfo = new TaskRollingNominationShipPreBillShowDto
- {
- Bookedby = a.Detail.BOOKED_BY,
- ConfirmDate = a.Dispatch?.CONFIRM_DATE,
- ConfirmDeadLine = a.Dispatch?.CONFIRM_DEAD_LINE,
- CtnStat = $"{a.Detail.CTNALL}*{a.Detail.CTNNUM}",
- CustomerId = a.Detail.CUSTOMERID,
- CustomerName = a.Detail.CUSTOMERNAME,
- ContractualName = a.Detail.CONTRACTUAL_NAME,
- CreateShareLinkDate = a.Dispatch?.CREATE_SHARE_LINK_DATE,
- DischargePortName = a.Detail.DISCHARGEPORT_NAME,
- IsSend = a.Dispatch != null ? a.Dispatch.IS_SEND : false,
- IsUserManual = a.Dispatch != null ? a.Dispatch.IS_USER_MANUAL : false,
- LoadPortName = a.Detail.LOADPORT_NAME,
- PlaceOfDelivery = a.Detail.PLACEOF_DELIVERY,
- PlaceOfReceipt = a.Detail.PLACEOF_RECEIPT,
- Shipment = a.Detail.SHIPMENT,
- Status = a.Dispatch?.STATUS,
- ShareLinkKey = a.Dispatch?.SHARE_LINK_KEY,
- UserOpinion = a.Dispatch?.USER_OPINION,
- UserOpinionTxt = a.Dispatch?.USER_OPINION_TXT,
- BatchId = a.Dispatch?.BATCH_ID,
- BookingId = a.Detail.BOOKING_ID,
- GroupName = a.Detail.CUSTOMERID.HasValue ? $"CUST_{idx + 1}" : "",
- CtnNote = !string.IsNullOrWhiteSpace(a.Detail.CTNNOTE) ? a.Detail.CTNNOTE : ""
- };
-
- return preBillInfo;
+ return a.Detail.Adapt();
}).ToList());
}