diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 729d875a..80d0cf7a 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -54,7 +54,8 @@ namespace WMS.Web.Api.Controllers [Route("tf")] public async Task TestTF() { - var result = await this._erpService.BillQueryForOrg(); + //var result = await this._erpService.BillQueryForOrg(); + var result = await this._erpService.BillQueryForBillType(); if (!result.IsSuccess) return ""; return JsonConvert.SerializeObject(result.Data); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 350faf9c..f9103f2e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -550,6 +550,56 @@ 表单所在的子系统内码,字符串类型(非必录) + + + erp:其他入库单 + + + + + id + + + + + 单据编号 + + + + + 库存组织 + + + + + 物料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 835ab409..48ac777c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1755,6 +1755,13 @@ + + + erp:单据查询-其他入库单 + + + + erp:单据查询-出库单 @@ -2698,6 +2705,12 @@ + + + 查单据类型的值 + + + erp:单据查询-采购入库单 @@ -2706,6 +2719,13 @@ 单据编号集合精确查找 + + + erp:单据查询-其他入库单 + + + + erp:单据查询-物料 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpBaseDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpBaseDto.cs new file mode 100644 index 00000000..b8f201fd --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/ErpBaseDto.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + public class ErpBaseDto + { + public string Id { get; set; } + + public string Number { get; set; } + + public string Name { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/Erp/ErpMiscellaneousDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpMiscellaneousDto.cs new file mode 100644 index 00000000..e52f6d38 --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/ErpMiscellaneousDto.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp +{ + /// + /// erp:其他入库单 + /// + public class ErpMiscellaneousDto + { + /// + /// id + /// + public int Id { get; set; } + /// + /// 单据编号 + /// + public string BillNo { get; set; } + /// + /// 库存组织 + /// + public int StockOrgId { get; set; } + /// + /// 物料ID + /// + public int MaterialId { get; set; } + + /// + /// 收货仓库ID + /// + public int StockId { get; set; } + + /// + /// 收货仓库-code + /// + public string StockCode { get; set; } + + /// + /// 实收数量 + /// + public decimal Qty { get; set; } + + /// + /// 创建时间 + /// + public DateTime CreateTime { get; set; } + + /// + /// 备注 + /// + public string Remark { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 7453f060..aefc21d3 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -15,11 +15,25 @@ namespace WMS.Web.Domain.IService.Public { public interface IErpService { + /// + /// 查单据类型的值 + /// + /// + Task> BillQueryForBillType(); + /// /// erp:单据查询-采购入库单 /// /// Task> BillQueryForPurchaseInStock(List sourceBillNos = null); + + /// + /// erp:单据查询-其他入库单 + /// + /// + /// + Task> BillQueryForMiscellaneous(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 3f4bb62b..4d3ec62a 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -86,6 +86,54 @@ namespace WMS.Web.Domain.Services.Public } } + /// + /// 查单据类型的值 + /// + /// + public async Task> BillQueryForBillType() + { + try + { + //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("BOS_BillType"); + param.FieldKeys = "FBILLTYPEID,FNumber,FName"; + param.Limit = 10000; + param.FilterString = ""; + 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 ErpBaseDto(); + lis.Id = item[0]; + lis.Number = item[1]; + lis.Name =item[2]; + + erp_list.Add(lis); + } + return ResultList.ReSuccess(erp_list); + } + catch (Exception ex) + { + return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error); + } + } + /// /// erp:单据查询-采购入库单 /// @@ -199,6 +247,109 @@ namespace WMS.Web.Domain.Services.Public } } + /// + /// erp:单据查询-其他入库单 + /// + /// + /// + public async Task> BillQueryForMiscellaneous(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_MISCELLANEOUS.ToString()); + param.FieldKeys = "FID,FBillNo,FStockOrgId,FMATERIALID,FSTOCKID,FSTOCKID.FNumber,FQty,FCreateDate,FEntryNote"; + param.Limit = 10; + //查询条件:备注其中的条件值以金蝶的值为准!!! + //1.创建时间在两天前和当天时间之间 + //2.审核状态:已审核 + //3.单据类型:标准其他入库单;这里要注意了-----------测试端的“单据类型ID”和线上的可能不一样;上线的时候要核对下 + //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 + param.FilterString = " FDocumentStatus='C' and FBillTypeID='d772ead981e748d69dda1caac7583f8c'";// + param.FilterString = param.FilterString + " and FSTOCKID.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 ErpMiscellaneousDto(); + lis.Id = Convert.ToInt32(item[0]); + lis.BillNo =item[1]; + lis.StockOrgId = Convert.ToInt32(item[2]); + lis.MaterialId = Convert.ToInt32(item[3]); + lis.StockId = Convert.ToInt32(item[4]); + lis.StockCode = item[5]; + lis.Qty = Convert.ToDecimal(item[6]); + lis.CreateTime = Convert.ToDateTime(item[7]); + lis.Remark = item[8]; + erp_list.Add(lis); + } + return ResultList.ReSuccess(erp_list); + } + catch (Exception ex) + { + return ResultList.ReFailure(ResultCodes.Erp_BillQuery_Error); + } + } + /// /// erp:单据查询-物料 ///