Преглед на файлове

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

xf преди 1 година
родител
ревизия
6cfdadd0a9

+ 84 - 6
src/Hotline.Api/Controllers/OrderController.cs

@@ -74,9 +74,11 @@ public class OrderController : BaseController
     private readonly IRepeatableEventDetailRepository _repeatableEventDetailRepository;
     private readonly IRepository<OrderWord> _orderWrodRepository;
     private readonly IRepository<OrderObserve> _orderObserveRepository;
+    private readonly IRepository<OrderFinality> _orderFinalityRepository;
+	
 
 
-    public OrderController(
+	public OrderController(
         IOrderDomainService orderDomainService,
         IOrderRepository orderRepository,
         IWorkflowApplication workflowApplication,
@@ -109,8 +111,9 @@ public class OrderController : BaseController
         IRepository<RepeatableEvent> repeatableEventRepository,
         IRepeatableEventDetailRepository repeatableEventDetailRepository,
         IRepository<OrderWord> orderWrodRepository,
-        IRepository<OrderObserve> orderObserveRepository
-    )
+        IRepository<OrderObserve> orderObserveRepository,
+        IRepository<OrderFinality> orderFinalityRepository
+	)
     {
         _orderDomainService = orderDomainService;
         _orderRepository = orderRepository;
@@ -145,8 +148,10 @@ public class OrderController : BaseController
         _repeatableEventDetailRepository = repeatableEventDetailRepository;
         _orderWrodRepository = orderWrodRepository;
         _orderObserveRepository = orderObserveRepository;
+        _orderFinalityRepository = orderFinalityRepository;
 
-    }
+
+	}
 
     #region 工单发布
 
@@ -2202,6 +2207,79 @@ public class OrderController : BaseController
         return await _orderObserveRepository.Queryable()
             .FirstAsync(x => x.Id == id);
     }
-    #endregion
-
+	#endregion
+
+	#region 工单终结
+	/// <summary>
+	/// 新增工单终结
+	/// </summary>
+	/// <param name="dtos"></param>
+	/// <returns></returns>
+	[Permission(EPermission.AddOrderFinality)]
+	[HttpPost("order_finality")]
+	public async Task Add([FromBody] OrderFinalityAddDto dto)
+	{
+		var observe = _mapper.Map<OrderFinality>(dto);
+		await _orderFinalityRepository.AddAsync(observe, HttpContext.RequestAborted);
+	}
+
+	/// <summary>
+	/// 删除工单终结
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	[Permission(EPermission.DeleteOrderFinality)]
+	[HttpDelete("order_finality")]
+	public async Task Delete([FromBody] OrderFinalityDeleteDto dto)
+	{
+		await _orderRepository.RemoveOrderFinalityBatchAsync(dto.Ids, HttpContext.RequestAborted);
+	}
+
+	/// <summary>
+	/// 更新工单终结
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	[Permission(EPermission.UpdateOrderFinality)]
+	[HttpPut("order_finality")]
+	public async Task Update([FromBody] OrderFinalityUpdateDto dto)
+	{
+		var word = await _orderFinalityRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+		if (word is null)
+			throw UserFriendlyException.SameMessage("无效工单观察");
+		_mapper.Map(dto, word);
+		await _orderFinalityRepository.UpdateAsync(word, HttpContext.RequestAborted);
+	}
+
+	/// <summary>
+	/// 获取工单终结列表
+	/// </summary>
+	/// <param name="dto"></param>
+	/// <returns></returns>
+	[Permission(EPermission.OrderFinalityList)]
+	[HttpGet("order_finality/list")]
+	public async Task<PagedDto<OrderFinalityDto>> List([FromQuery] OrderFinalityListDto dto)
+	{
+		var (total, items) = await _orderFinalityRepository.Queryable()
+			.Includes(x => x.Order)
+			.WhereIF(dto.IsProvince.HasValue, x => x.Order.IsProvince == dto.IsProvince)
+			.WhereIF(!string.IsNullOrEmpty(dto.Title), x => x.Order.Title.Contains(dto.Title!))
+			.WhereIF(!string.IsNullOrEmpty(dto.No), x => x.Order.No.Contains(dto.No!))
+			.OrderByDescending(x => x.CreationTime)
+			.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+		return new PagedDto<OrderFinalityDto>(total, _mapper.Map<IReadOnlyList<OrderFinalityDto>>(items));
+	}
+
+	/// <summary>
+	/// 获取工单终结
+	/// </summary>
+	/// <param name="id"></param>
+	/// <returns></returns>
+	[HttpGet("order_finality/{id}")]
+	public async Task<OrderFinality> OrderFinalityEntity(string id)
+	{
+		return await _orderFinalityRepository.Queryable()
+			.FirstAsync(x => x.Id == id);
+	}
+	#endregion
 }

+ 11 - 0
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -161,5 +161,16 @@ namespace Hotline.Repository.SqlSugar.Orders
 	        await Db.Deleteable<OrderObserve>().In(x => x.Id, ids).ExecuteCommandAsync(cancellationToken);
         }
 
+        /// <summary>
+        /// 工单终结批量删除
+        /// </summary>
+        /// <param name="ids"></param>
+        /// <param name="cancellationToken"></param>
+        /// <returns></returns>
+        public async Task RemoveOrderFinalityBatchAsync(List<string> ids, CancellationToken cancellationToken)
+        {
+	        await Db.Deleteable<OrderFinality>().In(x => x.Id, ids).ExecuteCommandAsync(cancellationToken);
+        }
+
 	}
 }

+ 93 - 0
src/Hotline.Share/Dtos/Order/OrderFinalityDto.cs

@@ -0,0 +1,93 @@
+using Hotline.Share.Requests;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.Share.Dtos.Order
+{
+	public class OrderFinalityDto : OrderFinalityBaseDto
+	{
+		/// <summary>
+		/// 工单ID
+		/// </summary>
+		public string OrderId { get; set; }
+
+		/// <summary>
+		/// 
+		/// </summary>
+		public OrderDto Order { get; set; }
+	}
+
+	public class OrderFinalityAddDto
+	{
+		/// <summary>
+		/// 工单ID
+		/// </summary>
+		public string OrderId { get; set; }
+	}
+
+	public class OrderFinalityDeleteDto
+	{
+		public List<string> Ids { get; set; }
+	}
+
+	public class OrderFinalityUpdateDto : OrderFinalityAddDto
+	{
+		public string Id { get; set; }
+	}
+
+	public record OrderFinalityListDto : PagedKeywordRequest
+	{
+		/// <summary>
+		/// 标题
+		/// </summary>
+		public string? Title { get; set; }
+
+		/// <summary>
+		/// 编号
+		/// </summary>
+		public string? No { get; set; }
+
+		/// <summary>
+		/// 是否为省工单
+		/// </summary>
+		public bool? IsProvince { get; set; }
+
+	}
+	public class OrderFinalityBaseDto
+	{
+		public DateTime? LastModificationTime { get; set; }
+
+		public bool IsDeleted { get; set; }
+
+		/// <summary>
+		/// 删除时间
+		/// </summary>
+		public DateTime? DeletionTime { get; set; }
+
+
+		/// <summary>
+		/// 创建时间
+		/// </summary>
+		public DateTime CreationTime { get; set; }
+
+		public string Id { get; set; }
+
+		/// <summary>
+		/// 组织Id
+		/// </summary>
+		public string? CreatorOrgId { get; set; }
+
+
+		public string? CreatorOrgName { get; set; }
+
+		/// <summary>
+		/// 创建人
+		/// </summary>
+		public string? CreatorId { get; set; }
+
+		public string? CreatorName { get; set; }
+	}
+}

+ 1 - 0
src/Hotline/Orders/IOrderRepository.cs

@@ -15,6 +15,7 @@ namespace Hotline.Orders
         Task RemoveOrderReportAsync(OrderReport orderReport, CancellationToken cancellationToken);
         Task RemoveOrderWrodBatchAsync(List<string> ids, CancellationToken cancellationToken);
         Task RemoveOrderObserveBatchAsync(List<string> ids, CancellationToken cancellationToken);
+        Task RemoveOrderFinalityBatchAsync(List<string> ids, CancellationToken cancellationToken);
 
 	}
 }

+ 27 - 0
src/Hotline/Orders/OrderFinality.cs

@@ -0,0 +1,27 @@
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using XF.Domain.Repository;
+
+namespace Hotline.Orders
+{
+	[Description("工单终结")]
+	public class OrderFinality : FullStateEntity
+	{
+		/// <summary>
+		/// 工单ID
+		/// </summary>
+		[SugarColumn(ColumnDescription = "工单ID")]
+		public string OrderId { get; set; }
+
+		/// <summary>
+		/// 
+		/// </summary>
+		[Navigate(NavigateType.OneToOne, nameof(OrderId))]
+		public Order Order { get; set; }
+	}
+}

+ 26 - 0
src/Hotline/Permissions/EPermission.cs

@@ -1480,6 +1480,32 @@ namespace Hotline.Permissions
 		UpdateOrderObserve = 501603,
 		#endregion
 
+		#region 工单终结
+		/// <summary>
+		/// 工单终结列表
+		/// </summary>
+		[Display(GroupName = "OrderObserve", Name = "工单终结列表", Description = "工单终结列表")]
+		OrderFinalityList = 501700,
+
+		/// <summary>
+		/// 新增工单终结
+		/// </summary>
+		[Display(GroupName = "OrderObserve", Name = "新增工单终结", Description = "新增工单终结")]
+		AddOrderFinality = 501701,
+
+		/// <summary>
+		/// 删除工单终结
+		/// </summary>
+		[Display(GroupName = "OrderObserve", Name = "删除工单终结", Description = "删除工单终结")]
+		DeleteOrderFinality = 501702,
+
+		/// <summary>
+		/// 修改工单终结
+		/// </summary>
+		[Display(GroupName = "OrderObserve", Name = "修改工单终结", Description = "修改工单终结")]
+		UpdateOrderFinality = 501703,
+		#endregion
+
 		#endregion
 
 		#region 辅助功能(600)