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()); }