调整接口

This commit is contained in:
tongfei
2023-12-13 14:10:24 +08:00
parent 20fff099fd
commit 988190a13c
14 changed files with 267 additions and 160 deletions

View File

@@ -88,7 +88,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("OnShelf")] [Route("OnShelf")]
public async Task<Result> OnShelf([FromBody] SaveBackRecordRequest dto) public async Task<Result> OnShelf([FromBody] BackRecordOnOffRequest dto)
{ {
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
@@ -103,7 +103,7 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("OffShelf")] [Route("OffShelf")]
public async Task<Result> OffShelf([FromBody] SaveBackRecordRequest dto) public async Task<Result> OffShelf([FromBody] BackRecordOnOffRequest dto)
{ {
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)

View File

@@ -23,14 +23,14 @@
<param name="dto"></param> <param name="dto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Api.Controllers.BackRecordController.OnShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest)"> <member name="M:WMS.Web.Api.Controllers.BackRecordController.OnShelf(WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest)">
<summary> <summary>
出库回退上架-pda 出库回退上架-pda
</summary> </summary>
<param name="dto"></param> <param name="dto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Api.Controllers.BackRecordController.OffShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest)"> <member name="M:WMS.Web.Api.Controllers.BackRecordController.OffShelf(WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest)">
<summary> <summary>
入库回退下架-pda 入库回退下架-pda
</summary> </summary>

View File

@@ -85,6 +85,86 @@
<member name="P:ERP.AccessResult.AccessToken"> <member name="P:ERP.AccessResult.AccessToken">
<remarks/> <remarks/>
</member> </member>
<member name="T:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest">
<summary>
出入库回退上下架:请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest.Method">
<summary>
出入库方式1按箱2按产品
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest.OrgCode">
<summary>
组织编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest.StockCode">
<summary>
仓库code
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest.Details">
<summary>
明细
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest">
<summary>
保存出入库回退上下架明细:请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.BoxId">
<summary>
扫的箱号ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SerialNumberBoxId">
<summary>
序列号所属箱不能为空
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.MaterialId">
<summary>
物料ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.Qty">
<summary>
数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.StockCode">
<summary>
仓库code
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SerialNumbers">
<summary>
序列号集
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest">
<summary>
保存出入库回退上下架:请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest.Details">
<summary>
明细
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.BackRecordQueryRequest"> <member name="T:WMS.Web.Core.Dto.BackRecordQueryRequest">
<summary> <summary>
出入库回退-查询请求对象 出入库回退-查询请求对象
@@ -200,56 +280,6 @@
序列号集 序列号集
</summary> </summary>
</member> </member>
<member name="T:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest">
<summary>
保存出入库回退上下架明细:请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.BoxId">
<summary>
扫的箱号ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SerialNumberBoxId">
<summary>
序列号所属箱不能为空
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.MaterialId">
<summary>
物料ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.Qty">
<summary>
数量
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.StockCode">
<summary>
仓库code
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordDetailsRequest.SerialNumbers">
<summary>
序列号集
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest">
<summary>
保存出入库回退上下架:请求对象
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest.Details">
<summary>
明细
</summary>
</member>
<member name="T:WMS.Web.Core.Dto.BoxDetailResponse"> <member name="T:WMS.Web.Core.Dto.BoxDetailResponse">
<summary> <summary>
根据箱号获取物料信息 根据箱号获取物料信息
@@ -2386,6 +2416,11 @@
类型1为入库2为出库 类型1为入库2为出库
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.InventoryInOutMethod">
<summary>
出入库存-方式(详情见枚举值)必填1-box按箱2-product按产品
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.BoxId"> <member name="P:WMS.Web.Core.Dto.Inventory.BoxInventoryBackGenerateDto.BoxId">
<summary> <summary>
箱ID 箱ID

View File

@@ -19,6 +19,11 @@
单据编号 单据编号
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.Method">
<summary>
出入库方式1按箱2按产品
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.Type"> <member name="P:WMS.Web.Domain.Entitys.BackRecord.Type">
<summary> <summary>
类型1为入库回退下架2为出库回退上架 类型1为入库回退下架2为出库回退上架
@@ -34,6 +39,21 @@
操作时间 操作时间
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.OrgCode">
<summary>
组织编码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.StockCode">
<summary>
仓库编码
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.SubStockId">
<summary>
仓位ID
</summary>
</member>
<member name="P:WMS.Web.Domain.Entitys.BackRecord.Details"> <member name="P:WMS.Web.Domain.Entitys.BackRecord.Details">
<summary> <summary>
明细 明细
@@ -488,7 +508,7 @@
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.InStock.Method"> <member name="P:WMS.Web.Domain.Entitys.InStock.Method">
<summary> <summary>
入库方式1按箱2按产品 入库方式1按箱2按产品
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.InStock.CreatorId"> <member name="P:WMS.Web.Domain.Entitys.InStock.CreatorId">
@@ -2337,7 +2357,7 @@
出入库回退上下架:服务接口 出入库回退上下架:服务接口
</summary> </summary>
</member> </member>
<member name="M:WMS.Web.Domain.IService.IBackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)"> <member name="M:WMS.Web.Domain.IService.IBackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary> <summary>
回退上下架 回退上下架
</summary> </summary>
@@ -2375,11 +2395,11 @@
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateBackBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.BackRecord},System.Boolean)"> <member name="M:WMS.Web.Domain.IService.IBoxInventoryService.GenerateBackBox(WMS.Web.Domain.Entitys.BackRecord,System.Boolean)">
<summary> <summary>
入库回退上下架-箱库存的变更 入库回退上下架-箱库存的变更
</summary> </summary>
<param name="dtoDatas"></param> <param name="dtoData"></param>
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>
@@ -3493,7 +3513,7 @@
出入库回退上下架:服务接口 出入库回退上下架:服务接口
</summary> </summary>
</member> </member>
<member name="M:WMS.Web.Domain.Services.BackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.SaveBackRecordRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)"> <member name="M:WMS.Web.Domain.Services.BackRecordService.BackShelf(WMS.Web.Core.Dto.BackRecord.BackRecordOnOffRequest,WMS.Web.Domain.Values.BackRecordType,WMS.Web.Core.Dto.Login.LoginInDto)">
<summary> <summary>
回退上下架 回退上下架
</summary> </summary>
@@ -3523,11 +3543,11 @@
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:WMS.Web.Domain.Services.BoxInventoryService.GenerateBackBox(System.Collections.Generic.List{WMS.Web.Domain.Entitys.BackRecord},System.Boolean)"> <member name="M:WMS.Web.Domain.Services.BoxInventoryService.GenerateBackBox(WMS.Web.Domain.Entitys.BackRecord,System.Boolean)">
<summary> <summary>
入库回退上下架-箱库存的变更 入库回退上下架-箱库存的变更
</summary> </summary>
<param name="dtoDatas"></param> <param name="dtoData"></param>
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>
@@ -3543,7 +3563,7 @@
<summary> <summary>
入库单-箱库存的变更 入库单-箱库存的变更
</summary> </summary>
<param name="dtoDatas"></param> <param name="dtoData"></param>
<param name="isTransaction"></param> <param name="isTransaction"></param>
<returns></returns> <returns></returns>
</member> </member>

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace WMS.Web.Core.Dto.BackRecord
{
/// <summary>
/// 出入库回退上下架:请求对象
/// </summary>
public class BackRecordOnOffRequest
{
/// <summary>
/// 出入库方式1按箱2按产品
/// </summary>
[Required(ErrorMessage = "出入库方式不能为空")]
public int Method { get; set; }
/// <summary>
/// 组织编码
/// </summary>
[Required(ErrorMessage = "组织编码不能为空")]
public string OrgCode { get; set; }
/// <summary>
/// 仓库code
/// </summary>
[Required(ErrorMessage = "仓库不能为空")]
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// </summary>
[Required(ErrorMessage = "仓位不能为空")]
public int SubStockId { get; set; }
/// <summary>
/// 明细
/// </summary>
public List<SaveBackRecordDetailsRequest> Details { get; set; } = new List<SaveBackRecordDetailsRequest>();
}
}

View File

@@ -14,6 +14,11 @@ namespace WMS.Web.Core.Dto.Inventory
/// </summary> /// </summary>
public int InventoryInOutType { get; set; } public int InventoryInOutType { get; set; }
/// <summary>
/// 出入库存-方式(详情见枚举值)必填1-box按箱2-product按产品
/// </summary>
public int InventoryInOutMethod { get; set; }
/// <summary> /// <summary>
/// 箱ID /// 箱ID
/// </summary> /// </summary>

View File

@@ -22,6 +22,10 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public string BillNo { get; set; } public string BillNo { get; set; }
/// <summary> /// <summary>
/// 出入库方式1按箱2按产品
/// </summary>
public InventoryInOutMethod Method { get; set; }
/// <summary>
/// 类型1为入库回退下架2为出库回退上架 /// 类型1为入库回退下架2为出库回退上架
/// </summary> /// </summary>
public BackRecordType Type { get; set; } public BackRecordType Type { get; set; }
@@ -34,6 +38,19 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public DateTime CreateTime { get; set; } public DateTime CreateTime { get; set; }
/// <summary>
/// 组织编码
/// </summary>
public string OrgCode { get; set; }
/// <summary>
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// </summary>
public int SubStockId { get; set; }
/// <summary> /// <summary>
/// 明细 /// 明细
/// </summary> /// </summary>

View File

@@ -27,7 +27,7 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
public InstockType Type { get; set; } public InstockType Type { get; set; }
/// <summary> /// <summary>
/// 入库方式1按箱2按产品 /// 入库方式1按箱2按产品
/// </summary> /// </summary>
public InventoryInOutMethod Method { get; set; } public InventoryInOutMethod Method { get; set; }
/// <summary> /// <summary>

View File

@@ -21,6 +21,6 @@ namespace WMS.Web.Domain.IService
/// <param name="type"></param> /// <param name="type"></param>
/// <param name="loginInfo"></param> /// <param name="loginInfo"></param>
/// <returns></returns> /// <returns></returns>
Task<Result> BackShelf(SaveBackRecordRequest dto, BackRecordType type, LoginInDto loginInfo); Task<Result> BackShelf(BackRecordOnOffRequest dto, BackRecordType type, LoginInDto loginInfo);
} }
} }

View File

@@ -40,10 +40,10 @@ namespace WMS.Web.Domain.IService
/// <summary> /// <summary>
/// 入库回退上下架-箱库存的变更 /// 入库回退上下架-箱库存的变更
/// </summary> /// </summary>
/// <param name="dtoDatas"></param> /// <param name="dtoData"></param>
/// <param name="isTransaction"></param> /// <param name="isTransaction"></param>
/// <returns></returns> /// <returns></returns>
Task<Result> GenerateBackBox(List<BackRecord> dtoDatas, bool isTransaction); Task<Result> GenerateBackBox(BackRecord dtoData, bool isTransaction);
/// <summary> /// <summary>
/// 盘点-箱库存的变更 /// 盘点-箱库存的变更

View File

@@ -56,7 +56,7 @@ namespace WMS.Web.Domain.Services
/// <param name="type"></param> /// <param name="type"></param>
/// <param name="loginInfo"></param> /// <param name="loginInfo"></param>
/// <returns></returns> /// <returns></returns>
public async Task<Result> BackShelf(SaveBackRecordRequest dto, BackRecordType type, LoginInDto loginInfo) public async Task<Result> BackShelf(BackRecordOnOffRequest dto, BackRecordType type, LoginInDto loginInfo)
{ {
IDbContextTransaction _transaction = _basicsRepositories.GetTransaction(); IDbContextTransaction _transaction = _basicsRepositories.GetTransaction();
bool isRollback = false; bool isRollback = false;
@@ -67,22 +67,18 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.ErpStockNoData); return Result.ReFailure(ResultCodes.ErpStockNoData);
var entity = new BackRecord(); var entity = new BackRecord();
entity.Method =(InventoryInOutMethod)dto.Method;
entity.OrgCode = dto.OrgCode;
entity.StockCode = dto.StockCode;
entity.SubStockId = dto.SubStockId;
entity.Type = type; entity.Type = type;
entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details); entity.Details = _mapper.Map<List<BackRecordDetails>>(dto.Details);
entity.Details.ForEach(x =>
{
var stock = stocks.Where(t => t.Code == x.StockCode).FirstOrDefault();
if (stock != null)
x.OrgCode = stock.ErpOrgCode;
});
entity.Create(loginInfo.UserInfo.StaffId); entity.Create(loginInfo.UserInfo.StaffId);
entity = await _backRecordRepositories.Add(entity, isTransaction); entity = await _backRecordRepositories.Add(entity, isTransaction);
if (entity == null) if (entity == null)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
//保存成功后:序列号跟踪流程添加 //保存成功后:序列号跟踪流程添加
var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction); var serialNumber_result = await _serialNumberService.BackRecord(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess) if (!serialNumber_result.IsSuccess)
@@ -90,7 +86,7 @@ namespace WMS.Web.Domain.Services
#region #region
//获取目标箱和原箱信息 //获取目标箱和原箱信息
var current_box_about = dto.Details.GroupBy(x => new { x.BoxId, x.SubStockId, x.StockCode }).Select(x => new { x.Key.BoxId, x.Key.SubStockId, x.Key.StockCode }).ToList(); var current_box_about = dto.Details.GroupBy(x => new { x.BoxId }).Select(x => new { x.Key.BoxId }).ToList();
var current_sernub_box = dto.Details.GroupBy(x => x.SerialNumberBoxId).Select(x => x.Key).ToList(); var current_sernub_box = dto.Details.GroupBy(x => x.SerialNumberBoxId).Select(x => x.Key).ToList();
//要改箱的数据集合 //要改箱的数据集合
@@ -106,7 +102,7 @@ namespace WMS.Web.Domain.Services
var changeBox = new SaveChangeBoxRecordRequest(); var changeBox = new SaveChangeBoxRecordRequest();
changeBox.SrcBoxId = serBoxId; changeBox.SrcBoxId = serBoxId;
changeBox.DestBoxId = boxAbout.BoxId; changeBox.DestBoxId = boxAbout.BoxId;
changeBox.SubStockId = boxAbout.SubStockId; changeBox.SubStockId = entity.SubStockId;
ganenrateChangeBoxs.Add(changeBox); ganenrateChangeBoxs.Add(changeBox);
} }
} }
@@ -135,9 +131,7 @@ namespace WMS.Web.Domain.Services
#endregion #endregion
//保存成功后:变更库存 //保存成功后:变更库存
var entitys = new List<BackRecord>(); var boxInventoryResult = await _boxInventoryService.GenerateBackBox(entity, isTransaction);
entitys.Add(entity);
var boxInventoryResult = await _boxInventoryService.GenerateBackBox(entitys, isTransaction);
if (!boxInventoryResult.IsSuccess) if (!boxInventoryResult.IsSuccess)
return boxInventoryResult; return boxInventoryResult;

View File

@@ -212,39 +212,36 @@ namespace WMS.Web.Domain.Services
/// <summary> /// <summary>
/// 入库回退上下架-箱库存的变更 /// 入库回退上下架-箱库存的变更
/// </summary> /// </summary>
/// <param name="dtoDatas"></param> /// <param name="dtoData"></param>
/// <param name="isTransaction"></param> /// <param name="isTransaction"></param>
/// <returns></returns> /// <returns></returns>
public async Task<Result> GenerateBackBox(List<BackRecord> dtoDatas, bool isTransaction) public async Task<Result> GenerateBackBox(BackRecord dtoData, bool isTransaction)
{ {
//1.判断来源数据是否存在 //1.判断来源数据是否存在
if (dtoDatas == null || dtoDatas.Count == 0) if (dtoData == null)
return Result.ReFailure(ResultCodes.InventoryNoSourceError); return Result.ReFailure(ResultCodes.InventoryNoSourceError);
var generateDtoList = new List<BoxInventoryBackGenerateDto>();
//物料收发明细dtos //物料收发明细dtos
var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>(); var InventoryInOutDetailsGenerateDtoList = new List<InventoryInOutDetailsGenerateDto>();
#region
//入库的明细
var dtoDetails_in = dtoDatas.Where(x => x.Type == BackRecordType.OutstockOn).SelectMany(x => x.Details).ToList();
//2.1组织:头部 //2.1组织:头部
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }) var generateDtoList = dtoData.Details.GroupBy(x => new { x.BoxId })
.Select(x => new BoxInventoryBackGenerateDto() .Select(x => new BoxInventoryBackGenerateDto()
{ {
BoxId = x.Key.BoxId, BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode, OrgCode = dtoData.OrgCode,
StockCode = x.Key.StockCode, StockCode = dtoData.StockCode,
SubStockId = x.Key.SubStockId, SubStockId = dtoData.SubStockId,
InventoryInOutType = (int)InventoryInOutType.In InventoryInOutMethod = (int)dtoData.Method,
InventoryInOutType = dtoData.Type == BackRecordType.OutstockOn ? (int)InventoryInOutType.In : (int)InventoryInOutType.Out
}).ToList(); }).ToList();
//3.遍历:组装明细 //3.遍历:组装明细
generateDtoList_in.ForEach(x => generateDtoList.ForEach(x =>
{ {
foreach (var detItem in dtoDetails_in) foreach (var detItem in dtoData.Details)
{ {
//3.1箱是当前的 //3.1箱是当前的
if (detItem.BoxId == x.BoxId) if (detItem.BoxId == x.BoxId)
@@ -258,62 +255,21 @@ namespace WMS.Web.Domain.Services
} }
} }
}); });
#endregion
#region
//出库的明细
var dtoDetails_out = dtoDatas.Where(x => x.Type == BackRecordType.InstockOff).SelectMany(x => x.Details).ToList();
//2.1组织:头部
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId })
.Select(x => new BoxInventoryBackGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
InventoryInOutType = (int)InventoryInOutType.Out
}).ToList();
//3.遍历:组装明细
generateDtoList_out.ForEach(x =>
{
foreach (var detItem in dtoDetails_out)
{
//3.1箱是当前的
if (detItem.BoxId == x.BoxId)
{
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
}
}
});
#endregion
generateDtoList.AddRange(generateDtoList_in);
generateDtoList.AddRange(generateDtoList_out);
//4.提交处理 //4.提交处理
var result = await this.ExeBackBox(generateDtoList, isTransaction); var result = await this.ExeBackBox(generateDtoList, isTransaction);
if (!result.IsSuccess) if (!result.IsSuccess)
return result; return result;
//5.组装物料收发明细dto //5.组装物料收发明细dto
foreach (var item in dtoDatas.SelectMany(x => x.Details).ToList()) foreach (var item in dtoData.Details)
{ {
var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault(); var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
if (entity != null) item.BoxId, item.MaterialId,
{ item.OrgCode, item.StockCode,
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto( item.SubStockId, OrderType.Back,
item.BoxId, item.MaterialId, dtoData.BillNo, item.Qty, (dtoData.Type == BackRecordType.InstockOff ? InventoryInOutType.Out : InventoryInOutType.In));
item.OrgCode, item.StockCode, InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
item.SubStockId, OrderType.Back,
entity.BillNo, item.Qty, (entity.Type == BackRecordType.InstockOff ? InventoryInOutType.Out : InventoryInOutType.In));
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
} }
//5.提交物料收发明细:新增 //5.提交物料收发明细:新增
if (InventoryInOutDetailsGenerateDtoList.Count != 0) if (InventoryInOutDetailsGenerateDtoList.Count != 0)
@@ -437,7 +393,7 @@ namespace WMS.Web.Domain.Services
/// <summary> /// <summary>
/// 入库单-箱库存的变更 /// 入库单-箱库存的变更
/// </summary> /// </summary>
/// <param name="dtoDatas"></param> /// <param name="dtoData"></param>
/// <param name="isTransaction"></param> /// <param name="isTransaction"></param>
/// <returns></returns> /// <returns></returns>
public async Task<Result> GenerateInStockBox(InStock dtoData, bool isTransaction) public async Task<Result> GenerateInStockBox(InStock dtoData, bool isTransaction)
@@ -562,11 +518,11 @@ namespace WMS.Web.Domain.Services
{ {
if (x.BoxId == detItem.BoxId) if (x.BoxId == detItem.BoxId)
{ {
var current_det= dtoData.Details.Where(x => x.Id == detItem.DetailId).FirstOrDefault(); var current_det = dtoData.Details.Where(x => x.Id == detItem.DetailId).FirstOrDefault();
//2.2组装明细 //2.2组装明细
var det = new BoxInventoryGenerateDetailsDto(); var det = new BoxInventoryGenerateDetailsDto();
det.MaterialId = current_det==null?0: current_det.MaterialId; det.MaterialId = current_det == null ? 0 : current_det.MaterialId;
det.Qty = detItem.Qty; det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers; det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det); x.Details.Add(det);
@@ -946,19 +902,33 @@ namespace WMS.Web.Domain.Services
if (boxInventory == null) if (boxInventory == null)
{ {
//当前箱的序列号
var current_box_serNums = serialNumbers.Where(t => t.BoxId == dto.BoxId).ToList();
//3.2组装要新增的箱库存信息:箱和明细和序列号 //3.2组装要新增的箱库存信息:箱和明细和序列号
var addEntity = _mapper.Map<BoxInventory>(dto); var addEntity = _mapper.Map<BoxInventory>(dto);
addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details); addEntity.Details = _mapper.Map<List<BoxInventoryDetails>>(dto.Details);
//赋值序列号 #region
addEntity.Details.ForEach(x => if (dto.InventoryInOutMethod == (int)InventoryInOutMethod.Box)
{ {
var current_box_mat_serNums=current_box_serNums.Where(m => m.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList(); //当前箱的序列号
x.SerialNumbers.AddRange(current_box_mat_serNums); var current_box_serNums = serialNumbers.Where(t => t.BoxId == dto.BoxId).ToList();
}); //赋值序列号
addEntity.Details.ForEach(x =>
{
var current_box_mat_serNums = current_box_serNums.Where(m => m.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
});
}
else
{
//赋值序列号
addEntity.Details.ForEach(x =>
{
var current_box_mat_serNums = dto.Details.Where(m => m.MaterialId == x.MaterialId).FirstOrDefault();
if (current_box_mat_serNums != null && current_box_mat_serNums.MaterialId == x.MaterialId)
x.SerialNumbers.AddRange(current_box_mat_serNums.SerialNumbers);
});
}
#endregion
add_entitys.Add(addEntity); add_entitys.Add(addEntity);
} }
else else
@@ -981,9 +951,33 @@ namespace WMS.Web.Domain.Services
else else
{ {
updateDetail.Qty = updateDetail.Qty + dtoItem.Qty; updateDetail.Qty = updateDetail.Qty + dtoItem.Qty;
updateDetail.SerialNumbers.AddRange(dtoItem.SerialNumbers);
} }
} }
#region
if (dto.InventoryInOutMethod == (int)InventoryInOutMethod.Box)
{
//当前箱的序列号
var current_box_serNums = serialNumbers.Where(t => t.BoxId == dto.BoxId).ToList();
//赋值序列号
update_entity.Details.ForEach(x =>
{
var current_box_mat_serNums = current_box_serNums.Where(m => m.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
});
}
else
{
//赋值序列号
update_entity.Details.ForEach(x =>
{
var current_box_mat_serNums = dto.Details.Where(m => m.MaterialId == x.MaterialId).FirstOrDefault();
if (current_box_mat_serNums != null && current_box_mat_serNums.MaterialId == x.MaterialId)
x.SerialNumbers.AddRange(current_box_mat_serNums.SerialNumbers);
});
}
#endregion
update_entitys.Add(update_entity); update_entitys.Add(update_entity);
} }

View File

@@ -283,7 +283,7 @@ namespace WMS.Web.Domain.Services
if (current_entityDets != null && current_entityDets.Count != 0 && x.ErpDetailId == current_entityDets.FirstOrDefault().ErpDetailId) if (current_entityDets != null && current_entityDets.Count != 0 && x.ErpDetailId == current_entityDets.FirstOrDefault().ErpDetailId)
{ {
var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty); var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty);
x.DeliveredQty = x.ReceiveQty; x.DeliveredQty = x.DeliveredQty+ current_entityDet_matQty;
x.RealityQty = x.RealityQty + current_entityDet_matQty; x.RealityQty = x.RealityQty + current_entityDet_matQty;
} }
}); });
@@ -421,7 +421,7 @@ namespace WMS.Web.Domain.Services
{ {
var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty); var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty);
x.ReceiveQty = x.ReceiveQty + current_entityDet_matQty; x.ReceiveQty = x.ReceiveQty + current_entityDet_matQty;
x.DeliveredQty = x.ReceiveQty; x.DeliveredQty = x.DeliveredQty + current_entityDet_matQty;
x.RealityQty = x.RealityQty + current_entityDet_matQty; x.RealityQty = x.RealityQty + current_entityDet_matQty;
} }
}); });

View File

@@ -286,7 +286,7 @@ namespace WMS.Web.Repositories
//找到入库单通过erp明细ID //找到入库单通过erp明细ID
var erpDetIds = list.GroupBy(x => x.ErpDetailId).Select(x => x.Key).ToList(); var erpDetIds = list.GroupBy(x => x.ErpDetailId).Select(x => x.Key).ToList();
var instockDets= await _context.InStockDetails.Where(x => erpDetIds.Contains(x.ErpDetailId)).ToListAsync(); var instockDets= await _context.InStockDetails.Where(x =>erpDetIds.Contains(x.ErpDetailId)).ToListAsync();
if (instockDets != null && instockDets.Count != 0) if (instockDets != null && instockDets.Count != 0)
{ {
list.ForEach(x => list.ForEach(x =>