diff --git a/src/WMS.Web.Core/Dto/Erp/ErpPushDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpPushDto.cs new file mode 100644 index 00000000..97eb19bf --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/ErpPushDto.cs @@ -0,0 +1,44 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + /// + /// 下推 + /// + public class ErpPushDto + { + public ErpPushDto() { } + + public ErpPushDto(string formId,string number,List detailIds,string type) + { + this.FormId = formId; + this.Numbers.Add(number); + this.DetailsId = detailIds.ToString(); + this.Type = type; + } + + /// + /// 业务对象表单Id(必录) + /// + [JsonProperty("FormId")] + public string FormId { get; set; } + /// + /// 业务对象表单Id(必录) + /// + [JsonProperty("Numbers")] + public List Numbers { get; set; } + /// + /// 分录内码集合,逗号分隔(分录下推时必录) 注(按分录下推时,单据内码和编码不需要填,否则按整单下推) + /// + [JsonProperty("EntryIds")] + public string DetailsId { get; set; } + /// + /// 目标单据类型内码 + /// + [JsonProperty("TargetBillTypeId")] + public string Type { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index ad13396c..1a85fa8f 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -37,5 +37,8 @@ namespace WMS.Web.Domain.IService.Public Task> BillQueryForStock(); //同步数据(保存提交审核) Task Sync(T 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 07a50ed0..b471dd23 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -340,6 +340,22 @@ namespace WMS.Web.Domain.Services.Public return Result.ReFailure("错误", 10002); } } - + /// + /// 下推 + /// + /// + /// + public async Task Push(ErpPushDto dto) + { + 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.PushAsync(JsonConvert.SerializeObject(query)); + + return Result.ReSuccess(); + } } }