瀏覽代碼

会签查询增加 "标题","来电号码","受理编号","会签次数","发起人","发起部门","办理状态","发起时间开始","发起时间结束","受理时间开始","受理时间结束","超期状态" 查询

libin 2 月之前
父節點
當前提交
7b305b0433

+ 39 - 37
src/Hotline.Api/Controllers/WorkflowController.cs

@@ -498,7 +498,7 @@ public class WorkflowController : BaseController
                 {
                     Key = d.Key,
                     Value = d.Value,
-                    Items = d.Key is 0 or 2 or 4 or 6? centerIsTop : orgs
+                    Items = d.Key is 0 or 2 or 4 or 6 ? centerIsTop : orgs
                 }),
             CountersignPolicyOptions = EnumExts.GetDescriptions<ECountersignPolicy>()
                 .Select(d => new
@@ -559,7 +559,7 @@ public class WorkflowController : BaseController
     {
         RefAsync<int> total = 0;
 
-        var items = await _workflowApplication.QueryOrderCountersigns(dto,_sessionContext)
+        var items = await _workflowApplication.QueryOrderCountersigns(dto, _sessionContext)
             .Select((c, w, o) => new { c, o })
             .ToPageListAsync(dto.PageIndex, dto.PageSize, total, HttpContext.RequestAborted);
 
@@ -569,59 +569,61 @@ public class WorkflowController : BaseController
             dto.Order = _mapper.Map<OrderDto>(d.o);
             dto.CounterSignCount = _workflowCountersignRepository.Queryable().Where(p => p.WorkflowId == d.c.WorkflowId).CountAsync().GetAwaiter().GetResult();
             return dto;
-        }).ToList();
+        })
+        .WhereIF(dto.CounterSignCount > 0, d => d.CounterSignCount == dto.CounterSignCount)
+        .ToList();
 
         return new PagedDto<WorkflowCountersignDto>(total, dtos);
     }
 
 
 
-	/// <summary>
-	/// 会签信息导出
-	/// </summary>
-	/// <returns></returns>
-	[HttpPost("order-countersign/_export")]
+    /// <summary>
+    /// 会签信息导出
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost("order-countersign/_export")]
     public async Task<FileStreamResult> ScreenListExport([FromBody] ExportExcelDto<QueryOrderCountersignDto> dto)
     {
-	    var query = _workflowApplication.QueryOrderCountersigns(dto.QueryDto, _sessionContext)
-			 .Select((c, w, o) => new WorkflowCountersign()
-			 {
-                Id  = c.Id.SelectAll(),
-                Order = o,
-			 });
-	    List<WorkflowCountersign> data;
-
-		if (dto.IsExportAll)
-	    {
-		    data = await query.ToListAsync(HttpContext.RequestAborted);
-		}
-	    else
-		{
-
-			var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
-			data = items;
-		}
+        var query = _workflowApplication.QueryOrderCountersigns(dto.QueryDto, _sessionContext)
+             .Select((c, w, o) => new WorkflowCountersign()
+             {
+                 Id = c.Id.SelectAll(),
+                 Order = o,
+             });
+        List<WorkflowCountersign> data;
+
+        if (dto.IsExportAll)
+        {
+            data = await query.ToListAsync(HttpContext.RequestAborted);
+        }
+        else
+        {
+
+            var (_, items) = await query.ToPagedListAsync(dto.QueryDto, HttpContext.RequestAborted);
+            data = items;
+        }
 
         var dataDtos = _mapper.Map<ICollection<WorkflowCountersignDto>>(data);
 
         dynamic? dynamicClass = DynamicClassHelper.CreateDynamicClass(dto.ColumnInfos);
 
-	    var dtos = dataDtos
-			.Select(stu => _mapper.Map(stu, typeof(WorkflowCountersignDto), dynamicClass))
-		    .Cast<object>()
-		    .ToList();
+        var dtos = dataDtos
+            .Select(stu => _mapper.Map(stu, typeof(WorkflowCountersignDto), dynamicClass))
+            .Cast<object>()
+            .ToList();
 
-	    var stream = ExcelHelper.CreateStream(dtos);
+        var stream = ExcelHelper.CreateStream(dtos);
 
-	    return ExcelStreamResult(stream, "会签信息数据");
+        return ExcelStreamResult(stream, "会签信息数据");
     }
 
 
-	/// <summary>
-	/// 
-	/// </summary>
-	/// <returns></returns>
-	[HttpGet("order-countersign-base-data")]
+    /// <summary>
+    /// 
+    /// </summary>
+    /// <returns></returns>
+    [HttpGet("order-countersign-base-data")]
     public async Task<object> QueryOrderCountersignsBaseData()
     {
 

+ 17 - 5
src/Hotline.Application/FlowEngine/WorkflowApplication.cs

@@ -30,6 +30,7 @@ using Newtonsoft.Json;
 using Hotline.Share.Dtos.FlowEngine.Workflow;
 using SqlSugar;
 using Hotline.SeedData;
+using Hotline.Share.Tools;
 
 namespace Hotline.Application.FlowEngine;
 
@@ -875,7 +876,7 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
             NextStepOption nextStepOption;
 
             //汇总节点只能选择对应节点办理对象
-            if (workflow.FlowType is EFlowType.Handle 
+            if (workflow.FlowType is EFlowType.Handle
                 && stepDefine.StepType is EStepType.Summary
                 && stepDefine.BusinessType is EBusinessType.Seat or EBusinessType.Send)
             {
@@ -1741,11 +1742,22 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
             .InnerJoin<Order>((c, w, o) => w.ExternalId == o.Id)
             .WhereIF(!string.IsNullOrEmpty(dto.Title), (c, w, o) => o.Title.Contains(dto.Title))
             .WhereIF(!string.IsNullOrEmpty(dto.OrderNo), (c, w, o) => o.No == dto.OrderNo)
-            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), (c, w, o) => o.AcceptTypeCode == dto.AcceptType)//受理类型
-            .WhereIF(!string.IsNullOrEmpty(dto.Channel), (c, w, o) => o.SourceChannelCode == dto.Channel)//受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.AcceptType), (c, w, o) => o.AcceptTypeCode == dto.AcceptType) //受理类型
+            .WhereIF(!string.IsNullOrEmpty(dto.Channel), (c, w, o) => o.SourceChannelCode == dto.Channel)    //来源渠道
             .WhereIF(!string.IsNullOrEmpty(dto.Hotspot), (c, w, o) => o.HotspotSpliceName != null && o.HotspotSpliceName.Contains(dto.Hotspot))//热点类型
-            .WhereIF(!string.IsNullOrEmpty(dto.OrgId), (c, w, o) => c.FinisherOrgId == dto.OrgId) //接办部门
-            .WhereIF(dto.CounterSignType != null, (c, w, o) => c.CounterSignType == dto.CounterSignType) //会签类型
+            .WhereIF(!string.IsNullOrEmpty(dto.OrgId), (c, w, o) => c.FinisherOrgId == dto.OrgId)            //接办部门
+            .WhereIF(dto.CounterSignType != null, (c, w, o) => c.CounterSignType == dto.CounterSignType)     //会签类型
+
+            .WhereIF(!string.IsNullOrEmpty(dto.FromPhone), (c, w, o) => o.FromPhone.Contains(dto.FromPhone) || o.Contact.Contains(dto.FromPhone))   //来电号码、联系电话
+            .WhereIF(!string.IsNullOrEmpty(dto.StarterName), (c, w, o) => c.StarterName.Contains(dto.StarterName))                //发起人
+            .WhereIF(!string.IsNullOrEmpty(dto.StarterOrgName), (c, w, o) => c.StarterOrgName.Contains(dto.StarterOrgName))       //发起部门
+            .WhereIF(dto.Status.HasValue, (c, w, o) => c.Order.Status == dto.Status)                                              //工单状态
+            .WhereIF(dto.InitiationTimeStart.HasValue, (c, w, o) => c.CreationTime >= dto.InitiationTimeStart)                    //发起时间开始
+            .WhereIF(dto.InitiationTimeEnd.HasValue, (c, w, o) => c.CreationTime <= dto.InitiationTimeEnd)                        //发起时间结束
+            .WhereIF(dto.CreationTimeStart.HasValue, (c, w, o) => o.CreationTime >= dto.CreationTimeStart)                        //受理时间开始
+            .WhereIF(dto.CreationTimeEnd.HasValue, (c, w, o) => o.CreationTime <= dto.CreationTimeEnd)                            //受理时间结束
+            .WhereIF(dto.ExpiredStatus.HasValue && dto.ExpiredStatus == true, (c, w, o) => o.ExpiredTime >= o.FiledTime)          //超期true
+            .WhereIF(dto.ExpiredStatus.HasValue && dto.ExpiredStatus == false, (c, w, o) => o.ExpiredTime <= o.FiledTime)         //超期false
         ;
 
         var rolePaiDan = _systemSettingCacheManager.GetSetting(SettingConstants.RolePaiDan)?.SettingValue[0];//派单员角色

+ 51 - 0
src/Hotline.Share/Dtos/FlowEngine/Workflow/QueryWorkflowCountersignDto.cs

@@ -4,6 +4,7 @@ using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Hotline.Share.Enums.FlowEngine;
+using Hotline.Share.Enums.Order;
 using Hotline.Share.Requests;
 
 namespace Hotline.Share.Dtos.FlowEngine.Workflow
@@ -61,5 +62,55 @@ namespace Hotline.Share.Dtos.FlowEngine.Workflow
         /// 热点分类(√)
         /// </summary>
         public string Hotspot { get; set; }
+
+        /// <summary>
+        /// 来电号码
+        /// </summary>
+        public string? FromPhone { get; set; }
+
+        /// <summary>
+        /// 会签次数
+        /// </summary>
+        public int? CounterSignCount { get; set; } = 0;
+
+        /// <summary>
+        /// 发起人
+        /// </summary>
+        public string? StarterName { get; set; }
+
+        /// <summary>
+        /// 发起部门
+        /// </summary>
+        public string? StarterOrgName { get; set; }
+
+        /// <summary>
+        /// 办理状态
+        /// </summary>
+        public EOrderStatus? Status { get; set; }
+
+        /// <summary>
+        /// 发起时间开始
+        /// </summary>
+        public DateTime? InitiationTimeStart { get; set; }
+
+        /// <summary>
+        /// 发起时间结束
+        /// </summary>
+        public DateTime? InitiationTimeEnd { get; set; }
+
+        /// <summary>
+        /// 受理时间开始
+        /// </summary>
+        public DateTime? CreationTimeStart { get; set; }
+
+        /// <summary>
+        /// 受理时间结束
+        /// </summary>
+        public DateTime? CreationTimeEnd { get; set; }
+
+        /// <summary>
+        /// 超期状态
+        /// </summary>
+        public bool? ExpiredStatus { get; set; }
     }
 }