增加盘点 erp同步
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user