From 5365b875601ed4019ac8f7f018404c7e1129cfa9 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 16:55:22 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=9B=98=E7=9B=88?= =?UTF-8?q?=E7=9B=98=E4=BA=8F=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IService/ITakeStockService.cs | 5 +- .../Services/TakeStockService.cs | 100 +++++++++--------- 2 files changed, 53 insertions(+), 52 deletions(-) diff --git a/src/WMS.Web.Domain/IService/ITakeStockService.cs b/src/WMS.Web.Domain/IService/ITakeStockService.cs index 07ac3db1..19a4a292 100644 --- a/src/WMS.Web.Domain/IService/ITakeStockService.cs +++ b/src/WMS.Web.Domain/IService/ITakeStockService.cs @@ -19,10 +19,7 @@ namespace WMS.Web.Domain.IService Task Save(List dto, LoginInDto loginInfo); // 同步金蝶 Task Sync(OperateRequest dto); - // - //盘盈 - Task Profit(TakeStock entity); - //盘亏 + //盘亏盘亏 Task Loss_Profit(TakeStock entity); } } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 8a082608..bfeea34a 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -1,11 +1,13 @@ using AutoMapper; using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp.TakeStock; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.TakeStock; @@ -32,10 +34,11 @@ namespace WMS.Web.Domain.Services private readonly ILoginRepositories _loginRepositories; private readonly ISingleDataService _singleDataService; private readonly IErpService _erpService; + private readonly ILogger _logger; public TakeStockService(IMapper mapper, ILoginService loginService, IBasicsRepositories transactionRepositories, ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories, - ISingleDataService singleDataService, IErpService erpService) + ISingleDataService singleDataService, IErpService erpService, ILogger logger) { _mapper = mapper; _loginService = loginService; @@ -44,6 +47,7 @@ namespace WMS.Web.Domain.Services _loginRepositories = loginRepositories; _singleDataService = singleDataService; _erpService = erpService; + _logger = logger; } /// /// 保存 @@ -93,52 +97,6 @@ namespace WMS.Web.Domain.Services return Result.ReSuccess(); } /// - /// 作废 - /// - /// - /// - public async Task Profit(TakeStock entity) - { - //获取金蝶仓库仓位编码 - //var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockCode); - var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId); - - var res = await _erpService.BillQueryForStock(); - var stock = res.Data.FirstOrDefault(f => f.Code == entity.StockCode);//需要根据单点code搜索 - var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索 - if (stock == null || subStock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); - //组装dto - #region 组装dto - List detils = new List(); - detils.Add(new ErpTakeStockDetailsSaveDto() - { - FOwnerid = stock.OrgId.ToString(), - FKeeperId = stock.OrgId.ToString(), - MaterialId = entity.MaterialId.ToString(), - UnitId = "",//物料带出来 - StockId = stock.Id.ToString(), - SubStockId = subStock.Id.ToString(), - BeforeQty = entity.BeforeQty, - AfterQty = entity.AfterQty, - FinalQty = entity.FinalQty, - Fnote = "" - }); - ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() - { - BillNo = entity.BillNo, - StockOrgId = stock.OrgId.ToString(), - Type = "PY01_SYS", - Date = entity.Date, - Details = detils - }; - #endregion - - var resSync = await _erpService.Save(dto, FormIdParam.STK_StockCountGain.ToString()); - entity.Sync(resSync.IsSuccess, resSync.Message); - await _takeStockRepositories.Edit(entity, true); - return res; - } - /// /// 盘盈盘亏同步金蝶 /// /// @@ -180,10 +138,56 @@ namespace WMS.Web.Domain.Services #endregion //判断盘盈盘亏 string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString(); - var resSync = await _erpService.Save(dto, formId); + //操作金蝶 + var resSync = await ErpOperate(dto, formId); entity.Sync(resSync.IsSuccess, resSync.Message); await _takeStockRepositories.Edit(entity, true); return res; } + /// + /// 同步金蝶操作 + /// + /// + /// + /// + private async Task ErpOperate(ErpTakeStockSaveDto dto, string formId) + { + var res = await _erpService.Save(dto, formId); + if (!res.IsSuccess) + return res; + //提交 + ErpOperateDto o_dto = new ErpOperateDto(formId, ""); + res = await _erpService.Submit(o_dto, formId); + if (!res.IsSuccess) + { + //如果提交失败 + //1.则调删单接口 + var del_res = await _erpService.Delete(o_dto, formId); + if (!del_res.IsSuccess) + _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 提交失败原因: {res.Message} 删单失败原因:{del_res.Message}"); + return res; + } + //审核 + res = await _erpService.Audit(o_dto, formId); + if (!res.IsSuccess) + { + //如果审核失败 + //1.调反审核接口 + //2.调删除接口 + var noAudit_res = await _erpService.NoAudit(o_dto, formId); + if (!noAudit_res.IsSuccess) + { + _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 反审核失败原因:{noAudit_res.Message}"); + return res; + } + + var del_res = await _erpService.Delete(o_dto, formId); + if (!del_res.IsSuccess) + _logger.LogError($"盘盈盘亏同步金蝶 单号:{dto.BillNo} 审核失败原因: {res.Message} 删单失败原因:{del_res.Message}"); + return res; + } + + return Result.ReSuccess(); + } } } From 8d85541058a46dfd396114f10acfad46e295846a Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 17:06:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8E=A5=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 | 15 ++++++++------- src/WMS.Web.Domain/IService/Public/IErpService.cs | 2 +- src/WMS.Web.Domain/Services/Public/ErpService.cs | 14 +++++++++----- src/WMS.Web.Domain/Services/TakeStockService.cs | 10 +++++----- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index c56bd986..69983bb8 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3229,13 +3229,6 @@ - - - 作废 - - - - 盘盈盘亏同步金蝶 @@ -3243,6 +3236,14 @@ + + + 同步金蝶操作 + + + + + 出入库回退类型 diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 654303c3..b409782e 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -97,7 +97,7 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForSubStock(string code=null); //同步数据(保存提交审核) - Task Save(T dto, string formId); + Task> Save(T dto, string formId); //提交 Task Submit(ErpOperateDto dto, string formId); //审核 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 8a4601fb..2e775b33 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -767,13 +767,13 @@ namespace WMS.Web.Domain.Services.Public /// /// /// - public async Task Save(T dto, string formId) + public async Task> Save(T dto, string formId) { try { var token_result = await this.Init(); if (!token_result.IsSuccess) - return token_result; + return Result.ReFailure(token_result.Message,token_result.Status); var query = new ErpBillQueryDto(token_result.Data); var param = new ErpSave(formId, dto); query.Data = JsonConvert.SerializeObject(param); @@ -784,14 +784,18 @@ namespace WMS.Web.Domain.Services.Public var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") - return Result.ReSuccess(); + { + //保存成功后返回Id 后续操作根据Id操作 + string id = jobject["Result"]["ResponseStatus"]["SuccessEntitys"]["Id"].ToString(); + return Result.ReSuccess(id); + } var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); - return Result.ReFailure(msg, 10002); + return Result.ReFailure(msg, 10002); } catch (Exception) { - return Result.ReFailure("错误", 10002); + return Result.ReFailure("错误", 10002); } } /// diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index bfeea34a..76d4eb32 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -152,12 +152,12 @@ namespace WMS.Web.Domain.Services /// private async Task ErpOperate(ErpTakeStockSaveDto dto, string formId) { - var res = await _erpService.Save(dto, formId); - if (!res.IsSuccess) - return res; + var res_s = await _erpService.Save(dto, formId); + if (!res_s.IsSuccess) + return Result.ReFailure(res_s.Message,res_s.Status); //提交 - ErpOperateDto o_dto = new ErpOperateDto(formId, ""); - res = await _erpService.Submit(o_dto, formId); + ErpOperateDto o_dto = new ErpOperateDto(formId, res_s.Data); + var res = await _erpService.Submit(o_dto, formId); if (!res.IsSuccess) { //如果提交失败