Explorar el Código

Merge branch 'test' of http://110.188.24.182:10023/Fengwo/hotline into test

xf hace 4 meses
padre
commit
d7f67bed5d

+ 21 - 7
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -1284,12 +1284,25 @@ namespace Hotline.Api.Controllers.Bi
 			return ExcelStreamResult(stream, "热点类型小类统计");
 		}
 
-		/// <summary>
-		/// 部门满意度统计
-		/// </summary>
-		/// <param name="dto"></param>
-		/// <returns></returns>
-		[HttpGet("visit-org-satisfaction-statistics")]
+        /// <summary>
+        /// 部门满意度统计表基础数据
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet("visit-org-satisfaction-statisticsBaseData")]
+        public async Task<object> VisitAndOrgSatisfactionStatisticsBaseData()
+        {
+            return new { 
+                VisitType = EnumExts.GetDescriptions<EVisitType>(),
+            };
+        }
+
+
+        /// <summary>
+        /// 部门满意度统计
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpGet("visit-org-satisfaction-statistics")]
         public async Task<VisitAndOrgSatisfactionStatisticsResultDto> VisitAndOrgSatisfactionStatistics([FromQuery] PagedKeywordSonRequest dto)
         {
             var data = await _orderApplication.VisitAndOrgSatisfactionStatistics(dto);
@@ -3594,7 +3607,8 @@ namespace Hotline.Api.Controllers.Bi
             {
                 { "visitSatisfaction", _systemDicDataCacheManager.GetVisitSatisfaction() },
                 { "orgsOptions", items },
-                { "attitudeType", EnumExts.GetDescriptions<EAttitudeType>() }
+                { "attitudeType", EnumExts.GetDescriptions<EAttitudeType>() },
+                { "visitType",EnumExts.GetDescriptions<EVisitType>() }
             };
         }
 

+ 4 - 2
src/Hotline.Application/Orders/OrderApplication.cs

@@ -1669,7 +1669,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(string.IsNullOrEmpty(dto.LineNum) == false, x => x.OrderVisit.Order.CallRecord.Gateway.Contains(dto.LineNum))
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 1, x => x.OrderVisit.Order.IdentityType == EIdentityType.Citizen)
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 2, x => x.OrderVisit.Order.IdentityType == EIdentityType.Enterprise)
-            .WhereIF(IsCenter == false, x => x.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId));
+            .WhereIF(IsCenter == false, x => x.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId))
+            .WhereIF(dto.VisitType != null, x => x.OrderVisit.VisitType == dto.VisitType);
 
         var data = new List<VisitAndOrgSatisfactionStatisticsDto>();
 
@@ -1787,7 +1788,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
     {
         bool IsCenter = _sessionContextProvider.SessionContext.OrgIsCenter;
 
-        var list = await _systemOrganizeRepository.Queryable().Where(x => x.Id.StartsWith(dto.OrgCode))
+        var list = await _systemOrganizeRepository.Queryable().Where(x => x.ParentId == dto.OrgCode)
             .LeftJoin<OrderVisitDetail>((x, it) => x.Id == it.VisitOrgCode)
             .Where((x, it) => it.OrderVisit.VisitTime >= dto.StartTime.Value && it.OrderVisit.VisitTime <= dto.EndTime.Value &&
                               it.VisitTarget == EVisitTarget.Org && it.OrderVisit.VisitState == EVisitState.Visited)
@@ -1797,6 +1798,7 @@ public class OrderApplication : IOrderApplication, IScopeDependency
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 1, (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Citizen)
             .WhereIF(dto.TypeCode != null && dto.TypeCode == 2, (x, it) => it.OrderVisit.Order.IdentityType == EIdentityType.Enterprise)
             .WhereIF(IsCenter == false, (x, it) => it.VisitOrgCode.StartsWith(_sessionContextProvider.SessionContext.OrgId))
+            .WhereIF(dto.VisitType !=null, (x,it)=> it.OrderVisit.VisitType==dto.VisitType)
             .GroupBy((x, it) => new
             {
                 VisitOrgCode = it.VisitOrgCode

+ 2 - 2
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -1270,7 +1270,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .WhereIF(dto.ActualHandleTimeEnd.HasValue, x => x.OrderVisit.Order.ActualHandleTime <= dto.ActualHandleTimeEnd)//办结时间结束
                 .WhereIF(dto.VisitTimeStart.HasValue, x => x.OrderVisit.VisitTime >= dto.VisitTimeStart) //回访时间
                 .WhereIF(dto.VisitTimeEnd.HasValue, x => x.OrderVisit.VisitTime < dto.VisitTimeEnd) //回访时间
-
+                .WhereIF(dto.VisitType != null,x=>x.OrderVisit.VisitType == dto.VisitType) //回访方式
                 .Select(x => new OrgVisitDetailListResp()
                 {
                     Id =  x.Id,
@@ -1327,7 +1327,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .WhereIF(dto.TypeId is 1, x => SqlFunc.JsonField(x.OrgProcessingResults, "Key") == dto.DateValue)
                 .WhereIF(dto.TypeId is 2, x => SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == dto.DateValue)
                 .WhereIF(!string.IsNullOrEmpty(dto.LineNum), x => x.OrderVisit.Order.CallRecord.Gateway == dto.LineNum)
-
+                .WhereIF(dto.VisitType!= null,x=> x.OrderVisit.VisitType == dto.VisitType)
                 .Select(x => new OrgVisitDetailListResp
                 {
                     Id = x.Id,

+ 7 - 1
src/Hotline.Share/Dtos/Bi/BiOrderDto.cs

@@ -1,4 +1,5 @@
-using Hotline.Share.Requests;
+using Hotline.Share.Enums.Order;
+using Hotline.Share.Requests;
 
 namespace Hotline.Share.Dtos.Bi
 {
@@ -45,6 +46,11 @@ namespace Hotline.Share.Dtos.Bi
         /// 排序方式 // 0 升序 1 降序
         /// </summary>
         public int? SortRule { get; set; }
+
+        /// <summary>
+        /// 回访方式
+        /// </summary>
+        public EVisitType? VisitType { get; set; }
     }
 
     public record HighFrequencyCallStatisticsRequest : PagedRequest

+ 5 - 2
src/Hotline.Share/Dtos/Order/OrderBiDto.cs

@@ -414,9 +414,12 @@ namespace Hotline.Share.Dtos.Order
 
 		public double CalcTotalSumRate()
 		{
-			if ((VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) == 0)
+			//if ((VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) == 0)
+			//	return 0;
+			//        return Math.Round(((double)VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount) / (VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) * 100, 2);
+			if (TotalSumCount - NoSatisfiedCount <= 0)
 				return 0;
-           return Math.Round(((double)VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount) / (VerySatisfiedCount + SatisfiedCount + RegardedAsSatisfiedCount + DefaultSatisfiedCount + NoSatisfiedCount) * 100, 2);
+			return Math.Round(((double)TotalSumCount - NoSatisfiedCount) / TotalSumCount);
         }
 			
 			

+ 10 - 0
src/Hotline.Share/Requests/PagedKeywordRequest.cs

@@ -54,6 +54,11 @@ public record PagedKeywordSonRequest : PagedRequest
     /// 来电/信人身份0:全部 ,1:市民,2:企业
     /// </summary>
     public int? TypeCode { get; set; }
+
+    /// <summary>
+    /// 回访方式
+    /// </summary>
+    public EVisitType? VisitType { get; set; }
 }
 public record VisitAndHotspotPagedKeywordRequest : PagedKeywordRequest
 {
@@ -529,6 +534,11 @@ public record OrgVisitDetailListReq: PagedKeywordRequest
     /// 排序方式 // 0 升序 1 降序
     /// </summary>
     public int? SortRule { get; set; }
+
+    /// <summary>
+    /// 回访方式
+    /// </summary>
+    public EVisitType? VisitType { get; set; }
 }