田爽 11 місяців тому
батько
коміт
2f800050de

+ 39 - 10
src/Hotline.Api/Controllers/OrderController.cs

@@ -113,8 +113,9 @@ public class OrderController : BaseController
     private readonly IRepository<TranspondCityRawData> _transpondCityRawDataRepository;
     private readonly IRepository<OrderSpecialDetail> _orderSpecialDetailRepository;
     private readonly IOrderSecondaryHandlingApplication _orderSecondaryHandlingApplication;
+    private readonly IRepository<OrderCopy> _orderCopyRepository;
 
-    public OrderController(
+	public OrderController(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowApplication workflowApplication,
@@ -165,8 +166,9 @@ public class OrderController : BaseController
         IExportApplication exportApplication,
         IRepository<TranspondCityRawData> transpondCityRawDataRepository,
         IRepository<OrderSpecialDetail> orderSpecialDetailRepository,
-        IOrderSecondaryHandlingApplication orderSecondaryHandlingApplication
-        )
+        IOrderSecondaryHandlingApplication orderSecondaryHandlingApplication,
+        IRepository<OrderCopy> orderCopyRepository
+		)
     {
         _orderDomainService = orderDomainService;
         _orderRepository = orderRepository;
@@ -219,7 +221,9 @@ public class OrderController : BaseController
         _transpondCityRawDataRepository = transpondCityRawDataRepository;
         _orderSpecialDetailRepository = orderSpecialDetailRepository;
         _orderSecondaryHandlingApplication = orderSecondaryHandlingApplication;
-    }
+        _orderCopyRepository = orderCopyRepository;
+
+	}
 
     #region 工单发布
 
@@ -2417,6 +2421,11 @@ public class OrderController : BaseController
         {
             _logger.LogError("新增工单发送短信失败,Error:{err}", e.Message);
         }
+        // 副本工单
+        OrderCopy copy = _mapper.Map<OrderCopy>(order);
+        copy.OrderId = order.Id;
+        copy.InitId();
+        await _orderCopyRepository.AddAsync(copy, HttpContext.RequestAborted);
         return order.Id;
     }
 
@@ -2519,7 +2528,12 @@ public class OrderController : BaseController
         await _orderRepository.UpdateNav(order).Include(d => d.OrderExtension).ExecuteCommandAsync();
         //敏感分词
         await _orderApplication.OrderSensitiveParticiple(dto.Content, order.Id, HttpContext.RequestAborted);
-    }
+        // 副本工单
+        OrderCopy copy = _mapper.Map<OrderCopy>(order);
+        copy.OrderId = order.Id;
+        copy.InitId();
+        await _orderCopyRepository.AddAsync(copy, HttpContext.RequestAborted);
+	}
 
     /// <summary>
     /// 开始工单办理流程
@@ -4949,9 +4963,24 @@ public class OrderController : BaseController
         };
         return rsp;
     }
-    #endregion
-
-    #region 副本工单
-
-    #endregion
+	#endregion
+
+	#region 副本工单
+
+	/// <summary>
+	/// 获取副本工单列表
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	[HttpGet("order_copy/list")]
+	public async Task<PagedDto<OrderCopyDto>> OrderCopyList([FromQuery] PagedKeywordRequest dto)
+	{
+		var (total, items) = await _orderCopyRepository.Queryable()
+			.WhereIF(!string.IsNullOrEmpty(dto.Keyword),x => x.No.Contains(dto.Keyword!))
+			.OrderByDescending(x => x.CreationTime)
+			.ToPagedListAsync(1, 1, HttpContext.RequestAborted);
+		return new PagedDto<OrderCopyDto>(total, _mapper.Map<IReadOnlyList<OrderCopyDto>>(items));
+	}
+
+	#endregion
 }

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

@@ -743,4 +743,10 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public List<FileDto> Files { get; set; } = new List<FileDto>();
     }
+
+
+    public class OrderCopyDto : OrderDto { 
+    
+        public string OrderId { get; set; }
+    }
 }

+ 21 - 0
src/Hotline/Orders/OrderCopy.cs

@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Orders
+{
+	/// <summary>
+	/// 副本工单
+	/// </summary>
+	[Description("副本工单")]
+	public partial class OrderCopy : Order
+	{
+		/// <summary>
+		/// 工单ID
+		/// </summary>
+		public string OrderId { get; set; }
+	}
+}