This commit is contained in:
tongfei
2024-03-18 11:03:51 +08:00
parent c0520b5cd3
commit 896450fd23
49 changed files with 394 additions and 536 deletions

View File

@@ -1817,9 +1817,9 @@
箱明细
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastBoxDetailsResponse.MaterialId">
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastBoxDetailsResponse.MaterialNumber">
<summary>
物料
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.ContrastBoxDetailsResponse.Qty">
@@ -2197,9 +2197,9 @@
对应金蝶的明细ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.MaterialId">
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.MaterialNumber">
<summary>
物料ID
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStockTask.UpdateInStockTaskDetailsRequest.ReceiveQty">
@@ -2467,9 +2467,9 @@
仓库编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfRequest.SubStockId">
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfRequest.SubStockCode">
<summary>
仓位ID
仓位编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfRequest.Boxs">
@@ -2502,9 +2502,9 @@
明细
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfDetailsRequest.MaterialId">
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfDetailsRequest.MaterialNumber">
<summary>
物料Id
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.NoPurchaseShelfDetailsRequest.SupplierId">
@@ -2542,9 +2542,9 @@
仓库编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.SubStockId">
<member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.SubStockCode">
<summary>
仓位ID
仓位编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.PurchaseShelfRequest.Details">
@@ -2582,9 +2582,9 @@
对应金蝶的明细ID
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.MaterialId">
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.MaterialNumber">
<summary>
物料Id
物料编码
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.InStock.SaveInStockDetailsRequest.Qty">

View File

@@ -38,6 +38,12 @@ namespace WMS.Web.Core.Dto.Erp
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 仓库ID
/// </summary>

View File

@@ -22,12 +22,6 @@ namespace WMS.Web.Core.Dto
[Ignore]
public int TaskId { get; set; }
/// <summary>
/// 物料ID
/// </summary>
[Ignore]
public int MaterialId { get; set; }
/// <summary>
/// 明细ID
/// </summary>

View File

@@ -33,11 +33,12 @@ namespace WMS.Web.Core.Dto.InStock
///</summary>
[Required(ErrorMessage = "仓库不能为空")]
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
///</summary>
/// 仓位编码
/// </summary>
[Required(ErrorMessage = " 仓位不能为空")]
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 箱信息
@@ -72,10 +73,10 @@ namespace WMS.Web.Core.Dto.InStock
public class NoPurchaseShelfDetailsRequest
{
/// <summary>
/// 物料Id
///</summary>
/// 物料编码
/// </summary>
[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 供应商

View File

@@ -18,10 +18,11 @@ namespace WMS.Web.Core.Dto.InStock
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 明细

View File

@@ -41,10 +41,10 @@ namespace WMS.Web.Core.Dto.InStock
public int ErpDetailId { get; set; }
/// <summary>
/// 物料Id
///</summary>
/// 物料编码
/// </summary>
[Required(ErrorMessage = "物料不能为空")]
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 入库数量

View File

@@ -50,11 +50,6 @@ namespace WMS.Web.Core.Dto.InStockTask
/// </summary>
public int ErpDetailId { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料名称
/// </summary>

View File

@@ -46,10 +46,11 @@ namespace WMS.Web.Core.Dto.InStockTask
/// </summary>
public class ContrastBoxDetailsResponse
{
/// <summary>
/// 物料
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 数量

View File

@@ -101,11 +101,6 @@ namespace WMS.Web.Core.Dto.InStockTask
/// </summary>
public string StockName { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料名称
/// </summary>

View File

@@ -47,11 +47,6 @@ namespace WMS.Web.Core.Dto.InStockTask
/// </summary>
public string StockName { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料名称
/// </summary>

View File

@@ -16,9 +16,9 @@ namespace WMS.Web.Core.Dto.InStockTask
public int ErpDetailId { get; set; }
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 收货数量
/// </summary>

View File

@@ -14,11 +14,6 @@ namespace WMS.Web.Core.Dto.Inventory
/// </summary>
public int InventoryInOutType { get; set; }
///// <summary>
///// 出入库存-方式(详情见枚举值)必填1-box按箱2-product按产品-------弃用
///// </summary>
//public int InventoryInOutMethod { get; set; }
/// <summary>
/// 箱ID
/// </summary>
@@ -35,9 +30,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 明细
@@ -51,9 +46,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryBackDetailsGenerateDto
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 数量
/// </summary>

View File

@@ -30,9 +30,10 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 目标箱的仓位(可为空:当目标箱不需要上架时候)
/// 仓位编码 目标箱的仓位(可为空:当目标箱不需要上架时候)
/// </summary>
public int? SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 目标箱组织编码
@@ -52,9 +53,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryDetailsChangeGenerateDto
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 数量

View File

@@ -35,9 +35,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string Stock { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public int SubStockCode { get; set; }
/// <summary>
/// 仓位名称
@@ -62,11 +62,6 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryDetailsResponse:EntityBase
{
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料名称
/// </summary>

View File

@@ -35,9 +35,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位为空的时候,就是出库等操作,有值的时候就是移箱改箱和上架操作
/// 仓位编码:为空的时候,就是出库等操作,有值的时候就是移箱改箱和上架操作
/// </summary>
public int? SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 明细
@@ -51,9 +51,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryGenerateDetailsDto
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 物料库存数量

View File

@@ -25,9 +25,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 类型1为入库2为出库
@@ -48,9 +48,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryMoveDetailsGenerateDto
{
/// <summary>
/// 物料Id
///</summary>
public int MaterialId { get; set; }
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 数量
/// </summary>

View File

@@ -15,9 +15,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位
/// 仓位编码
/// </summary>
public int? SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 箱号

View File

@@ -30,9 +30,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 明细
@@ -46,9 +46,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class BoxInventoryTakeDetailsGenerateDto
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 数量
/// </summary>

View File

@@ -10,9 +10,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class InventoryDetailsGenerateDto
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 组织编码
@@ -25,9 +25,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 数量:出入库

View File

@@ -15,9 +15,9 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位
/// 仓位编码
/// </summary>
public int? SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 物料编码

View File

@@ -10,9 +10,9 @@ namespace WMS.Web.Core.Dto.Inventory
public class InventoryDetailsSummaryResponse
{
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 组织编码
/// </summary>

View File

@@ -20,19 +20,18 @@ namespace WMS.Web.Core.Dto.Inventory
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// 仓位编码
/// </summary>
public int SubStockId { get; set; }
public string SubStockCode { get; set; }
/// <summary>
/// 箱ID
/// </summary>
public int BoxId { get; set; }
/// <summary>
/// 物料ID
/// 物料编码
/// </summary>
public int MaterialId { get; set; }
public string MaterialNumber { get; set; }
/// <summary>
/// 单据类型

View File

@@ -46,10 +46,6 @@ namespace WMS.Web.Domain.Entitys
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// </summary>
public int SubStockId { get; set; }
/// <summary>
/// 仓位编码

View File

@@ -24,10 +24,6 @@ namespace WMS.Web.Domain.Entitys
/// 所属箱号ID
/// </summary>
public int BoxId { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码

View File

@@ -28,11 +28,6 @@ namespace WMS.Web.Domain.Entitys
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓库ID
/// </summary>
public int SubStockId { get; set; }
/// <summary>
/// 仓位编码
/// </summary>

View File

@@ -23,10 +23,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
public int Fid { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -23,11 +23,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
public string OrderBillNo { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -72,10 +72,7 @@ namespace WMS.Web.Domain.Entitys
/// 仓库编码
/// </summary>
public string StockCode { get; set; }
/// <summary>
/// 仓位ID
/// </summary>
public int SubStockId { get; set; }
/// <summary>
/// 仓位编码
/// </summary>

View File

@@ -46,10 +46,7 @@ namespace WMS.Web.Domain.Entitys
/// 供应商ID
/// </summary>
public int SupplierId { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -36,10 +36,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
public string SourceBillNo { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -25,10 +25,7 @@ namespace WMS.Web.Domain.Entitys
/// 对应金蝶的明细ID
/// </summary>
public int ErpDetailId { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -40,10 +40,6 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
public string OrgCode { get; set; }
/// <summary>
/// 物料ID
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>

View File

@@ -22,6 +22,10 @@ namespace WMS.Web.Domain.Entitys
/// </summary>
public int MaterialId { get; set; }
/// <summary>
/// 物料编码
/// </summary>
public string MaterialNumber { get; set; }
/// <summary>
/// 类型1为入库2为出库
/// </summary>
public InventoryInOutType Type { get; set; }

View File

@@ -23,10 +23,10 @@ namespace WMS.Web.Domain.IService
/// <summary>
/// 获取即时库存明细汇总
/// </summary>
/// <param name="mids"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
Task<List<InventoryDetailsSummaryResponse>> GetInventoryDetailsSummary(List<int> mids, List<string> stockCodes, List<string> orgCodes);
Task<List<InventoryDetailsSummaryResponse>> GetInventoryDetailsSummary(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes);
}
}

View File

@@ -25,15 +25,15 @@ namespace WMS.Web.Domain.IService
/// 生成dto
/// </summary>
/// <param name="boxId"></param>
/// <param name="materialId"></param>
/// <param name="materialNumber"></param>
/// <param name="orgCode"></param>
/// <param name="stockCode"></param>
/// <param name="subStockId"></param>
/// <param name="subStockCode"></param>
/// <param name="orderType"></param>
/// <param name="billNo"></param>
/// <param name="qty"></param>
/// <param name="inventoryInOutType"></param>
/// <returns></returns>
InventoryInOutDetailsGenerateDto GenerateDto(int boxId, int materialId, string orgCode, string stockCode, int subStockId, OrderType orderType, string billNo, decimal qty, InventoryInOutType inventoryInOutType);
InventoryInOutDetailsGenerateDto GenerateDto(int boxId, string materialNumber, string orgCode, string stockCode, string subStockCode, OrderType orderType, string billNo, decimal qty, InventoryInOutType inventoryInOutType);
}
}

View File

@@ -59,6 +59,14 @@ namespace WMS.Web.Domain.IService.Public
/// <returns></returns>
string GetMaterialUnitName(List<ErpMaterialDto> erpMaterials, int materialId);
/// <summary>
/// 获取物料基本单位名称
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
string GetMaterialUnitName(List<ErpMaterialDto> erpMaterials, string materialNumber);
/// <summary>
/// 获取物料的条码
/// </summary>

View File

@@ -40,20 +40,20 @@ namespace WMS.Web.Domain.Infrastructure
/// <summary>
/// 列表-根据物料和仓库和仓位
/// </summary>
/// <param name="materialIds"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="subStockIds"></param>
/// <param name="subStockCodes"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds, List<string> orgCodes);
Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> subStockCodes, List<string> orgCodes);
/// <summary>
/// 列表-根据物料和仓库
/// </summary>
/// <param name="materialIds"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<string> orgCodes);
Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes);
}
}

View File

@@ -64,7 +64,7 @@ namespace WMS.Web.Domain.Mappers
.ForMember(x => x.SupplierId, ops => ops.MapFrom(x => x.SupplierId))
.ForMember(x => x.OrgId, ops => ops.MapFrom(x => x.OrgId))
.ForMember(x => x.OrgCode, ops => ops.MapFrom(x => x.OrgCode))
.ForMember(x => x.MaterialId, ops => ops.MapFrom(x => x.MaterialId))
.ForMember(x => x.MaterialNumber, ops => ops.MapFrom(x => x.MaterialNumber))
.ForMember(x => x.StockCode, ops => ops.MapFrom(x => x.StockCode))
.ForMember(x => x.DeliveredQty, ops => ops.MapFrom(x => x.DeliveredQty))
.ForMember(x => x.FactoryPrice, ops => ops.MapFrom(x => x.FactoryPrice))

View File

@@ -70,12 +70,12 @@ namespace WMS.Web.Domain.Services
var targetBoxInventorys = await _boxInventoryRepositories.GetList(targetBoxIds);
//2.2组合要生成的dto
var generateDtos = dtoDatas.GroupBy(x => new { x.SrcBoxId, x.DestBoxId, x.DestStockCode, x.DestSubStockId, x.DestBoxOrgCode }).Select(x => new BoxInventoryChangeGenerateDto()
var generateDtos = dtoDatas.GroupBy(x => new { x.SrcBoxId, x.DestBoxId, x.DestStockCode, x.DestSubStockCode, x.DestBoxOrgCode }).Select(x => new BoxInventoryChangeGenerateDto()
{
BoxId = x.Key.SrcBoxId,
TargetBoxId = x.Key.DestBoxId,
StockCode = x.Key.DestStockCode,
SubStockId = x.Key.DestSubStockId,
SubStockCode = x.Key.DestSubStockCode,
TargetBoxOrgCode = x.Key.DestBoxOrgCode
}).ToList();
@@ -90,7 +90,7 @@ namespace WMS.Web.Domain.Services
{
//3.2组装明细
var det = new BoxInventoryDetailsChangeGenerateDto();
det.MaterialId = item.MaterialId;
det.MaterialNumber = item.MaterialNumber;
det.Qty = item.Qty;
det.SerialNumbers = item.SerialNumbers;
x.Details.Add(det);
@@ -113,9 +113,9 @@ namespace WMS.Web.Domain.Services
if (sour != null)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.SrcBoxId, item.MaterialId,
item.SrcBoxId, item.MaterialNumber,
sour.OrgCode, sour.StockCode,
sour.SubStockId, OrderType.ChangeBox,
sour.SubStockCode, OrderType.ChangeBox,
item.BillNo, item.Qty, InventoryInOutType.Out);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
@@ -124,9 +124,9 @@ namespace WMS.Web.Domain.Services
if (tagBox != null)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.DestBoxId, item.MaterialId,
item.DestBoxId, item.MaterialNumber,
item.DestBoxOrgCode, item.DestStockCode,
item.DestSubStockId, OrderType.ChangeBox,
item.DestSubStockCode, OrderType.ChangeBox,
item.BillNo, item.Qty, InventoryInOutType.In);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
@@ -172,13 +172,13 @@ namespace WMS.Web.Domain.Services
generateDto.BoxId = item.BoxId;
generateDto.OrgCode = item.OrgCode;
generateDto.StockCode = item.StockCode;
generateDto.SubStockId = item.Type == MoveBoxType.Up ? item.DestSubStockId : item.SrcSubStockId;
generateDto.SubStockCode = item.Type == MoveBoxType.Up ? item.DestSubStockCode : item.SrcSubStockCode;
generateDto.InventoryInOutType = item.Type == MoveBoxType.Down ? (int)InventoryInOutType.Out : (int)InventoryInOutType.In;
//2.2.2箱库存dto-组装明细
foreach (var detItem in item.Details)
{
var genDetDto = new BoxInventoryMoveDetailsGenerateDto();
genDetDto.MaterialId = detItem.MaterialId;
genDetDto.MaterialNumber = detItem.MaterialNumber;
genDetDto.Qty = detItem.Qty;
genDetDto.SerialNumbers = detItem.SerialNumbers;
generateDto.Details.Add(genDetDto);
@@ -186,7 +186,7 @@ namespace WMS.Web.Domain.Services
generateDtoList.Add(generateDto);
//2.2.2物料收发明dto-组装
var SubStockId = item.Type == MoveBoxType.Up ? item.DestSubStockId : item.SrcSubStockId;
var SubStockCode = item.Type == MoveBoxType.Up ? item.DestSubStockCode : item.SrcSubStockCode;
InventoryInOutType InOutType = item.Type == MoveBoxType.Down ? InventoryInOutType.Out : InventoryInOutType.In;
var ishave = boxInventorys.Where(x => x.BoxId == item.BoxId).Any();
//上架-箱是不存在库存的情况下,生成物料收发明细
@@ -197,9 +197,9 @@ namespace WMS.Web.Domain.Services
foreach (var boxDet in item.Details)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, boxDet.MaterialId,
item.BoxId, boxDet.MaterialNumber,
item.OrgCode, item.StockCode,
SubStockId, OrderType.MoveBox,
SubStockCode, OrderType.MoveBox,
item.BillNo, boxDet.Qty, InOutType);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
@@ -246,8 +246,7 @@ namespace WMS.Web.Domain.Services
BoxId = x.Key.BoxId,
OrgCode = dtoData.OrgCode,
StockCode = dtoData.StockCode,
SubStockId = dtoData.SubStockId,
//InventoryInOutMethod = (int)dtoData.Method,
SubStockCode = dtoData.SubStockCode,
InventoryInOutType = dtoData.Type == BackRecordType.OutstockOn ? (int)InventoryInOutType.In : (int)InventoryInOutType.Out
}).ToList();
@@ -262,7 +261,7 @@ namespace WMS.Web.Domain.Services
{
//3.2组装明细
var det = new BoxInventoryBackDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.MaterialNumber = detItem.MaterialNumber;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
@@ -278,9 +277,9 @@ namespace WMS.Web.Domain.Services
foreach (var item in dtoData.Details)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, item.MaterialId,
item.BoxId, item.MaterialNumber,
dtoData.OrgCode, dtoData.StockCode,
dtoData.SubStockId, OrderType.Back,
dtoData.SubStockCode, OrderType.Back,
dtoData.BillNo, item.Qty, (dtoData.Type == BackRecordType.InstockOff ? InventoryInOutType.Out : InventoryInOutType.In));
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
@@ -314,12 +313,12 @@ namespace WMS.Web.Domain.Services
var dtoDetails_in = dtoDatas.Where(x => x.ResultType == TakeStockType.Profit).SelectMany(x => x.Details).ToList();
//2.组装:入库数据
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
var generateDtoList_in = dtoDetails_in.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockCode }).Select(x => new BoxInventoryTakeGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In
}).ToList();
@@ -333,7 +332,7 @@ namespace WMS.Web.Domain.Services
{
//3.2组装明细
var det = new BoxInventoryTakeDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.MaterialNumber = detItem.MaterialNumber;
det.Qty = detItem.FinalQty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
@@ -343,12 +342,12 @@ namespace WMS.Web.Domain.Services
//3.组装:出库数据
var dtoDetails_out = dtoDatas.Where(x => x.ResultType == TakeStockType.Loss).SelectMany(x => x.Details).ToList();
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto()
var generateDtoList_out = dtoDetails_out.GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockCode }).Select(x => new BoxInventoryTakeGenerateDto()
{
BoxId = x.Key.BoxId,
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
SubStockId = x.Key.SubStockId,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out
}).ToList();
@@ -362,7 +361,7 @@ namespace WMS.Web.Domain.Services
{
//3.2组装明细
var det = new BoxInventoryTakeDetailsGenerateDto();
det.MaterialId = detItem.MaterialId;
det.MaterialNumber = detItem.MaterialNumber;
det.Qty = detItem.FinalQty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
@@ -386,9 +385,9 @@ namespace WMS.Web.Domain.Services
if (entity != null)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, item.MaterialId,
item.BoxId, item.MaterialNumber,
item.OrgCode, item.StockCode,
item.SubStockId, OrderType.Take,
item.SubStockCode, OrderType.Take,
entity.BillNo, item.FinalQty, (entity.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In));
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
}
@@ -427,7 +426,7 @@ namespace WMS.Web.Domain.Services
BoxId = x.Key.BoxId,
OrgCode = dtoData.OrgCode,
StockCode = dtoData.StockCode,
SubStockId = dtoData.SubStockId,
SubStockCode = dtoData.SubStockCode,
InventoryInOutMethod = (int)dtoData.Method,
InventoryInOutType = (int)InventoryInOutType.In
}).ToList();
@@ -442,7 +441,7 @@ namespace WMS.Web.Domain.Services
{
//2.2组装明细
var det = new BoxInventoryGenerateDetailsDto();
det.MaterialId = detItem.MaterialId;
det.MaterialNumber = detItem.MaterialNumber;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
@@ -459,9 +458,9 @@ namespace WMS.Web.Domain.Services
foreach (var item in dtoData.Details)
{
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, item.MaterialId,
item.BoxId, item.MaterialNumber,
dtoData.OrgCode, dtoData.StockCode,
dtoData.SubStockId, InStockTypeConvert(dtoData.Type),
dtoData.SubStockCode, InStockTypeConvert(dtoData.Type),
item.SourceBillNo, item.Qty, InventoryInOutType.In);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
@@ -523,7 +522,7 @@ namespace WMS.Web.Domain.Services
{
x.OrgCode = current_box_invetory.OrgCode;
x.StockCode = current_box_invetory.StockCode;
x.SubStockId = current_box_invetory.SubStockId;
x.SubStockCode = current_box_invetory.SubStockCode;
}
////3.1先通过中间层的明细的箱明细找到中间层明细的IDS
//var current_materialDetails_ids = dtoData.Details.SelectMany(t => t.BoxsDetails).Where(t => t.BoxId == x.BoxId).GroupBy(t => t.DetailId).Select(t => t.Key).ToList();
@@ -539,7 +538,7 @@ namespace WMS.Web.Domain.Services
//2.2组装明细
var det = new BoxInventoryGenerateDetailsDto();
det.MaterialId = current_det == null ? 0 : current_det.MaterialId;
det.MaterialNumber = current_det == null ? "" : current_det.MaterialNumber;
det.Qty = detItem.Qty;
det.SerialNumbers = detItem.SerialNumbers;
x.Details.Add(det);
@@ -564,9 +563,9 @@ namespace WMS.Web.Domain.Services
var currentDet = current_materialDetails.Where(x => x.Id == item.DetailId).FirstOrDefault();
var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto(
item.BoxId, currentDet.MaterialId,
item.BoxId, currentDet.MaterialNumber,
dtoData.OrgCode, dtoData.StockCode,
item.SubStockId, OutStockTypeConvert(dtoData.Type),
item.SubStockCode, OutStockTypeConvert(dtoData.Type),
dtoData.BillNo, item.Qty, InventoryInOutType.Out);
InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet);
@@ -618,7 +617,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoItem in dto.Details)
{
//2.2.1箱库存:找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题
var sour_ChangeDetail = sour_update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var sour_ChangeDetail = sour_update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (sour_ChangeDetail == null)
return Result.ReFailure(ResultCodes.BoxInventoryNoDataError);
//2.2.1箱库存:箱物料的库存数量不足;小于要拿出来的数量
@@ -632,10 +631,10 @@ namespace WMS.Web.Domain.Services
//2.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = dtoItem.MaterialId;
inventoryDet.MaterialNumber = dtoItem.MaterialNumber;
inventoryDet.OrgCode = sour_update_entity.OrgCode;
inventoryDet.StockCode = sour_update_entity.StockCode;
inventoryDet.SubStockId = sour_update_entity.SubStockId;
inventoryDet.SubStockCode = sour_update_entity.SubStockCode;
inventoryDet.Qty = dtoItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//2.2.2即时库存:修改箱库存的集合
@@ -667,33 +666,33 @@ namespace WMS.Web.Domain.Services
var tagBox = targetBoxInventorys.Where(x => x.BoxId == dto.TargetBoxId).FirstOrDefault();
if (tagBox != null)
{
var subStockId = tagBox.SubStockId;
var subStockCode = tagBox.SubStockCode;
var stockCode = tagBox.StockCode;
var orgCode = tagBox.OrgCode;
var tag_update_entity = tagBox;
//2.2.1这里为了重新上架,改变仓库和仓位的需求
if (!string.IsNullOrEmpty(dto.StockCode) && dto.SubStockId.HasValue)
if (!string.IsNullOrEmpty(dto.StockCode) && !string.IsNullOrEmpty(dto.SubStockCode))
{
//2.2.3.在变更目标箱的-仓库-仓位-组织
tag_update_entity.StockCode = dto.StockCode;
tag_update_entity.SubStockId = dto.SubStockId.Value;
tag_update_entity.SubStockCode = dto.SubStockCode;
tag_update_entity.OrgCode = dto.TargetBoxOrgCode;
}
tag_update_entity.Details = tagBox.Details;
//2.2.2仓位和原来的目标箱的仓位不一致的情况下-》》把目标箱原来仓位的物料进行-即时库存的变更-(减库存)
if (subStockId != tag_update_entity.SubStockId)
if (subStockCode != tag_update_entity.SubStockCode)
{
foreach (var item in tag_update_entity.Details)
{
//2.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = item.MaterialId;
inventoryDet.MaterialNumber = item.MaterialNumber;
inventoryDet.OrgCode = orgCode;
inventoryDet.StockCode = stockCode;
inventoryDet.SubStockId = subStockId;
inventoryDet.SubStockCode = subStockCode;
inventoryDet.Qty = item.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//2.2.2即时库存:修改箱库存的集合
@@ -702,10 +701,10 @@ namespace WMS.Web.Domain.Services
//2.2.2组装即时库存dto
var inventoryDet_i = new InventoryDetailsGenerateDto();
inventoryDet_i.MaterialId = item.MaterialId;
inventoryDet_i.MaterialNumber = item.MaterialNumber;
inventoryDet_i.OrgCode = tag_update_entity.OrgCode;
inventoryDet_i.StockCode = tag_update_entity.StockCode;
inventoryDet_i.SubStockId = tag_update_entity.SubStockId;
inventoryDet_i.SubStockCode = tag_update_entity.SubStockCode;
inventoryDet_i.Qty = item.Qty;
inventoryDet_i.InventoryInOutType = (int)InventoryInOutType.In;
//2.2.2即时库存:修改箱库存的集合
@@ -717,7 +716,7 @@ namespace WMS.Web.Domain.Services
foreach (var item in dto.Details)
{
//2.2.2找到目标箱对应要改变的物料
var tagChangeDetail = tag_update_entity.Details.Where(x => x.MaterialId == item.MaterialId).FirstOrDefault();
var tagChangeDetail = tag_update_entity.Details.Where(x => x.MaterialNumber == item.MaterialNumber).FirstOrDefault();
if (tagChangeDetail != null)
{
tagChangeDetail.Qty = tagChangeDetail.Qty + item.Qty;
@@ -726,7 +725,7 @@ namespace WMS.Web.Domain.Services
else
{
var newTagChangeDetail = new BoxInventoryDetails();
newTagChangeDetail.MaterialId = item.MaterialId;
newTagChangeDetail.MaterialNumber = item.MaterialNumber;
newTagChangeDetail.Qty = item.Qty;
newTagChangeDetail.SerialNumbers = item.SerialNumbers;
tag_update_entity.Details.Add(newTagChangeDetail);
@@ -734,10 +733,10 @@ namespace WMS.Web.Domain.Services
//2.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = item.MaterialId;
inventoryDet.MaterialNumber = item.MaterialNumber;
inventoryDet.OrgCode = tag_update_entity.OrgCode;
inventoryDet.StockCode = tag_update_entity.StockCode;
inventoryDet.SubStockId = tag_update_entity.SubStockId;
inventoryDet.SubStockCode = tag_update_entity.SubStockCode;
inventoryDet.Qty = item.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//2.2.2即时库存:修改箱库存的集合
@@ -777,21 +776,21 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:变更
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -857,10 +856,10 @@ namespace WMS.Web.Domain.Services
{
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = item.MaterialId;
inventoryDet.MaterialNumber = item.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = item.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//3.2.2即时库存:修改箱库存的集合
@@ -889,10 +888,10 @@ namespace WMS.Web.Domain.Services
{
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = item.MaterialId;
inventoryDet.MaterialNumber = item.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = item.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//3.2.2即时库存:修改箱库存的集合
@@ -921,21 +920,21 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -1012,8 +1011,8 @@ namespace WMS.Web.Domain.Services
//赋值序列号
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)
var current_box_mat_serNums = dto.Details.Where(m => m.MaterialNumber == x.MaterialNumber).FirstOrDefault();
if (current_box_mat_serNums != null && current_box_mat_serNums.MaterialNumber == x.MaterialNumber)
x.SerialNumbers.AddRange(current_box_mat_serNums.SerialNumbers);
});
@@ -1029,13 +1028,13 @@ namespace WMS.Web.Domain.Services
var update_entity = boxInventory;
update_entity.OrgCode = dto.OrgCode;
update_entity.StockCode = dto.StockCode;
update_entity.SubStockId = dto.SubStockId;
update_entity.SubStockCode = dto.SubStockCode;
update_entity.Details = boxInventory.Details;
//3.3遍历dto明细
foreach (var dtoItem in dto.Details)
{
//找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var updateDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (updateDetail == null)
{
var det = _mapper.Map<BoxInventoryDetails>(dtoItem);
@@ -1064,8 +1063,8 @@ namespace WMS.Web.Domain.Services
//赋值序列号
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)
var current_box_mat_serNums = dto.Details.Where(m => m.MaterialNumber == x.MaterialNumber).FirstOrDefault();
if (current_box_mat_serNums != null && current_box_mat_serNums.MaterialNumber == x.MaterialNumber)
{
foreach (var serialitem in current_box_mat_serNums.SerialNumbers)
{
@@ -1091,10 +1090,10 @@ namespace WMS.Web.Domain.Services
{
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = item.MaterialId;
inventoryDet.MaterialNumber = item.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = item.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//3.2.2即时库存:修改箱库存的集合
@@ -1118,7 +1117,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoItem in dto.Details)
{
//找到原来的箱库存对应要改变的物料:这个一定是存在的,不存在就有问题
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var updateDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (updateDetail == null)
return Result.ReFailure(ResultCodes.BoxInventoryNoDataError);
//箱物料的库存数量不足;小于要拿出来的数量
@@ -1132,10 +1131,10 @@ namespace WMS.Web.Domain.Services
//4.1即时库存:组装出库
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = dtoItem.MaterialId;
inventoryDet.MaterialNumber = dtoItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = dtoItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//3.2.2即时库存:修改箱库存的集合
@@ -1187,21 +1186,21 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -1259,7 +1258,7 @@ namespace WMS.Web.Domain.Services
{
foreach (var detItem in dto.Details)
{
if (x.MaterialId == detItem.MaterialId)
if (x.MaterialNumber == detItem.MaterialNumber)
{
x.Qty = x.Qty + detItem.Qty;
x.SerialNumbers = detItem.SerialNumbers;
@@ -1270,7 +1269,7 @@ namespace WMS.Web.Domain.Services
//3.4明细添加新的物料
foreach (var detItem in dto.Details)
{
var IsHave_upEnDet = updateEntity.Details.Where(x => x.MaterialId == detItem.MaterialId).Any();
var IsHave_upEnDet = updateEntity.Details.Where(x => x.MaterialNumber == detItem.MaterialNumber).Any();
if (!IsHave_upEnDet)
{
var newDet = _mapper.Map<BoxInventoryDetails>(detItem);
@@ -1279,10 +1278,10 @@ namespace WMS.Web.Domain.Services
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = detItem.MaterialId;
inventoryDet.MaterialNumber = detItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = detItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//3.2.2即时库存:修改箱库存的集合
@@ -1311,7 +1310,7 @@ namespace WMS.Web.Domain.Services
{
foreach (var detItem in dto.Details)
{
if (x.MaterialId == detItem.MaterialId)
if (x.MaterialNumber == detItem.MaterialNumber)
{
x.Qty = x.Qty - detItem.Qty;
x.SerialNumbers = detItem.SerialNumbers;
@@ -1324,10 +1323,10 @@ namespace WMS.Web.Domain.Services
{
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = detItem.MaterialId;
inventoryDet.MaterialNumber = detItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = detItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//3.2.2即时库存:修改箱库存的集合
@@ -1378,21 +1377,21 @@ namespace WMS.Web.Domain.Services
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -1431,7 +1430,7 @@ namespace WMS.Web.Domain.Services
item.Details.ForEach(x =>
{
var current_sers_info = out_SerialNumbers.Where(o => o.BoxId == item.BoxId && o.MaterialId == x.MaterialId).ToList();
var current_sers_info = out_SerialNumbers.Where(o => o.BoxId == item.BoxId && o.MaterialNumber == x.MaterialNumber).ToList();
if (current_sers_info != null && current_sers_info.Count != 0)
{
x.Qty = x.Qty - current_sers_info.Count;
@@ -1440,10 +1439,10 @@ namespace WMS.Web.Domain.Services
//3.2.2组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = x.MaterialId;
inventoryDet.MaterialNumber = x.MaterialNumber;
inventoryDet.OrgCode = item.OrgCode;
inventoryDet.StockCode = item.StockCode;
inventoryDet.SubStockId = item.SubStockId;
inventoryDet.SubStockCode = item.SubStockCode;
inventoryDet.Qty = current_sers_info.Count;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//3.2.2即时库存:修改的集合
@@ -1533,9 +1532,9 @@ namespace WMS.Web.Domain.Services
var addEntity = _mapper.Map<BoxInventory>(dto);
//3.3要合并下相同的物料
var dtoDets_merge = dto.Details.GroupBy(d => new { d.MaterialId }).Select(d => new BoxInventoryGenerateDetailsDto
var dtoDets_merge = dto.Details.GroupBy(d => new { d.MaterialNumber }).Select(d => new BoxInventoryGenerateDetailsDto
{
MaterialId = d.Key.MaterialId,
MaterialNumber = d.Key.MaterialNumber,
Qty = d.Sum(t => t.Qty),
SerialNumbers = d.SelectMany(t => t.SerialNumbers).ToList()
}).ToList();
@@ -1551,10 +1550,10 @@ namespace WMS.Web.Domain.Services
{
//4.1组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = detItem.MaterialId;
inventoryDet.MaterialNumber = detItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId ?? 0;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = detItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//4.2即时库存:修改箱库存的集合
@@ -1572,9 +1571,9 @@ namespace WMS.Web.Domain.Services
//3.2组装要新增的箱库存信息:箱和明细和序列号
var addEntity = _mapper.Map<BoxInventory>(dto);
//3.3要合并下相同的物料
var dtoDets_merge = dto.Details.GroupBy(d => new { d.MaterialId }).Select(d => new BoxInventoryGenerateDetailsDto
var dtoDets_merge = dto.Details.GroupBy(d => new { d.MaterialNumber }).Select(d => new BoxInventoryGenerateDetailsDto
{
MaterialId = d.Key.MaterialId,
MaterialNumber = d.Key.MaterialNumber,
Qty = d.Sum(t => t.Qty),
SerialNumbers = d.SelectMany(t => t.SerialNumbers).ToList()
}).ToList();
@@ -1590,10 +1589,10 @@ namespace WMS.Web.Domain.Services
{
//4.1组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = dtoItem.MaterialId;
inventoryDet.MaterialNumber = dtoItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId ?? 0;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = dtoItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//4.2即时库存:修改箱库存的集合
@@ -1609,11 +1608,11 @@ namespace WMS.Web.Domain.Services
{
//明细对应的物料:存在就修改,不存在即新增
var update_entity_det = new BoxInventoryDetails();
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var updateDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (updateDetail == null)
{
update_entity_det.Qty = dtoItem.Qty;
update_entity_det.MaterialId = dtoItem.MaterialId;
update_entity_det.MaterialNumber = dtoItem.MaterialNumber;
update_entity_det.SerialNumbers = dtoItem.SerialNumbers;
update_entity.Details.Add(update_entity_det);
}
@@ -1625,10 +1624,10 @@ namespace WMS.Web.Domain.Services
//4.1组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = dtoItem.MaterialId;
inventoryDet.MaterialNumber = dtoItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId ?? 0;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = dtoItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.In;
//4.2即时库存:修改箱库存的集合
@@ -1660,21 +1659,21 @@ namespace WMS.Web.Domain.Services
}
//5.即时库存:处理
//5.1先合并相同的数据
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_in = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.In).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.In,
Qty = x.Sum(t => t.Qty)
}).ToList();
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos_out = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -1735,10 +1734,10 @@ namespace WMS.Web.Domain.Services
{
//4.1组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = detItem.MaterialId;
inventoryDet.MaterialNumber = detItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId ?? 0;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = detItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//4.2即时库存:修改箱库存的集合
@@ -1756,7 +1755,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoItem in dto.Details)
{
//3.3.找到当前明细物料:没有则返回失败;提示:“该箱物料库存不存在”
var update_entityDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var update_entityDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (update_entityDetail == null)
return Result.ReFailure(ResultCodes.BoxInventoryMaterialNoDataError);
//3.4判断库存数量是否不足
@@ -1770,10 +1769,10 @@ namespace WMS.Web.Domain.Services
//4.1组装即时库存dto
var inventoryDet = new InventoryDetailsGenerateDto();
inventoryDet.MaterialId = dtoItem.MaterialId;
inventoryDet.MaterialNumber = dtoItem.MaterialNumber;
inventoryDet.OrgCode = dto.OrgCode;
inventoryDet.StockCode = dto.StockCode;
inventoryDet.SubStockId = dto.SubStockId ?? 0;
inventoryDet.SubStockCode = dto.SubStockCode;
inventoryDet.Qty = dtoItem.Qty;
inventoryDet.InventoryInOutType = (int)InventoryInOutType.Out;
//4.2即时库存:修改箱库存的集合
@@ -1817,12 +1816,12 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
}
//5.即时库存:变更处理
var invDetGenDtos = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode, x.SubStockId }).Select(x => new InventoryDetailsGenerateDto()
var invDetGenDtos = InventoryDetailsGenerateDto.Where(x => x.InventoryInOutType == (int)InventoryInOutType.Out).GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode, x.SubStockCode }).Select(x => new InventoryDetailsGenerateDto()
{
OrgCode = x.Key.OrgCode,
StockCode = x.Key.StockCode,
MaterialId = x.Key.MaterialId,
SubStockId = x.Key.SubStockId,
MaterialNumber = x.Key.MaterialNumber,
SubStockCode = x.Key.SubStockCode,
InventoryInOutType = (int)InventoryInOutType.Out,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -2004,7 +2003,7 @@ namespace WMS.Web.Domain.Services
foreach (var dtoItem in dto.Details)
{
//3.3.找到当前明细物料:没有则返回失败;提示:“该箱物料库存不存在”
var update_entityDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var update_entityDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (update_entityDetail == null)
return Result.ReFailure(ResultCodes.BoxInventoryMaterialNoDataError);
//3.4判断库存数量是否不足
@@ -2073,11 +2072,11 @@ namespace WMS.Web.Domain.Services
{
//明细对应的物料:存在就修改,不存在即新增
var update_entity_det = new BoxInventoryDetails();
var updateDetail = update_entity.Details.Where(x => x.MaterialId == dtoItem.MaterialId).FirstOrDefault();
var updateDetail = update_entity.Details.Where(x => x.MaterialNumber == dtoItem.MaterialNumber).FirstOrDefault();
if (updateDetail == null)
{
update_entity_det.Qty = dtoItem.Qty;
update_entity_det.MaterialId = dtoItem.MaterialId;
update_entity_det.MaterialNumber = dtoItem.MaterialNumber;
update_entity_det.SerialNumbers = dtoItem.SerialNumbers;
update_entity.Details.Add(update_entity_det);
}
@@ -2108,8 +2107,8 @@ namespace WMS.Web.Domain.Services
invDto.OrgCode = dto.OrgCode;
invDto.InventoryInOutType = dto.InventoryInOutType;
invDto.StockCode = dto.StockCode;
invDto.SubStockId = dto.SubStockId ?? 0;
invDto.MaterialId = dtoDet.MaterialId;
invDto.SubStockCode = dto.SubStockCode;
invDto.MaterialNumber = dtoDet.MaterialNumber;
invDto.Qty = dtoDet.Qty;
invDtos.Add(invDto);
}

View File

@@ -234,11 +234,10 @@ namespace WMS.Web.Domain.Services
box_task_detail.ReceiveQty = current_task_det.ReceiveQty;
box_task_detail.AccruedQty = current_task_det.AccruedQty;
box_task_detail.ErpDetailId = item.ErpDetailId;
box_task_detail.MaterialId = item.MaterialId;
box_task_detail.BoxMaterialQty = item.ReceiveQty;
box_task_detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, item.MaterialId);
box_task_detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, item.MaterialId);
box_task_detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, item.MaterialId);
box_task_detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, item.MaterialNumber);
box_task_detail.MaterialNumber = item.MaterialNumber;
box_task_detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, item.MaterialNumber);
result.Details.Add(box_task_detail);
}
@@ -271,15 +270,6 @@ namespace WMS.Web.Domain.Services
if (tasks == null || tasks.Count==0)
return Result<InStock>.ReFailure(ResultCodes.SourceBillNoDateError);
////1.1.2判断上架数量不能超过应入库数量
//var dtoTotalDetails = dto.Details.GroupBy(x => new { x.ErpDetailId }).Select(x => new { ErpDetailId = x.Key.ErpDetailId, Qty = x.Sum(t => t.Qty) }).ToList();
//foreach (var item in tasks.SelectMany(x => x.Details).ToList())
//{
// var current_det = dtoTotalDetails.Where(x => x.ErpDetailId == item.ErpDetailId).FirstOrDefault();
// if (current_det != null && current_det.ErpDetailId == item.ErpDetailId && (item.AccruedQty - item.RealityQty) < current_det.Qty)
// return Result<InStock>.ReFailure(ResultCodes.ShelfNoPurchaseSave_Qty_Error);
//}
// 组织集合
var orgs = new List<ErpOrgDto>();
var orgs_result = await _erpService.BillQueryForOrg();
@@ -292,17 +282,17 @@ namespace WMS.Web.Domain.Services
entity.OrgId = currentOrg == null ? 0 : currentOrg.Id;
entity.StockCode = dto.StockCode;
entity.OrgCode = dto.OrgCode;
entity.SubStockId = dto.SubStockId;
entity.SubStockCode = dto.SubStockCode;
entity.Method = InventoryInOutMethod.Box;
entity.Details = _mapper.Map<List<InStockDetails>>(dto.Details);
entity.Create(loginInfo.UserInfo.StaffId);
//组装erp明细
entity.ErpDetails = dto.Details.GroupBy(x => new { x.ErpDetailId, x.MaterialId, x.SourceBillNo })
entity.ErpDetails = dto.Details.GroupBy(x => new { x.ErpDetailId, x.MaterialNumber, x.SourceBillNo })
.Select(x => new InStockErpDetails
{
ErpDetailId = x.Key.ErpDetailId,
MaterialId = x.Key.MaterialId,
MaterialNumber = x.Key.MaterialNumber,
SourceBillNo = x.Key.SourceBillNo,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -316,7 +306,7 @@ namespace WMS.Web.Domain.Services
var current_box_serNums = serialNumbers.Where(t => t.BoxId == x.BoxId).ToList();
if (current_box_serNums != null)
{
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList();
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
}
});
@@ -326,14 +316,14 @@ namespace WMS.Web.Domain.Services
return Result<InStock>.ReFailure(ResultCodes.DateWriteError);
//处理添加入库汇总明细
var totalDetails = dto.Details.GroupBy(x => new { x.TaskId, x.SourceBillNo, x.SupplierId, x.MaterialId })
var totalDetails = dto.Details.GroupBy(x => new { x.TaskId, x.SourceBillNo, x.SupplierId, x.MaterialNumber })
.Select(x => new InStockTotalDetails
{
InStockId = entity.Id,
TaskId = x.Key.TaskId,
SourceBillNo = x.Key.SourceBillNo,
SupplierId = x.Key.SupplierId,
MaterialId = x.Key.MaterialId,
MaterialNumber = x.Key.MaterialNumber,
Qty = x.Sum(t => t.Qty),
SerialNumbers = x.SelectMany(t => t.SerialNumbers).ToList()
}).ToList();
@@ -348,7 +338,7 @@ namespace WMS.Web.Domain.Services
{
task.Details.ForEach(x =>
{
var current_entityDets = dto.Details.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialId==x.MaterialId).ToList();
var current_entityDets = dto.Details.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialNumber == x.MaterialNumber).ToList();
if (current_entityDets != null && current_entityDets.Count != 0 && x.ErpDetailId == current_entityDets.FirstOrDefault().ErpDetailId)
{
var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty);
@@ -407,10 +397,10 @@ namespace WMS.Web.Domain.Services
//1.1.2判断上架数量不能超过应入库数量
var dtoDetails = dto.Boxs.SelectMany(x => x.Details).ToList();
var dtoTotalDetails = dtoDetails.GroupBy(x => new { x.ErpDetailId,x.MaterialId }).Select(x => new { ErpDetailId = x.Key.ErpDetailId, MaterialId=x.Key.MaterialId, Qty = x.Sum(t => t.Qty) }).ToList();
var dtoTotalDetails = dtoDetails.GroupBy(x => new { x.ErpDetailId,x.MaterialNumber }).Select(x => new { ErpDetailId = x.Key.ErpDetailId, MaterialNumber = x.Key.MaterialNumber, Qty = x.Sum(t => t.Qty) }).ToList();
foreach (var item in task.Details)
{
var current_det = dtoTotalDetails.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialId==item.MaterialId).FirstOrDefault();
var current_det = dtoTotalDetails.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).FirstOrDefault();
if (current_det != null && current_det.ErpDetailId == item.ErpDetailId && (item.AccruedQty - item.RealityQty) < current_det.Qty)
return Result.ReFailure(ResultCodes.ShelfNoPurchaseSave_Qty_Error);
}
@@ -421,7 +411,7 @@ namespace WMS.Web.Domain.Services
entity.OrgId = task.Details.Select(x => x.OrgId).FirstOrDefault();
entity.StockCode = dto.StockCode;
entity.OrgCode = dto.OrgCode;
entity.SubStockId = dto.SubStockId;
entity.SubStockCode = dto.SubStockCode;
entity.Method = dto.ShelfMethod == (int)ShelfMethod.Box ? InventoryInOutMethod.Box : InventoryInOutMethod.Product;
entity.Details = new List<InStockDetails>();
@@ -437,10 +427,6 @@ namespace WMS.Web.Domain.Services
item.TaskId = dto.TaskId;
item.SourceBillNo = task.SourceBillNo;
item.BoxId = box.BoxId;
//item.SubStockId = dto.SubStockId;
//item.StockCode = dto.StockCode;
//item.OrgCode = dto.OrgCode;
//item.OrgId = task.Details.Select(x => x.OrgId).FirstOrDefault();
});
//3.3添加到临时集合中
temps.AddRange(dets);
@@ -461,7 +447,7 @@ namespace WMS.Web.Domain.Services
var current_box_serNums = serialNumbers.Where(t => t.BoxId == x.BoxId).ToList();
if (current_box_serNums != null)
{
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialId == x.MaterialId).Select(t => t.SerialNumber).ToList();
var current_box_mat_serNums = current_box_serNums.Where(t => t.MaterialNumber == x.MaterialNumber).Select(t => t.SerialNumber).ToList();
x.SerialNumbers.AddRange(current_box_mat_serNums);
}
});
@@ -473,13 +459,13 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.DateWriteError);
//处理添加入库汇总明细
var totalDetails = dto.Boxs.SelectMany(x => x.Details).GroupBy(x => new { x.MaterialId })
var totalDetails = dto.Boxs.SelectMany(x => x.Details).GroupBy(x => new { x.MaterialNumber })
.Select(x => new InStockTotalDetails
{
InStockId = entity.Id,
TaskId = dto.TaskId,
SourceBillNo = task.SourceBillNo,
MaterialId = x.Key.MaterialId,
MaterialNumber = x.Key.MaterialNumber,
Qty = x.Sum(t => t.Qty),
SerialNumbers = x.SelectMany(t => t.SerialNumbers).ToList()
}).ToList();
@@ -493,7 +479,7 @@ namespace WMS.Web.Domain.Services
{
task.Details.ForEach(x =>
{
var current_entityDets = entity.Details.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialId==x.MaterialId).ToList();
var current_entityDets = entity.Details.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialNumber == x.MaterialNumber).ToList();
if (current_entityDets != null && current_entityDets.Count != 0 && x.ErpDetailId == current_entityDets.FirstOrDefault().ErpDetailId)
{
var current_entityDet_matQty = current_entityDets.Sum(x => x.Qty);
@@ -508,87 +494,6 @@ namespace WMS.Web.Domain.Services
return Result.ReFailure(ResultCodes.DateWriteError);
}
//6.当按产品上架:就要调用改箱的操作;
if (dto.ShelfMethod == (int)ShelfMethod.Product)
{
////通过序列号,获取序列号对应的箱
//var cureent_serialNumbs = await _serialNumbersRepositories.GetEntityList(dto.Boxs.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList());
//var current_boxIds = cureent_serialNumbs.GroupBy(x => x.BoxId).Select(x => x.Key).ToList();
////当前序列号对应的箱的集合信息
//var current_boxs = await _boxRepositories.GetEntityList(current_boxIds);
////要改箱的数据集合
//var ganenrateChangeBoxs = new List<SaveChangeBoxRecordRequest>();
////当前按产品上架的箱子
//var dto_box = dto.Boxs.FirstOrDefault();
////遍历:序列号对应多个箱
//foreach (var boxId in current_boxIds)
//{
// if (dto_box.BoxId != boxId)
// {
// var box = current_boxs.Where(x => x.Id == boxId).FirstOrDefault();
// //遍历:明细
// var changeBox = new SaveChangeBoxRecordRequest();
// changeBox.DestBoxId = dto_box.BoxId;
// changeBox.SubStockId = dto.SubStockId;
// foreach (var item in dto_box.Details)
// {
// var boxDet = box.Details.Where(t => t.MaterialId == item.MaterialId).FirstOrDefault();
// if (boxDet != null && boxDet.MaterialId == item.MaterialId)
// {
// var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
// changeBoxRD.MaterialId = item.MaterialId;
// changeBoxRD.Qty = item.Qty;
// changeBoxRD.SerialNumbers = item.SerialNumbers;
// changeBox.Details.Add(changeBoxRD);
// }
// }
// //当明细存在,则要有原箱的情况下进行改箱
// if (changeBox.Details.Count != 0)
// {
// changeBox.SrcBoxId = boxId;
// ganenrateChangeBoxs.Add(changeBox);
// }
// }
//}
////没有原箱的情况下,要改箱操作对象
//var serialNub_isNotHaveBOx = new List<string>();
//var serialNumbs = dto.Boxs.SelectMany(x => x.Details).SelectMany(x => x.SerialNumbers).ToList();
//foreach (var item in serialNumbs)
//{
// var current_IsHaveBox_serialNub = cureent_serialNumbs.Where(x => x.SerialNumber == item).Any();
// if (!current_IsHaveBox_serialNub)
// serialNub_isNotHaveBOx.Add(item);
//}
//if (serialNub_isNotHaveBOx.Count != 0)
//{
// var changeBox_tag = new SaveChangeBoxRecordRequest();
// changeBox_tag.DestBoxId = dto_box.BoxId;
// changeBox_tag.SrcBoxId = 0;
// changeBox_tag.SubStockId = dto.SubStockId;
// foreach (var item in dto_box.Details)
// {
// //遍历:明细
// var changeBoxRD = new SaveChangeBoxRecordDetailsRequest();
// changeBoxRD.MaterialId = item.MaterialId;
// changeBoxRD.Qty = item.Qty;
// changeBoxRD.SerialNumbers = item.SerialNumbers;
// changeBox_tag.Details.Add(changeBoxRD);
// }
// ganenrateChangeBoxs.Add(changeBox_tag);
//}
////改箱保存操作--弃用
//var changeBoxSave_Result = await _changeMoveBoxService.ChangeBox_InStock(entity, loginInfo, isTransaction);
//if (!changeBoxSave_Result.IsSuccess)
// return changeBoxSave_Result;
}
//6.1序列号跟踪流程添加;备注:和上面的改箱操作后会记录序列号轨迹不冲突;
var serialNumber_result = await _serialNumberService.InStock(entity, loginInfo, isTransaction);
if (!serialNumber_result.IsSuccess)
@@ -630,7 +535,7 @@ namespace WMS.Web.Domain.Services
{
//当前明细收货的明细可以通过erp明细ID获取唯一一个;并变更收货数量
var current_dto_det = dto.Details.Where(t => t.ErpDetailId == x.ErpDetailId).FirstOrDefault();
if (current_dto_det != null && x.ErpDetailId == current_dto_det.ErpDetailId && x.MaterialId==current_dto_det.MaterialId)
if (current_dto_det != null && x.ErpDetailId == current_dto_det.ErpDetailId && x.MaterialNumber == current_dto_det.MaterialNumber)
x.ReceiveQty = x.ReceiveQty + current_dto_det.ReceiveQty;
});
@@ -727,16 +632,16 @@ namespace WMS.Web.Domain.Services
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.BoxInventoryHaveInventoryError);
//合并多个箱明细的数据:相同物料数量合并
var boxDetails = boxs.SelectMany(x => x.Details).GroupBy(x => x.MaterialId).Select(x => new { MaterialId = x.Key, Qty = x.Sum(t => t.Qty) }).ToList();
var boxDetails = boxs.SelectMany(x => x.Details).GroupBy(x => x.MaterialNumber).Select(x => new { MaterialNumber = x.Key, Qty = x.Sum(t => t.Qty) }).ToList();
//采购单:要对比数量
if (task.Type == InstockType.Purchase)
{
//3.比对false为比对失败;
bool isRight = boxDetails.All(x => task_details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty >= x.Qty)) && boxDetails.Count <= task_details.Count;
bool isRight = boxDetails.All(x => task_details.Any(t => t.MaterialNumber == x.MaterialNumber && t.AccruedQty >= x.Qty)) && boxDetails.Count <= task_details.Count;
if (!isRight)
{
var qtyIsError = boxDetails.All(x => task_details.Any(t => t.MaterialId == x.MaterialId && t.AccruedQty < x.Qty));
var qtyIsError = boxDetails.All(x => task_details.Any(t => t.MaterialNumber == x.MaterialNumber && t.AccruedQty < x.Qty));
if (boxDetails.Count > task_details.Count && qtyIsError)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.Contrast_Purchase_Error);
else if (qtyIsError)
@@ -750,7 +655,7 @@ namespace WMS.Web.Domain.Services
else
{
//3.比对false为比对失败;
bool isRight = boxDetails.All(x => task_details.Any(t => t.MaterialId == x.MaterialId)) && boxDetails.Count <= task_details.Count;
bool isRight = boxDetails.All(x => task_details.Any(t => t.MaterialNumber == x.MaterialNumber)) && boxDetails.Count <= task_details.Count;
if (!isRight)
return Result<ContrastMaterialsResponse>.ReFailure(ResultCodes.Contrast_Count_Error);
}
@@ -803,7 +708,7 @@ namespace WMS.Web.Domain.Services
//然后刷选出对应金蝶明细和物料和wms的任务单的明细和物料是一致的就同步下推
foreach (var item in erpDetails_tags)
{
var isHave= erp_purchase_result.Data.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialId == item.MaterialId).Any();
var isHave= erp_purchase_result.Data.Where(x => x.ErpDetailId == item.ErpDetailId && x.MaterialNumber == item.MaterialNumber).Any();
if (isHave)
erpDetails.Add(item);
}

View File

@@ -380,7 +380,7 @@ namespace WMS.Web.Domain.Services
var erp_data = erp_list.Where(t => t.ErpDetailId == x.ErpDetailId).FirstOrDefault();
if (erp_data != null)
{
if (erp_data.MaterialId != x.MaterialId)
if (erp_data.MaterialNumber != x.MaterialNumber)
{
//给老的物料应收数量改为0
x.AccruedQty = 0;
@@ -400,7 +400,7 @@ namespace WMS.Web.Domain.Services
var local_data = data_list_details_new.Where(t => t.ErpDetailId == item.ErpDetailId).ToList();
if (local_data != null && local_data.Count != 0)
{
var isHaveMater_detail = local_data.Where(t => t.MaterialId == item.MaterialId).Any();
var isHaveMater_detail = local_data.Where(t => t.MaterialNumber == item.MaterialNumber).Any();
if (!isHaveMater_detail)
{
//明细的物料改变了:新的物料重新添加一条明细
@@ -496,7 +496,7 @@ namespace WMS.Web.Domain.Services
var erp_data = erp_list.FirstOrDefault(a => a.ErpDetailId == det.ErpDetailId && a.BillNo == order.SourceBillNo);
if (erp_data != null)
{
if (erp_data.MaterialId == det.MaterialId)
if (erp_data.MaterialNumber == det.MaterialNumber)
{
//物料相同的,就改变数值
det.Remark = erp_data.Remark;
@@ -523,7 +523,7 @@ namespace WMS.Web.Domain.Services
var order= data_list.Where(x => x.SourceBillNo == erp_data.BillNo).FirstOrDefault();
if (order != null)
{
var IsHaveNewMaterial = order.Details.Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId == x.MaterialId).Any();
var IsHaveNewMaterial = order.Details.Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialNumber == x.MaterialNumber).Any();
if (!IsHaveNewMaterial)
{
//当物料相同,仓库不同或者物料不同,就新增一条明细
@@ -555,10 +555,10 @@ namespace WMS.Web.Domain.Services
{
//当应入库数量大于实际入库数量:状态就部分入库
//当应入库数量小于等于实际入库数量:状态就已入库
var details_Groups = order.Details.Where(x => x.AccruedQty != 0).GroupBy(x => x.MaterialId)
var details_Groups = order.Details.Where(x => x.AccruedQty != 0).GroupBy(x => x.MaterialNumber)
.Select(x => new
{
MaterialId = x.Key,
MaterialNumber = x.Key,
AccruedQtyTotal = x.Sum(t => t.AccruedQty),
ReceiveQtyTotal=x.Sum(t=>t.ReceiveQty),
RealityQtyTotal =x.Sum(t=>t.RealityQty)
@@ -574,14 +574,6 @@ namespace WMS.Web.Domain.Services
else if(details_Groups.Sum(x => x.RealityQtyTotal) >= details_Groups.Sum(x => x.AccruedQtyTotal))
order.Status = InstockStatus.Already;
//var AccruedQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.AccruedQty);
//var RealityQtyTotal = order.Details.Where(x => x.AccruedQty != 0).Sum(x => x.RealityQty);
//if (RealityQtyTotal != 0 && AccruedQtyTotal > RealityQtyTotal)
// order.Status = InstockStatus.Part;
//else if (AccruedQtyTotal <= RealityQtyTotal)
// order.Status = InstockStatus.Already;
});

View File

@@ -46,10 +46,10 @@ namespace WMS.Web.Domain.Services
{
//找到物料对应的即时库存明细
var orgCodes = dtos.Select(x => x.OrgCode).ToList();
var materialIds = dtos.Select(x => x.MaterialId).ToList();
var materialNumbers = dtos.Select(x => x.MaterialNumber).ToList();
var stockCodes = dtos.GroupBy(x => x.StockCode).Select(x => x.Key).ToList();
var subStockIds = dtos.GroupBy(x => x.SubStockId).Select(x => x.Key).ToList();
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, subStockIds, orgCodes);
var subStockCodes = dtos.GroupBy(x => x.SubStockCode).Select(x => x.Key).ToList();
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(materialNumbers, stockCodes, subStockCodes, orgCodes);
var add_entitys = new List<InventoryDetails>();
@@ -60,9 +60,9 @@ namespace WMS.Web.Domain.Services
{
//2.1当前的即时库存明细
var currentDetail = inventoryDetails.Where(x =>
x.MaterialId == dto.MaterialId &&
x.MaterialNumber == dto.MaterialNumber &&
x.StockCode == dto.StockCode &&
x.SubStockId == dto.SubStockId &&
x.SubStockCode == dto.SubStockCode &&
x.OrgCode==dto.OrgCode).FirstOrDefault();
if (currentDetail == null)
{
@@ -114,17 +114,17 @@ namespace WMS.Web.Domain.Services
/// <summary>
/// 获取即时库存明细汇总
/// </summary>
/// <param name="mids"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
public async Task<List<InventoryDetailsSummaryResponse>> GetInventoryDetailsSummary(List<int> mids, List<string> stockCodes, List<string> orgCodes)
public async Task<List<InventoryDetailsSummaryResponse>> GetInventoryDetailsSummary(List<string> materialNumbers, List<string> stockCodes, List<string> orgCodes)
{
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(mids, stockCodes, orgCodes);
var resultList = inventoryDetails.GroupBy(x => new { MaterialId = x.MaterialId, StockCode = x.StockCode, OrgCode = x.OrgCode })
var inventoryDetails = await _inventoryDetailsRepositories.GetListBy(materialNumbers, stockCodes, orgCodes);
var resultList = inventoryDetails.GroupBy(x => new { MaterialNumber = x.MaterialNumber, StockCode = x.StockCode, OrgCode = x.OrgCode })
.Select(x => new InventoryDetailsSummaryResponse()
{
MaterialId=x.Key.MaterialId,
MaterialNumber = x.Key.MaterialNumber,
StockCode=x.Key.StockCode,
OrgCode=x.Key.OrgCode,
Qty=x.Sum(t=>t.Qty)

View File

@@ -51,16 +51,16 @@ namespace WMS.Web.Domain.Services
//找到物料对应的即时库存明细
var orgCodes = dtos.Select(x => x.OrgCode).ToList();
var materialIds = dtos.Select(x => x.MaterialId).ToList();
var materialNumbers = dtos.Select(x => x.MaterialNumber).ToList();
var stockCodes = dtos.GroupBy(x => x.StockCode).Select(x => x.Key).ToList();
var inventoryDetails=await _inventoryDetailsRepositories.GetListBy(materialIds, stockCodes, orgCodes);
var inventoryDetails=await _inventoryDetailsRepositories.GetListBy(materialNumbers, stockCodes, orgCodes);
//还要汇总出:只对仓库的库存合集,不要仓位
var inventoryDetailsTotal = inventoryDetails.GroupBy(x => new { x.OrgCode, x.MaterialId, x.StockCode })
var inventoryDetailsTotal = inventoryDetails.GroupBy(x => new { x.OrgCode, x.MaterialNumber, x.StockCode })
.Select(x => new
{
OrgCode = x.Key.OrgCode,
MaterialId = x.Key.MaterialId,
MaterialNumber = x.Key.MaterialNumber,
StockCode = x.Key.StockCode,
Qty = x.Sum(t => t.Qty)
}).ToList();
@@ -73,7 +73,7 @@ namespace WMS.Web.Domain.Services
{
//2.1当前的即时库存明细
var currentDetail= inventoryDetailsTotal.Where(x =>
x.MaterialId == dto.MaterialId &&
x.MaterialNumber == dto.MaterialNumber &&
x.StockCode == dto.StockCode &&
x.OrgCode==dto.OrgCode).FirstOrDefault();
@@ -99,23 +99,23 @@ namespace WMS.Web.Domain.Services
/// 生成dto
/// </summary>
/// <param name="boxId"></param>
/// <param name="materialId"></param>
/// <param name="materialNumber"></param>
/// <param name="orgCode"></param>
/// <param name="stockCode"></param>
/// <param name="subStockId"></param>
/// <param name="subStockCode"></param>
/// <param name="orderType"></param>
/// <param name="billNo"></param>
/// <param name="qty"></param>
/// <param name="inventoryInOutType"></param>
/// <returns></returns>
public InventoryInOutDetailsGenerateDto GenerateDto(int boxId,int materialId,string orgCode,string stockCode,int subStockId, OrderType orderType,string billNo,decimal qty, InventoryInOutType inventoryInOutType)
public InventoryInOutDetailsGenerateDto GenerateDto(int boxId,string materialNumber, string orgCode,string stockCode, string subStockCode, OrderType orderType,string billNo,decimal qty, InventoryInOutType inventoryInOutType)
{
var item = new InventoryInOutDetailsGenerateDto();
item.BoxId = boxId;
item.MaterialId = materialId;
item.MaterialNumber = materialNumber;
item.OrgCode = orgCode;
item.StockCode = stockCode;
item.SubStockId = subStockId;
item.SubStockCode = subStockCode;
item.OrderType = (int)orderType;
item.OrderBillNo = billNo;
item.Qty = qty;

View File

@@ -162,6 +162,27 @@ namespace WMS.Web.Domain.Services.Public
return mat.BaseUnitName;
}
/// <summary>
/// 获取物料基本单位名称
/// </summary>
/// <param name="erpMaterials"></param>
/// <param name="materialNumber"></param>
/// <returns></returns>
public string GetMaterialUnitName(List<ErpMaterialDto> erpMaterials, string materialNumber)
{
if (erpMaterials == null || erpMaterials.Count == 0)
return "";
var mat = erpMaterials.Where(x => x.MaterialNumber == materialNumber).FirstOrDefault();
if (mat == null)
{
var result = _erpService.BillQueryForMaterial(materialNumber).GetAwaiter().GetResult();
if (!result.IsSuccess)
return "";
return result.Data == null ? "" : result.Data.BaseUnitName;
}
return mat.BaseUnitName;
}
/// <summary>
/// 获取物料的条码
/// </summary>

View File

@@ -67,12 +67,14 @@ namespace WMS.Web.Repositories
//物料集合;模糊查询后的物料集合
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
//materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (materials.Count != 0)
{
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber)
).ToList();
}
}
//组织集合
var orgs = new List<ErpOrgDto>();
@@ -96,19 +98,17 @@ namespace WMS.Web.Repositories
query = query.Where(w => w.order.StockCode == splitStrs[0] && w.order.OrgCode == splitStrs[1]);
}
if (dto.SubStockId.HasValue)
query = query.Where(w => w.order.SubStockId == dto.SubStockId.Value);
if (!string.IsNullOrEmpty(dto.SubStockCode))
query = query.Where(w => w.order.SubStockCode == dto.SubStockCode);
//物料ID在模糊后的物料
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
if (materials != null && materials.Count != 0)
{
var mids = materials.Select(x => x.MaterialId).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialId));
var mids = materials.Select(x => x.MaterialNumber).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
}
else
query = query.Where(w => w.detail.MaterialId == 0);
}
@@ -118,11 +118,11 @@ namespace WMS.Web.Repositories
Id = s.order.Id,
DetailsId = s.detail.Id,
BoxBillNo = s.box.BoxBillNo,
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode+s.order.OrgCode),
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.order.SubStockId),
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.order.SubStockCode),
SerialNumbers=(string.Join(",",s.detail.SerialNumbers)).TrimEnd(','),
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.order.OrgCode),
Qty = s.detail.Qty,
@@ -154,13 +154,13 @@ namespace WMS.Web.Repositories
if (response != null)
{
response.Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, response.StockCode + response.OrgCode);
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, response.SubStockId);
response.SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, _loginRepositories.CompanyId, response.SubStockCode);
response.Details = _mapper.Map<List<BoxInventoryDetailsResponse>>(entity.Details);
response.Details.ForEach(x =>
{
x.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.MaterialId);
x.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, x.MaterialId);
x.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.MaterialId);
x.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, x.MaterialNumber);
x.MaterialNumber = x.MaterialNumber;
x.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, x.MaterialNumber);
});
response.TotalQty = response.Details.Sum(x=>x.Qty);
}
@@ -240,7 +240,6 @@ namespace WMS.Web.Repositories
List<int> list = entitys.Select(s => s.Id).ToList();
var res = await _context.BoxInventory.Include(x => x.Details).Where(f => list.Contains(f.Id)).ToListAsync();
_mapper.Map(entitys, res);
//_mapper.ToMapList(entitys.SelectMany(x=>x.Details).ToList(), res.SelectMany(x=>x.Details).ToList());
var tt= await _context.SaveChangesAsync();
if (_transaction != null)
_transaction.Commit();

View File

@@ -284,12 +284,14 @@ namespace WMS.Web.Repositories
//物料集合;模糊查询后的物料集合
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
//materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (materials.Count != 0)
{
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber)
).ToList();
}
}
if (companyId == 0)
companyId = _loginRepositories.CompanyId;
@@ -314,11 +316,9 @@ namespace WMS.Web.Repositories
{
if (materials != null && materials.Count != 0)
{
var mids = materials.Select(x => x.MaterialId).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialId));
var mids = materials.Select(x => x.MaterialNumber).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
}
else
query = query.Where(w => w.detail.MaterialId == 0);
}
if (!string.IsNullOrEmpty(dto.Creator))
@@ -365,12 +365,11 @@ namespace WMS.Web.Repositories
BillNo = s.order.BillNo,
Type = s.order.Type.GetRemark(),
SourceBillNo = s.detail.SourceBillNo,
MaterialId=s.detail.MaterialId,
Supplier = _erpBasicDataExtendService.GetSupplierName(suppliers, s.detail.SupplierId),
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.order.OrgId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode + s.order.OrgCode),
Qty = s.detail.Qty,
Creator = _singleDataService.GetSingleData(SingleAction.Staffs, companyId, s.order.CreatorId),
@@ -387,7 +386,7 @@ namespace WMS.Web.Repositories
var taskDetailsList= taskList.SelectMany(x => x.Details).Where(x=>x.AccruedQty<=0).ToList();
list.ForEach(x =>
{
var isHave= taskDetailsList.Where(t => t.MaterialId == x.MaterialId && t.Fid == x.TaskId).Any();
var isHave= taskDetailsList.Where(t => t.MaterialNumber == x.MaterialNumber && t.Fid == x.TaskId).Any();
if (isHave)
x.SuccessSync = "--";
});

View File

@@ -93,11 +93,6 @@ namespace WMS.Web.Repositories
/// <returns></returns>
public async Task<List<InStockTask>> GetList(List<int> ids)
{
//var entitys = await _context.InStockTask
// .Include(s => s.Details.Where(x=>x.AccruedQty>0))
// .Where(f => ids.Contains(f.Id) && f.Details.Where(x=>x.AccruedQty>0).Count()>0)
// .ToListAsync();
//return entitys;
var entitys = await _context.InStockTask
.Include(s => s.Details)
.Where(f => ids.Contains(f.Id))
@@ -165,17 +160,15 @@ namespace WMS.Web.Repositories
SupplierId = s.detail.SupplierId,
OrgId = s.detail.OrgId,
SourceBillNo = s.order.SourceBillNo,
MaterialId = s.detail.MaterialId,
StockCode = s.detail.StockCode,
StockName = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, s.detail.StockCode + s.detail.OrgCode),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
Qty = s.detail.AccruedQty,
DeliveredQty = s.detail.DeliveredQty,
ReceiveQty = s.detail.ReceiveQty,
//采购:可入库数量=应入库数量-收货数量-已交数量+该明细的入库数量之和;
//AvailableQty = s.detail.AccruedQty - s.detail.ReceiveQty- s.detail.DeliveredQty+s.detail.RealityQty,
AvailableQty = s.detail.AccruedQty - s.detail.ReceiveQty - (s.detail.DeliveredQty> s.detail.RealityQty? s.detail.DeliveredQty : s.detail.RealityQty),
Remark = s.detail.Remark,
ErpDetailId=s.detail.ErpDetailId
@@ -189,7 +182,7 @@ namespace WMS.Web.Repositories
{
list.ForEach(x =>
{
var current_instock_dets = instockDets.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialId == x.MaterialId && t.Qty != 0).ToList();
var current_instock_dets = instockDets.Where(t => t.ErpDetailId == x.ErpDetailId && t.MaterialNumber == x.MaterialNumber && t.Qty != 0).ToList();
if (current_instock_dets != null && current_instock_dets.Count != 0 && x.ErpDetailId == current_instock_dets.FirstOrDefault().ErpDetailId)
{
//+该明细的入库数量之和;在这里处理
@@ -200,7 +193,6 @@ namespace WMS.Web.Repositories
}
return list;
}
/// <summary>
@@ -244,12 +236,11 @@ namespace WMS.Web.Repositories
SupplierId = s.SupplierId,
OrgId = s.OrgId,
OrgCode=s.OrgCode,
MaterialId = s.MaterialId,
StockCode = s.StockCode,
StockName = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, _loginRepositories.CompanyId, s.StockCode+s.OrgCode),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
MaterialNumber = s.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
Qty = s.AccruedQty,
DeliveredQty = s.DeliveredQty,
//非采购:可入库数量=应入库数量-收货数量;
@@ -479,12 +470,14 @@ namespace WMS.Web.Repositories
//物料集合;模糊查询后的物料集合
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
//materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (materials.Count != 0)
{
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber)
).ToList();
}
}
var query = _context.InStockTaskDetails
.GroupJoin(_context.InStockTask, detail => detail.Fid, order => order.Id, (detail, orders) => new { detail, orders })
@@ -499,11 +492,9 @@ namespace WMS.Web.Repositories
{
if (materials != null && materials.Count != 0)
{
var mids = materials.Select(x => x.MaterialId).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialId));
var mids = materials.Select(x => x.MaterialNumber).ToList();
query = query.Where(w => mids.Contains(w.detail.MaterialNumber));
}
else
query = query.Where(w => w.detail.MaterialId == 0);
}
if (!string.IsNullOrEmpty(dto.Receiver))
@@ -547,9 +538,9 @@ namespace WMS.Web.Repositories
SourceBillNo = s.order.SourceBillNo,
Supplier = _erpBasicDataExtendService.GetSupplierName(suppliers, s.detail.SupplierId),
Org = _erpBasicDataExtendService.GetOrgName(orgs, s.detail.OrgId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.detail.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.detail.MaterialNumber),
MaterialNumber = s.detail.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.detail.MaterialNumber),
FactoryPrice = s.detail.FactoryPrice,
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.detail.StockCode + s.detail.OrgCode),
AccruedQty = s.detail.AccruedQty,

View File

@@ -65,12 +65,14 @@ namespace WMS.Web.Repositories
//物料集合;模糊查询后的物料集合
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
//materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (materials.Count != 0)
{
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber)
).ToList();
}
}
//组织集合
var orgs = new List<ErpOrgDto>();
@@ -86,10 +88,9 @@ namespace WMS.Web.Repositories
{
if (materials != null && materials.Count != 0)
{
var mids = materials.Select(x => x.MaterialId).ToList();
query = query.Where(w => mids.Contains(w.MaterialId));
}else
query = query.Where(w => w.MaterialId==0);
var mids = materials.Select(x => x.MaterialNumber).ToList();
query = query.Where(w => mids.Contains(w.MaterialNumber));
}
}
if (!string.IsNullOrEmpty(dto.StockCode))
@@ -98,8 +99,8 @@ namespace WMS.Web.Repositories
query = query.Where(w => w.StockCode == splitStrs[0] && w.OrgCode == splitStrs[1]);
}
if (dto.SubStockId.HasValue)
query = query.Where(w => w.SubStockId == dto.SubStockId.Value);
if (!string.IsNullOrEmpty(dto.SubStockCode))
query = query.Where(w => w.SubStockCode == dto.SubStockCode);
if (dto.Qty.HasValue)
query = query.Where(w => w.Qty == dto.Qty);
@@ -110,14 +111,14 @@ namespace WMS.Web.Repositories
var list = await query.Select(s => new InventoryDetailsQueryResponse()
{
Id=s.Id,
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
MaterialNumber = s.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
Org= _erpBasicDataExtendService.GetOrgName(orgs, s.OrgCode),
Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.StockCode + s.OrgCode),
Qty = s.Qty,
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.SubStockId),
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialId),
SubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, companyId, s.SubStockCode),
Unit = _erpBasicDataExtendService.GetMaterialUnitName(materials, s.MaterialNumber),
}).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync();
return (list,total);
@@ -197,30 +198,30 @@ namespace WMS.Web.Repositories
/// <summary>
/// 列表-根据物料和仓库和仓位
/// </summary>
/// <param name="materialIds"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="subStockIds"></param>
/// <param name="subStockCodes"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
public async Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes, List<int> subStockIds, List<string> orgCodes)
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes, List<string> subStockCodes, List<string> orgCodes)
{
return await _context.InventoryDetails.Where(x => materialIds.Contains(x.MaterialId) &&
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
stockCodes.Contains(x.StockCode) &&
orgCodes.Contains(x.OrgCode) &&
subStockIds.Contains(x.SubStockId) ).ToListAsync();
subStockCodes.Contains(x.SubStockCode) ).ToListAsync();
}
/// <summary>
/// 列表-根据物料和仓库和仓位
/// </summary>
/// <param name="materialIds"></param>
/// <param name="materialNumbers"></param>
/// <param name="stockCodes"></param>
/// <param name="subStockIds"></param>
/// <param name="orgCodes"></param>
/// <returns></returns>
public async Task<List<InventoryDetails>> GetListBy(List<int> materialIds, List<string> stockCodes,List<string> orgCodes)
public async Task<List<InventoryDetails>> GetListBy(List<string> materialNumbers, List<string> stockCodes,List<string> orgCodes)
{
return await _context.InventoryDetails.Where(x => materialIds.Contains(x.MaterialId) &&
return await _context.InventoryDetails.Where(x => materialNumbers.Contains(x.MaterialNumber) &&
stockCodes.Contains(x.StockCode) &&
orgCodes.Contains(x.OrgCode)).ToListAsync();
}

View File

@@ -72,12 +72,14 @@ namespace WMS.Web.Repositories
//物料集合;模糊查询后的物料集合
if (!string.IsNullOrEmpty(dto.MaterialNumber))
{
//materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)).ToList();
if (materials.Count != 0)
{
materials = materials.Where(w => w.MaterialNumber.Contains(dto.MaterialNumber)
|| w.MaterialName.Contains(dto.MaterialNumber)
|| w.Specifications.Contains(dto.MaterialNumber)
).ToList();
}
}
var query = _context.InventoryInOutDetails
.Where(adv => 1 == 1);
@@ -87,11 +89,9 @@ namespace WMS.Web.Repositories
{
if (materials != null && materials.Count != 0)
{
var mids = materials.Select(x => x.MaterialId).ToList();
query = query.Where(w => mids.Contains(w.MaterialId));
var mids = materials.Select(x => x.MaterialNumber).ToList();
query = query.Where(w => mids.Contains(w.MaterialNumber));
}
else
query = query.Where(w => w.MaterialId == 0);
}
if (!string.IsNullOrEmpty(dto.StockCode))
@@ -113,9 +113,9 @@ namespace WMS.Web.Repositories
var list = await query.Select(s => new InventoryInOutDetailsQueryResponse()
{
Id = s.Id,
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialId),
MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, s.MaterialId),
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialId),
MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, s.MaterialNumber),
MaterialNumber = s.MaterialNumber,
Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, s.MaterialNumber),
Type =s.Type.GetRemark(),
OrderType=s.OrderType.GetRemark(),
OrderBillNo=s.OrderBillNo,