Merge pull request 'S05轨迹重构' (#68) from S05轨迹重构 into uat

Reviewed-on: https://git.shijizhongyun.com/Dotnet/SJZY.Track.Api/pulls/68
This commit is contained in:
lipengjun 2024-10-12 16:26:36 +08:00
commit ecc6dab965
383 changed files with 12306 additions and 5644 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
## files generated by popular Visual Studio add-ons.
## files generated by popular Visual Studio add-ons..
# User-specific files
*.suo
@ -189,3 +189,4 @@ UpgradeLog*.htm
FakesAssemblies/
logs/
/.vs
.idea/

View File

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

View File

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

View File

@ -24,4 +24,4 @@ try
catch (Exception ex)
{
Console.WriteLine($"项目启动失败,异常信息:{ex}");
}
}

View File

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

View File

@ -1,4 +1,4 @@
using FluentValidation.AspNetCore;
using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc;
using SJZY.Expand.ABP.Core;
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.Swagger;
using SJZY.Track.Application;
using SJZY.Track.Application.HostServices;
using SJZY.Track.Repository;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
@ -20,69 +21,70 @@ using Volo.Abp.Modularity;
[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(
typeof(AbpAutofacModule),
typeof(SjzyAbpCodeModule),
typeof(AbpAspNetCoreMvcModule),
typeof(AbpAspNetCoreSerilogModule),
typeof(SjzyTrackApplicationModule),
typeof(SjzyTrackRepositoryModule)
)]
public class SjzyTrackApiModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
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();
var configuration = context.Services.GetConfiguration();
context.Services.AddSwagger();
options.Filters.AddService<GlobalExceptionFilter>();
options.Filters.AddService<RequestLogFilter>();
options.Filters.AddService<UnifyResultFilter>();
}).AddNewtonsoftJson();
//过滤器相关配置
context.Services.AddMvc(options =>
{
options.Filters.AddService<GlobalExceptionFilter>();
options.Filters.AddService<RequestLogFilter>();
options.Filters.AddService<UnifyResultFilter>();
}).AddNewtonsoftJson();
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
context.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters();
//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)
//Json格式化全局处理
context.Services.Configure<MvcNewtonsoftJsonOptions>(options =>
{
var app = context.GetApplicationBuilder();
var env = context.GetEnvironment();
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());
});
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
Configure<AbpJsonOptions>(options => options.OutputDateTimeFormat = "yyyy-MM-dd HH:mm:ss");
Configure<AbpAuditingOptions>(options => { options.IsEnabled = false; });
app.UseRequestCulture();
app.UseRouting();
app.UseCorsPolicy();
app.UseConfiguredEndpoints();
app.UseAbpSwaggerUI(env);
app.UseAbpSerilogEnrichers();
app.UsePrometheus();
context.Services.AddRedis();
context.Services.AddHostedService<RedisHostService>();
}
#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": {
"UseLocalConfiguration": false, //是否使用本地配置文件
"ConfiguraFileName": "appsettings.Development.json", //指定配置文件名称,开启UseLocalConfiguration时生效
"UseLocalConfiguration": false,
//是否使用本地配置文件
"ConfiguraFileName": "appsettings.Development.json",
//指定配置文件名称,开启UseLocalConfiguration时生效
"Apollo": {
"AppId": "SJZY.Track.Configuration",
"Env": "DEV",
"Namespace": "Test",
"Namespace": "test",
"MetaServer": "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080",
"ConfigServer": [ "http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080" ]
"ConfigServer": [
"http://apollo-service-test-apollo-configservice.apollo.svc.cluster.local:8080"
]
}
},
"Kestrel": {
@ -17,4 +21,4 @@
}
}
}
}
}

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

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -8,5 +8,6 @@ public class BatchDeleteTrackInput : OrderNosInfo
/// 轨迹code,必填
/// </summary>
[Required]
[MaxLength(500)]
public List<string> TrackCodes { get; set; } = new();
}
}

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -27,12 +27,12 @@ public class BatchUpsertTrackInput : OrderNosInfo
/// 轨迹发生时间
/// </summary>
[Required]
public DateTime? TrackTime { get; set; }
public DateTime TrackTime { get; set; }
/// <summary>
/// 轨迹发生时区
/// </summary>
[Required]
[Range(-12, 12)]
public float? TrackTimeZone { get; set; }
}
public float TrackTimeZone { get; set; }
}

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -13,4 +13,4 @@ public class DeleteTrackInput : OrderNoInfo
/// </summary>
[Required]
public List<string> TrackCodes { get; set; } = new();
}
}

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>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 轨迹模板Id
/// </summary>
public List<int>? TrackTemplateIds { get; set; } = new List<int>();
}
public class TrackOrderDetailDto
{
/// <summary>
/// Id es主键
/// </summary>
@ -43,7 +30,7 @@ public class TrackOrderDetailDto
/// <summary>
/// 轨迹代码
/// </summary>
public string? Code { get; set; }
public string Code { get; set; }
/// <summary>
/// 轨迹内容
@ -56,9 +43,9 @@ public class TrackOrderDetailDto
public string? EnContent { get; set; }
/// <summary>
/// 服务商
/// 服务商代码
/// </summary>
public string? ServiceProviderName { get; set; }
public string? ServiceProviderCode { get; set; }
/// <summary>
/// 原轨迹内容
@ -85,11 +72,6 @@ public class TrackOrderDetailDto
/// </summary>
public float TrackTimeZoneValue { get; set; }
/// <summary>
/// 是否可删
/// </summary>
public bool IsCanDelete { get; set; }
/// <summary>
/// 是否对外
/// </summary>
@ -104,4 +86,4 @@ public class TrackOrderDetailDto
/// 创建人
/// </summary>
public string? CreateUser { 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
{
@ -73,16 +73,6 @@ public class TrackOrderDto
/// </summary>
public string? OrderNumber { get; set; }
/// <summary>
/// 轨迹模版
/// </summary>
public string? TrackTemplateNames { get; set; }
/// <summary>
/// 轨迹模板Id数组
/// </summary>
public List<int>? TrackTemplateIds { get; set; }
/// <summary>
/// 客户简称
/// </summary>
@ -162,4 +152,4 @@ public class TrackOrderDto
///// 问题描述名称
///// </summary>
//public string? ProblemDescriptionName { get; set; }
}
}

View File

@ -1,15 +1,13 @@
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class GetTrackInput : OrderNosInfo
{
private float? _timeZone;
/// <summary>
/// 时区 +8 +8.25 -8.5 -9
/// 不传默认+8
/// </summary>
private float? _timeZone;
public float? TimeZone
{
get => _timeZone ?? 8;
@ -17,10 +15,9 @@ public class GetTrackInput : OrderNosInfo
}
/// <summary>
/// 排序方式
/// 排序方式,默认按轨迹发生时间降序
/// </summary>
[Required]
public SortMethod SortMethod { get; set; }
public SortMethod? SortMethod { get; set; }
}
public enum SortMethod
@ -34,9 +31,4 @@ public enum SortMethod
/// 按轨迹发生时间降序
/// </summary>
ByTrackTimeDesc,
/// <summary>
/// 按订单模板排序
/// </summary>
ByTemplate
}
}

View File

@ -17,6 +17,19 @@ public class TrackDetail
public string? Content { get; set; }
public string? OriginContent { get; set; }
public string Location { get; set; } = null!;
/// <summary>
/// 发生时间
/// </summary>
public DateTime Time { get; set; }
public float TimeZone { get; set; }
}
/// <summary>
/// 轨迹时区
/// </summary>
public float? TimeZone { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsDisplay { get; set; }
}

View File

@ -0,0 +1,19 @@
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; }
}

View File

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

View File

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

View File

@ -1,60 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices
/// <summary>
/// 查询轨迹推送映射关系入参
/// </summary>
public class QueryTrackPullMappingsInput
{
/// <summary>
/// 查询轨迹推送映射关系入参
/// 子系统id
/// </summary>
public class QueryTrackPullMappingsInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubsystemsId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomerId { get; set; }
}
public int SubsystemsId { get; set; }
/// <summary>
/// 查询轨迹推送映射关系返参项
/// 客户id
/// </summary>
public class QueryTrackPullMappingsInfo
{
/// <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; }
}
public int CustomerId { get; set; }
}
/// <summary>
/// 查询轨迹推送映射关系返参项
/// </summary>
public class QueryTrackPullMappingsInfo
{
/// <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,9 +1,14 @@
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
public class RefreshTrackInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 订单号
/// </summary>
public List<string> OrderNos { get; set; } = new();
}
}

View File

@ -0,0 +1,47 @@
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; }
}

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -43,12 +43,58 @@ public class UpdateOrderInput : OrderNoInfo
public string LeaveCity { get; set; } = null!;
/// <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 List<PullConfigInfo>? PullConfigInfos { get; set; }
/// <summary>
/// 订单航班信息
/// </summary>
public List<OrderFlightInfo> FlightInfos { get; set; } = new();
}
}
public class PullConfigInfo
{
/// <summary>
/// 服务商code
/// </summary>
[Required]
public string ServiceCode { 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
{
@ -8,4 +8,4 @@ public class UpdateOrderStatusInput
/// 订单是否完成
/// </summary>
public bool IsCompleted { get; set; }
}
}

View File

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

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -8,24 +8,10 @@ public class UpsertOrderInput : UpdateOrderInput
/// 客户id
/// </summary>
[Required]
[Range(1, int.MaxValue)]
public int CustomId { get; set; }
}
public class OrderTemplateInfo
{
/// <summary>
/// 模板id
/// </summary>
[Required]
[Range(1, Int32.MaxValue)]
public int TemplateId { get; set; }
/// <summary>
/// 服务商id
/// </summary>
public int? ServiceProviderId { get; set; }
}
public class OrderFlightInfo
{
/// <summary>
@ -40,4 +26,4 @@ public class OrderFlightInfo
/// </summary>
[Required]
public DateTime FlightDate { get; set; }
}
}

View File

@ -1,4 +1,4 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations;
namespace SJZY.Track.Application.Contract.Dtos.ProvideServices;
@ -35,4 +35,4 @@ public class UpsertTrackInput : OrderNoInfo
[Required]
[Range(-12, 12)]
public float? TrackTimeZone { get; set; }
}
}

View File

@ -1,98 +1,107 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class EditTrackContentInput
{
public class EditTrackContentInput
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 所属轨迹状态id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 所属轨迹状态id
/// </summary>
public int? TrackStatusId { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string? Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string? EnContent { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string? EnContent { get; set; }
/// <summary>
/// 轨迹标记id
/// </summary>
public int TrackFlagId { get; set; }
}
/// <summary>
/// 轨迹标记id
/// </summary>
public int[]? TrackFlagIds { get; set; }
public class GetTrackContentDetailDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
}
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
public class GetTrackContentDetailDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 所属轨迹状态id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 所属轨迹状态id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹标记id
/// </summary>
public int? TrackFlagId { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 轨迹标记
/// </summary>
public string TrackFlag { 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; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
namespace SJZY.Track.Application.Contract.Dtos.TrackContents;
public class EditTrackContentMapInput
{
@ -38,4 +38,4 @@ public class EditTrackContentMapInput
/// 源轨迹内容id
/// </summary>
public int? TrackContentId { get; set; }
}
}

View File

@ -1,88 +1,92 @@
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>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
/// <summary>
/// 轨迹状态id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 轨迹状态id
/// </summary>
public int TrackStatusId { get; set; }
/// <summary>
/// 选中的轨迹内容id
/// </summary>
public List<int>? SelectIds { get; set; }
}
/// <summary>
/// 选中的轨迹内容id
/// </summary>
public List<int>? SelectIds { get; set; }
}
public class GetTrackContentListDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
public class GetTrackContentListDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹内容
/// </summary>
public string Content { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnContent { get; set; }
/// <summary>
/// 所属状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 所属状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 轨迹标记
/// </summary>
public string TrackFlag { get; set; }
/// <summary>
/// 轨迹标记
/// </summary>
public string TrackFlag { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool IsExternal { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
}
}
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { 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>
public OptionType Options { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 标记
/// </summary>
public string? Flag { get; set; }
/// <summary>
/// 标记
/// </summary>
public string? Flag { get; set; }
/// <summary>
/// 代码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 代码
/// </summary>
public string? Code { get; set; }
///// <summary>
///// 是否完结
///// </summary>
//public bool IsFinish { get; set; }
}
/// <summary>
/// 是否广播
/// </summary>
public bool IsToMq { get; set; }
}
public class GetTrackFlagDetailDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
public class GetTrackFlagDetailDto
{
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 代码
/// </summary>
public string Code { get; set; }
/// <summary>
///
/// </summary>
public string Flag { get; set; }
/// <summary>
/// 标记
/// </summary>
public string Flag { get; set; }
///// <summary>
///// 是否完结
///// </summary>
//public bool IsFinish { get; set; }
}
}
/// <summary>
/// 是否广播
/// </summary>
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>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 标记
/// </summary>
public string Flag { get; set; }
/// <summary>
/// 标记
/// </summary>
public string Flag { get; set; }
///// <summary>
///// 是否完结
///// </summary>
//public bool IsFinish { get; set; }
/// <summary>
/// 是否广播
/// </summary>
public bool IsToMq { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
}
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
}
public class GetPageTrackFlagInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
public class GetPageTrackFlagInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 选中的轨迹标记id
/// </summary>
public List<int>? SelectIds { get; set; }
/// <summary>
/// 选中的轨迹标记id
/// </summary>
public List<int>? SelectIds { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
}
}
/// <summary>
/// 关键字
/// </summary>
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
{
@ -16,4 +16,4 @@ public class GetTrackCounterOutput
/// 预警数
/// </summary>
public int WarnCount { get; set; }
}
}

View File

@ -1,5 +1,5 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
namespace SJZY.Track.Application.Contract.Dtos.TrackOrder;
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
{
@ -72,4 +72,4 @@ public class TrackPushRecordOutput
/// <summary>创建时间</summary>
public DateTime CreateTime { get; set; }
}
}

View File

@ -1,33 +1,13 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class EditTrackPullConfigInput
{
public int? Id { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionTypeNoNull Options { get; set; }
/// <summary>
/// 拉取轨迹订单号
/// </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; }
public int? Id { get; set; }
/// <summary>
/// 子系统id
@ -35,42 +15,62 @@ public class EditTrackPullConfigInput
public int? SubSystemId { get; set; }
/// <summary>
/// 拉取轨迹时区
/// 服务商id
/// </summary>
public string? TrackTimeZoneName { get; set; }
public int? ServiceProviderId { get; set; }
/// <summary>
/// 拉取轨迹内容代码
/// 服务商拉取频率(分钟)
/// </summary>
public string? TrackContentCodeName { get; set; }
public int PullInterval { get; set; }
/// <summary>
/// 拉取轨迹内容
/// 解析方式,1取接口通返参映射后的,2取服务商原返参
/// </summary>
public string? TrackContentName { get; set; }
/// <summary>
/// 拉取轨迹发生地
/// </summary>
public string? TrackPlaceName { get; set; }
/// <summary>
/// 拉取轨迹状态
/// </summary>
public string? TrackStatusName { get; set; }
/// <summary>
/// 拉取轨迹发生时间
/// </summary>
public string? TrackTimeName { get; set; }
public int ParseMethod { get; set; }
/// <summary>
/// 订单路径
/// </summary>
public string? OrderPath { get; set; }
/// <summary>
/// 单号参数名
/// </summary>
public string? OrderNoName { get; set; }
/// <summary>
/// 轨迹明细路径
/// </summary>
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
{
@ -9,21 +9,11 @@ public class EditTrackPullContentInput
public int? Id { get; set; }
/// <summary>
/// 服务商轨迹代码参数值
/// </summary>
public string? TrackContentCodeValue { get; set; }
/// <summary>
/// 轨迹内容id
/// </summary>
public int? TrackContentId { get; set; }
/// <summary>
/// 服务商轨迹内容参数值
/// </summary>
public string? TrackContentValue { get; set; }
/// <summary>
/// 拉取轨迹关键字(正向)
/// </summary>
@ -47,15 +37,10 @@ public class EditTrackPullContentInput
/// <summary>
/// 服务商轨迹状态参数值
/// </summary>
public string? TrackStatusValue { get; set; }
public List<string>? TrackStatusValues { get; set; }
/// <summary>
/// 轨迹时区GMT
/// 兜底轨迹时区发生地
/// </summary>
public double? TrackTimeZone { get; set; }
/// <summary>
/// 是否完结
/// </summary>
public bool IsCompleted { get; set; }
}
public int? TrackTimePlaceValue { 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
{
@ -10,27 +10,17 @@ public class TrackPullContentConfigDto
/// <summary>
/// 服务商轨迹状态参数值
/// </summary>
public string? TrackStatusValue { get; set; }
public List<string> TrackStatusValues { get; set; } = new();
/// <summary>
/// 服务商轨迹代码参数值
/// 轨迹关键词(正向)
/// </summary>
public string? TrackContentCodeValue { get; set; }
public List<string> TrackKeywords { get; set; } = new();
/// <summary>
/// 服务商轨迹内容参数值
/// 轨迹关键词(反向)
/// </summary>
public string? TrackContentValue { get; set; }
/// <summary>
/// 轨迹关键词(正向),多个逗分隔
/// </summary>
public string? TrackKeyword { get; set; }
/// <summary>
/// 轨迹关键词(反向),多个逗分隔
/// </summary>
public string? TrackKeywordReverse { get; set; }
public List<string> TrackKeywordReverses { get; set; } = new();
/// <summary>
/// 轨迹发生地参数值(主数据枚举)
@ -38,12 +28,7 @@ public class TrackPullContentConfigDto
public int? TrackPlaceValue { get; set; }
/// <summary>
/// 轨迹时区GMT值
/// 轨迹时区发生地参数值
/// </summary>
public float? TrackTimeZoneValue { get; set; }
/// <summary>
/// 订单是否完成(由轨迹刷新配置决定)
/// </summary>
public bool IsCompleted { get; set; }
}
public int? TrackZonePlaceValue { 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
{
@ -46,4 +46,9 @@ public class TrackPullParamConfigDto
/// 轨迹明细数组路径
/// </summary>
public string TrackDetailsPath { get; set; } = null!;
}
/// <summary>
/// 轨迹内容代码
/// </summary>
public string? TrackContentCode { get; set; }
}

View File

@ -1,8 +1,8 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPull;
public class TrackPullParamWithContentConfigDto
public class TrackPullParamsWithContentDto
{
public TrackPullParamConfigDto ParamConfig { get; set; } = new();
public List<TrackPullContentConfigDto> ContentConfigs { 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 TrackRefreshAttach(int serviceProviderId, string serviceProviderName, int subSystemId, int orderType)
public TrackRefreshAttach(string serviceProviderCode, int subSystemId, int orderType)
{
ServiceProviderId = serviceProviderId;
ServiceProviderName = serviceProviderName;
ServiceProviderCode = serviceProviderCode;
SubSystemId = subSystemId;
OrderType = orderType;
}
/// <summary>
/// 服务商id
/// 服务商code
/// </summary>
public int ServiceProviderId { get; set; }
/// <summary>
/// 服务商name
/// </summary>
public string ServiceProviderName { get; set; }
public string ServiceProviderCode { get; set; }
/// <summary>
/// 订单类型(主数据枚举TrackOrderType)
@ -29,4 +23,4 @@ public class TrackRefreshAttach
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
}
}

View File

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

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushConfigInput
{
@ -20,14 +20,9 @@ public class EditTrackPushConfigInput
public OptionTypeNoNull Options { get; set; }
/// <summary>
/// 推送轨迹订单号
/// 服务商code
/// </summary>
public string? OrderNoName { get; set; }
/// <summary>
/// 服务商id
/// </summary>
public int? ServiceProviderId { get; set; }
public string? ServiceProviderCode { get; set; }
/// <summary>
/// 子系统id
@ -48,4 +43,19 @@ public class EditTrackPushConfigInput
/// 是否全量推送
/// </summary>
public bool? IsAllPush { 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

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class EditTrackPushContentInput
{
@ -63,4 +63,4 @@ public class EditTrackPushContentInput
/// 轨迹时区GMT
/// </summary>
public double? TrackTimeZone { 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.TrackPush;
@ -8,4 +8,4 @@ public class SortTrackPushContentInput
/// 排序信息
/// </summary>
public List<DropdownListDataDto> SortInfo { get; set; }
}
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushAfterUpdateOrderDto
{
@ -26,4 +26,4 @@ public class TrackPushAfterUpdateOrderDto
/// 问题描述
/// </summary>
public string? Message { get; set; }
}
}

View File

@ -71,4 +71,19 @@ public class TrackPushContentConfigDto
/// 扩展字段参数值
/// </summary>
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,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
namespace SJZY.Track.Application.Contract.Dtos.TrackPush;
public class TrackPushInput
{
@ -21,11 +21,11 @@ public class TrackUpdateInput
public class TrackItem
{
public string Location { get; set; } = null!;
public DateTime Date { get; set; }
public string 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

@ -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>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 所属节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 所属节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string? Code { get; set; }
/// <summary>
/// 轨迹状态
/// </summary>
public string? TrackStatus { get; set; }
/// <summary>
/// 轨迹状态
/// </summary>
public string? TrackStatus { get; set; }
/// <summary>
/// 轨迹状态英文
/// </summary>
public string? EntrackStatus { get; set; }
}
}
/// <summary>
/// 轨迹状态英文
/// </summary>
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>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 节点id
/// </summary>
public int NodeId { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
}
}
/// <summary>
/// 轨迹内容英文
/// </summary>
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>
public int Id { get; set; }
/// <summary>
/// Id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 子系统
/// </summary>
public string SubSystem { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 所属节点
/// </summary>
public string Node { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 所属轨迹状态
/// </summary>
public string TrackStatus { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹状态代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EntrackStatus { get; set; }
/// <summary>
/// 轨迹内容英文
/// </summary>
public string EnTrackStatus { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 是否完结
/// </summary>
public bool IsCompleted { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 是否广播
/// </summary>
public bool IsToMq { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string CreateUser { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 修改人
/// </summary>
public string UpdateUser { get; set; }
public class GetPageTrackStatusInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
public class GetPagedTrackStatusInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 选中的轨迹状态id
/// </summary>
public List<int>? SelectIds { get; set;}
}
}
/// <summary>
/// 关键字
/// </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/>
public class EditTrackTemplateContentInput
@ -11,16 +11,6 @@ public class EditTrackTemplateContentInput
/// <inheritdoc/>
public int? Id { get; set; }
/// <summary>
/// 是否可删
/// </summary>
public bool? IsCanDelete { get; set; }
/// <summary>
/// 是否对外
/// </summary>
public bool? IsExternal { get; set; }
/// <summary>
/// 轨迹内容id
/// </summary>
@ -30,4 +20,4 @@ public class EditTrackTemplateContentInput
/// 轨迹模板id
/// </summary>
public int? TrackTemplateId { get; set; }
}
}

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>
/// 获取轨迹模版分页输入
/// 子系统id
/// </summary>
public class GetPageTrackTemplateInput : PageInfoInput
{
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
public int SubSystemId { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
/// <summary>
/// 关键字
/// </summary>
public string? Keywords { get; set; }
///// <summary>
///// 轨迹模版id,轨迹映射的查询使用
///// </summary>
//public int TrackTemplateId { get; set; }
///// <summary>
///// 轨迹模版id,轨迹映射的查询使用
///// </summary>
//public int TrackTemplateId { get; set; }
/// <summary>
/// 选中的轨迹模版id
/// </summary>
public List<int>? SelectIds { get; set; }
}
}
/// <summary>
/// 选中的轨迹模版id
/// </summary>
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>
/// 获取轨迹模版详情
/// Id
/// </summary>
public class GetTrackTemplateDetailDto
{
/// <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; }
}
public int Id { get; set; }
/// <summary>
/// 获取轨迹模版列表
/// 子系统id
/// </summary>
public class GetTrackTemplateListDto
{
/// <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; }
}
public int SubSystemId { get; set; }
/// <summary>
/// 编辑轨迹模版
/// 子系统
/// </summary>
public class EditTrackTemplateInput
{
/// <summary>
/// Id
/// </summary>
public int Id { set; get; }
public string SubSystem { get; set; }
/// <summary>
/// 操作类型
/// </summary>
public OptionType Options { get; set; }
/// <summary>
/// 模版名称
/// </summary>
public string Name { get; set; }
/// <summary>
/// 子系统id
/// </summary>
public int SubSystemId { set; get; }
/// <summary>
/// 模版代码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 模板名称
/// </summary>
public string? Name { set; get; }
/// <summary>
/// 显示原轨迹
/// </summary>
public bool ShowOrigin { get; set; }
}
/// <summary>
/// 模板代码
/// </summary>
public string? Code { set; get; }
/// <summary>
/// 获取轨迹模版列表
/// </summary>
public class GetTrackTemplateListDto
{
/// <summary>
/// 轨迹模版id
/// </summary>
public int Id { get; set; }
/// <summary>
/// 显示原轨迹
/// </summary>
public bool ShowOrigin { 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;
@ -8,4 +8,4 @@ public class SortTrackTemplateContentInput
/// 排序信息
/// </summary>
public List<DropdownListDataDto> SortInfo { get; set; }
}
}

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
{
/// <summary>
/// 订单id
/// </summary>
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
{
@ -8,7 +8,7 @@ public class TrackChangeAfterUpdateOrderEvent
public int[] OrderIds { get; set; } = null!;
/// <summary>
/// 这条轨迹是否意味着完成(只有刷新会设为true)
/// 这条轨迹是否意味着订单已完成
/// </summary>
public bool IsCompleted { get; set; }
@ -36,4 +36,9 @@ public class TrackChangeAfterUpdateOrderEvent
/// 轨迹时区
/// </summary>
public float TrackTimeZone { get; set; }
}
/// <summary>
/// 时区缺失和发生地缺失标记,1表示时区,2表示发生地,3表示两种
/// </summary>
public int DeficiencyTagValue { get; set; }
}

View File

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Events;
namespace SJZY.Track.Application.Contract.Events;
public class TrackDeleteEvent
{
@ -26,4 +26,10 @@ public class TrackDeleteEvent
/// 已经处理过的订单
/// </summary>
public List<int> Visited { get; set; } = new();
}
public override string ToString()
{
return $"[TrackDelete by {OperationMan}] SubSystemId: {SubSystemId}, OrderIds: {string.Join(",",
OrderIds)}, TrackCodes: {string.Join(",", TrackCodes)}";
}
}

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

@ -1,4 +1,4 @@
namespace SJZY.Track.Application.Contract.Events;
namespace SJZY.Track.Application.Contract.Events;
public class TrackPushEvent
{
@ -12,6 +12,11 @@ public class TrackPushEvent
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 子系统代码
/// </summary>
public string SubSystemCode { get; set; }
/// <summary>
/// 客户id
/// </summary>
@ -64,4 +69,4 @@ public struct SystemPushStruct
/// 轨迹发生时区
/// </summary>
public float TrackTimeZone { get; set; }
}
}

View File

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

View File

@ -1,12 +1,17 @@
namespace SJZY.Track.Application.Contract.Events;
namespace SJZY.Track.Application.Contract.Events;
public class TrackUpsertEvent
{
/// <summary>
/// 子系统id(操作的订单都是相同子系统下的)
/// 子系统id
/// </summary>
public int SubSystemId { get; set; }
/// <summary>
/// 客户id
/// </summary>
public int CustomId { get; set; }
/// <summary>
/// 订单id
/// </summary>
@ -48,4 +53,11 @@ public class TrackUpsertEvent
public List<int> Visited { get; set; } = new();
public TrackRefreshStruct TrackRefreshData { 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.Core.Common.Dto;
global using SJZY.Expand.ABP.Core.Common.Dto;

View File

@ -5,7 +5,7 @@
<PropertyGroup>
<TargetFramework>net7.0</TargetFramework>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
<Version>7.0.2</Version>
<Version>7.0.3</Version>
<GenerateDocumentationFile>True</GenerateDocumentationFile>
</PropertyGroup>
<ItemGroup>

View File

@ -0,0 +1,35 @@
using SJZY.Track.Application.Contract.Dtos.Forewarning;
using SJZY.Track.Application.Contract.Events;
namespace SJZY.Track.Application.Contract.Services;
public interface IForewarningCacheService
{
/// <summary>
/// 获取预警规则,如果没有则返回null
/// </summary>
/// <param name="subSystemId">子系统id</param>
/// <param name="customerId">客户id</param>
/// <returns></returns>
Task<List<ForewarningRuleCacheEntry>?> GetRulesAsync(int subSystemId, int customerId);
/// <summary>
/// 重置本地缓存
/// </summary>
/// <returns></returns>
Task Clear(ClearRulCacheEvent @event);
/// <summary>
/// 清除redis 缓存
/// </summary>
/// <returns></returns>
Task ClearRedisByAreaId(int areaId);
/// <summary>
/// 清除redis 缓存
/// </summary>
/// <param name="subSystemId">子系统id</param>
/// <param name="customerId">客户id</param>
/// <returns></returns>
Task ClearRedisBySystemIdAndCustomer(int subSystemId, int customerId);
}

View File

@ -0,0 +1,22 @@
using SJZY.Track.Application.Contract.Dtos.Forewarning;
namespace SJZY.Track.Application.Contract.Services;
/// <summary>
/// 预警通知服务接口定义。
/// 提供创建、删除预警通知和发送通知的功能。
/// </summary>
public interface IForewarningNotifyService
{
/// <summary>
/// 创建预警通知。
/// </summary>
/// <param name="order">预警订单模型。</param>
/// <returns>创建操作的结果,以整数形式返回。</returns>
Task WarningCalculateAsync(WarningDto order);
/// <summary>
/// 发送通知。
/// </summary>
Task<int> SendNotificationAsync(int subSystemId);
}

View File

@ -0,0 +1,5 @@
namespace SJZY.Track.Application.Contract.Services;
public interface IKpiAreaCacheService
{
}

View File

@ -1,5 +1,5 @@
namespace SJZY.Track.Application.Contract.Services;
namespace SJZY.Track.Application.Contract.Services;
public interface ITrackContentService
{
}
}

View File

@ -1,5 +1,5 @@
namespace SJZY.Track.Application.Contract.Services;
namespace SJZY.Track.Application.Contract.Services;
public interface ITrackFlagService
{
}
}

View File

@ -1,34 +1,24 @@
using SJZY.Track.Application.Contract.Dtos.TrackPull;
using SJZY.Track.Application.Contract.Dtos.TrackPull;
namespace SJZY.Track.Application.Contract.Services;
public interface ITrackPullCacheService
{
string TrackPullKey(int subSystemId, int serviceProviderId);
string TrackPullContentKey(int subSystemId, int serviceProviderId);
/// <summary>
/// 获取所有拉取配置
/// </summary>
/// <returns></returns>
Task<List<TrackPullConfigDto>> GetAllPullConfigsAsync();
string TrackPullKey(int subSystemId, string serviceProviderCode);
/// <summary>
/// 获取服务商拉取配置
/// </summary>
/// <param name="subSystemId">子系统id</param>
/// <param name="serviceProviderId">服务商id</param>
/// <param name="serviceProviderCode">服务商code</param>
/// <returns></returns>
Task<TrackPullParamWithContentConfigDto?>
GetPullParamWithContentConfigAsync(int subSystemId, int serviceProviderId);
Task<TrackPullParamsWithContentDto?>
GetPullParamsWithContentAsync(int subSystemId, string serviceProviderCode);
/// <summary>
/// 设置拉取配置缓存
/// </summary>
/// <param name="id"></param>
/// <param name="subSystemId">子系统id</param>
/// <param name="serviceProviderId">服务商id</param>
/// <returns></returns>
Task<TrackPullParamWithContentConfigDto?> SetPullConfigAsync(int? id = null, int? subSystemId = null,
int? serviceProviderId = null);
}
Task<TrackPullParamsWithContentDto?> SetPullConfigAsync(int id);
}

View File

@ -1,4 +1,4 @@
using SJZY.Track.Application.Contract.Dtos.TrackPush;
using SJZY.Track.Application.Contract.Dtos.TrackPush;
namespace SJZY.Track.Application.Contract.Services;
@ -19,4 +19,4 @@ public interface ITrackPushCacheService
/// <param name="customId"></param>
/// <returns></returns>
Task<List<TrackPushContentConfigDto>?> SetPushContentConfigsAsync(int subSystemId, int customId);
}
}

View File

@ -1,20 +1,15 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using Volo.Abp;
namespace SJZY.Track.Application.Contract.Services
namespace SJZY.Track.Application.Contract.Services;
public interface ITrackPushConfigService : IRemoteService
{
public interface ITrackPushConfigService : IRemoteService
{
/// <summary>
/// 查询轨迹推送配置关系
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto> QueryTrackPullMappingsAsync(QueryTrackPullMappingsInput input);
}
/// <summary>
/// 查询轨迹推送配置关系
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto<List<QueryTrackPullMappingsInfo>>> QueryTrackPullMappingsAsync(
QueryTrackPullMappingsInput input);
}

View File

@ -1,5 +1,5 @@
namespace SJZY.Track.Application.Contract.Services;
namespace SJZY.Track.Application.Contract.Services;
public interface ITrackStatusService
{
}
}

View File

@ -1,7 +1,7 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using Volo.Abp;
namespace SJZY.Track.Application.Contract.Services;
namespace SJZY.Track.Application.Contract.Services.ProvideServices;
public interface IOrderService : IRemoteService
{
@ -10,14 +10,14 @@ public interface IOrderService : IRemoteService
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto> UpsertAsync(UpsertOrderInput input);
Task<UnifyResultDto<IdBaseDto>> UpsertAsync(UpsertOrderInput input);
/// <summary>
/// 删除订单
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto> DeleteOrderAsync(DeleteOrderInput input);
Task<UnifyResultDto<IdBaseDto>> DeleteOrderAsync(DeleteOrderInput input);
/// <summary>
/// 关联订单
@ -25,4 +25,11 @@ public interface IOrderService : IRemoteService
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto> LinkOrderAsync(LinkOrderInput input);
}
/// <summary>
/// 修改服务商拉取信息
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public Task<UnifyResultDto> UpdateOrderPullConfigsAsync(UpdateOrderPullConfigsInput input);
}

View File

@ -0,0 +1,14 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using Volo.Abp;
namespace SJZY.Track.Application.Contract.Services.ProvideServices;
public interface ITrackPullService : IRemoteService
{
/// <summary>
/// 刷新轨迹
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public Task<bool> RefreshTrackAsync(RefreshTrackInput input);
}

View File

@ -0,0 +1,31 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Dtos.TrackOrder;
using SJZY.Track.Application.Contract.Dtos.TrackPush;
using Volo.Abp;
namespace SJZY.Track.Application.Contract.Services.ProvideServices;
public interface ITrackPushService : IRemoteService
{
/// <summary>
/// 推送轨迹
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public Task<string> PushTrackAsync(PushTrackInput input);
/// <summary>
/// 获取轨迹推送内容
/// </summary>
/// <returns></returns>
/// <param name="subSystemId">子系统id</param>
/// <param name="customerId">客户id</param>
public Task<List<TrackPushContentDto>> GetTrackPushContentListAsync(int subSystemId, int customerId);
/// <summary>
/// 获取轨迹推送记录
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
public Task<List<TrackPushRecordOutput>> GetTrackPushRecordsAsync(OrderNoInfo input);
}

View File

@ -1,7 +1,7 @@
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using SJZY.Track.Application.Contract.Dtos.ProvideServices;
using Volo.Abp;
namespace SJZY.Track.Application.Contract.Services;
namespace SJZY.Track.Application.Contract.Services.ProvideServices;
public interface ITrackService : IRemoteService
{
@ -31,5 +31,5 @@ public interface ITrackService : IRemoteService
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
Task<UnifyResultDto> QueryAsync(GetTrackInput input);
}
Task<UnifyResultDto<List<GetTrackOutput>>> QueryAsync(GetTrackInput input);
}

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