From 5dea7f49b411c9164fb4afbff79561591fa0a0cf Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Fri, 24 Nov 2023 15:31:59 +0800 Subject: [PATCH] =?UTF-8?q?erp=E6=95=B0=E6=8D=AE=E6=9D=A1=E4=BB=B6?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 2 +- .../Services/Public/ErpService.cs | 149 +++++++++--------- 2 files changed, 74 insertions(+), 77 deletions(-) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 051736fe..9c1d7bca 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -978,7 +978,7 @@ 操作时间 - + 创建 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index ca984e6f..2c8ed572 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -148,8 +148,9 @@ namespace WMS.Web.Domain.Services.Public 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(); - + //var stocks_codes = stocks.Select(x => x.Code).ToList(); + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -171,19 +172,19 @@ namespace WMS.Web.Domain.Services.Public //4.明细关闭状态:正常 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 param.FilterString = " FDocumentStatus='C' and (FBillTypeID='83d822ca3e374b4ab01e5dd46a0062bd' or FBillTypeID='6d01d059713d42a28bb976c90a121142') and FMRPCloseStatus='A'"; - param.FilterString = param.FilterString + " and FSOSTOCKID.FNumber in ("; - var str = ""; - int index = 0; - foreach (var scode in stocks_codes) + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FSOSTOCKID.FNumber='{stocks[i].Code}' and FPurchaseOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FSOSTOCKID.FNumber='{stocks[i].Code}' and FPurchaseOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -256,8 +257,8 @@ namespace WMS.Web.Domain.Services.Public 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(); - + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -277,20 +278,19 @@ namespace WMS.Web.Domain.Services.Public //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) + param.FilterString = " FDocumentStatus='C' and FBillTypeID='d772ead981e748d69dda1caac7583f8c'"; + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FSTOCKID.FNumber='{stocks[i].Code}' and FStockOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FSTOCKID.FNumber='{stocks[i].Code}' and FStockOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -360,8 +360,8 @@ namespace WMS.Web.Domain.Services.Public 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(); - + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -381,20 +381,20 @@ namespace WMS.Web.Domain.Services.Public //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) + param.FilterString = " FDocumentStatus='C' and FBillTypeID='ce8f49055c5c4782b65463a3f863bb4a'"; + + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FDestStockId.FNumber='{stocks[i].Code}' and FStockOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FDestStockId.FNumber='{stocks[i].Code}' and FStockOrgId.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -464,8 +464,8 @@ namespace WMS.Web.Domain.Services.Public 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(); - + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -485,20 +485,19 @@ namespace WMS.Web.Domain.Services.Public //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) + param.FilterString = " FDocumentStatus='C' and FBillTypeID='e65a4f29743a44b7b67dc8145e1f9c92'"; + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FDestStockID.FNumber='{stocks[i].Code}' and FStockOrgID.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FDestStockID.FNumber='{stocks[i].Code}' and FStockOrgID.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -568,8 +567,8 @@ namespace WMS.Web.Domain.Services.Public 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(); - + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -590,20 +589,19 @@ namespace WMS.Web.Domain.Services.Public //3.单据类型:标准组织拆卸单;备注:这里的单据类型只有一个,所以就不需要判断了 //4.事务类型:1为组装,2为拆卸 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 - param.FilterString = " FDocumentStatus='C' and FAffairType='Assembly'";// - param.FilterString = param.FilterString + " and FStockID.FNumber in ("; - - var str = ""; - int index = 0; - foreach (var scode in stocks_codes) + param.FilterString = " FDocumentStatus='C' and FAffairType='Assembly'"; + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FStockID.FNumber='{stocks[i].Code}' and FOwnerIdHead.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FStockID.FNumber='{stocks[i].Code}' and FOwnerIdHead.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0) @@ -673,8 +671,8 @@ namespace WMS.Web.Domain.Services.Public 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(); - + var stocks_codes = string.Join(",", stocks.Select(x => $"'{x.Code}'")); + var stocks_orgs = string.Join(",", stocks.Select(x => $"'{x.ErpOrgCode}'")); //1.先登录金蝶-拿到token var token_result = await this.Init(); @@ -695,20 +693,19 @@ namespace WMS.Web.Domain.Services.Public //3.单据类型:标准组织拆卸单;备注:这里的单据类型只有一个,所以就不需要判断了 //4.事务类型:1为组装,2为拆卸 //5.仓库:wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步 - param.FilterString = " FDocumentStatus='C' and FAffairType='Dassembly'";// - param.FilterString = param.FilterString + " and FStockIDSETY.FNumber in ("; - - var str = ""; - int index = 0; - foreach (var scode in stocks_codes) + param.FilterString = " FDocumentStatus='C' and FAffairType='Dassembly'"; + for (int i = 0; i < stocks.Count(); i++) { - index++; - if (index == stocks_codes.Count) - str = str + $"'{scode}'"; + if (i == 0) + { + param.FilterString += " and ("; + param.FilterString += $"(FStockIDSETY.FNumber='{stocks[i].Code}' and FSubProOwnerIdH.FNumber='{stocks[i].ErpOrgCode}')"; + } else - str = str + $"'{scode}'" + ","; + param.FilterString += $" or (FStockIDSETY.FNumber='{stocks[i].Code}' and FSubProOwnerIdH.FNumber='{stocks[i].ErpOrgCode}')"; + if (i == stocks.Count() - 1) param.FilterString += ")"; + } - param.FilterString = param.FilterString + str + ")"; //根据原订单号查询 if (sourceBillNos != null && sourceBillNos.Count() > 0)