diff --git a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj index 380ee5bd..55ce798f 100644 --- a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj +++ b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj @@ -58,7 +58,7 @@ - + diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs b/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs index c8bf5546..effc6ef1 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/InvoiceApplicationService.cs @@ -205,20 +205,20 @@ namespace DS.WMS.Core.Application.Method //OrderAmount = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId).Sum(f => f.OrderAmount), //InvoiceAmount = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId).Sum(f => f.InvoiceAmount), //SettlementAmount = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId).Sum(f => f.SettlementAmount), - + //未申请开票金额=金额-开票金额-申请开票金额+申请开票金额已开票 UnBilledRMB = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed - && f.Currency == FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount)), + && f.Currency == FeeCurrency.RMB_CODE).Sum(f => f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount), UnBilledUSD = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed - && f.Currency == FeeCurrency.USD_CODE).Select(f => SqlFunc.AggregateSum(f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount)), + && f.Currency == FeeCurrency.USD_CODE).Sum(f => f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount), UnBilledOther = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed - && f.Currency != FeeCurrency.RMB_CODE && f.Currency != FeeCurrency.USD_CODE).Select(f => SqlFunc.AggregateSum(f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount)), + && f.Currency != FeeCurrency.RMB_CODE && f.Currency != FeeCurrency.USD_CODE).Sum(f => f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount), //未结算金额=金额-结算金额-申请金额+申请金额已结算 UnSettlementPaid = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && f.FeeType == FeeType.Payable) - .Select(f => SqlFunc.AggregateSum(f.Amount - f.SettlementAmount - f.OrderAmount + f.OrderSettlementAmount)), + .Sum(f => f.Amount - f.SettlementAmount - f.OrderAmount + f.OrderSettlementAmount), UnSettlementCharged = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && f.FeeType == FeeType.Receivable) - .Select(f => SqlFunc.AggregateSum(f.Amount - f.SettlementAmount - f.OrderAmount + f.OrderSettlementAmount)), + .Sum(f => f.Amount - f.SettlementAmount - f.OrderAmount + f.OrderSettlementAmount), }); } diff --git a/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs b/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs index 28d51fc7..bf388fe0 100644 --- a/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs +++ b/ds-wms-service/DS.WMS.Core/Application/Method/PaymentApplicationService.cs @@ -206,23 +206,23 @@ namespace DS.WMS.Core.Application.Method StlName = s.StlName, //结算方式 //--------统计项-------- UnpaidRMB = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.RMB_CODE).Sum(f => f.Amount), UnpaidUSD = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.USD_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.USD_CODE).Sum(f => f.Amount), UnpaidOther = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Payable && f.Currency != FeeCurrency.USD_CODE && f.Currency != FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Payable && f.Currency != FeeCurrency.USD_CODE && f.Currency != FeeCurrency.RMB_CODE).Sum(f => f.Amount), UnreceivedRMB = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Receivable && f.Currency == FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Receivable && f.Currency == FeeCurrency.RMB_CODE).Sum(f => f.Amount), UnreceivedUSD = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Receivable && f.Currency == FeeCurrency.USD_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Receivable && f.Currency == FeeCurrency.USD_CODE).Sum(f => f.Amount), UnreceivedOther = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Receivable && f.Currency != FeeCurrency.USD_CODE && f.Currency != FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount)), + f.FeeType == FeeType.Receivable && f.Currency != FeeCurrency.USD_CODE && f.Currency != FeeCurrency.RMB_CODE).Sum(f => f.Amount), UnpaidRMBInv = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.RMB_CODE).Select(f => SqlFunc.AggregateSum(f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount)), + f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.RMB_CODE).Sum(f => f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount), UnpaidUSDInv = SqlFunc.Subqueryable().Where(f => f.BusinessId == s.BusinessId && f.FeeStatus == FeeStatus.AuditPassed && - f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.USD_CODE).Select(f => SqlFunc.AggregateSum(f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount)) + f.FeeType == FeeType.Payable && f.Currency == FeeCurrency.USD_CODE).Sum(f => f.Amount - f.InvoiceAmount - f.OrderInvoiceAmount + f.OrderInvSettlementAmount) }); } diff --git a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs index 898d113d..0657e197 100644 --- a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs +++ b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeRecordService.cs @@ -1129,7 +1129,7 @@ namespace DS.WMS.Core.Fee.Method return rows > 0 ? DataResult.Success : DataResult.FailedWithDesc(nameof(MultiLanguageConst.Operation_Failed)); } - //// + /// /// 获取费用打印信息 /// /// 数据提供程序 diff --git a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeServiceBase.cs b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeServiceBase.cs index 6693b791..20239de4 100644 --- a/ds-wms-service/DS.WMS.Core/Fee/Method/FeeServiceBase.cs +++ b/ds-wms-service/DS.WMS.Core/Fee/Method/FeeServiceBase.cs @@ -94,112 +94,6 @@ namespace DS.WMS.Core.Fee.Method return TenantDb.UnionAll(new List> { query1 }); } - /// - /// 更新费用及其业务的费用状态 - /// - /// 费用记录ID - /// 此方法内部将始终异步执行,请确保在调用前已提交数据库事务等必要的操作。 - protected internal void UpdateFeeStatus(IEnumerable ids) - { - var task1 = Task.Factory.StartNew(UpdateFeeStatusCore, ids, CancellationToken.None); - task1.ContinueWith(t => UpdateBizStatusCore(t.Result), TaskContinuationOptions.OnlyOnRanToCompletion); - } - - private List UpdateFeeStatusCore(object? state) - { - if (state == null) - return []; - - var ids = (IEnumerable)state; - var fees = TenantDb.Queryable().Where(x => ids.Contains(x.Id)) - .Select(x => new FeeRecord - { - Id = x.Id, - BusinessId = x.BusinessId, - BusinessType = x.BusinessType, - FeeStatus = x.FeeStatus, - Amount = x.Amount, - SettlementAmount = x.SettlementAmount, - OrderAmount = x.OrderAmount, - OrderSettlementAmount = x.OrderSettlementAmount - }).ToList(); - if (fees.Count == 0) - return []; - - List list = new(fees.Count); - foreach (var item in fees) - { - var restAmount = item.Amount - item.SettlementAmount - item.OrderAmount + item.OrderSettlementAmount; - if (restAmount == 0) - { - item.FeeStatus = FeeStatus.SettlementCompleted; - list.Add(item); - } - else if (restAmount != item.Amount) - { - item.FeeStatus = FeeStatus.PartialSettlement; - list.Add(item); - } - else if (item.SettlementAmount == 0) - { - item.FeeStatus = FeeStatus.AuditPassed; - list.Add(item); - } - } - TenantDb.Updateable(list).UpdateColumns(x => new { x.FeeStatus }).ExecuteCommand(); - return list; - } - - private void UpdateBizStatusCore(List list) - { - var bizIds = list.Select(x => x.BusinessId); - var types = list.Select(x => x.BusinessType).Distinct(); - var fees2 = TenantDb.Queryable().Where(x => bizIds.Contains(x.BusinessId) && types.Contains(x.BusinessType)) - .Select(x => new { x.BusinessId, x.BusinessType, x.FeeType, x.FeeStatus }).ToList(); - if (fees2.Count == 0) - return; - - var gpList = fees2.GroupBy(x => new { x.BusinessId, x.BusinessType }); - foreach (var gp in gpList) - { - BusinessFeeStatus biz = new() { BusinessId = gp.Key.BusinessId, BusinessType = gp.Key.BusinessType }; - var upt = TenantDb.Updateable(biz).WhereColumns(x => new { x.BusinessId, x.BusinessType }); - //应收 - var arList = gp.Where(x => x.FeeType == FeeType.Receivable).ToList(); - if (arList.Count > 0) - { - if (arList.All(x => x.FeeStatus == FeeStatus.SettlementCompleted)) - { - biz.ARFeeStatus = BillFeeStatus.SettlementCompleted; - upt = upt.UpdateColumns(x => x.ARFeeStatus); - } - else if (arList.Any(x => x.FeeStatus == FeeStatus.PartialSettlement)) - { - biz.ARFeeStatus = BillFeeStatus.PartialSettlement; - upt = upt.UpdateColumns(x => x.ARFeeStatus); - } - } - - //应付 - var apList = gp.Where(x => x.FeeType == FeeType.Payable).ToList(); - if (apList.Count > 0) - { - if (apList.All(x => x.FeeStatus == FeeStatus.SettlementCompleted)) - { - biz.APFeeStatus = BillFeeStatus.SettlementCompleted; - upt = upt.UpdateColumns(x => x.APFeeStatus); - } - else if (apList.Any(x => x.FeeStatus == FeeStatus.PartialSettlement)) - { - biz.APFeeStatus = BillFeeStatus.PartialSettlement; - upt = upt.UpdateColumns(x => x.APFeeStatus); - } - } - - upt.ExecuteCommand(); - } - } - /// /// 获取汇率 /// diff --git a/ds-wms-service/DS.WMS.Core/Op/Dtos/BookingSlot/BookingSlotRollingDto.cs b/ds-wms-service/DS.WMS.Core/Op/Dtos/BookingSlot/BookingSlotRollingDto.cs new file mode 100644 index 00000000..6ff37990 --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Op/Dtos/BookingSlot/BookingSlotRollingDto.cs @@ -0,0 +1,134 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.WMS.Core.Op.Dtos +{ + public class BookingSlotRollingDto + { + /// + /// 主键ID + /// + + public long Id { get; set; } + + /// + /// 舱位主键 + /// + public long SlotId { get; set; } + + /// + /// 延期原因类型(Rolling-甩货,Change-换舱) + /// + public string DelayReasonType { get; set; } + + /// + /// 延期原因名称(Rolling-甩货,Change-换舱) + /// + public string DelayReasonTypeName { get; set; } + + /// + /// 延期次数 + /// + public int DelayNum { get; set; } + + /// + /// 船名 + /// + public string Vessel { get; set; } + + /// + /// 航次号 + /// + public string Voyno { get; set; } + + /// + /// 船公司ID + /// + public Nullable CarrierId { get; set; } + + /// + /// 船公司代码 + /// + public string CarrierCode { get; set; } + + /// + /// 船公司 + /// + public string Carrier { get; set; } + + /// + /// 预计开船日期 + /// + public Nullable ETD { get; set; } + + /// + /// 预计到港日期 + /// + public Nullable ETA { get; set; } + + /// + /// 装货港代码 + /// + public string PortLoadCode { get; set; } + + /// + /// 装货港主键 + /// + public Nullable PortLoadId { get; set; } + + /// + /// 装货港 + /// + public string PortLoad { get; set; } + + /// + /// 卸货港代码 + /// + public string PortDischargeCode { get; set; } + + /// + /// 卸货港主键 + /// + public Nullable PortDischargeId { get; set; } + + /// + /// 卸货港 + /// + public string PortDischarge { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 创建人 + /// + public long CreateBy { get; set; } + + /// + /// 创建人名称 + /// + public string CreateUserName { get; set; } + + /// + /// 修改人 + /// + public long UpdateBy { get; set; } + + /// + /// 修改人名称 + /// + public string UpdateUserName { get; set; } + + /// + /// 更新时间 + /// + public DateTime UpdateTime { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/Op/Entity/BookingSlot/BookingSlotRolling.cs b/ds-wms-service/DS.WMS.Core/Op/Entity/BookingSlot/BookingSlotRolling.cs new file mode 100644 index 00000000..ff8b3a78 --- /dev/null +++ b/ds-wms-service/DS.WMS.Core/Op/Entity/BookingSlot/BookingSlotRolling.cs @@ -0,0 +1,118 @@ +using DS.Module.Core.Data; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DS.WMS.Core.Op.Entity +{ + /// + /// 舱位甩货或换舱信息 + /// + [SqlSugar.SugarTable("op_sea_booking_slot_rolling", "舱位甩货或换舱信息")] + public class BookingSlotRolling : BaseModel + { + /// + /// 舱位主键 + /// + [SqlSugar.SugarColumn(ColumnDescription = "舱位主键", IsNullable = false)] + public long SlotId { get; set; } + + /// + /// 延期原因类型(Rolling-甩货,Change-换舱) + /// + [SqlSugar.SugarColumn(ColumnDescription = "延期原因类型(Rolling-甩货,Change-换舱)", Length = 20, IsNullable = false)] + public string DelayReasonType { get; set; } + + /// + /// 延期原因名称(Rolling-甩货,Change-换舱) + /// + [SqlSugar.SugarColumn(ColumnDescription = "延期原因名称(Rolling-甩货,Change-换舱)", Length = 30, IsNullable = false)] + public string DelayReasonTypeName { get; set; } + + /// + /// 延期次数 + /// + [SqlSugar.SugarColumn(ColumnDescription = "延期次数", IsNullable = false)] + public int DelayNum { get; set; } + + /// + /// 船名 + /// + [SqlSugar.SugarColumn(ColumnDescription = "船名", Length = 30, IsNullable = true)] + public string Vessel { get; set; } + + /// + /// 航次号 + /// + [SqlSugar.SugarColumn(ColumnDescription = "航次号", Length = 20, IsNullable = true)] + public string Voyno { get; set; } + + /// + /// 船公司ID + /// + [SqlSugar.SugarColumn(ColumnDescription = "船公司ID", IsNullable = true)] + public Nullable CarrierId { get; set; } + + /// + /// 船公司代码 + /// + [SqlSugar.SugarColumn(ColumnDescription = "船公司代码", Length = 20, IsNullable = true)] + public string CarrierCode { get; set; } + + /// + /// 船公司 + /// + [SqlSugar.SugarColumn(ColumnDescription = "船公司", Length = 20, IsNullable = true)] + public string Carrier { get; set; } + + /// + /// 预计开船日期 + /// + [SqlSugar.SugarColumn(ColumnDescription = "预计开船日期", IsNullable = true)] + public Nullable ETD { get; set; } + + /// + /// 预计到港日期 + /// + [SqlSugar.SugarColumn(ColumnDescription = "预计到港日期", IsNullable = true)] + public Nullable ETA { get; set; } + + /// + /// 装货港代码 + /// + [SqlSugar.SugarColumn(ColumnDescription = "装货港代码", Length = 10, IsNullable = true)] + public string PortLoadCode { get; set; } + + /// + /// 装货港主键 + /// + [SqlSugar.SugarColumn(ColumnDescription = "装货港主键", IsNullable = true)] + public Nullable PortLoadId { get; set; } + + /// + /// 装货港 + /// + [SqlSugar.SugarColumn(ColumnDescription = "装货港", Length = 120, IsNullable = true)] + public string PortLoad { get; set; } + + /// + /// 卸货港代码 + /// + [SqlSugar.SugarColumn(ColumnDescription = "卸货港代码", Length = 10, IsNullable = true)] + public string PortDischargeCode { get; set; } + + /// + /// 卸货港主键 + /// + [SqlSugar.SugarColumn(ColumnDescription = "卸货港主键", IsNullable = true)] + public Nullable PortDischargeId { get; set; } + + /// + /// 卸货港 + /// + [SqlSugar.SugarColumn(ColumnDescription = "卸货港", Length = 120, IsNullable = true)] + public string PortDischarge { get; set; } + } +} diff --git a/ds-wms-service/DS.WMS.Core/Op/Interface/BookingSlot/IBookingSlotService.cs b/ds-wms-service/DS.WMS.Core/Op/Interface/BookingSlot/IBookingSlotService.cs index 6d0ba84e..aacf5373 100644 --- a/ds-wms-service/DS.WMS.Core/Op/Interface/BookingSlot/IBookingSlotService.cs +++ b/ds-wms-service/DS.WMS.Core/Op/Interface/BookingSlot/IBookingSlotService.cs @@ -277,5 +277,19 @@ namespace DS.WMS.Core.Op.Interface /// 同步订单更新舱位请求 /// 返回回执 Task SyncBookingOrderToSlot(BookingOrderToSlotDto req); + + /// + /// 保存舱位预甩或换舱 + /// + /// 请求详情 + /// 返回回执 + Task SaveRolling(BookingSlotRollingDto req); + + /// + /// 获取舱位预甩或换舱列表 + /// + /// 舱位ID + /// 返回列表 + Task>> GetRollingList(long slotId); } } diff --git a/ds-wms-service/DS.WMS.Core/Op/Method/BookingSlot/BookingSlotService.cs b/ds-wms-service/DS.WMS.Core/Op/Method/BookingSlot/BookingSlotService.cs index 2dc732be..e7e64d20 100644 --- a/ds-wms-service/DS.WMS.Core/Op/Method/BookingSlot/BookingSlotService.cs +++ b/ds-wms-service/DS.WMS.Core/Op/Method/BookingSlot/BookingSlotService.cs @@ -4943,6 +4943,61 @@ namespace DS.WMS.Core.Op.Method return await Task.FromResult(DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess)); } #endregion + + #region 保存舱位预甩或换舱 + /// + /// 保存舱位预甩或换舱 + /// + /// 请求详情 + /// 返回回执 + public async Task SaveRolling(BookingSlotRollingDto req) + { + var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + + if (req.Id == 0) + { + var model = req.Adapt(); + + await tenantDb.Insertable(model).ExecuteCommandAsync(); + } + else + { + var model = req.Adapt(); + + await tenantDb.Updateable(model).ExecuteCommandAsync(); + } + + return DataResult.Successed("成功"); + } + #endregion + + #region 获取舱位预甩或换舱列表 + /// + /// 获取舱位预甩或换舱列表 + /// + /// 舱位ID + /// 返回列表 + public async Task>> GetRollingList(long slotId) + { + var tenantDb = saasService.GetBizDbScopeById(user.TenantId); + + var list = tenantDb.Queryable().Where(a => a.SlotId == slotId).ToList(); + + if (list.Count > 0) + { + var rltList = list.Select(b => + { + var dto = b.Adapt(); + + return dto; + }).OrderByDescending(a => a.CreateTime).ToList(); + + return DataResult>.Success(rltList); + } + + return DataResult>.FailedData(null); + } + #endregion } public static class LetterIndexUtil diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs b/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs index 9ef38119..1c9acc5f 100644 --- a/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs +++ b/ds-wms-service/DS.WMS.Core/Settlement/Method/FreeSettlementService.cs @@ -254,7 +254,7 @@ namespace DS.WMS.Core.Settlement.Method } /// - /// 获取付费自由结算明细 + /// 获取自由结算明细 /// /// /// diff --git a/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs b/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs index 9b2ba878..f3b24f33 100644 --- a/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs +++ b/ds-wms-service/DS.WMS.Core/Settlement/Method/SettlementService`1.cs @@ -585,6 +585,112 @@ namespace DS.WMS.Core.Settlement.Method #endregion + /// + /// 更新费用及其业务的结算状态 + /// + /// 费用记录ID + /// 此方法内部将始终异步执行,请确保在调用前已提交数据库事务等必要的操作。 + protected internal void UpdateFeeStatus(IEnumerable ids) + { + var task1 = Task.Factory.StartNew(UpdateFeeStatusCore, ids, CancellationToken.None); + task1.ContinueWith(t => UpdateBizStatusCore(t.Result), TaskContinuationOptions.OnlyOnRanToCompletion); + } + + private List UpdateFeeStatusCore(object? state) + { + if (state == null) + return []; + + var ids = (IEnumerable)state; + var fees = TenantDb.Queryable().Where(x => ids.Contains(x.Id)) + .Select(x => new FeeRecord + { + Id = x.Id, + BusinessId = x.BusinessId, + BusinessType = x.BusinessType, + FeeStatus = x.FeeStatus, + Amount = x.Amount, + SettlementAmount = x.SettlementAmount, + OrderAmount = x.OrderAmount, + OrderSettlementAmount = x.OrderSettlementAmount + }).ToList(); + if (fees.Count == 0) + return []; + + List list = new(fees.Count); + foreach (var item in fees) + { + var restAmount = item.Amount - item.SettlementAmount - item.OrderAmount + item.OrderSettlementAmount; + if (restAmount == 0) + { + item.FeeStatus = FeeStatus.SettlementCompleted; + list.Add(item); + } + else if (restAmount != item.Amount) + { + item.FeeStatus = FeeStatus.PartialSettlement; + list.Add(item); + } + else if (restAmount == item.Amount) + { + item.FeeStatus = FeeStatus.AuditPassed; + list.Add(item); + } + } + TenantDb.Updateable(list).UpdateColumns(x => new { x.FeeStatus }).ExecuteCommand(); + return list; + } + + private void UpdateBizStatusCore(List list) + { + var bizIds = list.Select(x => x.BusinessId); + var types = list.Select(x => x.BusinessType).Distinct(); + var fees2 = TenantDb.Queryable().Where(x => bizIds.Contains(x.BusinessId) && types.Contains(x.BusinessType)) + .Select(x => new { x.BusinessId, x.BusinessType, x.FeeType, x.FeeStatus }).ToList(); + if (fees2.Count == 0) + return; + + var gpList = fees2.GroupBy(x => new { x.BusinessId, x.BusinessType }); + foreach (var gp in gpList) + { + BusinessFeeStatus biz = new() { BusinessId = gp.Key.BusinessId, BusinessType = gp.Key.BusinessType }; + var upt = TenantDb.Updateable(biz).WhereColumns(x => new { x.BusinessId, x.BusinessType }); + //应收 + var arList = gp.Where(x => x.FeeType == FeeType.Receivable).ToList(); + if (arList.Count > 0) + { + if (arList.All(x => x.FeeStatus == FeeStatus.SettlementCompleted)) + { + biz.ARFeeStatus = BillFeeStatus.SettlementCompleted; + upt = upt.UpdateColumns(x => x.ARFeeStatus); + } + else if (arList.Any(x => x.FeeStatus == FeeStatus.PartialSettlement)) + { + biz.ARFeeStatus = BillFeeStatus.PartialSettlement; + upt = upt.UpdateColumns(x => x.ARFeeStatus); + } + } + + //应付 + var apList = gp.Where(x => x.FeeType == FeeType.Payable).ToList(); + if (apList.Count > 0) + { + if (apList.All(x => x.FeeStatus == FeeStatus.SettlementCompleted)) + { + biz.APFeeStatus = BillFeeStatus.SettlementCompleted; + upt = upt.UpdateColumns(x => x.APFeeStatus); + } + else if (apList.Any(x => x.FeeStatus == FeeStatus.PartialSettlement)) + { + biz.APFeeStatus = BillFeeStatus.PartialSettlement; + upt = upt.UpdateColumns(x => x.APFeeStatus); + } + } + + upt.ExecuteCommand(); + } + } + /// /// 设置结算单的锁定状态 /// diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/BLConfirmation.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/TaskGroup.cs similarity index 95% rename from ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/BLConfirmation.cs rename to ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/TaskGroup.cs index 57615386..f3ff4bea 100644 --- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/BLConfirmation.cs +++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Dtos/TaskGroup.cs @@ -1,16 +1,15 @@ using System.Runtime.Serialization; using DS.Module.Core; using DS.WMS.Core.Op.Entity; -using DS.WMS.Core.TaskInteraction.Entity; using Masuit.Tools.Systems; using SqlSugar; namespace DS.WMS.Core.TaskInteraction.Dtos { /// - /// 提单确认信息 + /// 任务组 /// - public class BLConfirmation + public class TaskGroup { /// /// 主业务ID @@ -29,7 +28,7 @@ namespace DS.WMS.Core.TaskInteraction.Dtos } /// - /// 提单确认任务 + /// 任务信息 /// public class BLTask { diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Interface/ISeaExportTaskService.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Interface/ISeaExportTaskService.cs index fcced8bd..a43b62c6 100644 --- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Interface/ISeaExportTaskService.cs +++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Interface/ISeaExportTaskService.cs @@ -40,7 +40,7 @@ namespace DS.WMS.Core.TaskInteraction.Interface /// 业务ID /// 业务类型 /// - Task> GetBLConfirmationAsync(long bsId, BusinessType bsType); + Task> GetBLConfirmationAsync(long bsId, BusinessType bsType); /// /// 获取海运出口查询对象 diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs index 98d10019..d2179a96 100644 --- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs +++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/SeaExportTaskService.cs @@ -43,7 +43,7 @@ namespace DS.WMS.Core.TaskInteraction.Method request.Steps.Add(new TaskStepDto { Type = StepType.OPConfirm, - Name = StepType.OPConfirm.GetDescription() + Name = StepType.OPConfirm.ToString() }); } } @@ -213,9 +213,9 @@ namespace DS.WMS.Core.TaskInteraction.Method /// 业务ID /// 业务类型 /// - public async Task> GetBLConfirmationAsync(long bsId, BusinessType bsType) + public async Task> GetBLConfirmationAsync(long bsId, BusinessType bsType) { - var confirmation = new BLConfirmation + var confirmation = new TaskGroup { BusinessId = bsId, BusinessType = bsType, @@ -236,11 +236,14 @@ namespace DS.WMS.Core.TaskInteraction.Method TaskType = t.TaskType, TaskStatus = t.TaskStatus, RecvUsers = t.RecvUsers, - IsMainBL = true + IsMainBL = true, + Steps = SqlFunc.Subqueryable().Where(ts => ts.TaskId == t.Id).ToList(ts => new TaskStepDto + { + }, true) }).FirstAsync(); if (mainTask == null) - return DataResult.Success(confirmation); + return DataResult.Success(confirmation); var list = await TenantDb.Queryable() .LeftJoin((t, b) => t.BusinessId == b.Id) @@ -278,7 +281,7 @@ namespace DS.WMS.Core.TaskInteraction.Method } } - return DataResult.Success(confirmation); + return DataResult.Success(confirmation); } /// diff --git a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/TaskService.cs b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/TaskService.cs index 6cdf89d6..2d863558 100644 --- a/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/TaskService.cs +++ b/ds-wms-service/DS.WMS.Core/TaskInteraction/Method/TaskService.cs @@ -190,15 +190,15 @@ namespace DS.WMS.Core.TaskInteraction.Method if (!await HasAuthorizedAsync()) return DataResult.FailedWithDesc(nameof(MultiLanguageConst.ModuleUnauthorized)); - ////检查步骤类型是否重复 - //if (request.Steps?.Count > 0) - //{ - // if (request.Steps.Where(x => x.Type != StepType.NotSpecified).GroupBy(x => x.Type).Select(x => x.Key).Count() > 1) - // return DataResult.FailedWithDesc(nameof(MultiLanguageConst.DuplicateStepType)); + //检查步骤类型是否重复 + if (request.Steps?.Count > 0) + { + if (request.Steps.Where(x => x.Type != StepType.NotSpecified).GroupBy(x => x.Type).Select(x => x.Key).Count() > 1) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.DuplicateStepType)); - // if (request.Steps.Any(x => x.Type == StepType.NotSpecified && string.IsNullOrEmpty(x.Name))) - // return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TypeOrName)); - //} + if (request.Steps.Any(x => x.Type == StepType.NotSpecified && string.IsNullOrEmpty(x.Name))) + return DataResult.FailedWithDesc(nameof(MultiLanguageConst.TypeOrName)); + } if (request.HasCabin.GetValueOrDefault() && request.BusinessType.HasValue) { @@ -449,13 +449,13 @@ namespace DS.WMS.Core.TaskInteraction.Method if (request.TaskStatus == TaskStatusEnum.Complete && await TenantDb.Queryable().AnyAsync(x => x.ParentId == task.Id && x.TaskStatus != request.TaskStatus)) return DataResult.FailedWithDesc(nameof(MultiLanguageConst.UnfinishedItems)); - ////检查是否有未完成的任务步骤 - //var steps = await TenantDb.Queryable().Where(x => x.TaskId == task.Id && !x.IsCompleted) - // .Select(x => new { x.Type, x.Name }).ToListAsync(); - //if (steps.Count > 0) - // return DataResult.Failed( - // MultiLanguageConst.GetDescription(nameof(MultiLanguageConst.UnfinishedItems)) + ":" + string.Join("|", steps.Select(x => x.Type == StepType.NotSpecified ? x.Name : x.Type.GetDescription())), - // nameof(MultiLanguageConst.UnfinishedItems)); + //检查是否有未完成的任务步骤 + var steps = await TenantDb.Queryable().Where(x => x.TaskId == task.Id && !x.IsCompleted) + .Select(x => new { x.Type, x.Name }).ToListAsync(); + if (steps.Count > 0) + return DataResult.Failed( + MultiLanguageConst.GetDescription(nameof(MultiLanguageConst.UnfinishedItems)) + ":" + string.Join("|", steps.Select(x => x.Type == StepType.NotSpecified ? x.Name : x.Type.GetDescription())), + nameof(MultiLanguageConst.UnfinishedItems)); //触发任务状态变更通知 if (task.TaskStatus != request.TaskStatus) diff --git a/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user b/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user index 4f74737c..347f1eb6 100644 --- a/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user +++ b/ds-wms-service/DS.WMS.FeeApi/Properties/PublishProfiles/FolderProfile1.pubxml.user @@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. <_PublishTargetUrl>D:\Publish\DS8\FeeApi - True|2024-11-02T12:54:29.9931812Z||;True|2024-11-02T20:39:20.4100370+08:00||;True|2024-11-02T18:33:41.0724285+08:00||;True|2024-11-02T18:21:55.8561639+08:00||;True|2024-11-02T17:36:24.3401782+08:00||;True|2024-11-02T16:38:03.0054105+08:00||;True|2024-11-02T16:26:26.1698304+08:00||;True|2024-11-02T16:15:20.2872358+08:00||;True|2024-11-02T15:19:14.9663838+08:00||;True|2024-11-02T14:39:47.8808708+08:00||;False|2024-11-02T14:22:04.2841792+08:00||;True|2024-11-02T11:50:48.2452805+08:00||;True|2024-10-29T18:52:12.7978878+08:00||;True|2024-10-29T10:27:49.1623527+08:00||;True|2024-10-25T15:09:27.7029075+08:00||;True|2024-10-25T10:29:26.9218878+08:00||;True|2024-10-22T17:58:39.9582805+08:00||;True|2024-10-21T17:57:21.7047579+08:00||;True|2024-10-21T14:30:54.4520206+08:00||;True|2024-10-21T10:19:05.7405749+08:00||;True|2024-10-18T16:11:05.4049685+08:00||;True|2024-10-18T14:59:49.1162741+08:00||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;True|2024-09-27T13:48:17.2817346+08:00||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||;True|2024-09-14T11:19:13.1037012+08:00||; + True|2024-11-02T13:17:44.8575190Z||;True|2024-11-02T20:54:29.9931812+08:00||;True|2024-11-02T20:39:20.4100370+08:00||;True|2024-11-02T18:33:41.0724285+08:00||;True|2024-11-02T18:21:55.8561639+08:00||;True|2024-11-02T17:36:24.3401782+08:00||;True|2024-11-02T16:38:03.0054105+08:00||;True|2024-11-02T16:26:26.1698304+08:00||;True|2024-11-02T16:15:20.2872358+08:00||;True|2024-11-02T15:19:14.9663838+08:00||;True|2024-11-02T14:39:47.8808708+08:00||;False|2024-11-02T14:22:04.2841792+08:00||;True|2024-11-02T11:50:48.2452805+08:00||;True|2024-10-29T18:52:12.7978878+08:00||;True|2024-10-29T10:27:49.1623527+08:00||;True|2024-10-25T15:09:27.7029075+08:00||;True|2024-10-25T10:29:26.9218878+08:00||;True|2024-10-22T17:58:39.9582805+08:00||;True|2024-10-21T17:57:21.7047579+08:00||;True|2024-10-21T14:30:54.4520206+08:00||;True|2024-10-21T10:19:05.7405749+08:00||;True|2024-10-18T16:11:05.4049685+08:00||;True|2024-10-18T14:59:49.1162741+08:00||;True|2024-10-16T16:29:15.3185348+08:00||;True|2024-10-16T14:12:58.1754214+08:00||;True|2024-10-16T14:08:06.5805581+08:00||;True|2024-10-16T11:55:29.8273176+08:00||;True|2024-10-15T17:39:40.4090324+08:00||;True|2024-10-15T17:06:43.0181578+08:00||;True|2024-10-15T15:07:38.9601925+08:00||;True|2024-10-12T13:33:32.4412583+08:00||;True|2024-10-11T17:00:54.0916209+08:00||;True|2024-10-11T10:54:50.3307087+08:00||;True|2024-10-11T10:45:07.8181500+08:00||;True|2024-10-11T10:40:44.2066046+08:00||;True|2024-10-11T10:21:25.7226983+08:00||;True|2024-10-11T10:09:05.5257478+08:00||;True|2024-10-10T14:58:29.1228618+08:00||;True|2024-10-10T14:05:59.4501659+08:00||;True|2024-10-10T11:08:58.9765455+08:00||;True|2024-10-08T17:59:07.5583287+08:00||;True|2024-09-27T19:01:59.6945760+08:00||;True|2024-09-27T18:45:48.2812860+08:00||;True|2024-09-27T18:10:25.5697467+08:00||;True|2024-09-27T17:39:06.3169139+08:00||;True|2024-09-27T17:30:14.1043193+08:00||;True|2024-09-27T16:02:09.0703159+08:00||;True|2024-09-27T15:53:05.1789245+08:00||;True|2024-09-27T15:32:52.1934490+08:00||;True|2024-09-27T13:51:24.9197626+08:00||;True|2024-09-27T13:48:17.2817346+08:00||;True|2024-09-27T11:51:46.8193040+08:00||;True|2024-09-27T10:58:33.1059648+08:00||;True|2024-09-27T10:37:35.0336563+08:00||;False|2024-09-27T10:31:52.6302264+08:00||;True|2024-09-26T19:50:15.5513195+08:00||;True|2024-09-26T19:47:14.0781788+08:00||;True|2024-09-26T19:01:26.5428388+08:00||;True|2024-09-26T18:35:28.7455319+08:00||;True|2024-09-26T18:24:30.8084807+08:00||;True|2024-09-26T18:20:47.3005460+08:00||;True|2024-09-26T18:04:39.8012913+08:00||;True|2024-09-26T17:48:13.8526872+08:00||;True|2024-09-26T16:08:20.1746970+08:00||;True|2024-09-26T16:01:01.1501975+08:00||;False|2024-09-26T16:00:34.1516745+08:00||;True|2024-09-26T14:33:03.4007570+08:00||;True|2024-09-25T19:14:27.8906774+08:00||;True|2024-09-25T18:57:40.1435131+08:00||;True|2024-09-25T17:38:44.0915841+08:00||;True|2024-09-25T15:33:58.4630618+08:00||;True|2024-09-25T15:10:31.3022063+08:00||;False|2024-09-25T14:14:40.9640545+08:00||;True|2024-09-25T10:09:32.2558600+08:00||;True|2024-09-25T09:59:17.1525160+08:00||;False|2024-09-25T09:57:58.7265103+08:00||;False|2024-09-25T09:53:36.7732713+08:00||;False|2024-09-24T18:40:10.0166224+08:00||;True|2024-09-24T08:59:56.1995425+08:00||;True|2024-09-23T18:07:54.7222163+08:00||;True|2024-09-23T17:23:57.7568406+08:00||;True|2024-09-23T16:28:49.3169826+08:00||;True|2024-09-23T15:57:31.8052490+08:00||;True|2024-09-23T11:47:21.1445419+08:00||;True|2024-09-23T09:24:36.0732229+08:00||;True|2024-09-21T11:59:19.0549926+08:00||;True|2024-09-21T11:24:32.4451752+08:00||;True|2024-09-21T10:39:11.5297411+08:00||;True|2024-09-20T18:24:31.7827684+08:00||;True|2024-09-19T17:55:53.1666689+08:00||;True|2024-09-19T17:42:47.9061485+08:00||;True|2024-09-19T16:08:21.7225571+08:00||;False|2024-09-19T14:15:42.9318446+08:00||;True|2024-09-19T11:20:03.5567568+08:00||;True|2024-09-18T11:35:18.1509724+08:00||;True|2024-09-18T09:08:59.1152574+08:00||;True|2024-09-14T15:48:22.9374486+08:00||;True|2024-09-14T15:42:19.0503983+08:00||;True|2024-09-14T11:51:53.3339222+08:00||;True|2024-09-14T11:41:38.3542237+08:00||; \ No newline at end of file diff --git a/ds-wms-service/DS.WMS.OpApi/Controllers/SeaExportTaskController.cs b/ds-wms-service/DS.WMS.OpApi/Controllers/SeaExportTaskController.cs index b85fce54..ab5416ab 100644 --- a/ds-wms-service/DS.WMS.OpApi/Controllers/SeaExportTaskController.cs +++ b/ds-wms-service/DS.WMS.OpApi/Controllers/SeaExportTaskController.cs @@ -53,7 +53,7 @@ namespace DS.WMS.OpApi.Controllers /// 业务类型(可选参数) /// [HttpGet, Route("GetBLConfirmation")] - public async Task> GetBLConfirmationAsync(long businessId, BusinessType businessType) + public async Task> GetBLConfirmationAsync(long businessId, BusinessType businessType) { return await taskService.GetBLConfirmationAsync(businessId, businessType); } diff --git a/ds-wms-service/DS.WMS.Test/SaasTest.cs b/ds-wms-service/DS.WMS.Test/SaasTest.cs index 6695a8cc..f53fd27a 100644 --- a/ds-wms-service/DS.WMS.Test/SaasTest.cs +++ b/ds-wms-service/DS.WMS.Test/SaasTest.cs @@ -220,7 +220,7 @@ public class SaasTest //tenantDb.CodeFirst.InitTables(typeof(BookingSlotBase)); //tenantDb.CodeFirst.InitTables(typeof(BookingSlotCtn)); //tenantDb.CodeFirst.InitTables(typeof(BookingSlotStock)); - tenantDb.CodeFirst.InitTables(typeof(BLIssueManageLog)); + tenantDb.CodeFirst.InitTables(typeof(BookingSlotRolling)); //tenantDb.CodeFirst.InitTables(typeof(DraftCompareFeedBackRecord)); //tenantDb.CodeFirst.InitTables(typeof(BookingSlotAllocationCtn)); //tenantDb.CodeFirst.InitTables(typeof(BookingSlotDemand));