tangjiang 3 дней назад
Родитель
Сommit
702348c59d

+ 8 - 52
src/Hotline.Api/Controllers/KnowledgeApplyController.cs

@@ -1,14 +1,9 @@
 using Hotline.Application.Knowledge;
 using Hotline.KnowledgeBase;
-using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Knowledge;
-using Hotline.Share.Dtos.ObservationPiece;
-using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.KnowledgeBase;
-using Hotline.Share.Requests;
-using Hotline.Tools;
 using Hotline.Users;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
@@ -45,8 +40,14 @@ namespace Hotline.Api.Controllers
         /// <param name="userRepository"></param>
         /// <param name="systemOrganizeRepository"></param>
         /// <param name="knowledgeDomainService"></param>
-        public KnowledgeApplyController(IRepositoryWorkflow<Knowledge> knowledgeRepository, IRepository<KnowledgeApply> knowledgeApplyRepository, ISessionContext sessionContext
-            , IMapper mapper, IKnowApplication knowApplication, IRepository<User> userRepository, ISystemOrganizeRepository systemOrganizeRepository, IKnowledgeDomainService knowledgeDomainService)
+        public KnowledgeApplyController(IRepositoryWorkflow<Knowledge> knowledgeRepository,
+            IRepository<KnowledgeApply> knowledgeApplyRepository,
+            ISessionContext sessionContext
+            , IMapper mapper,
+            IKnowApplication knowApplication,
+            IRepository<User> userRepository,
+            ISystemOrganizeRepository systemOrganizeRepository,
+            IKnowledgeDomainService knowledgeDomainService)
         {
             _knowledgeRepository = knowledgeRepository;
             _knowledgeApplyRepository = knowledgeApplyRepository;
@@ -273,51 +274,6 @@ namespace Hotline.Api.Controllers
 
         #endregion
 
-        #region 知识超期未更新统计
-        /// <summary>
-        /// 知识超期未更新统计
-        /// </summary>
-        /// <param name="dto"></param>
-        /// <returns></returns>
-        [HttpGet("get-know-overdue-statistics-list")]
-        public async Task<PagedDto<KnowedgeStatisticsDto>> GetKnowOverdueStatisticsList([FromQuery] PagedKeywordRequest dto)
-        {
-            var (total, items) = await _knowApplication.GetKnowedgeStatistics(dto)
-                .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
-            return new PagedDto<KnowedgeStatisticsDto>(total, items);
-        }
-
-        /// <summary>
-        ///知识超期未更新统计导出
-        /// </summary>
-        /// <param name="dto"></param>
-        /// <returns></returns>
-        [HttpPost("get-know-overdue-statistics-list-export")]
-        public async Task<FileStreamResult> GetKnowOverdueStatisticsListExport([FromBody] ExportExcelDto<PagedKeywordRequest> dto)
-        {
-            var query = _knowApplication.GetKnowedgeStatistics(dto.QueryDto);
-            List<KnowedgeStatisticsDto> data;
-            if (dto.IsExportAll)
-            {
-                data = await query.ToListAsync(HttpContext.RequestAborted);
-            }
-            else
-            {
-                var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
-                data = items;
-            }
-
-            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass<KnowedgeStatisticsDto>(dto.ColumnInfos);
-
-            var dtos = data
-                .Select(stu => _mapper.Map(stu, typeof(KnowedgeStatisticsDto), dynamicClass))
-                .Cast<object>()
-                .ToList();
 
-            var stream = ExcelHelper.CreateStream(dtos);
-
-            return ExcelStreamResult(stream, "知识超期未更新统计");
-        } 
-        #endregion
     }
 }

+ 68 - 6
src/Hotline.Api/Controllers/KnowledgeCommonController.cs

@@ -1,9 +1,14 @@
-using Hotline.KnowledgeBase;
-using Hotline.Permissions;
+using Hotline.Application.Knowledge;
+using Hotline.KnowledgeBase;
+using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Settings;
 using Hotline.Settings.Hotspots;
+using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Knowledge;
+using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.KnowledgeBase;
+using Hotline.Share.Requests;
+using Hotline.Tools;
 using MapsterMapper;
 using Microsoft.AspNetCore.Mvc;
 using SqlSugar;
@@ -27,6 +32,7 @@ namespace Hotline.Api.Controllers
         private readonly ISessionContext _sessionContext;
         private readonly ISystemOrganizeRepository _systemOrganizeRepository;
         private readonly IRepository<Hotspot> _hotspotTypeRepository;
+        private readonly IKnowApplication _knowApplication;
 
         /// <summary>
         /// 
@@ -34,10 +40,19 @@ namespace Hotline.Api.Controllers
         /// <param name="knowledgeTypeRepository"></param>
         /// <param name="knowledgeTypeDomainService"></param>
         /// <param name="knowledgeStandardRepository"></param>
+        /// <param name="sessionContext"></param>
         /// <param name="mapper"></param>
-        public KnowledgeCommonController(IRepository<KnowledgeType> knowledgeTypeRepository, IKnowledgeTypeDomainService knowledgeTypeDomainService,
-            IRepository<KnowledgeStandard> knowledgeStandardRepository, ISessionContext sessionContext,
-            IMapper mapper, ISystemOrganizeRepository systemOrganizeRepository, IRepository<Hotspot> hotspotTypeRepository)
+        /// <param name="systemOrganizeRepository"></param>
+        /// <param name="hotspotTypeRepository"></param>
+        /// <param name="knowApplication"></param>
+        public KnowledgeCommonController(IRepository<KnowledgeType> knowledgeTypeRepository,
+            IKnowledgeTypeDomainService knowledgeTypeDomainService,
+            IRepository<KnowledgeStandard> knowledgeStandardRepository,
+            ISessionContext sessionContext,
+            IMapper mapper,
+            ISystemOrganizeRepository systemOrganizeRepository,
+            IRepository<Hotspot> hotspotTypeRepository,
+             IKnowApplication knowApplication)
         {
             _knowledgeTypeRepository = knowledgeTypeRepository;
             _knowledgeTypeDomainService = knowledgeTypeDomainService;
@@ -46,6 +61,7 @@ namespace Hotline.Api.Controllers
             _sessionContext = sessionContext;
             _systemOrganizeRepository = systemOrganizeRepository;
             _hotspotTypeRepository = hotspotTypeRepository;
+            _knowApplication = knowApplication;
         }
         #endregion
 
@@ -158,7 +174,7 @@ namespace Hotline.Api.Controllers
                      KnowledgeNum = SqlFunc.Subqueryable<Knowledge>()
                          .InnerJoin<KnowledgeRelationType>((k, krt) => k.Id == krt.KnowledgeId)
                          .InnerJoin<KnowledgeType>((k, krt, t) => krt.KnowledgeTypeId == t.Id)
-                         .Where((k, krt, t) => t.SpliceName.StartsWith(x.SpliceName) &&  k.IsDeleted == false && t.IsDeleted == false)
+                         .Where((k, krt, t) => t.SpliceName.StartsWith(x.SpliceName) && k.IsDeleted == false && t.IsDeleted == false)
                          .WhereIF(!string.IsNullOrEmpty(attribution) && !isCenter, (k, krt, t) => k.Attribution == attribution)
                          .WhereIF(status != null, k => k.Status == status)
                          .DistinctCount(k => k.Id)
@@ -318,5 +334,51 @@ namespace Hotline.Api.Controllers
         }
         #endregion
 
+        #region 知识超期未更新统计
+        /// <summary>
+        /// 知识超期未更新统计
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("get-know-overdue-statistics-list")]
+        public async Task<PagedDto<KnowedgeStatisticsDto>> GetKnowOverdueStatisticsList([FromQuery] PagedKeywordRequest dto)
+        {
+            var (total, items) = await _knowApplication.GetKnowedgeStatistics(dto)
+                .ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
+            return new PagedDto<KnowedgeStatisticsDto>(total, items);
+        }
+
+        /// <summary>
+        ///知识超期未更新统计导出
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost("get-know-overdue-statistics-list-export")]
+        public async Task<FileStreamResult> GetKnowOverdueStatisticsListExport([FromBody] ExportExcelDto<PagedKeywordRequest> dto)
+        {
+            var query = _knowApplication.GetKnowedgeStatistics(dto.QueryDto);
+            List<KnowedgeStatisticsDto> data;
+            if (dto.IsExportAll)
+            {
+                data = await query.ToListAsync(HttpContext.RequestAborted);
+            }
+            else
+            {
+                var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+                data = items;
+            }
+
+            dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass<KnowedgeStatisticsDto>(dto.ColumnInfos);
+
+            var dtos = data
+                .Select(stu => _mapper.Map(stu, typeof(KnowedgeStatisticsDto), dynamicClass))
+                .Cast<object>()
+                .ToList();
+
+            var stream = ExcelHelper.CreateStream(dtos);
+
+            return ExcelStreamResult(stream, "知识超期未更新统计");
+        }
+        #endregion
     }
 }

+ 6 - 6
src/Hotline.Api/Controllers/KnowledgeController.cs

@@ -7,17 +7,21 @@ using Hotline.Application.FlowEngine;
 using Hotline.Application.Knowledge;
 using Hotline.Application.Systems;
 using Hotline.Application.Tools;
+using Hotline.Caching.Interfaces;
+using Hotline.Configurations;
 using Hotline.File;
 using Hotline.FlowEngine.WorkflowModules;
 using Hotline.FlowEngine.Workflows;
 using Hotline.KnowledgeBase;
 using Hotline.KnowledgeBase.Notifies;
+using Hotline.Pdf;
 using Hotline.Repository.SqlSugar.Extensions;
 using Hotline.Repository.SqlSugar.Ts;
 using Hotline.Settings;
 using Hotline.Settings.Hotspots;
 using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.FlowEngine;
+using Hotline.Share.Dtos.FlowEngine.Workflow;
 using Hotline.Share.Dtos.Knowledge;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Article;
@@ -30,18 +34,14 @@ using Mapster;
 using MapsterMapper;
 using MediatR;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Options;
+using MiniExcelLibs;
 using SqlSugar;
 using System.Text;
-using Hotline.Configurations;
-using Microsoft.Extensions.Options;
 using XF.Domain.Authentications;
 using XF.Domain.Exceptions;
 using XF.Domain.Repository;
 using XF.Utility.EnumExtensions;
-using Hotline.Caching.Interfaces;
-using MiniExcelLibs;
-using Hotline.Pdf;
-using Hotline.Share.Dtos.FlowEngine.Workflow;
 
 namespace Hotline.Api.Controllers
 {