舱单发送校验调整

master
zhangxiaofeng 8 months ago
parent e1b5b592fe
commit 03c11a61ed

@ -377,12 +377,20 @@ namespace Myshipping.Application
// 舱单主单 // 舱单主单
var mainSeaOrder = waitCheckSeaList.FirstOrDefault(x => string.IsNullOrWhiteSpace(x.HBLNO)); var mainSeaOrder = waitCheckSeaList.FirstOrDefault(x => string.IsNullOrWhiteSpace(x.HBLNO));
if (mainSeaOrder != null)
// 是否检验舱单主单
var isCheckMainSea = true;
if (mainSeaOrder == null)
{ {
isCheckMainSea = false;
mainSeaOrder = await _seaeedi.AsQueryable().Filter(null, true).Where(x => x.BookingId == bkOrderId && string.IsNullOrWhiteSpace(x.HBLNO)).FirstAsync();
}
// 舱单分单 // 舱单分单
var subSeaOrderList = waitCheckSeaList.Where(x => !string.IsNullOrWhiteSpace(x.HBLNO)).ToList(); var subSeaOrderList = waitCheckSeaList.Where(x => !string.IsNullOrWhiteSpace(x.HBLNO)).ToList();
// 校验1船名航次唛头货描 ,起运港,卸货港,主单提单号 // 校验1船名航次唛头货描 ,起运港,卸货港,主单提单号
if (isCheckMainSea)
{
if (bkOrder.MBLNO != mainSeaOrder.MBLNO) checkResult.Add("舱单主单与订舱【提单号】不一致"); if (bkOrder.MBLNO != mainSeaOrder.MBLNO) checkResult.Add("舱单主单与订舱【提单号】不一致");
if (bkOrder.VESSEL != mainSeaOrder.VESSEL) checkResult.Add("舱单主单与订舱【船名】不一致"); if (bkOrder.VESSEL != mainSeaOrder.VESSEL) checkResult.Add("舱单主单与订舱【船名】不一致");
if (bkOrder.VOYNO != mainSeaOrder.VOYNO) checkResult.Add("舱单主单与订舱【航次】不一致"); if (bkOrder.VOYNO != mainSeaOrder.VOYNO) checkResult.Add("舱单主单与订舱【航次】不一致");
@ -390,6 +398,8 @@ namespace Myshipping.Application
if (bkOrder.DESCRIPTION != mainSeaOrder.DESCRIPTION) checkResult.Add("舱单主单与订舱【货描】不一致"); if (bkOrder.DESCRIPTION != mainSeaOrder.DESCRIPTION) checkResult.Add("舱单主单与订舱【货描】不一致");
if (bkOrder.PORTLOADID != mainSeaOrder.PORTLOADID || bkOrder.PORTLOAD != mainSeaOrder.PORTLOAD) checkResult.Add("舱单主单与订舱【起运港】不一致"); if (bkOrder.PORTLOADID != mainSeaOrder.PORTLOADID || bkOrder.PORTLOAD != mainSeaOrder.PORTLOAD) checkResult.Add("舱单主单与订舱【起运港】不一致");
if (bkOrder.PORTDISCHARGEID != mainSeaOrder.PORTDISCHARGEID || bkOrder.PORTDISCHARGE != mainSeaOrder.PORTDISCHARGE) checkResult.Add("舱单主单与订舱【卸货港】不一致"); if (bkOrder.PORTDISCHARGEID != mainSeaOrder.PORTDISCHARGEID || bkOrder.PORTDISCHARGE != mainSeaOrder.PORTDISCHARGE) checkResult.Add("舱单主单与订舱【卸货港】不一致");
}
subSeaOrderList.ForEach(x => subSeaOrderList.ForEach(x =>
{ {
if (bkOrder.VESSEL != x.VESSEL) checkResult.Add($"舱单分单【{x.HBLNO}】与订舱【船名】不一致"); if (bkOrder.VESSEL != x.VESSEL) checkResult.Add($"舱单分单【{x.HBLNO}】与订舱【船名】不一致");
@ -405,6 +415,8 @@ namespace Myshipping.Application
var = waitCheckSeaCtnList.Where(x => x.PId == mainSeaOrder.Id).ToList(); var = waitCheckSeaCtnList.Where(x => x.PId == mainSeaOrder.Id).ToList();
var = waitCheckSeaCtnList.Where(x => x.PId != mainSeaOrder.Id).ToList(); var = waitCheckSeaCtnList.Where(x => x.PId != mainSeaOrder.Id).ToList();
if (isCheckMainSea)
{
foreach (var item in .GroupBy(x => x.CNTRNO)) foreach (var item in .GroupBy(x => x.CNTRNO))
{ {
if (item.Sum(x => x.PKGS) != .Where(x => x.CNTRNO == item.Key).Sum(x => x.PKGS)) if (item.Sum(x => x.PKGS) != .Where(x => x.CNTRNO == item.Key).Sum(x => x.PKGS))
@ -420,20 +432,21 @@ namespace Myshipping.Application
checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单主单中的【尺码】与订舱中同箱号箱子的【尺码】不一致"); checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单主单中的【尺码】与订舱中同箱号箱子的【尺码】不一致");
} }
} }
}
foreach (var item in .GroupBy(x => x.CNTRNO)) foreach (var item in .GroupBy(x => x.CNTRNO))
{ {
if (item.Sum(x => x.PKGS) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.PKGS)) if (item.Sum(x => x.PKGS) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.PKGS))
{ {
checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总件数】大于主单中同箱号箱子的件数"); checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总件数】大于订舱中同箱号箱子的件数");
} }
if (item.Sum(x => x.KGS) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.KGS)) if (item.Sum(x => x.KGS) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.KGS))
{ {
checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总重量】大于主单中同箱号箱子的重量"); checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总重量】大于订舱中同箱号箱子的重量");
} }
if (item.Sum(x => x.CBM) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.CBM)) if (item.Sum(x => x.CBM) > .Where(x => x.CNTRNO == item.Key).Sum(x => x.CBM))
{ {
checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总尺码】大于主单中同箱号箱子的尺码"); checkResult.Add($"箱号为【{item.Key}】的箱子,在舱单各分单中的【总尺码】大于订舱中同箱号箱子的尺码");
} }
} }
@ -442,6 +455,8 @@ namespace Myshipping.Application
var = .Select(x => $"箱号[{x.CNTRNO}] 封号[{x.SEALNO}] 箱型[{x.CTNALL.Replace("'", "")}]").ToList(); var = .Select(x => $"箱号[{x.CNTRNO}] 封号[{x.SEALNO}] 箱型[{x.CTNALL.Replace("'", "")}]").ToList();
var = .Select(x => $"箱号[{x.CNTRNO}] 封号[{x.SEALNO}] 箱型[{x.CTNALL.Replace("'", "")}]").Distinct().ToList(); var = .Select(x => $"箱号[{x.CNTRNO}] 封号[{x.SEALNO}] 箱型[{x.CTNALL.Replace("'", "")}]").Distinct().ToList();
if (isCheckMainSea)
{
var list1 = .Except(); var list1 = .Except();
if (list1.Any()) if (list1.Any())
{ {
@ -454,13 +469,14 @@ namespace Myshipping.Application
{ {
checkResult.Add($"舱单主单中的下列箱信息在订舱中不存在:{string.Join("", list2)}"); checkResult.Add($"舱单主单中的下列箱信息在订舱中不存在:{string.Join("", list2)}");
} }
}
var list3 = .Except(); }
var list3 = .Except();
if (list3.Any()) if (list3.Any())
{ {
checkResult.Add($"舱单分单中存在未知的箱信息:{string.Join("", list3)}"); checkResult.Add($"舱单分单中存在未知的箱信息:{string.Join("", list3)}");
} }
}
if (checkResult.Count > 0) if (checkResult.Count > 0)
{ {
@ -468,7 +484,6 @@ namespace Myshipping.Application
throw new Exception("校验不通过"); throw new Exception("校验不通过");
} }
} }
}
#endregion #endregion
string strPostObj = custEDIDtos.ToJsonString(); string strPostObj = custEDIDtos.ToJsonString();

Loading…
Cancel
Save