Merge pull request 'uat2025-2-12合并到主分支' (#79) from uat into master

Reviewed-on: https://git.shijizhongyun.com/Dotnet/SJZY.Track.Api/pulls/79
This commit is contained in:
wangyunlong 2025-02-12 15:05:08 +08:00
commit 4bc45bc05c
416 changed files with 17829 additions and 5955 deletions

77
.editorconfig Normal file
View File

@ -0,0 +1,77 @@
# Top-most EditorConfig file
root = true
# All files
[*]
charset = utf-8
end_of_line = crlf
insert_final_newline = true
trim_trailing_whitespace = true
# C# files
[*.cs]
indent_style = space
indent_size = 4
# CS8618 表示在定义非空属性时,没有在构造函数、初始化器或默认值中对其进行初始化。
dotnet_diagnostic.cs8618.severity = none
# CS8618 表示方法的返回类型的可空性与目标委托的不匹配。
dotnet_diagnostic.cs8613.severity = none
# CS1591 表示缺少XML注释
dotnet_diagnostic.cs1591.severity = none
# 新行前的成员初始化
csharp_new_line_before_members_in_object_initializers = true
# 使用 var 关键字
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
# 命名约定
dotnet_naming_rule.private_members_should_be_camel_case.severity = suggestion
dotnet_naming_rule.private_members_should_be_camel_case.symbols = private_members
dotnet_naming_rule.private_members_should_be_camel_case.style = camel_case
dotnet_naming_symbols.private_members.applicable_accessibilities = private
dotnet_naming_symbols.private_members.applicable_kinds = field
dotnet_naming_symbols.private_members.required_modifiers = readonly
dotnet_naming_style.camel_case.capitalization = camel_case
dotnet_naming_style.camel_case.required_prefix = _
dotnet_naming_style.camel_case.required_suffix =
# 空格和换行
csharp_space_after_cast = true
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_around_binary_operators = before_and_after
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_before_comma = false
csharp_space_before_dot = false
csharp_space_before_semicolon_in_for_statement = false
csharp_space_before_open_square_bracket = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_empty_method_call_parentheses = false
csharp_space_between_empty_method_declaration_parentheses = false
# 花括号
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_anonymous_types = true
# 缩进规则
csharp_indent_case_contents = true
csharp_indent_block_contents = true
csharp_indent_braces = false
# 其他设置
dotnet_sort_system_directives_first = true
dotnet_separate_import_directive_groups = false
# resharper兼容
# 对象初始化收缩问题 https://youtrack.jetbrains.com/issue/RSRP-486359
resharper_wrap_object_and_collection_initializer_style = chop_always
# 条件表达式花括号收缩问题
resharper_csharp_case_block_braces = next_line_shifted_2
resharper_indent_braces_inside_statement_conditions = false

3
.gitignore vendored
View File

@ -1,5 +1,5 @@
## Ignore Visual Studio temporary files, build results, and ## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons. ## files generated by popular Visual Studio add-ons..
# User-specific files # User-specific files
*.suo *.suo
@ -189,3 +189,4 @@ UpgradeLog*.htm
FakesAssemblies/ FakesAssemblies/
logs/ logs/
/.vs /.vs
.idea/

View File

@ -23,6 +23,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution items", "solution
common.props = common.props common.props = common.props
NuGet.Config = NuGet.Config NuGet.Config = NuGet.Config
.gitignore = .gitignore .gitignore = .gitignore
.editorconfig = .editorconfig
EndProjectSection EndProjectSection
EndProject EndProject
Global Global

View File

@ -1,2 +1,3 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/UserDictionary/Words/=dels/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UserDictionary/Words/=SJZY/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary> <s:Boolean x:Key="/Default/UserDictionary/Words/=SJZY/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -2,7 +2,6 @@
<PropertyGroup> <PropertyGroup>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<NoWarn>$(NoWarn);CS1591;CS0436;NU1803</NoWarn>
<!-- <WarningsAsErrors>Nullable</WarningsAsErrors>--> <!-- <WarningsAsErrors>Nullable</WarningsAsErrors>-->
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -4,11 +4,11 @@
"commandName": "Project", "commandName": "Project",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_ENVIRONMENT": "Development",
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SJZY.Expand.ABP.Core;SkyAPM.Agent.AspNetCore", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SJZY.Expand.ABP.Core",
"SKYWALKING__SERVICENAME": "Track" "SKYWALKING__SERVICENAME": "Track"
}, },
"dotnetRunMessages": true, "dotnetRunMessages": true,
"applicationUrl": "http://*:5054" "applicationUrl": "http://*:5056"
} }
}, },
"$schema": "https://json.schemastore.org/launchsettings.json" "$schema": "https://json.schemastore.org/launchsettings.json"

View File

@ -1,4 +1,4 @@
using FluentValidation.AspNetCore; using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using SJZY.Expand.ABP.Core; using SJZY.Expand.ABP.Core;
using SJZY.Expand.ABP.Core.Cors; using SJZY.Expand.ABP.Core.Cors;
@ -9,6 +9,7 @@ using SJZY.Expand.ABP.Core.Prometheus;
using SJZY.Expand.ABP.Core.Redis; using SJZY.Expand.ABP.Core.Redis;
using SJZY.Expand.ABP.Core.Swagger; using SJZY.Expand.ABP.Core.Swagger;
using SJZY.Track.Application; using SJZY.Track.Application;
using SJZY.Track.Application.HostServices;
using SJZY.Track.Repository; using SJZY.Track.Repository;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
@ -20,69 +21,70 @@ using Volo.Abp.Modularity;
[assembly: HostingStartup(typeof(HostingStartup))] [assembly: HostingStartup(typeof(HostingStartup))]
namespace SJZY.Track.Api namespace SJZY.Track.Api;
[DependsOn(
typeof(AbpAutofacModule),
typeof(SjzyAbpCodeModule),
typeof(AbpAspNetCoreMvcModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(SjzyTrackApplicationModule),
typeof(SjzyTrackRepositoryModule)
)]
public class SjzyTrackApiModule : AbpModule
{ {
[DependsOn( public override void ConfigureServices(ServiceConfigurationContext context)
typeof(AbpAutofacModule),
typeof(SjzyAbpCodeModule),
typeof(AbpAspNetCoreMvcModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(SjzyTrackApplicationModule),
typeof(SjzyTrackRepositoryModule)
)]
public class SjzyTrackApiModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) var environment = context.Services.GetHostingEnvironment();
var configuration = context.Services.GetConfiguration();
context.Services.AddSwagger();
//过滤器相关配置
context.Services.AddMvc(options =>
{ {
var environment = context.Services.GetHostingEnvironment(); options.Filters.AddService<GlobalExceptionFilter>();
var configuration = context.Services.GetConfiguration(); options.Filters.AddService<RequestLogFilter>();
context.Services.AddSwagger(); options.Filters.AddService<UnifyResultFilter>();
}).AddNewtonsoftJson();
//过滤器相关配置 context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
context.Services.AddMvc(options =>
{
options.Filters.AddService<GlobalExceptionFilter>();
options.Filters.AddService<RequestLogFilter>();
options.Filters.AddService<UnifyResultFilter>();
}).AddNewtonsoftJson();
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters(); //Json格式化全局处理
context.Services.Configure<MvcNewtonsoftJsonOptions>(options =>
//Json格式化全局处理
context.Services.Configure<MvcNewtonsoftJsonOptions>(options =>
{
options.SerializerSettings.ContractResolver =
new Newtonsoft.Json.Serialization.
CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver();
options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
options.SerializerSettings.Converters.Add(new LongJsonConverter());
});
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
context.Services.AddRedis();
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{ {
var app = context.GetApplicationBuilder(); options.SerializerSettings.ContractResolver =
var env = context.GetEnvironment(); new Newtonsoft.Json.Serialization.
CamelCasePropertyNamesContractResolver(); //.DefaultContractResolver();
options.SerializerSettings.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
options.SerializerSettings.Converters.Add(new LongJsonConverter());
});
if (env.IsDevelopment()) Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
app.UseDeveloperExceptionPage(); Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
app.UseRequestCulture(); context.Services.AddRedis();
app.UseRouting(); context.Services.AddHostedService<RedisHostService>();
app.UseCorsPolicy(); }
app.UseConfiguredEndpoints();
app.UseAbpSwaggerUI(env);
app.UseAbpSerilogEnrichers();
app.UsePrometheus();
#region 启动提示 public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
Console.WriteLine($@" if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
app.UseRequestCulture();
app.UseRouting();
app.UseCorsPolicy();
app.UseConfiguredEndpoints();
app.UseAbpSwaggerUI(env);
app.UseAbpSerilogEnrichers();
app.UsePrometheus();
#region 启动提示
Console.WriteLine($@"
+-------------------------------------------------------+ +-------------------------------------------------------+
| | | |
| | | |
@ -93,7 +95,6 @@ namespace SJZY.Track.Api
+-------------------------------------------------------+ +-------------------------------------------------------+
"); ");
#endregion #endregion
}
} }
} }

View File

@ -1,13 +1,17 @@
{ {
"Configuration": { "Configuration": {
"UseLocalConfiguration": false, //是否使用本地配置文件 "UseLocalConfiguration": false,
"ConfiguraFileName": "appsettings.Development.json", //指定配置文件名称,开启UseLocalConfiguration时生效 //是否使用本地配置文件
"ConfiguraFileName": "appsettings.Development.json",
//指定配置文件名称,开启UseLocalConfiguration时生效
"Apollo": { "Apollo": {
"AppId": "SJZY.Track.Configuration", "AppId": "SJZY.Track.Configuration",
"Env": "DEV", "Env": "DEV",
"Namespace": "Test", "Namespace": "test",
"MetaServer": "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080", "MetaServer": "https://apollo.test.shijizhongyun.com",
"ConfigServer": [ "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080" ] "ConfigServer": [
"https://apollo.test.shijizhongyun.com"
]
} }
}, },
"Kestrel": { "Kestrel": {

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class AreaCacheEntry
{
/// <summary>
/// 国家或地区
/// </summary>
public string Country { get; set; } = null!;
/// <summary>
/// 省份
/// </summary>
public string? Province { get; set; }
/// <summary>
/// 城市
/// </summary>
public string? City { get; set; }
/// <summary>
/// 开始邮编
/// </summary>
public string? LeftPostcode { get; set; }
/// <summary>
/// 截止邮编
/// </summary>
public string? RightPostcode { get; set; }
}

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class CreateWarningInput
{
/// <summary>
/// 模板名称
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 轨迹状态跨度列表
/// </summary>
public List<WarningNotifyDto> TrackStatusSpans { get; set; } = new();
/// <summary>
/// 预警因素列表。
/// </summary>
public List<WarningFactorDto> WarningFactors { get; set; } = new();
}

View File

@ -0,0 +1,45 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class EditWarningOutput
{
/// <summary>
/// 模板名称
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
/// <summary>
/// 轨迹状态列表
/// </summary>
public List<WarningNotifyWithIdDto> TrackStatusSpans { get; set; } = new();
/// <summary>
/// 预警因素列表。
/// </summary>
public List<WarningFactorWithIdDto> WarningFactors { get; set; } = new();
}
public class WarningNotifyWithIdDto : WarningNotifyDto
{
/// <summary>
/// 通知id
/// </summary>
public int Id { get; set; }
}
public class WarningFactorWithIdDto : WarningFactorDto
{
/// <summary>
/// 因素id
/// </summary>
public int Id { get; set; }
}

View File

@ -0,0 +1,69 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class ForewarningRuleCacheEntry
{
/// <summary>
/// 自增主键
/// </summary>
public int Id { get; set; }
/// <summary>
/// 预警id
/// </summary>
public int WarningId { get; set; }
/// <summary>
/// 时效(小时) e.g. 24
/// </summary>
public float TotalTimeSpan { get; set; }
/// <summary>
/// 提醒的时间(小时) e.g. 9 10 11..
/// </summary>
public float WarnTimeSpan { get; set; }
/// <summary>
/// 提醒次数 e.g. 3 2 1
/// </summary>
public int WarnCount { get; set; }
/// <summary>
/// 起始轨迹状态id
/// </summary>
public int StartTrackStatusId { get; set; }
/// <summary>
/// 终止轨迹状态id
/// </summary>
public int EndTrackStatusId { get; set; }
/// <summary>
/// 货物类型
/// </summary>
public string? CargoType { get; set; }
/// <summary>
/// 月份
/// </summary>
public List<int>? Months { get; set; }
/// <summary>
/// 区域
/// </summary>
public List<AreaCacheEntry>? Areas { get; set; }
/// <summary>
/// 是否中转
/// </summary>
public bool? IsTransit { get; set; }
/// <summary>
/// 起运港口
/// </summary>
public string? LeavePort { get; set; }
/// <summary>
/// 产品编码
/// </summary>
public string? ProductCode { get; set; }
}

View File

@ -0,0 +1,14 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class ModifyTimeSpanInput
{
/// <summary>
/// 预警id
/// </summary>
public int WarningId { get; set; }
/// <summary>
/// 规则详情中的时效相关信息
/// </summary>
public List<WarningTimeSpanDto> Items { get; set; } = new();
}

View File

@ -0,0 +1,17 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class RuleAreaBaseInfo
{
public RuleAreaBaseInfo()
{
}
public RuleAreaBaseInfo(int systemId, int customerId)
{
SystemId = systemId;
CustomerId = customerId;
}
public int SystemId { get; set; }
public int CustomerId { get; set; }
}

View File

@ -0,0 +1,37 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class UpdateWarningInput
{
/// <summary>
/// 预警id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { get; set; } = null!;
/// <summary>
/// 通知列表
/// </summary>
public List<NotifyDto> Notifies { get; set; } = new();
}
public class NotifyDto
{
/// <summary>
/// 通知id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 通知人
/// </summary>
public List<NotifyUser> NotifyUsers { get; set; }
/// <summary>
/// 通知方式(1站内信,2飞书)
/// </summary>
public List<int> NotifyModes { get; set; }
}

View File

@ -0,0 +1,28 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class WarningDto
{
/// <summary>
/// 当前轨迹状态
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
public List<WarningOrderDto> Orders { get; set; } = new();
public override string ToString()
{
return $"子系统:{SubSystemId},客户:{CustomerId},订单:{Orders.Select(x => x.Id)
.JoinAsString(",")},发生轨迹状态{TrackStatusId}";
}
}

View File

@ -0,0 +1,14 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class WarningFactorDto
{
/// <summary>
/// 因素类型(1表示货物类型,2表示月份,3表示分区或区域,4指示货物是否中转,5表示起运港口,6表示销售产品)
/// </summary>
public int FactorType { get; set; }
/// <summary>
/// 因素值(直接传json数组)
/// </summary>
public List<object> FactorValue { get; set; } = new();
}

View File

@ -0,0 +1,47 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class WarningNotifyDto
{
/// <summary>
/// 起始轨迹状态id
/// </summary>
public int StartTrackStatusId { get; set; }
/// <summary>
/// 终止轨迹状态id
/// </summary>
public int EndTrackStatusId { get; set; }
/// <summary>
/// 起始轨迹状态
/// </summary>
public string StartTrackStatus { get; set; } = null!;
/// <summary>
/// 终止轨迹状态
/// </summary>
public string EndTrackStatus { get; set; } = null!;
/// <summary>
/// 通知人
/// </summary>
public List<NotifyUser> NotifyUsers { get; set; }
/// <summary>
/// 通知方式(1站内信,2飞书)
/// </summary>
public List<int> NotifyModes { get; set; }
}
public class NotifyUser
{
/// <summary>
/// 用户id
/// </summary>
public int UserId { get; set; }
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
}

View File

@ -0,0 +1,39 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class WarningNotifyCacheEntry
{
public WarningNotifyCacheEntry(int ruleId, int orderId, int counter)
{
RuleId = ruleId;
OrderId = orderId;
Counter = counter;
}
public WarningNotifyCacheEntry(string notifyValue)
{
var values = notifyValue.Split('_');
RuleId = int.Parse(values[0]);
OrderId = int.Parse(values[1]);
Counter = int.Parse(values[2]);
}
/// <summary>
/// 规则id
/// </summary>
public int RuleId { get; set; }
/// <summary>
/// 订单id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 预警次数(第几次)
/// </summary>
public int Counter { get; set; }
public override string ToString()
{
return $"{RuleId}_{OrderId}_{Counter}";
}
}

View File

@ -0,0 +1,52 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
public class WarningOrderDto
{
/// <summary>
/// 订单id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
public string? CargoType { get; set; }
public int Month { get; set; }
public bool? IsTransit { get; set; }
/// <summary>
/// 起运港
/// </summary>
public string? LeavePort { get; set; }
public string? ProductCode { get; set; }
/// <summary>
/// 目的城市
/// </summary>
public string ArrivalCity { get; set; } = null!;
/// <summary>
/// 目的国家
/// </summary>
public string ArrivalCountry { get; set; } = null!;
/// <summary>
/// 到达邮编
/// </summary>
public string? ArrivalPostCode { get; set; }
/// <summary>
/// 到达州省
/// </summary>
public string? ArrivalProvince { get; set; }
}

View File

@ -0,0 +1,27 @@
namespace SJZY.Track.Application.Contract.Dtos.Forewarning;
/// <summary>
/// 预警规则时效
/// </summary>
public class WarningTimeSpanDto
{
/// <summary>
/// 预警规则id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 时效
/// </summary>
public float TotalTimeSpan { get; set; }
/// <summary>
/// 提醒时效
/// </summary>
public float WarnTimeSpan { get; set; }
/// <summary>
/// 提醒次数
/// </summary>
public int WarnCount { get; set; }
}

View File

@ -0,0 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class BatchDeleteTrackByEsIdInput
{
/// <summary>
/// 轨迹内容es id,必填
/// </summary>
[MaxLength(500)]
public List<string> TrackContentEsIds { get; set; } = new();
}

View File

@ -1,12 +1,23 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class BatchDeleteTrackInput : OrderNosInfo public class BatchDeleteTrackInput : OrderNosInfo
{ {
/// <summary> /// <summary>
/// 轨迹code,必填 /// 轨迹标识符集合,必填
/// </summary> /// </summary>
[Required] [Required]
public List<string> TrackCodes { get; set; } = new(); [MaxLength(500)]
public List<TrackIdentifierDto> TrackIdentifiers { get; set; } = new();
/// <summary>
/// 重复的情况下,用什么字段比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 重复的情况下,比较值
/// </summary>
public object? CompareValue { get; set; }
} }

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -27,12 +27,122 @@ public class BatchUpsertTrackInput : OrderNosInfo
/// 轨迹发生时间 /// 轨迹发生时间
/// </summary> /// </summary>
[Required] [Required]
public DateTime? TrackTime { get; set; } public DateTime TrackTime { get; set; }
/// <summary>
/// 更改后的轨迹发生时间,无需更改保持为空
/// </summary>
public DateTime? NewTrackTime { get; set; }
/// <summary> /// <summary>
/// 轨迹发生时区 /// 轨迹发生时区
/// </summary> /// </summary>
// [Required]
// [Range(-12, 12)]
public float TrackTimeZone { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary>
/// 是否对外(可选的)
/// 如果未填则按照【轨迹内容】中的【是否可见】做为默认值
/// </summary>
public bool? IsExternal { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// 批量新增时使用指定轨迹来源,更新时无需指定
/// </summary>
[Required] [Required]
public int Source { get; set; }
/// <summary>
/// 轨迹备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹内容,若为空则取轨迹内容表中该轨迹Code对应的轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文,若为空则取轨迹内容表中该轨迹Code对应的轨迹英文内容
/// </summary>
public string? EnStatus { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
///轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
[Range(-12, 12)] [Range(-12, 12)]
public float? TrackTimeZone { get; set; } public float? DestinationTimeZone { get; set; }
/// <summary>
/// 重复的情况下,用什么比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送
/// </summary>
public bool ForcedPush { get; set; }
/// <summary>
/// 指定是否推送
/// </summary>
public bool IsToMq { get; set; }
} }

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -9,8 +9,22 @@ public class DeleteOrderInput : OrderNoInfo
public class DeleteTrackInput : OrderNoInfo public class DeleteTrackInput : OrderNoInfo
{ {
/// <summary> /// <summary>
/// 轨迹code /// 轨迹标识符集合,为支持esid删除,所以非必填
/// </summary> /// </summary>
[Required] public List<TrackIdentifierDto>? TrackIdentifiers { get; set; } = new();
public List<string> TrackCodes { get; set; } = new();
/// <summary>
/// 轨迹ESId集合,非必填,如果有优先级最高
/// </summary>
public List<string>? EsIds { get; set; }
/// <summary>
/// 重复的情况下,用什么字段比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 重复的情况下,比较值
/// </summary>
public object? CompareValue { get; set; }
} }

View File

@ -0,0 +1,19 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class FileItemDto
{
/// <summary>
/// 文件osskey
/// </summary>
public string OssKey { get; set; }
/// <summary>
/// 文件名称
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 文件下载地址
/// </summary>
public string? DownloadUrl { get; set; }
}

View File

@ -0,0 +1,19 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetDetailTimelineInput
{
/// <summary>
/// 订单编号
/// </summary>
public string OrderNumber { get; set; }
/// <summary>
/// 订单所属子系统id
/// </summary>
public int SystemId { get; set; }
/// <summary>
/// 当前用户登陆子系统id
/// </summary>
public int CurrenUserSystemId { get; set; }
}

View File

@ -0,0 +1,92 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetDetailTimelineOutput
{
/// <summary>
/// 轨迹编码
/// </summary>
public string TrackCode { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹英文内容
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public long TrackTime { get; set; }
/// <summary>
/// 轨迹时间前缀
/// </summary>
public string TrackTimePrefix { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public string TrackTimeZone { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 文件 osskey 集合
/// </summary>
public List<TrackFileItem> Files { get; set; }
/// <summary>
/// 是否高亮
/// </summary>
public bool IsHighlight { get; set; }
/// <summary>
/// 是否显示悬停效果
/// </summary>
public bool IsShowHover { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
}
public class TrackFileItem
{
/// <summary>
/// 文件osskey
/// </summary>
public string OssKey { get; set; }
/// <summary>
/// 文件名称
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 文件url
/// </summary>
public string Url { get; set; }
}

View File

@ -1,25 +1,12 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetOrderDetailsInput public class TrackOrderDetailDto
{ {
/// <summary>
/// 轨迹订单id
/// </summary>
public int OrderId { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary>
/// 轨迹模板Id
/// </summary>
public List<int>? TrackTemplateIds { get; set; } = new List<int>();
}
public class TrackOrderDetailDto
{
/// <summary> /// <summary>
/// Id es主键 /// Id es主键
/// </summary> /// </summary>
@ -43,7 +30,7 @@ public class TrackOrderDetailDto
/// <summary> /// <summary>
/// 轨迹代码 /// 轨迹代码
/// </summary> /// </summary>
public string? Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// 轨迹内容 /// 轨迹内容
@ -56,9 +43,9 @@ public class TrackOrderDetailDto
public string? EnContent { get; set; } public string? EnContent { get; set; }
/// <summary> /// <summary>
/// 服务商 /// 服务商代码
/// </summary> /// </summary>
public string? ServiceProviderName { get; set; } public string? ServiceProviderCode { get; set; }
/// <summary> /// <summary>
/// 原轨迹内容 /// 原轨迹内容
@ -86,9 +73,10 @@ public class TrackOrderDetailDto
public float TrackTimeZoneValue { get; set; } public float TrackTimeZoneValue { get; set; }
/// <summary> /// <summary>
/// 是否可删 /// 客户是否可见
/// </summary> /// </summary>
public bool IsCanDelete { get; set; } [Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary> /// <summary>
/// 是否对外 /// 是否对外
@ -104,4 +92,49 @@ public class TrackOrderDetailDto
/// 创建人 /// 创建人
/// </summary> /// </summary>
public string? CreateUser { get; set; } public string? CreateUser { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetPageTrackOrderInput : PageInfoInput public class GetPageTrackOrderInput : PageInfoInput
{ {
@ -73,16 +73,6 @@ public class TrackOrderDto
/// </summary> /// </summary>
public string? OrderNumber { get; set; } public string? OrderNumber { get; set; }
/// <summary>
/// 轨迹模版
/// </summary>
public string? TrackTemplateNames { get; set; }
/// <summary>
/// 轨迹模板Id数组
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
/// <summary> /// <summary>
/// 客户简称 /// 客户简称
/// </summary> /// </summary>
@ -162,4 +152,19 @@ public class TrackOrderDto
///// 问题描述名称 ///// 问题描述名称
///// </summary> ///// </summary>
//public string? ProblemDescriptionName { get; set; } //public string? ProblemDescriptionName { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 第三方单号,服务商-轨迹0000000、轨迹服务商-0000000
/// </summary>
public string? ThirdPartyOrderNumber { get; set; }
} }

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetPageTrackTemplateListInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int? CustomerId { get; set; }
/// <summary>
/// 模版分类
/// </summary>
public int? TemplateType { get; set; }
/// <summary>
/// 模板code
/// </summary>
public string? TemplateCode { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? KeyWord { get; set; }
}

View File

@ -1,26 +1,33 @@
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
/// <summary>
/// 支持模板,传入时区补正,按轨迹发生时间升序降序
/// </summary>
public class GetTrackInput : OrderNosInfo public class GetTrackInput : OrderNosInfo
{ {
private float? _timeZone;
/// <summary> /// <summary>
/// 时区 +8 +8.25 -8.5 -9 /// 时区 +8 +8.25 -8.5 -9
/// 不传默认+8 /// 不传默认+8
/// </summary> /// </summary>
private float? _timeZone; public float? TimeZone { get => _timeZone ?? 8; set => _timeZone = value; }
public float? TimeZone
{
get => _timeZone ?? 8;
set => _timeZone = value;
}
/// <summary> /// <summary>
/// 排序方式 /// 排序方式,默认按轨迹发生时间降序
/// </summary> /// </summary>
[Required] public SortMethod? SortMethod { get; set; }
public SortMethod SortMethod { get; set; } }
/// <summary>
/// 不支持模板,无时区补正,按轨迹发生时间升序降序
/// </summary>
public class GetTrackInputV2 : OrderNosInfo
{
/// <summary>
/// 排序方式,默认按轨迹发生时间降序
/// </summary>
public SortMethod? SortMethod { get; set; }
} }
public enum SortMethod public enum SortMethod
@ -28,15 +35,20 @@ public enum SortMethod
/// <summary> /// <summary>
/// 按轨迹发生时间排序 /// 按轨迹发生时间排序
/// </summary> /// </summary>
ByTrackTime, ByTrackTime = 0,
/// <summary> /// <summary>
/// 按轨迹发生时间降序 /// 按轨迹发生时间降序
/// </summary> /// </summary>
ByTrackTimeDesc, ByTrackTimeDesc = 1,
/// <summary> /// <summary>
/// 按订单模板排序 /// 模板排序+轨迹发生时间
/// </summary> /// </summary>
ByTemplate ByTemplateAndTrackTime = 2,
/// <summary>
/// 模板排序+轨迹发生时间
/// </summary>
ByTemplateAndTrackTimeDesc = 3
} }

View File

@ -7,16 +7,111 @@ public class GetTrackOutput
/// </summary> /// </summary>
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
/// <summary>
/// 轨迹明细列表
/// </summary>
public List<TrackDetail> TrackDetails { get; set; } = new(); public List<TrackDetail> TrackDetails { get; set; } = new();
} }
public class TrackDetail public class TrackDetail
{ {
public string EsId { get; set; } = null!;
public string Code { get; set; } = null!; public string Code { get; set; } = null!;
public string Status { get; set; } = null!; public string Status { get; set; } = null!;
public string? Content { get; set; } public string? Content { get; set; }
public string? EnContent { get; set; }
public string? OriginContent { get; set; } public string? OriginContent { get; set; }
public string Location { get; set; } = null!; public string Location { get; set; } = null!;
/// <summary>
/// 发生时间
/// </summary>
public DateTime Time { get; set; } public DateTime Time { get; set; }
public float TimeZone { get; set; }
/// <summary>
/// 轨迹时区
/// </summary>
public float? TimeZone { get; set; }
/// <summary>
/// 是否对外
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsDisplay { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
/// 轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
} }

View File

@ -0,0 +1,24 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetTrackTemplateListInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int? CustomerId { get; set; }
/// <summary>
/// 模版分类
/// </summary>
public int? TemplateType { get; set; }
/// <summary>
/// 模板code
/// </summary>
public string? TemplateCode { get; set; }
}

View File

@ -1,9 +1,16 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class LinkOrderInput public class LinkOrderInput
{ {
/// <summary>
/// 子系统id
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// false解绑,true关联 /// false解绑,true关联
/// </summary> /// </summary>
@ -22,6 +29,13 @@ public class LinkOrderInput
[Required] [Required]
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
/// <summary>
/// 关联子系统id
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int LinkSubSystemId { get; set; }
/// <summary> /// <summary>
/// 关联单类型 /// 关联单类型
/// </summary> /// </summary>

View File

@ -1,9 +1,19 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
/// <summary>
/// 子系统id+订单类型+订单号 确定唯一订单
/// </summary>
public class OrderNoInfo public class OrderNoInfo
{ {
/// <summary>
/// 子系统id
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 订单类型,必填 /// 订单类型,必填
/// </summary> /// </summary>
@ -21,6 +31,13 @@ public class OrderNoInfo
public class OrderNosInfo public class OrderNosInfo
{ {
/// <summary>
/// 子系统id
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 订单类型 /// 订单类型
/// </summary> /// </summary>
@ -32,5 +49,6 @@ public class OrderNosInfo
/// 订单号 /// 订单号
/// </summary> /// </summary>
[Required] [Required]
[MaxLength(500)]
public List<string> OrderNos { get; set; } = new(); public List<string> OrderNos { get; set; } = new();
} }

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -9,4 +9,14 @@ public class PushTrackInput : OrderNosInfo
/// </summary> /// </summary>
[Required] [Required]
public string TrackCode { get; set; } = null!; public string TrackCode { get; set; } = null!;
/// <summary>
/// 重复的情况下,用什么字段比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 重复的情况下,比较值
/// </summary>
public object? CompareValue { get; set; }
} }

View File

@ -1,60 +1,53 @@
using System; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices /// <summary>
/// 查询轨迹推送映射关系入参
/// </summary>
public class QueryTrackPullMappingsInput
{ {
/// <summary> /// <summary>
/// 查询轨迹推送映射关系入参 /// 子系统id
/// </summary> /// </summary>
public class QueryTrackPullMappingsInput public int SubsystemsId { get; set; }
{
/// <summary>
/// 子系统id
/// </summary>
public int SubsystemsId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
}
/// <summary> /// <summary>
/// 查询轨迹推送映射关系返参项 /// 客户id
/// </summary> /// </summary>
public class QueryTrackPullMappingsInfo public int CustomerId { get; set; }
{ }
/// <summary>
/// 轨迹代码 /// <summary>
/// </summary> /// 查询轨迹推送映射关系返参项
public string? Code { get; set; } /// </summary>
public class QueryTrackPullMappingsInfo
/// <summary> {
/// 订单类型 /// <summary>
/// </summary> /// 轨迹代码
public int OrderType { get; set; } /// </summary>
public string? Code { get; set; }
/// <summary>
/// 服务商轨迹代码 /// <summary>
/// </summary> /// 订单类型
public string? ServiceCode { get; set; } /// </summary>
public int OrderType { get; set; }
/// <summary>
/// 服务商轨迹状态 /// <summary>
/// </summary> /// 服务商轨迹代码
public string? Status { get; set; } /// </summary>
public string? ServiceCode { get; set; }
/// <summary>
/// 服务商轨迹内容 /// <summary>
/// </summary> /// 服务商轨迹状态
public string? Content { get; set; } /// </summary>
public string? Status { get; set; }
/// <summary>
/// 服务商轨迹内容英文 /// <summary>
/// </summary> /// 服务商轨迹内容
public string? ContentEn { get; set; } /// </summary>
} public string? Content { get; set; }
/// <summary>
/// 服务商轨迹内容英文
/// </summary>
public string? ContentEn { get; set; }
} }

View File

@ -1,7 +1,12 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class RefreshTrackInput public class RefreshTrackInput
{ {
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 订单号 /// 订单号
/// </summary> /// </summary>

View File

@ -0,0 +1,21 @@
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
/// <summary>
/// 轨迹标识符,用于唯一标识一个轨迹
/// </summary>
public sealed class TrackIdentifierDto
{
/// <summary>
/// 轨迹code
/// </summary>
[Required]
public string TrackCode { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
[Required]
public DateTime TrackTime { get; set; }
}

View File

@ -0,0 +1,52 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class TrackTemplateOutput
{
/// <summary>
/// 模版名称
/// </summary>
public string TemplateName { get; set; }
/// <summary>
/// 模版code
/// </summary>
public string TemplateCode { get; set; }
/// <summary>
/// 模版内容
/// </summary>
public List<TemplateContentDto> TemplateContents { get; set; }
}
public class TemplateContentDto
{
/// <summary>
/// 轨迹code
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容中文
/// </summary>
public string ContentCn { get; set; }
/// <summary>
/// 轨迹内容中文
/// </summary>
public string ContentEn { get; set; }
/// <summary>
/// 轨迹状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 轨迹节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 排序键
/// </summary>
public int Sort { get; set; }
}

View File

@ -43,12 +43,79 @@ public class UpdateOrderInput : OrderNoInfo
public string LeaveCity { get; set; } = null!; public string LeaveCity { get; set; } = null!;
/// <summary> /// <summary>
/// 订单模板(传全量) /// 货物类型
/// </summary> /// </summary>
public List<OrderTemplateInfo> Templates { get; set; } = new(); public string? CargoType { get; set; }
/// <summary>
/// 是否转运
/// </summary>
public bool? IsTransit { get; set; }
/// <summary>
/// 产品编码
/// </summary>
public string? ProductCode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 拉取配置信息
/// </summary>
public List<PullConfigInfo>? PullConfigInfos { get; set; }
/// <summary> /// <summary>
/// 订单航班信息 /// 订单航班信息
/// </summary> /// </summary>
public List<OrderFlightInfo> FlightInfos { get; set; } = new(); public List<OrderFlightInfo> FlightInfos { get; set; } = new();
/// <summary>
/// 模板code
/// </summary>
public List<string>? TemplateCodes { get; set; }
}
public class PullConfigInfo
{
/// <summary>
/// 服务商code
/// </summary>
[Required]
public string ServiceCode { get; set; }
/// <summary>
/// api服务商订单号(第三方单号)
/// </summary>
public string? OrderNo { get; set; }
/// <summary>
/// 开始轨迹code
/// </summary>
public string? StartCode { get; set; }
/// <summary>
/// 结束轨迹code
/// </summary>
public string? EndCode { get; set; }
/// <summary>
/// 静默多久后拉取(小时)
/// </summary>
[Range(0, 24 * 7)]
public int SilenceTime { get; set; }
/// <summary>
/// 结束多久后停止拉取(小时)
/// </summary>
[Range(0, 24 * 7)]
public int StopTime { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class UpdateOrderStatusInput public class UpdateOrderStatusInput
{ {

View File

@ -0,0 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class UpdateOrderPullConfigsInput : OrderNosInfo
{
public PullConfigInfo Config { get; set; }
}

View File

@ -7,23 +7,12 @@ public class UpsertOrderInput : UpdateOrderInput
/// <summary> /// <summary>
/// 客户id /// 客户id
/// </summary> /// </summary>
[Required]
public int CustomId { get; set; } public int CustomId { get; set; }
}
public class OrderTemplateInfo
{
/// <summary>
/// 模板id
/// </summary>
[Required]
[Range(1, Int32.MaxValue)]
public int TemplateId { get; set; }
/// <summary> /// <summary>
/// 服务商id /// 当前操作人
/// </summary> /// </summary>
public int? ServiceProviderId { get; set; } public int OptionUserId { get; set; }
} }
public class OrderFlightInfo public class OrderFlightInfo

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices; namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -9,6 +9,11 @@ public class UpsertTrackInput : OrderNoInfo
/// </summary> /// </summary>
public bool IsAdd { get; set; } public bool IsAdd { get; set; }
/// <summary>
/// 轨迹唯一标识(可选)
/// </summary>
public string? EsId { get; set; }
/// <summary> /// <summary>
/// 轨迹内容代码 /// 轨迹内容代码
/// </summary> /// </summary>
@ -27,12 +32,126 @@ public class UpsertTrackInput : OrderNoInfo
/// 轨迹发生时间 /// 轨迹发生时间
/// </summary> /// </summary>
[Required] [Required]
public DateTime? TrackTime { get; set; } public DateTime TrackTime { get; set; }
/// <summary>
/// 更改后的轨迹发生时间,无需更改保持为空
/// </summary>
public DateTime? NewTrackTime { get; set; }
/// <summary> /// <summary>
/// 轨迹发生时区 /// 轨迹发生时区
/// </summary> /// </summary>
[Required] // [Required]
[Range(-12, 12)] // [Range(-12, 12)]
public float? TrackTimeZone { get; set; } public float? TrackTimeZone { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary>
/// 是否对外(可选的)
/// 如果未填则按照【轨迹内容】中的【是否可见】做为默认值
/// </summary>
public bool? IsExternal { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
[Required]
public int Source { get; set; }
/// <summary>
/// 轨迹备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹内容,若为空则取轨迹内容表中该轨迹Code对应的轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文,若为空则取轨迹内容表中该轨迹Code对应的轨迹英文内容
/// </summary>
public string? EnStatus { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
/// 轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
[Range(-12, 12)]
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 当前操作人
/// </summary>
public int OptionUserId { get; set; }
/// <summary>
/// 重复的情况下,用什么比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送
/// </summary>
public bool ForcedPush { get; set; }
/// <summary>
/// 指定是否推送
/// </summary>
public bool IsToMq { get; set; }
} }

View File

@ -1,98 +1,137 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class EditTrackContentInput
{ {
public class EditTrackContentInput /// <summary>
{ /// Id
/// <summary> /// </summary>
/// Id public int Id { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 操作类型 /// 操作类型
/// </summary> /// </summary>
public OptionType Options { get; set; } public OptionType Options { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 所属轨迹状态id /// 所属轨迹状态id
/// </summary> /// </summary>
public int TrackStatusId { get; set; } public int? TrackStatusId { get; set; }
/// <summary> /// <summary>
/// 轨迹内容代码 /// 轨迹内容代码
/// </summary> /// </summary>
public string? Code { get; set; } public string? Code { get; set; }
/// <summary> /// <summary>
/// 轨迹内容 /// 轨迹内容
/// </summary> /// </summary>
public string? Content { get; set; } public string? Content { get; set; }
/// <summary> /// <summary>
/// 轨迹内容英文 /// 轨迹内容英文
/// </summary> /// </summary>
public string? EnContent { get; set; } public string? EnContent { get; set; }
/// <summary> /// <summary>
/// 轨迹标记id /// 轨迹标记id
/// </summary> /// </summary>
public int TrackFlagId { get; set; } public int[]? TrackFlagIds { get; set; }
}
public class GetTrackContentDetailDto /// <summary>
{ /// 是否对外
/// <summary> /// </summary>
/// Id public bool IsExternal { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 是否可重复
/// </summary> /// </summary>
public int SubSystemId { get; set; } public bool IsRepeatable { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 是否允许手动修改
/// </summary> /// </summary>
public string SubSystem { get; set; } public bool IsAllowManuallyUpdate { get; set; }
/// <summary> /// <summary>
/// 所属轨迹状态id /// 是否允许手动创建
/// </summary> /// </summary>
public int TrackStatusId { get; set; } public bool IsAllowManuallyCreate { get; set; }
}
/// <summary>
/// 所属轨迹状态 public class GetTrackContentDetailDto
/// </summary> {
public string TrackStatus { get; set; } /// <summary>
/// Id
/// <summary> /// </summary>
/// 轨迹内容代码 public int Id { get; set; }
/// </summary>
public string Code { get; set; } /// <summary>
/// 子系统id
/// <summary> /// </summary>
/// 轨迹内容 public int SubSystemId { get; set; }
/// </summary>
public string Content { get; set; } /// <summary>
/// 子系统
/// <summary> /// </summary>
/// 轨迹内容英文 public string SubSystem { get; set; }
/// </summary>
public string EnContent { get; set; } /// <summary>
/// 所属轨迹状态id
/// <summary> /// </summary>
/// 轨迹标记id public int TrackStatusId { get; set; }
/// </summary>
public int? TrackFlagId { get; set; } /// <summary>
/// 所属轨迹状态
/// <summary> /// </summary>
/// 轨迹标记 public string TrackStatus { get; set; }
/// </summary>
public string TrackFlag { get; set; } /// <summary>
} /// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 轨迹标记id
/// </summary>
public string? TrackFlagId { get; set; }
/// <summary>
/// 轨迹标记ids
/// </summary>
public List<int>? TrackFlagIds { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
/// <summary>
/// 是否可重复
/// </summary>
public bool IsRepeatable { get; set; }
/// <summary>
/// 是否允许手动修改
/// </summary>
public bool IsAllowManuallyUpdate { get; set; }
/// <summary>
/// 是否允许手动创建
/// </summary>
public bool IsAllowManuallyCreate { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents; namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class EditTrackContentMapInput public class EditTrackContentMapInput
{ {

View File

@ -0,0 +1,27 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetAvailableContentInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SystemId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string? OrderNo { get; set; }
/// <summary>
/// 操作类型 1=创建 2=修改 3=删除 4=推送
/// </summary>
public TrackOptionType TrackOptionType { get; set; }
}
public enum TrackOptionType
{
创建 = 1,
修改 = 2,
删除 = 3,
推送 = 4,
}

View File

@ -0,0 +1,104 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetAvailableContentOutput
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
/// <summary>
/// 轨迹来源
/// </summary>
public int? Source { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string? TrackPlace { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime? TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float? TrackTimeZone { get; set; }
/// <summary>
/// 时区的值
/// </summary>
public float? TrackTimeZoneValue { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 附件文件集合
/// </summary>
public List<FileItemDto>? FileItems { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
public bool IsVisibility { get; set; }
}

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetContentDetailInput
{
/// <summary>
/// 子系统编号
/// </summary>
public int SystemId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNumber { get; set; }
/// <summary>
/// 订单类型
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 轨迹code
/// </summary>
public string TrackCode { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
}

View File

@ -0,0 +1,192 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetContentDetailOutput
{
/// <summary>
/// 子系统
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 订单Id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 索引名称
/// </summary>
public string IndexName { get; set; } = null!;
/// <summary>
/// 订单类型(主数据枚举TrackOrderType)
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态code
/// </summary>
public string TrackStatusCode { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string TrackContent { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string TrackEnContent { get; set; }
/// <summary>
/// 服务商code
/// </summary>
public string ServiceProviderCode { get; set; }
/// <summary>
/// 原轨迹内容
/// </summary>
public string? OriginTrackContent { get; set; }
/// <summary>
/// 原轨迹报文hash(刷新轨迹重复性校验使用)
/// </summary>
public string OriginTrackDataHash { get; set; } = null!;
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 转化后的轨迹发生时间
/// </summary>
public DateTime ZeroTrackTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
public bool IsVisibility { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItem>? Files { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
///轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计签收时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 签收地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
}
public class FileItem
{
/// <summary>
/// 文件osskey
/// </summary>
public string OssKey { get; set; }
/// <summary>
/// 文件名称
/// </summary>
public string FileName { get; set; }
/// <summary>
/// 路径
/// </summary>
public string Url { get; set; }
}

View File

@ -1,88 +1,107 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetPageTrackContentInput : PageInfoInput
{ {
public class GetPageTrackContentInput : PageInfoInput /// <summary>
{ /// 子系统id
/// <summary> /// </summary>
/// 子系统id public int SubSystemId { get; set; }
/// </summary>
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 关键字 /// 关键字
/// </summary> /// </summary>
public string? Keywords { get; set; } public string? Keywords { get; set; }
/// <summary> /// <summary>
/// 轨迹状态id /// 轨迹状态id
/// </summary> /// </summary>
public int TrackStatusId { get; set; } public int TrackStatusId { get; set; }
/// <summary> /// <summary>
/// 选中的轨迹内容id /// 选中的轨迹内容id
/// </summary> /// </summary>
public List<int>? SelectIds { get; set; } public List<int>? SelectIds { get; set; }
} }
public class GetTrackContentListDto public class GetTrackContentListDto
{ {
/// <summary> /// <summary>
/// Id /// Id
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 子系统
/// </summary> /// </summary>
public string SubSystem { get; set; } public string SubSystem { get; set; }
/// <summary> /// <summary>
/// 轨迹内容代码 /// 轨迹内容代码
/// </summary> /// </summary>
public string Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// 轨迹内容 /// 轨迹内容
/// </summary> /// </summary>
public string Content { get; set; } public string Content { get; set; }
/// <summary> /// <summary>
/// 轨迹内容英文 /// 轨迹内容英文
/// </summary> /// </summary>
public string EnContent { get; set; } public string EnContent { get; set; }
/// <summary> /// <summary>
/// 所属状态 /// 所属状态
/// </summary> /// </summary>
public string TrackStatus { get; set; } public string TrackStatus { get; set; }
/// <summary> /// <summary>
/// 所属节点 /// 所属节点
/// </summary> /// </summary>
public string Node { get; set; } public string Node { get; set; }
/// <summary> /// <summary>
/// 轨迹标记 /// 轨迹标记
/// </summary> /// </summary>
public string TrackFlag { get; set; } public string TrackFlag { get; set; }
/// <summary> /// <summary>
/// 创建时间 /// 是否对外
/// </summary> /// </summary>
public DateTime? CreateTime { get; set; } public bool IsExternal { get; set; }
/// <summary> /// <summary>
/// 创建人 /// 创建时间
/// </summary> /// </summary>
public string CreateUser { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 修改时间 /// 创建人
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public string CreateUser { get; set; }
/// <summary> /// <summary>
/// 修改人 /// 修改时间
/// </summary> /// </summary>
public string UpdateUser { get; set; } public DateTime? UpdateTime { get; set; }
}
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
/// <summary>
/// 是否可重复
/// </summary>
public bool IsRepeatable { get; set; }
/// <summary>
/// 是否允许手动修改
/// </summary>
public bool IsAllowManuallyUpdate { get; set; }
/// <summary>
/// 是否允许手动创建
/// </summary>
public bool IsAllowManuallyCreate { get; set; }
} }

View File

@ -0,0 +1,14 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetTrackContentByCodeInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SystemId { get; set; }
/// <summary>
/// 轨迹内容code
/// </summary>
public string Code { get; set; }
}

View File

@ -0,0 +1,19 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class GetTrackContentByCodeOutput
{
/// <summary>
/// 中文内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 英文内容
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
}

View File

@ -1,68 +1,67 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackFlags namespace SJZY.Track.Application.Contract.Dtos.TrackFlags;
public class EditTrackFlagInput
{ {
public class EditTrackFlagInput /// <summary>
{ /// 操作类型
/// <summary> /// </summary>
/// 操作类型 public OptionType Options { get; set; }
/// </summary>
public OptionType Options { get; set; }
/// <summary> /// <summary>
/// Id /// Id
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 标记 /// 标记
/// </summary> /// </summary>
public string? Flag { get; set; } public string? Flag { get; set; }
/// <summary> /// <summary>
/// 代码 /// 代码
/// </summary> /// </summary>
public string? Code { get; set; } public string? Code { get; set; }
///// <summary> /// <summary>
///// 是否完结 /// 是否广播
///// </summary> /// </summary>
//public bool IsFinish { get; set; } public bool IsToMq { get; set; }
} }
public class GetTrackFlagDetailDto public class GetTrackFlagDetailDto
{ {
/// <summary> /// <summary>
/// Id /// Id
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 子系统
/// </summary> /// </summary>
public string SubSystem { get; set; } public string SubSystem { get; set; }
/// <summary> /// <summary>
/// 代码 /// 代码
/// </summary> /// </summary>
public string Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// /// 标记
/// </summary> /// </summary>
public string Flag { get; set; } public string Flag { get; set; }
///// <summary> /// <summary>
///// 是否完结 /// 是否广播
///// </summary> /// </summary>
//public bool IsFinish { get; set; } public bool IsToMq { get; set; }
}
} }

View File

@ -1,68 +1,67 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackFlags namespace SJZY.Track.Application.Contract.Dtos.TrackFlags;
public class GetTrackFlagListDto
{ {
public class GetTrackFlagListDto /// <summary>
{ /// Id
/// <summary> /// </summary>
/// Id public int Id { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 子系统
/// </summary> /// </summary>
public string SubSystem { get; set; } public string SubSystem { get; set; }
/// <summary> /// <summary>
/// 代码 /// 代码
/// </summary> /// </summary>
public string Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// 标记 /// 标记
/// </summary> /// </summary>
public string Flag { get; set; } public string Flag { get; set; }
///// <summary> /// <summary>
///// 是否完结 /// 是否广播
///// </summary> /// </summary>
//public bool IsFinish { get; set; } public bool IsToMq { get; set; }
/// <summary> /// <summary>
/// 创建时间 /// 创建时间
/// </summary> /// </summary>
public DateTime? CreateTime { get; set; } public DateTime? CreateTime { get; set; }
/// <summary> /// <summary>
/// 创建人 /// 创建人
/// </summary> /// </summary>
public string CreateUser { get; set; } public string CreateUser { get; set; }
/// <summary> /// <summary>
/// 修改时间 /// 修改时间
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public DateTime? UpdateTime { get; set; }
/// <summary> /// <summary>
/// 修改人 /// 修改人
/// </summary> /// </summary>
public string UpdateUser { get; set; } public string UpdateUser { get; set; }
} }
public class GetPageTrackFlagInput : PageInfoInput public class GetPageTrackFlagInput : PageInfoInput
{ {
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 选中的轨迹标记id /// 选中的轨迹标记id
/// </summary> /// </summary>
public List<int>? SelectIds { get; set; } public List<int>? SelectIds { get; set; }
/// <summary> /// <summary>
/// 关键字 /// 关键字
/// </summary> /// </summary>
public string? Keywords { get; set; } public string? Keywords { get; set; }
}
} }

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackNode;
public class EditTrackNodeInput
{
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 轨迹节点id,创建不用填
/// </summary>
public long Id { get; set; }
/// <summary>
/// 系统id
/// </summary>
public int? SubSystemId { get; set; }
/// <summary>
/// 节点名称
/// </summary>
public string? NodeName { get; set; }
/// <summary>
/// 节点英文名称
/// </summary>
public string? NodeEnName { get; set; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder; namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
public class GetTrackCounterOutput public class GetTrackCounterOutput
{ {

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder; namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
public class TrackPushRecordItem public class TrackPushRecordItem
{ {

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder; namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
public class TrackPushRecordOutput public class TrackPushRecordOutput
{ {

View File

@ -1,33 +1,13 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class EditTrackPullConfigInput public class EditTrackPullConfigInput
{ {
public int? Id { get; set; }
/// <summary> /// <summary>
/// 操作类型 /// 操作类型
/// </summary> /// </summary>
public OptionTypeNoNull Options { get; set; } public OptionTypeNoNull Options { get; set; }
/// <summary> public int? Id { get; set; }
/// 拉取轨迹订单号
/// </summary>
public string? OrderNoName { get; set; }
/// <summary>
/// 返参解析对象
/// </summary>
public int? ParseMethod { get; set; }
/// <summary>
/// 定时任务(分钟)
/// </summary>
public int? PullInterval { get; set; }
/// <summary>
/// 服务商id
/// </summary>
public int? ServiceProviderId { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
@ -35,42 +15,62 @@ public class EditTrackPullConfigInput
public int? SubSystemId { get; set; } public int? SubSystemId { get; set; }
/// <summary> /// <summary>
/// 拉取轨迹时区 /// 服务商id
/// </summary> /// </summary>
public string? TrackTimeZoneName { get; set; } public int? ServiceProviderId { get; set; }
/// <summary> /// <summary>
/// 拉取轨迹内容代码 /// 服务商拉取频率(分钟)
/// </summary> /// </summary>
public string? TrackContentCodeName { get; set; } public int PullInterval { get; set; }
/// <summary> /// <summary>
/// 拉取轨迹内容 /// 解析方式,1取接口通返参映射后的,2取服务商原返参
/// </summary> /// </summary>
public string? TrackContentName { get; set; } public int ParseMethod { get; set; }
/// <summary>
/// 拉取轨迹发生地
/// </summary>
public string? TrackPlaceName { get; set; }
/// <summary>
/// 拉取轨迹状态
/// </summary>
public string? TrackStatusName { get; set; }
/// <summary>
/// 拉取轨迹发生时间
/// </summary>
public string? TrackTimeName { get; set; }
/// <summary> /// <summary>
/// 订单路径 /// 订单路径
/// </summary> /// </summary>
public string? OrderPath { get; set; } public string? OrderPath { get; set; }
/// <summary>
/// 单号参数名
/// </summary>
public string? OrderNoName { get; set; }
/// <summary> /// <summary>
/// 轨迹明细路径 /// 轨迹明细路径
/// </summary> /// </summary>
public string? TrackDetailsPath { get; set; } public string? TrackDetailsPath { get; set; }
/// <summary>
/// 轨迹状态参数名
/// </summary>
public string? TrackStatusName { get; set; }
/// <summary>
/// 轨迹代码参数名
/// </summary>
public string? TrackContentCodeName { get; set; }
/// <summary>
/// 轨迹内容参数名
/// </summary>
public string? TrackContentName { get; set; }
/// <summary>
/// 轨迹发生地参数名
/// </summary>
public string? TrackPlaceName { get; set; }
/// <summary>
/// 轨迹发生时间参数名
/// </summary>
public string? TrackTimeName { get; set; }
/// <summary>
/// 轨迹时区参数名
/// </summary>
public string? TrackTimeZoneName { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class EditTrackPullContentInput public class EditTrackPullContentInput
{ {
@ -9,21 +9,11 @@ public class EditTrackPullContentInput
public int? Id { get; set; } public int? Id { get; set; }
/// <summary>
/// 服务商轨迹代码参数值
/// </summary>
public string? TrackContentCodeValue { get; set; }
/// <summary> /// <summary>
/// 轨迹内容id /// 轨迹内容id
/// </summary> /// </summary>
public int? TrackContentId { get; set; } public int? TrackContentId { get; set; }
/// <summary>
/// 服务商轨迹内容参数值
/// </summary>
public string? TrackContentValue { get; set; }
/// <summary> /// <summary>
/// 拉取轨迹关键字(正向) /// 拉取轨迹关键字(正向)
/// </summary> /// </summary>
@ -47,15 +37,10 @@ public class EditTrackPullContentInput
/// <summary> /// <summary>
/// 服务商轨迹状态参数值 /// 服务商轨迹状态参数值
/// </summary> /// </summary>
public string? TrackStatusValue { get; set; } public List<string>? TrackStatusValues { get; set; }
/// <summary> /// <summary>
/// 轨迹时区GMT /// 兜底轨迹时区发生地
/// </summary> /// </summary>
public double? TrackTimeZone { get; set; } public int? TrackTimePlaceValue { get; set; }
/// <summary>
/// 是否完结
/// </summary>
public bool IsCompleted { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackPullContentConfigDto public class TrackPullContentConfigDto
{ {
@ -10,27 +10,17 @@ public class TrackPullContentConfigDto
/// <summary> /// <summary>
/// 服务商轨迹状态参数值 /// 服务商轨迹状态参数值
/// </summary> /// </summary>
public string? TrackStatusValue { get; set; } public List<string> TrackStatusValues { get; set; } = new();
/// <summary> /// <summary>
/// 服务商轨迹代码参数值 /// 轨迹关键词(正向)
/// </summary> /// </summary>
public string? TrackContentCodeValue { get; set; } public List<string> TrackKeywords { get; set; } = new();
/// <summary> /// <summary>
/// 服务商轨迹内容参数值 /// 轨迹关键词(反向)
/// </summary> /// </summary>
public string? TrackContentValue { get; set; } public List<string> TrackKeywordReverses { get; set; } = new();
/// <summary>
/// 轨迹关键词(正向),多个逗分隔
/// </summary>
public string? TrackKeyword { get; set; }
/// <summary>
/// 轨迹关键词(反向),多个逗分隔
/// </summary>
public string? TrackKeywordReverse { get; set; }
/// <summary> /// <summary>
/// 轨迹发生地参数值(主数据枚举) /// 轨迹发生地参数值(主数据枚举)
@ -38,12 +28,7 @@ public class TrackPullContentConfigDto
public int? TrackPlaceValue { get; set; } public int? TrackPlaceValue { get; set; }
/// <summary> /// <summary>
/// 轨迹时区GMT值 /// 轨迹时区发生地参数值
/// </summary> /// </summary>
public float? TrackTimeZoneValue { get; set; } public int? TrackZonePlaceValue { get; set; }
/// <summary>
/// 订单是否完成(由轨迹刷新配置决定)
/// </summary>
public bool IsCompleted { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackPullParamConfigDto public class TrackPullParamConfigDto
{ {
@ -46,4 +46,9 @@ public class TrackPullParamConfigDto
/// 轨迹明细数组路径 /// 轨迹明细数组路径
/// </summary> /// </summary>
public string TrackDetailsPath { get; set; } = null!; public string TrackDetailsPath { get; set; } = null!;
/// <summary>
/// 轨迹内容代码
/// </summary>
public string? TrackContentCode { get; set; }
} }

View File

@ -1,6 +1,6 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackPullParamWithContentConfigDto public class TrackPullParamsWithContentDto
{ {
public TrackPullParamConfigDto ParamConfig { get; set; } = new(); public TrackPullParamConfigDto ParamConfig { get; set; } = new();

View File

@ -0,0 +1,9 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackPullPayload
{
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
}

View File

@ -1,24 +1,18 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull; namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackRefreshAttach public class TrackRefreshAttach
{ {
public TrackRefreshAttach(int serviceProviderId, string serviceProviderName, int subSystemId, int orderType) public TrackRefreshAttach(string serviceProviderCode, int subSystemId, int orderType)
{ {
ServiceProviderId = serviceProviderId; ServiceProviderCode = serviceProviderCode;
ServiceProviderName = serviceProviderName;
SubSystemId = subSystemId; SubSystemId = subSystemId;
OrderType = orderType; OrderType = orderType;
} }
/// <summary> /// <summary>
/// 服务商id /// 服务商code
/// </summary> /// </summary>
public int ServiceProviderId { get; set; } public string ServiceProviderCode { get; set; }
/// <summary>
/// 服务商name
/// </summary>
public string ServiceProviderName { get; set; }
/// <summary> /// <summary>
/// 订单类型(主数据枚举TrackOrderType) /// 订单类型(主数据枚举TrackOrderType)

View File

@ -18,9 +18,9 @@ public class TrackRefreshContext
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
/// <summary> /// <summary>
/// 服务商 /// 服务商代码
/// </summary> /// </summary>
public string ServiceProviderName { get; set; } = null!; public string ServiceProviderCode { get; set; } = null!;
/// <summary> /// <summary>
/// 客户id /// 客户id

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush; namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushConfigInput public class EditTrackPushConfigInput
{ {
@ -20,14 +20,9 @@ public class EditTrackPushConfigInput
public OptionTypeNoNull Options { get; set; } public OptionTypeNoNull Options { get; set; }
/// <summary> /// <summary>
/// 推送轨迹订单号 /// 服务商code
/// </summary> /// </summary>
public string? OrderNoName { get; set; } public string? ServiceProviderCode { get; set; }
/// <summary>
/// 服务商id
/// </summary>
public int? ServiceProviderId { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
@ -48,4 +43,24 @@ public class EditTrackPushConfigInput
/// 是否全量推送 /// 是否全量推送
/// </summary> /// </summary>
public bool? IsAllPush { get; set; } public bool? IsAllPush { get; set; }
/// <summary>
/// 是否全量推送
/// </summary>
public bool? IsAllPushWithLatest { get; set; }
/// <summary>
/// 时间格式枚举
/// </summary>
public int? DateTimeFormatType { get; set; } = 0;
/// <summary>
/// 日期时间格式模板
/// </summary>
public string? DateTimeFormat { get; set; }
/// <summary>
/// 时区格式格式模板
/// </summary>
public string? TimezoneFormat { get; set; }
} }

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush; namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushContentInput public class EditTrackPushContentInput
{ {

View File

@ -1,4 +1,4 @@
using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ABP.Core.PublicMethords;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush; namespace SJZY.Track.Application.Contract.Dtos.TrackPush;

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush; namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushAfterUpdateOrderDto public class TrackPushAfterUpdateOrderDto
{ {

View File

@ -17,6 +17,11 @@ public class TrackPushContentConfigDto
/// </summary> /// </summary>
public bool IsAllPush { get; set; } public bool IsAllPush { get; set; }
/// <summary>
/// 是否全量推送(最新轨迹)
/// </summary>
public bool IsAllPushWithLatest { get; set; }
/// <summary> /// <summary>
/// 是否支持删除 /// 是否支持删除
/// </summary> /// </summary>
@ -70,5 +75,21 @@ public class TrackPushContentConfigDto
/// <summary> /// <summary>
/// 扩展字段参数值 /// 扩展字段参数值
/// </summary> /// </summary>
[Obsolete("废弃属性,调整为从轨迹明细扩展中获取扩展值填入")]
public string? ExpandFieldsValue { get; set; } public string? ExpandFieldsValue { get; set; }
/// <summary>
/// 时间格式枚举
/// </summary>
public int DateTimeFormatType { get; set; }
/// <summary>
/// 日期时间格式模板
/// </summary>
public string? DateTimeFormat { get; set; }
/// <summary>
/// 时区格式格式模板
/// </summary>
public string? TimezoneFormat { get; set; }
} }

View File

@ -0,0 +1,36 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushContentDto
{
public int Id { get; set; }
/// <summary>
/// 轨迹代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 推送单号类型
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 服务商轨迹代码
/// </summary>
public string ServiceCode { get; set; }
/// <summary>
/// 服务商轨迹状态
/// </summary>
public string Status { get; set; }
/// <summary>
/// 服务商轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 服务商轨迹内容英文
/// </summary>
public string ContentEn { get; set; }
}

View File

@ -1,10 +1,11 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush; namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushInput public class TrackPushInput
{ {
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
public List<TrackItem> Data { get; set; } = new(); //原TrackItem,为了扩展字段入参变更为字典
public List<Dictionary<string,object?>> Data { get; set; } = new();
public string Log { get; set; } public string Log { get; set; }
} }
@ -13,19 +14,8 @@ public class TrackUpdateInput
{ {
public string OrderNo { get; set; } = null!; public string OrderNo { get; set; } = null!;
public List<TrackItem> Data { get; set; } = new(); //原TrackItem,为了扩展字段入参变更为字典
public List<Dictionary<string,object?>> Data { get; set; } = new();
public string Log { get; set; } public string Log { get; set; }
} }
public class TrackItem
{
public string Location { get; set; } = null!;
public DateTime Date { get; set; }
public double TimeZone { get; set; }
public string? Description { get; set; }
public string? DescriptionCn { get; set; }
public string? Code { get; set; }
public string? Status { get; set; }
public string? Extra { get; set; }
}

View File

@ -0,0 +1,90 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushRecordDto
{
/// <summary>
/// 子系统代码
/// </summary>
public string SubSystemCode { get; set; }
/// <summary>
/// 是否为手动推送
/// </summary>
public bool IsManualPush { get; set; }
/// <summary>
/// 推送时间
/// </summary>
public DateTime PushTime { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string? OperationMan { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 接口通请求Id
/// 在请求接口通前被拦截,就不会有请求Id
/// </summary>
public Guid? RequestId { get; set; }
/// <summary>
/// 信息
/// </summary>
public string Message { get; set; } = null!;
/// <summary>
/// 操作类型
/// </summary>
public string OptionType { get; set; } = null!;
/// <summary>
/// 轨迹状态
/// </summary>
public string TrackStatus { get; set; } = null!;
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹内容
/// </summary>
public string TrackContent { get; set; } = null!;
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 推送内容(json)
/// </summary>
public string PushContent { get; set; } = null!;
/// <summary>
/// 轨迹的额外新
/// </summary>
public string? Extra { get; set; }
}

View File

@ -1,40 +1,49 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackStatus namespace SJZY.Track.Application.Contract.Dtos.TrackStatus;
public class EditTrackStatusInput
{ {
public class EditTrackStatusInput /// <summary>
{ /// Id
/// <summary> /// </summary>
/// Id public int Id { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 操作类型 /// 操作类型
/// </summary> /// </summary>
public OptionType Options { get; set; } public OptionType Options { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 所属节点id /// 所属节点id
/// </summary> /// </summary>
public int NodeId { get; set; } public int NodeId { get; set; }
/// <summary> /// <summary>
/// 轨迹状态代码 /// 轨迹状态代码
/// </summary> /// </summary>
public string? Code { get; set; } public string? Code { get; set; }
/// <summary> /// <summary>
/// 轨迹状态 /// 轨迹状态
/// </summary> /// </summary>
public string? TrackStatus { get; set; } public string? TrackStatus { get; set; }
/// <summary> /// <summary>
/// 轨迹状态英文 /// 轨迹状态英文
/// </summary> /// </summary>
public string? EntrackStatus { get; set; } public string? EnTrackStatus { get; set; }
}
/// <summary>
/// 是否完结
/// </summary>
public bool IsCompleted { get; set; }
/// <summary>
/// 是否广播
/// </summary>
public bool IsToMq { get; set; }
} }

View File

@ -1,40 +1,54 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackStatus namespace SJZY.Track.Application.Contract.Dtos.TrackStatus;
public class GetTrackStatusDetailDto
{ {
public class GetTrackStatusDetailDto /// <summary>
{ /// Id
/// <summary> /// </summary>
/// Id public int Id { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 子系统
/// </summary> /// </summary>
public string SubSystem { get; set; } public string SubSystem { get; set; }
/// <summary> /// <summary>
/// 节点id /// 节点id
/// </summary> /// </summary>
public int NodeId { get; set; } public int NodeId { get; set; }
/// <summary> /// <summary>
/// 所属轨迹状态 /// 所属轨迹状态
/// </summary> /// </summary>
public string TrackStatus { get; set; } public string TrackStatus { get; set; }
/// <summary> /// <summary>
/// 轨迹状态代码 /// 轨迹状态代码
/// </summary> /// </summary>
public string Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// 轨迹内容英文 /// 轨迹内容英文
/// </summary> /// </summary>
public string EntrackStatus { get; set; } public string EnTrackStatus { get; set; }
}
/// <summary>
/// 节点名称
/// </summary>
public string? NodeName { get; set; }
/// <summary>
/// 是否完结
/// </summary>
public bool IsCompleted { get; set; }
/// <summary>
/// 是否广播
/// </summary>
public bool IsToMq { get; set; }
} }

View File

@ -1,74 +1,82 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackStatus namespace SJZY.Track.Application.Contract.Dtos.TrackStatus;
public class GetTrackStatusListDto
{ {
public class GetTrackStatusListDto /// <summary>
{ /// Id
/// <summary> /// </summary>
/// Id public int Id { get; set; }
/// </summary>
public int Id { get; set; }
/// <summary> /// <summary>
/// 子系统 /// 子系统
/// </summary> /// </summary>
public string SubSystem { get; set; } public string SubSystem { get; set; }
/// <summary> /// <summary>
/// 所属节点 /// 所属节点
/// </summary> /// </summary>
public string Node { get; set; } public string Node { get; set; }
/// <summary> /// <summary>
/// 所属轨迹状态 /// 所属轨迹状态
/// </summary> /// </summary>
public string TrackStatus { get; set; } public string TrackStatus { get; set; }
/// <summary> /// <summary>
/// 轨迹状态代码 /// 轨迹状态代码
/// </summary> /// </summary>
public string Code { get; set; } public string Code { get; set; }
/// <summary> /// <summary>
/// 轨迹内容英文 /// 轨迹内容英文
/// </summary> /// </summary>
public string EntrackStatus { get; set; } public string EnTrackStatus { get; set; }
/// <summary> /// <summary>
/// 创建人 /// 是否完结
/// </summary> /// </summary>
public string CreateUser { get; set; } public bool IsCompleted { get; set; }
/// <summary> /// <summary>
/// 创建时间 /// 是否广播
/// </summary> /// </summary>
public DateTime? CreateTime { get; set; } public bool IsToMq { get; set; }
/// <summary> /// <summary>
/// 修改人 /// 创建人
/// </summary> /// </summary>
public string UpdateUser { get; set; } public string CreateUser { get; set; }
/// <summary> /// <summary>
/// 修改时间 /// 创建时间
/// </summary> /// </summary>
public DateTime? UpdateTime { get; set; } public DateTime? CreateTime { get; set; }
}
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
public class GetPageTrackStatusInput : PageInfoInput /// <summary>
{ /// 修改时间
/// <summary> /// </summary>
/// 子系统id public DateTime? UpdateTime { get; set; }
/// </summary> }
public int SubSystemId { get; set; }
public class GetPagedTrackStatusInput : PageInfoInput
/// <summary> {
/// 关键字 /// <summary>
/// </summary> /// 子系统id
public string? Keywords { get; set; } /// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 选中的轨迹状态id /// <summary>
/// </summary> /// 关键字
public List<int>? SelectIds { get; set;} /// </summary>
} public string? Keywords { get; set; }
/// <summary>
/// 选中的轨迹状态id
/// </summary>
public List<int>? SelectIds { get; set; }
} }

View File

@ -0,0 +1,14 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackStatus;
public class QueryTrackNodeRequest : PageInfoInput
{
/// <summary>
/// 关键字,节点中文和英文
/// </summary>
public string? KeyWord { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public long? SystemId { get; set; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates; namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates;
/// <inheritdoc/> /// <inheritdoc/>
public class EditTrackTemplateContentInput public class EditTrackTemplateContentInput
@ -11,16 +11,6 @@ public class EditTrackTemplateContentInput
/// <inheritdoc/> /// <inheritdoc/>
public int? Id { get; set; } public int? Id { get; set; }
/// <summary>
/// 是否可删
/// </summary>
public bool? IsCanDelete { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool? IsExternal { get; set; }
/// <summary> /// <summary>
/// 轨迹内容id /// 轨迹内容id
/// </summary> /// </summary>

View File

@ -1,28 +1,27 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates;
/// <summary>
/// 获取轨迹模版分页输入
/// </summary>
public class GetPageTrackTemplateInput : PageInfoInput
{ {
/// <summary> /// <summary>
/// 获取轨迹模版分页输入 /// 子系统id
/// </summary> /// </summary>
public class GetPageTrackTemplateInput : PageInfoInput public int SubSystemId { get; set; }
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary> /// <summary>
/// 关键字 /// 关键字
/// </summary> /// </summary>
public string? Keywords { get; set; } public string? Keywords { get; set; }
///// <summary> ///// <summary>
///// 轨迹模版id,轨迹映射的查询使用 ///// 轨迹模版id,轨迹映射的查询使用
///// </summary> ///// </summary>
//public int TrackTemplateId { get; set; } //public int TrackTemplateId { get; set; }
/// <summary> /// <summary>
/// 选中的轨迹模版id /// 选中的轨迹模版id
/// </summary> /// </summary>
public List<int>? SelectIds { get; set; } public List<int>? SelectIds { get; set; }
}
} }

View File

@ -1,110 +1,114 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates;
/// <summary>
/// 获取轨迹模版详情
/// </summary>
public class GetTrackTemplateDetailDto
{ {
/// <summary> /// <summary>
/// 获取轨迹模版详情 /// Id
/// </summary> /// </summary>
public class GetTrackTemplateDetailDto public int Id { get; set; }
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 模版名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 显示原轨迹
/// </summary>
public bool ShowOrigin { get; set; }
}
/// <summary> /// <summary>
/// 获取轨迹模版列表 /// 子系统id
/// </summary> /// </summary>
public class GetTrackTemplateListDto public int SubSystemId { get; set; }
{
/// <summary>
/// 轨迹模版id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 所属子系统
/// </summary>
public string SubSystem { set; get; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { set; get; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
/// <summary> /// <summary>
/// 编辑轨迹模版 /// 子系统
/// </summary> /// </summary>
public class EditTrackTemplateInput public string SubSystem { get; set; }
{
/// <summary>
/// Id
/// </summary>
public int Id { set; get; }
/// <summary> /// <summary>
/// 操作类型 /// 模版名称
/// </summary> /// </summary>
public OptionType Options { get; set; } public string Name { get; set; }
/// <summary> /// <summary>
/// 子系统id /// 模版代码
/// </summary> /// </summary>
public int SubSystemId { set; get; } public string Code { get; set; }
/// <summary> /// <summary>
/// 模板名称 /// 显示原轨迹
/// </summary> /// </summary>
public string? Name { set; get; } public bool ShowOrigin { get; set; }
}
/// <summary>
/// 模板代码 /// <summary>
/// </summary> /// 获取轨迹模版列表
public string? Code { set; get; } /// </summary>
public class GetTrackTemplateListDto
/// <summary> {
/// 显示原轨迹 /// <summary>
/// </summary> /// 轨迹模版id
public bool ShowOrigin { get; set; } /// </summary>
} public int Id { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 所属子系统
/// </summary>
public string SubSystem { set; get; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { set; get; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateTime { get; set; }
}
/// <summary>
/// 编辑轨迹模版
/// </summary>
public class EditTrackTemplateInput
{
/// <summary>
/// Id
/// </summary>
public int Id { set; get; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { set; get; }
/// <summary>
/// 模板名称
/// </summary>
public string? Name { set; get; }
/// <summary>
/// 模板代码
/// </summary>
public string? Code { set; get; }
/// <summary>
/// 分类id
/// </summary>
public int CategoryId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
} }

View File

@ -1,4 +1,4 @@
using SJZY.Expand.ABP.Core.PublicMethords; using SJZY.Expand.ABP.Core.PublicMethords;
namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates; namespace SJZY.Track.Application.Contract.Dtos.TrackTemplates;

View File

@ -0,0 +1,8 @@
using SJZY.Track.Application.Contract.Dtos.Forewarning;
namespace SJZY.Track.Application.Contract.Events;
public class ClearRulCacheEvent
{
public List<RuleAreaBaseInfo> Items { get; set; }
}

View File

@ -0,0 +1,22 @@
namespace SJZY.Track.Application.Contract.Events;
/// <summary>
/// redis 的发布订阅事件
/// </summary>
public class ModifyWarningEvent : RedisEvent
{
public string Key { get; set; }
}
public class RedisEvent : IRedisEvent
{
public string EventType { get; set; }
}
/// <summary>
/// 简单的事件接口,后续可以根据需要扩展
/// </summary>
public interface IRedisEvent
{
string EventType { get; set; }
}

View File

@ -2,9 +2,18 @@ namespace SJZY.Track.Application.Contract.Events;
public struct OrderIdentifier public struct OrderIdentifier
{ {
/// <summary>
/// 订单id
/// </summary>
public int OrderId { get; set; } public int OrderId { get; set; }
public string OrderNo { get; set; }
public int OrderType { get; set; }
public int CustomId { get; set; } /// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 订单类型
/// </summary>
public int OrderType { get; set; }
} }

View File

@ -0,0 +1,6 @@
namespace SJZY.Track.Application.Contract.Events;
public class PushWarningEvent
{
public int PageSize { get; set; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Events; namespace SJZY.Track.Application.Contract.Events;
public class TrackChangeAfterUpdateOrderEvent public class TrackChangeAfterUpdateOrderEvent
{ {
@ -8,7 +8,7 @@ public class TrackChangeAfterUpdateOrderEvent
public int[] OrderIds { get; set; } = null!; public int[] OrderIds { get; set; } = null!;
/// <summary> /// <summary>
/// 这条轨迹是否意味着完成(只有刷新会设为true) /// 这条轨迹是否意味着订单已完成
/// </summary> /// </summary>
public bool IsCompleted { get; set; } public bool IsCompleted { get; set; }
@ -36,4 +36,19 @@ public class TrackChangeAfterUpdateOrderEvent
/// 轨迹时区 /// 轨迹时区
/// </summary> /// </summary>
public float TrackTimeZone { get; set; } public float TrackTimeZone { get; set; }
/// <summary>
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
/// </summary>
public int DeficiencyTagValue { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 签收地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
} }

View File

@ -0,0 +1,142 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Events;
public class TrackChangeEto
{
/// <summary>
/// 操作类型:1新增,2删除,3修改
/// </summary>
public int Option { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 单号
/// </summary>
public string OrderNo { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomId { get; set; }
/// <summary>
/// 订单id
/// </summary>
public OrderIdentifier[] OrderIdentifiers { get; set; } = null!;
/// <summary>
/// 操作人
/// </summary>
public string? OperationMan { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string? EnStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string TrackStatusCode { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生地时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 轨迹备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
///轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
}

View File

@ -1,4 +1,6 @@
namespace SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Events;
public class TrackDeleteEvent public class TrackDeleteEvent
{ {
@ -7,23 +9,49 @@ public class TrackDeleteEvent
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary>
/// es中的id
/// </summary>
public string[]? EsIds { get; set; }
/// <summary> /// <summary>
/// 订单ids /// 订单ids
/// </summary> /// </summary>
public int[] OrderIds { get; set; } = null!; public int[] OrderIds { get; set; } = null!;
/// <summary> /// <summary>
/// 轨迹代码 /// 重复的情况下,用什么字段比较
/// </summary> /// </summary>
public List<string> TrackCodes { get; set; } = null!; public string? CompareFields { get; set; }
/// <summary>
/// 重复的情况下,比较值
/// </summary>
public object? CompareValue { get; set; }
/// <summary>
/// 轨迹标识符
/// </summary>
public List<TrackIdentifierDto>? TrackIdentifiers { get; set; }
/// <summary> /// <summary>
/// 操作人 /// 操作人
/// </summary> /// </summary>
public string? OperationMan { get; set; } public string? OperationMan { get; set; }
/// <summary>
/// 操作人姓名
/// </summary>
public int OperationManId { get; set; }
/// <summary> /// <summary>
/// 已经处理过的订单 /// 已经处理过的订单
/// </summary> /// </summary>
public List<int> Visited { get; set; } = new(); public List<int> Visited { get; set; } = new();
public override string ToString()
{
return $"[TrackDelete by {OperationMan}] SubSystemId: {SubSystemId}, OrderIds: {string.Join(",",
OrderIds)}, TrackCodes: {string.Join(",", TrackIdentifiers.Select(x=>x.TrackCode))}";
}
} }

View File

@ -1,49 +0,0 @@
namespace SJZY.Track.Application.Contract.Events;
public class TrackInsertForNotMappedEvent
{
/// <summary>
/// 订单id
/// </summary>
public int OrderId { get; set; }
/// <summary>
/// 订单类型
/// </summary>
public int OrderType { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 服务商
/// </summary>
public string ServiceProviderName { get; set; } = null!;
/// <summary>
/// 原轨迹内容
/// </summary>
public string? OriginTrackContent { get; set; }
/// <summary>
/// 原轨迹报文
/// </summary>
public string? OriginTrackData { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
}

View File

@ -0,0 +1,88 @@
namespace SJZY.Track.Application.Contract.Events;
/// <summary>
/// 轨迹推送广播模型
/// </summary>
public class TrackPushCompletedEvent
{
/// <summary>
/// 是否为手动推送
/// </summary>
public bool IsManualPush { get; set; }
/// <summary>
/// 推送时间
/// </summary>
public DateTime PushTime { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string? OperationMan { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 接口通请求Id
/// 在请求接口通前被拦截,就不会有请求Id
/// </summary>
public Guid? RequestId { get; set; }
/// <summary>
/// 信息
/// </summary>
public string Message { get; set; } = null!;
/// <summary>
/// 操作类型
/// </summary>
public string OptionType { get; set; } = null!;
/// <summary>
/// 轨迹状态
/// </summary>
public string TrackStatus { get; set; } = null!;
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹内容
/// </summary>
public string TrackContent { get; set; } = null!;
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; }
/// <summary>
/// 推送内容(json)
/// </summary>
public string PushContent { get; set; } = null!;
/// <summary>
/// 轨迹的额外新
/// </summary>
public string? Extra { get; set; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Events; namespace SJZY.Track.Application.Contract.Events;
public class TrackPushEvent public class TrackPushEvent
{ {
@ -12,6 +12,11 @@ public class TrackPushEvent
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary>
/// 子系统代码
/// </summary>
public string SubSystemCode { get; set; }
/// <summary> /// <summary>
/// 客户id /// 客户id
/// </summary> /// </summary>
@ -36,6 +41,16 @@ public class TrackPushEvent
/// 系统推送信息 /// 系统推送信息
/// </summary> /// </summary>
public SystemPushStruct SystemPushInfo { get; set; } public SystemPushStruct SystemPushInfo { get; set; }
/// <summary>
/// 是否强制推送
/// </summary>
public bool ForcedPush { get; set; }
/// <summary>
/// 是否发送到mq
/// </summary>
public bool IsToMq { get; set; }
} }
public struct SystemPushStruct public struct SystemPushStruct
@ -64,4 +79,14 @@ public struct SystemPushStruct
/// 轨迹发生时区 /// 轨迹发生时区
/// </summary> /// </summary>
public float TrackTimeZone { get; set; } public float TrackTimeZone { get; set; }
/// <summary>
/// 重复的情况下,用什么比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
} }

View File

@ -3,9 +3,9 @@ namespace SJZY.Track.Application.Contract.Events;
public struct TrackRefreshStruct public struct TrackRefreshStruct
{ {
/// <summary> /// <summary>
/// 服务商 /// 服务商code
/// </summary> /// </summary>
public string? ServiceProviderName { get; set; } public string? ServiceProviderCode { get; set; }
/// <summary> /// <summary>
/// 原轨迹内容 /// 原轨迹内容
@ -13,13 +13,7 @@ public struct TrackRefreshStruct
public string? OriginTrackContent { get; set; } public string? OriginTrackContent { get; set; }
/// <summary> /// <summary>
/// 原轨迹报文 /// 原轨迹报文hash(刷新轨迹重复性校验使用)
/// </summary> /// </summary>
public string? OriginTrackData { get; set; } public string? OriginTrackDataHash { get; set; }
/// <summary>
/// 表示订单是否完成(只由轨迹刷新配置决定)
/// tips:能够使得IsCompleted为true的点,全局只有一个:轨迹刷新
/// </summary>
public bool IsCompleted { get; set; }
} }

View File

@ -1,22 +1,39 @@
namespace SJZY.Track.Application.Contract.Events; using SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Events;
public class TrackUpsertEvent public class TrackUpsertEvent
{ {
/// <summary> /// <summary>
/// 子系统id(操作的订单都是相同子系统下的) /// 子系统id
/// </summary> /// </summary>
public int SubSystemId { get; set; } public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomId { get; set; }
/// <summary> /// <summary>
/// 订单id /// 订单id
/// </summary> /// </summary>
public OrderIdentifier[] OrderIdentifiers { get; set; } = null!; public OrderIdentifier[] OrderIdentifiers { get; set; } = null!;
/// <summary>
/// 轨迹唯一标识(用于单个订单更新单条轨迹,如果有的话优先级最高)
/// </summary>
public string? EsId { get; set; }
/// <summary> /// <summary>
/// 操作人(null则默认系统) /// 操作人(null则默认系统)
/// </summary> /// </summary>
public string? OperationMan { get; set; } public string? OperationMan { get; set; }
/// <summary>
/// 操作人id
/// </summary>
public int OperationManId { get; set; }
/// <summary> /// <summary>
/// true新增,false更新 /// true新增,false更新
/// </summary> /// </summary>
@ -37,6 +54,11 @@ public class TrackUpsertEvent
/// </summary> /// </summary>
public DateTime TrackTime { get; set; } public DateTime TrackTime { get; set; }
/// <summary>
/// 更改后的轨迹发生时间,无需更改保持为空
/// </summary>
public DateTime? NewTrackTime { get; set; }
/// <summary> /// <summary>
/// 轨迹发生时区 /// 轨迹发生时区
/// </summary> /// </summary>
@ -48,4 +70,112 @@ public class TrackUpsertEvent
public List<int> Visited { get; set; } = new(); public List<int> Visited { get; set; } = new();
public TrackRefreshStruct TrackRefreshData { get; set; } public TrackRefreshStruct TrackRefreshData { get; set; }
/// <summary>
/// 客户是否可见
/// </summary>
[Obsolete("废弃的,请使用IsExternal")]
public bool IsVisibility { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool? IsExternal { get; set; }
/// <summary>
/// 数据来源:1外部服务商创建,2内部系统创建,3人工创建
/// </summary>
public int Source { get; set; }
/// <summary>
/// 轨迹备注
/// </summary>
public string? Remarks { get; set; }
/// <summary>
/// 附件集合
/// </summary>
public List<FileItemDto>? Files { get; set; }
/// <summary>
/// 轨迹内容,若为空则取轨迹内容表中该轨迹Code对应的轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文,若为空则取轨迹内容表中该轨迹Code对应的轨迹英文内容
/// </summary>
public string? EnStatus { get; set; }
/// <summary>
/// 轨迹发生地(城市)
/// </summary>
public string? TrackPlaceCity { get; set; }
/// <summary>
/// 轨迹发生地(城市)Id
/// </summary>
public int? TrackPlaceCityId { get; set; }
/// <summary>
/// 轨迹发生地(省/州)
/// </summary>
public string? TrackPlaceProvince { get; set; }
/// <summary>
///轨迹发生地(省/州)Id
/// </summary>
public int? TrackPlaceProvinceId { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)
/// </summary>
public string? TrackPlaceNation { get; set; }
/// <summary>
/// 轨迹发生地(国家/地区)Id
/// </summary>
public int? TrackPlaceNationId { get; set; }
/// <summary>
/// 轨迹发生地邮编
/// </summary>
public string? TrackPlacePostcode { get; set; }
/// <summary>
/// 预计到达时间
/// </summary>
public DateTime? EstimatedDeliveryDate { get; set; }
/// <summary>
/// 目的地时区
/// </summary>
public float? DestinationTimeZone { get; set; }
/// <summary>
/// 重复的情况下,用什么比较
/// </summary>
public string? CompareFields { get; set; }
/// <summary>
/// 扩展信息字段,用与轨迹推送的附加字段
/// </summary>
public string? Extra { get; set; }
/// <summary>
/// 是否强制推送
/// </summary>
public bool ForcedPush { get; set; }
/// <summary>
/// 指定是否推送
/// </summary>
public bool IsToMq { get; set; }
public override string ToString()
{
return
$"[{(IsAdd ? "TrackInsert" : "TrackUpdate")} by {OperationMan}] SubSystemId: {SubSystemId}, OrderIds: {string.Join(",",
OrderIdentifiers.Select(x => x.OrderId))}, TrackCode: {TrackCode}, TrackPlace: {TrackPlace}, TrackTime: {TrackTime}";
}
} }

View File

@ -1,94 +0,0 @@
namespace SJZY.Track.Application.Contract.Events;
public class TrackUpsertForRefreshEvent
{
/// <summary>
/// 子系统id(操作的订单都是相同子系统下的)
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 订单
/// </summary>
public OrderIdentifier OrderIdentifiers { get; set; }
/// <summary>
/// 服务商
/// </summary>
public string? ServiceProviderName { get; set; }
/// <summary>
/// 原轨迹内容
/// </summary>
public string? OriginTrackContent { get; set; }
/// <summary>
/// 原轨迹报文
/// </summary>
public string? OriginTrackData { get; set; }
/// <summary>
/// 表示订单是否完成(只由轨迹刷新配置决定)
/// tips:能够使得IsCompleted为true的点,全局只有一个:轨迹刷新
/// </summary>
public bool IsCompleted { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string TrackCode { get; set; } = null!;
/// <summary>
/// 轨迹发生地
/// </summary>
public string TrackPlace { get; set; } = null!;
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
}
public class TrackHandledDto
{
/// <summary>
/// 原轨迹内容
/// </summary>
public string? OriginTrackContent { get; set; }
/// <summary>
/// 原轨迹报文
/// </summary>
public string? OriginTrackData { get; set; }
/// <summary>
/// 表示订单是否完成(只由轨迹刷新配置决定)
/// tips:能够使得IsCompleted为true的点,全局只有一个:轨迹刷新
/// </summary>
public bool? IsCompleted { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string? TrackCode { get; set; }
/// <summary>
/// 轨迹发生地
/// </summary>
public string? TrackPlace { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime? TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
public float? TrackTimeZone { get; set; }
}

View File

@ -0,0 +1,29 @@
namespace SJZY.Track.Application.Contract.Events;
public class TrackWarningCalcEvent
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomId { get; set; }
/// <summary>
/// 轨迹状态Id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 订单id
/// </summary>
public int[] OrderIds { get; set; }
/// <summary>
/// 轨迹发生时间
/// </summary>
public DateTime TrackTime { get; set; }
}

View File

@ -1,4 +1,4 @@
// Global using directives // Global using directives
global using SJZY.Expand.ABP.Common.Enums; global using SJZY.Expand.ABP.Common.Enums;
global using SJZY.Expand.ABP.Core.Common.Dto; global using SJZY.Expand.ABP.Core.Common.Dto;

Some files were not shown because too many files have changed in this diff Show More