新增WMS推送

This commit is contained in:
朱斌 2025-07-21 17:54:00 +08:00
parent 94d802d5da
commit 134c3bdfe8
4 changed files with 49 additions and 18 deletions

View File

@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MyCode.Project.Domain.Message.Response.WMS
{
public class WMSResponse
{
public int Code { get; set; }
public string Message { get; set; }
public Dictionary<string, string> Value { get; set; }
public int View { get; set; }
}
}

View File

@ -204,7 +204,7 @@ namespace MyCode.Project.Domain.Model
/// Nullable:True /// Nullable:True
/// </summary> /// </summary>
[SugarColumn(ColumnName = "F_SALE_ORGID")] [SugarColumn(ColumnName = "F_SALE_ORGID")]
public long? FSaleOrgId { get; set; } public int? FSaleOrgId { get; set; }
} }
} }

View File

@ -92,6 +92,7 @@
<Compile Include="Message\Response\User\LoginInfo.cs" /> <Compile Include="Message\Response\User\LoginInfo.cs" />
<Compile Include="Message\Response\WebSocket\ConnUser.cs" /> <Compile Include="Message\Response\WebSocket\ConnUser.cs" />
<Compile Include="Message\Response\WebSocket\ConnUser`.cs" /> <Compile Include="Message\Response\WebSocket\ConnUser`.cs" />
<Compile Include="Message\Response\WMS\WMSResponse.cs" />
<Compile Include="Message\Response\WorkProcess\WorkProcessResp.cs" /> <Compile Include="Message\Response\WorkProcess\WorkProcessResp.cs" />
<Compile Include="Model\ApiLog.cs" /> <Compile Include="Model\ApiLog.cs" />
<Compile Include="Model\JackOrders.cs" /> <Compile Include="Model\JackOrders.cs" />

View File

@ -2,6 +2,8 @@
using MyCode.Project.Domain.Message.Request.KingDee.SaveModel; using MyCode.Project.Domain.Message.Request.KingDee.SaveModel;
using MyCode.Project.Domain.Message.Request.WMS; using MyCode.Project.Domain.Message.Request.WMS;
using MyCode.Project.Domain.Message.Response.JackYun; using MyCode.Project.Domain.Message.Response.JackYun;
using MyCode.Project.Domain.Message.Response.KingDee.K3Result;
using MyCode.Project.Domain.Message.Response.WMS;
using MyCode.Project.Domain.Model; using MyCode.Project.Domain.Model;
using MyCode.Project.Domain.Repositories; using MyCode.Project.Domain.Repositories;
using MyCode.Project.Infrastructure.Common; using MyCode.Project.Infrastructure.Common;
@ -192,12 +194,17 @@ namespace MyCode.Project.Services.Implementation
else if (param.FSYNCHRONIZEWMS == "1") else if (param.FSYNCHRONIZEWMS == "1")
{ {
//wms //wms
PushWMSSaleOrder(orderHead, param); var result = PushWMSSaleOrder(orderHead, param);
if (result.Code == 200)
{
orderHead.Status = 2;
_pushKingDeeOrderRepository.Update(orderHead);
}
} }
} }
private string PushWMSSaleOrder(PushKingDeeOrder pushKingdeeOrder, YTKJTShopParameter param) private WMSResponse PushWMSSaleOrder(PushKingDeeOrder pushKingdeeOrder, YTKJTShopParameter param)
{ {
var itemList = _pushKingDeeOrderItemRepository var itemList = _pushKingDeeOrderItemRepository
.Queryable() .Queryable()
@ -206,48 +213,54 @@ namespace MyCode.Project.Services.Implementation
// 新建销售订单实例 // 新建销售订单实例
var order = new SaleOrder(); var order = new SaleOrder();
// 赋值 // 赋值
order.CreateTime = pushKingdeeOrder.CreateTime?.ToString("yyyy/MM/dd"); order.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
order.OrderTime = pushKingdeeOrder.CreateTime?.ToString("yyyy-MM-dd HH:mm:ss");
order.OrderNo = pushKingdeeOrder.Id.ToString(); order.OrderNo = pushKingdeeOrder.Id.ToString();
order.CompanyId = param.FCOMPANYID; // 公司Id order.CompanyId = param.FCOMPANYID; // 公司Id
order.OrderType = pushKingdeeOrder.TradeType == 8 ? "7" : "4"; // 订单类型 order.OrderType = pushKingdeeOrder.TradeType == 8 ? "7" : "4"; // 订单类型
order.CustomerId = param.FCANGKUHUOZHU; // 货主ID order.CustomerId = param.FCANGKUHUOZHU; // 货主ID
order.WarehouseId = pushKingdeeOrder?.WarehouseId; order.WarehouseId = pushKingdeeOrder?.WarehouseId;
order.OrderTime = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"); order.OrderTime = pushKingdeeOrder.ConsignTime?.ToString("yyyy-MM-dd HH:mm:ss");
order.Channel = "K3Cloud"; // 下发系统 order.Channel = "K3Cloud"; // 下发系统
order.ItemType = pushKingdeeOrder.TradeType == 8 ? "退货订单" : "标准销售订单"; // 单据类型 order.ItemType = pushKingdeeOrder.TradeType == 8 ? "退货订单" : "标准销售订单"; // 单据类型
order.TotalQty = itemList.Sum(n => n.SellCount); order.TotalQty = itemList.Sum(n => n.SellCount);
order.TotalMount = itemList.Sum(n => n.SellTotal); order.TotalMount = itemList.Sum(n => n.SellTotal);
order.CreateTime = pushKingdeeOrder.CreateTime?.ToString("yyyy/MM/dd"); order.ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
order.ReadTime = DateTime.Now.ToString("yyyy/MM/dd"); order.CustAccount = param.FSALESCUSTOMERS.ToString();
order.Lines = itemList.Select(n => new Line() order.Lines = itemList.Select(n => new Line()
{ {
OrderNo = pushKingdeeOrder.Id.ToString(), OrderNo = pushKingdeeOrder.Id.ToString(),
CompanyId = string.Empty, // 公司Id CompanyId = param.FCOMPANYID, // 公司Id
OrderType = pushKingdeeOrder.TradeType == 8 ? "8" : "4", // 订单类型 OrderType = pushKingdeeOrder.TradeType == 8 ? "7" : "4", // 订单类型
LineNo = itemList.IndexOf(n) + 1, LineNo = itemList.IndexOf(n) + 1,
CustomerId = string.Empty, // 货主ID CustomerId = param.FCANGKUHUOZHU, // 货主ID
Sku = n.Barcode, Sku = n.Barcode,
Barcode = n.Barcode, Barcode = n.Barcode,
OrderQty = n.SellCount, OrderQty = n.SellCount,
OrderPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10), OrderPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10),
ItemId = n.GoodsId, // 商品 ItemId = n.GoodsId, // 商品
LocationId = param.FWAREHOUSECODE,
CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
OrderUnit = "pcs"
}).ToArray(); }).ToArray();
var uri = "http://172.16.42.45:9000"; var uri = "http://172.16.42.45:9000";
var requestString = JsonHelper.ToJson(order, false, false, true); var requestString = JsonHelper.ToJson(order, false, true, true);
var client = new RestClient($"{uri}/sale/order/return"); var client = new RestClient($"{uri}/sale/order/out");
client.Timeout = -1; client.Timeout = -1;
var request = new RestRequest(Method.POST); var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json"); request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", requestString, ParameterType.RequestBody); request.AddParameter("application/json", requestString, ParameterType.RequestBody);
IRestResponse response = client.Execute(request); IRestResponse response = client.Execute(request);
var resultContent = response.Content;
var result = JsonHelper.ToObject<WMSResponse>(resultContent);
if (result.Code != 200)
var resultString = string.Empty; {
LogHelper.Info(resultString); throw new Exception("推送WMS发生错误" + resultContent);
return resultString; }
LogHelper.Info(resultContent);
return result;
} }
/// <summary> /// <summary>
@ -287,6 +300,7 @@ namespace MyCode.Project.Services.Implementation
FDate = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"), FDate = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"),
FSaleOrgId = new FSaleOrgId() FSaleOrgId = new FSaleOrgId()
{ {
//FOrgId = param.FCOMPANYID // 销售组织
FOrgId = param.FSaleOrgId.ToString() // 销售组织 FOrgId = param.FSaleOrgId.ToString() // 销售组织
}, },
FCustId = new FCustomerId() FCustId = new FCustomerId()