From 7aa5c14458a61995f4286925e0f697b0957d110e Mon Sep 17 00:00:00 2001 From: 18923810322 <1666941798@qq.com> Date: Thu, 30 Jul 2026 17:35:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=86=E5=85=A5=E5=BA=93?= =?UTF-8?q?=E7=9A=84=E6=97=B6=E5=80=99=E6=9A=82=E5=AD=98=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 | Bin 279313 -> 279313 bytes src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 23 +++++++++++ src/WMS.Web.Core/Dto/Erp/Stock/ErpOrgDto.cs | 28 +++++++++++++ .../Dto/InStockTask/InStockTaskBoxInfoDto.cs | 1 + .../OutStockTaskInfoDetailsResponse.cs | 2 +- src/WMS.Web.Core/WMS.Web.Core.csproj | 4 ++ .../Entitys/uc_warehouse_position.cs | 39 ++++++++++++++++++ .../Public/IErpBasicDataExtendService.cs | 9 ++++ .../IService/Public/IErpService.cs | 1 + .../Infrastructure/IBoxRepositories.cs | 4 ++ src/WMS.Web.Domain/Services/InStockService.cs | 7 ++++ .../Services/OutStockTaskService.cs | 16 ++++++- .../Public/ErpBasicDataExtendService.cs | 14 +++++++ src/WMS.Web.Repositories/BoxRepositories.cs | 20 ++++++++- .../Configuration/RepositoryDbContext.cs | 2 + .../InStockTaskRepositories.cs | 12 +++++- 16 files changed, 177 insertions(+), 5 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/Erp/Stock/ErpOrgDto.cs create mode 100644 src/WMS.Web.Domain/Entitys/uc_warehouse_position.cs diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index df6a847b3f5af32aa92fd2645a49e2ac693018a0..ebbc33b0c38da306611947d8309730d7aa566b84 100644 GIT binary patch delta 3185 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 + + + 老ops箱信息头 + + + + + Id + + + + + 编码 + + + + + 名称 + + 列表字段导出接口 @@ -3044,6 +3064,9 @@ 查询实体集合 + + 查询实体集合 + 定时任务最新一次时间管理 diff --git a/src/WMS.Web.Core/Dto/Erp/Stock/ErpOrgDto.cs b/src/WMS.Web.Core/Dto/Erp/Stock/ErpOrgDto.cs new file mode 100644 index 00000000..d1ab7e0d --- /dev/null +++ b/src/WMS.Web.Core/Dto/Erp/Stock/ErpOrgDto.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.Erp.Org +{ + /// + /// 金蝶组织-基本信息 + /// + public class uc_warehouse_position + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 编码 + /// + public string position_code { get; set; } + + + /// + /// 名称 + /// + public string position { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs index 43e6312f..d94d19bb 100644 --- a/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs +++ b/src/WMS.Web.Core/Dto/InStockTask/InStockTaskBoxInfoDto.cs @@ -76,6 +76,7 @@ namespace WMS.Web.Core.Dto.InStockTask /// 入库数量 /// public decimal RealityQty { get; set; } + public string shelfSpaceCode { get; set; } /// /// 入库仓位 /// diff --git a/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs index e94fed8c..f433e0f4 100644 --- a/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs +++ b/src/WMS.Web.Core/Dto/OutStockTask/OutStockTaskInfoDetailsResponse.cs @@ -87,7 +87,7 @@ namespace WMS.Web.Core.Dto.OutStockTask public int OutStockBoxDetailsId { get; set; } = 0; public int MaterialCount { get; set; } = 0; - + public string position_code { get; set; } public string position { get; set; } } diff --git a/src/WMS.Web.Core/WMS.Web.Core.csproj b/src/WMS.Web.Core/WMS.Web.Core.csproj index 7ed5131a..8d3543d6 100644 --- a/src/WMS.Web.Core/WMS.Web.Core.csproj +++ b/src/WMS.Web.Core/WMS.Web.Core.csproj @@ -10,6 +10,10 @@ ../WMS.Web.Api/wwwroot/WMS.Web.Core.xml + + + + diff --git a/src/WMS.Web.Domain/Entitys/uc_warehouse_position.cs b/src/WMS.Web.Domain/Entitys/uc_warehouse_position.cs new file mode 100644 index 00000000..0e81fdd5 --- /dev/null +++ b/src/WMS.Web.Domain/Entitys/uc_warehouse_position.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Text; +using WMS.Web.Core; +using WMS.Web.Core.Help; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Values; + +namespace WMS.Web.Domain.Entitys +{ + /// + /// 老ops箱信息头 + /// + + [Serializable] + [Table("uc_warehouse_position")] + public class uc_warehouse_position : EntityBase + { + /// + /// Id + /// + public int Id { get; set; } + + /// + /// 编码 + /// + public string position_code { get; set; } + + + /// + /// 名称 + /// + public string position { get; set; } + + + } +} diff --git a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs index b51b75e5..dbdeb0dc 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpBasicDataExtendService.cs @@ -155,6 +155,15 @@ namespace WMS.Web.Domain.IService.Public /// string GetOrgName(List erpOrgs, string orgCode); + + /// + /// 获取仓位编码 + /// + /// + /// + /// + // string GetPositionName(List positons, string postionCode); + /// /// 获取组织ID /// diff --git a/src/WMS.Web.Domain/IService/Public/IErpService.cs b/src/WMS.Web.Domain/IService/Public/IErpService.cs index cd69d631..b5895ab7 100644 --- a/src/WMS.Web.Domain/IService/Public/IErpService.cs +++ b/src/WMS.Web.Domain/IService/Public/IErpService.cs @@ -176,6 +176,7 @@ namespace WMS.Web.Domain.IService.Public /// Task> BillQueryForOrg(); + //Task> BillQueryForPosi(); /// /// 供应商 /// diff --git a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs index 2b1575e5..4f8fcd94 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBoxRepositories.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Domain.Entitys; namespace WMS.Web.Domain.Infrastructure @@ -32,6 +33,9 @@ namespace WMS.Web.Domain.Infrastructure /// 查询实体集合 Task> GetEntityList(List ids); + /// 查询实体集合 + Task> Getuc_warehouse_position(); + Task> GetEntityListByNos(List billNos); } } diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index b7ab41be..deb232c5 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -990,6 +990,11 @@ namespace WMS.Web.Domain.Services currentDet = details.Where(x => x.DetailId == det.ErpInStockDetailId.Value.ToString()).FirstOrDefault(); if (currentDet != null) { + //加了这里yzh20260730 + if(currentDet.DocumentStatus=="Z") + { + currentDet.Qty = det.Qty; + } var res = await this.QueryFirst(currentDet, erpDto.TargetFormId, entity.BillNo, det, sc_erpService); if (res.result.IsSuccess) entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); @@ -1328,8 +1333,10 @@ namespace WMS.Web.Domain.Services ErpOperateDto o_dto = new ErpOperateDto(formId, currentDet.OrderBillNo);//res_s.Data if (currentDet.DocumentStatus == ErpOrderStatus.Z.ToString()) { + //保存 _logger.LogInformation($"入库单->查询到已有暂存的入库单 开始保存 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 数据: {JsonConvert.SerializeObject(purchaseInstock)}"); + var res_s = await sc_erpService.Save(purchaseInstock, formId); if (!res_s.IsSuccess) { diff --git a/src/WMS.Web.Domain/Services/OutStockTaskService.cs b/src/WMS.Web.Domain/Services/OutStockTaskService.cs index 226185ea..152183e0 100644 --- a/src/WMS.Web.Domain/Services/OutStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/OutStockTaskService.cs @@ -612,6 +612,15 @@ namespace WMS.Web.Domain.Services if (org_result.IsSuccess) orgs = org_result.Data.ToList(); + + + //取仓位 + var postionList = await _boxRepositories.Getuc_warehouse_position(); + //List posi = new List(); + //if (postionList.Count>0) + // posi = postionList.ToList(); + + //取客户 var customer_result = await _erpService.BillQueryForCustomer(); List customers = new List(); @@ -640,11 +649,15 @@ namespace WMS.Web.Domain.Services var details = outStockList.SelectMany(s => s.Details).ToList(); var boxDetails = outStockList.SelectMany(s => s.Details).SelectMany(s => s.BoxsDetails).ToList(); var boxList = await _boxRepositories.GetEntityList(boxDetails.Select(s => s.BoxId).ToList()); + foreach (var b in boxDetails) { var detail = details.FirstOrDefault(f => f.Id == b.DetailId); var outStock = outStockList.FirstOrDefault(f => f.Id == detail.Fid); var m = materials.FirstOrDefault(f => f.MaterialNumber.Equals(detail.MaterialNumber)); + //var postionList = await _boxRepositories.Getuc_warehouse_position(boxDetails.Select(s => s.SubStockCode).ToList()); + + OutStockTaskInfoDetailsResponse infoDetail = new OutStockTaskInfoDetailsResponse() { BoxBillNo = boxList.FirstOrDefault(f => f.Id == b.BoxId)?.BoxBillNo ?? "", @@ -655,7 +668,8 @@ namespace WMS.Web.Domain.Services BoxHigh = b.BoxHigh, BoxWeight = b.BoxWeight, Qty = b.Qty, - position=b.SubStockCode, + position_code = b.SubStockCode, + position = postionList.FirstOrDefault(f=>f.position_code==b.SubStockCode)?.position??"", SerialNumbers = string.Join(",", b.SerialNumbers), SerialNumberList = b.SerialNumbers, Method = outStock.Method.GetRemark(), diff --git a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs index 23369459..84c74d25 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpBasicDataExtendService.cs @@ -407,6 +407,20 @@ namespace WMS.Web.Domain.Services.Public return org == null ? "" : org.Name; } + ///// + ///// 获取仓位名称 + ///// + ///// + ///// + ///// + //public string GetPositionName(List positons, string postionCode) + //{ + // if (positons == null || positons.Count == 0) + // return ""; + // var posi = positons.Where(x => x.position_code == postionCode).FirstOrDefault(); + // return posi == null ? "" : posi.position; + //} + /// /// 获取组织id /// diff --git a/src/WMS.Web.Repositories/BoxRepositories.cs b/src/WMS.Web.Repositories/BoxRepositories.cs index ec3206a2..7bf2249c 100644 --- a/src/WMS.Web.Repositories/BoxRepositories.cs +++ b/src/WMS.Web.Repositories/BoxRepositories.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Core.Help; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; @@ -208,6 +209,23 @@ namespace WMS.Web.Repositories return res.Clone(); } - + + + /// + /// 获取对应仓位 + /// + /// + /// + public async Task> Getuc_warehouse_position() + { + var res = await _context.uc_warehouse_position + //.Where(f => postion_codes.Contains(f.position_code)) + .ToListAsync(); + + return res.Clone(); + } + + + } } diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index ae30d442..63df497f 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -8,6 +8,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.Json; +using WMS.Web.Core.Dto.Erp.Org; using WMS.Web.Domain.Entitys; using WMS.Web.Repositories.Configuration.Log; @@ -470,6 +471,7 @@ namespace WMS.Web.Repositories.Configuration public DbSet InventoryInOutDetails { get; set; } public DbSet Box { get; set; } + public DbSet uc_warehouse_position { get; set; } public DbSet BoxDetails { get; set; } public DbSet SubscribeNotification { get; set; } } diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs index b781b8d1..9c6d6321 100644 --- a/src/WMS.Web.Repositories/InStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -38,7 +38,7 @@ namespace WMS.Web.Repositories private readonly ILoginRepositories _loginRepositories; private readonly IErpService _erpService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; - + private IBoxRepositories _boxRepositories; public InStockTaskRepositories(RepositoryDbContext context, IMapper mapper, @@ -47,6 +47,7 @@ namespace WMS.Web.Repositories IServiceProvider serviceProvider, ISingleDataService singleDataService, ILoginRepositories loginRepositories, + IBoxRepositories boxRepositories, IErpBasicDataExtendService erpBasicDataExtendService) { _context = context; @@ -56,7 +57,9 @@ namespace WMS.Web.Repositories _serviceProvider = serviceProvider; _singleDataService = singleDataService; _loginRepositories = loginRepositories; + _boxRepositories = boxRepositories; _erpBasicDataExtendService = erpBasicDataExtendService; + } /// @@ -137,6 +140,10 @@ namespace WMS.Web.Repositories public async Task GetInfo(int id, int companyId) { + + //取仓位 + var postionList = await _boxRepositories.Getuc_warehouse_position(); + //1.获取物料集合和组织集合和供应商的集合 var materials = new List(); var materials_result = await _erpService.BillQueryForMaterial(); @@ -197,7 +204,8 @@ namespace WMS.Web.Repositories RealityQty = x.detail.Qty, ReceiveQty = x.detail.Qty, ShelfTime = x.order.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), - shelfSpace=x.order.SubStockCode, + shelfSpaceCode=x.order.SubStockCode, + shelfSpace = x.order.SubStockCode, Shelfer = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, x.order.CreatorId), Receiver = "", ReceiveTime = "",