@@ -14,6 +14,7 @@ using System.Threading.Tasks;
using WMS.Web.Core.Dto.Erp ;
using WMS.Web.Core.Dto.Erp.Org ;
using WMS.Web.Core.Dto.Erp.Purchase ;
using WMS.Web.Core.Dto.Erp.TakeStock ;
using WMS.Web.Core.Internal.Results ;
using WMS.Web.Domain.Entitys ;
using WMS.Web.Domain.Infrastructure ;
@@ -21,6 +22,7 @@ using WMS.Web.Domain.IService.Public;
using WMS.Web.Domain.Options ;
using WMS.Web.Domain.Values ;
using WMS.Web.Domain.Values.Erp ;
using WMS.Web.Domain.Values.Single ;
namespace WMS.Web.Domain.Services.Public
{
@@ -35,14 +37,18 @@ namespace WMS.Web.Domain.Services.Public
private ERPGWSoapClient _client ;
private readonly IMemoryCache _memoryCache ;
private readonly IInStockTaskRepositories _inStockTaskRepositories ;
private readonly ISingleDataService _singleDataService ;
public readonly ITransactionRepositories _transactionRepositories ;
private readonly ILoginRepositories _loginRepositories ;
public ErpService (
IMapper mapper ,
IOptions < ErpOptions > erpOptions ,
ILogger < ErpService > logger ,
IMemoryCache memoryCache ,
IInStockTaskRepositories inStockTaskRepositories ,
ITransactionRepositories transactionRepositories )
ITransactionRepositories transactionRepositories ,
ISingleDataService singleDataService ,
ILoginRepositories loginRepositories )
{
this . _erpOptions = erpOptions ? . Value ;
this . _mapper = mapper ;
@@ -50,6 +56,8 @@ namespace WMS.Web.Domain.Services.Public
this . _memoryCache = memoryCache ;
this . _inStockTaskRepositories = inStockTaskRepositories ;
this . _transactionRepositories = transactionRepositories ;
this . _singleDataService = singleDataService ;
this . _loginRepositories = loginRepositories ;
}
/// <summary>
@@ -101,7 +109,7 @@ namespace WMS.Web.Domain.Services.Public
//3.单据类型:标准采购订单和标准委外订单
//4.明细关闭状态:正常
//5.仓库: wms系统的仓库值---现在这个没有加,因为还单点没有和金蝶同步
param . FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and (FBillTypeID='83d822ca3e374b4ab01e5dd46a0062bd' or FBillTypeID='6d01d059713d42a28bb976c90a121142') and FMRPCloseStatus='A'" ;
param . FilterString = "FCreateDate>='" + beginTime + "' and FCreateDate<='" + endTime + "' and FDocumentStatus='C' and (FBillTypeID='83d822ca3e374b4ab01e5dd46a0062bd' or FBillTypeID='6d01d059713d42a28bb976c90a121142') and FMRPCloseStatus='A'" ;
query . Data = JsonConvert . SerializeObject ( param ) ;
var json = JsonConvert . SerializeObject ( query ) ;
@@ -123,6 +131,12 @@ namespace WMS.Web.Domain.Services.Public
lis . FSOSTOCKID = Convert . ToInt32 ( item [ 6 ] ) ;
lis . FQty = Convert . ToDecimal ( item [ 7 ] ) ;
lis . FEntryNote = item [ 8 ] ;
lis . FCreateDate = Convert . ToDateTime ( item [ 9 ] ) ;
lis . FDocumentStatus = item [ 10 ] ;
lis . FBillTypeID = item [ 11 ] ;
lis . FMRPCloseStatus = item [ 12 ] ;
lis . FBillTypeFName = item [ 13 ] ;
//list.FCHUCHANGPRICE=FCHUCHANGPRICE[?];//这个是出厂价,但是金蝶测试没有这个字段,正式有的
lis . FCreateDate = Convert . ToDateTime ( item [ 9 ] ) ;
lis . FCHUCHANGPRICE = Convert . ToDecimal ( item [ 10 ] ) ;
lis . StockFNumber = item [ 11 ] ;
@@ -207,7 +221,7 @@ namespace WMS.Web.Domain.Services.Public
lis . Id = int . Parse ( item [ 0 ] ) ;
lis . Name = item [ 1 ] ;
lis . Code = item [ 2 ] ;
lis . OrgCode = item [ 3 ] ;
lis . OrgId = Convert . ToInt32 ( item[ 3 ] ) ;
list . Add ( lis ) ;
}
@@ -219,5 +233,82 @@ namespace WMS.Web.Domain.Services.Public
return ResultList < ErpStockDto > . ReFailure ( "错误" , 10002 ) ;
}
}
/// <summary>
/// 盘盈
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task < Result > TakeStock_Profit ( TakeStock entity )
{
try
{
//获取金蝶仓库仓位编码
var stockCode = _singleDataService . GetSingleDataCode ( SingleAction . Stocks , _loginRepositories . CompanyId , entity . StockId ) ;
var subStockCode = _singleDataService . GetSingleDataCode ( SingleAction . Stocks , _loginRepositories . CompanyId , entity . SubStockId ) ;
var res = await this . 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 < ErpTakeStockDetailsSaveDto > detils = new List < ErpTakeStockDetailsSaveDto > ( ) ;
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
var token_result = await this . Init ( ) ;
if ( ! token_result . IsSuccess )
return token_result ;
var query = new ErpBillQueryDto ( token_result . Data ) ;
var param = new ErpSave < ErpTakeStockSaveDto > ( FormIdParam . STK_StockCountGain . ToString ( ) , dto ) ;
query . Data = JsonConvert . SerializeObject ( param ) ;
var result_json = await _client . SaveAsync ( JsonConvert . SerializeObject ( query ) ) ;
//提交
var sparam = new ErpSubmitDto ( FormIdParam . STK_StockCountGain . ToString ( ) , "" ) ;
query . Data = JsonConvert . SerializeObject ( sparam ) ;
result_json = await _client . SubmitAsync ( JsonConvert . SerializeObject ( query ) ) ;
//审核
result_json = await _client . AuditAsync ( JsonConvert . SerializeObject ( query ) ) ;
return Result . ReSuccess ( ) ;
}
catch ( Exception )
{
return Result . ReFailure ( "错误" , 10002 ) ;
}
}
/// <summary>
/// 盘亏
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
public async Task < Result > TakeStock_Loss ( TakeStock entity )
{
return Result . ReSuccess ( ) ;
}
}
}