Merge branch 'jackYun' of http://8.130.121.29:3000/yuyubo/YunTongJackYunTask into jackYun
This commit is contained in:
@@ -157,34 +157,47 @@ namespace MyCode.Project.Services.Implementation
|
||||
|
||||
public void PushOrderToKingDee(string id)
|
||||
{
|
||||
var orderSHeet = _pushKingDeeOrderRepository.Queryable().Where(t => id == t.Id.ToString()).First();
|
||||
if (orderSHeet.Status != 0)
|
||||
var orderHead = _pushKingDeeOrderRepository.Queryable().Where(t => id == t.Id.ToString()).First();
|
||||
if (orderHead.Status != 0)
|
||||
{
|
||||
throw new BaseException("单据已经下推.");
|
||||
}
|
||||
var one = _yTKJTShopParameterRepository
|
||||
|
||||
var param = _yTKJTShopParameterRepository
|
||||
.Queryable()
|
||||
//.Where(t => t.FSHOPCODE == orderSHeet.ShopCode)
|
||||
.Where(t => t.FSHOPCODE == "bybo")
|
||||
.Where(t => t.FSHOPCODE == orderHead.ShopCode)
|
||||
.First();
|
||||
if (one is null)
|
||||
if (param is null)
|
||||
{
|
||||
throw new BaseException($"门店编号:{orderSHeet.ShopCode},门店名称:{orderSHeet.ShopName},没有找到对应的门店参数 ");
|
||||
throw new BaseException($"门店编号:{orderHead.ShopCode},门店名称:{orderHead.ShopName},没有找到对应的门店参数 ");
|
||||
}
|
||||
// 如果这个配置都没有勾选则直接报错
|
||||
if (param.FSYNCHRONIZEKINGDEE == "0" && param.FSYNCHRONIZEWMS == "0")
|
||||
{
|
||||
throw new BaseException($"门店编号:{orderHead.ShopCode},门店名称:{orderHead.ShopName},参数配置错误,请联系管理员检查 ");
|
||||
}
|
||||
// TODO 如果是False则同步到云星空销售订单
|
||||
if (one.FSYNCHRONIZEWMS == "1")
|
||||
//if (param.FSYNCHRONIZEWMS == "1")
|
||||
if (param.FSYNCHRONIZEKINGDEE == "1")
|
||||
{
|
||||
PushKingdeeSaleOrder(orderSHeet);
|
||||
var response = PushKingdeeSaleOrder(orderHead, param);
|
||||
// 如果保存成功,需要更新源单数据
|
||||
if (response.IsSuccess)
|
||||
{
|
||||
orderHead.Status = 2;
|
||||
_pushKingDeeOrderRepository.Update(orderHead);
|
||||
}
|
||||
}
|
||||
// 如果为True则同步到WMS
|
||||
else
|
||||
else if (param.FSYNCHRONIZEWMS == "1")
|
||||
{
|
||||
//wms
|
||||
PushWMSSaleOrder(orderSHeet);
|
||||
PushWMSSaleOrder(orderHead, param);
|
||||
}
|
||||
}
|
||||
|
||||
private string PushWMSSaleOrder(PushKingDeeOrder pushKingdeeOrder)
|
||||
|
||||
private string PushWMSSaleOrder(PushKingDeeOrder pushKingdeeOrder, YTKJTShopParameter param)
|
||||
{
|
||||
var itemList = _pushKingDeeOrderItemRepository
|
||||
.Queryable()
|
||||
@@ -195,13 +208,13 @@ namespace MyCode.Project.Services.Implementation
|
||||
// 赋值
|
||||
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.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.Channel = string.Empty; // 下发系统
|
||||
order.ItemType = string.Empty; // 单据类型
|
||||
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");
|
||||
@@ -220,7 +233,7 @@ namespace MyCode.Project.Services.Implementation
|
||||
ItemId = n.GoodsId, // 商品
|
||||
}).ToArray();
|
||||
|
||||
var uri = "";
|
||||
var uri = "http://172.16.42.45:9000";
|
||||
|
||||
var requestString = JsonHelper.ToJson(order, false, false, true);
|
||||
var client = new RestClient($"{uri}/sale/order/return");
|
||||
@@ -237,18 +250,27 @@ namespace MyCode.Project.Services.Implementation
|
||||
return resultString;
|
||||
}
|
||||
|
||||
private string PushKingdeeSaleOrder(PushKingDeeOrder pushKingdeeOrder)
|
||||
/// <summary>
|
||||
/// 推送到金蝶云星空
|
||||
/// </summary>
|
||||
/// <param name="pushKingdeeOrder">源单信息</param>
|
||||
/// <param name="param">门店配置</param>
|
||||
/// <returns></returns>
|
||||
private Domain.Message.Response.KingDee.K3Result.Model.ResponseStatus PushKingdeeSaleOrder(PushKingDeeOrder pushKingdeeOrder, YTKJTShopParameter param)
|
||||
{
|
||||
var itemList = _pushKingDeeOrderItemRepository.Queryable().Where(t => pushKingdeeOrder.Id == t.PushKingDeeOrderId).ToList();
|
||||
// 遍历单体,构造单据体实体
|
||||
var entryList = itemList.Select(n => new FSaleOrderEntryItem()
|
||||
{
|
||||
Fcode = n.Barcode, // 条码带出物料 、物料带出税额
|
||||
//Fcode = "2120101128415", // 条码带出物料 、物料带出税额
|
||||
FEntryTaxRate = param.FTAXRATE,
|
||||
FQty = n.SellCount, // 销售数量
|
||||
FTaxPrice = Math.Round(n.DivideSellTotal / n.SellCount, 10), // 含税单价等于 金额/总数
|
||||
|
||||
FSOStockId = new FSOStockId() // 仓库必填
|
||||
{
|
||||
FNUMBER = pushKingdeeOrder.WarehouseCode
|
||||
FNUMBER = param.FWAREHOUSECODE
|
||||
},
|
||||
|
||||
}).ToList();
|
||||
@@ -261,19 +283,20 @@ namespace MyCode.Project.Services.Implementation
|
||||
// 1:零售业务7:售后发货;8:售后退货
|
||||
FNUMBER = pushKingdeeOrder.TradeType == 8 ? "XSDD05_SYS" : "XSDD01_SYS"
|
||||
},
|
||||
FOrdertype = pushKingdeeOrder.TradeType == 8 ? "8" : "4",
|
||||
FOrdertype = pushKingdeeOrder.TradeType == 8 ? "7" : "4",
|
||||
FDate = pushKingdeeOrder.ConsignTime?.ToString("yyyy/MM/dd"),
|
||||
FSaleOrgId = new FSaleOrgId()
|
||||
{
|
||||
FNumber = "" // 固定组织
|
||||
FOrgId = param.FSaleOrgId.ToString() // 销售组织
|
||||
},
|
||||
FCustId = new FCustId()
|
||||
FCustId = new FCustomerId()
|
||||
{
|
||||
FNumber = "", // 客户?
|
||||
FCustId = param.FSALESCUSTOMERS.ToString(), // 客户?
|
||||
},
|
||||
FSalerId = new FSalerId()
|
||||
{
|
||||
FNumber = "", // 销售员
|
||||
FId = param.FSALER, // 销售员
|
||||
//FNumber = "思迅销售员_GW000002_1", // 销售员
|
||||
},
|
||||
Foutlets = new Foutlets()
|
||||
{
|
||||
@@ -291,9 +314,9 @@ namespace MyCode.Project.Services.Implementation
|
||||
};
|
||||
SaleOrderModel fSaleOrderEntry = new SaleOrderModel();
|
||||
|
||||
var resultString = _kingDeeService.Save("SAL_SaleOrder", billSave);
|
||||
LogHelper.Info(resultString);
|
||||
return resultString;
|
||||
var responseStatus = _kingDeeService.Save("SAL_SaleOrder", billSave);
|
||||
//LogHelper.Info();
|
||||
return responseStatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user