optimize
wet 1 year ago
parent d76a2e3802
commit 8a7b04c8e8

@ -740,7 +740,6 @@ namespace Myshipping.Application
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("/BookingOrder/Save")]
public async Task<BookingOrderOutput> Save(SaveBookingOrderInput input)
{
if (input == null)
@ -905,6 +904,17 @@ namespace Myshipping.Application
{
var mlist = await _rep.AsQueryable().Filter(null, true).Where(x => x.Id == input.Id).FirstAsync();
//封账处理
var extend = _repextendstate.FirstOrDefault(x => x.bookingId == input.Id);
var isextendorder = await GetIsBookingLockOrder(entity, mlist);
if (extend != null && extend.IsLockBooking && !isextendorder)
{
throw Oops.Bah("当前单据已封账,不允许修改");
}
var rightlist = await _right.GetDataScopeList(MenuConst.MenuBookingOrder, true);
_logger.LogInformation("保存权限范围:" + rightlist.ToJsonString());
//除现有配置权限外 操作和本人具有编辑权限
@ -946,9 +956,6 @@ namespace Myshipping.Application
}
}
await _rep.AsUpdateable(entity).IgnoreColumns(it => new
{
it.ParentId,
@ -977,15 +984,25 @@ namespace Myshipping.Application
it.MiddleATD,
it.ATA
}).ExecuteCommandAsync();
var ctnlist = await _repCtn.AsQueryable().Filter(null, true).Where(x => x.BILLID == input.Id && x.IsDeleted == false).Select(x => x.Id).ToListAsync();
var ctnlist = await _repCtn.AsQueryable().Filter(null, true).Where(x => x.BILLID == input.Id && x.IsDeleted == false).ToListAsync();
//删除箱信息 重新插入
await _repCtn.DeleteAsync(x => x.BILLID == input.Id);
await _ctndetailrep.DeleteAsync(x => ctnlist.Contains((long)x.CTNID));
await _ctndetailrep.DeleteAsync(x => ctnlist.Select(x => x.Id).Contains((long)x.CTNID));
if (input.ctnInputs != null)
{
foreach (var item in input.ctnInputs)
{
var ctnentity = item.Adapt<BookingCtn>();
//封账处理
var oldctn = ctnlist.Where(x => x.CNTRNO == item.CNTRNO).First();
if (oldctn != null)
{
var isextendctn = await GetIsBookingLockCtn(ctnentity, oldctn);
if (extend != null && extend.IsLockBooking && !isextendorder)
{
throw Oops.Bah("当前单据已封账,不允许修改箱信息");
}
}
ctnentity.BILLID = entity.Id;
await _repCtn.InsertAsync(ctnentity);
if (item.ctnDetailInputs != null)
@ -1193,8 +1210,6 @@ namespace Myshipping.Application
return ordOut;
}
/// <summary>
/// 在订舱台账保存单证备注、操作备注等功能
/// </summary>
@ -8679,6 +8694,69 @@ HLCUTA12307DPXJ3 以这票为例 6个柜
}
/// <summary>
/// 判断是否可以编辑主单 True可以
/// </summary>
/// <param name="newOrder"></param>
/// <param name="oldOrder"></param>
/// <returns></returns>
public async Task<bool> GetIsBookingLockOrder(BookingOrder newOrder, BookingOrder oldOrder)
{
var list = _cache.GetAllDictData().Result.Where(x => x.TypeCode == "BookingLockOrder").ToList();
foreach (var item in list)
{
foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(newOrder))
{
string name = descriptor.Name;
if (name.ToUpper() == item.Code.ToUpper())
{
object value = descriptor.GetValue(newOrder);
var oldvalue = oldOrder.GetType().GetProperty(name).GetValue(oldOrder, null);
string _oldvalue = oldvalue != null ? oldvalue.ToString() : "";
string _value = value != null ? value.ToString() : "";
if (_oldvalue != _value)
{
return false;
}
}
}
}
return true;
}
/// <summary>
/// 判断是否可以编辑箱信息 True可以
/// </summary>
/// <param name="newOrder"></param>
/// <param name="oldOrder"></param>
/// <returns></returns>
public async Task<bool> GetIsBookingLockCtn(BookingCtn newOrder, BookingCtn oldOrder)
{
var list = _cache.GetAllDictData().Result.Where(x => x.TypeCode == "BookingLockCtn").ToList();
foreach (var item in list)
{
foreach (PropertyDescriptor descriptor in TypeDescriptor.GetProperties(newOrder))
{
string name = descriptor.Name;
if (name.ToUpper() == item.Code.ToUpper())
{
object value = descriptor.GetValue(newOrder);
var oldvalue = oldOrder.GetType().GetProperty(name).GetValue(oldOrder, null);
string _oldvalue = oldvalue != null ? oldvalue.ToString() : "";
string _value = value != null ? value.ToString() : "";
if (_oldvalue != _value)
{
return false;
}
}
}
}
return true;
}
#endregion
#region 临时测试使用
@ -9262,11 +9340,7 @@ HLCUTA12307DPXJ3 以这票为例 6个柜
}
}
return extends;
}

@ -2619,13 +2619,6 @@ namespace Myshipping.Application
}
}
}
#endregion
}
}

Loading…
Cancel
Save