From 228640df46051aec5d4f5b2ac42d642efe698747 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9C=B1=E6=96=8C?= <1324361213@qq.com>
Date: Fri, 18 Jul 2025 17:41:55 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A8=E9=80=81WMS?=
=?UTF-8?q?=E6=96=B9=E6=B3=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Message/Request/WMS/SaleOrder.cs | 141 ++++++++++++++
.../MyCode.Project.Domain.csproj | 1 +
.../MyCode.Project.ScheduleTask/App.config | 154 ++++++++--------
Reportapi/MyCode.Project.Services/App.config | 28 +--
.../Implementation/OrderPushService.cs | 55 +++++-
.../MyCode.Project.Services.csproj | 3 +
.../MyCode.Project.Services/packages.config | 1 +
Reportapi/MyCode.Project.WebApi/Web.config | 172 +++++++++---------
8 files changed, 375 insertions(+), 180 deletions(-)
create mode 100644 Reportapi/MyCode.Project.Domain/Message/Request/WMS/SaleOrder.cs
diff --git a/Reportapi/MyCode.Project.Domain/Message/Request/WMS/SaleOrder.cs b/Reportapi/MyCode.Project.Domain/Message/Request/WMS/SaleOrder.cs
new file mode 100644
index 0000000..c2b85b5
--- /dev/null
+++ b/Reportapi/MyCode.Project.Domain/Message/Request/WMS/SaleOrder.cs
@@ -0,0 +1,141 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace MyCode.Project.Domain.Message.Request.WMS
+{
+ public class SaleOrder
+ {
+ ///
+ /// 单据编号
+ ///
+ public string OrderNo { get; set; }
+ ///
+ /// 公司组织
+ ///
+ public string CompanyId { get; set; }
+ ///
+ /// 同步日期时间
+ ///
+ public string ReadTime { get; set; }
+ ///
+ /// 销售类型
+ ///
+ public string OrderType { get; set; }
+ ///
+ /// 客户编码
+ ///
+ public string CustAccount { get; set; }
+ ///
+ /// 单据日期
+ ///
+ public string OrderTime { get; set; }
+ ///
+ /// WMS仓库
+ ///
+ public string WarehouseId { get; set; }
+ ///
+ /// 货主
+ ///
+ public string CustomerId { get; set; }
+ ///
+ /// 下发系统
+ ///
+ public string Channel { get; set; }
+ ///
+ /// 单据类型
+ ///
+ public string ItemType { get; set; }
+ ///
+ /// 单据总数量
+ ///
+ public int TotalQty { get; set; }
+ ///
+ /// 单据总金额
+ ///
+ public decimal TotalMount { get; set; }
+ ///
+ /// 备注
+ ///
+ public string Comment { get; set; }
+ ///
+ /// 单据创建日期时间
+ ///
+ public string CreateTime { get; set; }
+ ///
+ /// 订单明细
+ ///
+ public Line[] Lines { get; set; }
+ }
+
+ public class Line
+ {
+ ///
+ /// 单据编号
+ ///
+ public string OrderNo { get; set; }
+ ///
+ /// 公司组织
+ ///
+ public string CompanyId { get; set; }
+ ///
+ /// 销售类型
+ ///
+ public string OrderType { get; set; }
+ ///
+ /// 行号
+ ///
+ public int LineNo { get; set; }
+ ///
+ /// 货主
+ ///
+ public string CustomerId { get; set; }
+ ///
+ /// SKU
+ ///
+ public string Sku { get; set; }
+ ///
+ /// 条码
+ ///
+ public string Barcode { get; set; }
+ ///
+ /// 行数量
+ ///
+ public int OrderQty { get; set; }
+ ///
+ /// 单位
+ ///
+ public string OrderUnit { get; set; }
+ ///
+ /// 价格
+ ///
+ public decimal OrderPrice { get; set; }
+ ///
+ /// 物料编码
+ ///
+ public string ItemId { get; set; }
+ ///
+ /// 尺寸
+ ///
+ public string SizeType { get; set; }
+ ///
+ /// 颜色
+ ///
+ public string Color { get; set; }
+ ///
+ /// ERP仓库
+ ///
+ public string LocationId { get; set; }
+ ///
+ /// 部门
+ ///
+ public string Comment { get; set; }
+ ///
+ /// 创建日期时间
+ ///
+ public string CreateTime { get; set; }
+ }
+
+}
diff --git a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
index 02119f4..3cd6e93 100644
--- a/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
+++ b/Reportapi/MyCode.Project.Domain/MyCode.Project.Domain.csproj
@@ -69,6 +69,7 @@
+
diff --git a/Reportapi/MyCode.Project.ScheduleTask/App.config b/Reportapi/MyCode.Project.ScheduleTask/App.config
index 073e12c..f209889 100644
--- a/Reportapi/MyCode.Project.ScheduleTask/App.config
+++ b/Reportapi/MyCode.Project.ScheduleTask/App.config
@@ -1,4 +1,4 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -70,142 +70,142 @@
-->
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/Reportapi/MyCode.Project.Services/App.config b/Reportapi/MyCode.Project.Services/App.config
index 4769706..04d83ff 100644
--- a/Reportapi/MyCode.Project.Services/App.config
+++ b/Reportapi/MyCode.Project.Services/App.config
@@ -1,32 +1,32 @@
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs b/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs
index 4f5174f..4dc0140 100644
--- a/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs
+++ b/Reportapi/MyCode.Project.Services/Implementation/OrderPushService.cs
@@ -1,5 +1,6 @@
using MyCode.Project.Domain.Message.Request.KingDee;
using MyCode.Project.Domain.Message.Request.KingDee.SaveModel;
+using MyCode.Project.Domain.Message.Request.WMS;
using MyCode.Project.Domain.Message.Response.JackYun;
using MyCode.Project.Domain.Model;
using MyCode.Project.Domain.Repositories;
@@ -10,6 +11,7 @@ using MyCode.Project.OutSideService;
using MyCode.Project.Repositories;
using MyCode.Project.Repositories.Common;
using MyCode.Project.Services.IServices;
+using RestSharp;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -18,7 +20,7 @@ using System.Threading.Tasks;
namespace MyCode.Project.Services.Implementation
{
- public class OrderPushService : IOrderPushService
+ public class OrderPushService : IOrderPushService
{
private IJackYunService _jackYunService;
private IJackOrdersRepository _jackOrdersRepository;
@@ -177,8 +179,55 @@ namespace MyCode.Project.Services.Implementation
private string PushWMSSaleOrder(PushKingDeeOrder pushKingdeeOrder)
{
+ var itemList = _pushKingDeeOrderItemRepository
+ .Queryable()
+ .Where(t => pushKingdeeOrder.Id == t.PushKingDeeOrderId)
+ .ToList();
+ // 新建销售订单实例
+ var order = new SaleOrder();
+ // 赋值
+ order.CreateTime = pushKingdeeOrder.CreateTime?.ToString("yyyy/MM/dd");
+ order.OrderNo = pushKingdeeOrder.Id.ToString();
+ order.CompanyId = string.Empty; // 公司Id
+ order.OrderType = pushKingdeeOrder.TradeType == 8 ? "8" : "4"; // 订单类型
+ order.CustomerId = string.Empty; // 货主ID
+ order.WarehouseId = pushKingdeeOrder?.WarehouseId;
+ order.OrderTime = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd");
+ order.Channel = string.Empty; // 下发系统
+ order.ItemType = string.Empty; // 单据类型
+ order.TotalQty = itemList.Sum(n => n.SellCount);
+ order.TotalMount = itemList.Sum(n => n.SellTotal);
+ order.CreateTime = pushKingdeeOrder.CreateTime?.ToString("yyyy/MM/dd");
+ order.ReadTime = DateTime.Now.ToString("yyyy/MM/dd");
+ order.Lines = itemList.Select(n => new Line()
+ {
+ OrderNo = pushKingdeeOrder.Id.ToString(),
+ CompanyId = string.Empty, // 公司Id
+ OrderType = pushKingdeeOrder.TradeType == 8 ? "8" : "4", // 订单类型
+ LineNo = itemList.IndexOf(n) + 1,
+ CustomerId = string.Empty, // 货主ID
+ Sku = n.Barcode,
+ Barcode = n.Barcode,
+ OrderQty = n.SellCount,
+ OrderPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10),
+ ItemId = n.GoodsId, // 商品
+ }).ToArray();
- return string.Empty;
+ var uri = "";
+
+ var requestString = JsonHelper.ToJson(order, false, false, true);
+ var client = new RestClient($"{uri}/sale/order/return");
+ client.Timeout = -1;
+ var request = new RestRequest(Method.POST);
+ request.AddHeader("Content-Type", "application/json");
+ request.AddParameter("application/json", requestString, ParameterType.RequestBody);
+ IRestResponse response = client.Execute(request);
+
+
+
+ var resultString = string.Empty;
+ LogHelper.Info(resultString);
+ return resultString;
}
private string PushKingdeeSaleOrder(PushKingDeeOrder pushKingdeeOrder)
@@ -206,7 +255,7 @@ namespace MyCode.Project.Services.Implementation
FNUMBER = pushKingdeeOrder.TradeType == 8 ? "XSDD05_SYS" : "XSDD01_SYS"
},
FOrdertype = pushKingdeeOrder.TradeType == 8 ? "8" : "4",
- FDate = pushKingdeeOrder.CreateTime?.ToString("yyyy/MM/dd"),
+ FDate = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"),
FSaleOrgId = new FSaleOrgId()
{
FNumber = "" // 固定组织
diff --git a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
index 108c7be..0082c00 100644
--- a/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
+++ b/Reportapi/MyCode.Project.Services/MyCode.Project.Services.csproj
@@ -74,6 +74,9 @@
False
..\Lib\Newtonsoft.Json.dll
+
+ ..\packages\RestSharp.106.11.4\lib\net452\RestSharp.dll
+
diff --git a/Reportapi/MyCode.Project.Services/packages.config b/Reportapi/MyCode.Project.Services/packages.config
index e0aa934..72bda0b 100644
--- a/Reportapi/MyCode.Project.Services/packages.config
+++ b/Reportapi/MyCode.Project.Services/packages.config
@@ -3,6 +3,7 @@
+
diff --git a/Reportapi/MyCode.Project.WebApi/Web.config b/Reportapi/MyCode.Project.WebApi/Web.config
index 61860f3..ae34b8a 100644
--- a/Reportapi/MyCode.Project.WebApi/Web.config
+++ b/Reportapi/MyCode.Project.WebApi/Web.config
@@ -1,60 +1,60 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
+
+
+
@@ -152,84 +152,84 @@
-->
-
-
-
-
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
\ No newline at end of file