diff --git a/Myshipping.Application/Entity/BookingOrder.cs b/Myshipping.Application/Entity/BookingOrder.cs
index c1b4a498..5d28a31f 100644
--- a/Myshipping.Application/Entity/BookingOrder.cs
+++ b/Myshipping.Application/Entity/BookingOrder.cs
@@ -856,7 +856,7 @@ namespace Myshipping.Application.Entity
///
/// 最后下货纸比对状态 NO_DIFF-无异常;DIFF-有差异;NO_YARD-无场站数据;EXPT-异常
///
- [Description("下货纸比对")]
+ [Description("下货纸比对状态")]
public string LstShipOrderCompareRlt { get; set; }
///
@@ -871,6 +871,7 @@ namespace Myshipping.Application.Entity
///
/// 最后下货纸比对状态 NO_DIFF-无异常;DIFF-有差异;NO_YARD-无场站数据;EXPT-异常
///
+ [Description("下货纸比对状态名称")]
public string LstShipOrderCompareRltName { get; set; }
///
@@ -1013,6 +1014,7 @@ namespace Myshipping.Application.Entity
///
/// 最后格式单比对状态 NO_DIFF-无异常;DIFF-有差异;
///
+ [Description("最后格式单比对状态")]
public string LstDraftCompareRlt { get; set; }
///
diff --git a/Myshipping.Application/Entity/DraftCompare/DraftCompareFeedBackRecord.cs b/Myshipping.Application/Entity/DraftCompare/DraftCompareFeedBackRecord.cs
index f39474ff..9af47f3a 100644
--- a/Myshipping.Application/Entity/DraftCompare/DraftCompareFeedBackRecord.cs
+++ b/Myshipping.Application/Entity/DraftCompare/DraftCompareFeedBackRecord.cs
@@ -63,5 +63,19 @@ namespace Myshipping.Application.Entity.DraftCompare
[SugarColumn(ColumnName = "NOTES")]
[Description("备注")]
public string NOTES { get; set; }
+
+ ///
+ /// 比对类型 DRAFT-格式单比对;SHIPORDER-下货纸比对
+ ///
+ [SugarColumn(ColumnName = "COMPARE_TYPE")]
+ [Description("比对类型")]
+ public string COMPARE_TYPE { get; set; }
+
+ ///
+ /// 比对完成时间
+ ///
+ [SugarColumn(ColumnName = "COMPARE_TIME")]
+ [Description("比对完成时间")]
+ public Nullable COMPARE_TIME { get; set; }
}
}
diff --git a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskDraftCompareFeedBackDto.cs b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskDraftCompareFeedBackDto.cs
index 7af2b85c..0ccae4cc 100644
--- a/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskDraftCompareFeedBackDto.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/Dtos/TaskDraftCompareFeedBackDto.cs
@@ -6,7 +6,54 @@ using System.Threading.Tasks;
namespace Myshipping.Application
{
+ ///
+ /// 格式单反馈记录
+ ///
public class TaskDraftCompareFeedBackDto
{
+ ///
+ /// 订舱主键
+ ///
+ public long bookingId { get; set; }
+
+ ///
+ /// 提单号
+ ///
+ public string mblNo { get; set; }
+
+ ///
+ /// 比对主键
+ ///
+ public string taskCompareId { get; set; }
+
+ ///
+ /// 是否识别问题 1-时 0-否
+ ///
+ public bool isOCRError { get; set; }
+
+ ///
+ /// 是否订舱录入问题 1-是 0-否
+ ///
+ public bool isEditError { get; set; }
+
+ ///
+ /// 是否代理录入问题 1-是 0-否
+ ///
+ public bool isAgentError { get; set; }
+
+ ///
+ /// 备注
+ ///
+ public string notes { get; set; }
+
+ ///
+ /// 比对类型 DRAFT-格式单比对;SHIPORDER-下货纸比对
+ ///
+ public string compareType { get; set; }
+
+ ///
+ /// 比对完成时间
+ ///
+ public Nullable compareTime { get; set; }
}
}
diff --git a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskDraftCompareService.cs b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskDraftCompareService.cs
index e71fc5ae..2f88baad 100644
--- a/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskDraftCompareService.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/Interface/ITaskDraftCompareService.cs
@@ -44,6 +44,6 @@ namespace Myshipping.Application
///
/// 请求详情
/// 返回回执
- Task SaveDraftCompareManual(TaskDraftCompareFeedBackDto model);
+ Task SaveDraftCompareManual(TaskDraftCompareFeedBackDto model);
}
}
diff --git a/Myshipping.Application/Service/TaskManagePlat/TaskDraftCompareService.cs b/Myshipping.Application/Service/TaskManagePlat/TaskDraftCompareService.cs
index e389ab28..57bfd0dd 100644
--- a/Myshipping.Application/Service/TaskManagePlat/TaskDraftCompareService.cs
+++ b/Myshipping.Application/Service/TaskManagePlat/TaskDraftCompareService.cs
@@ -48,6 +48,7 @@ namespace Myshipping.Application
private readonly SqlSugarRepository _sysUserRepository;
private readonly IBookingOrderService _bookingOrderService;
private readonly SqlSugarRepository _draftCompareFeedBackRecordRepository;
+ private readonly IBookingValueAddedService _bookingValueAddedService;
const string CONST_DRAFT_FILE_CODE = "draft";
const string CONST_DRAFT_FILE_NAME = "格式单";
@@ -56,7 +57,7 @@ namespace Myshipping.Application
public TaskDraftCompareService(ISysCacheService cache, ILogger logger,
SqlSugarRepository bookingOrderRepository, SqlSugarRepository bookingOrderContaRepository,
SqlSugarRepository bookingFileRepository, SqlSugarRepository sysUserRepository, IBookingOrderService bookingOrderService,
- SqlSugarRepository draftCompareFeedBackRecordRepository)
+ SqlSugarRepository draftCompareFeedBackRecordRepository, IBookingValueAddedService bookingValueAddedService)
{
_cache = cache;
_logger = logger;
@@ -68,6 +69,7 @@ namespace Myshipping.Application
_bookingOrderService = bookingOrderService;
_draftCompareFeedBackRecordRepository = draftCompareFeedBackRecordRepository;
+ _bookingValueAddedService = bookingValueAddedService;
}
#region 执行邮件Draft比对
@@ -856,25 +858,105 @@ namespace Myshipping.Application
///
/// 请求详情
/// 返回回执
- public async Task SaveDraftCompareManual(TaskDraftCompareFeedBackDto model)
+ public async Task SaveDraftCompareManual(TaskDraftCompareFeedBackDto model)
{
- TaskManageExcuteResultDto result = new TaskManageExcuteResultDto();
+ if (model.bookingId <= 0)
+ throw Oops.Oh($"订舱ID不能为空");
- try
+ var order = _bookingOrderRepository.AsQueryable().First(a => a.Id == model.bookingId);
+
+ if (order == null)
+ throw Oops.Oh($"订舱详情获取失败,订舱信息不存在或已作废");
+
+ if (!model.isOCRError && !model.isEditError && !model.isAgentError)
{
- DraftCompareFeedBackRecord entity = new DraftCompareFeedBackRecord {
- //BOOKING_ID = model.
- };
-
- await _draftCompareFeedBackRecordRepository.InsertAsync(entity);
+ throw Oops.Oh($"至少选择一个原因");
}
- catch (Exception ex)
+
+ _logger.LogInformation("请求比对反馈,model={msg}", JSON.Serialize(model));
+
+ DateTime nowDate = DateTime.Now;
+
+ DraftCompareFeedBackRecord entity = new DraftCompareFeedBackRecord
{
- result.succ = false;
- result.msg = $"保存格式单比对反馈异常,{ex.Message}";
+ BOOKING_ID = model.bookingId,
+ IS_AGENT_ERROR = model.isAgentError,
+ IS_OCR_ERROR = model.isOCRError,
+ IS_EDIT_ERROR = model.isEditError,
+ COMPARE_TYPE = model.compareType,
+ COMPARE_TIME = model.compareTime,
+ TASK_COMPARE_ID = model.taskCompareId,
+ CreatedUserId = UserManager.UserId,
+ CreatedUserName = UserManager.Name,
+ CreatedTime = nowDate,
+ UpdatedTime = nowDate
+ };
+
+ //新增完记录
+ await _draftCompareFeedBackRecordRepository.InsertAsync(entity);
+
+ _logger.LogInformation("请求比对反馈写入表完成,id={id}", model.bookingId);
+
+ var oldOrder = _bookingOrderRepository.AsQueryable().First(a => a.Id == model.bookingId);
+
+ //更新订舱相关的格式单比对状态
+ if (model.compareType.Equals("DRAFT", StringComparison.OrdinalIgnoreCase))
+ {
+ _logger.LogInformation("请求比对反馈选择修正 compareType={compare},id={id}", model.compareType, model.bookingId);
+
+ order.LstDraftCompareRlt = "NO DIFF";
+ order.UpdatedTime = nowDate;
+ order.UpdatedUserId = UserManager.UserId;
+ order.UpdatedUserName = UserManager.Name;
+
+ await _bookingOrderRepository.AsUpdateable(order).UpdateColumns(t => new
+ {
+ t.LstDraftCompareRlt,
+ t.UpdatedUserId,
+ t.UpdatedUserName,
+ t.UpdatedTime,
+ }).ExecuteCommandAsync();
+
+ _logger.LogInformation("请求比对反馈更新订舱状态完成,id={id}", model.bookingId);
+
+ // 保存日志
+ await _bookingOrderService.SaveLog(order, oldOrder, "格式单比对反馈回写");
}
+ else if (model.compareType.Equals("SHIPORDER", StringComparison.OrdinalIgnoreCase))
+ {
+ _logger.LogInformation("请求比对反馈选择修正 compareType={compare},id={id}", model.compareType, model.bookingId);
- return result;
+ order.LstShipOrderCompareRlt = "NO_DIFF";
+ order.LstShipOrderCompareRltName = "正常";
+ order.UpdatedTime = nowDate;
+ order.UpdatedUserId = UserManager.UserId;
+ order.UpdatedUserName = UserManager.Name;
+
+ await _bookingOrderRepository.AsUpdateable(order).UpdateColumns(t => new
+ {
+ t.LstShipOrderCompareRlt,
+ t.LstShipOrderCompareRltName,
+ t.UpdatedUserId,
+ t.UpdatedUserName,
+ t.UpdatedTime,
+ }).ExecuteCommandAsync();
+
+ // 保存日志
+ await _bookingOrderService.SaveLog(order, oldOrder, "格式单比对反馈回写");
+
+ _logger.LogInformation("请求比对反馈更新订舱状态完成,id={id}", model.bookingId);
+
+ //比对成功后触发下货纸比对状态
+ var saveStatusRlt = await _bookingValueAddedService.SaveServiceStatus(new ModifyServiceProjectStatusDto
+ {
+ BookingId = model.bookingId,
+ SourceType = TrackingSourceTypeEnum.AUTO,
+ StatusCodes = new List {
+ new ModifyServiceProjectStatusDetailDto { StatusCode = "XHZBDCHG" } }
+ });
+
+ _logger.LogInformation("异步推送下货纸比对状态完成,结果={rlt}", JSON.Serialize(saveStatusRlt));
+ }
}
#endregion
}
diff --git a/ServiceProjectSyncWin/Program.cs b/ServiceProjectSyncWin/Program.cs
index 24190456..a3551901 100644
--- a/ServiceProjectSyncWin/Program.cs
+++ b/ServiceProjectSyncWin/Program.cs
@@ -429,6 +429,7 @@ public class SyncHisRecord: ISyncHisRecord,ITransient
public void SyncServiceProjectRecord4()
{
+
/*
批量更新SI 截止时间
1、更新任务台