From f35dd85d29220d26abc123eae97643e5c8b03944 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 16:17:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E8=9D=B6=E6=93=8D?= =?UTF-8?q?=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 30 ++-- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 34 +++- .../Erp/{ErpSubmitDto.cs => ErpOperateDto.cs} | 4 +- .../IService/Public/IErpService.cs | 11 +- .../Services/Public/ErpService.cs | 148 ++++++++++++++++-- .../Services/TakeStockService.cs | 4 +- 6 files changed, 200 insertions(+), 31 deletions(-) rename src/WMS.Web.Core/Dto/Erp/{ErpSubmitDto.cs => ErpOperateDto.cs} (86%) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 350faf9c..8bf4adc6 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -550,6 +550,21 @@ 表单所在的子系统内码,字符串类型(非必录) + + + erp 提交和审核 + + + + + 业务对象表单Id(必录) + + + + + 单据Id + + 下推 @@ -590,21 +605,6 @@ 单据体 - - - erp 提交和审核 - - - - - 业务对象表单Id(必录) - - - - - 单据Id - - 对应金蝶,物料信息 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 835ab409..fe023f34 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2743,7 +2743,7 @@ - + 同步数据(保存提交审核) @@ -2751,6 +2751,38 @@ + + + 提交 + + + + + + + + 审核 + + + + + + + + 反审核 + + + + + + + + 删除 + + + + + 下推 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs similarity index 86% rename from src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs rename to src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs index 5c2c0653..746866fe 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpOperateDto.cs @@ -8,9 +8,9 @@ namespace WMS.Web.Core.Dto.Erp /// /// erp 提交和审核 /// - public class ErpSubmitDto + public class ErpOperateDto { - public ErpSubmitDto(string formId, string id) + public ErpOperateDto(string formId, string id) { this.FormId = formId; this.Ids = id; diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 7453f060..d839c12d 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -83,9 +83,16 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForSubStock(string code=null); //同步数据(保存提交审核) - Task Sync(T dto, string formId); + Task Save(T dto, string formId); + //提交 + Task Submit(ErpOperateDto dto, string formId); + //审核 + Task Audit(ErpOperateDto dto, string formId); + //反审核 + Task NoAudit(ErpOperateDto dto, string formId); + //删除 + Task Delete(ErpOperateDto dto, string formId); //下推 Task Push(ErpPushDto dto); - } } diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 3f4bb62b..04a60f76 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -607,13 +608,15 @@ namespace WMS.Web.Domain.Services.Public return ResultList.ReFailure("错误", 10002); } } + + #region 金蝶操作交互 /// /// 同步数据(保存提交审核) /// /// /// /// - public async Task Sync(T dto, string formId) + public async Task Save(T dto, string formId) { try { @@ -625,15 +628,143 @@ namespace WMS.Web.Domain.Services.Public query.Data = JsonConvert.SerializeObject(param); //保存 var result_json = await _client.SaveAsync(JsonConvert.SerializeObject(query)); + + JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); + var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); + + if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") + return Result.ReSuccess(); + + var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + return Result.ReFailure(msg, 10002); + } + catch (Exception) + { + return Result.ReFailure("错误", 10002); + } + } + /// + /// 提交 + /// + /// + /// + /// + public async Task Submit(ErpOperateDto dto, string formId) + { + try + { + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return token_result; + var query = new ErpBillQueryDto(token_result.Data); + //提交 - var sparam = new ErpSubmitDto(formId, ""); - query.Data = JsonConvert.SerializeObject(sparam); - result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query)); - //审核 - result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query)); + query.Data = JsonConvert.SerializeObject(dto); + var result_json = await _client.SubmitAsync(JsonConvert.SerializeObject(query)); + JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); + var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); - return Result.ReSuccess(); + if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") + return Result.ReSuccess(); + var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + return Result.ReFailure(msg, 10002); + } + catch (Exception) + { + return Result.ReFailure("错误", 10002); + } + } + /// + /// 审核 + /// + /// + /// + /// + public async Task Audit(ErpOperateDto dto, string formId) + { + try + { + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return token_result; + var query = new ErpBillQueryDto(token_result.Data); + + //提交 + query.Data = JsonConvert.SerializeObject(dto); + var result_json = await _client.AuditAsync(JsonConvert.SerializeObject(query)); + JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); + var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); + + if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") + return Result.ReSuccess(); + + var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + return Result.ReFailure(msg, 10002); + } + catch (Exception) + { + return Result.ReFailure("错误", 10002); + } + } + /// + /// 反审核 + /// + /// + /// + /// + public async Task NoAudit(ErpOperateDto dto, string formId) + { + try + { + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return token_result; + var query = new ErpBillQueryDto(token_result.Data); + + //提交 + query.Data = JsonConvert.SerializeObject(dto); + var result_json = await _client.UnAuditAsync(JsonConvert.SerializeObject(query)); + JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); + var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); + + if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") + return Result.ReSuccess(); + + var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + return Result.ReFailure(msg, 10002); + } + catch (Exception) + { + return Result.ReFailure("错误", 10002); + } + } + /// + /// 删除 + /// + /// + /// + /// + public async Task Delete(ErpOperateDto dto, string formId) + { + try + { + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return token_result; + var query = new ErpBillQueryDto(token_result.Data); + + //提交 + query.Data = JsonConvert.SerializeObject(dto); + var result_json = await _client.DeleteAsync(JsonConvert.SerializeObject(query)); + JObject jobject = (JObject)JsonConvert.DeserializeObject(result_json); + var isSuccess = jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower(); + + if (jobject["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToLower() == "true") + return Result.ReSuccess(); + + var msg = jobject["Result"]["ResponseStatus"]["Errors"]["Message"].ToString(); + return Result.ReFailure(msg, 10002); } catch (Exception) { @@ -657,6 +788,7 @@ namespace WMS.Web.Domain.Services.Public return Result.ReSuccess(); } + #endregion #region 出库 public async Task> BillQueryForDeliveryNoticeOutStock(List sourceBillNos = null, DateTime? beginTime = null) @@ -1118,8 +1250,6 @@ namespace WMS.Web.Domain.Services.Public } } - - #endregion } } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 0665b3bc..8a082608 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -133,7 +133,7 @@ namespace WMS.Web.Domain.Services }; #endregion - var resSync = await _erpService.Sync(dto, FormIdParam.STK_StockCountGain.ToString()); + var resSync = await _erpService.Save(dto, FormIdParam.STK_StockCountGain.ToString()); entity.Sync(resSync.IsSuccess, resSync.Message); await _takeStockRepositories.Edit(entity, true); return res; @@ -180,7 +180,7 @@ namespace WMS.Web.Domain.Services #endregion //判断盘盈盘亏 string formId = entity.ResultType == TakeStockType.Loss ? FormIdParam.STK_StockCountLoss.ToString() : FormIdParam.STK_StockCountGain.ToString(); - var resSync = await _erpService.Sync(dto, formId); + var resSync = await _erpService.Save(dto, formId); entity.Sync(resSync.IsSuccess, resSync.Message); await _takeStockRepositories.Edit(entity, true); return res;