@ -16,6 +16,7 @@ using Mapster;
using Microsoft.AspNetCore.Identity ;
using Microsoft.AspNetCore.Identity ;
using DS.Module.Core.Constants ;
using DS.Module.Core.Constants ;
using Microsoft.AspNetCore.Http ;
using Microsoft.AspNetCore.Http ;
using Newtonsoft.Json ;
namespace DS.WMS.Core.Op.Method
namespace DS.WMS.Core.Op.Method
{
{
@ -49,408 +50,423 @@ namespace DS.WMS.Core.Op.Method
/// <param name="req"></param>
/// <param name="req"></param>
/// <returns></returns>
/// <returns></returns>
public async Task AddBookingStatusLog ( List < BookingStatusLogReq > req )
public async Task AddBookingStatusLog ( List < BookingStatusLogReq > req )
{
{
try
try
{
{
if ( req . Count = = 0 )
// 当BusinessId不为空时, 将BusinessId的值转为订舱主键; 否则仍然使用BookingId作为订舱记录主键
if ( ! string . IsNullOrEmpty ( req [ 0 ] . BusinessId ) )
{
{
if ( long . TryParse ( req [ 0 ] . BusinessId , out long itemBusinessId ) )
return ;
{
req [ 0 ] . BookingId = itemBusinessId ;
}
else
{
_logger . Error ( $"在将item.BusinessId转为BookingId时发生异常, 货运动态插入失败; item.BusinessId的值为: {req[0].BusinessId}" ) ;
return ;
}
}
}
else
_logger . Info ( $"货运动态回调:" + JsonConvert . SerializeObject ( req ) ) ;
//订舱状态
var dicList = db . Queryable < SysDictData > ( ) . Where ( x = > x . TypeId = = 1788810332945387520 ) . ToList ( ) ;
foreach ( var item in req )
{
{
//订舱状态
var dicList = db . Queryable < SysDictData > ( ) . Where ( x = > x . TypeId = = 1788810332945387520 ) . ToList ( ) ;
foreach ( var item in req )
{
// 当BusinessId不为空时, 将BusinessId的值转为订舱主键; 否则仍然使用BookingId作为订舱记录主键
// 当BusinessId不为空时, 将BusinessId的值转为订舱主键; 否则仍然使用BookingId作为订舱记录主键
if ( ! string . IsNullOrEmpty ( item . BusinessId ) )
if ( ! string . IsNullOrEmpty ( item . BusinessId ) )
{
if ( long . TryParse ( item . BusinessId , out long itemBusinessId ) )
{
{
if ( long . TryParse ( item . BusinessId , out long itemBusinessId ) )
item . BookingId = itemBusinessId ;
{
item . BookingId = itemBusinessId ;
}
else
{
_logger . Error ( $"在将item.BusinessId转为BookingId时发生异常, 货运动态插入失败; item.BusinessId的值为: {item.BusinessId}" ) ;
continue ;
}
}
}
var tenantId = accessor . HttpContext . Request . Headers [ "PushBackKey" ] . FirstOrDefault ( ) ;
else
var tenantDb = saasService . GetBizDbScopeById ( tenantId ) ;
{
var businessId = item . BookingId ;
_logger . Error ( $"在将item.BusinessId转为BookingId时发生异常, 货运动态插入失败; item.BusinessId的值为: {item.BusinessId}" ) ;
//TODO
continue ;
var list = await tenantDb . Queryable < BookingStatus > ( ) . Filter ( null , true )
}
. InnerJoin < SysDictData > ( ( d , t ) = > d . StatusCode = = t . Value & & d . StatusGroup = = "booking_status_group_billtrace" & & d . BusinessId = = businessId ) . Select ( ( d , t ) = > new
}
{
var tenantId = accessor . HttpContext . Request . Headers [ "PushBackKey" ] . FirstOrDefault ( ) ;
BusinessId = d . BusinessId ,
var tenantDb = saasService . GetBizDbScopeById ( tenantId ) ;
StatusCode = d . StatusCode ,
var businessId = item . BookingId ;
StatusName = d . StatusName ,
//TODO
StatusTime = d . StatusTime ,
var list = await tenantDb . Queryable < BookingStatus > ( ) . Filter ( null , true )
Name = t . Name ,
. InnerJoin < SysDictData > ( ( d , t ) = > d . StatusCode = = t . Value & & t . TypeId = = 1788810332945387520 & & d . StatusGroup = = "booking_status_group_billtrace"
Value = t . Value
& & d . BusinessId = = businessId , "shippingweb8_dev.sys_dict_data" )
} ) . ToListAsync ( ) ;
. Select ( ( d , t ) = > new
// var list = await tenantDb.Queryable<BookingStatus>().Filter(null, true).Where(x=>x.StatusGroup == "booking_status_group_billtrace" && x.BusinessId == businessId).Select(d=> new
{
//{
BusinessId = d . BusinessId ,
// BusinessId = d.BusinessId,
StatusCode = d . StatusCode ,
// StatusCode = d.StatusCode,
StatusName = d . StatusName ,
// StatusName = d.StatusName,
StatusTime = d . StatusTime ,
// StatusTime = d.StatusTime
Name = t . Name ,
//}).ToListAsync();
Value = t . Value
} ) . ToListAsync ( ) ;
var oldLog = await tenantDb . Queryable < BookingStatusLog > ( ) . Where ( x = > x . BusinessId = = businessId & & x . Group = = "yunzong" ) . FirstAsync ( ) ;
// var list = await tenantDb.Queryable<BookingStatus>().Filter(null, true).Where(x=>x.StatusGroup == "booking_status_group_billtrace" && x.BusinessId == businessId).Select(d=> new
//{
// BusinessId = d.BusinessId,
// StatusCode = d.StatusCode,
// StatusName = d.StatusName,
// StatusTime = d.StatusTime
//}).ToListAsync();
var oldLog = await tenantDb . Queryable < BookingStatusLog > ( ) . Where ( x = > x . BusinessId = = businessId & & x . Group = = "yunzong" ) . FirstAsync ( ) ;
if ( oldLog . IsNotNull ( ) ) {
//删除日志详情和日志
//删除日志详情和日志
var oldLogDetails = await tenantDb . Queryable < BookingStatusLogDetail > ( ) . Where ( x = > x . PId = = oldLog . Id ) . ToListAsync ( ) ;
var oldLogDetails = await tenantDb . Queryable < BookingStatusLogDetail > ( ) . Where ( x = > x . PId = = oldLog . Id ) . ToListAsync ( ) ;
await tenantDb . Deleteable ( oldLogDetails ) . ExecuteCommandAsync ( ) ;
if ( oldLogDetails . Count > 0 )
{
await tenantDb . Deleteable ( oldLogDetails ) . ExecuteCommandAsync ( ) ;
}
await tenantDb . Deleteable ( oldLog ) . ExecuteCommandAsync ( ) ;
await tenantDb . Deleteable ( oldLog ) . ExecuteCommandAsync ( ) ;
}
#region 日志
#region 日志
//新增数据
//新增数据
var statusLog = new BookingStatusLog ( )
var statusLog = new BookingStatusLog ( )
{
{
BusinessId = businessId ,
BusinessId = businessId ,
Group = "yunzong" ,
Group = "yunzong" ,
Status = item . Status ,
Status = item . Status ,
OpTime = item . OpTime ,
OpTime = item . OpTime ,
MBLNO = item . MBLNO
MBLNO = item . MBLNO
} ;
} ;
await tenantDb . Insertable ( statusLog ) . ExecuteCommandAsync ( ) ;
await tenantDb . Insertable ( statusLog ) . ExecuteCommandAsync ( ) ;
if ( item . detail ! = null & & item . detail . Count > 0 )
if ( item . detail ! = null & & item . detail . Count > 0 )
{
foreach ( var dt in item . detail )
{
{
foreach ( var dt in item . detail )
var logDetail = new BookingStatusLogDetail ( )
{
{
var logDetail = new BookingStatusLogDetail ( )
PId = statusLog . Id ,
{
Status = dt . Status ,
PId = statusLog . Id ,
CNTRNO = dt . CNTRNO ,
Status = dt . Status ,
OpTime = dt . OPTime
CNTRNO = dt . CNTRNO ,
} ;
OpTime = dt . OPTime
await tenantDb . Insertable ( logDetail ) . ExecuteCommandAsync ( ) ;
} ;
await tenantDb . Insertable ( logDetail ) . ExecuteCommandAsync ( ) ;
}
}
}
if ( item . Status = = "提箱" )
}
{
if ( item . Status = = "提箱" )
//自动引入场站箱型箱量数据
{
//await _bookingorderservice.AutoYardData(item.BookingId);
//自动引入场站箱型箱量数据
//await _bookingorderservice.AutoYardData(item.BookingId);
//#region 推送已提箱状态
//#region 推送已提箱状态
////2023-12-28 JHQ 增加提箱推送状态
////2023-12-28 JHQ 增加提箱推送状态
//DateTime opTime = DateTime.MinValue;
//DateTime opTime = DateTime.MinValue;
//if (item.detail != null && item.detail.Count > 0 && item.detail.Any(x => x.OPTime.HasValue))
//if (item.detail != null && item.detail.Count > 0 && item.detail.Any(x => x.OPTime.HasValue))
// opTime = item.detail.Where(x => x.OPTime.HasValue).Max(x => x.OPTime.Value);
// opTime = item.detail.Where(x => x.OPTime.HasValue).Max(x => x.OPTime.Value);
//var pushModel = new ModifyServiceProjectStatusDto
//var pushModel = new ModifyServiceProjectStatusDto
//{
//{
// BookingId = businessId,
// BookingId = businessId,
// SourceType = TrackingSourceTypeEnum.AUTO,
// SourceType = TrackingSourceTypeEnum.AUTO,
// StatusCodes = new List<ModifyServiceProjectStatusDetailDto> {
// StatusCodes = new List<ModifyServiceProjectStatusDetailDto> {
// new ModifyServiceProjectStatusDetailDto { StatusCode = "YTX" } }
// new ModifyServiceProjectStatusDetailDto { StatusCode = "YTX" } }
//};
//};
//if (opTime != DateTime.MinValue)
//if (opTime != DateTime.MinValue)
//{
//{
// pushModel.StatusCodes[0].SetActDate = opTime;
// pushModel.StatusCodes[0].SetActDate = opTime;
//}
//}
//var saveStatusRlt = await _bookingValueAddedService.SaveServiceStatus(pushModel);
//var saveStatusRlt = await _bookingValueAddedService.SaveServiceStatus(pushModel);
//_logger.Info("请求JSON={json} 异步推送服务状态完成,结果={rlt}", JSON.Serialize(pushModel), JSON.Serialize(saveStatusRlt));
//_logger.Info("请求JSON={json} 异步推送服务状态完成,结果={rlt}", JSON.Serialize(pushModel), JSON.Serialize(saveStatusRlt));
//#endregion
//#endregion
}
}
# endregion
# endregion
#region 订舱状态
#region 订舱状态
if ( item . Status = = "舱单" )
if ( item . Status = = "舱单" )
{
if ( list . Where ( x = > x . Value = = "status_cangdan" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_cangdan" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_cangdan" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_cangdan" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_cangdan" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_cangdan" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
//2023-12-28 JHQ 增加舱单放行推送状态
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
await seaComService . SetGoodsStatus ( "CDFX" , item . BookingId ) ;
//2023-12-28 JHQ 增加舱单放行推送状态
await seaComService . SetGoodsStatus ( "CDFX" , item . BookingId ) ;
}
}
}
if ( item . Status = = "海关放行" )
}
if ( item . Status = = "海关放行" )
{
if ( list . Where ( x = > x . Value = = "status_haifang" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_haifang" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_haifang" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_haifang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_haifang" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_haifang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await seaComService . SetGoodsStatus ( "BG" , item . BookingId ) ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
await seaComService . SetGoodsStatus ( "BG" , item . BookingId ) ;
}
}
}
if ( item . Status = = "装载" )
}
if ( item . Status = = "装载" )
{
if ( list . Where ( x = > x . Value = = "status_zhuangzai" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_zhuangzai" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_zhuangzai" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_zhuangzai" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_zhuangzai" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_zhuangzai" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await seaComService . SetGoodsStatus ( "ZZFX" , item . BookingId ) ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
await seaComService . SetGoodsStatus ( "ZZFX" , item . BookingId ) ;
}
}
}
if ( item . Status = = "码放" )
}
if ( item . Status = = "码放" )
{
if ( list . Where ( x = > x . Value = = "status_mafang" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_mafang" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_mafang" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_mafang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_mafang" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_mafang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await seaComService . SetGoodsStatus ( "MTFX" , item . BookingId ) ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
await seaComService . SetGoodsStatus ( "MTFX" , item . BookingId ) ;
}
}
}
if ( item . Status = = "装船" )
}
if ( item . Status = = "装船" )
{
if ( list . Where ( x = > x . Value = = "status_zhuangchuan" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_zhuangchuan" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_zhuangchuan" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_zhuangchuan" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_zhuangchuan" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_zhuangchuan" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
}
}
}
if ( item . Status = = "ATD" )
}
if ( item . Status = = "ATD" )
{
if ( list . Where ( x = > x . Value = = "status_atd" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_atd" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_atd" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_atd" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_atd" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_atd" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
}
}
}
if ( item . Status = = "MDGETA" )
}
if ( item . Status = = "MDGETA" )
{
if ( list . Where ( x = > x . Value = = "status_mdgeta" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_mdgeta" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_mdgeta" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_mdgeta" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_mdgeta" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_mdgeta" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
}
}
var order = tenantDb . Queryable < SeaExport > ( ) . Filter ( null , true ) . Where ( x = > x . Id = = businessId & & x . Deleted = = false ) . First ( ) ;
var order = tenantDb . Queryable < SeaExport > ( ) . Filter ( null , true ) . Where ( x = > x . Id = = businessId & & x . Deleted = = false ) . First ( ) ;
if ( order . ETA ! = item . OpTime & & item . OpTime ! = null )
if ( order . ETA ! = item . OpTime & & item . OpTime ! = null )
{
{
order . ETA = item . OpTime ;
order . ETA = item . OpTime ;
await tenantDb . Updateable ( order ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
await tenantDb . Updateable ( order ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
}
}
}
if ( item . Status = = "MDGATA" )
}
if ( item . Status = = "MDGATA" )
{
if ( list . Where ( x = > x . Value = = "status_mdgata" ) . FirstOrDefault ( ) = = null )
{
{
if ( list . Where ( x = > x . Value = = "status_mdgata" ) . FirstOrDefault ( ) = = null )
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_mdgata" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_mdgata" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_mdgata" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_mdgata" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
}
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
}
var order = tenantDb . Queryable < SeaExport > ( ) . Filter ( null , true ) . Where ( x = > x . Id = = businessId & & x . Deleted = = false ) . First ( ) ;
var order = tenantDb . Queryable < SeaExport > ( ) . Filter ( null , true ) . Where ( x = > x . Id = = businessId & & x . Deleted = = false ) . First ( ) ;
if ( order . ATA ! = item . OpTime & & item . OpTime ! = null )
if ( order . ATA ! = item . OpTime & & item . OpTime ! = null )
{
order . ATA = item . OpTime ;
await tenantDb . Updateable ( order ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
}
}
#region 入港时间
if ( item . Status = = "入港" )
{
{
order . ATA = item . OpTime ;
await tenantDb . Updateable ( order ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
}
}
#region 入港时间
if ( item . Status = = "入港" )
{
if ( list . Where ( x = > x . Value = = "status_rugang" ) . FirstOrDefault ( ) = = null )
if ( list . Where ( x = > x . Value = = "status_rugang" ) . FirstOrDefault ( ) = = null )
{
var bookingStatus = new BookingStatus ( )
{
{
var bookingStatus = new BookingStatus ( )
BusinessId = businessId ,
{
StatusCode = "status_rugang" ,
BusinessId = businessId ,
StatusName = dicList . Where ( x = > x . Value = = "status_rugang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusCode = "status_rugang" ,
StatusTime = item . OpTime ,
StatusName = dicList . Where ( x = > x . Value = = "status_rugang" ) . Select ( x = > x . Name ) . First ( ) ,
StatusGroup = "booking_status_group_billtrace"
StatusTime = item . OpTime ,
} ;
StatusGroup = "booking_status_group_billtrace"
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
} ;
await seaComService . SetGoodsStatus ( "YRG" , item . BookingId ) ;
await tenantDb . Insertable ( bookingStatus ) . ExecuteCommandAsync ( ) ;
await seaComService . SetGoodsStatus ( "YRG" , item . BookingId ) ;
}
}
}
# endregion
}
# endregion
# endregion
# endregion
#region 船舶动态: ATD ETD ATA ETA MDGETA MDGATA
if ( item . Status = = "ATD" | | item . Status = = "ETD" | | item . Status = = "ATA" | | item . Status = = "ETA" | | item . Status = = "MDGETA" | | item . Status = = "MDGATA" )
{
var config = await db . Queryable < SysConfig > ( ) . FirstAsync ( x = > x . Code = = TenantParamCode . ENABLE_STATUS_TO_SAILING_DATE ) ;
#region 船舶动态: ATD ETD ATA ETA MDGETA MDGATA
if ( config . IsNotNull ( ) & & config . Value = = "YES" )
if ( item . Status = = "ATD" | | item . Status = = "ETD" | | item . Status = = "ATA" | | item . Status = = "ETA" | | item . Status = = "MDGETA" | | item . Status = = "MDGATA" )
{
{
var config = await db . Queryable < SysConfig > ( ) . FirstAsync ( x = > x . Code = = TenantParamCode . ENABLE_STATUS_TO_SAILING_DATE ) ;
var order = await tenantDb . Queryable < SeaExport > ( ) . Where ( x = > x . Id = = businessId & & x . MBLNO = = item . MBLNO ) . FirstAsync ( ) ;
if ( item . Status = = "ATD" )
if ( config . IsNotNull ( ) & & config . Value = = "YES" )
{
{
var order = await tenantDb . Queryable < SeaExport > ( ) . Where ( x = > x . Id = = businessId & & x . MBLNO = = item . MBLNO ) . FirstAsync ( ) ;
//2023-8-31, 排查单号为177GZHZHQ5711V的数据, 原来录入的船已开船, 运踪港前不再查询, 而因订阅港后数据会继续回推数据, 所以导致ATD被改
if ( item . Status = = "ATD" )
//因此, 暂时取消运踪回推时写入ATD, 还是以船期表查询为准
{
//2023-8-31, 排查单号为177GZHZHQ5711V的数据, 原来录入的船已开船, 运踪港前不再查询, 而因订阅港后数据会继续回推数据, 所以导致ATD被改
// 2024-4-8 因为港捷需要,重新开启,并通过租户参数判断
//因此, 暂时取消运踪回推时写入ATD, 还是以船期表查询为准
//变更ATD
// 2024-4-8 因为港捷需要,重新开启,并通过租户参数判断
if ( order ! = null & & item . OpTime ! = null & & order . ATD ! = item . OpTime )
//变更ATD
{
order . ATD = item . OpTime ;
if ( order ! = null & & item . OpTime ! = null & & order . ATD ! = item . OpTime )
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . ATD = item . OpTime ;
x . ATD
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//sendDsList.Add(item.BookingId);
x . ATD
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//sendDsList.Add(item.BookingId);
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
/ *
* 2023 年 8 月 24 日 改 , 取 消 运 踪 回 推 ATD 的 批 量 更 新 功 能
* 和 川 操 作 经 常 修 改 提 单 号 和 船 名 航 次 , 但 修 改 时 间 会 差 好 几 天 , 导 致 运 踪 根 据 提 单 号 查 询 的 数 据 , 回 写 回 来 之 后 , 再 根 据 船 名 航 次 去 批 量 更 新 数 据 时 , 错 误 的 把 其 他 数 据 修 改 了
* 因 此 , 不 能 根 据 船 名 航 次 去 批 量 修 改 数 据 , 因 为 操 作 写 的 船 名 航 次 可 能 是 错 误 的 , 导 致 把 他 人 的 数 据 修 改 错 误
* /
////批量变更相同船期
//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.SaveLog(it, _oldorder);
// await _bookingorderservice.SendBookingOrder(new long[] { it.Id });
// }
// }
//}
}
}
else if ( item . Status = = "ETD" )
/ *
* 2023 年 8 月 24 日 改 , 取 消 运 踪 回 推 ATD 的 批 量 更 新 功 能
* 和 川 操 作 经 常 修 改 提 单 号 和 船 名 航 次 , 但 修 改 时 间 会 差 好 几 天 , 导 致 运 踪 根 据 提 单 号 查 询 的 数 据 , 回 写 回 来 之 后 , 再 根 据 船 名 航 次 去 批 量 更 新 数 据 时 , 错 误 的 把 其 他 数 据 修 改 了
* 因 此 , 不 能 根 据 船 名 航 次 去 批 量 修 改 数 据 , 因 为 操 作 写 的 船 名 航 次 可 能 是 错 误 的 , 导 致 把 他 人 的 数 据 修 改 错 误
* /
////批量变更相同船期
//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.SaveLog(it, _oldorder);
// await _bookingorderservice.SendBookingOrder(new long[] { it.Id });
// }
// }
//}
}
else if ( item . Status = = "ETD" )
{
if ( order ! = null & & item . OpTime ! = null & & order . YgtETD ! = item . OpTime )
{
{
if ( order ! = null & & item . OpTime ! = null & & order . YgtETD ! = item . OpTime )
order . YgtETD = item . OpTime ;
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . YgtETD = item . OpTime ;
x . YgtETD
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
x . YgtETD
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
}
}
else if ( item . Status = = "ATA" )
}
else if ( item . Status = = "ATA" )
{
if ( order ! = null & & item . OpTime ! = null & & order . StartATA ! = item . OpTime )
{
{
if ( order ! = null & & item . OpTime ! = null & & order . StartATA ! = item . OpTime )
order . StartATA = item . OpTime ;
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . StartATA = item . OpTime ;
x . StartATA
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
x . StartATA
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
}
}
else if ( item . Status = = "ETA" )
}
else if ( item . Status = = "ETA" )
{
if ( order ! = null & & item . OpTime ! = null & & order . StartETA ! = item . OpTime )
{
{
if ( order ! = null & & item . OpTime ! = null & & order . StartETA ! = item . OpTime )
order . StartETA = item . OpTime ;
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . StartETA = item . OpTime ;
x . StartETA
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
x . StartETA
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
}
}
else if ( item . Status = = "MDGETA" )
}
else if ( item . Status = = "MDGETA" )
{
if ( order ! = null & & item . OpTime ! = null & & order . ETA ! = item . OpTime )
{
{
if ( order ! = null & & item . OpTime ! = null & & order . ETA ! = item . OpTime )
order . ETA = item . OpTime ;
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . ETA = item . OpTime ;
x . ETA
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
x . ETA
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
}
}
else if ( item . Status = = "MDGATA" )
}
else if ( item . Status = = "MDGATA" )
{
if ( order ! = null & & item . OpTime ! = null & & order . ATA ! = item . OpTime )
{
{
if ( order ! = null & & item . OpTime ! = null & & order . ATA ! = item . OpTime )
order . ATA = item . OpTime ;
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
{
{
order . ATA = item . OpTime ;
x . ATA
await tenantDb . Updateable ( order ) . UpdateColumns ( x = > new
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
{
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
x . ATA
} ) . EnableDiffLogEvent ( ) . ExecuteCommandAsync ( ) ;
//await _bookingorderservice.SaveLog(newOrder, oldOrder, "运踪更新船期");
}
}
}
}
}
}
}
# endregion
}
}
# endregion
}
}
}
}
catch ( Exception ex )
catch ( Exception ex )
{
{
@ -465,6 +481,6 @@ namespace DS.WMS.Core.Op.Method
}
}
}
}