This commit is contained in:
余宇波 2025-10-17 17:54:23 +08:00
parent f42519dd61
commit 316e78f4f2
6 changed files with 96 additions and 10 deletions

View File

@ -315,7 +315,7 @@ namespace MyCode.Project.Infrastructure.JackYun
/// <summary> /// <summary>
/// 退货货品信息 /// 退货货品信息
/// </summary> /// </summary>
public List<ReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; } public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
@ -364,7 +364,7 @@ namespace MyCode.Project.Infrastructure.JackYun
/// <summary> /// <summary>
/// 货品信息 /// 货品信息
/// </summary> /// </summary>
public class ReturnChangeGoodsDetail public class JkyReturnChangeGoodsDetail
{ {
/// <summary> /// <summary>
/// 售后订单id /// 售后订单id

View File

@ -200,7 +200,7 @@ namespace MyCode.Project.Infrastructure.JackYun
/// <summary> /// <summary>
/// 退货货品信息 /// 退货货品信息
/// </summary> /// </summary>
public List<ReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; } public List<JkyReturnChangeGoodsDetail> ReturnChangeGoodsDetail { get; set; }
/// <summary> /// <summary>
/// 系统编码 /// 系统编码

View File

@ -35,7 +35,7 @@ namespace MyCode.Project.Repositories
FROM [JackOrders] a WITH (NOLOCK) FROM [JackOrders] a WITH (NOLOCK)
LEFT JOIN [dbo].[JackOrdersItem] b WITH (NOLOCK) LEFT JOIN [dbo].[JackOrdersItem] b WITH (NOLOCK)
ON a.id = b.JackOrdersId ON a.id = b.JackOrdersId
WHERE a.status = 0 WHERE a.status = 0 and TradeType in (1,7)
GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [status], CONVERT(NVARCHAR(30),[consignTime],23) ,[goodsNo], [goodsId], [barcode] ,[warehouseId], [TradeType],Unit"; GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [status], CONVERT(NVARCHAR(30),[consignTime],23) ,[goodsNo], [goodsId], [barcode] ,[warehouseId], [TradeType],Unit";
var list = this.SelectList<PushOrderListResp>(sql); var list = this.SelectList<PushOrderListResp>(sql);
return list; return list;
@ -43,5 +43,31 @@ GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [s
#endregion #endregion
#region GetPushOrder()
/// <summary>
/// 获取合并后的吉客云订单
/// </summary>
/// <returns></returns>
public List<PushOrderListResp> GetPushReturnOrder()
{
string sql = $@"
SELECT [shopCode], [shopName], [shopId], [warehouseName], [warehouseCode],
[status], CONVERT(NVARCHAR(30),[consignTime],23) [consignTime],
[goodsNo], [goodsId],SUM([sellTotal]*-1) [sellTotal],
SUM([sellCount]*-1) [sellCount], SUM([ShareShouldReturnFee]*-1) AS [divideSellTotal],
[barcode], [TradeType] ,[warehouseId],Unit
FROM [JackOrders] a WITH (NOLOCK)
LEFT JOIN [dbo].[ReturnChangeGoodsDetail] b WITH (NOLOCK)
ON a.id = b.JackOrdersId
WHERE a.status = 0 and [TradeType]=8
GROUP BY [shopCode],[shopName], [shopId], [warehouseName], [warehouseCode], [status], CONVERT(NVARCHAR(30),[consignTime],23) ,[goodsNo],
[goodsId], [barcode] ,[warehouseId], [TradeType],Unit
ORDER BY [shopCode],[consignTime] desc,[TradeType]
";
var list = this.SelectList<PushOrderListResp>(sql);
return list;
}
#endregion
} }
} }

View File

@ -1,4 +1,5 @@
using MyCode.Project.Domain.Message.Response.Common; using MyCode.Project.Domain.Message.Response.Common;
using MyCode.Project.Infrastructure.JackYun;
using MyCode.Project.Repositories.Common; using MyCode.Project.Repositories.Common;
using System.Collections.Generic; using System.Collections.Generic;
@ -24,5 +25,12 @@ namespace MyCode.Project.Services
/// </summary> /// </summary>
/// <param name="now"></param> /// <param name="now"></param>
void TaskGetReturnChangeList(string now); void TaskGetReturnChangeList(string now);
/// <summary>
/// 把吉客云退货订单存进本地数据库
/// </summary>
/// <param name="trades"></param>
void SetReturnOrder(List<TradesItem> trades);
} }
} }

View File

@ -250,7 +250,7 @@ namespace MyCode.Project.Services.Implementation
warehouseCode = rc.WarehouseCode, warehouseCode = rc.WarehouseCode,
logisticName = rc.LogisticName, logisticName = rc.LogisticName,
shopId = rc.ShopId.ToString(), shopId = rc.ShopId.ToString(),
TradeType = 8, // 假设这是售后货类型 TradeType = 8, // 假设这是售后退货类型
consignTime = !string.IsNullOrWhiteSpace(rc.ConsignTime) ? (DateTime?)DateTime.Parse(rc.ConsignTime) : null, consignTime = !string.IsNullOrWhiteSpace(rc.ConsignTime) ? (DateTime?)DateTime.Parse(rc.ConsignTime) : null,
payTime = null, // 可根据需要设置 payTime = null, // 可根据需要设置
tradeStatus = int.Parse(rc.TradeAfterStatus), // 注意类型转换 tradeStatus = int.Parse(rc.TradeAfterStatus), // 注意类型转换

View File

@ -1,18 +1,14 @@
using MyCode.Project.Domain.Message.Response.JackYun; using MyCode.Project.Domain.Message.Response.JackYun;
using MyCode.Project.Domain.Message.Response.JackYun;
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;
using MyCode.Project.Infrastructure.JackYun; using MyCode.Project.Infrastructure.JackYun;
using MyCode.Project.Repositories;
using MyCode.Project.Repositories.Common; using MyCode.Project.Repositories.Common;
using MyCode.Project.Services.IServices; using MyCode.Project.Services.IServices;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks;
namespace MyCode.Project.Services.Implementation namespace MyCode.Project.Services.Implementation
{ {
@ -24,6 +20,8 @@ namespace MyCode.Project.Services.Implementation
private IPushKingDeeOrderRepository _pushKingDeeOrderRepository; private IPushKingDeeOrderRepository _pushKingDeeOrderRepository;
private IPushKingDeeOrderItemRepository _pushKingDeeOrderItemRepository; private IPushKingDeeOrderItemRepository _pushKingDeeOrderItemRepository;
private IYTKJTShopParameterRepository _yTKJTShopParameterRepository; private IYTKJTShopParameterRepository _yTKJTShopParameterRepository;
private IReturnChangeGoodsDetailRepository _ReturnChangeGoodsDetailRepository;
private IWorkProcessService _workProcessService; private IWorkProcessService _workProcessService;
public JackYunTaskService(IJackOrdersRepository jackOrdersRepository public JackYunTaskService(IJackOrdersRepository jackOrdersRepository
@ -31,6 +29,7 @@ namespace MyCode.Project.Services.Implementation
, IPushKingDeeOrderRepository pushKingDeeOrderRepository , IPushKingDeeOrderRepository pushKingDeeOrderRepository
, IPushKingDeeOrderItemRepository pushKingDeeOrderItemRepository , IPushKingDeeOrderItemRepository pushKingDeeOrderItemRepository
, IYTKJTShopParameterRepository yTKJTShopParameterRepository , IYTKJTShopParameterRepository yTKJTShopParameterRepository
, IReturnChangeGoodsDetailRepository returnChangeGoodsDetailRepository
, IJackYunService jackYunService, , IJackYunService jackYunService,
IWorkProcessService workProcessService) IWorkProcessService workProcessService)
{ {
@ -39,6 +38,7 @@ namespace MyCode.Project.Services.Implementation
_pushKingDeeOrderItemRepository = pushKingDeeOrderItemRepository; _pushKingDeeOrderItemRepository = pushKingDeeOrderItemRepository;
_jackOrdersRepository = jackOrdersRepository; _jackOrdersRepository = jackOrdersRepository;
_jackOrdersItemRepository = jackOrdersItemRepository; _jackOrdersItemRepository = jackOrdersItemRepository;
_ReturnChangeGoodsDetailRepository = returnChangeGoodsDetailRepository;
_jackYunService = jackYunService; _jackYunService = jackYunService;
_workProcessService = workProcessService; _workProcessService = workProcessService;
} }
@ -190,9 +190,61 @@ namespace MyCode.Project.Services.Implementation
{ {
DateTime runTime = DateTime.Parse(now); DateTime runTime = DateTime.Parse(now);
var list = _jackYunService.GetReturnChangeList(runTime); var list = _jackYunService.GetReturnChangeList(runTime);
SetOrder(list); SetReturnOrder(list);
//_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergeJackYunOrder", "合并吉客云订单到新表", now, 1); //_workProcessService.Add<IJackYunTaskService>(this.MerchantId, "GetAndMergeJackYunOrder", "合并吉客云订单到新表", now, 1);
} }
#endregion #endregion
#region SetReturnOrder(退)
/// <summary>
/// 把吉客云退货订单存进本地数据库
/// </summary>
/// <param name="trades"></param>
[TransactionCallHandler]
public void SetReturnOrder(List<TradesItem> trades)
{
var ids = trades.Select(t => t.tradeId).Distinct().ToList();
ids = _jackOrdersRepository.Queryable().Where(t => ids.Contains(t.TradeId)).Select(t => t.TradeId).Distinct().ToList();
if (ids.Count > 0)
trades = trades.Where(t => !ids.Contains(t.tradeId)).ToList();
List<JackOrders> jackOrdersList = new List<JackOrders>();
List<ReturnChangeGoodsDetail> ordersItemList = new List<ReturnChangeGoodsDetail>();
var shopConfig = _yTKJTShopParameterRepository.Queryable().Where(t => t.FDOCUMENTSTATUS == "C").ToList();
var shopCodeList = shopConfig.Select(t => t.FSHOPCODE).ToList();
trades.ForEach(t =>
{
if (shopCodeList.Contains(t.shopCode))
{
JackOrders jackOrders = new JackOrders();
jackOrders = AutoMapperHelper.AutoMappToSingle<JackOrders, TradesItem>(t);
jackOrders.Id = Guid.NewGuid();
jackOrders.Status = 0;
jackOrders.UpdateTime = DateTime.Now;
jackOrders.CreateTime = DateTime.Now;
if (t.ReturnChangeGoodsDetail != null)
{
var items = AutoMapperHelper.AutoMappToList< ReturnChangeGoodsDetail, JkyReturnChangeGoodsDetail>(t.ReturnChangeGoodsDetail);
items.ForEach(k =>
{
k.JackOrdersId = jackOrders.Id;
});
jackOrdersList.Add(jackOrders);
ordersItemList.AddRange(items);
}
}
});
if (jackOrdersList.Count > 0)
{
_jackOrdersRepository.Add(jackOrdersList);
_ReturnChangeGoodsDetailRepository.Add(ordersItemList);
}
}
#endregion
} }
} }