Merge branch 'S01-轨迹中台' of http://192.168.80.50:3000/Dotnet/SJZY.Track.Api into S01-轨迹中台
This commit is contained in:
commit
64963d2f42
@ -37,6 +37,7 @@ namespace SJZY.Track.Api
|
||||
var environment = context.Services.GetHostingEnvironment();
|
||||
var configuration = context.Services.GetConfiguration();
|
||||
context.Services.AddSwagger();
|
||||
|
||||
//过滤器相关配置
|
||||
context.Services.AddMvc(options =>
|
||||
{
|
||||
@ -60,7 +61,6 @@ namespace SJZY.Track.Api
|
||||
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
|
||||
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
|
||||
|
||||
|
||||
context.Services.AddRedis();
|
||||
}
|
||||
|
||||
|
||||
@ -0,0 +1,6 @@
|
||||
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||
|
||||
public class TrackUpsertEvent
|
||||
{
|
||||
public int Order { get; set; }
|
||||
}
|
||||
@ -5,5 +5,5 @@ namespace SJZY.Track.Application.Services.ProvideServices;
|
||||
|
||||
public class TrackCustomer : ITransientDependency, ICapSubscribe
|
||||
{
|
||||
public const string CapSubscribe = "SJZY.FMC.VoucherRedundantCalc";
|
||||
public const string CapSubscribe = "SJZY.Track.Upsert";
|
||||
}
|
||||
@ -81,6 +81,7 @@ public class TrackService : ApplicationService
|
||||
}
|
||||
|
||||
// 根据订单关联关系向下刷,不同子系统还需要做内容映射
|
||||
var links = await _orderRepository.GetLinkedOrderIdsAsync(orderId);
|
||||
|
||||
// 推送
|
||||
return true;
|
||||
|
||||
@ -20,6 +20,30 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
|
||||
/// <returns></returns>
|
||||
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>
|
||||
@ -34,17 +58,5 @@ public interface IOrderRepository : IBasicRepository<OrderEntity>
|
||||
/// <returns></returns>
|
||||
Task UnLinkByIdsAsync(List<int> linkIds);
|
||||
|
||||
/// <summary>
|
||||
/// 更新订单
|
||||
/// </summary>
|
||||
/// <param name="order"></param>
|
||||
/// <returns></returns>
|
||||
Task UpdateOrderAsync(OrderEntity order);
|
||||
|
||||
/// <summary>
|
||||
/// 删除订单
|
||||
/// </summary>
|
||||
/// <param name="orderId"></param>
|
||||
/// <returns></returns>
|
||||
Task DeleteOrderAsync(int orderId);
|
||||
#endregion
|
||||
}
|
||||
@ -12,6 +12,18 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
|
||||
[SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
|
||||
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>
|
||||
@ -24,6 +36,7 @@ public class OrderLinkEntity : ICreateBaicEntity, ISoftDeleteBasicEntity, IEntit
|
||||
[SugarColumn(ColumnName = "OrderNo")]
|
||||
public string OrderNo { get; set; } = null!;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 关联的订单类型
|
||||
/// </summary>
|
||||
|
||||
@ -10,7 +10,7 @@ public class KeywordsInputVO : PageInfoInput
|
||||
/// <summary>
|
||||
/// 关键字
|
||||
/// </summary>
|
||||
public string Keywords { get; set; }
|
||||
public string? Keywords { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 选中项
|
||||
|
||||
@ -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.TrackTemplateAggregate;
|
||||
using SJZY.Track.Domain.Dtos.Order;
|
||||
@ -18,16 +17,6 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
||||
.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)
|
||||
{
|
||||
using var tran = TransactionHelper.GetReadCommitted();
|
||||
@ -62,6 +51,29 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
||||
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 轨迹订单明细
|
||||
|
||||
/// <summary>
|
||||
@ -86,31 +98,37 @@ public class OrderRepository : BasicRepository<OrderEntity>, IOrderRepository, I
|
||||
public async Task<UnifyPageResultDto<TrackOrderVO>> GetPageTrackOrder(GetPageTrackOrderInputVO input)
|
||||
{
|
||||
var pageList = await Context.Queryable<OrderEntity>()
|
||||
.LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId==b.Id)
|
||||
.LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId==c.Id)
|
||||
.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.CreateTimeStart.HasValue&& input.CreateTimeEnd.HasValue, (a, b, c) => a.CreateTime>= input.CreateTimeStart && 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
|
||||
{
|
||||
Id = a.Id,
|
||||
OrderNumber= a.OrderNo,
|
||||
OrderType = a.OrderType,
|
||||
CustomerShortName= b.Abbreviation,
|
||||
CustomerCode= b.Code,
|
||||
TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>().LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId==bb.Id)
|
||||
.Where((aa, bb) => a.Id==aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
|
||||
NewestTrackContent= a.LatestTrackContent,
|
||||
NewestTrackEnContent= a.LatestTrackEnContent,
|
||||
NewestTrackPlace= a.LatestTrackPlace,
|
||||
IsFinish=a.IsCompleted,
|
||||
CreateTime=a.CreateTime,
|
||||
SubSystem= c.CnName
|
||||
})
|
||||
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||
.LeftJoin<VExternalSubjectEntity>((a, b) => a.CustomId == b.Id)
|
||||
.LeftJoin<VSystemEntity>((a, b, c) => a.SubSystemId == c.Id)
|
||||
.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.CreateTimeStart.HasValue && input.CreateTimeEnd.HasValue,
|
||||
(a, b, c) => a.CreateTime >= input.CreateTimeStart && 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
|
||||
{
|
||||
Id = a.Id,
|
||||
OrderNumber = a.OrderNo,
|
||||
OrderType = a.OrderType,
|
||||
CustomerShortName = b.Abbreviation,
|
||||
CustomerCode = b.Code,
|
||||
TrackTemplateNames = SqlFunc.Subqueryable<OrderTemplateEntity>()
|
||||
.LeftJoin<TrackTemplateEntity>((aa, bb) => aa.TrackTemplateId == bb.Id)
|
||||
.Where((aa, bb) => a.Id == aa.OrderId).SelectStringJoin((aa, bb) => bb.Name, ","),
|
||||
NewestTrackContent = a.LatestTrackContent,
|
||||
NewestTrackEnContent = a.LatestTrackEnContent,
|
||||
NewestTrackPlace = a.LatestTrackPlace,
|
||||
IsFinish = a.IsCompleted,
|
||||
CreateTime = a.CreateTime,
|
||||
SubSystem = c.CnName
|
||||
})
|
||||
.ToPagedListAsync(input.PageIndex, input.PageSize);
|
||||
|
||||
#region 暂时注释
|
||||
|
||||
//if (pageList.List.Any())
|
||||
//{
|
||||
// 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(",");
|
||||
// });
|
||||
//}
|
||||
|
||||
#endregion
|
||||
|
||||
return pageList;
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@
|
||||
<TargetFramework>net7.0</TargetFramework>
|
||||
<GenerateDocumentationFile>True</GenerateDocumentationFile>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<AssemblyName>SJZY.Track.Repository</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user