xfe 2 недель назад
Родитель
Сommit
3bb5cbd375

+ 1 - 0
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -52,6 +52,7 @@ using Hotline.Share.Tools;
 using MediatR;
 using static Hotline.AppDefaults;
 using Hotline.Ai.Visit;
+using Hotline.Share.Dtos.Order.OrderDelay;
 
 namespace Hotline.Api.Controllers.Bi
 {

+ 29 - 12
src/Hotline.Api/Controllers/OrderApi/OrderDelayController.cs

@@ -1,27 +1,44 @@
 using Hotline.Application.OrderApp.OrderDelayApp;
+using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Order.OrderDelay;
+using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 
 namespace Hotline.Api.Controllers.OrderApi;
 
-public class OrderDelayController
+public class OrderDelayController : BaseController
 {
     private readonly IOrderDelayApplication _orderDelayApplication;
-    public OrderDelayController(IOrderDelayApplication orderDelayApplication)
+    private readonly IMapper _mapper;
+
+    public OrderDelayController(
+        IOrderDelayApplication orderDelayApplication,
+        IMapper mapper)
     {
         _orderDelayApplication = orderDelayApplication;
+        _mapper = mapper;
     }
-    [HttpGet("delay/list")]
-    public async Task<IActionResult> GetDelayList([FromQuery] DelayListDto dto)
-    {
-        var result = await _orderDelayApplication.QueryWaited(dto);
-        return Ok(result);
-    }
-    [HttpPost("delay/review")]
-    public async Task<IActionResult> Review([FromBody] OrderDelayReviewRequest request, CancellationToken cancellation)
+
+    /// <summary>
+    /// 查询延期待审批
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [HttpGet("waited")]
+    public async Task<IReadOnlyList<OrderDelayStepIdDto>> QueryWaited([FromQuery] DelayListDto dto)
     {
-        await _orderDelayApplication.ReviewAsync(request, cancellation);
-        return Ok();
+        var delays = await _orderDelayApplication.QueryWaited(dto)
+            .ToPageListWithoutTotalAsync(dto, HttpContext.RequestAborted);
+        var list = _mapper.Map<IReadOnlyList<OrderDelayStepIdDto>>(delays);
+        return list;
     }
+
+    /// <summary>
+    /// 延期审核
+    /// </summary>
+    public Task ReviewAsync(OrderDelayReviewRequest request) =>
+        _orderDelayApplication.ReviewAsync(request, HttpContext.RequestAborted);
+
+
 }

+ 1 - 0
src/Hotline.Api/Controllers/OrderController.cs

@@ -84,6 +84,7 @@ using OrderDto = Hotline.Share.Dtos.Order.OrderDto;
 using UserInfo = Hotline.Share.Dtos.FlowEngine.UserInfo;
 using Hotline.Caching.Services;
 using Hotline.Early;
+using Hotline.Share.Dtos.Order.OrderDelay;
 using MathNet.Numerics.Distributions;
 
 namespace Hotline.Api.Controllers;

+ 14 - 13
src/Hotline.Application/Mappers/BatchTaskMapperConfigs.cs

@@ -15,19 +15,20 @@ namespace Hotline.Application.Mappers
     {
         public void Register(TypeAdapterConfig config)
         {
-            config.ForType<AddApptaskDto, Apptask>()
-                .AfterMapping((s, d) =>
-                {
-                    var taskParams = s.RequestDto == null
-                        ? null
-                        : System.Text.Json.JsonSerializer.Serialize(s.RequestDto);
-                    d.ApptaskItems.ForEach(item =>
-                    {
-                        item.TaskType = s.TaskType;
-                        item.TryLimit = s.TryLimit;
-                        item.TaskParams = taskParams;
-                    });
-                });
+            //config.ForType<AddApptaskRequest, Apptask>()
+            //    .AfterMapping((s, d) =>
+            //    {
+            //        d.ApptaskItems.ForEach(item =>
+            //        {
+            //            item.TaskType = s.TaskType;
+            //            item.TryLimit = s.TryLimit;
+                        
+            //        });
+            //    });
+
+            config.ForType<AddApptaskItemRequest, ApptaskItem>()
+                .Map(d => d.TaskParams, s => System.Text.Json.JsonSerializer.Serialize(s.TaskParams))
+                .IgnoreIf((s, d) => s.TaskParams == null, d => d.TaskParams);
 
             config.ForType<Apptask, ApptaskProgressDto>()
                 .BeforeMapping((s, d) =>

+ 11 - 0
src/Hotline.Application/Mappers/OrderMapperConfigs.cs

@@ -5,6 +5,7 @@ using Hotline.Orders;
 using Hotline.Share.Dtos.Ai;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Dtos.Order.Detail;
+using Hotline.Share.Dtos.Order.OrderDelay;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;
@@ -171,6 +172,16 @@ public class OrderMapperConfigs : IRegister
             .IgnoreIf((s, d) => s.Workflow == null, d => d.CurrentStepName)
             .IgnoreIf((s, d) => s.Workflow == null, d => d.ActualHandlerName);
 
+        config.ForType<OrderDelay, OrderDelayStepIdDto>()
+            .Map(d => d.StepId, s => s.WorkflowSteps.First().Id)
+            .Map(d => d.CurrentStepName, s => s.WorkflowSteps.First().Name)
+            .Map(d => d.ActualHandlerName, s => s.WorkflowSteps.First().HandlerName)
+            .IgnoreIf((s, d) => s.WorkflowSteps == null || !s.WorkflowSteps.Any(),
+                d => d.StepId,
+                d => d.CurrentStepName,
+                d => d.ActualHandlerName)
+            ;
+
         config.ForType<ExpiredTimeWithConfig, UpdateOrderDto>()
             .Map(d => d.TimeLimit, s => s.TimeText)
             .Map(d => d.TimeLimitCount, s => s.Count)

+ 1 - 1
src/Hotline.Application/OrderApp/OrderDelayApp/IOrderDelayApplication.cs

@@ -8,7 +8,7 @@ namespace Hotline.Application.OrderApp.OrderDelayApp;
 public interface IOrderDelayApplication
 {
     /// <summary>
-    /// 延期列表
+    /// 查询延期待审批列表
     /// </summary>
     /// <returns></returns>
     ISugarQueryable<OrderDelay> QueryWaited(DelayListDto dto);

+ 68 - 52
src/Hotline.Application/OrderApp/OrderDelayApp/OrderDelayApplication.cs

@@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Http;
 using System.Threading;
 using Hotline.BatchTask;
 using Hotline.Orders;
+using Hotline.Share.Dtos.BatchTask;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.BatchTask;
 using Hotline.Share.Enums.Order;
@@ -15,6 +16,7 @@ using SqlSugar;
 using XF.Domain.Authentications;
 using XF.Domain.Dependency;
 using XF.Domain.Entities;
+using XF.Domain.Exceptions;
 
 namespace Hotline.Application.OrderApp.OrderDelayApp;
 
@@ -23,6 +25,7 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
     private readonly IOrderDomainService _orderDomainService;
     private readonly IOrderDelayRepository _orderDelayRepository;
     private readonly IWorkflowDomainService _workflowDomainService;
+    private readonly IApptaskDomainService _apptaskDomainService;
     private readonly ISessionContext _sessionContext;
     private readonly IMapper _mapper;
 
@@ -30,18 +33,20 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
         IOrderDomainService orderDomainService,
         IOrderDelayRepository orderDelayRepository,
         IWorkflowDomainService workflowDomainService,
+        IApptaskDomainService apptaskDomainService,
         ISessionContext sessionContext,
         IMapper mapper)
     {
         _orderDomainService = orderDomainService;
         _orderDelayRepository = orderDelayRepository;
         _workflowDomainService = workflowDomainService;
+        _apptaskDomainService = apptaskDomainService;
         _sessionContext = sessionContext;
         _mapper = mapper;
     }
 
     /// <summary>
-    /// 延期列表
+    /// 查询延期待审批列表
     /// </summary>
     /// <returns></returns>
     public ISugarQueryable<OrderDelay> QueryWaited(DelayListDto dto)
@@ -49,20 +54,20 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
         var isAdmin = _orderDomainService.IsCheckAdmin();
         var hasHandled = dto.IsApply.HasValue && dto.IsApply.Value;
         var query = _orderDelayRepository.Queryable()
-                .Includes(d => d.WorkflowSteps.Where(step =>
-                        ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) &&
-                          step.HandlerId == _sessionContext.RequiredUserId) ||
-                         (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) &&
-                          step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
-                         (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) &&
-                          _sessionContext.Roles.Contains(step.RoleId)) ||
-                         (step.FlowAssignType == EFlowAssignType.OrgAndRole && !string.IsNullOrEmpty(step.RoleId) &&
-                          _sessionContext.Roles.Contains(step.RoleId)
-                          && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId)))
-                    .OrderByDescending(step => step.CreationTime)
-                    .Take(1)
-                    .ToList()
-                );
+            .Includes(d => d.WorkflowSteps.Where(step =>
+                    ((step.FlowAssignType == EFlowAssignType.User && !string.IsNullOrEmpty(step.HandlerId) &&
+                      step.HandlerId == _sessionContext.RequiredUserId) ||
+                     (step.FlowAssignType == EFlowAssignType.Org && !string.IsNullOrEmpty(step.HandlerOrgId) &&
+                      step.HandlerOrgId == _sessionContext.RequiredOrgId) ||
+                     (step.FlowAssignType == EFlowAssignType.Role && !string.IsNullOrEmpty(step.RoleId) &&
+                      _sessionContext.Roles.Contains(step.RoleId)) ||
+                     (step.FlowAssignType == EFlowAssignType.OrgAndRole && !string.IsNullOrEmpty(step.RoleId) &&
+                      _sessionContext.Roles.Contains(step.RoleId)
+                      && !string.IsNullOrEmpty(step.HandlerOrgId) && step.HandlerOrgId == _sessionContext.RequiredOrgId)))
+                .OrderByDescending(step => step.CreationTime)
+                .Take(1)
+                .ToList()
+            );
 
         if (!isAdmin)
         {
@@ -100,34 +105,34 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
 
 
         query.Includes(d => d.Order)
-          .Includes(d => d.Workflow)
-          .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
-          .WhereIF(dto.IsApply == false, d => d.DelayState == EDelayState.Examining)
-          .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No))                                   //工单编号
-          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, d => d.Order.IsProvince == true)      //是否省工单
-          .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == false, d => d.Order.IsProvince == false)
-          .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title))                          //工单标题
-          .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.Order.SourceChannelCode == dto.Channel)                 //来源渠道
-          .WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart)                //受理时间Start
-          .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd)                    //受理时间End
-          .WhereIF(!string.IsNullOrEmpty(dto.AcceptorName), d => d.Order.AcceptorName == dto.AcceptorName!)           //受理人
-          .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
-          .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.Order.AcceptTypeCode == dto.AcceptTypeCode)      //受理类型
-          .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.Order.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
-          .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), d => d.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
-          .WhereIF(dto.CurrentHandleTimeStart.HasValue, d => d.Order.CurrentHandleTime >= dto.CurrentHandleTimeStart) //接办时间Start
-          .WhereIF(dto.CurrentHandleTimeEnd.HasValue, d => d.Order.CurrentHandleTime <= dto.CurrentHandleTimeEnd)     //接办时间End
-          .WhereIF(dto.ApplyTimeStart.HasValue, d => d.CreationTime >= dto.ApplyTimeStart)                            //延期申请时间Start
-          .WhereIF(dto.ApplyTimeEnd.HasValue, d => d.CreationTime <= dto.ApplyTimeEnd)                                //延期申请时间End
-          .WhereIF(!string.IsNullOrEmpty(dto.ApplyName), d => d.CreatorName.Contains(dto.ApplyName))                  //延期申请人
-          .WhereIF(!string.IsNullOrEmpty(dto.ApplyOrgName), d => d.CreatorOrgName.Contains(dto.ApplyOrgName))         //延期申请部门
-          .WhereIF(dto.DelayNum.HasValue, d => d.DelayNum == dto.DelayNum)                                            //延期申请时限
-          .WhereIF(dto.DelayUnit.HasValue, d => d.DelayUnit == dto.DelayUnit)                                         //延期申请单位
-          .WhereIF(!string.IsNullOrEmpty(dto.DelayReason), d => d.DelayReason.Contains(dto.DelayReason))              //申请理由
-          .WhereIF(dto.BeforeDelayStart.HasValue, d => d.BeforeDelay >= dto.BeforeDelayStart)                         //申请前期满时间Start
-          .WhereIF(dto.BeforeDelayEnd.HasValue, d => d.BeforeDelay <= dto.BeforeDelayEnd)                             //申请前期满时间End
-          .OrderByDescending(d => d.ApplyDelayTime)
-      ;
+            .WhereIF(!string.IsNullOrEmpty(dto.Keyword), d => d.Order.Title.Contains(dto.Keyword!) || d.No.Contains(dto.Keyword!))
+            .WhereIF(dto.IsApply == false, d => d.DelayState == EDelayState.Examining)
+            .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No)) //工单编号
+            .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == true, d => d.Order.IsProvince == true) //是否省工单
+            .WhereIF(dto.IsProvince.HasValue && dto.IsProvince == false, d => d.Order.IsProvince == false)
+            .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title)) //工单标题
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), d => d.Order.SourceChannelCode == dto.Channel) //来源渠道
+            .WhereIF(dto.CreationTimeStart.HasValue, d => d.Order.CreationTime >= dto.CreationTimeStart) //受理时间Start
+            .WhereIF(dto.CreationTimeEnd.HasValue, d => d.Order.CreationTime <= dto.CreationTimeEnd) //受理时间End
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptorName), d => d.Order.AcceptorName == dto.AcceptorName!) //受理人
+            .WhereIF(!string.IsNullOrEmpty(dto.Hotspot),
+                d => d.Order.HotspotSpliceName != null && d.Order.HotspotSpliceName.Contains(dto.Hotspot)) //热点
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.Order.AcceptTypeCode == dto.AcceptTypeCode) //受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.Order.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
+            .WhereIF(!string.IsNullOrEmpty(dto.CurrentHandleOrgName), d => d.Order.CurrentHandleOrgName.Contains(dto.CurrentHandleOrgName)) //接办部门
+            .WhereIF(dto.CurrentHandleTimeStart.HasValue, d => d.Order.CurrentHandleTime >= dto.CurrentHandleTimeStart) //接办时间Start
+            .WhereIF(dto.CurrentHandleTimeEnd.HasValue, d => d.Order.CurrentHandleTime <= dto.CurrentHandleTimeEnd) //接办时间End
+            .WhereIF(dto.ApplyTimeStart.HasValue, d => d.CreationTime >= dto.ApplyTimeStart) //延期申请时间Start
+            .WhereIF(dto.ApplyTimeEnd.HasValue, d => d.CreationTime <= dto.ApplyTimeEnd) //延期申请时间End
+            .WhereIF(!string.IsNullOrEmpty(dto.ApplyName), d => d.CreatorName.Contains(dto.ApplyName)) //延期申请人
+            .WhereIF(!string.IsNullOrEmpty(dto.ApplyOrgName), d => d.CreatorOrgName.Contains(dto.ApplyOrgName)) //延期申请部门
+            .WhereIF(dto.DelayNum.HasValue, d => d.DelayNum == dto.DelayNum) //延期申请时限
+            .WhereIF(dto.DelayUnit.HasValue, d => d.DelayUnit == dto.DelayUnit) //延期申请单位
+            .WhereIF(!string.IsNullOrEmpty(dto.DelayReason), d => d.DelayReason.Contains(dto.DelayReason)) //申请理由
+            .WhereIF(dto.BeforeDelayStart.HasValue, d => d.BeforeDelay >= dto.BeforeDelayStart) //申请前期满时间Start
+            .WhereIF(dto.BeforeDelayEnd.HasValue, d => d.BeforeDelay <= dto.BeforeDelayEnd) //申请前期满时间End
+            .OrderByDescending(d => d.ApplyDelayTime)
+            ;
 
         return query;
     }
@@ -175,26 +180,37 @@ public class OrderDelayApplication : IOrderDelayApplication, IScopeDependency
     /// <returns></returns>
     public async Task BatchReviewAsync(BatchOrderDelayReviewRequest request, CancellationToken cancellation)
     {
+        var delayIds = request.DelayWithStepIds.Select(d => d.DelayId).Distinct().ToList();
         var delays = await _orderDelayRepository.Queryable()
-            .Where(d => request.DelayIds.Contains(d.Id))
+            .Where(d => delayIds.Contains(d.Id))
             .ToListAsync(cancellation);
 
         var apptaskItems = new List<ApptaskItem>();
         foreach (var delay in delays)
         {
-            request.NextWorkflow.StepId = delay
+            var stepId = request.DelayWithStepIds.First(d => d.DelayId == delay.Id).StepId;
+            request.NextWorkflow.StepId = stepId;
+            apptaskItems.Add(new ApptaskItem
+            {
+                BusinessId = delay.Id,
+                TaskType = ETaskType.Delay,
+                TaskParams = System.Text.Json.JsonSerializer.Serialize(request.NextWorkflow)
+            });
         }
 
-        var taskparams = System.Text.Json.JsonSerializer.Serialize(request.NextWorkflow);
         var apptask = new Apptask
         {
             TaskType = ETaskType.Delay,
-            ApptaskItems = request.DelayIds.Select(d => new ApptaskItem
-            {
-                BusinessId = d,
-                TaskType = ETaskType.Delay,
-                TaskParams =
-            })
+            ApptaskItems = apptaskItems,
+        };
+        
+        //
+        var addApptask = new AddApptaskRequest
+        {
+            
         }
+        
+        
+        _apptaskDomainService.AddAsync()
     }
 }

+ 5 - 5
src/Hotline.Share/Dtos/BatchTask/AddApptaskRequest.cs

@@ -7,7 +7,7 @@ using Hotline.Share.Enums.BatchTask;
 
 namespace Hotline.Share.Dtos.BatchTask
 {
-    public class AddApptaskDto
+    public class AddApptaskRequest
     {
         /// <summary>
         /// 任务名称
@@ -29,16 +29,16 @@ namespace Hotline.Share.Dtos.BatchTask
         /// </summary>
         public int TryLimit { get; set; } = 1;
 
-        public List<AddApptaskItemDto> ApptaskItems { get; set; }
-
-        public object? TaskParams { get; set; }
+        public List<AddApptaskItemRequest> ApptaskItems { get; set; }
     }
 
-    public class AddApptaskItemDto
+    public class AddApptaskItemRequest
     {
         /// <summary>
         /// 业务id(冗余)
         /// </summary>
         public string BusinessId { get; set; }
+        
+        public object? TaskParams { get; set; }
     }
 }

+ 8 - 2
src/Hotline.Share/Dtos/Order/OrderDelay/OrderDelayDto.cs

@@ -3,9 +3,14 @@ using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Settings;
 using XF.Utility.EnumExtensions;
 
-namespace Hotline.Share.Dtos.Order;
+namespace Hotline.Share.Dtos.Order.OrderDelay;
 
-public record OrderDelayDto
+public class OrderDelayStepIdDto : OrderDelayDto
+{
+    public string StepId { get; set; }
+}
+
+public class OrderDelayDto
 {
     /// <summary>
     /// 工单编号(冗余)
@@ -111,6 +116,7 @@ public record OrderDelayDto
     /// 当前办理节点
     /// </summary>
     public string? CurrentStepName { get; set; }
+
     /// <summary>
     /// 当前办理人
     /// </summary>

+ 7 - 1
src/Hotline.Share/Dtos/Order/OrderDelay/OrderDelayReviewRequest.cs

@@ -16,7 +16,7 @@ public class OrderDelayReviewRequest
 
 public class BatchOrderDelayReviewRequest
 {
-    public List<string> DelayIds { get; set; }
+    public List<DelayWithStepId> DelayWithStepIds { get; set; }
 
     /// <summary>
     /// 是否通过
@@ -24,4 +24,10 @@ public class BatchOrderDelayReviewRequest
     public bool IsPass { get; set; }
 
     public NextWorkflowDto NextWorkflow { get; set; }
+}
+
+public class DelayWithStepId
+{
+    public string DelayId { get; set; }
+    public string StepId { get; set; }
 }

+ 1 - 0
src/Hotline.Share/Dtos/Order/OrderDto.cs

@@ -2,6 +2,7 @@
 using Hotline.Share.Dtos.File;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Hotspots;
+using Hotline.Share.Dtos.Order.OrderDelay;
 using Hotline.Share.Dtos.Settings;
 using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;

+ 1 - 0
src/Hotline.Share/Dtos/Order/OrderStartFlowDto.cs

@@ -2,6 +2,7 @@
 using Hotline.Share.Dtos.Early;
 using Hotline.Share.Dtos.FlowEngine;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
+using Hotline.Share.Dtos.Order.OrderDelay;
 using Hotline.Share.Dtos.Org;
 using Hotline.Share.Enums.Early;
 using Hotline.Share.Enums.FlowEngine;

+ 0 - 132
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -4,7 +4,6 @@ using Hotline.Share.Enums.FlowEngine;
 using Hotline.Share.Enums.Order;
 using Hotline.Share.Enums.Settings;
 using Hotline.Share.Requests;
-using XF.Utility.EnumExtensions;
 
 namespace Hotline.Share.Dtos.Order
 {
@@ -423,137 +422,6 @@ namespace Hotline.Share.Dtos.Order
         public List<FileJson> FileJson { get; set; }
     }
 
-    public record OrderDelayDto
-    {
-        /// <summary>
-        /// 工单编号(冗余)
-        /// </summary>
-        public string No { get; set; }
-
-        /// <summary>
-        /// 工单ID
-        /// </summary>
-        public string OrderId { get; set; }
-
-        public OrderDto? Order { get; set; }
-
-        /// <summary>
-        /// 延期申请时间
-        /// </summary>
-        public DateTime ApplyDelayTime { get; set; }
-
-        /// <summary>
-        /// 申请部门Code
-        /// </summary>
-        public string ApplyOrgCode { get; set; }
-
-        /// <summary>
-        /// 申请部门名称
-        /// </summary>
-        public string ApplyOrgName { get; set; }
-
-        /// <summary>
-        /// 申请人
-        /// </summary>
-        public string EmployeeId { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        public string? EmployeeName { get; set; }
-
-        /// <summary>
-        /// 延期申请时限
-        /// </summary>
-        public int DelayNum { get; set; }
-
-        /// <summary>
-        /// 延期申请单位
-        /// </summary>
-        public ETimeType DelayUnit { get; set; }
-
-        public string DelayUnitText => DelayUnit.GetDescription();
-
-        /// <summary>
-        /// 延期申请理由
-        /// </summary>
-        public string DelayReason { get; set; }
-
-        /// <summary>
-        /// 申请前期满时间
-        /// </summary>
-        public DateTime? BeforeDelay { get; set; }
-
-        /// <summary>
-        /// 申请后期满时间
-        /// </summary>
-        public DateTime? AfterDelay { get; set; }
-
-        /// <summary>
-        /// 审批状态
-        /// </summary>
-        public EDelayState DelayState { get; set; }
-
-        public string DelayStateText => DelayState.GetDescription();
-
-        /// <summary>
-        /// 是否省延期
-        /// </summary>
-        public bool IsProDelay { get; set; }
-
-        /// <summary>
-        /// 流程ID
-        /// </summary>
-        public string? WorkflowId { get; set; }
-
-        public DateTime CreationTime { get; set; }
-
-        public string Id { get; set; }
-
-        public string? CreatorId { get; set; }
-
-        public string? CreatorName { get; set; }
-
-        public string? CreatorOrgId { get; set; }
-
-        public string? CreatorOrgName { get; set; }
-
-        public int CreatorOrgLevel { get; set; }
-
-        /// <summary>
-        /// 一级部门Id
-        /// </summary>
-        public string? AreaId { get; set; }
-
-        /// <summary>
-        /// 当前办理节点
-        /// </summary>
-        public string? CurrentStepName { get; set; }
-        /// <summary>
-        /// 当前办理人
-        /// </summary>
-        public string? ActualHandlerName { get; set; }
-
-        /// <summary>
-        /// 是否可办理
-        /// </summary>
-        public bool IsCanHandle { get; set; }
-
-        public List<FileDto> Files { get; set; }
-
-        public List<FileJson> FileJson { get; set; }
-
-        /// <summary>
-        /// 办理 true  审批 false 
-        /// </summary>
-        public bool Handle { get; set; }
-
-        /// <summary>
-        /// 自动延期次数
-        /// </summary>
-        public int? AutomaticDelayNum { get; set; }
-    }
-
 
     public record DelayCalcEndTimeDto
     {

+ 3 - 3
src/Hotline/BatchTask/ApptaskDomainService.cs

@@ -33,14 +33,14 @@ public class ApptaskDomainService : IApptaskDomainService, IScopeDependency
     /// <summary>
     /// 新增任务
     /// </summary>
-    public async Task<string> AddAsync(AddApptaskDto dto, CancellationToken cancellation)
+    public async Task<string> AddAsync(AddApptaskRequest request, CancellationToken cancellation)
     {
         var validator = new ApptaskValidator();
-        var result = validator.Validate(dto);
+        var result = validator.Validate(request);
         if (!result.IsValid)
             throw new ValidationException(result.Errors.FirstOrDefault()?.ErrorMessage);
 
-        var apptask = _mapper.Map<Apptask>(dto);
+        var apptask = _mapper.Map<Apptask>(request);
 
         if (string.IsNullOrEmpty(apptask.Name))
             apptask.CreateName();

+ 1 - 1
src/Hotline/BatchTask/IApptaskDomainService.cs

@@ -12,7 +12,7 @@ namespace Hotline.BatchTask
         /// <summary>
         /// 新增任务
         /// </summary>
-        Task<string> AddAsync(AddApptaskDto dto, CancellationToken cancellation);
+        Task<string> AddAsync(AddApptaskRequest request, CancellationToken cancellation);
 
         /// <summary>
         /// 查询任务进度

+ 2 - 2
src/Hotline/Validators/BatchTask/ApptaskValidator.cs

@@ -9,7 +9,7 @@ using Hotline.Share.Dtos.BatchTask;
 
 namespace Hotline.Validators.BatchTask;
 
-public class ApptaskValidator : AbstractValidator<AddApptaskDto>
+public class ApptaskValidator : AbstractValidator<AddApptaskRequest>
 {
     public ApptaskValidator()
     {
@@ -28,7 +28,7 @@ public class ApptaskValidator : AbstractValidator<AddApptaskDto>
     }
 }
 
-public class ApptaskItemValidator : AbstractValidator<AddApptaskItemDto>
+public class ApptaskItemValidator : AbstractValidator<AddApptaskItemRequest>
 {
     public ApptaskItemValidator()
     {