From 808218443b2a539a3d825758c91ed2994ea2cb6d Mon Sep 17 00:00:00 2001
From: wet <1034391973@qq.com>
Date: Wed, 12 Jul 2023 10:00:28 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AF=E9=98=9F=E5=88=97=E5=8F=82?=
=?UTF-8?q?=E6=95=B0=E6=9B=B4=E6=94=B9=E4=B8=BA=E9=85=8D=E7=BD=AE=E6=96=87?=
=?UTF-8?q?=E4=BB=B6=E5=8F=96=E5=80=BC=20=20=E8=BF=90=E8=B8=AA=E5=9B=9E?=
=?UTF-8?q?=E6=8E=A8=E6=8E=88=E6=9D=83?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../BookingOrder/BookingOrderService.cs | 245 +-------
.../BookingOrder/IBookingOrderService.cs | 5 +-
.../Service/DataSync/DataSyncService.cs | 523 ++++++++----------
.../Service/DataSync/Dto/BookingOrderDto.cs | 6 +-
Myshipping.Web.Core/applicationconfig.json | 3 +
5 files changed, 239 insertions(+), 543 deletions(-)
diff --git a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
index a603e984..cae0cd66 100644
--- a/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
+++ b/Myshipping.Application/Service/BookingOrder/BookingOrderService.cs
@@ -745,6 +745,8 @@ namespace Myshipping.Application
entity.VERSION = Guid.NewGuid().ToString();
entity.BOOKINGNO = Yitter.IdGenerator.YitIdHelper.NextId().ToString();
+ entity.BSDATE = DateTime.Today;
+ entity.BSNO = null;
await _rep.InsertAsync(entity);
if (input.ctnInputs != null)
{
@@ -813,6 +815,8 @@ namespace Myshipping.Application
await _rep.AsUpdateable(entity).IgnoreColumns(it => new
{
it.ParentId,
+ it.BSDATE,
+ it.BSNO,
it.TenantId,
it.CreatedTime,
it.CreatedUserId,
@@ -1405,9 +1409,6 @@ namespace Myshipping.Application
}
}
-
-
-
///
/// 删除备注
///
@@ -1421,10 +1422,6 @@ namespace Myshipping.Application
await _bookingremark.DeleteAsync(x => x.Id == Id);
}
-
-
-
-
///
/// 增加订舱附件
///
@@ -1882,230 +1879,7 @@ namespace Myshipping.Application
}
- ///
- /// 插入货运动态
- ///
- [AllowAnonymous]
- [SqlSugarUnitOfWork]
- [HttpPost("/BookingOrder/AddBookingStatusLog")]
- public async Task AddBookingStatusLog(List all)
- {
- try
- {
- var old = await _repStatuslog.AsQueryable().Filter(null, true).Where(x => x.BookingId == all[0].BookingId && x.Category == "yunzong" && x.IsDeleted == false).ToListAsync();
- await _repStatuslog.DeleteAsync(x => x.BookingId == all[0].BookingId && x.Category == "yunzong");
- foreach (var ot in old)
- {
- await _statuslogdetail.DeleteAsync(x => x.PId == ot.Id);
- }
- var dicdatalist = _cache.GetAllDictData().Result;
- foreach (var item in all)
- {
- #region 日志
- //新增数据
- var bookingStatusLog = new BookingStatusLog();
- bookingStatusLog.BookingId = item.BookingId;
- bookingStatusLog.Category = "yunzong";
- bookingStatusLog.CreatedTime = DateTime.Now;
- bookingStatusLog.Status = item.Status;
- bookingStatusLog.OpTime = item.OpTime;
- bookingStatusLog.MBLNO = item.MBLNO;
- await _repStatuslog.InsertAsync(bookingStatusLog);
- var list = await _repBookingStatus.AsQueryable().Filter(null, true).InnerJoin((d, t) => d.StaCode == t.Code && d.StaCate == "book_sta_cate_billtrace" && d.BookingId == item.BookingId).Select((d, t) => new
- {
- BookingId = d.BookingId,
- StaCode = d.StaCode,
- StaName = d.StaName,
- StaTime = d.StaTime,
- Code = t.Code,
- Value = t.Value
- }).ToListAsync();
-
- if (item.detail != null && item.detail.Count > 0)
- {
- foreach (var dt in item.detail)
- {
- var BookingStatusLogDetail = new BookingStatusLogDetail();
- BookingStatusLogDetail.PId = bookingStatusLog.Id;
- BookingStatusLogDetail.Status = dt.Status;
- BookingStatusLogDetail.CNTRNO = dt.CNTRNO;
- BookingStatusLogDetail.OPTime = dt.OPTime;
- await _statuslogdetail.InsertAsync(BookingStatusLogDetail);
- }
- }
- #endregion
-
- #region 订舱状态
- if (item.Status == "舱单")
- {
- if (list.Where(x => x.Code == "sta_cangdan").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_cangdan";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_cangdan").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.OpTime;
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- }
- }
- if (item.Status == "海关放行")
- {
- if (list.Where(x => x.Code == "sta_haifang").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_haifang";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_haifang").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.OpTime;
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- await SetGoodsStatus("BG", item.BookingId);
- await SendBookingOrder(new long[] { item.BookingId });
- }
- }
- if (item.Status == "装载")
- {
- if (list.Where(x => x.Code == "sta_zhuangzai").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_zhuangzai";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_zhuangzai").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.OpTime;
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- await SetGoodsStatus("ZZFX", item.BookingId);
- await SendBookingOrder(new long[] { item.BookingId });
- }
- }
- if (item.Status == "码放")
- {
- if (list.Where(x => x.Code == "sta_mafang").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_mafang";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_mafang").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.OpTime;
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- await SetGoodsStatus("MTFX", item.BookingId);
- await SendBookingOrder(new long[] { item.BookingId });
- }
- }
- if (item.Status == "装船")
- {
- if (list.Where(x => x.Code == "sta_zhuangchuan").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_zhuangchuan";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_zhuangchuan").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.detail.Max(x => x.OPTime);
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- }
- }
- if (item.Status == "ATD")
- {
- if (list.Where(x => x.Code == "sta_atd").FirstOrDefault() == null)
- {
- BookingStatus bookingStatus = new BookingStatus();
- bookingStatus.BookingId = item.BookingId;
- bookingStatus.StaCode = "sta_atd";
- bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_atd").Select(x => x.Value).FirstOrDefault();
- bookingStatus.StaTime = item.OpTime;
- bookingStatus.StaCate = "book_sta_cate_billtrace";
- await _repBookingStatus.InsertAsync(bookingStatus);
- }
- }
- #region 入港时间
- if (item.Status == "入港")
- {
- await SetGoodsStatus("YRG", item.BookingId);
- }
- #endregion
- #endregion
-
- #region ATD
- if (item.Status == "ATD")
- {
- var o = _rep.AsQueryable().Filter(null, true).Where(x => x.Id == item.BookingId && x.IsDeleted == false).First();
- var oldatd = o == null ? null : o.ATD;
- if (oldatd != item.OpTime && item.OpTime != null)
- {
- o.ATD = item.OpTime;
- await _rep.UpdateAsync(o);
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = item.BookingId,
- TenantId = o.TenantId,
- CreatedTime = DateTime.Now,
- CreatedUserId = o.CreatedUserId,
- CreatedUserName = "系统管理员"
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "实际开船",
- OldValue = oldatd == null ? "" : oldatd.ToString(),
- NewValue = item.OpTime == null ? "" : item.OpTime.ToString(),
- });
- await SendBookingOrder(new long[] { o.Id });
- }
- if (!string.IsNullOrEmpty(o.VESSEL) && !string.IsNullOrEmpty(o.VOYNO))
- {
- var order = await _rep.AsQueryable().Filter(null, true).Where(x => x.VOYNO == o.VOYNO && x.VESSEL == o.VESSEL && x.TenantId == o.TenantId && x.IsDeleted == false && x.Id != item.BookingId).ToListAsync();
- foreach (var it in order)
- {
- var _oldatd = it.ATD;
- if (_oldatd != item.OpTime)
- {
- it.ATD = item.OpTime;
- await _rep.UpdateAsync(it);
- ////添加booking日志
- var _bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = it.TenantId,
- CreatedTime = DateTime.Now,
- CreatedUserId = o.CreatedUserId,
- CreatedUserName = "系统管理员"
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = _bid,
- Field = "实际开船",
- OldValue = _oldatd == null ? "" : _oldatd.ToString(),
- NewValue = item.OpTime == null ? "" : item.OpTime.ToString(),
- });
- await SendBookingOrder(new long[] { o.Id });
- }
-
-
- }
-
-
-
- }
- }
- #endregion
- }
- }
- catch (Exception ex)
- {
-
- _logger.LogError(ex.Message);
- _logger.LogError(ex.StackTrace);
-
- }
-
-
- }
+
#endregion
#region 放舱(入货通知)
@@ -7912,7 +7686,9 @@ namespace Myshipping.Application
[NonAction]
public async Task SendBookingOrder(long[] ids)
{
- var itemcode = _cache.GetAllTenantParam().Result.Where(x => x.ParaCode == "BOOKING_DATA_PUSH" && x.TenantId == UserManager.TENANT_ID).Select(x => x.ItemCode).FirstOrDefault();
+ var itemcode = App.Configuration["ITEMCODE"];
+ var BookingOrderMQUri= App.Configuration["BookingOrderMQUri"];
+ _logger.LogInformation("订舱数据回推地址:" + BookingOrderMQUri);
if (!string.IsNullOrEmpty(itemcode) && itemcode == "true")
{
if (ids.Count() == 0)
@@ -7994,13 +7770,12 @@ namespace Myshipping.Application
}
var json = dto.ToJsonString();
_logger.LogInformation("订舱数据回推:" + json);
- _logger.LogInformation("订舱数据回推地址:" + _cache.GetAllDictData().Result.Where(x => x.Code == "BookingOrderMQUri").Select(x => x.Value).FirstOrDefault());
try
{
const string MqActionExchangeName = "djy.output.dingcang.ds6";
const string MqActionQueueName = "djy.output.dingcang.ds6";
ConnectionFactory factory = new ConnectionFactory();
- factory.Uri = new Uri(_cache.GetAllDictData().Result.Where(x => x.Code == "BookingOrderMQUri").Select(x => x.Value).FirstOrDefault());
+ factory.Uri = new Uri(BookingOrderMQUri);
using (IConnection conn = factory.CreateConnection())
{
@@ -8014,7 +7789,7 @@ namespace Myshipping.Application
props.DeliveryMode = 2;
mqModel.BasicPublish(MqActionExchangeName, queueName, props, messageBodyBytes);
conn.Close();
- _logger.LogInformation($"订舱数据回推,已发送数据到消息队列【{_cache.GetAllDictData().Result.Where(x => x.Code == "BookingOrderMQUri").Select(x => x.Value).FirstOrDefault()}】,数据内容:【{json}】");
+ _logger.LogInformation($"订舱数据回推,已发送数据到消息队列【{BookingOrderMQUri}】,数据内容:【{json}】");
}
}
catch (Exception ex)
diff --git a/Myshipping.Application/Service/BookingOrder/IBookingOrderService.cs b/Myshipping.Application/Service/BookingOrder/IBookingOrderService.cs
index ffcc057d..23ac2012 100644
--- a/Myshipping.Application/Service/BookingOrder/IBookingOrderService.cs
+++ b/Myshipping.Application/Service/BookingOrder/IBookingOrderService.cs
@@ -31,8 +31,7 @@ namespace Myshipping.Application
Task> GetBookingStatusLog(long Id);
-
- Task AddBookingStatusLog(List all);
+
///
/// 发送订舱、截单EDI
@@ -70,6 +69,6 @@ namespace Myshipping.Application
///
Task SetGoodsStatus(string code, long bookingId);
-
+ Task SaveLog(BookingOrder newOrder, BookingOrder oldOrder);
}
}
\ No newline at end of file
diff --git a/Myshipping.Application/Service/DataSync/DataSyncService.cs b/Myshipping.Application/Service/DataSync/DataSyncService.cs
index 5aee30b2..7f4faea0 100644
--- a/Myshipping.Application/Service/DataSync/DataSyncService.cs
+++ b/Myshipping.Application/Service/DataSync/DataSyncService.cs
@@ -71,11 +71,15 @@ namespace Myshipping.Application
private readonly SqlSugarRepository _codeForwarder;
private readonly SqlSugarRepository _bookingfile;
private readonly SqlSugarRepository _accountconfig;
+ private readonly SqlSugarRepository _repStatuslog;
+ private readonly SqlSugarRepository _statuslogdetail;
+ private readonly SqlSugarRepository _repBookingStatus;
private readonly IBookingOrderService _bookingorderservice;
public DataSyncService(ILogger logger, ISysCacheService cache, SqlSugarRepository rep, SqlSugarRepository repCtn,
SqlSugarRepository repUser, SqlSugarRepository repTenant, SqlSugarRepository djycustomer,
+ SqlSugarRepository statuslog, SqlSugarRepository statuslogdetail, SqlSugarRepository repBookingStatus,
SqlSugarRepository djycustomercontact, SqlSugarRepository vesselinfo, SqlSugarRepository ctndetailrep
, SqlSugarRepository bookingEDIExt, SqlSugarRepository bookinglog, SqlSugarRepository bookinglogdetail,
SqlSugarRepository goodsStatus, SqlSugarRepository goodsStatusConfig, SqlSugarRepository repline,
@@ -109,6 +113,9 @@ namespace Myshipping.Application
this._accountconfig = accountconfig;
this._bookingfile = bookingfile;
this._bookingorderservice = bookingorderservice;
+ this._repStatuslog = statuslog;
+ this._statuslogdetail = statuslogdetail;
+ this._repBookingStatus = repBookingStatus;
}
@@ -465,14 +472,6 @@ namespace Myshipping.Application
{
entity.ETA = m.ETA;
}
- //if (m.ATD != null)
- //{
- // entity.ATD = m.ATD;
- //}
- //if (m.YgtETD != null)
- //{
- // entity.YgtETD = m.YgtETD;
- //}
await _vesselinfo.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
}
////根据船公司船名航次更新船期信息
@@ -486,19 +485,12 @@ namespace Myshipping.Application
_logger.LogInformation($"同步船期_查询到{UserManager.TENANT_NAME}需要更新{order.Count()}条订舱数据");
foreach (var it in order)
{
+ var old = it;
//更新订舱船期
if (it.ETD != item.ETD && item.ETD != null)
{
it.ETD = item.ETD;
- //if (it.ATD != item.ATD && item.ATD != null)
- //{
- // it.ATD = item.ATD;
- //}
- //if (it.YgtETD != item.YgtETD && item.YgtETD != null)
- //{
- // it.YgtETD = item.YgtETD;
- //}
await _rep.AsUpdateable(it).IgnoreColumns(it => new
{
it.ParentId,
@@ -518,58 +510,17 @@ namespace Myshipping.Application
it.LstShipOrderCompareRltName,
it.LstShipOrderCompareMode
}).ExecuteCommandAsync();
- //记录日志
-
-
-
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = CreatedUserId,
- CreatedUserName = item.CreatedUserName
- });
- if (it.ETD != item.ETD)
- {
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "ETD",
- OldValue = it.ETD != null ? it.ETD.ToSqlValue() : null,
- NewValue = item.ETD != null ? item.ETD.ToSqlValue() : null,
- });
- }
- //if (it.ATD != item.ATD)
- //{
- // await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- // {
- // PId = bid,
- // Field = "ATD",
- // OldValue = it.ATD != null ? it.ATD.ToSqlValue() : null,
- // NewValue = item.ATD != null ? item.ATD.ToSqlValue() : null,
- // });
- //}
- //if (it.YgtETD != item.YgtETD)
- //{
- // await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- // {
- // PId = bid,
- // Field = "ETD",
- // OldValue = it.YgtETD != null ? it.YgtETD.ToSqlValue() : null,
- // NewValue = item.YgtETD != null ? item.YgtETD.ToSqlValue() : null,
- // });
- //}
+ await _bookingorderservice.SaveLog(it, old);
}
+
}
var ids = order.Where(x => x.ParentId == 0).Select(x => x.Id).ToArray();
- if (ids.Count()>0) {
+ if (ids.Count() > 0)
+ {
await _bookingorderservice.SendBookingOrder(ids);
}
-
+
}
}
@@ -1696,99 +1647,33 @@ namespace Myshipping.Application
{
foreach (var it in order)
{
+ var old = it;
bool flag = false;
if (it.StartETA != item.ETA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "预抵日期",
- OldValue = it.StartETA == null ? "" : it.StartETA.ToString(),
- NewValue = item.ETA == null ? "" : item.ETA.ToString(),
- });
it.StartETA = item.ETA;
}
if (it.YgtETD != item.ETD)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "ETD",
- OldValue = it.YgtETD == null ? "" : it.YgtETD.ToString(),
- NewValue = item.ETD == null ? "" : item.ETD.ToString(),
- });
it.YgtETD = item.ETD;
}
if (it.ATD != item.ATD && it.ATD == null)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "实际开船日期",
- OldValue = it.ATD == null ? "" : it.ATD.ToString(),
- NewValue = item.ATD == null ? "" : item.ATD.ToString(),
- });
it.ATD = item.ATD;
}
if (it.StartATA != item.ATA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "实际抵港",
- OldValue = it.StartATA == null ? "" : it.StartATA.ToString(),
- NewValue = item.ATA == null ? "" : item.ATA.ToString(),
- });
it.StartATA = item.ATA;
}
if (flag)
{
issend = true;
await _rep.AsUpdateable(it).IgnoreColumns().ExecuteCommandAsync();
+ await _bookingorderservice.SaveLog(it, old);
}
@@ -1831,140 +1716,45 @@ namespace Myshipping.Application
{
foreach (var it in order)
{
+ var old = it;
bool flag = false;
if (it.ETA != item.ETA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "预计到港日期(目的港)",
- OldValue = it.ETA == null ? "" : it.ETA.ToString(),
- NewValue = item.ETA == null ? "" : item.ETA.ToString(),
- });
+
it.ETA = item.ETA;
}
if (it.MiddleETA != item.MiddleETA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "中转预抵",
- OldValue = it.MiddleETA == null ? "" : it.MiddleETA.ToString(),
- NewValue = item.MiddleETA == null ? "" : item.MiddleETA.ToString(),
- });
+
it.MiddleETA = item.MiddleETA;
}
if (it.MiddleETD != item.MiddleETD)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "中转预计离港",
- OldValue = it.MiddleETD == null ? "" : it.MiddleETD.ToString(),
- NewValue = item.MiddleETD == null ? "" : item.MiddleETD.ToString(),
- });
+
it.MiddleETD = item.MiddleETD;
}
if (item.MiddleATA != it.MiddleATA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "中转实际到港",
- OldValue = it.MiddleATA == null ? "" : it.MiddleATA.ToString(),
- NewValue = item.MiddleATA == null ? "" : item.MiddleATA.ToString(),
- });
+
it.MiddleATA = item.MiddleATA;
}
if (item.MiddleATD != it.MiddleATD)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "中转实际离港",
- OldValue = it.MiddleATD == null ? "" : it.MiddleATD.ToString(),
- NewValue = item.MiddleATD == null ? "" : item.MiddleATD.ToString(),
- });
+
it.MiddleATD = item.MiddleATD;
}
if (item.ATA != it.ATA)
{
flag = true;
- ////添加booking日志
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = it.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = UserManager.UserId,
- CreatedUserName = UserManager.Name
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "实际到港(目的港)",
- OldValue = it.ATA == null ? "" : it.ATA.ToString(),
- NewValue = item.ATA == null ? "" : item.ATA.ToString(),
- });
+
it.ATA = item.ATA;
}
@@ -1972,6 +1762,7 @@ namespace Myshipping.Application
{
issend = true;
await _rep.AsUpdateable(it).IgnoreColumns().ExecuteCommandAsync();
+ await _bookingorderservice.SaveLog(it, old);
}
}
if (issend)
@@ -2246,6 +2037,200 @@ namespace Myshipping.Application
}
});
+ }
+
+ ///
+ /// 插入货运动态
+ ///
+ [SqlSugarUnitOfWork]
+ [HttpPost("/DataSync/AddBookingStatusLog"), ApiUser(ApiCode = "AddBookingStatusLog")]
+ public async Task AddBookingStatusLog(List all)
+ {
+ try
+ {
+ var old = await _repStatuslog.AsQueryable().Filter(null, true).Where(x => x.BookingId == all[0].BookingId && x.Category == "yunzong" && x.IsDeleted == false).ToListAsync();
+ await _repStatuslog.DeleteAsync(x => x.BookingId == all[0].BookingId && x.Category == "yunzong");
+ foreach (var ot in old)
+ {
+ await _statuslogdetail.DeleteAsync(x => x.PId == ot.Id);
+ }
+ var dicdatalist = _cache.GetAllDictData().Result;
+ foreach (var item in all)
+ {
+ #region 日志
+ //新增数据
+ var bookingStatusLog = new BookingStatusLog();
+ bookingStatusLog.BookingId = item.BookingId;
+ bookingStatusLog.Category = "yunzong";
+ bookingStatusLog.CreatedTime = DateTime.Now;
+ bookingStatusLog.Status = item.Status;
+ bookingStatusLog.OpTime = item.OpTime;
+ bookingStatusLog.MBLNO = item.MBLNO;
+ await _repStatuslog.InsertAsync(bookingStatusLog);
+ var list = await _repBookingStatus.AsQueryable().Filter(null, true).InnerJoin((d, t) => d.StaCode == t.Code && d.StaCate == "book_sta_cate_billtrace" && d.BookingId == item.BookingId).Select((d, t) => new
+ {
+ BookingId = d.BookingId,
+ StaCode = d.StaCode,
+ StaName = d.StaName,
+ StaTime = d.StaTime,
+ Code = t.Code,
+ Value = t.Value
+ }).ToListAsync();
+
+ if (item.detail != null && item.detail.Count > 0)
+ {
+ foreach (var dt in item.detail)
+ {
+ var BookingStatusLogDetail = new BookingStatusLogDetail();
+ BookingStatusLogDetail.PId = bookingStatusLog.Id;
+ BookingStatusLogDetail.Status = dt.Status;
+ BookingStatusLogDetail.CNTRNO = dt.CNTRNO;
+ BookingStatusLogDetail.OPTime = dt.OPTime;
+ await _statuslogdetail.InsertAsync(BookingStatusLogDetail);
+ }
+ }
+ #endregion
+
+ #region 订舱状态
+ if (item.Status == "舱单")
+ {
+ if (list.Where(x => x.Code == "sta_cangdan").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_cangdan";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_cangdan").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.OpTime;
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ }
+ }
+ if (item.Status == "海关放行")
+ {
+ if (list.Where(x => x.Code == "sta_haifang").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_haifang";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_haifang").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.OpTime;
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ await _bookingorderservice.SetGoodsStatus("BG", item.BookingId);
+ await _bookingorderservice.SendBookingOrder(new long[] { item.BookingId });
+ }
+ }
+ if (item.Status == "装载")
+ {
+ if (list.Where(x => x.Code == "sta_zhuangzai").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_zhuangzai";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_zhuangzai").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.OpTime;
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ await _bookingorderservice.SetGoodsStatus("ZZFX", item.BookingId);
+ await _bookingorderservice.SendBookingOrder(new long[] { item.BookingId });
+ }
+ }
+ if (item.Status == "码放")
+ {
+ if (list.Where(x => x.Code == "sta_mafang").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_mafang";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_mafang").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.OpTime;
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ await _bookingorderservice.SetGoodsStatus("MTFX", item.BookingId);
+ await _bookingorderservice.SendBookingOrder(new long[] { item.BookingId });
+ }
+ }
+ if (item.Status == "装船")
+ {
+ if (list.Where(x => x.Code == "sta_zhuangchuan").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_zhuangchuan";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_zhuangchuan").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.detail.Max(x => x.OPTime);
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ }
+ }
+ if (item.Status == "ATD")
+ {
+ if (list.Where(x => x.Code == "sta_atd").FirstOrDefault() == null)
+ {
+ BookingStatus bookingStatus = new BookingStatus();
+ bookingStatus.BookingId = item.BookingId;
+ bookingStatus.StaCode = "sta_atd";
+ bookingStatus.StaName = dicdatalist.Where(x => x.Code == "sta_atd").Select(x => x.Value).FirstOrDefault();
+ bookingStatus.StaTime = item.OpTime;
+ bookingStatus.StaCate = "book_sta_cate_billtrace";
+ await _repBookingStatus.InsertAsync(bookingStatus);
+ }
+ }
+ #region 入港时间
+ if (item.Status == "入港")
+ {
+ await _bookingorderservice.SetGoodsStatus("YRG", item.BookingId);
+ }
+ #endregion
+ #endregion
+
+ #region ATD
+ if (item.Status == "ATD")
+ {
+ var o = _rep.AsQueryable().Filter(null, true).Where(x => x.Id == item.BookingId && x.IsDeleted == false).First();
+ var oldorder = o;
+ var oldatd = o == null ? null : o.ATD;
+ if (oldatd != item.OpTime && item.OpTime != null)
+ {
+ o.ATD = item.OpTime;
+ await _rep.UpdateAsync(o);
+
+ await _bookingorderservice.SendBookingOrder(new long[] { o.Id });
+ await _bookingorderservice.SaveLog(o,oldorder);
+
+
+ }
+ if (!string.IsNullOrEmpty(o.VESSEL) && !string.IsNullOrEmpty(o.VOYNO) && !string.IsNullOrEmpty(o.CARRIERID))
+ {
+ var order = await _rep.AsQueryable().Filter(null, true).Where(x => x.VOYNO == o.VOYNO && x.VESSEL == o.VESSEL && x.CARRIERID == o.CARRIERID && x.TenantId == o.TenantId && x.IsDeleted == false && x.Id != item.BookingId).ToListAsync();
+
+ foreach (var it in order)
+ {
+ var _oldorder= it;
+ var _oldatd = it.ATD;
+ if (_oldatd != item.OpTime)
+ {
+ it.ATD = item.OpTime;
+ await _rep.UpdateAsync(it);
+
+ await _bookingorderservice.SendBookingOrder(new long[] { it.Id });
+ await _bookingorderservice.SaveLog(it, _oldorder);
+ }
+ }
+ }
+ }
+ #endregion
+ }
+ }
+ catch (Exception ex)
+ {
+
+ _logger.LogError(ex.Message);
+ _logger.LogError(ex.StackTrace);
+
+ }
+
+
}
#endregion
@@ -2258,7 +2243,6 @@ namespace Myshipping.Application
[HttpGet("/DataSync/GetSyncVesselDate"), ApiUser(ApiCode = "GetSyncVesselDate")]
public async Task GetSyncVesselDate()
{
-
var list = await _vesselinfo.AsQueryable().Filter(null, true).Where(x => x.Sign == false && x.ATD == null && x.TenantId == UserManager.TENANT_ID && (x.Voyno != null && x.Voyno != "")).Select(x => new
{
Vessel = x.Vessel,
@@ -2330,67 +2314,7 @@ namespace Myshipping.Application
}
var order = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync();
- if (order.MBLNO != input.MBLNO)
- {
-
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = order.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = order.CreatedUserId,
- CreatedUserName = order.CreatedUserName
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "MBLNO",
- OldValue = order.MBLNO,
- NewValue = input.MBLNO,
- });
- }
-
- if (order.TMBLNO != input.TMBLNO)
- {
-
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = order.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = order.CreatedUserId,
- CreatedUserName = order.CreatedUserName
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "TMBLNO",
- OldValue = order.TMBLNO,
- NewValue = input.TMBLNO,
- });
- }
- if (order.BOOKINGNO != input.BOOKINGNO)
- {
-
- var bid = await _bookinglog.InsertReturnSnowflakeIdAsync(new BookingLog
- {
- Type = "Edit",
- BookingId = order.Id,
- TenantId = Convert.ToInt64(UserManager.TENANT_ID),
- CreatedTime = DateTime.Now,
- CreatedUserId = order.CreatedUserId,
- CreatedUserName = order.CreatedUserName
- });
- await _bookinglogdetail.InsertReturnSnowflakeIdAsync(new BookingLogDetail
- {
- PId = bid,
- Field = "BOOKINGNO",
- OldValue = order.BOOKINGNO,
- NewValue = input.BOOKINGNO,
- });
- }
+ var old = order;
order.MBLNO = input.MBLNO;
order.TMBLNO = input.TMBLNO;
order.BOOKINGNO = input.BOOKINGNO;
@@ -2407,11 +2331,9 @@ namespace Myshipping.Application
it.TenantName,
it.IsDeleted,
}).ExecuteCommandAsync();
+ await _bookingorderservice.SaveLog(order, old);
}
-
-
-
///
/// 获取接口Key 个人或公司
///
@@ -2509,13 +2431,6 @@ namespace Myshipping.Application
}
}
-
-
-
-
-
-
-
#endregion
}
}
diff --git a/Myshipping.Application/Service/DataSync/Dto/BookingOrderDto.cs b/Myshipping.Application/Service/DataSync/Dto/BookingOrderDto.cs
index 09f97ae3..5262fd1e 100644
--- a/Myshipping.Application/Service/DataSync/Dto/BookingOrderDto.cs
+++ b/Myshipping.Application/Service/DataSync/Dto/BookingOrderDto.cs
@@ -781,8 +781,12 @@ namespace Myshipping.Application.Service.DataSync.Dto
///
public string ForeignAgent { get; set; }
-
+
+ ///
+ /// 版本号
+ ///
+ public string VERSION { get; set; }
///
/// 三方付费
///
diff --git a/Myshipping.Web.Core/applicationconfig.json b/Myshipping.Web.Core/applicationconfig.json
index f7294c45..5758fee3 100644
--- a/Myshipping.Web.Core/applicationconfig.json
+++ b/Myshipping.Web.Core/applicationconfig.json
@@ -121,7 +121,10 @@
"Path": "TempFiles",
"RemainHours": 2
},
+ "ITEMCODE": true,
+ "BookingOrderMQUri":"amqp://hechuan_booking:hechuan_booking123@47.104.207.5:12567/hechuan_booking",
"ShippingOrderCompareUrl": "http://60.209.125.238:35210/api/TaskShippingOrderCompare/ExcuteShippingOrderCompare",
"BCOrDraftUserKey": "BookingOrderPlat",
"BCOrDraftUserSecret": "228b2db5952d13291f228d441018c1b6"
+
}
\ No newline at end of file