From 8221eae77996169f3b37d7f722ef14eec4e2efd8 Mon Sep 17 00:00:00 2001
From: tongfei <244188119@qq.com>
Date: Fri, 27 Oct 2023 09:30:17 +0800
Subject: [PATCH] =?UTF-8?q?=E5=85=A5=E5=BA=93=E5=8D=95-=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Controllers/InStockController.cs | 46 +++++++++++++++++++
src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 12 +++++
src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 5 ++
src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 7 +++
.../Dto/InStock/InStockQueryResponse.cs | 7 ++-
src/WMS.Web.Domain/Entitys/InStock.cs | 2 +-
.../Infrastructure/IInStockRepositories.cs | 9 ++++
.../InStockRepositories.cs | 42 ++++++++++++++++-
8 files changed, 126 insertions(+), 4 deletions(-)
create mode 100644 src/WMS.Web.Api/Controllers/InStockController.cs
diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs
new file mode 100644
index 00000000..e29572ef
--- /dev/null
+++ b/src/WMS.Web.Api/Controllers/InStockController.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 InStockController : ControllerBase
+ {
+ private readonly ILoginService _loginService;
+ private readonly IInStockRepositories _inStockRepositories;
+ public InStockController(ILoginService loginService, IInStockRepositories inStockRepositories)
+ {
+ this._loginService = loginService;
+ this._inStockRepositories = inStockRepositories;
+ }
+
+ ///
+ /// 列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("GetList")]
+ public async Task> GetPagedList([FromBody] InStockQueryRequest 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 _inStockRepositories.GetPagedList(dto);
+ return result;
+ }
+ }
+}
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
index fa5575e3..864785fc 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml
@@ -23,6 +23,18 @@
+
+
+ 入库单-接口
+
+
+
+
+ 列表
+
+
+
+
登录接口
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
index b69bc5dd..0c6c870c 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml
@@ -340,6 +340,11 @@
单据ID
+
+
+ 明细ID
+
+
单据编号
diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 09bf1ead..6976c2f0 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -830,6 +830,13 @@
wms入库单-仓储接口
+
+
+ 列表-分页
+
+
+
+
获取事务 用来处理即时库存
diff --git a/src/WMS.Web.Core/Dto/InStock/InStockQueryResponse.cs b/src/WMS.Web.Core/Dto/InStock/InStockQueryResponse.cs
index 67b724bc..66d86376 100644
--- a/src/WMS.Web.Core/Dto/InStock/InStockQueryResponse.cs
+++ b/src/WMS.Web.Core/Dto/InStock/InStockQueryResponse.cs
@@ -14,6 +14,11 @@ namespace WMS.Web.Core.Dto
///
public int Id { get; set; }
+ ///
+ /// 明细ID
+ ///
+ public int DetailsId { get; set; }
+
///
/// 单据编号
///
@@ -68,6 +73,6 @@ namespace WMS.Web.Core.Dto
///
/// 同步成功或者失败
///
- public bool SuccessSync { get; set; }
+ public bool? SuccessSync { get; set; }
}
}
diff --git a/src/WMS.Web.Domain/Entitys/InStock.cs b/src/WMS.Web.Domain/Entitys/InStock.cs
index b5d84c21..6ad4c909 100644
--- a/src/WMS.Web.Domain/Entitys/InStock.cs
+++ b/src/WMS.Web.Domain/Entitys/InStock.cs
@@ -36,7 +36,7 @@ namespace WMS.Web.Domain.Entitys
///
/// 同步成功或者失败
///
- public bool SuccessSync { get; set; }
+ public bool? SuccessSync { get; set; }
///
/// 明细
diff --git a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
index 4d57a726..885a7d4a 100644
--- a/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
+++ b/src/WMS.Web.Domain/Infrastructure/IInStockRepositories.cs
@@ -1,6 +1,9 @@
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
{
@@ -9,5 +12,11 @@ namespace WMS.Web.Domain.Infrastructure
///
public interface IInStockRepositories
{
+ ///
+ /// 列表-分页
+ ///
+ ///
+ ///
+ Task> GetPagedList(InStockQueryRequest dto);
}
}
diff --git a/src/WMS.Web.Repositories/InStockRepositories.cs b/src/WMS.Web.Repositories/InStockRepositories.cs
index 38d81e3e..e0709a91 100644
--- a/src/WMS.Web.Repositories/InStockRepositories.cs
+++ b/src/WMS.Web.Repositories/InStockRepositories.cs
@@ -1,8 +1,11 @@
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;
@@ -27,11 +30,46 @@ namespace WMS.Web.Repositories
_serviceProvider = serviceProvider;
}
+ ///
+ /// 列表-分页
+ ///
+ ///
+ ///
public async Task> GetPagedList(InStockQueryRequest dto)
{
- //var query=_context.
+ var query=_context.InStockDetails
+ .GroupJoin(_context.Instock, 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);
- return null;
+ 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 InStockQueryResponse()
+ {
+ Id=s.order.Id,
+ DetailsId=s.detail.Id,
+ BillNo=s.order.BillNo,
+ Type=s.order.Type.GetRemark(),
+ SourceBillNo=s.detail.SourceBillNo,
+ Supplier="",
+ Org="",
+ MaterialName="",
+ MaterialNumber="",
+ Specifications="",
+ Stock="",
+ Qty=s.detail.Qty,
+ Creator="",
+ CreateTime=s.order.CreateTime,
+ SuccessSync=s.order.SuccessSync
+ }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
+
+ response.Data = list;
+ return response;
}
}
}