轨迹明细调整
This commit is contained in:
parent
4f42663ad5
commit
d76e7c29a1
@ -5,7 +5,7 @@
|
|||||||
"Apollo": {
|
"Apollo": {
|
||||||
"AppId": "SJZY.Track.Configuration",
|
"AppId": "SJZY.Track.Configuration",
|
||||||
"Env": "DEV",
|
"Env": "DEV",
|
||||||
"Namespace": "Test",
|
"Namespace": "Dev",
|
||||||
"MetaServer": "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080",
|
"MetaServer": "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080",
|
||||||
"ConfigServer": [ "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080" ]
|
"ConfigServer": [ "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080" ]
|
||||||
}
|
}
|
||||||
|
|||||||
@ -6,6 +6,11 @@
|
|||||||
/// 轨迹订单id
|
/// 轨迹订单id
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int OrderId { get; set; }
|
public int OrderId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class TrackOrderDetailDto
|
public class TrackOrderDetailDto
|
||||||
@ -49,5 +54,20 @@
|
|||||||
/// 轨迹发生时区
|
/// 轨迹发生时区
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string? TrackTimeZone { get; set; }
|
public string? TrackTimeZone { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 时区的值
|
||||||
|
/// </summary>
|
||||||
|
public float TrackTimeZoneValue { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否可删
|
||||||
|
/// </summary>
|
||||||
|
public bool IsCanDelete { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否对外
|
||||||
|
/// </summary>
|
||||||
|
public bool IsExternal { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,7 +1,9 @@
|
|||||||
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
|
||||||
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
using SJZY.Track.Domain.Aggregates.OrderAggregate;
|
||||||
|
using SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.Order;
|
using SJZY.Track.Domain.Dtos.Order;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@ -17,19 +19,20 @@ namespace SJZY.Track.Application.Services.TrackOrders
|
|||||||
{
|
{
|
||||||
private readonly IOrderRepository _orderRepository;
|
private readonly IOrderRepository _orderRepository;
|
||||||
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
private readonly ITrackDetailsRepository _trackDetailsRepository;
|
||||||
|
private readonly ITrackContentRepository _trackContentRepository;
|
||||||
|
|
||||||
public TrackOrderService(
|
public TrackOrderService(
|
||||||
IOrderRepository orderRepository,
|
IOrderRepository orderRepository,
|
||||||
ITrackDetailsRepository trackDetailsRepository
|
ITrackDetailsRepository trackDetailsRepository,
|
||||||
|
ITrackContentRepository trackContentRepository
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
this._orderRepository=orderRepository;
|
this._orderRepository=orderRepository;
|
||||||
this._trackDetailsRepository=trackDetailsRepository;
|
this._trackDetailsRepository=trackDetailsRepository;
|
||||||
|
this._trackContentRepository=trackContentRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
#region 轨迹订单明细
|
#region 轨迹订单明细
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据轨迹订单id获取轨迹订单明细列表
|
/// 根据轨迹订单id获取轨迹订单明细列表
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -42,10 +45,40 @@ namespace SJZY.Track.Application.Services.TrackOrders
|
|||||||
if (!trackDetails.IsNullOrEmpty())
|
if (!trackDetails.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
var list = ObjectMapper.Map<List<TrackDetailsIndex>, List<TrackOrderDetailDto>>(trackDetails);
|
var list = ObjectMapper.Map<List<TrackDetailsIndex>, List<TrackOrderDetailDto>>(trackDetails);
|
||||||
|
var trackCodes = list.Where(a => !a.Code.IsNullOrWhiteSpace()).Select(a => a.Code).ToList();
|
||||||
|
|
||||||
|
var trackContents = await _trackContentRepository.GetTrackContentAttributeValue(new GetTemplateContentAttributeValueInputVO
|
||||||
|
{
|
||||||
|
SubSystemId =input.SubSystemId,
|
||||||
|
TrackCodes=trackCodes
|
||||||
|
});
|
||||||
|
|
||||||
int id = 1;
|
int id = 1;
|
||||||
list.ForEach(a =>
|
list.ForEach(a =>
|
||||||
{
|
{
|
||||||
a.Id = id++;
|
a.Id = id++;
|
||||||
|
var trackContent = trackContents.FirstOrDefault(a => a.SubSystemId==input.SubSystemId&& a.TrackCode==a.TrackCode);
|
||||||
|
if (trackContent!=null)
|
||||||
|
{
|
||||||
|
a.IsCanDelete=trackContent.IsCanDelete;
|
||||||
|
a.IsExternal = trackContent.IsExternal;
|
||||||
|
}
|
||||||
|
a.TrackTimeZoneValue=8f;
|
||||||
|
if (a.TrackTimeZoneValue==0)
|
||||||
|
{
|
||||||
|
a.TrackTimeZone=$"GTM{" "}+00:00";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
// 将小数形式的小时转换为时区偏移量
|
||||||
|
int hours = (int)a.TrackTimeZoneValue; // 提取整数部分作为小时
|
||||||
|
int minutes = (int)((a.TrackTimeZoneValue - hours) * 60); // 将小数部分乘以 60 转换为分钟
|
||||||
|
TimeSpan offset = new TimeSpan(hours, minutes, 0);
|
||||||
|
string timeZoneStr = offset.ToString();
|
||||||
|
string flag = a.TrackTimeZoneValue>0f ? "+" : "";
|
||||||
|
a.TrackTimeZone = $"GTM{" "}{flag}{timeZoneStr.RemovePostFix(":00")}";
|
||||||
|
}
|
||||||
});
|
});
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using SJZY.Track.Domain.Dtos.TrackContents;
|
using SJZY.Track.Domain.Dtos.TrackContents;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||||
|
|
||||||
namespace SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
namespace SJZY.Track.Domain.Aggregates.TrackContentAggregate;
|
||||||
|
|
||||||
@ -24,4 +25,5 @@ public interface ITrackContentRepository : IBasicRepository<TrackContentEntity>
|
|||||||
|
|
||||||
Task<bool> UpdateMapAsync(Expression<Func<TrackContentMapEntity, TrackContentMapEntity>> columns, Expression<Func<TrackContentMapEntity, bool>> whereExpression);
|
Task<bool> UpdateMapAsync(Expression<Func<TrackContentMapEntity, TrackContentMapEntity>> columns, Expression<Func<TrackContentMapEntity, bool>> whereExpression);
|
||||||
Task<bool> GetTemplateIsExist(int trackContentId);
|
Task<bool> GetTemplateIsExist(int trackContentId);
|
||||||
|
Task<List<GetTemplateContentAttributeValueVO>> GetTrackContentAttributeValue(GetTemplateContentAttributeValueInputVO input);
|
||||||
}
|
}
|
||||||
@ -0,0 +1,59 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace SJZY.Track.Domain.Dtos.TrackTemplate
|
||||||
|
{
|
||||||
|
public class GetTemplateContentAttributeValueInputVO
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹代码
|
||||||
|
/// </summary>
|
||||||
|
public List<string?>? TrackCodes { get; set; }
|
||||||
|
|
||||||
|
///// <summary>
|
||||||
|
///// 订单id
|
||||||
|
///// </summary>
|
||||||
|
//public int OrderId { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class GetTemplateContentAttributeValueVO
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容id
|
||||||
|
/// </summary>
|
||||||
|
public int TrackContenId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 模版id
|
||||||
|
/// </summary>
|
||||||
|
public int TrackTemplateId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 轨迹内容代码
|
||||||
|
/// </summary>
|
||||||
|
public string TrackCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 子系统id
|
||||||
|
/// </summary>
|
||||||
|
public int SubSystemId { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否可删
|
||||||
|
/// </summary>
|
||||||
|
public bool IsCanDelete { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 是否对外
|
||||||
|
/// </summary>
|
||||||
|
public bool IsExternal { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -3,6 +3,7 @@ using SJZY.Track.Domain.Aggregates.TrackFlagAggregate;
|
|||||||
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackStatusAggregate;
|
||||||
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
using SJZY.Track.Domain.Aggregates.TrackTemplateAggregate;
|
||||||
using SJZY.Track.Domain.Dtos.TrackContents;
|
using SJZY.Track.Domain.Dtos.TrackContents;
|
||||||
|
using SJZY.Track.Domain.Dtos.TrackTemplate;
|
||||||
using SJZY.Track.Domain.VEntities;
|
using SJZY.Track.Domain.VEntities;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
@ -89,6 +90,31 @@ public class TrackContentRepository : BasicRepository<TrackContentEntity>, ITrac
|
|||||||
return pagedList;
|
return pagedList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取轨迹内容属性值
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<List<GetTemplateContentAttributeValueVO>> GetTrackContentAttributeValue(GetTemplateContentAttributeValueInputVO input)
|
||||||
|
{
|
||||||
|
var list = await Context.Queryable<TrackContentEntity>()
|
||||||
|
.LeftJoin<TrackTemplateContentEntity>((a, b) => a.Id==b.TrackContentId&& b.TrackTemplateId>0 && b.IsDeleted==false)
|
||||||
|
.LeftJoin<TrackTemplateEntity>((a, b, c) => b.TrackTemplateId==c.Id&& c.IsDeleted==false)
|
||||||
|
.WhereIF(!input.TrackCodes.IsNullOrEmpty(), (a, b, c) => input.TrackCodes.Contains(a.Code))
|
||||||
|
.WhereIF(input.SubSystemId>0, (a, b, c) => a.SubSystemId==input.SubSystemId)
|
||||||
|
.Where((a, b, c) => c.Id>0)
|
||||||
|
.Select((a, b, c) => new GetTemplateContentAttributeValueVO
|
||||||
|
{
|
||||||
|
IsCanDelete=b.IsCanDelete,
|
||||||
|
IsExternal=b.IsExternal,
|
||||||
|
SubSystemId= a.SubSystemId,
|
||||||
|
TrackCode= a.Code,
|
||||||
|
TrackContenId= a.Id,
|
||||||
|
TrackTemplateId=c.Id
|
||||||
|
}).ToListAsync();
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取轨迹模版是否存在
|
/// 获取轨迹模版是否存在
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -115,6 +141,8 @@ public class TrackContentRepository : BasicRepository<TrackContentEntity>, ITrac
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<UnifyPageResultDto<GetTrackContentMapPageOutputVO>> GetMapPageAsync(GetTrackContentMapPageInputVO input)
|
public async Task<UnifyPageResultDto<GetTrackContentMapPageOutputVO>> GetMapPageAsync(GetTrackContentMapPageInputVO input)
|
||||||
{
|
{
|
||||||
return await Context.Queryable<TrackContentMapEntity>()
|
return await Context.Queryable<TrackContentMapEntity>()
|
||||||
|
|||||||
@ -90,7 +90,9 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
|
|||||||
|
|
||||||
public async Task<List<TrackDetailsIndex>?> GetListAsync(int orderId)
|
public async Task<List<TrackDetailsIndex>?> GetListAsync(int orderId)
|
||||||
{
|
{
|
||||||
var data = await Context.SearchAsync<TrackDetailsIndex>(x => x.Query(q => q.Term(t => t.OrderId, orderId))
|
var data = await Context.SearchAsync<TrackDetailsIndex>(x => x.Query(q => q.Term(t => t.OrderId, orderId)
|
||||||
|
&& q.Term(a => a.Field(g => g.IsDeleted).Value(false))
|
||||||
|
)
|
||||||
.Size(1000)
|
.Size(1000)
|
||||||
.Sort(s => s.Field(f => f.TrackTime, SortOrder.Descending)));
|
.Sort(s => s.Field(f => f.TrackTime, SortOrder.Descending)));
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,17 @@ public class TrackTemplateRepository : BasicRepository<TrackTemplateEntity>, ITr
|
|||||||
return pagedList;
|
return pagedList;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取轨迹内容属性值
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<GetTemplateContentAttributeValueVO> GetTrackContentAttributeValue(GetTemplateContentAttributeValueInputVO input)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
public async Task<UnifyPageResultDto<GetTrackTemplateContentPageOutputVO>> GetContentPageAsync(
|
public async Task<UnifyPageResultDto<GetTrackTemplateContentPageOutputVO>> GetContentPageAsync(
|
||||||
GetTrackTemplateContentPageInputVO input)
|
GetTrackTemplateContentPageInputVO input)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user