Browse Source

Merge branch 'master' of http://110.188.24.182:10023/Fengwo/hotline

田爽 1 year ago
parent
commit
a9f5cf78fb

+ 17 - 9
src/Hotline.Api/Controllers/OrderController.cs

@@ -2323,24 +2323,32 @@ public class OrderController : BaseController
     [HttpPost("handle")]
     public async Task Handle([FromBody] OrderHandleFlowDto dto)
     {
-        if (await _orderDelayRepository.AnyAsync(x => x.OrderId == dto.OrderId && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
+        Order order;
+        if (string.IsNullOrEmpty(dto.Data?.Id))
         {
-            throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
+            order = await _orderRepository.Queryable()
+                .FirstAsync(d => d.WorkflowId == dto.Workflow.WorkflowId, HttpContext.RequestAborted);
+            if (order is null)
+                throw new UserFriendlyException("流程无对应工单");
+        }
+        else
+        {
+            order = await _orderRepository.Queryable()
+                .FirstAsync(d => d.Id == dto.Data.Id, HttpContext.RequestAborted);
         }
-        var order = await _orderDomainService.GetOrderAsync(dto.OrderId, withExtension: true,
-            cancellationToken: HttpContext.RequestAborted);
-        if (string.IsNullOrEmpty(order.WorkflowId))
-            throw new UserFriendlyException("该工单未发起流程");
 
+        if (await _orderDelayRepository.AnyAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, HttpContext.RequestAborted))
+        {
+            throw UserFriendlyException.SameMessage("该工单存在正在审核中的延期,不能办理");
+        }
+       
         if(dto.Data is not null && !string.IsNullOrEmpty(dto.Data.Id))
         {
             _mapper.Map(dto.Data, order);
             await _orderRepository.UpdateAsync(order, HttpContext.RequestAborted);
         }
 
-        var nextWorkflowDto = _mapper.Map<NextWorkflowDto>(dto.Workflow);
-        nextWorkflowDto.WorkflowId = order.WorkflowId;
-        await _workflowApplication.NextAsync(nextWorkflowDto, HttpContext.RequestAborted);
+        await _workflowApplication.NextAsync(dto.Workflow, HttpContext.RequestAborted);
     }
 
     /// <summary>

+ 7 - 0
src/Hotline.Share/Dtos/FlowEngine/NextWorkflowDto.cs

@@ -53,4 +53,11 @@ public class NextWorkflowDto : BasicWorkflowDto
     public bool? RealContactLocale { get; set; }
 
     #endregion
+}
+
+public class NextWorkflowDto<TData>
+{
+    public TData? Data { get; set; }
+
+    public NextWorkflowDto Workflow { get; set; }
 }

+ 10 - 49
src/Hotline.Share/Dtos/Order/OrderStartFlowDto.cs

@@ -14,48 +14,9 @@ namespace Hotline.Share.Dtos.Order
 
     }
 
-    public class OrderHandleFlowDto : StartWorkflowDto<UpdateOrderDto>
+    public class OrderHandleFlowDto : NextWorkflowDto<UpdateOrderDto>
     {
-        public string OrderId { get; set; }
-
-        #region 手动填入办理人信息
-
-        /// <summary>
-        /// 真实办理人姓名(手动填写)
-        /// </summary>
-        public string? RealHandlerName { get; set; }
-
-        /// <summary>
-        /// 真实办理人电话(手动填写)
-        /// </summary>
-        public string? RealHandlerPhone { get; set; }
-
-        /// <summary>
-        /// 沟通方式(手动填写)
-        /// </summary>
-        public ERealCommunicationMode? RealCommunicationMode { get; set; }
-
-        /// <summary>
-        /// 沟通时间(手动填写)
-        /// </summary>
-        public DateTime? RealCommunicationTime { get; set; }
-
-        /// <summary>
-        /// 沟通地点(手动填写)
-        /// </summary>
-        public string? RealCommunicationAddress { get; set; }
-
-        /// <summary>
-        /// 已与市民沟通
-        /// </summary>
-        public bool? RealIsContacted { get; set; }
-
-        /// <summary>
-        /// 已与市民现场沟通
-        /// </summary>
-        public bool? RealContactLocale { get; set; }
-
-        #endregion
+       
     }
 
     public class ScreenStartFlowDto : StartWorkflowDto<OrderScreenDto>
@@ -63,21 +24,21 @@ namespace Hotline.Share.Dtos.Order
 
     }
 
-    public class ScreenNextFlowDto 
+    public class ScreenNextFlowDto
     {
-		public OrderScreenDto Data { get; set; }
+        public OrderScreenDto Data { get; set; }
 
-		public NextWorkflowDto NextWorkflow { get; set; }
-	}
+        public NextWorkflowDto NextWorkflow { get; set; }
+    }
 
     public class DelayNextFlowDto
-	{
-	    public OrderDelayDto Data { get; set; }
+    {
+        public OrderDelayDto Data { get; set; }
 
-	    public NextWorkflowDto NextWorkflow { get; set; }
+        public NextWorkflowDto NextWorkflow { get; set; }
     }
 
-	public class DelayStartFlowDto : StartWorkflowDto<ApplyDelayDto>
+    public class DelayStartFlowDto : StartWorkflowDto<ApplyDelayDto>
     {
 
     }