diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs
index 8e313589..d487c033 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackNode/TrackNodeInput.cs
@@ -15,15 +15,15 @@ public class EditTrackNodeInput
///
/// 系统id
///
- public int SystemId { get; set; }
+ public int? SubSystemId { get; set; }
///
/// 节点名称
///
- public string Name { get; set; }
+ public string? NodeName { get; set; }
///
/// 节点英文名称
///
- public string EnName { get; set; }
+ public string? NodeEnName { get; set; }
}
diff --git a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullParamConfigDto.cs b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullParamConfigDto.cs
index 79af5185..c4f65d0b 100644
--- a/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullParamConfigDto.cs
+++ b/src/SJZY.Track.Application.Contract/Dtos/TrackPull/TrackPullParamConfigDto.cs
@@ -46,4 +46,9 @@ public class TrackPullParamConfigDto
/// 轨迹明细数组路径
///
public string TrackDetailsPath { get; set; } = null!;
+
+ ///
+ /// 轨迹内容代码
+ ///
+ public string? TrackContentCode { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application.Contract/Events/OrderIdentifier.cs b/src/SJZY.Track.Application.Contract/Events/OrderIdentifier.cs
index 158e64b1..48186952 100644
--- a/src/SJZY.Track.Application.Contract/Events/OrderIdentifier.cs
+++ b/src/SJZY.Track.Application.Contract/Events/OrderIdentifier.cs
@@ -7,4 +7,6 @@ public struct OrderIdentifier
public int OrderType { get; set; }
public int CustomId { get; set; }
+
+ public bool IsTrigger { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application.Contract/Events/TrackChangeAfterUpdateOrderEvent.cs b/src/SJZY.Track.Application.Contract/Events/TrackChangeAfterUpdateOrderEvent.cs
index b52a95a3..526febd8 100644
--- a/src/SJZY.Track.Application.Contract/Events/TrackChangeAfterUpdateOrderEvent.cs
+++ b/src/SJZY.Track.Application.Contract/Events/TrackChangeAfterUpdateOrderEvent.cs
@@ -41,4 +41,9 @@ public class TrackChangeAfterUpdateOrderEvent
/// 轨迹时区
///
public float TrackTimeZone { get; set; }
+
+ ///
+ /// 根据配置规则,标记拉取时需要的订单Id
+ ///
+ public int[] TriggerPullOrderIds { get; set; } = Array.Empty();
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs
index af8699e0..b2226591 100644
--- a/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs
+++ b/src/SJZY.Track.Application/AutoMapper/TrackNodeMapperProfile.cs
@@ -12,9 +12,9 @@ public class TrackNodeMapperProfile :Profile
{
CreateMap();
CreateMap(MemberList.None)
- .ForMember(val => val.NodeName, opt => opt.MapFrom(src => src.Name))
- .ForMember(val => val.NodeEnName, opt => opt.MapFrom(src => src.EnName))
- .ForMember(val => val.SubSystemId, opt => opt.MapFrom(src => src.SystemId));
+ .ForMember(val => val.NodeName, opt => opt.MapFrom(src => src.NodeName))
+ .ForMember(val => val.NodeEnName, opt => opt.MapFrom(src => src.NodeEnName))
+ .ForMember(val => val.SubSystemId, opt => opt.MapFrom(src => src.SubSystemId));
}
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/PullChangeBottomLineUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/PullChangeBottomLineUpdateOrderEventHandler.cs
index 0365727d..cccaf7eb 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/PullChangeBottomLineUpdateOrderEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/PullChangeBottomLineUpdateOrderEventHandler.cs
@@ -6,6 +6,9 @@ using Volo.Abp.DependencyInjection;
namespace SJZY.Track.Application.CAP.EventHandlers;
+///
+/// 拉去轨迹后,执行了兜底操作还是失败的标记操作
+///
public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency, ICapSubscribe
{
private readonly IOrderRepository _orderRepository;
@@ -18,6 +21,6 @@ public class PullChangeBottomLineUpdateOrderEventHandler :ITransientDependency,
[CapSubscribe(GlobalConst.PullChangeBottomLineUpdateOrderSubscribe)]
public async Task ConsumerAsync(PullChangeBottomLineUpdateOrderEvent @event)
{
- await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
+ var rows =await _orderRepository.UpdateBatchIdsAsync(@event.OrderIds, @event.DeficiencyTagValue);
}
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs
index 859fb666..f5766880 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackChangeAfterUpdateOrderEventHandler.cs
@@ -28,6 +28,7 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
if (orders.Count == 0) return;
var updateOrders = new List();
+
foreach (var order in orders)
{
if (order.LatestTrackContent != @event.TrackContent)
@@ -45,6 +46,12 @@ public class TrackChangeAfterUpdateOrderEventHandler : ITransientDependency, ICa
order.IsCompleted = @event.IsCompleted;
}
+ // 触发拉取节点
+ if (@event.TriggerPullOrderIds.Contains(order.Id))
+ {
+ order.IsTriggerPull = 1;
+ }
+
order.LatestTrackContent = @event.TrackContent;
order.LatestTrackEnContent = @event.TrackEnContent;
order.LatestTrackPlace = @event.TrackPlace;
diff --git a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
index baa3d8b3..cee1dc82 100644
--- a/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
+++ b/src/SJZY.Track.Application/CAP/EventHandlers/TrackUpsertEventHandler.cs
@@ -2,11 +2,14 @@
using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Track.Application.Contract.Events;
+using SJZY.Track.Application.Contract.Services;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Consts;
+using SJZY.Track.Domain.Dtos.Order;
using SJZY.Track.Domain.Queries;
using Volo.Abp.DependencyInjection;
+using OrderIdentifier = SJZY.Track.Application.Contract.Events.OrderIdentifier;
namespace SJZY.Track.Application.CAP.EventHandlers;
@@ -16,14 +19,16 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
private readonly IProvideQueries _provideQueries;
private readonly ITrackDetailsRepository _trackDetailsRepository;
private readonly ICapPublisher _capPublisher;
+ private readonly ITrackPullCacheService _trackPullCacheService;
public TrackUpsertEventHandler(IOrderRepository orderRepository, ICapPublisher capPublisher,
- IProvideQueries provideQueries, ITrackDetailsRepository trackDetailsRepository)
+ IProvideQueries provideQueries, ITrackDetailsRepository trackDetailsRepository, ITrackPullCacheService trackPullCacheService)
{
_orderRepository = orderRepository;
_capPublisher = capPublisher;
_provideQueries = provideQueries;
_trackDetailsRepository = trackDetailsRepository;
+ _trackPullCacheService = trackPullCacheService;
}
[CapSubscribe(GlobalConst.TrackUpsertSubscribe, Group = GlobalConst.TrackUpsertSubscribe)]
@@ -100,7 +105,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
}
}
}
-
+
private async Task HandleTrackAsync(TrackUpsertEvent @event, List canNextOrderIds)
{
var content = await _provideQueries.GetTrackContentAsync(@event.SubSystemId, @event.TrackCode);
@@ -114,7 +119,9 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
var trackContents = await _provideQueries.MatchTrackContentAsync(newOrderIds, @event.TrackCode);
var insertTracks = new List();
+ var triggerPullOrder = new List();
+ var providerDic=await GetProviderDic(orderIds);
foreach (var order in @event.OrderIdentifiers)
{
var track = tracks.FirstOrDefault(x => x.OrderId == order.OrderId);
@@ -170,13 +177,24 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
}
canNextOrderIds.Add(order.OrderId);
+
+ if(!providerDic.TryGetValue(order.OrderId,out var provider))
+ continue;
+
+ var config =
+ await _trackPullCacheService.GetPullParamWithContentConfigAsync(provider.SubSystemId,
+ provider.ServiceProviderId);
+ if (config!=null && config.ParamConfig!=null && config.ParamConfig.TrackContentCode == @event.TrackCode)
+ {
+ triggerPullOrder.Add(order.OrderId);
+ }
}
if (canNextOrderIds.Count == 0) return;
// 批量add to es
await _trackDetailsRepository.AddManyAsync(insertTracks);
-
+
// 触发订单主表更新事件(异步)
await _capPublisher.PublishAsync(GlobalConst.TrackChangeAfterUpdateOrderSubscribe,
new TrackChangeAfterUpdateOrderEvent
@@ -188,7 +206,8 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
TrackStatusId = content.TrackStatusId,
TrackPlace = @event.TrackPlace,
TrackTime = @event.TrackTime,
- TrackTimeZone = @event.TrackTimeZone
+ TrackTimeZone = @event.TrackTimeZone,
+ TriggerPullOrderIds = triggerPullOrder.ToArray()
});
// 触发轨迹推送事件(异步)
@@ -215,4 +234,17 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
await _capPublisher.PublishAsync(GlobalConst.TrackPushSubscribe, trackPushEvent);
}
}
+
+ ///
+ /// 获取服务商字典
+ ///
+ ///
+ ///
+ private async Task> GetProviderDic(int[] orderIds)
+ {
+ var providerList = await _provideQueries.FindOrderWithServiceProviderAsync(orderIds);
+ return providerList.GroupBy(val => val.OrderId)
+ .ToDictionary(val => val.Key, val => val.First());
+ }
+
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs b/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs
similarity index 77%
rename from src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs
rename to src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs
index 7b8f3d3a..851d3055 100644
--- a/src/SJZY.Track.Application/Services/TrackNodeServices/TrackNodeService.cs
+++ b/src/SJZY.Track.Application/Services/TrackNode/TrackNodeService.cs
@@ -54,6 +54,18 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
var resultDto = await _trackNodeRepository.GetPageList(queryParam);
return resultDto;
}
+
+ ///
+ /// 获取详情
+ ///
+ /// 节点id
+ ///
+ [HttpPost("GetDetail")]
+ public async Task GetDetail(int nodeid)
+ {
+ var resultDto = await _trackNodeRepository.GetDetail(nodeid);
+ return new UnifyResultDto(true,resultDto);
+ }
///
/// 获取分页轨迹字典,下拉框用的
@@ -73,16 +85,21 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
private async Task AddAsync(EditTrackNodeInput input)
{
#region 业务校验
+ if(string.IsNullOrEmpty(input.NodeName)|| string.IsNullOrEmpty(input.NodeEnName) || !input.SubSystemId.HasValue)
+ {
+ return new UnifyResultDto("200", "NodeName,NodeEnName,SubSystemId 必填", false);
+ }
+
var trackNodesEntitys = await _trackNodeRepository.GetListAsync(a =>
- a.SubSystemId == input.SystemId && (a.NodeName == input.Name || a.NodeEnName == input.EnName));
+ a.SubSystemId == input.SubSystemId && (a.NodeName == input.NodeName || a.NodeEnName == input.NodeEnName));
if (trackNodesEntitys.Any())
{
- var trackNodeName = trackNodesEntitys.FirstOrDefault(a => a.NodeName == input.Name);
+ var trackNodeName = trackNodesEntitys.FirstOrDefault(a => a.NodeName == input.NodeName);
if (trackNodeName != null)
{
throw new BusinessException(message: "该子系统下节点名称已存在");
}
- var trackNodeEnName = trackNodesEntitys.FirstOrDefault(a => a.NodeEnName == input.EnName);
+ var trackNodeEnName = trackNodesEntitys.FirstOrDefault(a => a.NodeEnName == input.NodeEnName);
if (trackNodeEnName != null)
{
throw new BusinessException(message: "该子系统下节点英文名称已存在");
@@ -99,7 +116,11 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
private async Task UpdateAsync(EditTrackNodeInput input)
{
#region 业务校验
-
+ if(string.IsNullOrEmpty(input.NodeName)|| string.IsNullOrEmpty(input.NodeEnName) )
+ {
+ return new UnifyResultDto("200", "NodeName,NodeEnName 必填", false);
+ }
+
var trackNodesEntitys = await _trackNodeRepository.GetFirstAsync(a => a.Id == input.Id);
if (trackNodesEntitys == null)
{
@@ -108,8 +129,8 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
#endregion
- trackNodesEntitys.NodeEnName = input.EnName;
- trackNodesEntitys.NodeName = input.Name;
+ trackNodesEntitys.NodeEnName = input.NodeEnName;
+ trackNodesEntitys.NodeName = input.NodeName;
var isTrue = await _trackNodeRepository.UpdateAsync(trackNodesEntitys);
return new UnifyResultDto("200", "修改成功", isTrue);
@@ -117,7 +138,12 @@ namespace SJZY.Track.Application.Services.TrackNodeServices
private async Task DeleteAsync(EditTrackNodeInput input)
{
- var trackStatus = await _trackStatusRepository.GetFirstAsync(val => val.Node == input.Id && val.SubSystemId == input.SystemId);
+ if(input.Id <=0 || !input.SubSystemId.HasValue)
+ {
+ return new UnifyResultDto("200", "SubSystemId 必填", false);
+ }
+
+ var trackStatus = await _trackStatusRepository.GetFirstAsync(val => val.Node == input.Id && val.SubSystemId == input.SubSystemId);
if(trackStatus!=null)
{
return new UnifyResultDto("200", "删除失败,该节点已被使用", false);
diff --git a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
index 4aefeac6..51e8d0e6 100644
--- a/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/OrderAggregate/OrderEntity.cs
@@ -167,7 +167,13 @@ public class OrderEntity : IFullAuditedBasicEntitys, IAggregateRoot
///
[SugarColumn(ColumnName = "ArrivalProvince")]
public string? ArrivalProvince { get; set; }
-
+
+ ///
+ /// 是否触发拉取,1表示触发
+ ///
+ [SugarColumn(ColumnName = "IsTriggerPull")]
+ public short? IsTriggerPull { get; set; }
+
[SugarColumn(IsIgnore = true)] public List OrderFlights { get; set; }
[SugarColumn(IsIgnore = true)] public List OrderTemplates { get; set; }
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs
index 10d1cb70..6ab6f473 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackNodeAggregate/ITrackNodeRepository.cs
@@ -24,4 +24,11 @@ public interface ITrackNodeRepository:IBasicRepository
///
///
Task DeleteById(long inputId);
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ Task GetDetail(long id);
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs
index 59ea07e1..9687307f 100644
--- a/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs
+++ b/src/SJZY.Track.Domain/Aggregates/TrackPullAggregate/TrackPushPullParamsConfigEntity.cs
@@ -89,4 +89,10 @@ public class TrackPushPullParamsConfigEntity : IFullAuditedBasicEntitys, IEntity
///
[SugarColumn(ColumnName = "ExpandFieldsName")]
public string? ExpandFieldsName { get; set; }
+
+ ///
+ /// 轨迹内容代码
+ ///
+ [SugarColumn(ColumnName = "TrackContentCode")]
+ public string? TrackContentCode { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Dtos/Order/OrderTransportDto.cs b/src/SJZY.Track.Domain/Dtos/Order/OrderTransportDto.cs
new file mode 100644
index 00000000..d7d03691
--- /dev/null
+++ b/src/SJZY.Track.Domain/Dtos/Order/OrderTransportDto.cs
@@ -0,0 +1,10 @@
+namespace SJZY.Track.Domain.Dtos.Order;
+
+public class OrderTransportDto
+{
+ public int OrderId { get; set; }
+
+ public int ServiceProviderId { get; set; }
+
+ public int SubSystemId { get; set; }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs
index 185f432f..401ec773 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackNode/TrackNodeDto.cs
@@ -14,6 +14,11 @@ public class TrackNodeDto
/// 子系统id
///
public int SubSystemId { get; set; }
+
+ ///
+ /// 系统名称
+ ///
+ public string? SystemName { get; set; }
///
/// 节点名称
diff --git a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullConfigDetailOutputVO.cs b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullConfigDetailOutputVO.cs
index c52c081b..dbe0b308 100644
--- a/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullConfigDetailOutputVO.cs
+++ b/src/SJZY.Track.Domain/Dtos/TrackPull/GetTrackPullConfigDetailOutputVO.cs
@@ -78,4 +78,9 @@ public class GetTrackPullConfigDetailOutputVO
/// 轨迹明细路径
///
public string TrackDetailsPath { get; set; }
+
+ ///
+ /// 轨迹内容代码
+ ///
+ public string? TrackContentCode { get; set; }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Domain/Queries/IProvideQueries.cs b/src/SJZY.Track.Domain/Queries/IProvideQueries.cs
index e01e5a50..6392d05e 100644
--- a/src/SJZY.Track.Domain/Queries/IProvideQueries.cs
+++ b/src/SJZY.Track.Domain/Queries/IProvideQueries.cs
@@ -68,4 +68,11 @@ public interface IProvideQueries
int pageSize = 1000);
Task GetTrackContentAsync(int subSystemId, string trackCode);
+
+ ///
+ /// 查找订单和服务商信息
+ ///
+ /// 订单id
+ /// 订单和服务商信息
+ Task> FindOrderWithServiceProviderAsync(int[] orderIds);
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
index 5ffffe7a..60043689 100644
--- a/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
+++ b/src/SJZY.Track.Repository/Queries/ProvideQueries.cs
@@ -122,7 +122,7 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
return await Context.Queryable()
.RightJoin((a, b) => a.Id == b.OrderId)
.LeftJoin((a, b, c) => b.ServiceProviderId == c.Id)
- .Where((a, b) => b.ServiceProviderId == serviceProvider && !a.IsCompleted)
+ .Where((a, b) => b.ServiceProviderId == serviceProvider && !a.IsCompleted && a.IsTriggerPull==1)
.Select((a, b, c) => new OrderWithServiceProviderVO
{
OrderNo = a.OrderNo,
@@ -136,6 +136,20 @@ public class ProvideQueries : ISugarRepository, IProvideQueries,
.Take(pageSize)
.ToListAsync();
}
+
+ public async Task> FindOrderWithServiceProviderAsync(int[] orderIds)
+ {
+ return await Context.Queryable()
+ .InnerJoin((a, b) => a.Id == b.OrderId)
+ .Where((a, b) => orderIds.Contains( a.Id) && !a.IsCompleted)
+ .Select((a, b) => new OrderTransportDto
+ {
+ OrderId = a.Id,
+ ServiceProviderId = b.ServiceProviderId,
+ SubSystemId = a.SubSystemId
+ })
+ .ToListAsync();
+ }
public async Task GetTrackContentAsync(int subSystemId, string trackCode)
{
diff --git a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
index aa825973..6f2130ae 100644
--- a/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/OrderRepository.cs
@@ -1,5 +1,6 @@
using SJZY.Track.Domain;
using SJZY.Track.Domain.Aggregates.OrderAggregate;
+using SJZY.Track.Domain.Consts;
using SJZY.Track.Domain.Dtos.Order;
namespace SJZY.Track.Repository.Repositories;
@@ -21,7 +22,9 @@ public class OrderRepository : BasicRepository, IOrderRepository, I
public Task UpdateBatchIdsAsync(List ids, int newValue)
{
- return Context.Ado.ExecuteCommandAsync("UPDATE `t_order` SET `DeficiencyTag` = @newValue WHERE `Id` IN @ids", new { ids, newValue });
+ var idsString = string.Join(",", ids);
+ return Context.Ado.ExecuteCommandAsync(
+ $"UPDATE `t_order` SET `DeficiencyTag` = @newValue ,UpdateTime= current_timestamp WHERE `Id` IN ({idsString})", new { newValue });
}
public async Task UpdateOrderAsync(OrderEntity order)
diff --git a/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs
index be340230..9f767780 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackNodeRepository.cs
@@ -11,10 +11,11 @@ public class TrackNodeRepository: BasicRepository,ITrackNodeRep
var result = await Context.Queryable()
.LeftJoin((t,u1)=>t.CreateUserId==u1.Id)
.LeftJoin((t,u1,u2)=>t.UpdateUserId==u2.Id)
+ .LeftJoin((t,u1,u2,u3)=>t.SubSystemId==u3.Id)
.Where((t,u1,u2)=>!t.IsDeleted&&!u1.IsDeleted&&!u2.IsDeleted)
.WhereIF(!string.IsNullOrEmpty(queryParam.KeyWord), (t,u1,u2)=>t.NodeName!.Contains(queryParam.KeyWord)||t.NodeEnName!.Contains(queryParam.KeyWord))
.WhereIF(queryParam.SystemId.HasValue,(t,u1,u2)=>t.SubSystemId == queryParam.SystemId.Value)
- .Select((t, u1, u2) =>new TrackNodeDto()
+ .Select((t, u1, u2,u3) =>new TrackNodeDto()
{
Id = t.Id,
NodeName = t.NodeName,
@@ -24,7 +25,8 @@ public class TrackNodeRepository: BasicRepository,ITrackNodeRep
CreateTime = t.CreateTime,
UpdateUserId = t.UpdateUserId,
UpdateUserName = u2.Name,
- CreateUserName = u1.Name
+ CreateUserName = u1.Name,
+ SystemName = u3.CnName
}).ToPagedListAsync(queryParam.PageIndex, queryParam.PageSize);
return result;
@@ -50,4 +52,27 @@ public class TrackNodeRepository: BasicRepository,ITrackNodeRep
{
return Context.Deleteable().Where(val=>val.Id==inputId).ExecuteCommandAsync();
}
+
+ public async Task GetDetail(long id)
+ {
+ var result = await Context.Queryable()
+ .LeftJoin((t, u1) => t.CreateUserId == u1.Id)
+ .LeftJoin((t, u1, u2) => t.UpdateUserId == u2.Id)
+ .LeftJoin((t, u1, u2, u3) => t.SubSystemId == u3.Id)
+ .Where((t, u1, u2) => !t.IsDeleted && !u1.IsDeleted && !u2.IsDeleted)
+ .Select((t, u1, u2, u3) => new TrackNodeDto()
+ {
+ Id = t.Id,
+ NodeName = t.NodeName,
+ NodeEnName = t.NodeEnName,
+ SubSystemId = t.SubSystemId,
+ UpdateTime = t.UpdateTime,
+ CreateTime = t.CreateTime,
+ UpdateUserId = t.UpdateUserId,
+ UpdateUserName = u2.Name,
+ CreateUserName = u1.Name,
+ SystemName = u3.CnName
+ }).FirstAsync();
+ return result;
+ }
}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs
index b3267e8a..41d9053b 100644
--- a/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs
+++ b/src/SJZY.Track.Repository/Repositories/TrackPullConfigRepository.cs
@@ -72,7 +72,8 @@ public class TrackPullConfigRepository : BasicRepository,
{
Id = trackPull.Id,
SubSystem = system.CnName,
- ServiceProvider = service.Name
+ ServiceProvider = service.Name,
+ TrackContentCode = paramsConfig.TrackContentCode
}, true)
.SingleAsync();
}