Переглянути джерело

新增座席评价与部门结果过滤功能支持

- 在 `OrderController.cs` 中新增 `SeatEvaluate` 和 `VisitSatisfaction` 字段,支持获取座席评价和访问满意度数据。
- 在 `OrgController.cs` 中新增 `GetOneOrg` 接口,用于获取一级部门数据。
- 在 `OrderApplication.cs` 中调整查询条件,新增 `SeatEvaluate` 和 `OrgProcessingResults` 过滤条件,并优化默认排序逻辑。
- 在 `QueryOrderDto.cs` 中新增 `SeatEvaluate` 和 `OrgProcessingResults` 字段,支持相关查询与过滤。
- 修改 `NameOrNo` 查询逻辑,新增 `ActualHandleOrgCode` 字段支持接办部门编号查询。
田爽 2 тижнів тому
батько
коміт
ab6f9758bb

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

@@ -6349,8 +6349,10 @@ public class OrderController : BaseController
             IdentityTypeOptions = EnumExts.GetDescriptions<EIdentityType>(),
             OrderTags = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.OrderTag),
             FocusOnEvents = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.FocusOnEvent),
-            PoliticalIdentity = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.PoliticalIdentity)
-        };
+            PoliticalIdentity = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.PoliticalIdentity),
+			SeatEvaluate = EnumExts.GetDescriptions<ESeatEvaluate>(),
+			VisitSatisfaction = _sysDicDataCacheManager.GetSysDicDataCache(SysDicTypeConsts.VisitSatisfaction),
+		};
         return rsp;
     }
 

+ 17 - 5
src/Hotline.Api/Controllers/OrgController.cs

@@ -201,11 +201,23 @@ namespace Hotline.Api.Controllers
             return org;
         }
 
-        /// <summary>
-        /// 获取可用组织架构树形
-        /// </summary>
-        /// <returns></returns>
-        [HttpGet("getcanuseorg")]
+		/// <summary>
+		/// 获取一级部门
+		/// </summary>
+		/// <param name="id"></param>
+		/// <returns></returns>
+		[HttpGet("get_one_org")]
+		public async Task<List<SystemOrganize>> GetOneOrg()
+		{
+			var oneOrgs = await _systemOrganizeRepository.Queryable().Where(x=>x.Level == 1).ToListAsync();
+			return oneOrgs;
+		}
+
+		/// <summary>
+		/// 获取可用组织架构树形
+		/// </summary>
+		/// <returns></returns>
+		[HttpGet("getcanuseorg")]
         public async Task<IReadOnlyList<SystemOrganize>> GetCanUseOrg()
         {
             return await _systemOrganizeRepository.GetCanUseOrg();

+ 5 - 2
src/Hotline.Application/OrderApp/OrderApplication.cs

@@ -1874,7 +1874,8 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                                                                                                                //.WhereIF(!string.IsNullOrEmpty(dto.OrgId), d => d.CurrentHandleOrgId == dto.OrgId)//接办部门
                 .WhereIF(!string.IsNullOrEmpty(dto.OrgLevelOneName), d => d.OrgLevelOneName.Contains(dto.OrgLevelOneName)) //一级部门
                 .WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgName), d => d.ActualHandleOrgName.Contains(dto.ActualHandleOrgName)) //接办部门(综合查询模糊)
-                .WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
+				.WhereIF(!string.IsNullOrEmpty(dto.ActualHandleOrgCode), d => d.ActualHandleOrgCode.StartsWith(dto.ActualHandleOrgCode)) //接办部门(综合查询模糊)
+				.WhereIF(!string.IsNullOrEmpty(dto.NameOrNo), d => d.AcceptorName == dto.NameOrNo! || d.AcceptorStaffNo == dto.NameOrNo!) //受理人/坐席
                 .WhereIF(dto.CreationTimeStart.HasValue, d => d.CreationTime >= dto.CreationTimeStart) //受理时间开始
                 .WhereIF(dto.CreationTimeEnd.HasValue, d => d.CreationTime <= dto.CreationTimeEnd) //受理时间结束
                 .WhereIF(dto.StartTimeStart.HasValue, d => d.StartTime >= dto.StartTimeStart) //流程开启时间开始
@@ -1932,7 +1933,9 @@ public class OrderApplication : IOrderApplication, IScopeDependency
                 .WhereIF(!string.IsNullOrEmpty(dto.OrderTagCode), d => d.OrderTags.Any(ot => ot.DicDataValue == dto.OrderTagCode)) //工单标签
                 .WhereIF(!string.IsNullOrEmpty(dto.FocusOnEvents),
                     d => d.FocusOnEvents.Contains(dto.FocusOnEvents) && !d.FocusOnEvents.Contains("99")) //!string.IsNullOrEmpty(d.FocusOnEvents) && SqlFunc.SplitIn(d.FocusOnEvents, dto.FocusOnEvents))
-                .OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
+				 .WhereIF(dto.SeatEvaluate.Any(), d => dto.SeatEvaluate.Contains(d.SeatEvaluate.Value)) //话务员评价(话务评价)
+				.WhereIF(dto.OrgProcessingResults.Any(),d => dto.OrgProcessingResults.Contains(SqlFunc.JsonField(d.OrgProcessingResults, "Key")))//部门办件结果
+				.OrderByIF(string.IsNullOrEmpty(dto.SortField), d => d.CreationTime, OrderByType.Desc) //默认排序时间为创建时间
                 .OrderByIF(dto is { SortField: "no", SortRule: 0 }, d => d.No, OrderByType.Asc) //工单编号升序
                 .OrderByIF(dto is { SortField: "no", SortRule: 1 }, d => d.No, OrderByType.Desc) //工单编号降序
                 .OrderByIF(dto is { SortField: "isProvinceText", SortRule: 0 }, d => d.IsProvince, OrderByType.Asc) //是否省工单升序

+ 20 - 5
src/Hotline.Share/Dtos/Order/QueryOrderDto.cs

@@ -74,10 +74,15 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
         public string? ActualHandleOrgName { get; set; }
 
-        /// <summary>
-        /// 受理坐席名字或工号(×)
-        /// </summary>
-        public string? NameOrNo { get; set; }
+		/// <summary>
+		/// 接办部门编号(综合查询使用)
+		/// </summary>
+		public string? ActualHandleOrgCode { get; set; }
+
+		/// <summary>
+		/// 受理坐席名字或工号(×)
+		/// </summary>
+		public string? NameOrNo { get; set; }
 
         /// <summary>
         /// 受理时间(工单创建时间)(√)
@@ -246,8 +251,18 @@ namespace Hotline.Share.Dtos.Order
         /// </summary>
 		public bool? IsReTransact { get; set; }
 
+		/// <summary>
+		/// 话务员评价(话务评价)
+		/// </summary>
+		public List<ESeatEvaluate> SeatEvaluate { get; set; } = new();
 
-    }
+		/// <summary>
+		/// 部门办件结果
+		/// </summary>
+		public List<string> OrgProcessingResults { get; set; } = new();
+
+
+	}
 
 
     public enum FiledType