From 4dc1d364c7f7225e1db45b98b4c67f0fdb3003df Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Sat, 11 Nov 2023 14:57:44 +0800
Subject: [PATCH] =?UTF-8?q?erp-=E7=9B=B4=E6=8E=A5=E8=B0=83=E6=8B=A8?=
=?UTF-8?q?=E5=85=A5=E5=BA=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 45 ++++++++
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 14 +++
.../Dto/Erp/ErpTransferDirectDto.cs | 45 ++++++++
.../IService/Public/IErpService.cs | 7 ++
.../Services/Public/ErpService.cs | 102 ++++++++++++++++++
5 files changed, 213 insertions(+)
create mode 100644 src/WMS.Web.Core/Dto/Erp/ErpTransferDirectDto.cs
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index 82f4f3d0..d7acba93 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -650,6 +650,51 @@
单据体
+
+
+ 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 8cb02ff6..e4ddb38e 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -1882,6 +1882,13 @@
+
+
+ erp:单据查询-直接调拨入库单
+
+
+
+
erp:单据查询-出库单
@@ -2868,6 +2875,13 @@
+
+
+ erp:单据查询-直接调拨入库单
+
+
+
+
erp:单据查询-物料
diff --git a/src/WMS.Web.Core/Dto/Erp/ErpTransferDirectDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpTransferDirectDto.cs
new file mode 100644
index 00000000..bb4758d9
--- /dev/null
+++ b/src/WMS.Web.Core/Dto/Erp/ErpTransferDirectDto.cs
@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace WMS.Web.Core.Dto.Erp
+{
+ ///
+ /// erp:直接调拨单-入库
+ ///
+ public class ErpTransferDirectDto
+ {
+ ///
+ /// 编号
+ ///
+ public string BillNo { get; set; }
+ ///
+ /// 调入库存组织
+ ///
+ public int StockOrgId { get; set; }
+ ///
+ /// 物料ID
+ ///
+ public int MaterialId { get; set; }
+ ///
+ /// 调入仓库ID
+ ///
+ public int DestStockId { get; set; }
+ ///
+ /// 调入仓库编码
+ ///
+ public string DestStockCode { 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 b409782e..304ec8dd 100644
--- a/src/WMS.Web.Domain/IService/Public/IErpService.cs
+++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs
@@ -34,6 +34,13 @@ namespace WMS.Web.Domain.IService.Public
///
Task> BillQueryForMiscellaneous(List sourceBillNos = null);
+ ///
+ /// erp:单据查询-直接调拨入库单
+ ///
+ ///
+ ///
+ Task> BillQueryForTransferDirect(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 fe4f3172..22ac65b5 100644
--- a/src/WMS.Web.Domain/Services/Public/ErpService.cs
+++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs
@@ -350,6 +350,108 @@ namespace WMS.Web.Domain.Services.Public
}
}
+ ///
+ /// erp:单据查询-直接调拨入库单
+ ///
+ ///
+ ///
+ public async Task> BillQueryForTransferDirect(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_TransferDirect.ToString());
+ param.FieldKeys = "FBillNo,FStockOrgId,FMaterialId,FDestStockId,FDestStockId.FNumber,FQty,FCreateDate,FNoteEntry";
+ param.Limit = 10000;
+ //查询条件:备注其中的条件值以金蝶的值为准!!!
+ //1.创建时间在两天前和当天时间之间
+ //2.审核状态:已审核
+ //3.单据类型:标准直接调拨单;这里要注意了-----------测试端的“单据类型ID”和线上的可能不一样;上线的时候要核对下
+ //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
+ param.FilterString = " FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a'";//
+ 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 ErpTransferDirectDto();
+ 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:单据查询-物料
///