@@ -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,56 @@ namespace MyCode.Project.Services.Implementation
// 新建销售订单实例
// 新建销售订单实例
var order = new SaleOrder ( ) ;
var order = new SaleOrder ( ) ;
// 赋值
// 赋值
order . CreateTime = pushKingdeeOrder . Cre ateTime? . ToString ( "yyyy/ MM/ dd" ) ;
order . CreateTime = D ateTime. 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 . CompanyId = "TZ" ; // 公司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 . Create Time = pushKingdeeOrder . Cre ateTime? . ToString ( "yyyy/ MM/ dd" ) ;
order . Read Time = D ateTime. 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 ", // 订单类型
CompanyId = "TZ ", // 公司Id
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 , fals e, true ) ;
var requestString = JsonHelper . ToJson ( order , false , tru e, 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>