diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 8ab6f23e..601c6eee 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -525,6 +525,36 @@ 表单所在的子系统内码,字符串类型(非必录) + + + Erp同步数据时单据头 + + + + + 业务对象表单Id(必录) + + + + + 单据体 + + + + + erp 提交和审核 + + + + + 业务对象表单Id(必录) + + + + + 单据Id + + 金蝶组织-基本信息 @@ -595,31 +625,6 @@ 创建时间 - - - 仓库信息 - - - - - id - - - - - 编码 - - - - - 名字 - - - - - 业务组织(使用组织)编码 - - 出厂价格 @@ -650,24 +655,9 @@ 名字 - + - 业务组织(使用组织)编码 - - - - - Erp同步数据时单据头 - - - - - 校验Json数据包是否重复传入,一旦重复传入,接口调用失败,默认false(非必录) - - - - - 单据体 + 业务组织(使用组织) diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 998e98dd..2a4261e3 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -2025,6 +2025,20 @@ + + + 盘盈 + + + + + + + 盘亏 + + + + Get方法 @@ -2453,6 +2467,16 @@ 仓库 + + + 盘盈单 + + + + + 盘亏单 + + 入库状态 diff --git a/src/WMS.Web.Domain/IService/ITakeStockService.cs b/src/WMS.Web.Domain/IService/ITakeStockService.cs index 4e90d113..762d2a8b 100644 --- a/src/WMS.Web.Domain/IService/ITakeStockService.cs +++ b/src/WMS.Web.Domain/IService/ITakeStockService.cs @@ -6,6 +6,7 @@ using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.TakeStock; using WMS.Web.Core.Internal.Results; +using WMS.Web.Domain.Entitys; namespace WMS.Web.Domain.IService { @@ -18,5 +19,10 @@ namespace WMS.Web.Domain.IService Task Save(List dto, LoginInDto loginInfo); // 同步金蝶 Task Sync(OperateRequest dto); + // + //盘盈 + Task Profit(TakeStock entity); + //盘亏 + Task Loss(TakeStock entity); } } diff --git a/src/WMS.Web.Domain/Services/TakeStockService.cs b/src/WMS.Web.Domain/Services/TakeStockService.cs index 0e0a4201..e1549cdf 100644 --- a/src/WMS.Web.Domain/Services/TakeStockService.cs +++ b/src/WMS.Web.Domain/Services/TakeStockService.cs @@ -2,9 +2,11 @@ using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto; +using WMS.Web.Core.Dto.Erp.TakeStock; using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.TakeStock; using WMS.Web.Core.Internal.Results; @@ -13,6 +15,7 @@ using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; using WMS.Web.Domain.IService.Public; using WMS.Web.Domain.Values; +using WMS.Web.Domain.Values.Single; namespace WMS.Web.Domain.Services { @@ -25,14 +28,21 @@ namespace WMS.Web.Domain.Services private readonly ILoginService _loginService; public readonly ITransactionRepositories _transactionRepositories; private readonly ITakeStockRepositories _takeStockRepositories; + private readonly ILoginRepositories _loginRepositories; + private readonly ISingleDataService _singleDataService; + private readonly IErpService _erpService; public TakeStockService(IMapper mapper, ILoginService loginService, ITransactionRepositories transactionRepositories, - ITakeStockRepositories takeStockRepositories) + ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories, + ISingleDataService singleDataService, IErpService erpService) { _mapper = mapper; _loginService = loginService; _transactionRepositories = transactionRepositories; _takeStockRepositories = takeStockRepositories; + _loginRepositories = loginRepositories; + _singleDataService = singleDataService; + _erpService = erpService; } /// /// 保存 @@ -72,5 +82,91 @@ namespace WMS.Web.Domain.Services { return Task.FromResult(Result.ReSuccess()); } + /// + /// 盘盈 + /// + /// + /// + public async Task Profit(TakeStock entity) + { + //获取金蝶仓库仓位编码 + var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockId); + var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId); + + var res = await _erpService.BillQueryForStock(); + var stock = res.Data.FirstOrDefault(f => f.Code == stockCode);//需要根据单点code搜索 + var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索 + if (stock == null || subStock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); + //组装dto + #region 组装dto + List detils = new List(); + detils.Add(new ErpTakeStockDetailsSaveDto() + { + FOwnerid = stock.OrgId.ToString(), + FKeeperId = stock.OrgId.ToString(), + MaterialId = entity.MaterialId.ToString(), + UnitId = entity.UnitId.ToString(), + StockId = stock.Id.ToString(), + SubStockId = subStock.Id.ToString(), + BeforeQty = entity.BeforeQty, + AfterQty = entity.AfterQty, + FinalQty = entity.FinalQty, + Fnote = "" + }); + ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() + { + BillNo = entity.BillNo, + StockOrgId = stock.OrgId.ToString(), + Type = "PY01_SYS", + Date = entity.Date, + Details = detils + }; + #endregion + + return Result.ReSuccess(); + } + /// + /// 盘亏 + /// + /// + /// + public async Task Loss(TakeStock entity) + { + //获取金蝶仓库仓位编码 + var stockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.StockId); + var subStockCode = _singleDataService.GetSingleDataCode(SingleAction.Stocks, _loginRepositories.CompanyId, entity.SubStockId); + + var res = await _erpService.BillQueryForStock(); + var stock = res.Data.FirstOrDefault(f => f.Code == stockCode);//需要根据单点code搜索 + var subStock = res.Data.FirstOrDefault(f => f.Code == subStockCode);//需要根据单点code搜索 + if (stock == null || subStock == null) return Result.ReFailure(ResultCodes.ErpStockNoData); + //组装dto + #region 组装dto + List detils = new List(); + detils.Add(new ErpTakeStockDetailsSaveDto() + { + FOwnerid = stock.OrgId.ToString(), + FKeeperId = stock.OrgId.ToString(), + MaterialId = entity.MaterialId.ToString(), + UnitId = entity.UnitId.ToString(), + StockId = stock.Id.ToString(), + SubStockId = subStock.Id.ToString(), + BeforeQty = entity.BeforeQty, + AfterQty = entity.AfterQty, + FinalQty = entity.FinalQty, + Fnote = "" + }); + ErpTakeStockSaveDto dto = new ErpTakeStockSaveDto() + { + BillNo = entity.BillNo, + StockOrgId = stock.OrgId.ToString(), + Type = "PK01_SYS", + Date = entity.Date, + Details = detils + }; + #endregion + + return Result.ReSuccess(); + } } }