出入库任务单在金蝶没查到任务单 就作废
This commit is contained in:
@@ -11,6 +11,7 @@ using System.Threading.Tasks;
|
||||
using WMS.Web.Core;
|
||||
using WMS.Web.Core.Dto;
|
||||
using WMS.Web.Core.Dto.Erp;
|
||||
using WMS.Web.Core.Dto.Erp.OutStock;
|
||||
using WMS.Web.Core.Dto.InStockTask;
|
||||
using WMS.Web.Core.Dto.Login;
|
||||
using WMS.Web.Core.Internal.Results;
|
||||
@@ -699,5 +700,111 @@ namespace WMS.Web.Domain.Services
|
||||
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
/// <summary>
|
||||
/// 金蝶删单后wms单据作废
|
||||
/// </summary>
|
||||
/// <param name="begin"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
public async Task<Result> ErpDel(DateTime begin)
|
||||
{
|
||||
var list = await _inStockTaskRepositories.GetEntityList(begin);
|
||||
var result = await GetData(list);
|
||||
if (!result.IsSuccess) return Result.ReFailure(result.Message, result.Status);
|
||||
var erp_list = result.Data;
|
||||
List<InStockTask> update_list = new List<InStockTask>();
|
||||
//处理数据 因为入库任务单和出库任务单结构不一样 没有合并的单据 所以处理不同
|
||||
foreach (var entity in list)
|
||||
{
|
||||
//判断是否在erp数据池里
|
||||
int count = erp_list.Where(w => w.BillNo.Equals(entity.SourceBillNo)).Count();
|
||||
if (count > 0) continue;
|
||||
//如果不在数据池里 被删除了 那么需要把订单作废
|
||||
entity.ErpDel();
|
||||
_logger.LogInformation($"入库任务单 金蝶未找到单据:{entity.SourceBillNo} wms订单号:{entity.BillNo} 作废来源单号:{entity.SourceBillNo}");
|
||||
if (update_list.FirstOrDefault(f => f.Id == entity.Id) == null)
|
||||
update_list.Add(entity);
|
||||
|
||||
}
|
||||
if (update_list.Count() <= 0) return Result.ReSuccess();
|
||||
|
||||
var isSuccess = await _inStockTaskRepositories.UpdateRange(update_list, true);
|
||||
if (!isSuccess)
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
|
||||
return Result.ReSuccess();
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取金蝶数据
|
||||
/// </summary>
|
||||
/// <param name="list"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<Result<List<ErpInStockResultDto>>> GetData(List<InStockTask> list)
|
||||
{
|
||||
List<ErpInStockResultDto> erp_list = new List<ErpInStockResultDto>();
|
||||
List<string> Instock_sourceBillNos = new List<string>();
|
||||
List<string> Miscellaneous_sourceBillNos = new List<string>();
|
||||
List<string> TransferDirect_sourceBillNos = new List<string>();
|
||||
List<string> Transferin_sourceBillNos = new List<string>();
|
||||
List<string> AssembledApp_sourceBillNos = new List<string>();
|
||||
|
||||
foreach (var entity in list)
|
||||
{
|
||||
if (entity.Type == InstockType.Purchase)
|
||||
Instock_sourceBillNos.Add(entity.SourceBillNo);
|
||||
else if (entity.Type == InstockType.Stkdirecttransfers)
|
||||
TransferDirect_sourceBillNos.Add(entity.SourceBillNo);
|
||||
else if (entity.Type == InstockType.StktransferInst)
|
||||
Transferin_sourceBillNos.Add(entity.SourceBillNo);
|
||||
else if (entity.Type == InstockType.Assembled)
|
||||
AssembledApp_sourceBillNos.Add(entity.SourceBillNo);
|
||||
else if (entity.Type == InstockType.Miscellaneous)
|
||||
Miscellaneous_sourceBillNos.Add(entity.SourceBillNo);
|
||||
}
|
||||
|
||||
if (Instock_sourceBillNos.Count() > 0)
|
||||
{
|
||||
var erp_result = await _erpService.BillQueryForPurchaseInStock(Instock_sourceBillNos, null);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result.Message, erp_result.Status);
|
||||
erp_list.AddRange(erp_result.Data);
|
||||
}
|
||||
if (Miscellaneous_sourceBillNos.Count() > 0)
|
||||
{
|
||||
var erp_result = await _erpService.BillQueryForMiscellaneous(Miscellaneous_sourceBillNos, null);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result.Message, erp_result.Status);
|
||||
erp_list.AddRange(erp_result.Data);
|
||||
}
|
||||
if (TransferDirect_sourceBillNos.Count() > 0)
|
||||
{
|
||||
var erp_result = await _erpService.BillQueryForTransferDirect(TransferDirect_sourceBillNos, null);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result.Message, erp_result.Status);
|
||||
erp_list.AddRange(erp_result.Data);
|
||||
}
|
||||
if (Transferin_sourceBillNos.Count() > 0)
|
||||
{
|
||||
var erp_result = await _erpService.BillQueryForTransferin(Transferin_sourceBillNos, null);
|
||||
if (!erp_result.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result.Message, erp_result.Status);
|
||||
erp_list.AddRange(erp_result.Data);
|
||||
}
|
||||
if (AssembledApp_sourceBillNos.Count() > 0)
|
||||
{
|
||||
var erp_result_ass = await _erpService.BillQueryForAssembledApp_Assembly(AssembledApp_sourceBillNos, null);
|
||||
if (!erp_result_ass.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result_ass.Message, erp_result_ass.Status);
|
||||
erp_list.AddRange(erp_result_ass.Data);
|
||||
|
||||
//1.1.获取金蝶数据:拆卸子件入库订单数据
|
||||
var erp_result_disass = await _erpService.BillQueryForAssembledApp_Disassembly(AssembledApp_sourceBillNos, null);
|
||||
if (!erp_result_disass.IsSuccess)
|
||||
return Result<List<ErpInStockResultDto>>.ReFailure(erp_result_disass.Message, erp_result_disass.Status);
|
||||
|
||||
erp_list.AddRange(erp_result_disass.Data);
|
||||
}
|
||||
return Result<List<ErpInStockResultDto>>.ReSuccess(erp_list);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user