入库任务

This commit is contained in:
tongfei
2023-10-27 10:56:04 +08:00
parent ba067eb76a
commit fad33c0d31
8 changed files with 546 additions and 6 deletions

View File

@@ -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
{
/// <summary>
/// 入库任务单-接口
/// </summary>
[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;
}
/// <summary>
/// 列表
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost]
[Route("GetList")]
public async Task<ResultPagedList<InStockTaskQueryResponse>> GetPagedList([FromBody] InStockTaskQueryRequest dto)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return ResultPagedList<InStockTaskQueryResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var result = await _inStockTaskRepositories.GetPagedList(dto);
return result;
}
}
}

View File

@@ -885,6 +885,236 @@
是否禁用true为禁用false为启用
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest">
<summary>
盘点单明细
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse">
<summary>
盘点单列表
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.DetailId">
<summary>
明细编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.BillNo">
<summary>
单据编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.Date">
<summary>
盘点日期
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.Creator">
<summary>
盘点人员
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.SuccessSync">
<summary>
金蝶同步成功或者失败 null 就是未同步
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.Unit">
<summary>
单位
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.Stock">
<summary>
仓库
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.SubStock">
<summary>
仓位
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.BeforeQty">
<summary>
盘点前数量wms系统数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.AfterQty">
<summary>
盘点实际数量(实际仓库数量)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.FinalQty">
<summary>
盘点后数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.ResultType">
<summary>
盘点结果类型1为盘盈2位盘亏
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.Remark">
<summary>
备注
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest">
<summary>
盘点单列表请求
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.ResultType">
<summary>
盘点结果类型1为盘盈2位盘亏
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.StockId">
<summary>
仓库ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.BillNo">
<summary>
单据编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.DateBeginDate">
<summary>
盘点日期-开始
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryRequest.DateEndDate">
<summary>
盘点日期-结束
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTaskQueryRequest">
<summary>
入库任务-查询请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryRequest.SourceBillNo">
<summary>
来源单号
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTaskQueryResponse">
<summary>
入库任务表-查询对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Id">
<summary>
ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.DetailsId">
<summary>
明细ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.BillNo">
<summary>
单据编号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.SourceBillNo">
<summary>
来源单号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Status">
<summary>
入库状态
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Type">
<summary>
入库类型
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Supplier">
<summary>
供应商Id
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Org">
<summary>
组织ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.MaterialName">
<summary>
物料名称
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.MaterialNumber">
<summary>
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Specifications">
<summary>
物料规格型号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.FactoryPrice">
<summary>
出厂价
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Stock">
<summary>
收货仓库
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.AccruedQty">
<summary>
应入数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.ReceiveQty">
<summary>
收货数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.RealityQty">
<summary>
实际入库数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Receiver">
<summary>
收货人
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.ReceiveTime">
<summary>
收货时间
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Operator">
<summary>
上架人
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.OperateTime">
<summary>
入库时间
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.Remark">
<summary>
明细备注
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTaskQueryResponse.CreateTime">
<summary>
创建时间erp那边的创建时间
</summary>
</member>
<member name="T:WMS.Web.Core.EntityBase">
<summary>
基类

View File

@@ -756,11 +756,6 @@
盘点人员
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.CompanyId">
<summary>
公司ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.SuccessSync">
<summary>
同步成功或者失败 null 就是未同步
@@ -771,6 +766,12 @@
明细
</summary>
</member>
<member name="M:WMS.Web.Domain.Entitys.TakeStock.Create(System.Int32)">
<summary>
创建
</summary>
<param name="creatorId"></param>
</member>
<member name="T:WMS.Web.Domain.Entitys.TakeStockDetails">
<summary>
wms盘点单明细
@@ -788,7 +789,7 @@
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.BoxId">
<summary>
单据头Id
Id
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.TakeStockDetails.MaterialId">
@@ -848,6 +849,18 @@
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Infrastructure.IInStockTaskRepositories">
<summary>
入库任务-仓储接口
</summary>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.IInStockTaskRepositories.GetPagedList(WMS.Web.Core.Dto.InStockTaskQueryRequest)">
<summary>
列表-分页
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Infrastructure.ITransactionRepositories.GetTransaction">
<summary>
获取事务 用来处理即时库存
@@ -865,6 +878,11 @@
改箱 移箱服务
</summary>
</member>
<member name="T:WMS.Web.Domain.IService.ITakeStockService">
<summary>
盘点单服务
</summary>
</member>
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStock">
<summary>
erp:单据查询-采购入库单
@@ -1660,6 +1678,19 @@
<param name="customerStockCode"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Services.TakeStockService">
<summary>
盘点单服务
</summary>
</member>
<member name="M:WMS.Web.Domain.Services.TakeStockService.Save(System.Collections.Generic.List{WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest},WMS.Web.Core.Dto.Login.LoginInDto)">
<summary>
保存
</summary>
<param name="dto"></param>
<param name="loginInfo"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Values.BackRecordType">
<summary>
出入库回退类型

View File

@@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto
{
/// <summary>
/// 入库任务-查询请求对象
/// </summary>
public class InStockTaskQueryRequest : PaginationBaseRequestDto
{
/// <summary>
/// 来源单号
/// </summary>
public string SourceBillNo { get; set; }
}
}

View File

@@ -0,0 +1,112 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto
{
/// <summary>
/// 入库任务表-查询对象
/// </summary>
public class InStockTaskQueryResponse
{
/// <summary>
/// ID
/// </summary>
public int Id { get; set; }
/// <summary>
/// 明细ID
/// </summary>
public int DetailsId { get; set; }
/// <summary>
/// 单据编号
/// </summary>
public string BillNo { get; set; }
/// <summary>
/// 来源单号
/// </summary>
public string SourceBillNo { get; set; }
/// <summary>
/// 入库状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 入库类型
/// </summary>
public string Type { get; set; }
/// <summary>
/// 供应商Id
/// </summary>
public string Supplier { get; set; }
/// <summary>
/// 组织ID
/// </summary>
public string Org { get; set; }
/// <summary>
/// 物料名称
/// </summary>
public string MaterialName { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 物料规格型号
/// </summary>
public string Specifications { get; set; }
/// <summary>
/// 出厂价
/// </summary>
public decimal FactoryPrice { get; set; }
/// <summary>
/// 收货仓库
/// </summary>
public string Stock { get; set; }
/// <summary>
/// 应入数量
/// </summary>
public decimal AccruedQty { get; set; }
/// <summary>
/// 收货数量
/// </summary>
public decimal ReceiveQty { get; set; }
/// <summary>
/// 实际入库数量
/// </summary>
public decimal RealityQty { get; set; }
/// <summary>
/// 收货人
/// </summary>
public string Receiver { get; set; }
/// <summary>
/// 收货时间
/// </summary>
public DateTime ReceiveTime { get; set; }
/// <summary>
/// 上架人
/// </summary>
public string Operator { get; set; }
/// <summary>
/// 入库时间
/// </summary>
public DateTime OperateTime { get; set; }
/// <summary>
/// 明细备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 创建时间erp那边的创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
}

View File

@@ -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
{
/// <summary>
/// 入库任务-仓储接口
/// </summary>
public interface IInStockTaskRepositories
{
/// <summary>
/// 列表-分页
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<ResultPagedList<InStockTaskQueryResponse>> GetPagedList(InStockTaskQueryRequest dto);
}
}

View File

@@ -35,6 +35,7 @@ namespace Microsoft.Extensions.DependencyInjection
services.AddTransient<ITransactionRepositories, TransactionRepositories>();
services.AddTransient<IInStockRepositories, InStockRepositories>();
services.AddTransient<IInStockTaskRepositories, InStockTaskRepositories>();
services.AddTransient<IChangeBoxRecordRepositories, ChangeBoxRecordRepositories>();
services.AddTransient<IMoveBoxRecordRepositories, MoveBoxRecordRepositories>();

View File

@@ -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
{
/// <summary>
/// 入库任务表-仓储
/// </summary>
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;
}
/// <summary>
/// 列表-分页
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public async Task<ResultPagedList<InStockTaskQueryResponse>> 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<InStockTaskQueryResponse>();
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;
}
}
}