新增推送WMS方法

This commit is contained in:
2025-07-18 17:41:55 +08:00
parent 80f1c5505e
commit 228640df46
8 changed files with 375 additions and 180 deletions

View File

@@ -1,32 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-0.85.4.369" newVersion="0.85.4.369"/>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.85.4.369" newVersion="0.85.4.369" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0"/>
<assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0"/>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup></configuration>

View File

@@ -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 = "" // 固定组织

View File

@@ -74,6 +74,9 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lib\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="RestSharp, Version=106.11.4.0, Culture=neutral, PublicKeyToken=598062e77f915f75, processorArchitecture=MSIL">
<HintPath>..\packages\RestSharp.106.11.4\lib\net452\RestSharp.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.IO.Compression" />

View File

@@ -3,6 +3,7 @@
<package id="AutoMapper" version="6.1.1" targetFramework="net45" />
<package id="log4net" version="2.0.8" targetFramework="net45" />
<package id="MiniExcel" version="1.30.0" targetFramework="net461" />
<package id="RestSharp" version="106.11.4" targetFramework="net48" />
<package id="Senparc.CO2NET" version="0.4.1" targetFramework="net461" />
<package id="Senparc.CO2NET.APM" version="0.2.0" targetFramework="net461" />
<package id="Senparc.NeuChar" version="0.5.0" targetFramework="net461" />