Эх сурвалжийг харах

修改知识库历史版本数据

TANG JIANG 2 жил өмнө
parent
commit
60710a72c3

+ 60 - 10
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -7,7 +7,6 @@ using MapsterMapper;
 using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
-using System.Xml.Linq;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 
@@ -26,7 +25,7 @@ namespace Hotline.Api.Controllers
         private readonly IMapper _mapper;
 
         /// <summary>
-        /// 登录信息
+        /// 
         /// </summary>
         /// <param name="knowledgeRepository"></param>
         /// <param name="knowledgeTempRepository"></param>
@@ -105,6 +104,7 @@ namespace Hotline.Api.Controllers
 
         #endregion
 
+        #region 知识管理
         /// <summary>
         /// 知识库-知识修改-查询详情
         /// </summary>
@@ -145,6 +145,10 @@ namespace Hotline.Api.Controllers
                 KnowledgeId = know.Id
             };
             await _knowledgePVRepository.AddAsync(knowledgePv);
+
+            //修改浏览量
+            know.PageView++;
+            await _knowledgeRepository.UpdateAsync(know);
             return know;
         }
 
@@ -171,6 +175,7 @@ namespace Hotline.Api.Controllers
             kn.Status = EKnowledgeStatus.Auditing;
 
             return await _knowledgeRepository.AddAsync(kn);
+            //调用流程创建
         }
 
         /// <summary>
@@ -187,7 +192,7 @@ namespace Hotline.Api.Controllers
             var know = await _knowledgeRepository.GetAsync(dto.Id);
             if (know is null || know.IsDeleted)
                 throw UserFriendlyException.SameMessage("无效知识");
-            if (know.Status == EKnowledgeStatus.Auditing || know.Status == EKnowledgeStatus.Update)
+            if (know.Status == EKnowledgeStatus.Auditing)
                 throw UserFriendlyException.SameMessage("审批中数据不能修改");
             var knowledge = _mapper.Map<Knowledge>(dto);
             knowledge.Code = know.Code;
@@ -196,19 +201,22 @@ namespace Hotline.Api.Controllers
             knowledge.Status = EKnowledgeStatus.Auditing;
             knowledge.Id = "";
             knowledge.Version = know.Version + 1;
+            knowledge.IsHistory = true;
             //新增一条数据
 
             await _knowledgeRepository.AddAsync(knowledge);
 
+            //调用流程创建
         }
 
         /// <summary>
         /// 审批操作
         /// </summary>
         /// <param name="Ids"></param>
+        /// <param name="ApprovalStatus">审核状态:0:通过;1:不通过</param>
         /// <returns></returns>
         [HttpPost("knowledge-approvalhandle")]
-        public async Task ApprovalHandle(List<string> Ids)
+        public async Task ApprovalHandle(List<string> Ids, string ApprovalStatus)
         {
             if (Ids is null || Ids.Count == 0)
                 throw UserFriendlyException.SameMessage("数据不能为空");
@@ -221,21 +229,31 @@ namespace Hotline.Api.Controllers
                     //调用流程审批接口
 
                     //处理数据
-                    know.Status = EKnowledgeStatus.Succeed;
-                    know.IsOnShelf = true;
-                    know.OnShelfTime = DateTime.Now;
+                    if (ApprovalStatus == "0")
+                    {
+                        know.Status = EKnowledgeStatus.Succeed;
+                        know.IsOnShelf = true;
+                        know.OnShelfTime = DateTime.Now;
+                    }
+                    else
+                    {
+                        know.Status = EKnowledgeStatus.Failed;
+                    }
+                    know.IsHistory = false;
                     await _knowledgeRepository.UpdateAsync(know);
                     //处理原始数据的状态
                     var oldKnow = await _knowledgeRepository.GetAsync(p => p.Code == know.Code && p.Status == EKnowledgeStatus.Succeed && p.Id != know.Id);
                     if (oldKnow != null)
                     {
-                        oldKnow.Status = EKnowledgeStatus.Update;
+                        oldKnow.IsHistory = true;
                         await _knowledgeRepository.UpdateAsync(oldKnow);
                     }
                 }
             }
         }
 
+        #endregion
+
         #region 知识列表
         /// <summary>
         /// 我的草稿箱
@@ -311,7 +329,7 @@ namespace Hotline.Api.Controllers
               .Includes(it => it.User)
               .Includes(it => it.SystemOrganize)
               .Includes(it => it.KnowledgeType)
-              .Where(p => p.IsDeleted == false && p.Status != EKnowledgeStatus.Update)//
+              .Where(p => p.IsDeleted == false && p.IsHistory == false)//
               .Where(p => bmList.Contains(p.CreatorOrgId))//组织Id
               .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))//创建人
               .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))//创建部门
@@ -523,6 +541,31 @@ namespace Hotline.Api.Controllers
         }
         #endregion
 
+        #region 审核管理
+        /// <summary>
+        /// 审核管理-全部
+        /// </summary>
+        /// <param name="pagedDto"></param>
+        /// <returns></returns>
+        [HttpPost("knowledge-approvedalllist")]
+        public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedAllList([FromBody] KnowledgeApprovalPagedListDto pagedDto)
+        {
+            var (total, items) = await _knowledgeRepository
+              .Queryable()
+              .Includes(it => it.User)
+              .Includes(it => it.SystemOrganize)
+              .Includes(it => it.KnowledgeType)
+              .Where(p => p.IsDeleted == false)//&& p.AssignUserIds.Contains(_sessionContext.UserId!)
+              .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
+              .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
+              .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
+
+              .OrderByDescending(p => p.CreationTime)
+              .ToPagedListAsync(pagedDto.PageIndex, pagedDto.PageSize);
+
+            return new PagedDto<KnowledgeApprovalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApprovalDataDto>>(items));
+        }
+
         /// <summary>
         /// 待审核
         /// </summary>
@@ -531,12 +574,16 @@ namespace Hotline.Api.Controllers
         [HttpPost("knowledge-tobereviewed")]
         public async Task<PagedDto<KnowledgeApprovalDataDto>> ToBeReviewed([FromBody] KnowledgeApprovalPagedListDto pagedDto)
         {
+            //审核类型字段加在哪里
+            //我审核通过的和我审核不通过的怎么查询
+            //
+            //还需要增加审核类型查询条件
             var (total, items) = await _knowledgeRepository
               .Queryable()
               .Includes(it => it.User)
               .Includes(it => it.SystemOrganize)
               .Includes(it => it.KnowledgeType)
-              .Where(p => p.IsDeleted == false && p.Status == EKnowledgeStatus.Auditing && p.AssignUserIds.Contains(_sessionContext.UserId))//&& p.AssignUserIds.Contains(pagedDto.UserId!)
+              .Where(p => p.IsDeleted == false && p.Status == EKnowledgeStatus.Auditing && p.AssignUserIds.Contains(_sessionContext.UserId))
               .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateUserName), d => d.User.Name.Contains(pagedDto.CreateUserName!))
               .WhereIF(!string.IsNullOrEmpty(pagedDto.CreateBMName), d => d.SystemOrganize.OrgName.Contains(pagedDto.CreateBMName!))
               .WhereIF(!string.IsNullOrEmpty(pagedDto.Title), d => d.Title.Contains(pagedDto.Title!))
@@ -555,6 +602,8 @@ namespace Hotline.Api.Controllers
         [HttpPost("knowledge-approvedlist")]
         public async Task<PagedDto<KnowledgeApprovalDataDto>> ApprovedList([FromBody] KnowledgeApprovalPagedListDto pagedDto)
         {
+            //自己审批了哪些数据,通过什么方式去查询这个数据是属于自己的
+
             var (total, items) = await _knowledgeRepository
               .Queryable()
               .Includes(it => it.User)
@@ -594,6 +643,7 @@ namespace Hotline.Api.Controllers
 
             return new PagedDto<KnowledgeApprovalDataDto>(total, _mapper.Map<IReadOnlyList<KnowledgeApprovalDataDto>>(items));
         }
+        #endregion
 
     }
 }

+ 0 - 1
src/Hotline.Share/Enums/KnowledgeBase/EKnowledgeStatus.cs

@@ -8,5 +8,4 @@ public enum EKnowledgeStatus
     Auditing = 1,
     Succeed = 2,
     Failed = 3,
-    Update=4,
 }

+ 5 - 0
src/Hotline/KnowledgeBase/Knowledge.cs

@@ -56,6 +56,11 @@ public class Knowledge : WorkflowEntity// FullStateEntity
     /// </summary>
     public EKnowledgeStatus Status { get; set; }
 
+    /// <summary>
+    /// 是否历史数据
+    /// </summary>
+    public bool IsHistory { get; set; }
+
     /// <summary>
     /// 是否上架
     /// </summary>