Ver código fonte

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

xf 1 ano atrás
pai
commit
942d3509d6

+ 62 - 8
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -28,16 +28,18 @@ namespace Hotline.Api.Controllers.Bi
         private readonly IMapper _mapper;
         private readonly IRepository<WorkflowCountersign> _workflowCountersignRepository;
         private readonly IRepository<OrderSpecial> _orderSpecialRepository;
+		private readonly IRepository<OrderVisit> _orderVisitRepository;
 
 		public BiOrderController(
-            IOrderRepository orderRepository,
-            IRepository<Hotspot> hotspotTypeRepository,
-            ISystemDicDataCacheManager sysDicDataCacheManager,
-            IRepository<OrderVisitDetail> orderVisitDetailRepository,
-            IRepository<OrderDelay> orderDelayRepository,
-            IRepository<WorkflowCountersign> workflowCountersignRepository,
-            IRepository<OrderSpecial> orderSpecialRepository,
-			IMapper mapper
+			IOrderRepository orderRepository,
+			IRepository<Hotspot> hotspotTypeRepository,
+			ISystemDicDataCacheManager sysDicDataCacheManager,
+			IRepository<OrderVisitDetail> orderVisitDetailRepository,
+			IRepository<OrderDelay> orderDelayRepository,
+			IRepository<WorkflowCountersign> workflowCountersignRepository,
+			IRepository<OrderSpecial> orderSpecialRepository,
+			IMapper mapper,
+			IRepository<OrderVisit> orderVisitRepository
             )
         {
             _orderRepository = orderRepository;
@@ -48,6 +50,7 @@ namespace Hotline.Api.Controllers.Bi
             _workflowCountersignRepository = workflowCountersignRepository;
             _orderSpecialRepository = orderSpecialRepository;
 			_mapper = mapper;
+			_orderVisitRepository = orderVisitRepository;
         }
 
         /// <summary>
@@ -564,6 +567,57 @@ namespace Hotline.Api.Controllers.Bi
             return await _orderRepository.HotPortJoinOrgStatistics(dto.StartTime, dto.EndTime);
         }
 
+		/// <summary>
+		/// 回访量统计
+		/// </summary>
+		/// <returns></returns>
+		[HttpGet("visit-measure-statistics")]
+		public async Task<List<VisitMeasureStatisticsDto>> VisitMeasureStatistics(DateTime StartDate,DateTime EndDate,string? VisitName)
+		{
+			EndDate = EndDate.AddDays(1).AddSeconds(-1);
+			var list = await _orderVisitRepository.Queryable()
+				.Includes(x => x.Employee)
+				.Where(x => x.VisitTime >= StartDate && x.VisitTime <= EndDate && x.VisitState == EVisitState.Visited)
+				.WhereIF(!string.IsNullOrEmpty(VisitName),x=>x.Employee.Name.Contains(VisitName))
+				.GroupBy(x=> new { x.EmployeeId,x.Employee.Name })
+				.Select(x=> new VisitMeasureStatisticsDto()
+                { 
+					VisitName = x.Employee.Name,
+					AiVisitCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.VisitType== EVisitType.ChipVoiceVisit,1,0)),
+                    ArtificialVisitCount = SqlFunc.AggregateSum(SqlFunc.IIF(x.VisitType == EVisitType.ArtificialVisit,1,0)),
+                    SumCount = SqlFunc.AggregateCount(x.EmployeeId)
+                })
+				.ToListAsync();
+			return list;
+        }
+
+        /// <summary>
+        /// 部门满意度统计
+        /// </summary>
+        /// <param name="StartDate"></param>
+        /// <param name="EndDate"></param>
+        /// <param name="OrgName"></param>
+        /// <param name="TypeId">1:办件结果 2:办件态度</param>
+        /// <param name="LineNum"></param>
+        /// <returns></returns>
+  //      [HttpGet("visit-org-satisfaction-statistics")]
+		//public async Task VisitAndOrgSatisfactionStatistics(DateTime StartDate,DateTime EndDate,string OrgName,int TypeId,string? LineNum )
+		//{
+		//	EndDate = EndDate.AddDays(1).AddSeconds(-1);
+		//	var list = await _orderVisitDetailRepository.Queryable()
+		//		.Includes(x => x.OrderVisit)
+		//		.Where(x => x.OrderVisit.VisitTime >= StartDate && x.OrderVisit.VisitTime <= EndDate && x.VisitTarget == EVisitTarget.Org)
+		//		.WhereIF(!string.IsNullOrEmpty(OrgName),x=>x.VisitOrgName.Contains(OrgName))
+		//		.GroupBy(x=> new { x.VisitOrgCode ,x.VisitOrgName })
+		//		.Select(x => new
+		//		{ 
+		//			OrgName = x.VisitOrgName,
+		//			OrgCode= x.VisitOrgCode,
+
+		//		})
+		//		.ToListAsync();
+
 
+  //      }
     }
 }

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

@@ -1131,10 +1131,13 @@ public class OrderController : BaseController
             throw UserFriendlyException.SameMessage("该存在延期申请正在审核");
         //验证延期次数
         var setting = _systemSettingCacheManager.GetSetting(SettingConstants.DelayNum);
-        int count = await _orderDelayRepository.CountAsync(x => x.OrderId == delaydto.OrderId);
-        if (count > int.Parse(setting?.SettingValue[0]))
-            throw UserFriendlyException.SameMessage("延期申请已超过系统预定设置,不能申请");
-
+        if (int.Parse(setting?.SettingValue[0]) != 0)
+        {
+            int count = await _orderDelayRepository.CountAsync(x => x.OrderId == delaydto.OrderId);
+            if (count > int.Parse(setting?.SettingValue[0]))
+                throw UserFriendlyException.SameMessage("延期申请已超过系统预定设置,不能申请");
+        }
+        
         var model = _mapper.Map<OrderDelay>(delaydto);
         model.EmployeeId = _sessionContext.RequiredUserId;
         model.EmployeeName = _sessionContext.UserName;

+ 11 - 0
src/Hotline.Share/Dtos/Order/OrderBiDto.cs

@@ -171,4 +171,15 @@ namespace Hotline.Share.Dtos.Order
 		public int ExaminingTotal { get; set; }
 
     }
+
+	public class VisitMeasureStatisticsDto
+	{
+		public string VisitName { get; set; }
+
+		public int AiVisitCount { get; set; }
+
+		public int ArtificialVisitCount { get; set; }
+
+		public int SumCount { get; set; }
+    }
 }