增加盘点 erp同步
This commit is contained in:
@@ -595,6 +595,31 @@
|
||||
创建时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Core.Dto.Erp.ErpStockDto">
|
||||
<summary>
|
||||
仓库信息
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpStockDto.Id">
|
||||
<summary>
|
||||
id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpStockDto.Code">
|
||||
<summary>
|
||||
编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpStockDto.Name">
|
||||
<summary>
|
||||
名字
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.ErpStockDto.OrgCode">
|
||||
<summary>
|
||||
业务组织(使用组织)编码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.Purchase.ErpPurchaseInStockResultDto.FCHUCHANGPRICE">
|
||||
<summary>
|
||||
出厂价格
|
||||
@@ -627,7 +652,7 @@
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto.Type">
|
||||
<summary>
|
||||
单据类型(标准盘亏单; 标准盘盈单)
|
||||
单据类型(标准盘亏单; 标准盘盈单 PY01_SYS) 盘亏 PK01_SYS
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto.StockOrgId">
|
||||
@@ -637,7 +662,7 @@
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto.FOwnerTypeIdHead">
|
||||
<summary>
|
||||
货主类型: 默认为业务组织
|
||||
货主类型: 默认为业务组织 BD_OwnerOrg
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockSaveDto.BillNo">
|
||||
@@ -657,17 +682,17 @@
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FStockStatusId">
|
||||
<summary>
|
||||
库存状态
|
||||
库存状态 KCZT001
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FOwnerTypeId">
|
||||
<summary>
|
||||
货主类型: 默认为业务组织
|
||||
货主类型: 默认为业务组织 BD_OwnerOrg
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FOwnerid">
|
||||
<summary>
|
||||
取仓库对应的货主信息
|
||||
取仓库对应的货主信息 货主: 等于库存组织
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FKeeperTypeId">
|
||||
@@ -677,7 +702,7 @@
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.FKeeperId">
|
||||
<summary>
|
||||
保管者
|
||||
保管者 仓库”库存组织”
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:WMS.Web.Core.Dto.Erp.TakeStock.ErpTakeStockDetailsSaveDto.MaterialId">
|
||||
|
||||
@@ -1393,6 +1393,12 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForStock">
|
||||
<summary>
|
||||
获取仓库信息
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.IService.Public.ILoginService">
|
||||
<summary>
|
||||
登录服务接口
|
||||
@@ -2013,6 +2019,12 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.ErpService.BillQueryForStock">
|
||||
<summary>
|
||||
获取使用组织
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.Public.HttpClientService.GetAsync``1(System.String,System.Int32)">
|
||||
<summary>
|
||||
Get方法
|
||||
@@ -2436,6 +2448,11 @@
|
||||
供应商
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.Erp.FormIdParam.BD_STOCK">
|
||||
<summary>
|
||||
仓库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.InstockStatus">
|
||||
<summary>
|
||||
入库状态
|
||||
|
||||
@@ -10,11 +10,16 @@ namespace WMS.Web.Core.Dto.Erp
|
||||
/// </summary>
|
||||
public class ErpSave<T>
|
||||
{
|
||||
public ErpSave(string formId,T model)
|
||||
{
|
||||
this.FormId = formId;
|
||||
this.Model = model;
|
||||
}
|
||||
/// <summary>
|
||||
/// 校验Json数据包是否重复传入,一旦重复传入,接口调用失败,默认false(非必录)
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
[JsonProperty("ValidateRepeatJson")]
|
||||
public bool ValidateRepeatJson { get; set; } = false;
|
||||
[JsonProperty("FormId")]
|
||||
public string FormId { get; set; }
|
||||
/// <summary>
|
||||
/// 单据体
|
||||
/// </summary>
|
||||
28
src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs
Normal file
28
src/WMS.Web.Core/Dto/Erp/ErpSubmitDto.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace WMS.Web.Core.Dto.Erp
|
||||
{
|
||||
/// <summary>
|
||||
/// erp 提交和审核
|
||||
/// </summary>
|
||||
public class ErpSubmitDto
|
||||
{
|
||||
public ErpSubmitDto(string formId, string id)
|
||||
{
|
||||
this.FormId = formId;
|
||||
this.Ids = id;
|
||||
}
|
||||
/// <summary>
|
||||
/// 业务对象表单Id(必录)
|
||||
/// </summary>
|
||||
[JsonProperty("FormId")]
|
||||
public string FormId { get; set; }
|
||||
/// <summary>
|
||||
/// 单据Id
|
||||
/// </summary>
|
||||
public string Ids { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -22,8 +22,8 @@ namespace WMS.Web.Core.Dto.Erp
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
/// <summary>
|
||||
/// 业务组织(使用组织)编码
|
||||
/// 业务组织(使用组织)
|
||||
/// </summary>
|
||||
public string OrgCode { get; set; }
|
||||
public int OrgId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ using WMS.Web.Core.Dto.Erp;
|
||||
using WMS.Web.Core.Dto.Erp.Org;
|
||||
using WMS.Web.Core.Dto.Erp.Purchase;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
using WMS.Web.Domain.Entitys;
|
||||
|
||||
namespace WMS.Web.Domain.IService.Public
|
||||
{
|
||||
@@ -28,5 +29,9 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<ResultList<ErpStockDto>> BillQueryForStock();
|
||||
//盘盈
|
||||
Task<Result> TakeStock_Profit(TakeStock entity);
|
||||
//盘亏
|
||||
Task<Result> TakeStock_Loss(TakeStock entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,6 +44,14 @@ namespace WMS.Web.Domain.Values.Erp
|
||||
/// <summary>
|
||||
/// 仓库
|
||||
/// </summary>
|
||||
BD_STOCK=9
|
||||
BD_STOCK=9,
|
||||
/// <summary>
|
||||
/// 盘盈单
|
||||
/// </summary>
|
||||
STK_StockCountGain,
|
||||
/// <summary>
|
||||
/// 盘亏单
|
||||
/// </summary>
|
||||
STK_StockCountLoss,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,5 +27,7 @@ namespace WMS.Web.Domain.Values
|
||||
|
||||
public static ValueTuple<int, string> BoxNoData = (80000, "箱信息不存在");
|
||||
public static ValueTuple<int, string> BoxMateriaNoData = (800010, "箱对应物料信息不存在");
|
||||
|
||||
public static ValueTuple<int, string> ErpStockNoData = (900000, "Erp仓库信息不完整");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user