diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 0cd86929..c2a07d0d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -34,7 +34,7 @@ 操作时间 - + 明细 @@ -680,7 +680,7 @@ 明细 - + 创建 @@ -1523,7 +1523,7 @@ 出库单号 - + 入库 @@ -3537,7 +3537,7 @@ - + 采购上架-保存 @@ -4465,7 +4465,7 @@ - + 出库单类型转化序列号记录类型 diff --git a/src/WMS.Web.Domain/Entitys/BackRecord.cs b/src/WMS.Web.Domain/Entitys/BackRecord.cs index 23af8d73..c77d24f8 100644 --- a/src/WMS.Web.Domain/Entitys/BackRecord.cs +++ b/src/WMS.Web.Domain/Entitys/BackRecord.cs @@ -37,7 +37,7 @@ namespace WMS.Web.Domain.Entitys /// /// 明细 /// - public List Details = new List(); + public List Details { get; set; } = new List(); /// /// 创建 diff --git a/src/WMS.Web.Domain/Entitys/InStock.cs b/src/WMS.Web.Domain/Entitys/InStock.cs index 9d78c4cb..2bd486b8 100644 --- a/src/WMS.Web.Domain/Entitys/InStock.cs +++ b/src/WMS.Web.Domain/Entitys/InStock.cs @@ -25,7 +25,7 @@ namespace WMS.Web.Domain.Entitys /// /// 入库类型 /// - public InstockType Type { get; set; } + public OrderType Type { get; set; } /// /// 入库方式:1按箱,2按产品 /// diff --git a/src/WMS.Web.Domain/Entitys/InstockTask.cs b/src/WMS.Web.Domain/Entitys/InstockTask.cs index 5dd18af3..5d66471c 100644 --- a/src/WMS.Web.Domain/Entitys/InstockTask.cs +++ b/src/WMS.Web.Domain/Entitys/InstockTask.cs @@ -33,7 +33,7 @@ namespace WMS.Web.Domain.Entitys /// /// 入库类型 /// - public InstockType Type { get; set; } + public OrderType Type { get; set; } /// /// 收货人 /// @@ -72,7 +72,7 @@ namespace WMS.Web.Domain.Entitys /// /// /// - public void Create(InstockType type,string sourceBillNo, DateTime createTime) + public void Create(OrderType type,string sourceBillNo, DateTime createTime) { this.Status = InstockStatus.Wait; this.Type = type; diff --git a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs index 810dddd6..35438877 100644 --- a/src/WMS.Web.Domain/Entitys/SerialNumbers.cs +++ b/src/WMS.Web.Domain/Entitys/SerialNumbers.cs @@ -99,9 +99,9 @@ namespace WMS.Web.Domain.Entitys /// 入库 /// /// 出库单号 - public void InStock(string inStockBillNo, InstockType type) + public void InStock(string inStockBillNo, OrderType type) { - if (type == InstockType.Purchase) + if (type == OrderType.Purchase_In) this.InStockBillNo = inStockBillNo; } } diff --git a/src/WMS.Web.Domain/Services/BoxInventoryService.cs b/src/WMS.Web.Domain/Services/BoxInventoryService.cs index e9b5a71c..37411039 100644 --- a/src/WMS.Web.Domain/Services/BoxInventoryService.cs +++ b/src/WMS.Web.Domain/Services/BoxInventoryService.cs @@ -221,6 +221,8 @@ namespace WMS.Web.Domain.Services return Result.ReFailure(ResultCodes.InventoryNoSourceError); var generateDtoList = new List(); + //物料收发明细dtos + var InventoryInOutDetailsGenerateDtoList = new List(); #region 入库组装 //入库的明细 @@ -294,7 +296,33 @@ namespace WMS.Web.Domain.Services generateDtoList.AddRange(generateDtoList_in); generateDtoList.AddRange(generateDtoList_out); //4.提交处理 - return await this.ExeBackBox(generateDtoList, isTransaction); + var result= await this.ExeBackBox(generateDtoList, isTransaction); + if (!result.IsSuccess) + return result; + + //5.组装物料收发明细dto + foreach (var item in dtoDatas.SelectMany(x=>x.Details).ToList()) + { + var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault(); + if (entity != null) + { + var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto( + item.BoxId, item.MaterialId, + item.OrgCode, item.StockCode, + item.SubStockId, OrderType.Back, + entity.BillNo, item.Qty, (entity.Type== BackRecordType.InstockOff?InventoryInOutType.Out:InventoryInOutType.In)); + InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); + } + } + //5.提交物料收发明细:新增 + if (InventoryInOutDetailsGenerateDtoList.Count != 0) + { + var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList, isTransaction); + if (!inout_result.IsSuccess) + return inout_result; + } + + return Result.ReSuccess(); } /// @@ -309,6 +337,9 @@ namespace WMS.Web.Domain.Services if (dtoDatas == null || dtoDatas.Count == 0) return Result.ReFailure(ResultCodes.InventoryNoSourceError); + //物料收发明细dtos + var InventoryInOutDetailsGenerateDtoList = new List(); + //2.组装:入库数据 var generateDtoList_in = dtoDatas.Where(x => x.ResultType == TakeStockType.Profit).GroupBy(x => new { x.BoxId, x.OrgCode, x.StockCode, x.SubStockId }).Select(x => new BoxInventoryTakeGenerateDto() { @@ -370,7 +401,28 @@ namespace WMS.Web.Domain.Services generateDtoList.AddRange(generateDtoList_in); generateDtoList.AddRange(generateDtoList_out); //提交处理 - return await this.ExeTakeBox(generateDtoList, isTransaction); + var result= await this.ExeTakeBox(generateDtoList, isTransaction); + if (!result.IsSuccess) + return result; + + //5.组装物料收发明细 + foreach (var item in dtoDatas) + { + var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto( + item.BoxId, item.MaterialId, + item.OrgCode, item.StockCode, + item.SubStockId, OrderType.Take, + item.BillNo, item.FinalQty, (item.ResultType == TakeStockType.Loss ? InventoryInOutType.Out : InventoryInOutType.In)); + InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); + } + //5.提交物料收发明细:新增 + if (InventoryInOutDetailsGenerateDtoList.Count != 0) + { + var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList, isTransaction); + if (!inout_result.IsSuccess) + return inout_result; + } + return Result.ReSuccess(); } /// @@ -385,6 +437,9 @@ namespace WMS.Web.Domain.Services if (dtoDatas == null || dtoDatas.Count == 0) return Result.ReFailure(ResultCodes.InventoryNoSourceError); + //物料收发明细dtos + var InventoryInOutDetailsGenerateDtoList = new List(); + #region 按箱 //2.组装-按箱入库 var dtoDatas_details_Method_box = dtoDatas.Where(x => x.Method == InventoryInOutMethod.Box).SelectMany(x => x.Details).ToList(); @@ -456,7 +511,33 @@ namespace WMS.Web.Domain.Services generateDtoList.AddRange(generateDtoList_Metod_Box); generateDtoList.AddRange(generateDtoList_Metod_Product); //提交处理 - return await this.ExeInStockBox(generateDtoList, isTransaction); + var result= await this.ExeInStockBox(generateDtoList, isTransaction); + if (!result.IsSuccess) + return result; + + //5.组装物料收发明细dto + foreach (var item in dtoDatas.SelectMany(x => x.Details).ToList()) + { + var entity = dtoDatas.Where(x => x.Id == item.Fid).FirstOrDefault(); + if (entity != null) + { + var inventoryInOutDet = _inventoryInOutDetailsService.GenerateDto( + item.BoxId, item.MaterialId, + item.OrgCode, item.StockCode, + item.SubStockId, entity.Type, + item.SourceBillNo, item.Qty, InventoryInOutType.In); + InventoryInOutDetailsGenerateDtoList.Add(inventoryInOutDet); + } + } + //5.提交物料收发明细:新增 + if (InventoryInOutDetailsGenerateDtoList.Count != 0) + { + var inout_result = await _inventoryInOutDetailsService.GenerateInOrOutDetails(InventoryInOutDetailsGenerateDtoList, isTransaction); + if (!inout_result.IsSuccess) + return inout_result; + } + + return Result.ReSuccess(); } /// diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 88be71ab..0e355604 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -99,7 +99,7 @@ namespace WMS.Web.Domain.Services bool isRollback = false; bool isTransaction = false; //1.添加入库单:(同步金蝶在save方法里面进行) - var save_result = await this.ShelfSave(instock, InstockType.Purchase, loginInfo, isTransaction); + var save_result = await this.ShelfSave(instock, OrderType.Purchase_In, loginInfo, isTransaction); if (!save_result.IsSuccess) isRollback = true; { //2.修改入库任务单 @@ -192,7 +192,7 @@ namespace WMS.Web.Domain.Services /// /// /// - private async Task ShelfSave(PurchaseShelfRequest dto, InstockType type, LoginInDto loginInfo, bool isTransaction = true) + private async Task ShelfSave(PurchaseShelfRequest dto, OrderType type, LoginInDto loginInfo, bool isTransaction = true) { var entity = new InStock(); entity.Type = type; diff --git a/src/WMS.Web.Domain/Services/InStockTaskService.cs b/src/WMS.Web.Domain/Services/InStockTaskService.cs index 3d6f6d88..bb1dc96b 100644 --- a/src/WMS.Web.Domain/Services/InStockTaskService.cs +++ b/src/WMS.Web.Domain/Services/InStockTaskService.cs @@ -62,27 +62,27 @@ namespace WMS.Web.Domain.Services var billNos = new List(); billNos.Add(sourceBillNo); //3.1订单类型-进去金蝶交互更新 - if (task.Type == InstockType.Purchase) + if (task.Type == OrderType.Purchase_In) { var result = await this.SsynPurchaseInStock(billNos, isTransaction); if (!result.IsSuccess) isRollback = true; } - else if (task.Type == InstockType.Miscellaneous) + else if (task.Type == OrderType.Miscellaneous_In) { var result = await this.SysnMiscellaneous(billNos, isTransaction); if (!result.IsSuccess) isRollback = true; } - else if (task.Type == InstockType.Assembled) + else if (task.Type == OrderType.Assembled_In) { var result = await this.SysnAssembledApp(billNos, isTransaction); if (!result.IsSuccess) isRollback = true; } - else if (task.Type == InstockType.Stkdirecttransfers) + else if (task.Type == OrderType.Stkdirecttransfers_In) { var result = await this.SysnTransferDirect(billNos, isTransaction); if (!result.IsSuccess) isRollback = true; } - else if (task.Type == InstockType.StktransferInst) + else if (task.Type == OrderType.StktransferInst_In) { var result = await this.SysnTransferin(billNos, isTransaction); if (!result.IsSuccess) isRollback = true; @@ -310,7 +310,7 @@ namespace WMS.Web.Domain.Services { var current_order= erp_list.Where(x => x.BillNo == item).FirstOrDefault(); var dto = new InStockTask(); - dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime); + dto.Create((OrderType)current_order.Type, current_order.BillNo, current_order.CreateTime); //找到当前对应来源单据编号的集合数据 var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList(); diff --git a/src/WMS.Web.Domain/Services/Public/ErpService.cs b/src/WMS.Web.Domain/Services/Public/ErpService.cs index ca984e6f..63857241 100644 --- a/src/WMS.Web.Domain/Services/Public/ErpService.cs +++ b/src/WMS.Web.Domain/Services/Public/ErpService.cs @@ -232,7 +232,7 @@ namespace WMS.Web.Domain.Services.Public lis.StockCode = item[9]; lis.DeliveredQty = Convert.ToDecimal(item[10]); lis.OrgCode = item[11]; - lis.Type = (int)InstockType.Purchase; + lis.Type = (int)OrderType.Purchase_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); @@ -336,7 +336,7 @@ namespace WMS.Web.Domain.Services.Public lis.CreateTime = Convert.ToDateTime(item[6]); lis.Remark = item[7]; lis.OrgCode = item[8]; - lis.Type = (int)InstockType.Miscellaneous; + lis.Type = (int)OrderType.Miscellaneous_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); @@ -440,7 +440,7 @@ namespace WMS.Web.Domain.Services.Public lis.CreateTime = Convert.ToDateTime(item[6]); lis.Remark = item[7]; lis.OrgCode = item[8]; - lis.Type = (int)InstockType.Stkdirecttransfers; + lis.Type = (int)OrderType.Stkdirecttransfers_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); @@ -544,7 +544,7 @@ namespace WMS.Web.Domain.Services.Public lis.CreateTime = Convert.ToDateTime(item[6]); lis.Remark = item[7]; lis.OrgCode = item[8]; - lis.Type = (int)InstockType.StktransferInst; + lis.Type = (int)OrderType.StktransferInst_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); @@ -649,7 +649,7 @@ namespace WMS.Web.Domain.Services.Public lis.CreateTime = Convert.ToDateTime(item[6]); lis.Remark = item[7]; lis.OrgCode = item[8]; - lis.Type = (int)InstockType.Assembled; + lis.Type = (int)OrderType.Assembled_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); @@ -754,7 +754,7 @@ namespace WMS.Web.Domain.Services.Public lis.CreateTime = Convert.ToDateTime(item[6]); lis.Remark = item[7]; lis.OrgCode = item[8]; - lis.Type = (int)InstockType.Assembled; + lis.Type = (int)OrderType.Assembled_In; erp_list.Add(lis); } return ResultList.ReSuccess(erp_list); diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 3b2f6f5d..a54db80d 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -261,19 +261,19 @@ namespace WMS.Web.Domain.Services /// /// /// - private SerialNumberOperateType InStockTypeConvert(InstockType type) + private SerialNumberOperateType InStockTypeConvert(OrderType type) { switch (type) { - case InstockType.Purchase: + case OrderType.Purchase_In: return SerialNumberOperateType.Purchase_In; - case InstockType.Assembled: + case OrderType.Assembled_In: return SerialNumberOperateType.Assembled_In; - case InstockType.Miscellaneous: + case OrderType.Miscellaneous_In: return SerialNumberOperateType.Miscellaneous_In; - case InstockType.Stkdirecttransfers: + case OrderType.Stkdirecttransfers_In: return SerialNumberOperateType.Stkdirecttransfers_In; - case InstockType.StktransferInst: + case OrderType.StktransferInst_In: return SerialNumberOperateType.StktransferInst_In; default: return SerialNumberOperateType.StktransferInst_In;