From fad33c0d31f629f68288bf8e2b51c3197829a278 Mon Sep 17 00:00:00 2001 From: tongfei <244188119@qq.com> Date: Fri, 27 Oct 2023 10:56:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InStockTaskController.cs | 46 ++++ src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 230 ++++++++++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 43 +++- .../TaskInStock/InStockTaskQueryRequest.cs | 17 ++ .../TaskInStock/InStockTaskQueryResponse.cs | 112 +++++++++ .../IInStockTaskRepositories.cs | 22 ++ .../AppBuilderExtensions.cs | 1 + .../InStockTaskRepositories.cs | 81 ++++++ 8 files changed, 546 insertions(+), 6 deletions(-) create mode 100644 src/WMS.Web.Api/Controllers/InStockTaskController.cs create mode 100644 src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs create mode 100644 src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs create mode 100644 src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs create mode 100644 src/WMS.Web.Repositories/InStockTaskRepositories.cs diff --git a/src/WMS.Web.Api/Controllers/InStockTaskController.cs b/src/WMS.Web.Api/Controllers/InStockTaskController.cs new file mode 100644 index 00000000..afe84d13 --- /dev/null +++ b/src/WMS.Web.Api/Controllers/InStockTaskController.cs @@ -0,0 +1,46 @@ +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using WMS.Web.Core.Dto; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Values; + +namespace WMS.Web.Api.Controllers +{ + /// + /// 入库任务单-接口 + /// + [Route("api/[controller]")] + [ApiController] + public class InStockTaskController : ControllerBase + { + private readonly ILoginService _loginService; + private readonly IInStockTaskRepositories _inStockTaskRepositories; + public InStockTaskController(ILoginService loginService, IInStockTaskRepositories inStockTaskRepositories) + { + this._loginService = loginService; + this._inStockTaskRepositories = inStockTaskRepositories; + } + + /// + /// 列表 + /// + /// + /// + [HttpPost] + [Route("GetList")] + public async Task> GetPagedList([FromBody] InStockTaskQueryRequest dto) + { + var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); + if (loginInfo == null || loginInfo.UserInfo == null) + return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); + var result = await _inStockTaskRepositories.GetPagedList(dto); + return result; + } + } +} diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 7440356c..71d0b786 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -885,6 +885,236 @@ 是否禁用:true为禁用,false为启用 + + + 盘点单明细 + + + + + 盘点单列表 + + + + + 明细编号 + + + + + 单据编号 + + + + + 盘点日期 + + + + + 盘点人员 + + + + + 金蝶同步成功或者失败 null 就是未同步 + + + + + 单位 + + + + + 仓库 + + + + + 仓位 + + + + + 盘点前数量(wms系统数量) + + + + + 盘点实际数量(实际仓库数量) + + + + + 盘点后数量 + + + + + 盘点结果类型:1为盘盈,2位盘亏 + + + + + 备注 + + + + + 盘点单列表请求 + + + + + 盘点结果类型:1为盘盈,2位盘亏 + + + + + 仓库ID + + + + + 单据编号 + + + + + 盘点日期-开始 + + + + + 盘点日期-结束 + + + + + 入库任务-查询请求对象 + + + + + 来源单号 + + + + + 入库任务表-查询对象 + + + + + ID + + + + + 明细ID + + + + + 单据编号 + + + + + 来源单号 + + + + + 入库状态 + + + + + 入库类型 + + + + + 供应商Id + + + + + 组织ID + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + + + + 出厂价 + + + + + 收货仓库 + + + + + 应入数量 + + + + + 收货数量 + + + + + 实际入库数量 + + + + + 收货人 + + + + + 收货时间 + + + + + 上架人 + + + + + 入库时间 + + + + + 明细备注 + + + + + 创建时间(erp那边的创建时间) + + 基类 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e9087e62..24c5bc1a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -756,11 +756,6 @@ 盘点人员 - - - 公司ID - - 同步成功或者失败 null 就是未同步 @@ -771,6 +766,12 @@ 明细 + + + 创建 + + + wms盘点单明细 @@ -788,7 +789,7 @@ - 单据头Id + 箱Id @@ -848,6 +849,18 @@ + + + 入库任务-仓储接口 + + + + + 列表-分页 + + + + 获取事务 用来处理即时库存 @@ -865,6 +878,11 @@ 改箱 移箱服务 + + + 盘点单服务 + + erp:单据查询-采购入库单 @@ -1660,6 +1678,19 @@ + + + 盘点单服务 + + + + + 保存 + + + + + 出入库回退类型 diff --git a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs new file mode 100644 index 00000000..75e23f5a --- /dev/null +++ b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryRequest.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 入库任务-查询请求对象 + /// + public class InStockTaskQueryRequest : PaginationBaseRequestDto + { + /// + /// 来源单号 + /// + public string SourceBillNo { get; set; } + } +} diff --git a/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs new file mode 100644 index 00000000..2d69ed0a --- /dev/null +++ b/src/WMS.Web.Core/Dto/TaskInStock/InStockTaskQueryResponse.cs @@ -0,0 +1,112 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto +{ + /// + /// 入库任务表-查询对象 + /// + public class InStockTaskQueryResponse + { + /// + /// ID + /// + public int Id { get; set; } + + /// + /// 明细ID + /// + public int DetailsId { get; set; } + + /// + /// 单据编号 + /// + public string BillNo { get; set; } + + /// + /// 来源单号 + /// + public string SourceBillNo { get; set; } + + /// + /// 入库状态 + /// + public string Status { get; set; } + /// + /// 入库类型 + /// + public string Type { get; set; } + + /// + /// 供应商Id + /// + public string Supplier { get; set; } + /// + /// 组织ID + /// + public string Org { get; set; } + + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + + /// + /// 出厂价 + /// + public decimal FactoryPrice { get; set; } + + /// + /// 收货仓库 + /// + public string Stock { get; set; } + + /// + /// 应入数量 + /// + public decimal AccruedQty { get; set; } + /// + /// 收货数量 + /// + public decimal ReceiveQty { get; set; } + /// + /// 实际入库数量 + /// + public decimal RealityQty { get; set; } + + /// + /// 收货人 + /// + public string Receiver { get; set; } + /// + /// 收货时间 + /// + public DateTime ReceiveTime { get; set; } + /// + /// 上架人 + /// + public string Operator { get; set; } + /// + /// 入库时间 + /// + public DateTime OperateTime { get; set; } + /// + /// 明细备注 + /// + public string Remark { get; set; } + + /// + /// 创建时间(erp那边的创建时间) + /// + public DateTime CreateTime { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs new file mode 100644 index 00000000..6a2f2292 --- /dev/null +++ b/src/WMS.Web.Domain/Infrastructure/IInStockTaskRepositories.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core.Dto; +using WMS.Web.Core.Internal.Results; + +namespace WMS.Web.Domain.Infrastructure +{ + /// + /// 入库任务-仓储接口 + /// + public interface IInStockTaskRepositories + { + /// + /// 列表-分页 + /// + /// + /// + Task> GetPagedList(InStockTaskQueryRequest dto); + } +} diff --git a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs index 57141188..cba3f3b9 100644 --- a/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs +++ b/src/WMS.Web.Repositories/DependencyInjection/AppBuilderExtensions.cs @@ -35,6 +35,7 @@ namespace Microsoft.Extensions.DependencyInjection services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); services.AddTransient(); diff --git a/src/WMS.Web.Repositories/InStockTaskRepositories.cs b/src/WMS.Web.Repositories/InStockTaskRepositories.cs new file mode 100644 index 00000000..3b3a6184 --- /dev/null +++ b/src/WMS.Web.Repositories/InStockTaskRepositories.cs @@ -0,0 +1,81 @@ +using AutoMapper; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WMS.Web.Core; +using WMS.Web.Core.Dto; +using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Infrastructure; +using WMS.Web.Repositories.Configuration; + +namespace WMS.Web.Repositories +{ + /// + /// 入库任务表-仓储 + /// + public class InStockTaskRepositories: IInStockTaskRepositories + { + private readonly IMapper _mapper; + private readonly IServiceProvider _serviceProvider; + private readonly RepositoryDbContext _context; + + + public InStockTaskRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider) + { + _context = context; + _mapper = mapper; + _serviceProvider = serviceProvider; + } + + /// + /// 列表-分页 + /// + /// + /// + public async Task> GetPagedList(InStockTaskQueryRequest dto) + { + var query = _context.InStockTaskDetails + .GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders }) + .SelectMany(x => x.orders.DefaultIfEmpty(), (p, order) => new { p.detail, order }) + .Where(adv => 1 == 1); + + if (!string.IsNullOrEmpty(dto.SourceBillNo)) + query = query.Where(w => EF.Functions.Like(w.detail.SourceBillNo, "%" + dto.SourceBillNo + "%")); + + var response = new ResultPagedList(); + int total = await query.CountAsync(); + response.TotalCount = total; + + var list = await query.Select(s => new InStockTaskQueryResponse() + { + Id = s.order.Id, + DetailsId = s.detail.Id, + BillNo = s.order.BillNo, + Type = s.order.Type.GetRemark(), + Status=s.order.Status.GetRemark(), + SourceBillNo = s.detail.SourceBillNo, + Supplier = "", + Org = "", + MaterialName = "", + MaterialNumber = "", + Specifications = "", + FactoryPrice=s.detail.FactoryPrice, + Stock = "", + AccruedQty = s.detail.AccruedQty, + ReceiveQty = s.detail.ReceiveQty, + RealityQty = s.detail.RealityQty, + Receiver = "", + ReceiveTime=s.order.ReceiveTime, + Operator="", + OperateTime=s.order.OperateTime, + CreateTime = s.detail.CreateTime, + }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); + + response.Data = list; + return response; + } + } +}