新增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
/// </summary>
[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\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="Model\ApiLog.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.WMS;
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.Repositories;
using MyCode.Project.Infrastructure.Common;
@ -192,12 +194,17 @@ namespace MyCode.Project.Services.Implementation
else if (param.FSYNCHRONIZEWMS == "1")
{
//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
.Queryable()
@ -206,48 +213,54 @@ namespace MyCode.Project.Services.Implementation
// 新建销售订单实例
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.CompanyId = param.FCOMPANYID; // 公司Id
order.OrderType = pushKingdeeOrder.TradeType == 8 ? "7" : "4"; // 订单类型
order.CustomerId = param.FCANGKUHUOZHU; // 货主ID
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.ItemType = pushKingdeeOrder.TradeType == 8 ? "退货订单" : "标准销售订单"; // 单据类型
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.ReadTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
order.CustAccount = param.FSALESCUSTOMERS.ToString();
order.Lines = itemList.Select(n => new Line()
{
OrderNo = pushKingdeeOrder.Id.ToString(),
CompanyId = string.Empty, // 公司Id
OrderType = pushKingdeeOrder.TradeType == 8 ? "8" : "4", // 订单类型
CompanyId = param.FCOMPANYID, // 公司Id
OrderType = pushKingdeeOrder.TradeType == 8 ? "7" : "4", // 订单类型
LineNo = itemList.IndexOf(n) + 1,
CustomerId = string.Empty, // 货主ID
CustomerId = param.FCANGKUHUOZHU, // 货主ID
Sku = n.Barcode,
Barcode = n.Barcode,
OrderQty = n.SellCount,
OrderPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10),
ItemId = n.GoodsId, // 商品
LocationId = param.FWAREHOUSECODE,
CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
OrderUnit = "pcs"
}).ToArray();
var uri = "http://172.16.42.45:9000";
var requestString = JsonHelper.ToJson(order, false, false, true);
var client = new RestClient($"{uri}/sale/order/return");
var requestString = JsonHelper.ToJson(order, false, true, true);
var client = new RestClient($"{uri}/sale/order/out");
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;
var resultContent = response.Content;
var result = JsonHelper.ToObject<WMSResponse>(resultContent);
if (result.Code != 200)
{
throw new Exception("推送WMS发生错误" + resultContent);
}
LogHelper.Info(resultContent);
return result;
}
/// <summary>
@ -287,6 +300,7 @@ namespace MyCode.Project.Services.Implementation
FDate = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"),
FSaleOrgId = new FSaleOrgId()
{
//FOrgId = param.FCOMPANYID // 销售组织
FOrgId = param.FSaleOrgId.ToString() // 销售组织
},
FCustId = new FCustomerId()