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;
+ }
+ }
+}