소스 검색

2:退回待审批增加期满时间查询条件
3:部门满意度明细(三个页面)增加“省、市工单”查询条件
4:部门满意度明细(三个页面)增加回访内容检索查询条件

libin 3 달 전
부모
커밋
968e8def66

+ 34 - 30
src/Hotline.Application/Orders/OrderSendBackAuditApplication.cs

@@ -1,5 +1,6 @@
 using Hotline.Orders;
 using Hotline.SeedData;
+using Hotline.Share.Dtos;
 using Hotline.Share.Dtos.Bi;
 using Hotline.Share.Dtos.Order;
 using Hotline.Share.Enums.Order;
@@ -10,35 +11,38 @@ using XF.Domain.Repository;
 
 namespace Hotline.Application.Orders
 {
-	public class OrderSendBackAuditApplication : IOrderSendBackAuditApplication, IScopeDependency
-	{
-		private readonly IRepository<OrderSendBackAudit> _orderSendBackAuditRepository;
-		private readonly ISessionContext _sessionContext;
-		public OrderSendBackAuditApplication(IRepository<OrderSendBackAudit> orderSendBackAuditRepository, ISessionContext sessionContext) 
-		{ 
-			_orderSendBackAuditRepository = orderSendBackAuditRepository; 
-			_sessionContext = sessionContext;
- 		}
+    public class OrderSendBackAuditApplication : IOrderSendBackAuditApplication, IScopeDependency
+    {
+        private readonly IRepository<OrderSendBackAudit> _orderSendBackAuditRepository;
+        private readonly ISessionContext _sessionContext;
+        public OrderSendBackAuditApplication(IRepository<OrderSendBackAudit> orderSendBackAuditRepository, ISessionContext sessionContext)
+        {
+            _orderSendBackAuditRepository = orderSendBackAuditRepository;
+            _sessionContext = sessionContext;
+        }
 
-		public ISugarQueryable<OrderSendBackAudit> AuditList(SendBackListDto dto) 
-		{
-			return _orderSendBackAuditRepository.Queryable()
-				.Includes(x => x.Order)
-				.WhereIF(!string.IsNullOrEmpty(dto.Keyword),
-					d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
-				.WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title!))
-				.WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No!))
-				.WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.Order.AcceptTypeCode == dto.AcceptTypeCode)
-				.WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.ApplyOrgName == dto.OrgName)
-				.WhereIF(dto.DataScope is 1 ,d=>d.CreatorId  == _sessionContext.RequiredUserId)
-				.WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
-				.WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
-				.WhereIF(dto.AuditState == 1, d => d.State == ESendBackAuditState.Apply)
-				.WhereIF(dto is { AuditState: 2, State: null }, d => d.State > ESendBackAuditState.Apply)
-				.WhereIF(dto.AuditState is 2 or 3 && dto.State.HasValue && dto.State != ESendBackAuditState.All, d => d.State == dto.State)
-				.WhereIF(dto.AuditState == 3 && _sessionContext.RequiredOrgId != OrgSeedData.CenterId, x => x.ApplyOrgId.StartsWith(_sessionContext.OrgId))
-				.WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false && dto.AuditState != 3, x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
-				.OrderByDescending(x => x.CreationTime);
-		}
-	}
+        public ISugarQueryable<OrderSendBackAudit> AuditList(SendBackListDto dto)
+        {
+            return _orderSendBackAuditRepository.Queryable()
+                .Includes(x => x.Order)
+                .WhereIF(!string.IsNullOrEmpty(dto.Keyword),
+                    d => d.Order.Title.Contains(dto.Keyword!) || d.Order.No.Contains(dto.Keyword!))
+                .WhereIF(!string.IsNullOrEmpty(dto.Title), d => d.Order.Title.Contains(dto.Title!))
+                .WhereIF(!string.IsNullOrEmpty(dto.No), d => d.Order.No.Contains(dto.No!))
+                .WhereIF(!string.IsNullOrEmpty(dto.AcceptTypeCode), d => d.Order.AcceptTypeCode == dto.AcceptTypeCode)
+                .WhereIF(!string.IsNullOrEmpty(dto.OrgName), d => d.ApplyOrgName == dto.OrgName)
+                .WhereIF(dto.DataScope is 1, d => d.CreatorId == _sessionContext.RequiredUserId)
+                .WhereIF(dto.StartTime.HasValue, d => d.CreationTime >= dto.StartTime)
+                .WhereIF(dto.EndTime.HasValue, d => d.CreationTime <= dto.EndTime)
+                .WhereIF(dto.AuditState == 1, d => d.State == ESendBackAuditState.Apply)
+                .WhereIF(dto is { AuditState: 2, State: null }, d => d.State > ESendBackAuditState.Apply)
+                .WhereIF(dto.AuditState is 2 or 3 && dto.State.HasValue && dto.State != ESendBackAuditState.All, d => d.State == dto.State)
+                .WhereIF(dto.AuditState == 3 && _sessionContext.RequiredOrgId != OrgSeedData.CenterId, x => x.ApplyOrgId.StartsWith(_sessionContext.OrgId))
+                .WhereIF(_sessionContext.Roles.Contains("role_sysadmin") == false && dto.AuditState != 3, x => x.SendBackOrgId == _sessionContext.OrgId) // 123 系统管理员;
+                .WhereIF(dto.ExpiredTimeStart.HasValue, x => x.Order.ExpiredTime >= dto.ExpiredTimeStart)
+                .WhereIF(dto.ExpiredTimeEnd.HasValue, x => x.Order.ExpiredTime <= dto.ExpiredTimeEnd)
+
+            .OrderByDescending(x => x.CreationTime);
+        }
+    }
 }

+ 18 - 12
src/Hotline.Repository.SqlSugar/Orders/OrderRepository.cs

@@ -558,7 +558,7 @@ namespace Hotline.Repository.SqlSugar.Orders
             {
                 return null;
             }
-			var list = await Db.Queryable<StatisticsCenter>()
+            var list = await Db.Queryable<StatisticsCenter>()
                 .Where(x => x.Time >= StartTime && x.Time <= EndTime)
                 .Select(x => new StatisticsCenter
                 {
@@ -618,7 +618,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                 return null;
             }
 
-			var list = await Db.Queryable<StatisticsPurTypeSatisfied>()
+            var list = await Db.Queryable<StatisticsPurTypeSatisfied>()
                 .Where(x => x.Time >= StartTime && x.Time <= EndTime)
                 .Select(x => new StatisticsPurTypeSatisfied
                 {
@@ -659,7 +659,7 @@ namespace Hotline.Repository.SqlSugar.Orders
             }
 
 
-			var list = await Db.Queryable<StatisticsDepart>()
+            var list = await Db.Queryable<StatisticsDepart>()
                 .LeftJoin<SystemOrganize>((x, so) => x.DepartmentId == so.oldBmid)
                 .Where(x => x.Time >= StartTime && x.Time <= EndTime && x.Type == Type)
                 .GroupBy((x, so) => new
@@ -694,7 +694,7 @@ namespace Hotline.Repository.SqlSugar.Orders
             var any = await Db.Queryable<StatisticsBaseInfo>()
                 .Where(x => x.AddDate >= StartTime && x.AddDate <= EndTime).AnyAsync();
 
-			if (!any)
+            if (!any)
             {
                 return null;
             }
@@ -830,7 +830,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                 {
                     AllCount = x.AllCount,
                     // 回访情况
-                    SatisfactionRate = x.AllCount > 0 ? SqlFunc.Round((decimal)(x.AllCount - x.SatisfactionCount) * 100 / (decimal)x.AllCount, 2):0,                     //总体满意率
+                    SatisfactionRate = x.AllCount > 0 ? SqlFunc.Round((decimal)(x.AllCount - x.SatisfactionCount) * 100 / (decimal)x.AllCount, 2) : 0,                     //总体满意率
                     DepartSatisfactionRate = x.DepartCount > 0 ? SqlFunc.Round((decimal)(x.DepartCount - x.DepartSatisfactionCount) * 100 / (decimal)x.DepartCount, 2) : 0,   //部门满意率
                     CenterSatisfactionRate = x.CenterCount > 0 ? SqlFunc.Round((decimal)(x.CenterCount - x.CenterSatisfactionCount) * 100 / (decimal)x.CenterCount, 2) : 0,   //12345中心满意率
                     CitySatisfactionRate = x.CityCount > 0 ? SqlFunc.Round((decimal)(x.CityCount - x.CitySatisfactionCount) * 100 / (decimal)x.CityCount, 2) : 0,           //市级部门满意率
@@ -846,7 +846,7 @@ namespace Hotline.Repository.SqlSugar.Orders
                     OrderAllCount = x.OrderAllCount,                                                                    // 来件总数
                     OrderAlready = x.OrderAlready,                                                                      // 已办件数
                     OrderWait = x.OrderWait,                                                                            // 在办件数
-                    OrderAlreadyRate = x.OrderAllCount > 0 ? SqlFunc.Round((decimal)(x.OrderAlready) * 100 / (decimal)x.OrderAllCount, 2):0,    //总体办结率
+                    OrderAlreadyRate = x.OrderAllCount > 0 ? SqlFunc.Round((decimal)(x.OrderAlready) * 100 / (decimal)x.OrderAllCount, 2) : 0,    //总体办结率
                     OrderCityCount = x.OrderCityCount,                                                                  //市级部门受理
                     OrderCountyCount = x.OrderCountyCount,                                                              //县(区)受理
                     OrderCenterCount = x.OrderCenterCount,                                                              //12345中心受理
@@ -980,12 +980,12 @@ namespace Hotline.Repository.SqlSugar.Orders
                   p.count
               })
                .ToPivotTableAsync(p => p.DicDataName, p => p.Hour, p => p.Sum(x => x.count));
-			var col1 = list.Columns.Contains("Column1");
-			if (col1)
-			{
-				list.Columns.Remove("Column1");
-			}
-			var dtList = list.Clone();
+            var col1 = list.Columns.Contains("Column1");
+            if (col1)
+            {
+                list.Columns.Remove("Column1");
+            }
+            var dtList = list.Clone();
 
             if (await Db.Queryable<StatisticsPurTypeSatisfied>().Where(x => x.Time >= dto.StartTime && x.Time <= dto.EndTime).AnyAsync())
             {
@@ -1819,6 +1819,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .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) //回访方式
+                .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.OrderVisit.Order.Source == ESource.ProvinceStraight)
+                .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.OrderVisit.Order.Source != ESource.ProvinceStraight)
+                .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .Select(x => new OrgVisitDetailListResp()
                 {
                     Id = x.Id,
@@ -1882,6 +1885,9 @@ namespace Hotline.Repository.SqlSugar.Orders
                 .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)
+                .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == true, x => x.OrderVisit.Order.Source == ESource.ProvinceStraight)
+                .WhereIF(dto.IsProvinceOrder.HasValue && dto.IsProvinceOrder == false, x => x.OrderVisit.Order.Source != ESource.ProvinceStraight)
+                .WhereIF(!string.IsNullOrEmpty(dto.ContentRetrieval), x => x.VisitContent.Contains(dto.ContentRetrieval!))
                 .Select(x => new OrgVisitDetailListResp
                 {
                     Id = x.Id,

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

@@ -62,7 +62,16 @@ namespace Hotline.Share.Dtos.Bi
         /// </summary>
         public string? PickOrgCode { get; set; }
 
-	}
+        /// <summary>
+        /// 是否省工单(空为全部  true为省工单 false为市工单)
+        /// </summary>
+        public bool? IsProvinceOrder { get; set; }
+
+        /// <summary>
+        /// 内容检索(回访内容)
+        /// </summary>
+        public string? ContentRetrieval { get; set; }
+    }
 
     public record HighFrequencyCallStatisticsRequest : PagedRequest
     {

+ 12 - 1
src/Hotline.Share/Dtos/Order/SendBackDto.cs

@@ -202,5 +202,16 @@ namespace Hotline.Share.Dtos.Order
 		/// 申请部门
 		/// </summary>
 		public string? OrgName { get; set; }
-	}
+
+		/// <summary>
+		/// 期满时间开始
+		/// </summary>
+		public DateTime? ExpiredTimeStart { get; set; }
+
+		/// <summary>
+		/// 期满时间结束
+		/// </summary>
+        public DateTime? ExpiredTimeEnd { get; set; }
+
+    }
 }

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

@@ -564,6 +564,16 @@ public record OrgVisitDetailListReq : PagedKeywordRequest
     /// 回访方式
     /// </summary>
     public EVisitType? VisitType { get; set; }
+
+    /// <summary>
+    /// 是否省工单(空为全部  true为省工单 false为市工单)
+    /// </summary>
+    public bool? IsProvinceOrder { get; set; }
+
+    /// <summary>
+    /// 内容检索(回访内容)
+    /// </summary>
+    public string? ContentRetrieval { get; set; }
 }