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

Merge branch 'master' of http://git.12345lm.cn/Fengwo/hotline

Dun.Jason 1 жил өмнө
parent
commit
a7e3fd22f9

+ 75 - 0
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -338,5 +338,80 @@ namespace Hotline.Api.Controllers.Bi
 				.ToPagedListAsync(dto.PageIndex, dto.PageSize, HttpContext.RequestAborted);
 			return new PagedDto<OrderSpecialDto>(total, _mapper.Map<IReadOnlyList<OrderSpecialDto>>(items));
 		}
+
+		/// <summary>
+		/// 受理类型前十
+		/// </summary>
+		/// <param name="dto"></param>
+		/// <returns></returns>
+		[HttpGet("accept_type_top10_list")]
+		public async Task<PagedDto<AcceptTypeTop10Vo>> AcceptTypeTop10List([FromQuery] ReportPagedRequest dto)
+        {
+	        if (!dto.StartTime.HasValue || !dto.EndTime.HasValue) throw UserFriendlyException.SameMessage("请选择时间!");
+            dto.PageIndex = 1;
+            dto.PageSize = 10;
+            var query = _orderRepository.Queryable(false, false, false)
+                .WhereIF(dto.StartTime.HasValue, x => x.CreationTime >= dto.StartTime)
+                .WhereIF(dto.EndTime.HasValue, x => x.CreationTime <= dto.EndTime)
+                .Select(x => new
+                {
+                    AcceptType = x.AcceptType,
+                    OneHotspot = SqlFunc.Substring(x.HotspotSpliceName, 0, SqlFunc.CharIndex("-", x.HotspotSpliceName + "-")),
+                    Id = x.Id
+                }).MergeTable()
+		        .GroupBy(x => new { x.OneHotspot })
+		        .Select(x => new AcceptTypeTop10Vo
+				{
+                    Name = x.OneHotspot,
+                    ValidAccept = SqlFunc.AggregateSum(SqlFunc.IIF(true, 1, 0)),
+			        Consult = SqlFunc.AggregateSum(SqlFunc.IIF("咨询".Equals(x.AcceptType), 1, 0)),
+			        Report = SqlFunc.AggregateSum(SqlFunc.IIF("举报".Equals(x.AcceptType), 1, 0)),
+			        Complaint = SqlFunc.AggregateSum(SqlFunc.IIF("投诉".Equals(x.AcceptType), 1, 0)),
+			        SeekHelp = SqlFunc.AggregateSum(SqlFunc.IIF("求助".Equals(x.AcceptType), 1, 0)),
+			        Suggest = SqlFunc.AggregateSum(SqlFunc.IIF("建议".Equals(x.AcceptType), 1, 0)),
+			        Opinion = SqlFunc.AggregateSum(SqlFunc.IIF("意见".Equals(x.AcceptType), 1, 0)),
+			        Rests = SqlFunc.AggregateSum(SqlFunc.IIF("其他".Equals(x.AcceptType), 1, 0)),
+			        BenefitThePeople = SqlFunc.AggregateSum(SqlFunc.IIF("惠民帮助".Equals(x.AcceptType), 1, 0)),
+			        Praise = SqlFunc.AggregateSum(SqlFunc.IIF("表扬".Equals(x.AcceptType), 1, 0)),
+				}).MergeTable();
+	        switch (dto.SortField)
+	        {
+		        case "validAccept":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.ValidAccept) : query.OrderByDescending(x => x.ValidAccept);
+			        break;
+		        case "consult":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Consult) : query.OrderByDescending(x => x.Consult);
+			        break;
+		        case "report":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Report) : query.OrderByDescending(x => x.Report);
+			        break;
+		        case "complaint":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Complaint) : query.OrderByDescending(x => x.Complaint);
+			        break;
+		        case "seekHelp":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.SeekHelp) : query.OrderByDescending(x => x.SeekHelp);
+			        break;
+		        case "suggest":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Suggest) : query.OrderByDescending(x => x.Suggest);
+			        break;
+		        case "opinion":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Opinion) : query.OrderByDescending(x => x.Opinion);
+			        break;
+		        case "rests":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Rests) : query.OrderByDescending(x => x.Rests);
+			        break;
+		        case "benefitThePeople":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.BenefitThePeople) : query.OrderByDescending(x => x.BenefitThePeople);
+			        break;
+		        case "praise":
+			        query = dto.SortRule == 0 ? query.OrderBy(x => x.Praise) : query.OrderByDescending(x => x.Praise);
+			        break;
+				default:
+                    query = query.OrderByDescending(x => x.ValidAccept);
+					break;
+	        }
+	        var (total, items) = await query.ToPagedListAsync(dto, HttpContext.RequestAborted);
+	        return new PagedDto<AcceptTypeTop10Vo>(total, items);
+		}
 	}
 }

+ 60 - 1
src/Hotline.Share/Dtos/Order/OrderBiDto.cs

@@ -59,7 +59,66 @@ namespace Hotline.Share.Dtos.Order
 
 	}
 
-    public class BiOrderDelayDataDto
+
+	public class AcceptTypeTop10Vo {
+		/// <summary>
+		/// 热点名称
+		/// </summary>
+		public string Name { get; set; }
+
+		/// <summary>
+		/// 有效受理
+		/// </summary>
+		public int ValidAccept{ get; set; }
+
+		/// <summary>
+		/// 咨询
+		/// </summary>
+		public int Consult { get; set; }
+
+		/// <summary>
+		/// 举报
+		/// </summary>
+
+		public int Report { get; set; }
+
+		/// <summary>
+		/// 投诉
+		/// </summary>
+		public int Complaint { get; set; }
+
+		/// <summary>
+		/// 求助
+		/// </summary>
+		public int SeekHelp { get; set; }
+
+		/// <summary>
+		/// 建议
+		/// </summary>
+		public int Suggest { get; set; }
+
+		/// <summary>
+		/// 意见
+		/// </summary>
+		public int Opinion { get; set; }
+
+		/// <summary>
+		/// 其他
+		/// </summary>
+		public int Rests { get; set; }
+
+		/// <summary>
+		/// 惠民帮助
+		/// </summary>
+		public int BenefitThePeople { get; set; }
+
+		/// <summary>
+		/// 表扬
+		/// </summary>
+		public int Praise { get; set; }
+	}
+
+	public class BiOrderDelayDataDto
 	{
 		/// <summary>
 		/// 部门名称

+ 14 - 4
src/Hotline/FlowEngine/Workflows/StepBasicEntity.cs

@@ -11,10 +11,20 @@ public abstract class StepBasicEntity : CreationEntity
 {
     public string WorkflowId { get; set; }
 
-    /// <summary>
-    /// 流程指派类型
-    /// </summary>
-    public EFlowAssignType? FlowAssignType { get; set; }
+    #region 业务模块(冗余)
+
+    public string? ModuleId { get; set; }
+
+    public string? ModuleName { get; set; }
+
+    public string? ModuleCode { get; set; }
+
+    #endregion
+
+	/// <summary>
+	/// 流程指派类型
+	/// </summary>
+	public EFlowAssignType? FlowAssignType { get; set; }
 
     /// <summary>
     /// 该节点指派办理对象(依据不同指派方式可能为:orgId或userId),该字段subStep才会存在,stepBox不存在