From f35dd85d29220d26abc123eae97643e5c8b03944 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 16:17:03 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E9=87=91=E8=9D=B6?= =?UTF-8?q?=E6=93=8D=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; From bddd26993f18294507ab9d060f27948672516445 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 16:23:27 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 5 +++++ src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs | 8 +++++++- src/WMS.Web.Domain/Services/Public/ErpService.cs | 2 +- .../Configuration/RepositoryDbContext.cs | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index fe023f34..985c6e8e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -281,6 +281,11 @@ 定时任务最新一次时间管理 + + + 主键 订单编号 + + 同步类型 diff --git a/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs b/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs index c7030575..ea11618a 100644 --- a/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs +++ b/src/WMS.Web.Domain/Entitys/ErpOpsSyncDate.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Text; +using WMS.Web.Core; using WMS.Web.Domain.Values; namespace WMS.Web.Domain.Entitys @@ -13,8 +14,13 @@ namespace WMS.Web.Domain.Entitys /// [Serializable] [Table("t_wms_sync_date")] - public class ErpOpsSyncDate + public class ErpOpsSyncDate : EntityBase { + /// + /// 主键 订单编号 + /// + [Column("Id")] + public override int Id { get; set; } /// /// 同步类型 /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 04a60f76..64b2d098 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -814,7 +814,7 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.SAL_DELIVERYNOTICE.ToString()); - param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID,FStockID,FStockLocID,FQty,FNoteEntry,FCreateDate"; + param.FieldKeys = "FBillNo,FOrderNo,FDeliveryOrgID,FCustomerID,FMaterialID,FStockID,FStockLocID,FQty,FNoteEntry,FCreateDate,FEntryID"; param.Limit = 10; //查询条件:备注其中的条件值以金蝶的值为准!!! //1.创建时间在两天前和当天时间之间 diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index 1a7ff910..248e7e4b 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -60,6 +60,7 @@ namespace WMS.Web.Repositories.Configuration builder.Entity(ent => { ent.ToTable("t_wms_sync_date"); + ent.HasKey(x => x.Id); }); From de10b40d2e170395b78cf0e54b18077954de71e9 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 10 Nov 2023 16:34:20 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=87=91=E8=9D=B6?= =?UTF-8?q?=E6=98=8E=E7=BB=86id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 +++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 5 +++++ .../Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs | 4 ++++ src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs | 5 +++++ src/WMS.Web.Domain/Services/Public/ErpService.cs | 1 + 5 files changed, 20 insertions(+) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 8bf4adc6..b1f8d0a8 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -685,6 +685,11 @@ 收货客户 + + + 对应金蝶单据明细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 985c6e8e..d7b06fd9 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -952,6 +952,11 @@ 单据头Id + + + 对应金蝶单据明细id(销售出库同步金蝶下推使用) + + 销售订单号 diff --git a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs index bbdcecd1..9ea3dfe9 100644 --- a/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/OutStock/ErpDeliveryNoticeOutStockResultDto.cs @@ -26,6 +26,10 @@ namespace WMS.Web.Core.Dto.Erp.OutStock /// public int ReceiptCustomerId { get; set; } /// + /// 对应金蝶单据明细id(销售出库同步金蝶下推使用) + /// + public int Erp_DetailId { get; set; } = 0; + /// /// 物料Id /// public int MaterialId { get; set; } diff --git a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs index e7009944..6dca3b95 100644 --- a/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs +++ b/src/WMS.Web.Domain/Entitys/OutStockTaskDetails.cs @@ -27,6 +27,11 @@ namespace WMS.Web.Domain.Entitys [Column("Fid")] public int Fid { get; set; } /// + /// 对应金蝶单据明细id(销售出库同步金蝶下推使用) + /// + [Column("Erp_DetailId")] + public int Erp_DetailId { get; set; } + /// /// 销售订单号 /// [Column("SaleBillNo")] diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 64b2d098..66e88bde 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -855,6 +855,7 @@ namespace WMS.Web.Domain.Services.Public lis.Remark = item[8]; lis.CreateTime = Convert.ToDateTime(item[9]); lis.Type = (int)OutStockType.Sal; + lis.Erp_DetailId = Convert.ToInt32(item[10]); erp_list.Add(lis); } return ResultList.ReSuccess(erp_list);