From bb77363dada56af383cc6ce82af9c3358be989ef Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Thu, 9 Nov 2023 11:14:40 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8C=E6=AD=A5=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 18 +++- .../IService/Public/IOutStockTaskService.cs | 8 +- .../QuartzJob/OutStockOrderQuartzJob.cs | 21 +--- .../Services/OutStockService.cs | 11 ++- .../Services/OutStockTaskService.cs | 98 ++++++++++++++++++- 5 files changed, 130 insertions(+), 26 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 8de1a8a6..ee88f33b 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1823,7 +1823,7 @@ 出库任务 - + 采购发货通知单 @@ -1854,6 +1854,13 @@ + + + 同步金蝶数据 不传源订单号则更新所有 + + + + 单点数据返回服务接口 @@ -2438,7 +2445,7 @@ - + 发货通知单同步数据 @@ -2477,6 +2484,13 @@ + + + 同步金蝶数据 不传源订单号则更新所有 + + + + erp基础数据:扩展服务 diff --git a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs index 4df6006e..14efef7a 100644 --- a/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs +++ b/src/WMS.Web.Domain/IService/Public/IOutStockTaskService.cs @@ -19,7 +19,7 @@ namespace WMS.Web.Domain.IService.Public /// /// /// - Task SsynDeliveryNoticeOutStock(bool isTransaction,List sourceBillNos = null); + Task BillQueryForDeliveryNoticeOutStock(bool isTransaction,List sourceBillNos = null); /// /// erp:单据查询-直接调拨出库 /// @@ -44,5 +44,11 @@ namespace WMS.Web.Domain.IService.Public Task Repeal(OperateRequest dto, LoginInDto loginInfo); //出库任务作废 Task merge(OperateRequest dto, LoginInDto loginInfo); + /// + /// 同步金蝶数据 不传源订单号则更新所有 + /// + /// + /// + Task Ssyn(List sourceBillNos = null); } } diff --git a/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs index a8f6a448..d2cec87c 100644 --- a/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs +++ b/src/WMS.Web.Domain/QuartzJob/OutStockOrderQuartzJob.cs @@ -14,7 +14,7 @@ using WMS.Web.Domain.Options; namespace WMS.Web.Domain.QuartzJob { - public class OutStockOrderQuartzJob : IJob + public class OutStockOrderQuartzJob : IJob { private readonly ILogger _logger; private readonly IServiceScopeFactory _serviceScopeFactory; @@ -44,28 +44,11 @@ namespace WMS.Web.Domain.QuartzJob { try { - //1.事务 - IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); - bool isRollback = false; - bool isTransaction = false; //2.记录:开始时间 var begindatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"出库单-同步金蝶入库单数据:执行开始时间->{begindatetime}"); //3.同步数据 - var result = await _outStockTaskService.SsynDeliveryNoticeOutStock(isTransaction); - if (!result.IsSuccess) isRollback = true; - result = await _outStockTaskService.BillQueryForTransferDirectOutStock(isTransaction); - if (!result.IsSuccess) isRollback = true; - result = await _outStockTaskService.BillQueryForTransferOutOutStock(isTransaction); - if (!result.IsSuccess) isRollback = true; - result = await _outStockTaskService.BillQueryForMisDeliveryOutStock(isTransaction); - if (!result.IsSuccess) isRollback = true; - result = await _outStockTaskService.BillQueryForAssembledAppOutStock(isTransaction); - if (!result.IsSuccess) isRollback = true; - - //4.提交事务 - var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); - + var result = await _outStockTaskService.Ssyn(null); //5.记录:结束时间 var enddatetime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"); _logger.LogInformation($"出库单-同步金蝶入库单数据:执行结束时间->{begindatetime}"); diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 2a23e59b..18ac6157 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -28,15 +28,17 @@ namespace WMS.Web.Domain.Services public readonly IBasicsRepositories _transactionRepositories; private readonly IOutStockRepositories _outStockRepositories; private readonly IOutStockTaskRepositories _outStockTaskRepositories; + private readonly IOutStockTaskService _outStockTaskService; public OutStockService(IMapper mapper, ILoginService loginService, IBasicsRepositories transactionRepositories, - IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories) + IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService) { _mapper = mapper; _loginService = loginService; _transactionRepositories = transactionRepositories; _outStockRepositories = outStockRepositories; _outStockTaskRepositories = outStockTaskRepositories; + _outStockTaskService = outStockTaskService; } /// /// 出库单 @@ -48,6 +50,11 @@ namespace WMS.Web.Domain.Services { var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId); //OutStock entity = await _outStockRepositories.GetByTaskId(dto.TaskId); + //同步该订单最新数据到wms系统 + List nos = new List(); + nos.Add(outStockTask.SourceBillNo); + var res = await _outStockTaskService.Ssyn(nos); + if (!res.IsSuccess) return Result.ReSuccess(); OutStock entity = new OutStock(); entity.Create(loginInfo.UserInfo.StaffId, outStockTask); @@ -56,7 +63,7 @@ namespace WMS.Web.Domain.Services //任务单明细 var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId); if (tDetail == null) continue; - var res = outStockTask.OutStock(d.MaterialId, d.Qty); + res = outStockTask.OutStock(d.MaterialId, d.Qty); if (!res.IsSuccess) return res; var outd = _mapper.Map(tDetail); diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index cf232675..9f67e015 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -158,7 +158,7 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task SsynDeliveryNoticeOutStock(bool isTransaction, List sourceBillNos = null) + public async Task BillQueryForDeliveryNoticeOutStock(bool isTransaction, List sourceBillNos = null) { //1.获取金蝶数据:采购订单数据 var erp_result = await _erpService.BillQueryForDeliveryNoticeOutStock(sourceBillNos); @@ -204,7 +204,7 @@ namespace WMS.Web.Domain.Services public async Task BillQueryForAssembledAppOutStock(bool isTransaction, List sourceBillNos = null) { List list = new List(); - + var erp_result = await _erpService.BillQueryForAssembledAppOutStock_Dassembly(sourceBillNos); if (!erp_result.IsSuccess) return Result.ReFailure(erp_result.Message, erp_result.Status); @@ -231,5 +231,99 @@ namespace WMS.Web.Domain.Services return await this.SsynDate(erp_result.Data.ToList(), isTransaction); } + /// + /// 同步金蝶数据 不传源订单号则更新所有 + /// + /// + /// + public async Task Ssyn(List sourceBillNos = null) + { + //1.事务 + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isSuccess = true; + Result result; + //定时任务更新 + if (sourceBillNos == null) + { + + //更新时间范围内所有 + result= await BillQueryForDeliveryNoticeOutStock(false, null); + if (!result.IsSuccess) isRollback = true; + result = await BillQueryForTransferDirectOutStock(false, null); + if (!result.IsSuccess) isRollback = true; + result = await BillQueryForTransferOutOutStock(false, null); + if (!result.IsSuccess) isRollback = true; + result = await BillQueryForAssembledAppOutStock(false, null); + if (!result.IsSuccess) isRollback = true; + result = await BillQueryForMisDeliveryOutStock(false, null); + if (!result.IsSuccess) isRollback = true; + + //同步成功后 更新定时开始时间 + if (!isRollback) + { + } + + //4.提交事务 + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + + //根据指定单号更新 + List DeliveryNotice_Nos = new List(); + List TransferDirect_Nos = new List(); + List TransferOut_Nos = new List(); + List AssembledApp_Nos = new List(); + List MisDeliveryOut_Nos = new List(); + var taskList = await _outStockTaskRepositories.GetListBySourceBillNo(sourceBillNos); + foreach (var entity in taskList) + { + if (entity.Type == OutStockType.Sal) + DeliveryNotice_Nos.Add(entity.SourceBillNo); + else if (entity.Type == OutStockType.Stkdirecttransfers) + TransferDirect_Nos.Add(entity.SourceBillNo); + else if (entity.Type == OutStockType.StktransferInst) + TransferOut_Nos.Add(entity.SourceBillNo); + else if (entity.Type == OutStockType.Assembled) + AssembledApp_Nos.Add(entity.SourceBillNo); + else if (entity.Type == OutStockType.Miscellaneous) + MisDeliveryOut_Nos.Add(entity.SourceBillNo); + } + + if (DeliveryNotice_Nos.Count() > 0) + { + result= await BillQueryForDeliveryNoticeOutStock(false, DeliveryNotice_Nos); + if (!result.IsSuccess) isRollback = true; + } + if (TransferDirect_Nos.Count() > 0) + { + result = await BillQueryForDeliveryNoticeOutStock(false, TransferDirect_Nos); + if (!result.IsSuccess) isRollback = true; + } + if (TransferOut_Nos.Count() > 0) + { + result = await BillQueryForDeliveryNoticeOutStock(false, TransferOut_Nos); + if (!result.IsSuccess) isRollback = true; + } + if (AssembledApp_Nos.Count() > 0) + { + result = await BillQueryForDeliveryNoticeOutStock(false, AssembledApp_Nos); + if (!result.IsSuccess) isRollback = true; + } + if (MisDeliveryOut_Nos.Count() > 0) + { + result = await BillQueryForDeliveryNoticeOutStock(false, MisDeliveryOut_Nos); + if (!result.IsSuccess) isRollback = true; + } + + //4.提交事务 + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); + } } }