diff --git a/Reportapi/MyCode.Project.OutSideService/IKingDeeService.cs b/Reportapi/MyCode.Project.OutSideService/IKingDeeService.cs
new file mode 100644
index 0000000..228e03f
--- /dev/null
+++ b/Reportapi/MyCode.Project.OutSideService/IKingDeeService.cs
@@ -0,0 +1,17 @@
+using MyCode.Project.Domain.Message.Request.KingDee;
+
+namespace MyCode.Project.OutSideService
+{
+ public interface IKingDeeService
+ {
+ ///
+ /// 保存一个订单对象
+ ///
+ ///
+ ///
+ ///
+ string Save(string formId, BillSave billSave);
+
+
+ }
+}
diff --git a/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs b/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs
new file mode 100644
index 0000000..3ccd9ad
--- /dev/null
+++ b/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs
@@ -0,0 +1,183 @@
+using MyCode.Project.Domain.Message.Request.KingDee;
+using MyCode.Project.Domain.Message.Response.JackYun;
+using MyCode.Project.Domain.Model;
+using MyCode.Project.Domain.Repositories;
+using MyCode.Project.Infrastructure.Common;
+using MyCode.Project.Infrastructure.Exceptions;
+using MyCode.Project.Infrastructure.JackYun;
+using MyCode.Project.OutSideService;
+using MyCode.Project.Repositories;
+using MyCode.Project.Repositories.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MyCode.Project.Services.Implementation
+{
+ public class OrderPushService : ServiceBase //, IOrderPushService
+ {
+ private IJackYunService _jackYunService;
+ private IJackOrdersRepository _jackOrdersRepository;
+ private IJackOrdersItemRepository _jackOrdersItemRepository;
+ private IPushKingDeeOrderRepository _pushKingDeeOrderRepository;
+ private IPushKingDeeOrderItemRepository _pushKingDeeOrderItemRepository;
+ private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
+ private IKingDeeService _kingDeeService;
+
+ public OrderPushService(IJackOrdersRepository jackOrdersRepository
+ , IJackOrdersItemRepository jackOrdersItemRepository
+ , IPushKingDeeOrderRepository pushKingDeeOrderRepository
+ , IPushKingDeeOrderItemRepository pushKingDeeOrderItemRepository
+ , IYTKJTShopParameterRepository yTKJTShopParameterRepository
+ , IJackYunService jackYunService
+ , IKingDeeService kingDeeService)
+ {
+ _yTKJTShopParameterRepository = yTKJTShopParameterRepository;
+ _pushKingDeeOrderRepository = pushKingDeeOrderRepository;
+ _pushKingDeeOrderItemRepository = pushKingDeeOrderItemRepository;
+ _jackOrdersRepository = jackOrdersRepository;
+ _jackOrdersItemRepository = jackOrdersItemRepository;
+ _jackYunService = jackYunService;
+ _kingDeeService = kingDeeService;
+ }
+
+
+ #region SetOrder(把吉客云订单存进本地数据库)
+ ///
+ /// 把吉客云订单存进本地数据库
+ ///
+ ///
+ [TransactionCallHandler]
+ public void SetOrder(List trades)
+ {
+ var ids = trades.Select(t => t.tradeId).Distinct().ToList();
+ ids = _jackOrdersRepository.Queryable().Where(t => ids.Contains(t.TradeId)).Select(t => t.TradeId).Distinct().ToList();
+ if (ids.Count > 0)
+ trades = trades.Where(t => !ids.Contains(t.tradeId)).ToList();
+ List jackOrdersList = new List();
+ List ordersItemList = new List();
+ trades.ForEach(t =>
+ {
+ JackOrders jackOrders = new JackOrders();
+ jackOrders = AutoMapperHelper.AutoMappToSingle(t);
+ jackOrders.Id = Guid.NewGuid();
+ jackOrders.Status = 0;
+ jackOrders.UpdateTime = DateTime.Now;
+ jackOrders.CreateTime = DateTime.Now;
+ if (t.goodsDetail != null)
+ {
+ var items = AutoMapperHelper.AutoMappToList(t.goodsDetail);
+ items.ForEach(k =>
+ {
+ k.JackOrdersId = jackOrders.Id;
+ });
+ jackOrdersList.Add(jackOrders);
+ ordersItemList.AddRange(items);
+ }
+
+ });
+
+ if (jackOrdersList.Count > 0)
+ {
+ _jackOrdersRepository.Add(jackOrdersList);
+ _jackOrdersItemRepository.Add(ordersItemList);
+ }
+ }
+ #endregion
+
+ #region GetAndMergeJackYunOrder(合并吉客云订单到新表)
+ ///
+ /// 合并吉客云订单到新表
+ ///
+ ///
+ [TransactionCallHandler]
+ public string GetAndMergeJackYunOrder(string now)
+ {
+ var list = _jackOrdersItemRepository.GetPushOrder();
+ List mesg = new List();
+
+ var shopParemList = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
+ List pushKingDeeOrderItems = new List();
+ List pushKingDeeOrders = new List();
+ list.ForEach(sheet =>
+ {
+ if (pushKingDeeOrders.Where(t => t.ShopId == sheet.ShopId && t.WarehouseId == sheet.WarehouseId).Count() > 0)
+ {
+ return;
+ }
+ PushKingDeeOrder pushKingDeeOrder = new PushKingDeeOrder();
+ pushKingDeeOrder = AutoMapperHelper.AutoMappToSingle(sheet);
+ pushKingDeeOrder.Id = Guid.NewGuid();
+ pushKingDeeOrders.Add(pushKingDeeOrder);
+
+ var tempList = list.Where(t => t.ShopId == sheet.ShopId && t.WarehouseId == sheet.WarehouseId).ToList();
+ tempList.ForEach(item =>
+ {
+ PushKingDeeOrderItem pushKingDeeOrderItem = new PushKingDeeOrderItem();
+ pushKingDeeOrderItem = AutoMapperHelper.AutoMappToSingle(item);
+ pushKingDeeOrderItem.PushKingDeeOrderId = pushKingDeeOrder.Id;
+ pushKingDeeOrderItem.Id = Guid.NewGuid();
+ pushKingDeeOrderItems.Add(pushKingDeeOrderItem);
+ });
+ //var shopParem = shopParemList.Where(h => h.FSHOPCODE == sheet.ShopId.Value.ToString()&& h.FWAREHOUSE.Value.ToString()==sheet.WarehouseId ).FirstOrDefault();
+ //if (shopParem != null)
+ //{
+ //}
+ //else
+ //{
+ // mesg.Add($@"店铺{sheet.ShopName}没有配置店铺参数或者配置的仓库不是 {sheet.WarehouseCode}");
+ //}
+ });
+ if (pushKingDeeOrders.Count > 0)
+ {
+ var oldList = _jackOrdersRepository.Queryable().Where(t => t.Status == 0).ToList();
+ oldList.ForEach(t =>
+ {
+ if (pushKingDeeOrders.Count(h => h.ShopId == t.ShopId && t.WarehouseId == h.WarehouseId) > 0)
+ {
+ t.Status = 1;
+ t.UpdateTime = DateTime.Now;
+ }
+ });
+ oldList = oldList.Where(t => t.Status == 1).ToList();
+ _jackOrdersRepository.Update(oldList);
+ _pushKingDeeOrderRepository.Add(pushKingDeeOrders);
+ _pushKingDeeOrderItemRepository.Add(pushKingDeeOrderItems);
+ }
+
+ return JsonHelper.ToJson(list);
+ }
+ #endregion
+
+ public void PushOrderToKingDee(PushKingDeeOrder pushKingDeeOrder1)
+ {
+ var orderSHeet = _pushKingDeeOrderRepository.Queryable().Where(t => pushKingDeeOrder1.Id == t.Id).First();
+ if (orderSHeet.Status != 0)
+ {
+ throw new BaseException("");
+ }
+ var itemList = _pushKingDeeOrderItemRepository.Queryable().Where(t => pushKingDeeOrder1.Id == t.PushKingDeeOrderId).ToList();
+ var one = _yTKJTShopParameterRepository.Queryable().Where(t => t.FSHOPCODE == orderSHeet.ShopCode).First();
+ // TODO 如果是False则同步到云星空销售订单
+ if (one.FSYNCHRONIZEWMS == "0")
+ {
+ BillSave billSave = new BillSave()
+ {
+ Model = orderSHeet,
+ };
+ FSaleOrderEntry fSaleOrderEntry = new FSaleOrderEntry();
+
+ var resultString = _kingDeeService.Save("SAL_SaleOrder", billSave);
+ LogHelper.Info(resultString);
+ }
+ // 如果为True则同步到WMS
+ else
+ {
+ //wms
+
+ }
+ }
+ }
+}