diff --git a/Dockerfile b/Dockerfile index f28f0272..8c8ca7a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,14 +5,14 @@ WORKDIR /app # 配置apt的资源,采用阿里云资源仓库 必须是debian 10 buster版本 RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak && \ - echo "deb http://mirrors.aliyun.com/debian/ buster main non-free contrib" >/etc/apt/sources.list && \ - echo "deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib" >>/etc/apt/sources.list && \ - echo "deb http://mirrors.aliyun.com/debian-security buster/updates main" >>/etc/apt/sources.list && \ - echo "deb-src http://mirrors.aliyun.com/debian-security buster/updates main" >>/etc/apt/sources.list && \ - echo "deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && \ - echo "deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && \ - echo "deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list && \ - echo "deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list + echo "deb http://mirrors.cloud.aliyuncs.com/debian/ buster main non-free contrib" >/etc/apt/sources.list && \ + echo "deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster main non-free contrib" >>/etc/apt/sources.list && \ + echo "deb http://mirrors.cloud.aliyuncs.com/debian-security buster/updates main" >>/etc/apt/sources.list && \ + echo "deb-src http://mirrors.cloud.aliyuncs.com/debian-security buster/updates main" >>/etc/apt/sources.list && \ + echo "deb http://mirrors.cloud.aliyuncs.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && \ + echo "deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster-updates main non-free contrib" >>/etc/apt/sources.list && \ + echo "deb http://mirrors.cloud.aliyuncs.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list && \ + echo "deb-src http://mirrors.cloud.aliyuncs.com/debian/ buster-backports main non-free contrib" >>/etc/apt/sources.list #安装apt-get 安装 libc6-dev , libgdiplus 用于支持system.drawing 组件绘制,默认ubuntu命令 RUN apt-get update -qq && apt-get -y install libgdiplus libc6-dev diff --git a/WMS.Web.sln b/WMS.Web.sln index 3865d87d..2f0bf11f 100644 --- a/WMS.Web.sln +++ b/WMS.Web.sln @@ -11,6 +11,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WMS.Web.Domain", "src\WMS.W EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WMS.Web.Repositories", "src\WMS.Web.Repositories\WMS.Web.Repositories.csproj", "{C028C52D-FD52-4710-998C-C3BE120DB61E}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DockerFolder", "DockerFolder", "{E2CA0353-9B67-445E-A944-25744F6C3512}" + ProjectSection(SolutionItems) = preProject + .dockerignore = .dockerignore + .gitignore = .gitignore + Dockerfile = Dockerfile + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/src/WMS.Web.Api/Controllers/TestController.cs b/src/WMS.Web.Api/Controllers/TestController.cs index 781073de..df4ea8c6 100644 --- a/src/WMS.Web.Api/Controllers/TestController.cs +++ b/src/WMS.Web.Api/Controllers/TestController.cs @@ -39,6 +39,7 @@ namespace WMS.Web.Api.Controllers private readonly IOpsService _opsService; private readonly IBoxService _boxService; private readonly IOutStockTaskRepositories _outStockTaskRepositories; + private readonly IOutStockRepositories _outStockRepositories; private readonly IOutStockTaskService _outStockTaskService; private readonly IBoxInventoryRepositories _boxInventoryRepositories; private readonly ITakeStockService _takeStockService; @@ -55,7 +56,7 @@ namespace WMS.Web.Api.Controllers IBasicsRepositories transactionRepositories, IOpsService opsService, IBoxService boxService, IBasicsRepositories basicsRepositories, IMemoryCache memoryCache, IOutStockTaskRepositories outStockTaskRepositories, IOutStockTaskService outStockTaskService, IOptions options, ILoginService loginService, ISendMessageService sendMessageService, ITakeStockService takeStockService, ITakeStockRepositories takeStockRepositories, IOutStockService outStockService, IInStockTaskRepositories inStockTaskRepositories, - IWebHostEnvironment env, IMaterialService materialService) + IWebHostEnvironment env, IMaterialService materialService, IOutStockRepositories outStockRepositories) { _memoryCache = memoryCache; _materialService = materialService; @@ -75,6 +76,7 @@ namespace WMS.Web.Api.Controllers _takeStockService = takeStockService; _takeStockRepositories = takeStockRepositories; _outStockService = outStockService; + _outStockRepositories = outStockRepositories; _env = env; } @@ -84,6 +86,10 @@ namespace WMS.Web.Api.Controllers { //var list = await _outStockTaskRepositories.GetEntityList(new List { 14321 }); + await _outStockRepositories.GetEntityListBySerialNumbers(new List() { "131VU-32C5A" }); + //await _outStockRepositories.GetEntityListByBoxBillNos(new List() { "CTN0002187" }); + + //list[0].Details[0].ErpDetails[0].AccruedQty = 2; //list[0].Details[0].ErpDetails.Add(new OutStockTaskErpDetails() //{ diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e88e674f..f8a28270 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -3206,6 +3206,12 @@ 淇敼瀹炰綋闆嗗悎 + + 鏍规嵁鍑哄簱搴忓垪鐮佹悳绱 + + + 鏍规嵁鍑哄簱绠卞彿鎼滅储 + 鎵归噺娣诲姞 diff --git a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs index 308df288..a994bc5a 100644 --- a/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IOutStockRepositories.cs @@ -26,5 +26,10 @@ namespace WMS.Web.Domain.Infrastructure Task GetInfo(int id); //鑾峰彇鍑哄簱鍗曟槑缁 Task> GetDetailsByBoxId(int boxId); + + /// 鏍规嵁鍑哄簱搴忓垪鐮佹悳绱 + Task> GetEntityListBySerialNumbers(List serialNumbers); + /// 鏍规嵁鍑哄簱绠卞彿鎼滅储 + Task> GetEntityListByBoxBillNos(List boxBillNos); } } diff --git a/src/WMS.Web.Repositories/OutStockRepositories.cs b/src/WMS.Web.Repositories/OutStockRepositories.cs index 8e52bf63..bf1e71c5 100644 --- a/src/WMS.Web.Repositories/OutStockRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockRepositories.cs @@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Linq; +using System.Runtime.CompilerServices; using System.Text; using System.Threading.Tasks; using WMS.Web.Core; @@ -373,5 +374,41 @@ namespace WMS.Web.Repositories } return details; } + /// + /// 鏍规嵁搴忓垪鍙锋悳绱 + /// + /// + /// + public Task> GetEntityListBySerialNumbers(List serialNumbers) + { + if (serialNumbers.Count() == 0) Task.FromResult(new List()); + string str = $"select * from t_wms_outstock where Id in (select Fid from t_wms_outstock_details where "; + for (int i = 0; i < serialNumbers.Count(); i++) + { + if (i == 0) + str += $"SerialNumbers like '%\"{serialNumbers[i]}\"%'"; + else + str += $" or SerialNumbers like '%\"{serialNumbers[i]}\"%'"; + } + str += ")"; + var fs = FormattableStringFactory.Create(str); + var list = _context.Set().FromSqlInterpolated(fs).ToList(); + return Task.FromResult(list); + } + /// + /// 鏍规嵁绠卞彿鎼滅储 + /// + /// + /// + public async Task> GetEntityListByBoxBillNos(List boxBillNos) + { + var boxIds = await _context.Box.Where(w => boxBillNos.Contains(w.BoxBillNo)).Select(s => s.Id).ToListAsync(); + if (boxIds.Count() == 0) return new List(); + var res = await _context.OutStock + .Include(s => s.Details).ThenInclude(s => s.BoxsDetails) + .Where(f => f.Details.SelectMany(s=>s.BoxsDetails).Where(wb=> boxIds.Contains(wb.BoxId)).Any()).ToListAsync(); + + return res; + } } } diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index a6680b85..d6d9c144 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -34,9 +34,11 @@ namespace WMS.Web.Repositories private readonly IErpService _erpService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly ILogger _logger; + private readonly IOutStockRepositories _outStockRepositories; public OutStockTaskRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider, ISingleDataService singleDataService, ILoginRepositories loginRepositories, IErpService erpService, - IErpBasicDataExtendService erpBasicDataExtendService, ILogger logger) + IErpBasicDataExtendService erpBasicDataExtendService, ILogger logger, + IOutStockRepositories outStockRepositories) { _context = context; _mapper = mapper; @@ -46,6 +48,8 @@ namespace WMS.Web.Repositories _erpService = erpService; _erpBasicDataExtendService = erpBasicDataExtendService; _logger = logger; + _outStockRepositories = outStockRepositories; + } /// /// 鏂板 @@ -273,6 +277,19 @@ namespace WMS.Web.Repositories if (customer_result.IsSuccess) customers = customer_result.Data.ToList(); + List taskIds = new List(); + //搴忓垪鐮佸嚭搴撳崟 + if (dto.SerialNumbers.Count() > 0) + { + var res = await _outStockRepositories.GetEntityListBySerialNumbers(dto.SerialNumbers); + taskIds.AddRange(res.Select(s => s.TaskId)); + } + //绠卞彿鍙栧嚭搴撳崟 + if (dto.BoxBillNos.Count() > 0) + { + var res = await _outStockRepositories.GetEntityListByBoxBillNos(dto.BoxBillNos); + taskIds.AddRange(res.Select(s => s.TaskId)); + } #endregion var query = _context.OutStockTaskDetails.Include(x => x.ErpDetails) @@ -315,6 +332,10 @@ namespace WMS.Web.Repositories DateTime dt_end = ((DateTime)dto.CreateEndDate).AddDays(1); query = query.Where(w => w.order.OperateTime <= dt_end); } + if (taskIds.Count() > 0) + { + query = query.Where(w => taskIds.Contains(w.order.Id)); + } //缁勮 int total = await query.CountAsync(); var list = await query.Select(s => new OutStockTaskQueryInfoResponse()