This commit is contained in:
tongfei
2023-11-17 17:25:16 +08:00
9 changed files with 75 additions and 44 deletions

View File

@@ -46,7 +46,6 @@ namespace WMS.Web.Api.Controllers
[Route("hj")] [Route("hj")]
public async Task<string> TestHJ() public async Task<string> TestHJ()
{ {
await _outStockTaskService.Sync(null);
//var t=await _outStockTaskRepositories.Get(1); //var t=await _outStockTaskRepositories.Get(1);
// t.Details[0].Remark = "sdf"; // t.Details[0].Remark = "sdf";
// t.Details[0].ErpDetails[0].SaleBillNo = "sdfsfsbbbb"; // t.Details[0].ErpDetails[0].SaleBillNo = "sdfsfsbbbb";

View File

@@ -3983,15 +3983,10 @@
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest.BeforeQty"> <member name="P:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest.BeforeQty">
<summary> <summary>
盘点前数量wms系统数量 系统库存
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest.AfterQty"> <member name="P:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest.AfterQty">
<summary>
盘点实际数量(实际仓库数量)
</summary>
</member>
<member name="P:WMS.Web.Core.Dto.TakeStock.SaveTakeStockRequest.FinalQty">
<summary> <summary>
盘点数量 盘点数量
</summary> </summary>
@@ -4053,17 +4048,17 @@
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.BeforeQty"> <member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.BeforeQty">
<summary> <summary>
盘点前数量wms系统数量 系统库存
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.AfterQty"> <member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.AfterQty">
<summary> <summary>
盘点实际数量(实际仓库数量) 盘点数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.FinalQty"> <member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.FinalQty">
<summary> <summary>
盘点后数量 盈亏数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.ResultType"> <member name="P:WMS.Web.Core.Dto.TakeStock.TakeStockQueryInfoResponse.ResultType">

View File

@@ -1481,23 +1481,23 @@
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.BeforeQty"> <member name="P:WMS.Web.Domain.Entitys.TakeStock.BeforeQty">
<summary> <summary>
盘点前数量wms系统数量 系统库存
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.AfterQty"> <member name="P:WMS.Web.Domain.Entitys.TakeStock.AfterQty">
<summary> <summary>
盘点实际数量(实际仓库数量) 盘点数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.FinalQty"> <member name="P:WMS.Web.Domain.Entitys.TakeStock.FinalQty">
<summary> <summary>
盘点数量 盈亏数量
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.ResultType"> <member name="P:WMS.Web.Domain.Entitys.TakeStock.ResultType">
<summary> <summary>
盘点结果类型1为盘盈2位盘亏 盘点结果类型1为盘盈2位盘亏
实际仓库数量-WMS系统数量 大于0为盘盈 小于0为盘亏 盘点数量-系统库存 大于0为盘盈 小于0为盘亏
</summary> </summary>
</member> </member>
<member name="P:WMS.Web.Domain.Entitys.TakeStock.Remark"> <member name="P:WMS.Web.Domain.Entitys.TakeStock.Remark">

View File

@@ -35,20 +35,15 @@ namespace WMS.Web.Core.Dto.TakeStock
/// </summary> /// </summary>
public int Erp_SubStockId { get; set; } public int Erp_SubStockId { get; set; }
/// <summary> /// <summary>
/// 盘点前数量wms系统数量 /// 系统库存
/// </summary> /// </summary>
[Required(ErrorMessage = "盘点前数量不能为空")] [Required(ErrorMessage = "系统库存不能为空")]
public decimal BeforeQty { get; set; } public decimal BeforeQty { get; set; }
/// <summary> /// <summary>
/// 盘点实际数量(实际仓库数量)
/// </summary>
[Required(ErrorMessage = "盘点实际数量不能为空")]
public decimal AfterQty { get; set; }
/// <summary>
/// 盘点数量 /// 盘点数量
/// </summary> /// </summary>
[Required(ErrorMessage = "盘点数量不能为空")] [Required(ErrorMessage = "盘点数量数量不能为空")]
public decimal FinalQty { get; set; } public decimal AfterQty { get; set; }
/// <summary> /// <summary>
/// 备注 /// 备注
/// </summary> /// </summary>

View File

@@ -55,19 +55,19 @@ namespace WMS.Web.Core.Dto.TakeStock
[Column("子仓库")] [Column("子仓库")]
public string Erp_SubStock { get; set; } public string Erp_SubStock { get; set; }
/// <summary> /// <summary>
/// 盘点前数量wms系统数量 /// 系统库存
/// </summary> /// </summary>
[Column("WMS系统数量")] [Column("系统库存")]
public decimal BeforeQty { get; set; } public decimal BeforeQty { get; set; }
/// <summary> /// <summary>
/// 盘点实际数量(实际仓库数量) /// 盘点数量
/// </summary> /// </summary>
[Column("实际仓库数量")] [Column("盘点数量")]
public decimal AfterQty { get; set; } public decimal AfterQty { get; set; }
/// <summary> /// <summary>
/// 盘点后数量 /// 盈亏数量
/// </summary> /// </summary>
[Column("此次盘点数量")] [Column("盈亏数量")]
public decimal FinalQty { get; set; } public decimal FinalQty { get; set; }
/// <summary> /// <summary>
/// 盘点结果类型1为盘盈2位盘亏 /// 盘点结果类型1为盘盈2位盘亏

View File

@@ -97,8 +97,16 @@ namespace WMS.Web.Domain.Entitys
this.ReceiptCustomerId = task.ReceiptCustomerId; this.ReceiptCustomerId = task.ReceiptCustomerId;
this.CreatorId = creatorId; this.CreatorId = creatorId;
this.CreateTime = DateTime.Now; this.CreateTime = DateTime.Now;
if (task.Type == OutStockType.Sal)
{
//只有销售出库才需要同步金蝶
this.SuccessSync = false; this.SuccessSync = false;
this.SuccessSyncFail = this.Details.SelectMany(s => s.ErpDetails).GroupBy(g => g.SourceBillNo).Select(s => s.Key).ToList(); this.SuccessSyncFail = this.Details.SelectMany(s => s.ErpDetails).GroupBy(g => g.SourceBillNo).Select(s => s.Key).ToList();
}else
{
this.SuccessSync = true;
this.SuccessSyncFail = new List<string>();
}
} }
/// <summary> /// <summary>
/// 同步金蝶(成功) /// 同步金蝶(成功)

View File

@@ -66,23 +66,23 @@ namespace WMS.Web.Domain.Entitys
[Column("Erp_SubStockId")] [Column("Erp_SubStockId")]
public int Erp_SubStockId { get; set; } public int Erp_SubStockId { get; set; }
/// <summary> /// <summary>
/// 盘点前数量wms系统数量 /// 系统库存
/// </summary> /// </summary>
[Column("BeforeQty")] [Column("BeforeQty")]
public decimal BeforeQty { get; set; } public decimal BeforeQty { get; set; }
/// <summary> /// <summary>
/// 盘点实际数量(实际仓库数量) /// 盘点数量
/// </summary> /// </summary>
[Column("AfterQty")] [Column("AfterQty")]
public decimal AfterQty { get; set; } public decimal AfterQty { get; set; }
/// <summary> /// <summary>
/// 盘点数量 /// 盈亏数量
/// </summary> /// </summary>
[Column("FinalQty")] [Column("FinalQty")]
public decimal FinalQty { get; set; } public decimal FinalQty { get; set; }
/// <summary> /// <summary>
/// 盘点结果类型1为盘盈2位盘亏 /// 盘点结果类型1为盘盈2位盘亏
/// 实际仓库数量-WMS系统数量 大于0为盘盈 小于0为盘亏 /// 盘点数量-系统库存 大于0为盘盈 小于0为盘亏
/// </summary> /// </summary>
[Column("ResultType")] [Column("ResultType")]
public TakeStockType ResultType { get; set; } = TakeStockType.Profit; public TakeStockType ResultType { get; set; } = TakeStockType.Profit;

View File

@@ -13,9 +13,11 @@ namespace WMS.Web.Domain.Mappers
public TakeStockMapper() public TakeStockMapper()
{ {
CreateMap<SaveTakeStockRequest, TakeStockDetails>() CreateMap<SaveTakeStockRequest, TakeStockDetails>()
.ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss)); .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) >0? TakeStockType.Profit: TakeStockType.Loss))
.ForMember(x => x.FinalQty, ops => ops.MapFrom(x => Math.Abs(x.AfterQty - x.BeforeQty)));
CreateMap<SaveTakeStockRequest, TakeStock>() CreateMap<SaveTakeStockRequest, TakeStock>()
.ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) > 0 ? TakeStockType.Profit : TakeStockType.Loss)); .ForMember(x => x.ResultType, ops => ops.MapFrom(x => (x.AfterQty - x.BeforeQty) > 0 ? TakeStockType.Profit : TakeStockType.Loss))
.ForMember(x => x.FinalQty, ops => ops.MapFrom(x => Math.Abs(x.AfterQty - x.BeforeQty)));
} }
} }
} }

View File

@@ -10,6 +10,7 @@ using System.Threading.Tasks;
using WMS.Web.Core.Dto; using WMS.Web.Core.Dto;
using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.Erp;
using WMS.Web.Core.Dto.Erp.TakeStock; using WMS.Web.Core.Dto.Erp.TakeStock;
using WMS.Web.Core.Dto.Inventory;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.TakeStock; using WMS.Web.Core.Dto.TakeStock;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
@@ -36,10 +37,12 @@ namespace WMS.Web.Domain.Services
private readonly ISingleDataService _singleDataService; private readonly ISingleDataService _singleDataService;
private readonly IErpService _erpService; private readonly IErpService _erpService;
private readonly ILogger<TakeStockService> _logger; private readonly ILogger<TakeStockService> _logger;
private readonly IBoxInventoryService _boxInventoryService;
public TakeStockService(IMapper mapper, ILoginService loginService, public TakeStockService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories, IBasicsRepositories transactionRepositories,
ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories, ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories,
ISingleDataService singleDataService, IErpService erpService, ILogger<TakeStockService> logger) ISingleDataService singleDataService, IErpService erpService, ILogger<TakeStockService> logger,
IBoxInventoryService boxInventoryService)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
@@ -49,6 +52,7 @@ namespace WMS.Web.Domain.Services
_singleDataService = singleDataService; _singleDataService = singleDataService;
_erpService = erpService; _erpService = erpService;
_logger = logger; _logger = logger;
_boxInventoryService = boxInventoryService;
} }
/// <summary> /// <summary>
/// 保存 /// 保存
@@ -62,17 +66,45 @@ namespace WMS.Web.Domain.Services
foreach (var entity in list) foreach (var entity in list)
entity.Create(loginInfo.UserInfo.StaffId); entity.Create(loginInfo.UserInfo.StaffId);
//需要填写序列号 #region dto
//需要修改库存 List<BoxInventoryGenerateDto> inventoryList = new List<BoxInventoryGenerateDto>();
foreach (var entity in list)
{
var inventoryDetail = new List<BoxInventoryGenerateDetailsDto>()
{
new BoxInventoryGenerateDetailsDto()
{
MaterialId=entity.MaterialId,
Qty=entity.FinalQty
}
};
BoxInventoryGenerateDto inventory = new BoxInventoryGenerateDto()
{
BoxId = entity.BoxId,
InventoryInOutMethod = 2,//盘点单按产品修改库存
InventoryInOutType = entity.ResultType == TakeStockType.Profit ? 1 : 2,
StockCode = entity.StockCode,
SubStockId = entity.SubStockId,
Details = inventoryDetail
};
inventoryList.Add(inventory);
}
#endregion
IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); IDbContextTransaction _transaction = _transactionRepositories.GetTransaction();
bool isRollback = false; Result res_Rollback = Result.ReSuccess();
bool isSuccess = true; bool isSuccess = true;
var res_Inventory = await _boxInventoryService.HandlBoxInventory(inventoryList, false);
if (!res_Inventory.IsSuccess) res_Rollback = res_Inventory;
if (res_Rollback.IsSuccess)
{
isSuccess = await _takeStockRepositories.AddRange(list, false); isSuccess = await _takeStockRepositories.AddRange(list, false);
if (!isSuccess) isRollback = true; if (!isSuccess) res_Rollback = Result.ReFailure(ResultCodes.DateWriteError);
}
//提交事务 //提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); isSuccess = _transactionRepositories.CommitTransaction(res_Rollback.IsSuccess ? false : true, _transaction);
if (!res_Rollback.IsSuccess) return res_Rollback;
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);