diff --git a/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs
new file mode 100644
index 00000000..f715d0cf
--- /dev/null
+++ b/src/SJZY.Track.Application/AutoMapper/TrackTemplateAutoMapperProfile.cs
@@ -0,0 +1,25 @@
+using AutoMapper;
+using SJZY.Track.Application.Dtos.Demo;
+using SJZY.Track.Application.Dtos.TrackTemplates;
+using SJZY.Track.Repository.TrackTemplate.ValueObjects;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Application.AutoMapper
+{
+ ///
+ /// 轨迹模版自动映射
+ ///
+ public class TrackTemplateAutoMapperProfile : Profile
+ {
+ public TrackTemplateAutoMapperProfile()
+ {
+ CreateMap(MemberList.None);
+
+ //CreateMap, UnifyResultDto>(MemberList.None);
+ }
+ }
+}
diff --git a/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs
new file mode 100644
index 00000000..c118b36b
--- /dev/null
+++ b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetPageTrackTemplateInput.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Application.Dtos.TrackTemplates
+{
+ ///
+ /// 获取轨迹模版分页输入
+ ///
+ public class GetPageTrackTemplateInput : PageInfoInput
+ {
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 关键字
+ ///
+ public string Keywords { get; set; }
+ }
+}
diff --git a/src/SJZY.Track.Application/Dtos/TrackTemplates/GetTrackDetailDto.cs b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetTrackDetailDto.cs
new file mode 100644
index 00000000..ca928b8c
--- /dev/null
+++ b/src/SJZY.Track.Application/Dtos/TrackTemplates/GetTrackDetailDto.cs
@@ -0,0 +1,102 @@
+using Microsoft.OpenApi.Writers;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Application.Dtos.TrackTemplates
+{
+ ///
+ /// 获取轨迹模版详情
+ ///
+ public class GetTrackTemplateDetailDto
+ {
+ ///
+ /// Id
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 子系统
+ ///
+ public string SubSystem { get; set; }
+
+ ///
+ /// 模版名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 模版代码
+ ///
+ public string Code { get; set; }
+ }
+
+ ///
+ /// 获取轨迹模版列表
+ ///
+ public class GetTrackTemplateListDto
+ {
+ ///
+ /// 轨迹模版id
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 模板名称
+ ///
+ public string Name { set; get; }
+
+ ///
+ /// 模版代码
+ ///
+ public string Code { get; set; }
+
+ ///
+ /// 所属子系统
+ ///
+ public string SubSystem { set; get; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime CreateTime { get; set; }
+ }
+
+ ///
+ /// 编辑轨迹模版
+ ///
+ public class EditTrackTemplateInput
+ {
+ ///
+ /// Id
+ ///
+ public int Id { set; get; }
+
+ ///
+ /// 操作类型
+ ///
+ public OptionType Options { get; set; }
+
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { set; get; }
+
+ ///
+ /// 模板名称
+ ///
+ public int Name { set; get; }
+
+ ///
+ /// 模板代码
+ ///
+ public int Code { set; get; }
+ }
+}
diff --git a/src/SJZY.Track.Application/Services/TrackTemplates/ITrackTemplateService.cs b/src/SJZY.Track.Application/Services/TrackTemplates/ITrackTemplateService.cs
new file mode 100644
index 00000000..b082a1ff
--- /dev/null
+++ b/src/SJZY.Track.Application/Services/TrackTemplates/ITrackTemplateService.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Application.Services.TrackTemplates
+{
+ public interface ITrackTemplateService
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs
new file mode 100644
index 00000000..eaa7d010
--- /dev/null
+++ b/src/SJZY.Track.Application/Services/TrackTemplates/TrackTemplateService.cs
@@ -0,0 +1,106 @@
+using SJZY.Expand.ABP.Core.Common.Dto;
+using SJZY.Track.Application.Dtos.TrackTemplates;
+using SJZY.Track.Repository.TrackTemplate.Entitys;
+using SJZY.Track.Repository.TrackTemplate.Services;
+using SJZY.Track.Repository.TrackTemplate.ValueObjects;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.ObjectMapping;
+
+namespace SJZY.Track.Application.Services.TrackTemplates
+{
+ ///
+ /// 轨迹模版
+ ///
+ [ApiExplorerSettings(GroupName = "轨迹模版")]
+ [Route("/Track")]
+ public class TrackTemplateService : ApplicationService, ITrackTemplateService, IScopedDependency
+ {
+ private readonly ITrackTemplateRepository _trackTemplateRepository;
+
+ public TrackTemplateService(
+ ITrackTemplateRepository trackTemplateRepository
+ )
+ {
+ this._trackTemplateRepository=trackTemplateRepository;
+ }
+
+ ///
+ /// 轨迹模版编辑
+ ///
+ ///
+ [HttpPost("/Template/Edit")]
+ public async Task EditAsync(EditTrackTemplateInput input)
+ {
+ return input.Options switch
+ {
+ OptionType.新增 => await AddAsync(input),
+ OptionType.修改 => await UpdateAsync(input),
+ OptionType.删除 => await DeleteAsync(input),
+ _ => throw new BusinessException(message: "当前操作动作不合法")
+ };
+ }
+
+ ///
+ /// 根据模版id获取轨迹模版
+ ///
+ ///
+ ///
+ [HttpGet("/Template/GetDetail")]
+ public async Task> GetDetailAsync(int id)
+ {
+ var detailInfo = await _trackTemplateRepository.GetDetailAsync(id);
+ if (detailInfo==null)
+ {
+ return new UnifyResultDto(false, null, "未查询到轨迹模版");
+ }
+ var dto = ObjectMapper.Map(detailInfo);
+ return new UnifyResultDto("200", "", dto);
+ }
+
+ ///
+ /// 获取分页轨迹模版
+ ///
+ ///
+ ///
+ [HttpPost("/Template/GetList")]
+ public async Task> GetPageTrackTemplate(GetPageTrackTemplateInput input)
+ {
+ var vo = ObjectMapper.Map(input);
+ var resultDto = await _trackTemplateRepository.GetPageTrackTemplate(vo);
+ var pageResultDto = ObjectMapper.Map, UnifyPageResultDto>(resultDto);
+
+ return pageResultDto;
+ }
+
+ #region 私有方法
+ private async Task AddAsync(EditTrackTemplateInput input)
+ {
+ var entity = ObjectMapper.Map(input);
+ var isTrue = await _trackTemplateRepository.InsertAsync(entity);
+
+ return new UnifyResultDto("200", "新增成功", isTrue);
+ }
+
+ private async Task UpdateAsync(EditTrackTemplateInput input)
+ {
+ var templateEntity = await _trackTemplateRepository.GetFirstAsync(a => a.Id==input.Id);
+ ObjectMapper.Map(input, templateEntity);
+ var isTrue = await _trackTemplateRepository.UpdateAsync(templateEntity);
+
+ return new UnifyResultDto("200", "修改成功", isTrue);
+ }
+
+ private async Task DeleteAsync(EditTrackTemplateInput input)
+ {
+ var isTrue = await _trackTemplateRepository.DeleteByIdAsync(input.Id);
+
+ return new UnifyResultDto("200", "删除成功", isTrue);
+ }
+ #endregion
+ }
+}
diff --git a/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateInputValidation.cs b/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateInputValidation.cs
new file mode 100644
index 00000000..da2ac89b
--- /dev/null
+++ b/src/SJZY.Track.Application/Validations/TrackTemplates/EditTrackTemplateInputValidation.cs
@@ -0,0 +1,37 @@
+using FluentValidation;
+using SJZY.Track.Application.Dtos.Demo;
+using SJZY.Track.Application.Dtos.TrackTemplates;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Application.Validations.TrackTemplates
+{
+ ///
+ /// 轨迹模版编辑校验
+ ///
+ public class EditTrackTemplateInputValidation : AbstractValidator, IValidationEnabled
+ {
+ public EditTrackTemplateInputValidation()
+ {
+ //条件分支
+ When(x => x.Options == OptionType.修改 || x.Options == OptionType.删除, () =>
+ {
+ RuleFor(x => x.Id).GreaterThan(0).WithMessage("修改或删除时Id必须大于0!");
+ });
+
+ When(x => x.Options == OptionType.新增, () =>
+ {
+ RuleFor(x => x.Id).Equal(0).WithMessage("新增时Id必须等于0!");
+ });
+
+ When(x => x.Options == OptionType.修改 || x.Options == OptionType.新增, () =>
+ {
+ RuleFor(x => x.Name).NotNull().WithMessage("模版名称必填!").NotEmpty().WithMessage("模版名称不能为空!");
+ RuleFor(x => x.Code).NotNull().WithMessage("模版代码必填!").NotEmpty().WithMessage("模版代码不能为空!");
+ });
+ }
+ }
+}
diff --git a/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetPageTrackTemplateVO.cs b/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetPageTrackTemplateVO.cs
new file mode 100644
index 00000000..50c343e8
--- /dev/null
+++ b/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetPageTrackTemplateVO.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Repository.TrackTemplate.ValueObjects
+{
+ public class GetPageTrackTemplateVO : PageInfoInput
+ {
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 关键字
+ ///
+ public string Keywords { get; set; }
+ }
+}
diff --git a/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetTrackTemplateDetailVO.cs b/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetTrackTemplateDetailVO.cs
new file mode 100644
index 00000000..b5393e84
--- /dev/null
+++ b/src/SJZY.Track.Repository/TrackTemplate/ValueObjects/GetTrackTemplateDetailVO.cs
@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SJZY.Track.Repository.TrackTemplate.ValueObjects
+{
+ ///
+ /// 获取轨迹模版明细
+ ///
+ public class GetTrackTemplateDetailVO
+ {
+ ///
+ /// Id
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 子系统id
+ ///
+ public int SubSystemId { get; set; }
+
+ ///
+ /// 子系统
+ ///
+ public string SubSystem { get; set; }
+
+ ///
+ /// 模版名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 模版代码
+ ///
+ public string Code { get; set; }
+ }
+
+ ///
+ /// 获取轨迹模版列表
+ ///
+ public class GetTrackTemplateListVO
+ {
+ ///
+ /// 轨迹模版id
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 模板名称
+ ///
+ public string Name { set; get; }
+
+ ///
+ /// 模版代码
+ ///
+ public string Code { get; set; }
+
+ ///
+ /// 所属子系统
+ ///
+ public string SubSystem { set; get; }
+
+ ///
+ /// 创建时间
+ ///
+ public DateTime? CreateTime { get; set; }
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Entitys/VExternalSubjectEntity.cs b/src/SJZY.Track.Repository/VData/Entitys/VExternalSubjectEntity.cs
new file mode 100644
index 00000000..9cff66ea
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Entitys/VExternalSubjectEntity.cs
@@ -0,0 +1,131 @@
+namespace SJZY.Track.Repository.VData.Entitys
+{
+ ///
+ /// 外部主体
+ ///
+ [SugarTable("v_external_subject")]
+ public class VExternalSubjectEntity : IFullAuditedBasicEntitys
+ {
+
+ ///
+ ///
+ ///
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 公司简称
+ ///
+ [SugarColumn(ColumnName = "Abbreviation")]
+ public string Abbreviation { get; set; }
+
+ ///
+ /// 所属网络(主数据枚举表 (属性=AffiliatedNetwork)WCA,WEB,Atlas,CCA,CTN,CLN,GLN,PCN,SCN,WPA,EGLN,Other)
+ ///
+ [SugarColumn(ColumnName = "AffiliatedNetwork")]
+ public int? AffiliatedNetwork { get; set; }
+
+ ///
+ /// 公司代码
+ ///
+ [SugarColumn(ColumnName = "Code")]
+ public string Code { get; set; }
+
+ ///
+ /// (主数据枚举表 (属性=CustomerQuality)国内同行,国外同行,国内直客,国外直客,海外代理,国内贸易公司,国外贸易公司,仅供应商,内部子公司,个人,内部子部门)
+ ///
+ [SugarColumn(ColumnName = "CooperationNature")]
+ public int? CooperationNature { get; set; }
+
+ ///
+ /// 公司英文名
+ ///
+ [SugarColumn(ColumnName = "EnName")]
+ public string EnName { get; set; }
+
+ ///
+ /// 是否核准
+ ///
+ [SugarColumn(ColumnName = "IsApprove")]
+ public bool IsApprove { get; set; }
+
+ ///
+ /// 是否黑名单
+ ///
+ [SugarColumn(ColumnName = "IsBlacklist")]
+ public bool IsBlacklist { get; set; }
+
+ ///
+ /// 是否订香港
+ ///
+ [SugarColumn(ColumnName = "IsBookingHongKong")]
+ public bool? IsBookingHongKong { get; set; }
+
+ ///
+ /// 是否海外代理
+ ///
+ [SugarColumn(ColumnName = "IsOverseasAgent")]
+ public bool IsOverseasAgent { get; set; }
+
+ ///
+ /// 是否自行结算
+ ///
+ [SugarColumn(ColumnName = "IsSelfSettlement")]
+ public bool IsSelfSettlement { get; set; }
+
+ ///
+ /// 是否结算主体
+ ///
+ [SugarColumn(ColumnName = "IsSettlementSubject")]
+ public bool IsSettlementSubject { get; set; }
+
+ ///
+ /// 主网络,从多选的所属网络中选其中一个
+ ///
+ [SugarColumn(ColumnName = "MainNetwork")]
+ public int? MainNetwork { get; set; }
+
+ ///
+ /// 公司名称
+ ///
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ ///
+ /// 性质,t_enum_value_info表Property="CompanyQuality;1 国有企业,2 国有控股企业,3 外资企业,4 合资企业,5 股份企业,6 私营企业,7 个体户
+ ///
+ [SugarColumn(ColumnName = "Nature")]
+ public int? Nature { get; set; }
+
+ ///
+ /// 内部组织id
+ ///
+ [SugarColumn(ColumnName = "OrgId")]
+ public int? OrgId { get; set; }
+
+ ///
+ /// 母公司id
+ ///
+ [SugarColumn(ColumnName = "ParentId")]
+ public int? ParentId { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [SugarColumn(ColumnName = "Remark")]
+ public string Remark { get; set; }
+
+ ///
+ /// 类型,位运算存储;t_enum_value_info表Property="SubjectType;1客户,2供应商,4内部子公司
+ ///
+ [SugarColumn(ColumnName = "Type")]
+ public int Type { get; set; }
+
+ ///
+ /// 已验证公司名称
+ ///
+ [SugarColumn(ColumnName = "VerifiedName")]
+ public string VerifiedName { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/VData/Entitys/VServiceProviderEntity.cs b/src/SJZY.Track.Repository/VData/Entitys/VServiceProviderEntity.cs
new file mode 100644
index 00000000..45a28246
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Entitys/VServiceProviderEntity.cs
@@ -0,0 +1,77 @@
+namespace SJZY.Track.Repository.VData.Entitys
+{
+ ///
+ /// 服务商主表
+ ///
+ [SugarTable("v_service_provider")]
+ public class VServiceProviderEntity : IFullAuditedBasicEntitys
+ {
+
+ ///
+ /// 自增主键
+ ///
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 授权接口Code
+ ///
+ [SugarColumn(ColumnName = "AuthInterfaceCode")]
+ public string AuthInterfaceCode { get; set; }
+
+ ///
+ /// 服务商代码
+ ///
+ [SugarColumn(ColumnName = "Code")]
+ public string Code { get; set; }
+
+ ///
+ /// 描述
+ ///
+ [SugarColumn(ColumnName = "Description")]
+ public string Description { get; set; }
+
+ ///
+ /// 流程代码
+ ///
+ [SugarColumn(ColumnName = "FlowCode")]
+ public string FlowCode { get; set; }
+
+ ///
+ /// 是否禁用账户验证
+ ///
+ [SugarColumn(ColumnName = "IsDisableAuth")]
+ public bool IsDisableAuth { get; set; }
+
+ ///
+ /// 服务商名称
+ ///
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ ///
+ /// 请求超时(s)
+ ///
+ [SugarColumn(ColumnName = "Timeout")]
+ public int? Timeout { get; set; }
+
+ ///
+ /// 轨迹时区
+ ///
+ [SugarColumn(ColumnName = "TraceTimeZone")]
+ public string TraceTimeZone { get; set; }
+
+ ///
+ /// 服务商类型(弃用)
+ ///
+ [SugarColumn(ColumnName = "Type")]
+ public int Type { get; set; }
+
+ ///
+ /// 服务商类型(多选)
+ ///
+ [SugarColumn(ColumnName = "Types")]
+ public string Types { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/VData/Entitys/VSystemEntity.cs b/src/SJZY.Track.Repository/VData/Entitys/VSystemEntity.cs
new file mode 100644
index 00000000..76e5fcdb
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Entitys/VSystemEntity.cs
@@ -0,0 +1,155 @@
+namespace SJZY.Track.Repository.VData.Entitys
+{
+ ///
+ ///
+ ///
+ [SugarTable("v_system")]
+ public class VSystemEntity : IFullAuditedBasicEntitys
+ {
+
+ ///
+ /// 子系统id
+ ///
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 关联的内部子系统
+ ///
+ [SugarColumn(ColumnName = "AssociatedInternalSubsystem")]
+ public int? AssociatedInternalSubsystem { get; set; }
+
+ ///
+ /// 子系统授权类型(1.标准 2.因素)
+ ///
+ [SugarColumn(ColumnName = "AuthType")]
+ public bool AuthType { get; set; }
+
+ ///
+ /// 中文名
+ ///
+ [SugarColumn(ColumnName = "CnName")]
+ public string CnName { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [SugarColumn(ColumnName = "Comment")]
+ public string Comment { get; set; }
+
+ ///
+ /// 安装包下载链接,当类型为安装包时,必填
+ ///
+ [SugarColumn(ColumnName = "DownloadUrl")]
+ public string DownloadUrl { get; set; }
+
+ ///
+ /// 英文名
+ ///
+ [SugarColumn(ColumnName = "EnName")]
+ public string EnName { get; set; }
+
+ ///
+ /// 飞书应用ID
+ ///
+ [SugarColumn(ColumnName = "FsAppId")]
+ public string FsAppId { get; set; }
+
+ ///
+ /// 欠费允许下单(默认为是)
+ ///
+ [SugarColumn(ColumnName = "IsAllowPlaceOrder")]
+ public bool? IsAllowPlaceOrder { get; set; }
+
+ ///
+ /// 是否开通授信
+ ///
+ [SugarColumn(ColumnName = "IsCredit")]
+ public bool? IsCredit { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ [SugarColumn(ColumnName = "IsEnable")]
+ public bool IsEnable { get; set; }
+
+ ///
+ /// 是否启用业务主体(判断登录是否选择业务主体)
+ ///
+ [SugarColumn(ColumnName = "IsEnableBusiness")]
+ public bool? IsEnableBusiness { get; set; }
+
+ ///
+ /// 是否结束初始化
+ ///
+ [SugarColumn(ColumnName = "IsEndInit")]
+ public bool IsEndInit { get; set; }
+
+ ///
+ /// 是否开通余额
+ ///
+ [SugarColumn(ColumnName = "IsOpenBalance")]
+ public bool IsOpenBalance { get; set; }
+
+ ///
+ /// 子系统唯一值
+ ///
+ [SugarColumn(ColumnName = "Key")]
+ public string Key { get; set; }
+
+ ///
+ /// 子系统Logo图标
+ ///
+ [SugarColumn(ColumnName = "LogoIcon")]
+ public string LogoIcon { get; set; }
+
+ ///
+ /// 主账号Id
+ ///
+ [SugarColumn(ColumnName = "MainUserId")]
+ public int? MainUserId { get; set; }
+
+ ///
+ /// 移动端链接
+ ///
+ [SugarColumn(ColumnName = "MobileUrl")]
+ public string MobileUrl { get; set; }
+
+ ///
+ /// 运营主体
+ ///
+ [SugarColumn(ColumnName = "OperatingSubject")]
+ public int? OperatingSubject { get; set; }
+
+ ///
+ /// 排序值
+ ///
+ [SugarColumn(ColumnName = "Sort")]
+ public int? Sort { get; set; }
+
+ ///
+ /// 跨境电商物流1 干线物流2 国内代理贸易3 非业务类4
+ ///
+ [SugarColumn(ColumnName = "SysBusinessType")]
+ public int? SysBusinessType { get; set; }
+
+ ///
+ /// 系统所属1:内部 2:外部
+ ///
+ [SugarColumn(ColumnName = "SystemProperty")]
+ public int SystemProperty { get; set; }
+
+ ///
+ /// 子系统类型:1-Web、2-安装包exe
+ ///
+ [SugarColumn(ColumnName = "SystemType")]
+ public int? SystemType { get; set; }
+
+ ///
+ /// 子系统token
+ ///
+ [SugarColumn(ColumnName = "Token")]
+ public string Token { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/VData/Entitys/VUserEntity.cs b/src/SJZY.Track.Repository/VData/Entitys/VUserEntity.cs
new file mode 100644
index 00000000..1049171f
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Entitys/VUserEntity.cs
@@ -0,0 +1,107 @@
+namespace SJZY.Track.Repository.VData.Entitys
+{
+ ///
+ /// 用户信息表
+ ///
+ [SugarTable("v_user")]
+ public class VUserEntity : IFullAuditedBasicEntitys
+ {
+
+ ///
+ /// 用户id
+ ///
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ ///
+ /// 账号
+ ///
+ [SugarColumn(ColumnName = "Account")]
+ public string Account { get; set; }
+
+ ///
+ /// 公司Id
+ ///
+ [SugarColumn(ColumnName = "CompanyId")]
+ public int? CompanyId { get; set; }
+
+ ///
+ /// 国际区号
+ ///
+ [SugarColumn(ColumnName = "CountryCode")]
+ public string CountryCode { get; set; }
+
+ ///
+ /// 默认语言枚举
+ ///
+ [SugarColumn(ColumnName = "DefaultLang")]
+ public bool? DefaultLang { get; set; }
+
+ ///
+ /// 部门Id
+ ///
+ [SugarColumn(ColumnName = "DeptId")]
+ public int? DeptId { get; set; }
+
+ ///
+ /// 员工id
+ ///
+ [SugarColumn(ColumnName = "EmployeeId")]
+ public int? EmployeeId { get; set; }
+
+ ///
+ /// 英文名
+ ///
+ [SugarColumn(ColumnName = "EnName")]
+ public string EnName { get; set; }
+
+ ///
+ /// 是否业务员
+ ///
+ [SugarColumn(ColumnName = "IsBusiness")]
+ public bool? IsBusiness { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ [SugarColumn(ColumnName = "IsEnable")]
+ public bool IsEnable { get; set; }
+
+ ///
+ /// 固定电话(座机号码)
+ ///
+ [SugarColumn(ColumnName = "LandlinePhone")]
+ public string LandlinePhone { get; set; }
+
+ ///
+ /// 姓名
+ ///
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; }
+
+ ///
+ /// 用户直接组织节点Id
+ ///
+ [SugarColumn(ColumnName = "OrgId")]
+ public int? OrgId { get; set; }
+
+ ///
+ /// 密码
+ ///
+ [SugarColumn(ColumnName = "PassWord")]
+ public string PassWord { get; set; }
+
+ ///
+ /// 绑定手机号
+ ///
+ [SugarColumn(ColumnName = "TelPhone")]
+ public string TelPhone { get; set; }
+
+ ///
+ /// 用户来源(1.员工入职 2.手动添加 3.其他)
+ ///
+ [SugarColumn(ColumnName = "UserOrigin")]
+ public bool? UserOrigin { get; set; }
+
+ }
+}
\ No newline at end of file
diff --git a/src/SJZY.Track.Repository/VData/Services/ExternalSubjectRepository.cs b/src/SJZY.Track.Repository/VData/Services/ExternalSubjectRepository.cs
new file mode 100644
index 00000000..cc3763b1
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/ExternalSubjectRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public class ExternalSubjectRepository : BasicRepository, IExternalSubjectRepository, IScopedDependency
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/IExternalSubjectRepository.cs b/src/SJZY.Track.Repository/VData/Services/IExternalSubjectRepository.cs
new file mode 100644
index 00000000..3860ca53
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/IExternalSubjectRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public interface IExternalSubjectRepository : ISimpleClient
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/IServiceProviderRepository.cs b/src/SJZY.Track.Repository/VData/Services/IServiceProviderRepository.cs
new file mode 100644
index 00000000..bc3b5182
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/IServiceProviderRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public interface IServiceProviderRepository : ISimpleClient
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/ISystemRepository.cs b/src/SJZY.Track.Repository/VData/Services/ISystemRepository.cs
new file mode 100644
index 00000000..ae4864df
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/ISystemRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public interface ISystemRepository : ISimpleClient
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/IUserRepository.cs b/src/SJZY.Track.Repository/VData/Services/IUserRepository.cs
new file mode 100644
index 00000000..63847127
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/IUserRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public interface IUserRepository : ISimpleClient
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/ServiceProviderRepository.cs b/src/SJZY.Track.Repository/VData/Services/ServiceProviderRepository.cs
new file mode 100644
index 00000000..097c3ae7
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/ServiceProviderRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public class VServiceProviderRepository : BasicRepository, IServiceProviderRepository, IScopedDependency
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/SystemRepository.cs b/src/SJZY.Track.Repository/VData/Services/SystemRepository.cs
new file mode 100644
index 00000000..5193a325
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/SystemRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public class SystemRepository : BasicRepository, ISystemRepository, IScopedDependency
+ {
+
+ }
+}
diff --git a/src/SJZY.Track.Repository/VData/Services/UserRepository.cs b/src/SJZY.Track.Repository/VData/Services/UserRepository.cs
new file mode 100644
index 00000000..2a3b76df
--- /dev/null
+++ b/src/SJZY.Track.Repository/VData/Services/UserRepository.cs
@@ -0,0 +1,9 @@
+using SJZY.Track.Repository.VData.Entitys;
+
+namespace SJZY.Track.Repository.VData.Services
+{
+ public class UserRepository : BasicRepository, IUserRepository, IScopedDependency
+ {
+
+ }
+}