diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 699ca056..1e56312d 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 47be0737..bd2fb0cb 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -73,8 +73,8 @@ namespace WMS.Web.Api.Controllers //var entity=await _takeStockRepositories.GetEntityList(new List() {2 }); //var r= await _takeStockService.Loss_Profit(entity.First()); //var list = await GetList(); - List<(string materialNumber, string orgCode, string stockCode)> request = new List<(string materialNumber, string orgCode, string stockCode)>(); - request.Add(("G01-17-556547", "101", "CK003")); + List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request = new List<(string materialNumber, string orgCode, string stockCode, int subStockId)>(); + request.Add(("G01-17-556547", "101", "CK003",0)); var c = await _erpService.BillQueryForInventory(request); //var c = await _erpService.BillQueryForAssembledAppOutStock_Assembly(new List() { "ZZCX003061" }, DateTime.Now.AddDays(-10)); //var bc2 = await _erpService.BillQueryForDeliveryNoticeOutStock(new List() { "FHTZD8022232" }, DateTime.Now.AddDays(-10)); diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 3226729c..fd37ddf8 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -760,6 +760,11 @@ 仓库 + + + 子仓库(跟金蝶交互字段) + + 数量 @@ -1268,7 +1273,7 @@ - 库存状态 KCZT001 + 库存状态 KCZT01_SYS diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 24bee8a0..68d87d3c 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3095,7 +3095,7 @@ - + 及时库存 diff --git a/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs b/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs index 147be53d..39a786f7 100644 --- a/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/ErpInventoryDto.cs @@ -19,6 +19,10 @@ namespace WMS.Web.Core.Dto.Erp /// public string StockCode { get; set; } /// + /// 子仓库(跟金蝶交互字段) + /// + public int Erp_SubStockId { get; set; } + /// /// 数量 /// public decimal Qty { get; set; } diff --git a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs index 0019ee79..9182a286 100644 --- a/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs +++ b/src/WMS.Web.Core/Dto/Erp/TakeStock/ErpTakeStockSaveDto.cs @@ -65,10 +65,10 @@ namespace WMS.Web.Core.Dto.Erp.TakeStock public class ErpTakeStockDetailsSaveDto { /// - /// 库存状态 KCZT001 + /// 库存状态 KCZT01_SYS /// [JsonProperty("FStockStatusId")] - public ErpNumberDto FStockStatusId { get; set; } = new ErpNumberDto("KCZT001"); + public ErpNumberDto FStockStatusId { get; set; } = new ErpNumberDto("KCZT01_SYS"); /// /// 货主类型: 默认为业务组织 BD_OwnerOrg /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index 9ed3952f..1d60d8bf 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -147,7 +147,7 @@ namespace WMS.Web.Domain.IService.Public /// 及时库存 /// /// - Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request); + Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode, int subStockId)> request); //同步数据(保存提交审核) Task> Save(T dto, string formId); //提交 diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index 5314be50..8433ab8e 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -2133,7 +2133,7 @@ namespace WMS.Web.Domain.Services.Public } } - public async Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode)> request) + public async Task> BillQueryForInventory(List<(string materialNumber, string orgCode, string stockCode,int subStockId)> request) { try { @@ -2146,16 +2146,22 @@ namespace WMS.Web.Domain.Services.Public //3.获取金蝶采购订单:拼接参数和条件 var query = new ErpBillQueryDto(token_result.Data); var param = new ErpBillQueryParamDto(FormIdParam.STK_Inventory.ToString()); - param.FieldKeys = "FBASEQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber"; + param.FieldKeys = "FBASEQTY,FMATERIALID.FNumber,FSTOCKORGID.FNumber,FSTOCKID.FNumber,FSTOCKLOCID"; param.Limit = 100; //param.FilterString = $"FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}'"; - //param.FilterString = $"FMATERIALID.FNumber='G01-17-556547'"; + //param.FilterString = $""; for (int i = 0; i < request.Count(); i++) { if (i == 0) - param.FilterString = $"(FMATERIALID.FNumber='{request[0].materialNumber}' and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}')"; + { + param.FilterString = $"(FMATERIALID.FNumber='{request[0].materialNumber}' and FSTOCKORGID.FNumber='{request[0].orgCode}' and FSTOCKID.FNumber='{request[0].stockCode}'"; + param.FilterString += request[0].subStockId == 0 ? ")" : $" and FSTOCKLOCID={request[0].subStockId})"; + } else - param.FilterString += $" or (FMATERIALID.FNumber='{request[i].materialNumber}' and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}')"; + { + param.FilterString += $" or (FMATERIALID.FNumber='{request[i].materialNumber}' and FSTOCKORGID.FNumber='{request[i].orgCode}' and FSTOCKID.FNumber='{request[i].stockCode}'"; + param.FilterString += request[i].subStockId == 0 ? ")" : $" and FSTOCKLOCID={request[i].subStockId})"; + } } query.Data = JsonConvert.SerializeObject(param); var json = JsonConvert.SerializeObject(query); @@ -2178,6 +2184,7 @@ namespace WMS.Web.Domain.Services.Public lis.MaterialNumber = item[1]; lis.OrgCode = item[2]; lis.StockCode = item[3]; + lis.Erp_SubStockId =Convert.ToInt32(item[4]); erp_list.Add(lis); } else diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 74e46b4d..cefe83d7 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -204,10 +204,12 @@ namespace WMS.Web.Domain.Services if (!materials_result.IsSuccess) return Result.ReFailure(ResultCodes.ErpMaterialError); var materials = materials_result.Data.ToList(); - List<(string materialNumber, string orgCode, string stockCode)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode)>(); + var subs = await _erpService.BillQueryForSubStock(); + List<(string materialNumber, string orgCode, string stockCode, int subStockId)> requestInventory = new List<(string materialNumber, string orgCode, string stockCode, int subStockId)>(); foreach (var d in entity.Details) { - requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode)); + int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; + requestInventory.Add((_erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId), d.OrgCode, d.StockCode, subStockId)); }; var res_s = await sc_erpService.BillQueryForInventory(requestInventory); if (!res_s.IsSuccess) @@ -221,8 +223,10 @@ namespace WMS.Web.Domain.Services List detils = new List(); foreach (var d in entity.Details) { + int subStockId = subs.Data.FirstOrDefault(w => w.OrgCode.Equals(d.OrgCode) && w.StockCode.Equals(d.Erp_SubStockCode))?.Id ?? 0; var number = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); - var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode && f.OrgCode == d.OrgCode); + var erpInventory = res_s.Data.FirstOrDefault(f => f.MaterialNumber == number && f.StockCode == d.StockCode + && f.OrgCode == d.OrgCode && f.Erp_SubStockId == subStockId); decimal qty = erpInventory?.Qty ?? 0; var unitNumber = _erpBasicDataExtendService.GetMaterialUnitNumber(materials, d.MaterialId); detils.Add(new ErpTakeStockDetailsSaveDto()