diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index ff3e68e6..243fd6d8 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -130,6 +130,11 @@ 明细ID + + + 单据编号 + + 所属箱号ID @@ -700,6 +705,51 @@ 明细备注 + + + erp:分步式调入单-响应对象 + + + + + 单据编号 + + + + + 库存组织 + + + + + 物料ID + + + + + 调入仓库ID + + + + + 调入仓库code + + + + + 调入数量 + + + + + 明细备注 + + + + + 创建时间 + + 对应金蝶,物料信息 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 2a468b9f..f8cc56be 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1963,6 +1963,13 @@ + + + erp:单据查询-分步式调入单 + + + + erp:单据查询-出库单 @@ -2956,6 +2963,13 @@ + + + erp:单据查询-分步式调入单 + + + + erp:单据查询-物料 diff --git a/src/WMS.Web.Core/Dto/Erp/ErptTransferinDto.cs b/src/WMS.Web.Core/Dto/Erp/ErptTransferinDto.cs new file mode 100644 index 00000000..224a2716 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/ErptTransferinDto.cs @@ -0,0 +1,51 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + /// + /// erp:分步式调入单-响应对象 + /// + public class ErptTransferinDto + { + /// + /// 单据编号 + /// + public string BillNo { get; set; } + /// + /// 库存组织 + /// + public int StockOrgId { get; set; } + + /// + /// 物料ID + /// + public int MaterialId { get; set; } + + /// + /// 调入仓库ID + /// + public int DestStockId { get; set; } + + /// + /// 调入仓库code + /// + public string DestStockCode { get; set; } + + /// + /// 调入数量 + /// + public decimal Qty { get; set; } + + /// + /// 明细备注 + /// + public string Remark { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 304ec8dd..7f48e179 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -41,6 +41,13 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForTransferDirect(List sourceBillNos = null); + /// + /// erp:单据查询-分步式调入单 + /// + /// + /// + Task> BillQueryForTransferin(List sourceBillNos = null); + /// /// erp:单据查询-出库单 /// diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 22ac65b5..cde50a52 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -452,6 +452,108 @@ namespace WMS.Web.Domain.Services.Public } } + /// + /// erp:单据查询-分步式调入单 + /// + /// + /// + public async Task> BillQueryForTransferin(List sourceBillNos = null) + { + try + { + + var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId); + if (stocks.Count == 0) + return ResultList.ReFailure(ResultCodes.ErpStockNoData); + var stocks_codes = stocks.Select(x => x.Code).ToList(); + + + //1.先登录金蝶-拿到token + var token_result = await this.Init(); + if (!token_result.IsSuccess) + return ResultList.ReFailure(token_result); + + //2.时间条件:可能还有其它条件 + var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00"); + var endTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + //3.获取金蝶分步式入库订单:拼接参数和条件 + var query = new ErpBillQueryDto(token_result.Data); + var param = new ErpBillQueryParamDto(FormIdParam.STK_TRANSFERIN.ToString()); + param.FieldKeys = "FBillNo,FStockOrgID,FMaterialID,FDestStockID,FDestStockID.FNumber,FQty,FCreateDate,FEntryNote"; + param.Limit = 10000; + //查询条件:备注其中的条件值以金蝶的值为准!!! + //1.创建时间在两天前和当天时间之间 + //2.审核状态:已审核 + //3.单据类型:标准分步式调入单;这里要注意了-----------测试端的“单据类型ID”和线上的可能不一样;上线的时候要核对下 + //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 + param.FilterString = " FDocumentStatus='C' and FBillTypeID='e65a4f29743a44b7b67dc8145e1f9c92'";// + param.FilterString = param.FilterString + " and FDestStockID.FNumber in ("; + + var str = ""; + int index = 0; + foreach (var scode in stocks_codes) + { + index++; + if (index == stocks_codes.Count) + str = str + $"'{scode}'"; + else + str = str + $"'{scode}'" + ","; + } + param.FilterString = param.FilterString + str + ")"; + + //根据原订单号查询 + if (sourceBillNos != null && sourceBillNos.Count() > 0) + { + param.FilterString = param.FilterString + " and FBillNo in ("; + + var bill_str = ""; + int bill_index = 0; + //var srt_b = JsonConvert.SerializeObject(sourceBillNos); + foreach (var bill in sourceBillNos) + { + bill_index++; + if (bill_index == sourceBillNos.Count) + bill_str = bill_str + $"'{bill}'"; + else + bill_str = bill_str + $"'{bill}'" + ","; + } + param.FilterString = param.FilterString + bill_str + ")"; + }//注意:当有单据编号的查询的时候,时间条件去掉;不然就查不到数据了 + else + { + param.FilterString = param.FilterString + " and FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "'"; + } + + query.Data = JsonConvert.SerializeObject(param); + var json = JsonConvert.SerializeObject(query); + + //4.请求查询接口 + var result_json = await _client.ExecuteBillQueryAsync(json); + var result = JsonConvert.DeserializeObject>>(result_json); + + //5.返回数据的组装 + var erp_list = new List(); + foreach (var item in result) + { + var lis = new ErptTransferinDto(); + lis.BillNo = item[0]; + lis.StockOrgId = Convert.ToInt32(item[1]); + lis.MaterialId = Convert.ToInt32(item[2]); + lis.DestStockId = Convert.ToInt32(item[3]); + lis.DestStockCode = item[4]; + lis.Qty = Convert.ToDecimal(item[5]); + lis.CreateTime = Convert.ToDateTime(item[6]); + lis.Remark = item[7]; + erp_list.Add(lis); + } + return ResultList.ReSuccess(erp_list); + } + catch (Exception ex) + { + return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error); + } + } + /// /// erp:单据查询-物料 ///