同步入库单-方法优化

This commit is contained in:
tongfei
2023-11-13 14:08:01 +08:00
parent 706550e224
commit 725ca6cd23
10 changed files with 363 additions and 376 deletions

View File

@@ -141,21 +141,21 @@ namespace WMS.Web.Domain.Services.Public
/// <param name="billNo">模糊搜索</param>
/// <param name="sourceBillNos">单据编号集合精确查找</param>
/// <returns></returns>
public async Task<ResultList<ErpPurchaseInStockResultDto>> BillQueryForPurchaseInStock(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForPurchaseInStock(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpPurchaseInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpPurchaseInStockResultDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -163,7 +163,7 @@ namespace WMS.Web.Domain.Services.Public
//3.获取金蝶采购订单:拼接参数和条件
var query = new ErpBillQueryDto(token_result.Data);
var param = new ErpBillQueryParamDto(FormIdParam.PUR_PurchaseOrder.ToString());
param.FieldKeys = "FBillNo,FSupplierId,FPurchaseOrgId,FModel,FMaterialName,FMaterialId,FSOSTOCKID,FQty,FEntryNote,FCreateDate,FCHUCHANGPRICE,FSOSTOCKID.FNumber,FStockInQty,FDocumentStatus,FBillTypeID,FMRPCloseStatus,FBillTypeID.FName";
param.FieldKeys = "FBillNo,FSupplierId,FPurchaseOrgId,FMaterialId,FSOSTOCKID,FQty,FEntryNote,FCreateDate,FCHUCHANGPRICE,FSOSTOCKID.FNumber,FStockInQty";
param.Limit = 10000;
//查询条件:备注其中的条件值以金蝶的值为准!!!
//1.创建时间在两天前和当天时间之间
@@ -217,34 +217,29 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpPurchaseInStockResultDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpPurchaseInStockResultDto();
lis.FBillNo = item[0];
lis.FSupplierId = Convert.ToInt32(item[1]);
lis.FPurchaseOrgId = Convert.ToInt32(item[2]);
lis.FModel = item[3];
lis.FMaterialName = item[4];
lis.FMaterialId = Convert.ToInt32(item[5]);
lis.FSOSTOCKID = Convert.ToInt32(item[6]);
lis.FQty = Convert.ToDecimal(item[7]);
lis.FEntryNote = item[8];
lis.FCreateDate = Convert.ToDateTime(item[9]);
lis.FCHUCHANGPRICE = Convert.ToDecimal(item[10]);
lis.StockFNumber = item[11];
lis.FStockInQty = Convert.ToDecimal(item[12]);
lis.FDocumentStatus = item[13];
lis.FBillTypeID = item[14];
lis.FMRPCloseStatus = item[15];
lis.FBillTypeFName = item[16];
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.SupplierId = Convert.ToInt32(item[1]);
lis.OrgId = Convert.ToInt32(item[2]);
lis.MaterialId = Convert.ToInt32(item[3]);
lis.StockId = Convert.ToInt32(item[4]);
lis.Qty = Convert.ToDecimal(item[5]);
lis.Remark = item[6];
lis.CreateTime = Convert.ToDateTime(item[7]);
lis.FactoryPrice = Convert.ToDecimal(item[8]);
lis.StockCode = item[9];
lis.DeliveredQty = Convert.ToDecimal(item[10]);
lis.Type = (int)InstockType.Purchase;
erp_list.Add(lis);
}
return ResultList<ErpPurchaseInStockResultDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpPurchaseInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
@@ -253,21 +248,21 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpMiscellaneousDto>> BillQueryForMiscellaneous(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForMiscellaneous(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpMiscellaneousDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpMiscellaneousDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -328,25 +323,26 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpMiscellaneousDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpMiscellaneousDto();
lis.BillNo =item[0];
lis.StockOrgId = Convert.ToInt32(item[1]);
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.OrgId = Convert.ToInt32(item[1]);
lis.MaterialId = Convert.ToInt32(item[2]);
lis.StockId = Convert.ToInt32(item[3]);
lis.StockCode = item[4];
lis.Qty = Convert.ToDecimal(item[5]);
lis.CreateTime = Convert.ToDateTime(item[6]);
lis.Remark = item[7];
lis.Type = (int)InstockType.Miscellaneous;
erp_list.Add(lis);
}
return ResultList<ErpMiscellaneousDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpMiscellaneousDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
@@ -355,21 +351,21 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpTransferDirectDto>> BillQueryForTransferDirect(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForTransferDirect(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpTransferDirectDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpTransferDirectDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -430,25 +426,26 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpTransferDirectDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpTransferDirectDto();
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.StockOrgId = Convert.ToInt32(item[1]);
lis.OrgId = Convert.ToInt32(item[1]);
lis.MaterialId = Convert.ToInt32(item[2]);
lis.DestStockId = Convert.ToInt32(item[3]);
lis.DestStockCode = item[4];
lis.StockId = Convert.ToInt32(item[3]);
lis.StockCode = item[4];
lis.Qty = Convert.ToDecimal(item[5]);
lis.CreateTime = Convert.ToDateTime(item[6]);
lis.Remark = item[7];
lis.Type = (int)InstockType.Stkdirecttransfers;
erp_list.Add(lis);
}
return ResultList<ErpTransferDirectDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpTransferDirectDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
@@ -457,21 +454,21 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpTransferinDto>> BillQueryForTransferin(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForTransferin(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpTransferinDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpTransferinDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -532,25 +529,26 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpTransferinDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpTransferinDto();
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.StockOrgId = Convert.ToInt32(item[1]);
lis.OrgId = Convert.ToInt32(item[1]);
lis.MaterialId = Convert.ToInt32(item[2]);
lis.DestStockId = Convert.ToInt32(item[3]);
lis.DestStockCode = item[4];
lis.StockId = Convert.ToInt32(item[3]);
lis.StockCode = item[4];
lis.Qty = Convert.ToDecimal(item[5]);
lis.CreateTime = Convert.ToDateTime(item[6]);
lis.Remark = item[7];
lis.Type = (int)InstockType.StktransferInst;
erp_list.Add(lis);
}
return ResultList<ErpTransferinDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpTransferinDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
@@ -559,21 +557,21 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpAssembledAppDto>> BillQueryForAssembledApp_Assembly(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForAssembledApp_Assembly(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpAssembledAppDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpAssembledAppDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -635,10 +633,10 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpAssembledAppDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpAssembledAppDto();
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.OrgId = Convert.ToInt32(item[1]);
lis.MaterialId = Convert.ToInt32(item[2]);
@@ -647,13 +645,14 @@ namespace WMS.Web.Domain.Services.Public
lis.Qty = Convert.ToDecimal(item[5]);
lis.CreateTime = Convert.ToDateTime(item[6]);
lis.Remark = item[7];
lis.Type = (int)InstockType.Assembled;
erp_list.Add(lis);
}
return ResultList<ErpAssembledAppDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpAssembledAppDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}
@@ -662,21 +661,21 @@ namespace WMS.Web.Domain.Services.Public
/// </summary>
/// <param name="sourceBillNos"></param>
/// <returns></returns>
public async Task<ResultList<ErpAssembledAppDto>> BillQueryForAssembledApp_Disassembly(List<string> sourceBillNos = null)
public async Task<ResultList<ErpInStockResultDto>> BillQueryForAssembledApp_Disassembly(List<string> sourceBillNos = null)
{
try
{
var stocks = await _basicsRepositories.GetUcStockAsync(ManagementSystemCode.GLXT0004.ToString(), "", _appOptions.CompanyId);
if (stocks.Count == 0)
return ResultList<ErpAssembledAppDto>.ReFailure(ResultCodes.ErpStockNoData);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.ErpStockNoData);
var stocks_codes = stocks.Select(x => x.Code).ToList();
//1.先登录金蝶-拿到token
var token_result = await this.Init();
if (!token_result.IsSuccess)
return ResultList<ErpAssembledAppDto>.ReFailure(token_result);
return ResultList<ErpInStockResultDto>.ReFailure(token_result);
//2.时间条件:可能还有其它条件
var beginTime = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00");
@@ -738,10 +737,10 @@ namespace WMS.Web.Domain.Services.Public
var result = JsonConvert.DeserializeObject<List<List<string>>>(result_json);
//5.返回数据的组装
var erp_list = new List<ErpAssembledAppDto>();
var erp_list = new List<ErpInStockResultDto>();
foreach (var item in result)
{
var lis = new ErpAssembledAppDto();
var lis = new ErpInStockResultDto();
lis.BillNo = item[0];
lis.OrgId = Convert.ToInt32(item[1]);
lis.MaterialId = Convert.ToInt32(item[2]);
@@ -750,13 +749,14 @@ namespace WMS.Web.Domain.Services.Public
lis.Qty = Convert.ToDecimal(item[5]);
lis.CreateTime = Convert.ToDateTime(item[6]);
lis.Remark = item[7];
lis.Type = (int)InstockType.Assembled;
erp_list.Add(lis);
}
return ResultList<ErpAssembledAppDto>.ReSuccess(erp_list);
return ResultList<ErpInStockResultDto>.ReSuccess(erp_list);
}
catch (Exception ex)
{
return ResultList<ErpAssembledAppDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
return ResultList<ErpInStockResultDto>.ReFailure(ResultCodes.Erp_BillQuery_Error);
}
}