比对接口

This commit is contained in:
tongfei
2023-11-07 11:10:14 +08:00
parent 85625b5a80
commit 131ab07de2
9 changed files with 162 additions and 0 deletions

View File

@@ -79,5 +79,22 @@ namespace WMS.Web.Api.Controllers
var list= await _inStockTaskRepositories.GetListBy(code, InstockType.Purchase);
return ResultList<InStockTaskBillNoQueryResponse>.ReSuccess(list);
}
/// <summary>
/// 采购订单物料明细和箱物料明细-对比-pad
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
[HttpPost]
[Route("Contrast")]
public async Task<Result<ContrastMaterialsResponse>> Contrast([FromBody] ContrastMaterialsRequest dto)
{
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.Token_Invalid_Error);
var result = await _inStockService.Contrast(dto);
return result;
}
}
}

View File

@@ -115,6 +115,13 @@
<param name="code"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Api.Controllers.InStockTaskController.Contrast(WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest)">
<summary>
采购订单物料明细和箱物料明细-对比-pad
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Api.Controllers.InventoryController">
<summary>
即时库存相关-接口

View File

@@ -955,6 +955,41 @@
备注
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest">
<summary>
采购订单物料明细和箱物料明细-对比请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest.TaskId">
<summary>
单据ID(等同-入库任务单ID)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest.BoxBillNo">
<summary>
箱号
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsResponse">
<summary>
采购订单物料明细和箱物料明细-对比影响对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsResponse.BoxId">
<summary>
箱号ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsResponse.BoxBillNo">
<summary>
箱号
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastMaterialsResponse.IsRight">
<summary>
比对结果true为比对成功false为比对失败
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.InStockTask.InStockTaskDetailsInfoDto">
<summary>
入库任务单明细详情

View File

@@ -1453,6 +1453,13 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.IService.IInStockService.Contrast(WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest)">
<summary>
采购订单物料明细和箱物料明细-对比
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.IService.IInStockTaskService">
<summary>
入库任务单-服务接口
@@ -2141,6 +2148,13 @@
<param name="isTransaction"></param>
<returns></returns>
</member>
<member name="M:WMS.Web.Domain.Services.InStockService.Contrast(WMS.Web.Core.Dto.InStockTask.ContrastMaterialsRequest)">
<summary>
采购订单物料明细和箱物料明细-对比
</summary>
<param name="dto"></param>
<returns></returns>
</member>
<member name="T:WMS.Web.Domain.Services.InStockTaskService">
<summary>
入库任务单-服务

View File

@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace WMS.Web.Core.Dto.InStockTask
{
/// <summary>
/// 采购订单物料明细和箱物料明细-对比请求对象
/// </summary>
public class ContrastMaterialsRequest
{
/// <summary>
/// 单据ID(等同-入库任务单ID)
/// </summary>
[Required(ErrorMessage = "单据不能为空")]
public int TaskId { get; set; }
/// <summary>
/// 箱号
/// </summary>
[Required(ErrorMessage = "箱号不能为空")]
public string BoxBillNo { get; set; }
}
}

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Web.Core.Dto.InStockTask
{
/// <summary>
/// 采购订单物料明细和箱物料明细-对比影响对象
/// </summary>
public class ContrastMaterialsResponse
{
/// <summary>
/// 箱号ID
/// </summary>
public int BoxId { get; set; }
/// <summary>
/// 箱号
/// </summary>
public string BoxBillNo { get; set; }
/// <summary>
/// 比对结果true为比对成功false为比对失败
/// </summary>
public bool IsRight { get; set; }
}
}

View File

@@ -66,5 +66,12 @@ namespace WMS.Web.Domain.IService
/// <param name="isTransaction"></param>
/// <returns></returns>
Task<Result> UpdateRange(List<int> ids, int staffId, bool isReceive, bool isTransaction = true);
/// <summary>
/// 采购订单物料明细和箱物料明细-对比
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
Task<Result<ContrastMaterialsResponse>> Contrast(ContrastMaterialsRequest dto);
}
}

View File

@@ -222,5 +222,33 @@ namespace WMS.Web.Domain.Services
else
return Result.ReFailure(ResultCodes.DateWriteError);
}
/// <summary>
/// 采购订单物料明细和箱物料明细-对比
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public async Task<Result<ContrastMaterialsResponse>> Contrast(ContrastMaterialsRequest dto)
{
//1.找到任务单的明细信息
var task = await _inStockTaskRepositories.Get(dto.TaskId);
if (task == null)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.OrderNoData);
//2.找到箱对应的物料信息
var box = await _boxRepositories.GetByNo(dto.BoxBillNo);
if (box == null)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxNoData);
//3.比对
bool isRight = box.Details.All(x => task.Details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty == x.Qty)) && box.Details.Count == task.Details.Count;
//4.返回对比结果true为比对成功false为比对失败;并把箱ID和箱号返回
var response = new ContrastMaterialsResponse();
response.BoxBillNo = box.BoxBillNo;
response.BoxId = box.Id;
response.IsRight = isRight;
return Result<ContrastMaterialsResponse>.ReSuccess(response);
}
}
}

View File

@@ -32,6 +32,7 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> ErpStockNoData = (900000, "Erp仓库信息不完整");
public static ValueTuple<int, string> Box_NoBind_Task_Data = (80001, "该箱号不在收货信息中,请核对再试!");
public static ValueTuple<int, string> OrderNoData = (80002, "单据信息不存在,请核对后再试!");
}
}