|
|
|
@ -889,28 +889,8 @@ namespace Myshipping.Application
|
|
|
|
|
if (Config != null)
|
|
|
|
|
{
|
|
|
|
|
_goodsStatus.Delete(x => x.bookingId == Id && x.ConfigId == Config.Id);
|
|
|
|
|
var ConfigId = _goodsStatus.Where(x => x.FinishTime.HasValue && x.bookingId == Id).OrderByDescending(x => x.FinishTime).Select(x => x.ConfigId).First();
|
|
|
|
|
string BSSTATUSNAME = String.Empty;
|
|
|
|
|
if (ConfigId == null)
|
|
|
|
|
{
|
|
|
|
|
main.BSSTATUSNAME = "";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
BSSTATUSNAME = config.Where(x => x.Id == ConfigId).Select(x => x.StatusName).FirstOrDefault();
|
|
|
|
|
main.BSSTATUSNAME = BSSTATUSNAME == null ? "" : BSSTATUSNAME;
|
|
|
|
|
}
|
|
|
|
|
await _rep.AsUpdateable(main).IgnoreColumns(it => new
|
|
|
|
|
{
|
|
|
|
|
it.ParentId,
|
|
|
|
|
it.TenantId,
|
|
|
|
|
it.CreatedTime,
|
|
|
|
|
it.CreatedUserId,
|
|
|
|
|
it.CreatedUserName,
|
|
|
|
|
it.TenantName,
|
|
|
|
|
it.IsDeleted,
|
|
|
|
|
it.BOOKINGNO
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
//更新货物状态
|
|
|
|
|
await SetBookingOrderGoodsStatus(Id);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (string.IsNullOrEmpty(entity.MBLNO))
|
|
|
|
@ -919,28 +899,8 @@ namespace Myshipping.Application
|
|
|
|
|
if (Config != null)
|
|
|
|
|
{
|
|
|
|
|
_goodsStatus.Delete(x => x.bookingId == Id && x.ConfigId == Config.Id);
|
|
|
|
|
var ConfigId = _goodsStatus.Where(x => x.FinishTime.HasValue && x.bookingId == Id).OrderByDescending(x => x.FinishTime).Select(x => x.ConfigId).First();
|
|
|
|
|
string BSSTATUSNAME = String.Empty;
|
|
|
|
|
if (ConfigId == null)
|
|
|
|
|
{
|
|
|
|
|
main.BSSTATUSNAME = "";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
BSSTATUSNAME = config.Where(x => x.Id == ConfigId).Select(x => x.StatusName).FirstOrDefault();
|
|
|
|
|
main.BSSTATUSNAME = BSSTATUSNAME == null ? "" : BSSTATUSNAME;
|
|
|
|
|
}
|
|
|
|
|
await _rep.AsUpdateable(main).IgnoreColumns(it => new
|
|
|
|
|
{
|
|
|
|
|
it.ParentId,
|
|
|
|
|
it.TenantId,
|
|
|
|
|
it.CreatedTime,
|
|
|
|
|
it.CreatedUserId,
|
|
|
|
|
it.CreatedUserName,
|
|
|
|
|
it.TenantName,
|
|
|
|
|
it.IsDeleted,
|
|
|
|
|
it.BOOKINGNO
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
//更新货物状态
|
|
|
|
|
await SetBookingOrderGoodsStatus(Id);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
@ -1565,13 +1525,11 @@ namespace Myshipping.Application
|
|
|
|
|
entity.FinishTime = item.FinishTime;
|
|
|
|
|
entity.FinishUserId = UserManager.UserId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
await _goodsStatus.InsertAsync(entity);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//更新货物状态
|
|
|
|
|
await SetBookingOrderGoodsStatus((long)input.BookingId);
|
|
|
|
|
|
|
|
|
|
var order = _rep.Where(x => x.Id == input.BookingId).First();
|
|
|
|
|
var userid = order.CreatedUserId;
|
|
|
|
@ -1593,8 +1551,8 @@ namespace Myshipping.Application
|
|
|
|
|
ExtData = goods.ExtData,
|
|
|
|
|
Remark = goods.Remark,
|
|
|
|
|
Sort = config.Sort
|
|
|
|
|
|
|
|
|
|
}).ToListAsync();
|
|
|
|
|
|
|
|
|
|
//配置中所有的货物状态
|
|
|
|
|
var config = _goodsStatusConfig.AsQueryable().Where(config => config.CreatedUserId == userid).ToList().DistinctBy(x => x.StatusName).Select(config => new GoodsStatusQuery
|
|
|
|
|
{
|
|
|
|
@ -1615,38 +1573,13 @@ namespace Myshipping.Application
|
|
|
|
|
{
|
|
|
|
|
config.RemoveAll(x => x.ConfigId == item.ConfigId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var t = list.Union<GoodsStatusQuery>(config).OrderBy(x => x.Sort).DistinctBy(x => x.StatusName).ToList();
|
|
|
|
|
if (t != null)
|
|
|
|
|
{
|
|
|
|
|
var StatusName = t.Where(x => x.FinishTime.HasValue).OrderByDescending(x => x.FinishTime).Select(x => x.StatusName).FirstOrDefault();
|
|
|
|
|
if (StatusName == null)
|
|
|
|
|
{
|
|
|
|
|
StatusName = "";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
order.BSSTATUSNAME = StatusName;
|
|
|
|
|
|
|
|
|
|
await _rep.AsUpdateable(order).IgnoreColumns(it => new
|
|
|
|
|
{
|
|
|
|
|
it.ParentId,
|
|
|
|
|
it.TenantId,
|
|
|
|
|
it.CreatedTime,
|
|
|
|
|
it.CreatedUserId,
|
|
|
|
|
it.CreatedUserName,
|
|
|
|
|
it.TenantName,
|
|
|
|
|
it.IsDeleted,
|
|
|
|
|
it.BOOKINGNO
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await SendBookingOrder(new long[] { order.Id });
|
|
|
|
|
|
|
|
|
|
return t;
|
|
|
|
|
}
|
|
|
|
|
//推送东胜
|
|
|
|
|
await SendBookingOrder(new long[] { (long)input.BookingId });
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -8039,11 +7972,12 @@ namespace Myshipping.Application
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 设置货物状态完成,并推送东胜
|
|
|
|
|
/// 设置货物状态完成
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="code"></param>
|
|
|
|
|
/// <param name="bookingId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
|
|
|
|
public async Task SetGoodsStatus(string code, long bookingId)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
@ -8062,23 +7996,60 @@ namespace Myshipping.Application
|
|
|
|
|
gs.FinishUserId = UserManager.UserId;
|
|
|
|
|
await _goodsStatus.InsertAsync(gs);
|
|
|
|
|
|
|
|
|
|
var order = _rep.AsQueryable().Filter(null, true).First(x => x.Id == bookingId);
|
|
|
|
|
order.BSSTATUSNAME = gsCfg.StatusName;
|
|
|
|
|
await _rep.AsUpdateable(order).IgnoreColumns(it => new
|
|
|
|
|
{
|
|
|
|
|
it.ParentId,
|
|
|
|
|
it.TenantId,
|
|
|
|
|
it.CreatedTime,
|
|
|
|
|
it.CreatedUserId,
|
|
|
|
|
it.CreatedUserName,
|
|
|
|
|
it.TenantName,
|
|
|
|
|
it.IsDeleted,
|
|
|
|
|
it.BOOKINGNO
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
|
|
|
|
|
_logger.LogInformation($"发送{code}后自动完成货物状态,Id:{bookingId},操作人:{UserManager.Name}");
|
|
|
|
|
//更新货物状态
|
|
|
|
|
await SetBookingOrderGoodsStatus(bookingId);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 更新主单货物状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="bookingId"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public async Task SetBookingOrderGoodsStatus(long bookingId)
|
|
|
|
|
{
|
|
|
|
|
var order = _rep.AsQueryable().Filter(null, true).First(x => x.Id == bookingId);
|
|
|
|
|
|
|
|
|
|
var createUserid = order.CreatedUserId;
|
|
|
|
|
//获取当前用户已经录入的货物状态
|
|
|
|
|
var list = await _goodsStatus.AsQueryable().LeftJoin(_goodsStatusConfig.AsQueryable(),
|
|
|
|
|
(goods, config) => config.Id == goods.ConfigId).Where((goods, config) => config.CreatedUserId == createUserid && goods.bookingId == bookingId).
|
|
|
|
|
OrderBy((goods, config) => config.Sort).
|
|
|
|
|
Select((goods, config) => new GoodsStatusQuery
|
|
|
|
|
{
|
|
|
|
|
ConfigId = config.Id,
|
|
|
|
|
SystemCode = config.SystemCode,
|
|
|
|
|
StatusName = config.StatusName,
|
|
|
|
|
FinishTime = goods.FinishTime,
|
|
|
|
|
FinishUser = goods.FinishUser,
|
|
|
|
|
FinishUserId = goods.FinishUserId,
|
|
|
|
|
IsPublic = goods.IsPublic,
|
|
|
|
|
ExtData = goods.ExtData,
|
|
|
|
|
Remark = goods.Remark,
|
|
|
|
|
Sort = config.Sort
|
|
|
|
|
}).ToListAsync();
|
|
|
|
|
if (list != null)
|
|
|
|
|
{
|
|
|
|
|
var StatusName = list.Where(x => x.FinishTime.HasValue).OrderByDescending(x => x.Sort).Select(x => x.StatusName).FirstOrDefault();
|
|
|
|
|
if (StatusName == null)
|
|
|
|
|
{
|
|
|
|
|
StatusName = "";
|
|
|
|
|
}
|
|
|
|
|
order.BSSTATUSNAME = StatusName;
|
|
|
|
|
await _rep.AsUpdateable(order).IgnoreColumns(it => new
|
|
|
|
|
{
|
|
|
|
|
it.ParentId,
|
|
|
|
|
it.TenantId,
|
|
|
|
|
it.CreatedTime,
|
|
|
|
|
it.CreatedUserId,
|
|
|
|
|
it.CreatedUserName,
|
|
|
|
|
it.TenantName,
|
|
|
|
|
it.IsDeleted,
|
|
|
|
|
it.BOOKINGNO
|
|
|
|
|
}).ExecuteCommandAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|