Przeglądaj źródła

新增任务和任务日志接口
删除职位

zhontai 2 lat temu
rodzic
commit
2557cb6974
40 zmienionych plików z 380 dodań i 951 usunięć
  1. 1 1
      src/hosts/ZhonTai.Host/InitData/Admin/ad_employee.json
  2. 1 1
      src/hosts/ZhonTai.Host/InitData/Admin/ad_employee.tenant.json
  3. 0 9
      src/hosts/ZhonTai.Host/InitData/Admin/ad_position.json
  4. 0 10
      src/hosts/ZhonTai.Host/InitData/Admin/ad_position.tenant.json
  5. 9 0
      src/platform/ZhonTai.Admin/Core/Attributes/ScanTaskNamesAttribute.cs
  6. 0 1
      src/platform/ZhonTai.Admin/Domain/Employee/EmployeeEntity.cs
  7. 3 3
      src/platform/ZhonTai.Admin/Domain/Employee/Output/EmployeeDataOutput.cs
  8. 0 10
      src/platform/ZhonTai.Admin/Domain/Position/Dto/PositionGetPageDto.cs
  9. 0 8
      src/platform/ZhonTai.Admin/Domain/Position/IPositionRepository.cs
  10. 0 43
      src/platform/ZhonTai.Admin/Domain/Position/Output/PositionDataOutput.cs
  11. 0 49
      src/platform/ZhonTai.Admin/Domain/Position/PositionEntity.cs
  12. 0 88
      src/platform/ZhonTai.Admin/HttpApi/Controllers/PositionController.cs
  13. 0 10
      src/platform/ZhonTai.Admin/Repositories/CustomGenerateData.cs
  14. 0 4
      src/platform/ZhonTai.Admin/Repositories/CustomSyncData.cs
  15. 0 13
      src/platform/ZhonTai.Admin/Repositories/Position/PositionRepository.cs
  16. 3 3
      src/platform/ZhonTai.Admin/Services/Employee/Input/EmployeeAddInput.cs
  17. 1 1
      src/platform/ZhonTai.Admin/Services/Employee/Output/EmployeeGetOutput.cs
  18. 6 1
      src/platform/ZhonTai.Admin/Services/Employee/Output/EmployeeListOutput.cs
  19. 0 24
      src/platform/ZhonTai.Admin/Services/Position/IPositionService.cs
  20. 0 28
      src/platform/ZhonTai.Admin/Services/Position/Input/PositionAddInput.cs
  21. 0 18
      src/platform/ZhonTai.Admin/Services/Position/Input/PositionUpdateInput.cs
  22. 0 8
      src/platform/ZhonTai.Admin/Services/Position/Output/PositionGetOutput.cs
  23. 0 37
      src/platform/ZhonTai.Admin/Services/Position/Output/PositionListOutput.cs
  24. 0 140
      src/platform/ZhonTai.Admin/Services/Position/PositionService.cs
  25. 40 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskAddInput.cs
  26. 1 1
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskGetOutput.cs
  27. 10 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskGetPageDto.cs
  28. 63 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskListOutput.cs
  29. 7 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskLogGetPageDto.cs
  30. 0 28
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerAddInput.cs
  31. 0 10
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerGetPageDto.cs
  32. 0 37
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerListOutput.cs
  33. 0 18
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerUpdateInput.cs
  34. 13 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskUpdateInput.cs
  35. 14 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskLogService.cs
  36. 0 25
      src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskSchedulerService.cs
  37. 25 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskService.cs
  38. 57 0
      src/platform/ZhonTai.Admin/Services/TaskScheduler/TaskLogService.cs
  39. 27 24
      src/platform/ZhonTai.Admin/Services/TaskScheduler/TaskService.cs
  40. 99 298
      src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

+ 1 - 1
src/hosts/ZhonTai.Host/InitData/Admin/ad_employee.json

@@ -5,6 +5,6 @@
     "nickName": "小雪转中雪",
     "code": "10001",
     "organizationId": 189097750675525,
-    "positionId": 189489908633669
+    "position": "DotNet程序员"
   }
 ]

+ 1 - 1
src/hosts/ZhonTai.Host/InitData/Admin/ad_employee.tenant.json

@@ -6,6 +6,6 @@
     "nickName": "小雪转中雪",
     "code": "10001",
     "organizationId": 189097750675525,
-    "positionId": 189489908633669
+    "position": "DotNet程序员"
   }
 ]

+ 0 - 9
src/hosts/ZhonTai.Host/InitData/Admin/ad_position.json

@@ -1,9 +0,0 @@
-[
-  {
-    "id": 189489908633669,
-    "name": "DotNet程序员",
-    "code": "",
-    "description": "",
-    "enabled": true
-  }
-]

+ 0 - 10
src/hosts/ZhonTai.Host/InitData/Admin/ad_position.tenant.json

@@ -1,10 +0,0 @@
-[
-  {
-    "tenantId": 161223412138053,
-    "id": 189489908633669,
-    "name": "DotNet程序员",
-    "code": "",
-    "description": "",
-    "enabled": true
-  }
-]

+ 9 - 0
src/platform/ZhonTai.Admin/Core/Attributes/ScanTaskNamesAttribute.cs

@@ -0,0 +1,9 @@
+using System;
+
+namespace ZhonTai.Admin.Core.Attributes
+{
+    [AttributeUsage(AttributeTargets.Class)]
+    public class ScanTaskNamesAttribute : Attribute
+    {
+    }
+}

+ 0 - 1
src/platform/ZhonTai.Admin/Domain/Employee/EmployeeEntity.cs

@@ -45,7 +45,6 @@ namespace ZhonTai.Admin.Domain.Employee
         /// <summary>
         /// 职位
         /// </summary>
-        [Column(OldName = "PositionId")]
         public string Position { get; set; }
 
         /// <summary>

+ 3 - 3
src/platform/ZhonTai.Admin/Domain/Employee/Output/EmployeeDataOutput.cs

@@ -40,7 +40,7 @@ namespace ZhonTai.Admin.Domain.Employee.Output
         /// <summary>
         /// 工号
         /// </summary>
-        public string Code { get; set; }
+        public string JobNumber { get; set; }
 
         /// <summary>
         /// 主属部门Id
@@ -53,9 +53,9 @@ namespace ZhonTai.Admin.Domain.Employee.Output
         public long? PrimaryEmployeeId { get; set; }
 
         /// <summary>
-        /// 职位Id
+        /// 职位
         /// </summary>
-        public long PositionId { get; set; }
+        public string Position { get; set; }
 
         /// <summary>
         /// 手机号

+ 0 - 10
src/platform/ZhonTai.Admin/Domain/Position/Dto/PositionGetPageDto.cs

@@ -1,10 +0,0 @@
-namespace ZhonTai.Admin.Domain.Position.Dto
-{
-    public partial class PositionGetPageDto
-    {
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-    }
-}

+ 0 - 8
src/platform/ZhonTai.Admin/Domain/Position/IPositionRepository.cs

@@ -1,8 +0,0 @@
-using ZhonTai.Admin.Core.Repositories;
-
-namespace ZhonTai.Admin.Domain.Position
-{
-    public interface IPositionRepository : IRepositoryBase<PositionEntity>
-    {
-    }
-}

+ 0 - 43
src/platform/ZhonTai.Admin/Domain/Position/Output/PositionDataOutput.cs

@@ -1,43 +0,0 @@
-namespace ZhonTai.Admin.Domain.Position.Output
-{
-    /// <summary>
-    /// 岗位导出
-    /// </summary>
-    public partial class PositionDataOutput
-    {
-        /// <summary>
-        /// 租户Id
-        /// </summary>
-        public long? TenantId { get; set; }
-
-        /// <summary>
-        /// 用户Id
-        /// </summary>
-        public long Id { get; set; }
-
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; }
-
-        /// <summary>
-        /// 排序
-        /// </summary>
-		public int Sort { get; set; }
-    }
-}

+ 0 - 49
src/platform/ZhonTai.Admin/Domain/Position/PositionEntity.cs

@@ -1,49 +0,0 @@
-using ZhonTai.Admin.Core.Entities;
-using FreeSql.DataAnnotations;
-using System;
-
-namespace ZhonTai.Admin.Domain.Position
-{
-    /// <summary>
-    /// 职位
-    /// </summary>
-	[Table(Name = "ad_position")]
-    [Index("idx_{tablename}_01", nameof(Name) + "," + nameof(TenantId), true)]
-    [Index("idx_{tablename}_02", nameof(Code) + "," + nameof(TenantId), true)]
-    public partial class PositionEntity : EntityFull, ITenant
-    {
-        /// <summary>
-        /// 租户Id
-        /// </summary>
-        [Column(Position = -10, CanUpdate = false)]
-        public long? TenantId { get; set; }
-
-        /// <summary>
-        /// 名称
-        /// </summary>
-        [Column(StringLength = 50)]
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        [Column(StringLength = 50)]
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        [Column(StringLength = 200)]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; } = true;
-
-        /// <summary>
-        /// 排序
-        /// </summary>
-		public int Sort { get; set; }
-    }
-}

+ 0 - 88
src/platform/ZhonTai.Admin/HttpApi/Controllers/PositionController.cs

@@ -1,88 +0,0 @@
-using ZhonTai.Admin.Core.Dto;
-using ZhonTai.Admin.Services.Position;
-using ZhonTai.Admin.Services.Position.Input;
-using Microsoft.AspNetCore.Mvc;
-using System.Threading.Tasks;
-using ZhonTai.Admin.Domain.Position.Dto;
-
-namespace ZhonTai.Admin.HttpApi.Controllers
-{
-    /// <summary>
-    /// 职位管理
-    /// </summary>
-    public class PositionController : AreaController
-    {
-        private readonly IPositionService _positionService;
-
-        public PositionController(IPositionService positionService)
-        {
-            _positionService = positionService;
-        }
-
-        /// <summary>
-        /// 查询职位
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        [HttpGet]
-        public async Task<IResultOutput> Get(long id)
-        {
-            return await _positionService.GetAsync(id);
-        }
-
-        /// <summary>
-        /// 查询职位列表
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpPost]
-        public async Task<IResultOutput> GetPage(PageInput<PositionGetPageDto> input)
-        {
-            return await _positionService.GetPageAsync(input);
-        }
-
-        /// <summary>
-        /// 新增职位
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpPost]
-        public async Task<IResultOutput> Add(PositionAddInput input)
-        {
-            return await _positionService.AddAsync(input);
-        }
-
-        /// <summary>
-        /// 修改职位
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        [HttpPut]
-        public async Task<IResultOutput> Update(PositionUpdateInput input)
-        {
-            return await _positionService.UpdateAsync(input);
-        }
-
-        /// <summary>
-        /// 删除职位
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        [HttpDelete]
-        public async Task<IResultOutput> SoftDelete(long id)
-        {
-            return await _positionService.SoftDeleteAsync(id);
-        }
-
-        /// <summary>
-        /// 批量删除职位
-        /// </summary>
-        /// <param name="ids"></param>
-        /// <returns></returns>
-        [HttpPut]
-        public async Task<IResultOutput> BatchSoftDelete(long[] ids)
-        {
-            return await _positionService.BatchSoftDeleteAsync(ids);
-        }
-    }
-}

+ 0 - 10
src/platform/ZhonTai.Admin/Repositories/CustomGenerateData.cs

@@ -24,10 +24,8 @@ using ZhonTai.Admin.Domain.View;
 using ZhonTai.Admin.Core.Configs;
 using ZhonTai.Common.Extensions;
 using ZhonTai.Admin.Domain.Organization.Output;
-using ZhonTai.Admin.Domain.Position;
 using ZhonTai.Admin.Domain.Employee;
 using ZhonTai.Admin.Domain.Organization;
-using ZhonTai.Admin.Domain.Position.Output;
 using ZhonTai.Admin.Domain.Employee.Output;
 
 namespace ZhonTai.Admin.Repositories
@@ -199,12 +197,6 @@ namespace ZhonTai.Admin.Repositories
 
             #endregion
 
-            #region 岗位
-
-            var positions = await db.Queryable<PositionEntity>().ToListAsync<PositionDataOutput>();
-
-            #endregion
-
             #region 员工
 
             var employees = await db.Queryable<EmployeeEntity>().ToListAsync<EmployeeDataOutput>();
@@ -224,7 +216,6 @@ namespace ZhonTai.Admin.Repositories
             SaveDataToJsonFile<UserEntity>(users, isTenant);
             SaveDataToJsonFile<RoleEntity>(roles, isTenant);
             SaveDataToJsonFile<OrganizationEntity>(organizationTree, isTenant);
-            SaveDataToJsonFile<PositionEntity>(positions, isTenant);
             SaveDataToJsonFile<EmployeeEntity>(employees, isTenant);
             if (isTenant)
             {
@@ -247,7 +238,6 @@ namespace ZhonTai.Admin.Repositories
                     r.Childs.AddRange(datalist);
                 });
                 SaveDataToJsonFile<OrganizationEntity>(organizationTree);
-                SaveDataToJsonFile<PositionEntity>(positions.Where(a => tenantIds.Contains(a.TenantId.Value)));
                 SaveDataToJsonFile<EmployeeEntity>(employees.Where(a => tenantIds.Contains(a.TenantId.Value)));
             }
             SaveDataToJsonFile<UserRoleEntity>(userRoles);

+ 0 - 4
src/platform/ZhonTai.Admin/Repositories/CustomSyncData.cs

@@ -14,7 +14,6 @@ using ZhonTai.Admin.Domain.PermissionApi;
 using ZhonTai.Admin.Domain.View;
 using ZhonTai.Admin.Core.Configs;
 using ZhonTai.Admin.Domain.Organization;
-using ZhonTai.Admin.Domain.Position;
 using ZhonTai.Admin.Domain.Employee;
 
 namespace ZhonTai.Admin.Repositories
@@ -67,9 +66,6 @@ namespace ZhonTai.Admin.Repositories
                 var organizations = GetData<OrganizationEntity>(isTenant);
                 await InitDataAsync(db, uow, tran, organizations, dbConfig);
 
-                var positions = GetData<PositionEntity>(isTenant);
-                await InitDataAsync(db, uow, tran, positions, dbConfig);
-
                 var employees = GetData<EmployeeEntity>(isTenant);
                 await InitDataAsync(db, uow, tran, employees, dbConfig);
 

+ 0 - 13
src/platform/ZhonTai.Admin/Repositories/Position/PositionRepository.cs

@@ -1,13 +0,0 @@
-using ZhonTai.Admin.Core.Db;
-using ZhonTai.Admin.Core.Repositories;
-using ZhonTai.Admin.Domain.Position;
-
-namespace ZhonTai.Admin.Repositories
-{
-    public class PositionRepository : RepositoryBase<PositionEntity>, IPositionRepository
-    {
-        public PositionRepository(DbUnitOfWorkManager uowm) : base(uowm)
-        {
-        }
-    }
-}

+ 3 - 3
src/platform/ZhonTai.Admin/Services/Employee/Input/EmployeeAddInput.cs

@@ -31,7 +31,7 @@ namespace ZhonTai.Admin.Services.Employee.Input
         /// <summary>
         /// 工号
         /// </summary>
-        public string Code { get; set; }
+        public string JobNumber { get; set; }
 
         /// <summary>
         /// 主属部门Id
@@ -44,9 +44,9 @@ namespace ZhonTai.Admin.Services.Employee.Input
         public long[] OrganizationIds { get; set; }
 
         /// <summary>
-        /// 职位Id
+        /// 职位
         /// </summary>
-        public long PositionId { get; set; }
+        public string Position { get; set; }
 
         /// <summary>
         /// 手机号

+ 1 - 1
src/platform/ZhonTai.Admin/Services/Employee/Output/EmployeeGetOutput.cs

@@ -17,6 +17,6 @@ namespace ZhonTai.Admin.Services.Employee.Output
         /// <summary>
         /// 职位
         /// </summary>
-        public string PositionName { get; set; }
+        public string Position { get; set; }
     }
 }

+ 6 - 1
src/platform/ZhonTai.Admin/Services/Employee/Output/EmployeeListOutput.cs

@@ -24,6 +24,11 @@ namespace ZhonTai.Admin.Services.Employee.Output
         /// </summary>
         public string UserName { get; set; }
 
+        /// <summary>
+        /// 工号
+        /// </summary>
+        public string JobNumber { get; set; }
+
         /// <summary>
         /// 主属部门
         /// </summary>
@@ -37,7 +42,7 @@ namespace ZhonTai.Admin.Services.Employee.Output
         /// <summary>
         /// 职位
         /// </summary>
-        public string PositionName { get; set; }
+        public string Position { get; set; }
 
         /// <summary>
         /// 手机号

+ 0 - 24
src/platform/ZhonTai.Admin/Services/Position/IPositionService.cs

@@ -1,24 +0,0 @@
-using ZhonTai.Admin.Core.Dto;
-using ZhonTai.Admin.Services.Position.Input;
-using System.Threading.Tasks;
-using ZhonTai.Admin.Domain.Position.Dto;
-
-namespace ZhonTai.Admin.Services.Position
-{
-    public interface IPositionService
-    {
-        Task<IResultOutput> GetAsync(long id);
-
-        Task<IResultOutput> GetPageAsync(PageInput<PositionGetPageDto> input);
-
-        Task<IResultOutput> AddAsync(PositionAddInput input);
-
-        Task<IResultOutput> UpdateAsync(PositionUpdateInput input);
-
-        Task<IResultOutput> DeleteAsync(long id);
-
-        Task<IResultOutput> SoftDeleteAsync(long id);
-
-        Task<IResultOutput> BatchSoftDeleteAsync(long[] ids);
-    }
-}

+ 0 - 28
src/platform/ZhonTai.Admin/Services/Position/Input/PositionAddInput.cs

@@ -1,28 +0,0 @@
-namespace ZhonTai.Admin.Services.Position.Input
-{
-    /// <summary>
-    /// 添加
-    /// </summary>
-    public class PositionAddInput
-    {
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; }
-    }
-}

+ 0 - 18
src/platform/ZhonTai.Admin/Services/Position/Input/PositionUpdateInput.cs

@@ -1,18 +0,0 @@
-namespace ZhonTai.Admin.Services.Position.Input
-{
-    /// <summary>
-    /// 修改
-    /// </summary>
-    public partial class PositionUpdateInput : PositionAddInput
-    {
-        /// <summary>
-        /// 编号
-        /// </summary>
-        public long Id { get; set; }
-
-        /// <summary>
-        /// 版本
-        /// </summary>
-        public long Version { get; set; }
-    }
-}

+ 0 - 8
src/platform/ZhonTai.Admin/Services/Position/Output/PositionGetOutput.cs

@@ -1,8 +0,0 @@
-using ZhonTai.Admin.Services.Position.Input;
-
-namespace ZhonTai.Admin.Services.Position.Output
-{
-    public class PositionGetOutput : PositionUpdateInput
-    {
-    }
-}

+ 0 - 37
src/platform/ZhonTai.Admin/Services/Position/Output/PositionListOutput.cs

@@ -1,37 +0,0 @@
-using System;
-
-namespace ZhonTai.Admin.Services.Position.Output
-{
-    public class PositionListOutput
-    {
-        /// <summary>
-        /// 主键
-        /// </summary>
-        public long Id { get; set; }
-
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; }
-
-        /// <summary>
-        /// 创建时间
-        /// </summary>
-        public DateTime? CreatedTime { get; set; }
-    }
-}

+ 0 - 140
src/platform/ZhonTai.Admin/Services/Position/PositionService.cs

@@ -1,140 +0,0 @@
-using ZhonTai.Admin.Core.Dto;
-using ZhonTai.Admin.Services.Position.Input;
-using ZhonTai.Admin.Services.Position.Output;
-using System.Threading.Tasks;
-using ZhonTai.Admin.Services;
-using ZhonTai.Admin.Domain.Position;
-using ZhonTai.Admin.Domain.Position.Dto;
-using ZhonTai.DynamicApi;
-using ZhonTai.DynamicApi.Attributes;
-
-namespace ZhonTai.Admin.Services.Position
-{
-    /// <summary>
-    /// 职位服务
-    /// </summary>
-    public class PositionService : BaseService, IPositionService
-    {
-        private readonly IPositionRepository _positionRepository;
-
-        public PositionService(
-            IPositionRepository positionRepository
-        )
-        {
-            _positionRepository = positionRepository;
-        }
-
-        /// <summary>
-        /// 查询职位
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> GetAsync(long id)
-        {
-            var result = await _positionRepository.GetAsync<PositionGetOutput>(id);
-            return ResultOutput.Ok(result);
-        }
-
-        /// <summary>
-        /// 查询分页
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> GetPageAsync(PageInput<PositionGetPageDto> input)
-        {
-            var key = input.Filter?.Name;
-
-            var list = await _positionRepository.Select
-            .WhereIf(key.NotNull(), a => a.Name.Contains(key))
-            .Count(out var total)
-            .OrderByDescending(true, c => c.Id)
-            .Page(input.CurrentPage, input.PageSize)
-            .ToListAsync<PositionListOutput>();
-
-            var data = new PageOutput<PositionListOutput>()
-            {
-                List = list,
-                Total = total
-            };
-
-            return ResultOutput.Ok(data);
-        }
-
-        /// <summary>
-        /// 新增
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> AddAsync(PositionAddInput input)
-        {
-            var entity = Mapper.Map<PositionEntity>(input);
-            var id = (await _positionRepository.InsertAsync(entity)).Id;
-
-            return ResultOutput.Result(id > 0);
-        }
-
-        /// <summary>
-        /// 修改
-        /// </summary>
-        /// <param name="input"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> UpdateAsync(PositionUpdateInput input)
-        {
-            if (!(input?.Id > 0))
-            {
-                return ResultOutput.NotOk();
-            }
-
-            var entity = await _positionRepository.GetAsync(input.Id);
-            if (!(entity?.Id > 0))
-            {
-                return ResultOutput.NotOk("职位不存在!");
-            }
-
-            Mapper.Map(input, entity);
-            await _positionRepository.UpdateAsync(entity);
-            return ResultOutput.Ok();
-        }
-
-        /// <summary>
-        /// 彻底删除
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> DeleteAsync(long id)
-        {
-            var result = false;
-            if (id > 0)
-            {
-                result = (await _positionRepository.DeleteAsync(m => m.Id == id)) > 0;
-            }
-
-            return ResultOutput.Result(result);
-        }
-
-        /// <summary>
-        /// 删除
-        /// </summary>
-        /// <param name="id"></param>
-        /// <returns></returns>
-
-        public async Task<IResultOutput> SoftDeleteAsync(long id)
-        {
-            var result = await _positionRepository.SoftDeleteAsync(id);
-
-            return ResultOutput.Result(result);
-        }
-
-        /// <summary>
-        /// 批量删除
-        /// </summary>
-        /// <param name="ids"></param>
-        /// <returns></returns>
-        public async Task<IResultOutput> BatchSoftDeleteAsync(long[] ids)
-        {
-            var result = await _positionRepository.SoftDeleteAsync(ids);
-
-            return ResultOutput.Result(result);
-        }
-    }
-}

+ 40 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskAddInput.cs

@@ -0,0 +1,40 @@
+using FreeScheduler;
+
+namespace ZhonTai.Admin.Services.TaskScheduler.Dto
+{
+    /// <summary>
+    /// 添加
+    /// </summary>
+    public class TaskAddInput
+    {
+        /// <summary>
+        /// 任务标题
+        /// </summary>
+        public string Topic { get; set; }
+
+        /// <summary>
+        /// 任务数据
+        /// </summary>
+        public string Body { get; set; }
+
+        /// <summary>
+        /// 任务执行多少轮,-1为永久循环
+        /// </summary>
+        public int Round { get; set; }
+
+        /// <summary>
+        /// 定时类型
+        /// </summary>
+        public TaskInterval Interval { get; set; }
+
+        /// <summary>
+        /// 定时参数值 60,60,60,120,120,1200,1200
+        /// </summary>
+        public string IntervalArgument { get; set; }
+
+        /// <summary>
+        /// 任务状态
+        /// </summary>
+        public TaskStatus Status { get; set; }
+    }
+}

+ 1 - 1
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerGetOutput.cs → src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskGetOutput.cs

@@ -1,7 +1,7 @@
 
 namespace ZhonTai.Admin.Services.TaskScheduler.Dto
 {
-    public class TaskSchedulerGetOutput : TaskSchedulerUpdateInput
+    public class TaskGetOutput : TaskUpdateInput
     {
     }
 }

+ 10 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskGetPageDto.cs

@@ -0,0 +1,10 @@
+namespace ZhonTai.Admin.Domain.Task.Dto
+{
+    public partial class TaskGetPageDto
+    {
+        /// <summary>
+        /// 任务名称名称
+        /// </summary>
+        public string Topic { get; set; }
+    }
+}

+ 63 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskListOutput.cs

@@ -0,0 +1,63 @@
+using FreeScheduler;
+using System;
+
+namespace ZhonTai.Admin.Services.TaskScheduler.Dto
+{
+    public class TaskListOutput
+    {
+        /// <summary>
+        /// 主键
+        /// </summary>
+        public string Id { get; set; }
+
+        /// <summary>
+        /// 任务标题
+        /// </summary>
+        public string Topic { get; set; }
+
+        /// <summary>
+        /// 任务数据
+        /// </summary>
+        public string Body { get; set; }
+
+        /// <summary>
+        /// 任务执行多少轮
+        /// </summary>
+        public int Round { get; set; }
+
+        /// <summary>
+        /// 定时类型
+        /// </summary>
+        public TaskInterval Interval { get; set; }
+
+        /// <summary>
+        /// 定时参数值
+        /// </summary>
+        public string IntervalArgument { get; set; }
+
+        /// <summary>
+        /// 任务状态
+        /// </summary>
+        public TaskStatus Status { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+
+        /// <summary>
+        /// 最后运行时间
+        /// </summary>
+        public DateTime LastRunTime { get; set; }
+
+        /// <summary>
+        /// 当前运行到第几轮
+        /// </summary>
+        public int CurrentRound { get; set; }
+
+        /// <summary>
+        /// 错次数
+        /// </summary>
+        public int ErrorTimes { get; set; }
+    }
+}

+ 7 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskLogGetPageDto.cs

@@ -0,0 +1,7 @@
+namespace ZhonTai.Admin.Domain.Task.Dto
+{
+    public partial class TaskLogGetPageDto
+    {
+        public string TaskId { get; set; }
+    }
+}

+ 0 - 28
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerAddInput.cs

@@ -1,28 +0,0 @@
-namespace ZhonTai.Admin.Services.TaskScheduler.Dto
-{
-    /// <summary>
-    /// 添加
-    /// </summary>
-    public class TaskSchedulerAddInput
-    {
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; }
-    }
-}

+ 0 - 10
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerGetPageDto.cs

@@ -1,10 +0,0 @@
-namespace ZhonTai.Admin.Domain.TaskScheduler.Dto
-{
-    public partial class TaskSchedulerGetPageDto
-    {
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-    }
-}

+ 0 - 37
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerListOutput.cs

@@ -1,37 +0,0 @@
-using System;
-
-namespace ZhonTai.Admin.Services.TaskScheduler.Dto
-{
-    public class TaskSchedulerListOutput
-    {
-        /// <summary>
-        /// 主键
-        /// </summary>
-        public long Id { get; set; }
-
-        /// <summary>
-        /// 名称
-        /// </summary>
-        public string Name { get; set; }
-
-        /// <summary>
-        /// 编码
-        /// </summary>
-        public string Code { get; set; }
-
-        /// <summary>
-        /// 说明
-        /// </summary>
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 启用
-        /// </summary>
-		public bool Enabled { get; set; }
-
-        /// <summary>
-        /// 创建时间
-        /// </summary>
-        public DateTime? CreatedTime { get; set; }
-    }
-}

+ 0 - 18
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskSchedulerUpdateInput.cs

@@ -1,18 +0,0 @@
-namespace ZhonTai.Admin.Services.TaskScheduler.Dto
-{
-    /// <summary>
-    /// 修改
-    /// </summary>
-    public partial class TaskSchedulerUpdateInput : TaskSchedulerAddInput
-    {
-        /// <summary>
-        /// 接口Id
-        /// </summary>
-        public long Id { get; set; }
-
-        /// <summary>
-        /// 版本
-        /// </summary>
-        public long Version { get; set; }
-    }
-}

+ 13 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/Dto/TaskUpdateInput.cs

@@ -0,0 +1,13 @@
+namespace ZhonTai.Admin.Services.TaskScheduler.Dto
+{
+    /// <summary>
+    /// 修改
+    /// </summary>
+    public partial class TaskUpdateInput : TaskAddInput
+    {
+        /// <summary>
+        /// 任务Id
+        /// </summary>
+        public string Id { get; set; }
+    }
+}

+ 14 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskLogService.cs

@@ -0,0 +1,14 @@
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Dto;
+using ZhonTai.Admin.Domain.Task.Dto;
+
+namespace ZhonTai.Admin.Services.TaskScheduler
+{
+    /// <summary>
+    /// 任务日志接口
+    /// </summary>
+    public interface ITaskLogService
+    {
+        Task<IResultOutput> GetPageAsync(PageInput<TaskLogGetPageDto> input);
+    }
+}

+ 0 - 25
src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskSchedulerService.cs

@@ -1,25 +0,0 @@
-using System.Threading.Tasks;
-using ZhonTai.Admin.Core.Dto;
-using ZhonTai.Admin.Domain.TaskScheduler.Dto;
-using ZhonTai.Admin.Services.TaskScheduler.Dto;
-
-namespace ZhonTai.Admin.Services.TaskScheduler
-{
-    /// <summary>
-    /// 任务调度接口
-    /// </summary>
-    public interface ITaskSchedulerService
-    {
-        Task<IResultOutput> GetAsync(long id);
-
-        Task<IResultOutput> GetPageAsync(PageInput<TaskSchedulerGetPageDto> input);
-
-        Task<IResultOutput> AddAsync(TaskSchedulerAddInput input);
-
-        Task<IResultOutput> UpdateAsync(TaskSchedulerUpdateInput input);
-
-        Task<IResultOutput> DeleteAsync(string id);
-
-        Task<IResultOutput> BatchSoftDeleteAsync(string[] ids);
-    }
-}

+ 25 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/ITaskService.cs

@@ -0,0 +1,25 @@
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Dto;
+using ZhonTai.Admin.Domain.Task.Dto;
+using ZhonTai.Admin.Services.TaskScheduler.Dto;
+
+namespace ZhonTai.Admin.Services.TaskScheduler
+{
+    /// <summary>
+    /// 任务接口
+    /// </summary>
+    public interface ITaskService
+    {
+        Task<IResultOutput> GetAsync(long id);
+
+        Task<IResultOutput> GetPageAsync(PageInput<TaskGetPageDto> input);
+
+        Task<IResultOutput> AddAsync(TaskAddInput input);
+
+        Task<IResultOutput> UpdateAsync(TaskUpdateInput input);
+
+        Task<IResultOutput> DeleteAsync(string id);
+
+        Task<IResultOutput> BatchDeleteAsync(string[] ids);
+    }
+}

+ 57 - 0
src/platform/ZhonTai.Admin/Services/TaskScheduler/TaskLogService.cs

@@ -0,0 +1,57 @@
+using System.Threading.Tasks;
+using ZhonTai.Admin.Core.Repositories;
+using ZhonTai.Admin.Core.Dto;
+using ZhonTai.Admin.Services.TaskScheduler.Dto;
+using ZhonTai.Admin.Domain.Task.Dto;
+using ZhonTai.DynamicApi;
+using ZhonTai.DynamicApi.Attributes;
+using Microsoft.AspNetCore.Mvc;
+using ZhonTai.Admin.Core.Consts;
+using FreeScheduler;
+
+namespace ZhonTai.Admin.Services.TaskScheduler
+{
+    /// <summary>
+    /// 任务日志服务
+    /// </summary>
+    [DynamicApi(Area = AdminConsts.AreaName)]
+    public class TaskLogService : BaseService, ITaskLogService, IDynamicApi
+    {
+        private IRepositoryBase<TaskLog> _taskLogRepository => LazyGetRequiredService<IRepositoryBase<TaskLog>>();
+
+        public TaskLogService()
+        {
+
+        }
+
+        /// <summary>
+        /// 查询任务日志列表
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IResultOutput> GetPageAsync(PageInput<TaskLogGetPageDto> input)
+        {
+            if (!(input.Filter != null && input.Filter.TaskId.NotNull()))
+            {
+                return ResultOutput.NotOk();
+            }
+
+            var list = await _taskLogRepository.Select
+            .WhereDynamicFilter(input.DynamicFilter)
+            .Where(a => a.TaskId == input.Filter.TaskId)
+            .Count(out var total)
+            .OrderByDescending(true, c => c.CreateTime)
+            .Page(input.CurrentPage, input.PageSize)
+            .ToListAsync<TaskListOutput>();
+
+            var data = new PageOutput<TaskListOutput>()
+            {
+                List = list,
+                Total = total
+            };
+
+            return ResultOutput.Ok(data);
+        }
+    }
+}

+ 27 - 24
src/platform/ZhonTai.Admin/Services/TaskScheduler/TaskSchedulerService.cs → src/platform/ZhonTai.Admin/Services/TaskScheduler/TaskService.cs

@@ -3,7 +3,7 @@ using System.Threading.Tasks;
 using ZhonTai.Admin.Core.Repositories;
 using ZhonTai.Admin.Core.Dto;
 using ZhonTai.Admin.Services.TaskScheduler.Dto;
-using ZhonTai.Admin.Domain.TaskScheduler.Dto;
+using ZhonTai.Admin.Domain.Task.Dto;
 using ZhonTai.DynamicApi;
 using ZhonTai.DynamicApi.Attributes;
 using Microsoft.AspNetCore.Mvc;
@@ -13,49 +13,48 @@ using FreeScheduler;
 namespace ZhonTai.Admin.Services.TaskScheduler
 {
     /// <summary>
-    /// 任务调度服务
+    /// 任务服务
     /// </summary>
     [DynamicApi(Area = AdminConsts.AreaName)]
-    public class TaskSchedulerService : BaseService, ITaskSchedulerService, IDynamicApi
+    public class TaskService : BaseService, ITaskService, IDynamicApi
     {
         private IRepositoryBase<TaskInfo> _taskInfoRepository => LazyGetRequiredService<IRepositoryBase<TaskInfo>>();
-        private IRepositoryBase<TaskLog> _taskLogRepository => LazyGetRequiredService<IRepositoryBase<TaskLog>>();
 
-        public TaskSchedulerService()
+        public TaskService()
         {
 
         }
 
         /// <summary>
-        /// 查询任务调度
+        /// 查询任务
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
         public async Task<IResultOutput> GetAsync(long id)
         {
-            var result = await _taskInfoRepository.GetAsync<TaskSchedulerGetOutput>(id);
+            var result = await _taskInfoRepository.GetAsync<TaskGetOutput>(id);
             return ResultOutput.Ok(result);
         }
 
         /// <summary>
-        /// 查询任务调度列表
+        /// 查询任务列表
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IResultOutput> GetPageAsync(PageInput<TaskSchedulerGetPageDto> input)
+        public async Task<IResultOutput> GetPageAsync(PageInput<TaskGetPageDto> input)
         {
-            var key = input.Filter?.Name;
+            var topic = input.Filter?.Topic;
 
             var list = await _taskInfoRepository.Select
             .WhereDynamicFilter(input.DynamicFilter)
-            .WhereIf(key.NotNull(), a => a.Topic.Contains(key))
+            .WhereIf(topic.NotNull(), a => a.Topic.Contains(topic))
             .Count(out var total)
             .OrderByDescending(true, c => c.Id)
             .Page(input.CurrentPage, input.PageSize)
-            .ToListAsync<TaskSchedulerListOutput>();
+            .ToListAsync<TaskListOutput>();
 
-            var data = new PageOutput<TaskSchedulerListOutput>()
+            var data = new PageOutput<TaskListOutput>()
             {
                 List = list,
                 Total = total
@@ -69,7 +68,7 @@ namespace ZhonTai.Admin.Services.TaskScheduler
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<IResultOutput> AddAsync(TaskSchedulerAddInput input)
+        public async Task<IResultOutput> AddAsync(TaskAddInput input)
         {
             var entity = Mapper.Map<TaskInfo>(input);
             await _taskInfoRepository.InsertAsync(entity);
@@ -81,17 +80,17 @@ namespace ZhonTai.Admin.Services.TaskScheduler
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
-        public async Task<IResultOutput> UpdateAsync(TaskSchedulerUpdateInput input)
+        public async Task<IResultOutput> UpdateAsync(TaskUpdateInput input)
         {
-            if (!(input?.Id > 0))
+            if (input.Id.IsNull())
             {
                 return ResultOutput.NotOk();
             }
 
-            var entity = await _taskInfoRepository.GetAsync(input.Id);
+            var entity = await _taskInfoRepository.GetAsync(a => a.Id == input.Id);
             if (entity != null && entity.Id.NotNull())
             {
-                return ResultOutput.NotOk("任务调度不存在!");
+                return ResultOutput.NotOk("任务不存在!");
             }
 
             Mapper.Map(input, entity);
@@ -106,26 +105,30 @@ namespace ZhonTai.Admin.Services.TaskScheduler
         /// <returns></returns>
         public async Task<IResultOutput> DeleteAsync(string id)
         {
-            if (id.NotNull())
+            if (id.IsNull())
             {
-                await _taskInfoRepository.DeleteAsync(m => m.Id == id);
+                return ResultOutput.NotOk();
             }
 
+            await _taskInfoRepository.DeleteAsync(m => m.Id == id);
+            
             return ResultOutput.Ok();
         }
 
         /// <summary>
-        /// 批量删除
+        /// 批量彻底删除
         /// </summary>
         /// <param name="ids"></param>
         /// <returns></returns>
-        public async Task<IResultOutput> BatchSoftDeleteAsync(string[] ids)
+        public async Task<IResultOutput> BatchDeleteAsync(string[] ids)
         {
-            if(ids?.Length > 0)
+            if(!(ids?.Length > 0))
             {
-                await _taskInfoRepository.DeleteAsync(a => ids.Contains(a.Id));
+                return ResultOutput.NotOk();
             }
 
+            await _taskInfoRepository.DeleteAsync(a => ids.Contains(a.Id));
+
             return ResultOutput.Ok();
         }
     }

+ 99 - 298
src/platform/ZhonTai.Admin/ZhonTai.Admin.xml

@@ -1946,7 +1946,7 @@
             性别
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Domain.Employee.Output.EmployeeDataOutput.Code">
+        <member name="P:ZhonTai.Admin.Domain.Employee.Output.EmployeeDataOutput.JobNumber">
             <summary>
             工号
             </summary>
@@ -1961,9 +1961,9 @@
             主管Id
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Domain.Employee.Output.EmployeeDataOutput.PositionId">
+        <member name="P:ZhonTai.Admin.Domain.Employee.Output.EmployeeDataOutput.Position">
             <summary>
-            职位Id
+            职位
             </summary>
         </member>
         <member name="P:ZhonTai.Admin.Domain.Employee.Output.EmployeeDataOutput.Phone">
@@ -2411,86 +2411,6 @@
             权限点
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Dto.PositionGetPageDto.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="T:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput">
-            <summary>
-            岗位导出
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.TenantId">
-            <summary>
-            租户Id
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Id">
-            <summary>
-            用户Id
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Description">
-            <summary>
-            说明
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Enabled">
-            <summary>
-            启用
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.Output.PositionDataOutput.Sort">
-            <summary>
-            排序
-            </summary>
-        </member>
-        <member name="T:ZhonTai.Admin.Domain.Position.PositionEntity">
-            <summary>
-            职位
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.TenantId">
-            <summary>
-            租户Id
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.Description">
-            <summary>
-            说明
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.Enabled">
-            <summary>
-            启用
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Domain.Position.PositionEntity.Sort">
-            <summary>
-            排序
-            </summary>
-        </member>
         <member name="T:ZhonTai.Admin.Domain.RolePermission.RolePermissionEntity">
             <summary>
             角色权限
@@ -2916,9 +2836,9 @@
             排序
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Domain.TaskScheduler.Dto.TaskSchedulerGetPageDto.Name">
+        <member name="P:ZhonTai.Admin.Domain.Task.Dto.TaskGetPageDto.Topic">
             <summary>
-            名称
+            任务名称名称
             </summary>
         </member>
         <member name="T:ZhonTai.Admin.HttpApi.AreaController">
@@ -3013,53 +2933,6 @@
             <param name="id"></param>
             <returns></returns>
         </member>
-        <member name="T:ZhonTai.Admin.HttpApi.Controllers.PositionController">
-            <summary>
-            职位管理
-            </summary>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.Get(System.Int64)">
-            <summary>
-            查询职位
-            </summary>
-            <param name="id"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.GetPage(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Domain.Position.Dto.PositionGetPageDto})">
-            <summary>
-            查询职位列表
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.Add(ZhonTai.Admin.Services.Position.Input.PositionAddInput)">
-            <summary>
-            新增职位
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.Update(ZhonTai.Admin.Services.Position.Input.PositionUpdateInput)">
-            <summary>
-            修改职位
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.SoftDelete(System.Int64)">
-            <summary>
-            删除职位
-            </summary>
-            <param name="id"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.HttpApi.Controllers.PositionController.BatchSoftDelete(System.Int64[])">
-            <summary>
-            批量删除职位
-            </summary>
-            <param name="ids"></param>
-            <returns></returns>
-        </member>
         <member name="T:ZhonTai.Admin.Services.Api.ApiService">
             <summary>
             接口服务
@@ -4172,7 +4045,7 @@
             性别
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.Employee.Input.EmployeeAddInput.Code">
+        <member name="P:ZhonTai.Admin.Services.Employee.Input.EmployeeAddInput.JobNumber">
             <summary>
             工号
             </summary>
@@ -4187,9 +4060,9 @@
             附属部门
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.Employee.Input.EmployeeAddInput.PositionId">
+        <member name="P:ZhonTai.Admin.Services.Employee.Input.EmployeeAddInput.Position">
             <summary>
-            职位Id
+            职位
             </summary>
         </member>
         <member name="P:ZhonTai.Admin.Services.Employee.Input.EmployeeAddInput.Phone">
@@ -4232,7 +4105,7 @@
             附属部门
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeGetOutput.PositionName">
+        <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeGetOutput.Position">
             <summary>
             职位
             </summary>
@@ -4257,6 +4130,11 @@
             账号
             </summary>
         </member>
+        <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeListOutput.JobNumber">
+            <summary>
+            工号
+            </summary>
+        </member>
         <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeListOutput.OrganizationName">
             <summary>
             主属部门
@@ -4267,7 +4145,7 @@
             附属部门
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeListOutput.PositionName">
+        <member name="P:ZhonTai.Admin.Services.Employee.Output.EmployeeListOutput.Position">
             <summary>
             职位
             </summary>
@@ -5172,130 +5050,6 @@
             映射配置
             </summary>
         </member>
-        <member name="T:ZhonTai.Admin.Services.Position.Input.PositionAddInput">
-            <summary>
-            添加
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionAddInput.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionAddInput.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionAddInput.Description">
-            <summary>
-            说明
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionAddInput.Enabled">
-            <summary>
-            启用
-            </summary>
-        </member>
-        <member name="T:ZhonTai.Admin.Services.Position.Input.PositionUpdateInput">
-            <summary>
-            修改
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionUpdateInput.Id">
-            <summary>
-            编号
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Input.PositionUpdateInput.Version">
-            <summary>
-            版本
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.Id">
-            <summary>
-            主键
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.Name">
-            <summary>
-            名称
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.Code">
-            <summary>
-            编码
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.Description">
-            <summary>
-            说明
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.Enabled">
-            <summary>
-            启用
-            </summary>
-        </member>
-        <member name="P:ZhonTai.Admin.Services.Position.Output.PositionListOutput.CreatedTime">
-            <summary>
-            创建时间
-            </summary>
-        </member>
-        <member name="T:ZhonTai.Admin.Services.Position.PositionService">
-            <summary>
-            职位服务
-            </summary>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.GetAsync(System.Int64)">
-            <summary>
-            查询职位
-            </summary>
-            <param name="id"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Domain.Position.Dto.PositionGetPageDto})">
-            <summary>
-            查询分页
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.AddAsync(ZhonTai.Admin.Services.Position.Input.PositionAddInput)">
-            <summary>
-            新增
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.UpdateAsync(ZhonTai.Admin.Services.Position.Input.PositionUpdateInput)">
-            <summary>
-            修改
-            </summary>
-            <param name="input"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.DeleteAsync(System.Int64)">
-            <summary>
-            彻底删除
-            </summary>
-            <param name="id"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.SoftDeleteAsync(System.Int64)">
-            <summary>
-            删除
-            </summary>
-            <param name="id"></param>
-            <returns></returns>
-        </member>
-        <member name="M:ZhonTai.Admin.Services.Position.PositionService.BatchSoftDeleteAsync(System.Int64[])">
-            <summary>
-            批量删除
-            </summary>
-            <param name="ids"></param>
-            <returns></returns>
-        </member>
         <member name="T:ZhonTai.Admin.Services.Role.Dto.RoleAddInput">
             <summary>
             添加
@@ -5425,124 +5179,171 @@
             <param name="ids"></param>
             <returns></returns>
         </member>
-        <member name="T:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput">
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput">
             <summary>
             添加
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput.Name">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.Topic">
             <summary>
-            名称
+            任务标题
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput.Code">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.Body">
             <summary>
-            编码
+            任务数据
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput.Description">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.Round">
             <summary>
-            说明
+            任务执行多少轮,-1为永久循环
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput.Enabled">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.Interval">
             <summary>
-            启用
+            定时类型
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.Id">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.IntervalArgument">
+            <summary>
+            定时参数值 60,60,60,120,120,1200,1200
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput.Status">
+            <summary>
+            任务状态
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Id">
             <summary>
             主键
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.Name">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Topic">
             <summary>
-            名称
+            任务标题
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.Code">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Body">
             <summary>
-            编码
+            任务数据
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.Description">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Round">
             <summary>
-            说明
+            任务执行多少轮
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.Enabled">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Interval">
             <summary>
-            启用
+            定时类型
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.IntervalArgument">
+            <summary>
+            定时参数值
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.Status">
+            <summary>
+            任务状态
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerListOutput.CreatedTime">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.CreateTime">
             <summary>
             创建时间
             </summary>
         </member>
-        <member name="T:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerUpdateInput">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.LastRunTime">
+            <summary>
+            最后运行时间
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.CurrentRound">
+            <summary>
+            当前运行到第几轮
+            </summary>
+        </member>
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskListOutput.ErrorTimes">
+            <summary>
+            错次数
+            </summary>
+        </member>
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskUpdateInput">
             <summary>
             修改
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerUpdateInput.Id">
+        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskUpdateInput.Id">
             <summary>
-            接口Id
+            任务Id
             </summary>
         </member>
-        <member name="P:ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerUpdateInput.Version">
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.ITaskLogService">
             <summary>
-            版本
+            任务日志接口
             </summary>
         </member>
-        <member name="T:ZhonTai.Admin.Services.TaskScheduler.ITaskSchedulerService">
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.ITaskService">
             <summary>
-            任务调度接口
+            任务接口
             </summary>
         </member>
-        <member name="T:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService">
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.TaskLogService">
             <summary>
-            任务调度服务
+            任务日志服务
             </summary>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.GetAsync(System.Int64)">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskLogService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Domain.Task.Dto.TaskLogGetPageDto})">
             <summary>
-            查询角色
+            查询任务日志列表
+            </summary>
+            <param name="input"></param>
+            <returns></returns>
+        </member>
+        <member name="T:ZhonTai.Admin.Services.TaskScheduler.TaskService">
+            <summary>
+            任务服务
+            </summary>
+        </member>
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.GetAsync(System.Int64)">
+            <summary>
+            查询任务
             </summary>
             <param name="id"></param>
             <returns></returns>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Domain.TaskScheduler.Dto.TaskSchedulerGetPageDto})">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.GetPageAsync(ZhonTai.Admin.Core.Dto.PageInput{ZhonTai.Admin.Domain.Task.Dto.TaskGetPageDto})">
             <summary>
-            查询角色列表
+            查询任务列表
             </summary>
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.AddAsync(ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerAddInput)">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.AddAsync(ZhonTai.Admin.Services.TaskScheduler.Dto.TaskAddInput)">
             <summary>
             新增
             </summary>
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.UpdateAsync(ZhonTai.Admin.Services.TaskScheduler.Dto.TaskSchedulerUpdateInput)">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.UpdateAsync(ZhonTai.Admin.Services.TaskScheduler.Dto.TaskUpdateInput)">
             <summary>
             修改
             </summary>
             <param name="input"></param>
             <returns></returns>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.DeleteAsync(System.String)">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.DeleteAsync(System.String)">
             <summary>
             彻底删除
             </summary>
             <param name="id"></param>
             <returns></returns>
         </member>
-        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskSchedulerService.BatchSoftDeleteAsync(System.String[])">
+        <member name="M:ZhonTai.Admin.Services.TaskScheduler.TaskService.BatchDeleteAsync(System.String[])">
             <summary>
-            批量删除
+            批量彻底删除
             </summary>
             <param name="ids"></param>
             <returns></returns>