Merge branch 'S01-轨迹中台' of http://192.168.80.50:3000/Dotnet/SJZY.Track.Api into S01-轨迹中台

This commit is contained in:
moyongzhen 2024-03-01 11:54:29 +08:00
commit 64963d2f42
9 changed files with 105 additions and 52 deletions

View File

@ -37,6 +37,7 @@ namespace SJZY.Track.Api
var environment = context.Services.GetHostingEnvironment(); var environment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration(); var configuration = context.Services.GetConfiguration();
context.Services.AddSwagger(); context.Services.AddSwagger();
//过滤器相关配置 //过滤器相关配置
context.Services.AddMvc(options => context.Services.AddMvc(options =>
{ {
@ -60,7 +61,6 @@ namespace SJZY.Track.Api
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss"); Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; }); Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
context.Services.AddRedis(); context.Services.AddRedis();
} }

View File

@ -0,0 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class TrackUpsertEvent
{
public int Order { get; set; }
}

View File

@ -5,5 +5,5 @@ namespace SJZY.Track.Application.Services.ProvideServices;
public class TrackCustomer : ITransientDependency, ICapSubscribe public class TrackCustomer : ITransientDependency, ICapSubscribe
{ {
public const string CapSubscribe = "SJZY.FMC.VoucherRedundantCalc"; public const string CapSubscribe = "SJZY.Track.Upsert";
} }

View File

@ -81,6 +81,7 @@ public class TrackService : ApplicationService
} }
// 根据订单关联关系向下刷,不同子系统还需要做内容映射 // 根据订单关联关系向下刷,不同子系统还需要做内容映射
var links = await _orderRepository.GetLinkedOrderIdsAsync(orderId);
// 推送 // 推送
return true; return true;

View File

@ -20,6 +20,30 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
/// <returns></returns> /// <returns></returns>
Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input); Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input);
/// <summary>
/// 更新订单
/// </summary>
/// <param name="order"></param>
/// <returns></returns>
Task UpdateOrderAsync(OrderEntity order);
/// <summary>
/// 删除订单
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task DeleteOrderAsync(int orderId);
#region 订单关联
/// <summary>
/// 根据订单id,获取关联的订单id集合
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task<List<int>> GetLinkedOrderIdsAsync(int orderId);
/// <summary> /// <summary>
/// 关联订单 /// 关联订单
/// </summary> /// </summary>
@ -34,17 +58,5 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
/// <returns></returns> /// <returns></returns>
Task UnLinkByIdsAsync(List<int> linkIds); Task UnLinkByIdsAsync(List<int> linkIds);
/// <summary> #endregion
/// 更新订单
/// </summary>
/// <param name="order"></param>
/// <returns></returns>
Task UpdateOrderAsync(OrderEntity order);
/// <summary>
/// 删除订单
/// </summary>
/// <param name="orderId"></param>
/// <returns></returns>
Task DeleteOrderAsync(int orderId);
} }

View File

@ -12,6 +12,18 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)] [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; } public int Id { get; set; }
/// <summary>
/// 订单id
/// </summary>
[SugarColumn(ColumnName = "OrderId")]
public int OrderId { get; set; }
/// <summary>
/// 关联的订单id
/// </summary>
[SugarColumn(ColumnName = "LinkOrderId")]
public int LinkOrderId { get; set; }
/// <summary> /// <summary>
/// 订单类型 /// 订单类型
/// </summary> /// </summary>
@ -24,6 +36,7 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
[SugarColumn(ColumnName = "OrderNo")] [SugarColumn(ColumnName = "OrderNo")]
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
/// <summary> /// <summary>
/// 关联的订单类型 /// 关联的订单类型
/// </summary> /// </summary>

View File

@ -10,7 +10,7 @@ public class KeywordsInputVO : PageInfoInput
/// <summary> /// <summary>
/// 关键字 /// 关键字
/// </summary> /// </summary>
public string Keywords { get; set; } public string? Keywords { get; set; }
/// <summary> /// <summary>
/// 选中项 /// 选中项

View File

@ -1,5 +1,4 @@
using Nest; using SJZY.Track.Domain;
using SJZY.Track.Domain;
using SJZY.Track.Domain.Aggregates.OrderAggregate; using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate; using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
using SJZY.Track.Domain.Dtos.Order; using SJZY.Track.Domain.Dtos.Order;
@ -18,16 +17,6 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
.ExecuteCommandAsync(); .ExecuteCommandAsync();
} }
public async Task LinkOrderAsync(List<OrderLinkEntity> orderLinkEntities)
{
await Context.Insertable(orderLinkEntities).ExecuteCommandAsync();
}
public async Task UnLinkByIdsAsync(List<int> linkIds)
{
await Context.Deleteable(linkIds).ExecuteCommandAsync();
}
public async Task UpdateOrderAsync(OrderEntity order) public async Task UpdateOrderAsync(OrderEntity order)
{ {
using var tran = TransactionHelper.GetReadCommitted(); using var tran = TransactionHelper.GetReadCommitted();
@ -62,6 +51,29 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
tran.Complete(); tran.Complete();
} }
#region 订单关联
public async Task<List<int>> GetLinkedOrderIdsAsync(int orderId)
{
return await Context.Queryable<OrderEntity>()
.LeftJoin<OrderLinkEntity>((a, b) => a.Id == b.OrderId)
.Where(a => a.Id == orderId)
.Select((a, b) => b.LinkOrderId)
.ToListAsync();
}
public async Task LinkOrderAsync(List<OrderLinkEntity> orderLinkEntities)
{
await Context.Insertable(orderLinkEntities).ExecuteCommandAsync();
}
public async Task UnLinkByIdsAsync(List<int> linkIds)
{
await Context.Deleteable(linkIds).ExecuteCommandAsync();
}
#endregion
#region 轨迹订单明细 #region 轨迹订单明细
/// <summary> /// <summary>
@ -86,31 +98,37 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
public async Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input) public async Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input)
{ {
var pageList = await Context.Queryable<OrderEntity>() var pageList = await Context.Queryable<OrderEntity>()
.LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId==b.Id) .LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId == b.Id)
.LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId==c.Id) .LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId == c.Id)
.WhereIF(input.SubSystemId > 0, (a, b, c) => a.SubSystemId == input.SubSystemId) .WhereIF(input.SubSystemId > 0, (a, b, c) => a.SubSystemId == input.SubSystemId)
.WhereIF(!input.OrderNos.IsNullOrEmpty(), (a, b, c) => input.OrderNos.Contains(a.OrderNo)) .WhereIF(!input.OrderNos.IsNullOrEmpty(), (a, b, c) => input.OrderNos.Contains(a.OrderNo))
.WhereIF(input.CreateTimeStart.HasValue&& input.CreateTimeEnd.HasValue, (a, b, c) => a.CreateTime>= input.CreateTimeStart && a.CreateTime<= input.CreateTimeEnd) .WhereIF(input.CreateTimeStart.HasValue && input.CreateTimeEnd.HasValue,
.WhereIF(input.CreateTimeStart.HasValue&& (!input.CreateTimeEnd.HasValue), (a, b, c) => a.CreateTime>= input.CreateTimeStart) (a, b, c) => a.CreateTime >= input.CreateTimeStart && a.CreateTime <= input.CreateTimeEnd)
.WhereIF((!input.CreateTimeStart.HasValue)&& input.CreateTimeEnd.HasValue, (a, b, c) => a.CreateTime<= input.CreateTimeEnd) .WhereIF(input.CreateTimeStart.HasValue && (!input.CreateTimeEnd.HasValue),
(a, b, c) => a.CreateTime >= input.CreateTimeStart)
.WhereIF((!input.CreateTimeStart.HasValue) && input.CreateTimeEnd.HasValue,
(a, b, c) => a.CreateTime <= input.CreateTimeEnd)
.Select((a, b, c) => new TrackOrderVO .Select((a, b, c) => new TrackOrderVO
{ {
Id = a.Id, Id = a.Id,
OrderNumber= a.OrderNo, OrderNumber = a.OrderNo,
OrderType = a.OrderType, OrderType = a.OrderType,
CustomerShortName= b.Abbreviation, CustomerShortName = b.Abbreviation,
CustomerCode= b.Code, CustomerCode = b.Code,
TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>().LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId==bb.Id) TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>()
.Where((aa, bb) => a.Id==aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","), .LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
NewestTrackContent= a.LatestTrackContent, .Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
NewestTrackEnContent= a.LatestTrackEnContent, NewestTrackContent = a.LatestTrackContent,
NewestTrackPlace= a.LatestTrackPlace, NewestTrackEnContent = a.LatestTrackEnContent,
IsFinish=a.IsCompleted, NewestTrackPlace = a.LatestTrackPlace,
CreateTime=a.CreateTime, IsFinish = a.IsCompleted,
SubSystem= c.CnName CreateTime = a.CreateTime,
SubSystem = c.CnName
}) })
.ToPagedListAsync(input.PageIndex, input.PageSize); .ToPagedListAsync(input.PageIndex, input.PageSize);
#region 暂时注释 #region 暂时注释
//if (pageList.List.Any()) //if (pageList.List.Any())
//{ //{
// var orderIds = pageList.List.Select(a => a.Id); // var orderIds = pageList.List.Select(a => a.Id);
@ -129,7 +147,9 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
// a.TrackTemplateNames = templateListOfOrderId.Select(c => c.Name).JoinAsString(","); // a.TrackTemplateNames = templateListOfOrderId.Select(c => c.Name).JoinAsString(",");
// }); // });
//} //}
#endregion #endregion
return pageList; return pageList;
} }

View File

@ -4,6 +4,7 @@
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<GenerateDocumentationFile>True</GenerateDocumentationFile> <GenerateDocumentationFile>True</GenerateDocumentationFile>
<LangVersion>preview</LangVersion> <LangVersion>preview</LangVersion>
<AssemblyName>SJZY.Track.Repository</AssemblyName>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>