public async Task <bool> Handle(SynchronizeJsdOrderCommand request, CancellationToken cancellationToken) { DateTime date; if (string.IsNullOrEmpty(request.Date) || (!DateTime.TryParse(request.Date, out date))) { throw new Exception($"字段 date 值:‘{request.Date}’不是 yyyy-MM-dd格式"); } var remoteJsdOrderList = await _httpOmsService.GetJsdOrderPayedDetailAsync(date); //接口获取极速达订单 var zmd_oms_headList = await _rmsDataBaseQuery.GetZmd_oms_headAsync(date.ToString("yyyy-MM-dd")); //rms极速达订单 var getJsdOrderOutputList = await _applicationUserQuery.GetJsdOrderListAsync(date.ToString("yyyy-MM-dd")); //临时极速达订单 //如果官网没有任何数据那就不要同步 if (!(remoteJsdOrderList != null && remoteJsdOrderList.data != null && remoteJsdOrderList.data.Count > 0)) { return(false); } foreach (var remoteItem in remoteJsdOrderList.data) { remoteItem.OrderStatus = "0"; var zmd_oms_headItem = zmd_oms_headList.Where(c => c.OrderCode == remoteItem.OrderCode).FirstOrDefault(); var getJsdOrderOutputItem = getJsdOrderOutputList.Where(c => c.OrderCode == remoteItem.OrderCode).FirstOrDefault(); if (zmd_oms_headItem != null && zmd_oms_headItem.Status != "0") //同步rms更新状态 { remoteItem.OrderStatus = zmd_oms_headItem.Status; } //刚下的单 还没有到各个系统里面 if (getJsdOrderOutputItem == null) { await CreateJsdOrder(remoteItem); //在临时表中增加数据 } //rms 更新了状态 同步到临时库里面 else if (getJsdOrderOutputItem != null && getJsdOrderOutputItem.IsThisSystemChange == false && getJsdOrderOutputItem.Status != remoteItem.OrderStatus ) { if (zmd_oms_headItem != null) { var entity = await _iJsdOrderRepository.GetAsync(getJsdOrderOutputItem.Id); entity.SetStatus(remoteItem.OrderStatus); //同步Rms状态 _iJsdOrderRepository.Update(entity); } } } return(await _iJsdOrderRepository.UnitOfWork.SaveEntitiesAsync()); }