Jason 1 рік тому
батько
коміт
aed457e192

+ 53 - 4
src/Hotline.Api/Controllers/OrderController.cs

@@ -62,6 +62,7 @@ public class OrderController : BaseController
     private readonly IRepository<OrderUrge> _orderUrgeRepository;
     private readonly IFileRepository _fileRepository;
     private readonly IRepository<OrderScreen> _orderScreenRepository;
+    private readonly IRepository<OrderPublishHistory> _orderPublishHistoryRepository;
 
 
     public OrderController(
@@ -84,11 +85,12 @@ public class OrderController : BaseController
         IRepository<OrderDelay> orderDelayRepository,
         ITimeLimitApplication timeLimitApplication,
         ISystemSettingCacheManager systemSettingCacheManager,
-         IRepository<OrderRedo> orderRedoRepository,
-         IRepository<OrderSupervise> orderSuperviseRepository,
-         IRepository<OrderUrge> orderUrgeRepository,
+        IRepository<OrderRedo> orderRedoRepository,
+        IRepository<OrderSupervise> orderSuperviseRepository,
+        IRepository<OrderUrge> orderUrgeRepository,
         IFileRepository fileRepository,
-        IRepository<OrderScreen> orderScreenRepository
+        IRepository<OrderScreen> orderScreenRepository,
+        IRepository<OrderPublishHistory> orderPublishHistoryRepository
         )
     {
         _orderDomainService = orderDomainService;
@@ -115,6 +117,7 @@ public class OrderController : BaseController
         _orderUrgeRepository = orderUrgeRepository;
         _fileRepository = fileRepository;
         _orderScreenRepository = orderScreenRepository;
+        _orderPublishHistoryRepository = orderPublishHistoryRepository;
 
     }
 
@@ -291,7 +294,53 @@ public class OrderController : BaseController
         return pubentity;
     }
 
+    /// <summary>
+    /// 修改发布内容
+    /// </summary>
+    /// <param name="dto"></param>
+    /// <returns></returns>
+    [Permission(EPermission.PublishedModify)]
+    [HttpPost("published-order-modify")]
+    public async Task PublishedModify([FromBody]PublishOrderModifyDto dto)
+    {
+        var publishOrder = await _orderPublishRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
+
+        if(publishOrder is null)
+        {
+            throw UserFriendlyException.SameMessage("无效数据");
+        }
+
+        var history = new OrderPublishHistory();
+        history.ArrangeTitleBefor = publishOrder.ArrangeTitle;
+        history.ArrangeTitleAfter = dto.ArrangeTitle;
+        history.ArrangeContentBefor = publishOrder.ArrangeContent;
+        history.ArrangeContentAfter = dto.ArrangeContent;
+        history.ArrangeOpinionBefor = publishOrder.ArrangeOpinion;
+        history.ArrangeOpinionAfter = dto.ArrangeOpinion;
+        history.No = publishOrder.No;
+        history.OrderId = publishOrder.OrderId;
+        history.OrderPublishId = publishOrder.Id;
+
 
+        publishOrder.ArrangeTitle = dto.ArrangeTitle;
+        publishOrder.ArrangeContent = dto.ArrangeContent;
+        publishOrder.ArrangeOpinion = dto.ArrangeOpinion;
+
+        await _orderPublishRepository.UpdateAsync(publishOrder, HttpContext.RequestAborted);
+        await _orderPublishHistoryRepository.AddAsync(history, HttpContext.RequestAborted);
+    }
+
+    /// <summary>
+    /// 发布修改记录
+    /// </summary>
+    /// <param name="id"></param>
+    /// <returns></returns>
+    [Permission(EPermission.QueryPublishedHistory)]
+    [HttpGet("published-history-list/{id}")]
+    public async Task<List<OrderPublishHistory>> QueryPublishedHistory(string id)
+    {
+        return  await _orderPublishHistoryRepository.Queryable().Where(x => x.OrderPublishId == id).OrderByDescending(x=>x.CreationTime).ToListAsync(HttpContext.RequestAborted);
+    }
     #endregion
 
     #region 工单回访

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

@@ -692,6 +692,32 @@ namespace Hotline.Share.Dtos.Order
         #endregion
     }
 
+
+    public class PublishOrderModifyDto
+    {
+        /// <summary>
+        /// 发布ID
+        /// </summary>
+        public string Id { get; set; }
+
+
+        /// <summary>
+        /// 整理标题
+        /// </summary>
+        public string ArrangeTitle { get; set; }
+
+        /// <summary>
+        /// 整理内容
+        /// </summary>
+        public string ArrangeContent { get; set; }
+
+        /// <summary>
+        /// 整理结果
+        /// </summary>
+        public string ArrangeOpinion { get; set; }
+    }
+
+
     public class OrderVisitDto
     {
         public string Id { get; set; }

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

@@ -36,6 +36,7 @@ public class OrderPublish : CreationEntity
     /// <summary>
     /// 整理结果
     /// </summary>
+    [SugarColumn(ColumnDataType = "varchar(2000)")]
     public string ArrangeOpinion { get; set; }
 
     /// <summary>

+ 64 - 0
src/Hotline/Orders/OrderPublishHistory.cs

@@ -0,0 +1,64 @@
+using SqlSugar;
+using XF.Domain.Repository;
+
+namespace Hotline.Orders
+{
+    public class OrderPublishHistory: CreationEntity
+    {
+        /// <summary>
+        /// 工单编号(冗余)
+        /// </summary>
+        public string No { get; set; }
+
+        /// <summary>
+        /// 工单ID
+        /// </summary>
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 发布ID
+        /// </summary>
+        public string OrderPublishId { get; set; }
+
+        /// <summary>
+        /// 工单
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(OrderId))]
+        public Order Order { get; set; }
+
+        /// <summary>
+        /// 整改标题修改前
+        /// </summary>
+        public string ArrangeTitleBefor { get; set; }
+
+        /// <summary>
+        /// 整理标题修改后
+        /// </summary>
+        public string ArrangeTitleAfter { get; set; }
+
+        /// <summary>
+        /// 整理内容修改前
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(2000)")]
+        public string ArrangeContentBefor { get; set; }
+        
+        /// <summary>
+        /// 整理内容修改后
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(2000)")]
+        public string ArrangeContentAfter { get; set; }
+
+        /// <summary>
+        /// 整理结果修改前
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(2000)")]
+        public string ArrangeOpinionBefor { get; set; }
+
+        /// <summary>
+        /// 整理结果修改后
+        /// </summary>
+        [SugarColumn(ColumnDataType = "varchar(2000)")]
+        public string ArrangeOpinionAfter { get; set; }
+
+    }
+}

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

@@ -900,6 +900,19 @@ namespace Hotline.Permissions
         /// </summary>
         [Display(GroupName = "OrderPublish",Name ="发布详情",Description = "发布详情")]
         PublishedOrder = 500204,
+
+        /// <summary>
+        /// 修改发布
+        /// </summary>
+        [Display(GroupName = "OrderPublish",Name ="修改发布",Description ="修改发布")]
+        PublishedModify = 500205,
+
+        /// <summary>
+        /// 修改记录
+        /// </summary>
+        [Display(GroupName = "OrderPublish",Name = "修改记录",Description ="修改记录")]
+        QueryPublishedHistory = 500206,
+
         #endregion
 
         #region 工单回访管理