소스 검색

Merge branch 'dev' into dev_dss

Dun.Jason 11 달 전
부모
커밋
f5da30325d

+ 6 - 3
src/Hotline.Api/Controllers/Bi/BiOrderController.cs

@@ -1624,7 +1624,8 @@ namespace Hotline.Api.Controllers.Bi
             //会签(已办超期、待办超期)
             var queryCountersign = _workflowStepHandleRepository.Queryable()
              .LeftJoin<WorkflowTrace>((x, o) => x.WorkflowStepId == o.StepId)
-             .Where((x, o) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CountersignPosition == ECountersignPosition.Multi && o.CountersignPosition == ECountersignPosition.Single && o.CreationTime >= StartDate && o.CreationTime <= EndDate)
+             .Where((x, o) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && (o.CountersignPosition == ECountersignPosition.Multi
+             || o.CountersignPosition == ECountersignPosition.Single) && o.CreationTime >= StartDate && o.CreationTime <= EndDate)
              .Select((x, o) => new
              {
                  OrgCode = IsCenter == true ? x.OrgId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) : x.OrgId.Substring(0, _sessionContext.RequiredOrgId.Length + 3),// d.OrgId,
@@ -1967,7 +1968,8 @@ namespace Hotline.Api.Controllers.Bi
             //会签(已办超期、待办超期)
             var queryCountersign = _workflowStepHandleRepository.Queryable()
              .LeftJoin<WorkflowTrace>((x, o) => x.WorkflowStepId == o.StepId)
-             .Where((x, o) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CountersignPosition == ECountersignPosition.Multi && o.CountersignPosition == ECountersignPosition.Single && o.CreationTime >= StartDate && o.CreationTime <= EndDate)
+             .Where((x, o) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && (o.CountersignPosition == ECountersignPosition.Multi
+             || o.CountersignPosition == ECountersignPosition.Single) && o.CreationTime >= StartDate && o.CreationTime <= EndDate)
              .WhereIF(OrgCode == "001", (x, o) => x.OrgId == OrgCode)
              .WhereIF(OrgCode != "001", (x, o) => x.OrgId.StartsWith(OrgCode))
              .Select((x, o) => new
@@ -2367,7 +2369,8 @@ namespace Hotline.Api.Controllers.Bi
                 var queryCountersign = await _workflowStepHandleRepository.Queryable()
                .LeftJoin<WorkflowTrace>((x, o) => x.WorkflowStepId == o.StepId)
                .LeftJoin<Order>((x, o, p) => o.WorkflowId == p.WorkflowId)
-               .Where((x, o, p) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && o.CountersignPosition == ECountersignPosition.Multi && o.CountersignPosition == ECountersignPosition.Single && o.CreationTime >= dto.StartDate && o.CreationTime <= dto.EndDate)
+               .Where((x, o, p) => o.ModuleCode == WorkflowModuleConsts.OrderHandle && (o.CountersignPosition == ECountersignPosition.Multi
+             || o.CountersignPosition == ECountersignPosition.Single) && o.CreationTime >= dto.StartDate && o.CreationTime <= dto.EndDate)
                .WhereIF(dto.OrgCode == "001", (x, o, p) => x.OrgId == dto.OrgCode)
                .WhereIF(dto.OrgCode != "001", (x, o, p) => x.OrgId.StartsWith(dto.OrgCode))
                .WhereIF(dto.StatisticsType == EStatisticsType.HQYBOverdue, (x, o, p) => o.Status == EWorkflowStepStatus.Handled && o.HandleTime > o.StepExpiredTime)//会签已办超期

+ 1 - 1
src/Hotline.Application/FlowEngine/IWorkflowApplication.cs

@@ -44,7 +44,7 @@ namespace Hotline.Application.FlowEngine
         /// <summary>
         /// 跳转至结束节点(无视流程模板配置直接跳至结束节点)
         /// </summary>
-        Task JumpToEndAsync(string workflowId, string opinion, List<FileDto> file,
+        Task HandleToEndAsync(string workflowId, string opinion, List<FileDto> file,
             EReviewResult? reviewResult = EReviewResult.Unknown, bool isProvince = false,
             CancellationToken cancellationToken = default);
         

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

@@ -324,9 +324,9 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
     }
 
     /// <summary>
-    /// 跳转至结束节点(无视流程模板配置直接跳至结束节点)
+    /// 无视流程模板配置直接将当前节点办理至结束节点
     /// </summary>
-    public async Task JumpToEndAsync(string workflowId, string opinion, List<FileDto> files,
+    public async Task HandleToEndAsync(string workflowId, string opinion, List<FileDto> files,
         EReviewResult? reviewResult = EReviewResult.Unknown, bool isProvince = false,
         CancellationToken cancellationToken = default)
     {
@@ -339,12 +339,13 @@ public class WorkflowApplication : IWorkflowApplication, IScopeDependency
         if (currentStep is null)
             throw new UserFriendlyException("未找到实际办理节点");
 
-        await _workflowDomainService.EndAsync(workflow, new BasicWorkflowDto
+        await _workflowDomainService.EndAsync(workflow, 
+            new BasicWorkflowDto
         {
             Opinion = opinion,
             Files = files
-        }, endStepDefine, currentStep,
-            reviewResult, isProvince,  cancellationToken: cancellationToken);
+        }, 
+            endStepDefine, currentStep, reviewResult, isProvince,  cancellationToken: cancellationToken);
     }
 
     /// <summary>

+ 58 - 58
src/Hotline.Application/Handlers/Order/DelayProvinceResultNotifyHandler.cs

@@ -1,62 +1,62 @@
-using MediatR;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Hotline.Application.FlowEngine;
-using Hotline.DataSharing.Province.Notifications;
-using Hotline.Orders;
-using Hotline.Share.Dtos.FlowEngine;
-using Hotline.Share.Enums.FlowEngine;
-using Hotline.Share.Enums.Order;
-using XF.Domain.Exceptions;
-using XF.Domain.Repository;
+//using MediatR;
+//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+//using Hotline.Application.FlowEngine;
+//using Hotline.DataSharing.Province.Notifications;
+//using Hotline.Orders;
+//using Hotline.Share.Dtos.FlowEngine;
+//using Hotline.Share.Enums.FlowEngine;
+//using Hotline.Share.Enums.Order;
+//using XF.Domain.Exceptions;
+//using XF.Domain.Repository;
 
-namespace Hotline.Application.Handlers.Order
-{
-    public class DelayProvinceResultNotifyHandler : INotificationHandler<DelayProvinceResultNotify>
-    {
-        private readonly IRepository<OrderDelay> _orderDelayRepository;
-        private readonly IWorkflowApplication _workflowApplication;
+//namespace Hotline.Application.Handlers.Order
+//{
+//    public class DelayProvinceResultNotifyHandler : INotificationHandler<DelayProvinceResultNotify>
+//    {
+//        private readonly IRepository<OrderDelay> _orderDelayRepository;
+//        private readonly IWorkflowApplication _workflowApplication;
 
-        public DelayProvinceResultNotifyHandler(
-            IRepository<OrderDelay> orderDelayRepository,
-            IWorkflowApplication workflowApplication)
-        {
-            _orderDelayRepository = orderDelayRepository;
-            _workflowApplication = workflowApplication;
-        }
+//        public DelayProvinceResultNotifyHandler(
+//            IRepository<OrderDelay> orderDelayRepository,
+//            IWorkflowApplication workflowApplication)
+//        {
+//            _orderDelayRepository = orderDelayRepository;
+//            _workflowApplication = workflowApplication;
+//        }
 
-        /// <summary>Handles a notification</summary>
-        /// <param name="notification">The notification</param>
-        /// <param name="cancellationToken">Cancellation token</param>
-        public async Task Handle(DelayProvinceResultNotify notification, CancellationToken cancellationToken)
-        {
-            var dto = notification;
-            var orderDelay = await _orderDelayRepository.Queryable()
-                .Includes(d => d.Order)
-                .Includes(d => d.Workflow)
-                .FirstAsync(d => d.Order.ProvinceNo == dto.No && d.DelayState == EDelayState.Examining, cancellationToken);
-            if (orderDelay is null)
-                throw new UserFriendlyException("无效省工单编号");
-            if (string.IsNullOrEmpty(orderDelay.WorkflowId))
-                throw new UserFriendlyException("无效延期审批流程编号");
+//        /// <summary>Handles a notification</summary>
+//        /// <param name="notification">The notification</param>
+//        /// <param name="cancellationToken">Cancellation token</param>
+//        public async Task Handle(DelayProvinceResultNotify notification, CancellationToken cancellationToken)
+//        {
+//            var dto = notification;
+//            var orderDelay = await _orderDelayRepository.Queryable()
+//                .Includes(d => d.Order)
+//                .Includes(d => d.Workflow)
+//                .FirstAsync(d => d.Order.ProvinceNo == dto.No && d.DelayState == EDelayState.Examining, cancellationToken);
+//            if (orderDelay is null)
+//                throw new UserFriendlyException("无效省工单编号");
+//            if (string.IsNullOrEmpty(orderDelay.WorkflowId))
+//                throw new UserFriendlyException("无效延期审批流程编号");
 
-            if (dto.IsPass)
-            {
-                await _workflowApplication.JumpToEndAsync(orderDelay.WorkflowId, dto.Opinion, notification.Files,EReviewResult.Approval,
-                    true,cancellationToken);
-            }
-            else
-            {
-                var rejectDto = new RejectDto
-                {
-                    WorkflowId = orderDelay.WorkflowId,
-                    Opinion = dto.Opinion,
-                };
-                await _workflowApplication.RejectAsync(rejectDto, cancellationToken);
-            }
-        }
-    }
-}
+//            if (dto.IsPass)
+//            {
+//                await _workflowApplication.JumpToEndAsync(orderDelay.WorkflowId, dto.Opinion, notification.Files,EReviewResult.Approval,
+//                    true,cancellationToken);
+//            }
+//            else
+//            {
+//                var rejectDto = new RejectDto
+//                {
+//                    WorkflowId = orderDelay.WorkflowId,
+//                    Opinion = dto.Opinion,
+//                };
+//                await _workflowApplication.RejectAsync(rejectDto, cancellationToken);
+//            }
+//        }
+//    }
+//}

+ 39 - 39
src/Hotline.Application/Handlers/Order/OrderResultNotifyHandler.cs

@@ -1,42 +1,42 @@
-using Hotline.Application.FlowEngine;
-using Hotline.DataSharing.Province.Notifications;
-using Hotline.File;
-using Hotline.Orders;
-using Hotline.Share.Dtos.FlowEngine;
-using Hotline.Share.Dtos.Order;
-using Hotline.Share.Enums.Order;
-using MapsterMapper;
-using MediatR;
+//using Hotline.Application.FlowEngine;
+//using Hotline.DataSharing.Province.Notifications;
+//using Hotline.File;
+//using Hotline.Orders;
+//using Hotline.Share.Dtos.FlowEngine;
+//using Hotline.Share.Dtos.Order;
+//using Hotline.Share.Enums.Order;
+//using MapsterMapper;
+//using MediatR;
 
-namespace Hotline.Application.Handlers.Order
-{
-	public class OrderResultNotifyHandler : INotificationHandler<OrderResultNotify>
-	{
-		private readonly IOrderRepository _orderRepository;
-		private readonly IWorkflowApplication _workflowApplication;
+//namespace Hotline.Application.Handlers.Order
+//{
+//	public class OrderResultNotifyHandler : INotificationHandler<OrderResultNotify>
+//	{
+//		private readonly IOrderRepository _orderRepository;
+//		private readonly IWorkflowApplication _workflowApplication;
 
-		public OrderResultNotifyHandler(
-			IOrderRepository orderRepository, 
-			IWorkflowApplication workflowApplication)
-		{
-			_orderRepository = orderRepository;
-			_workflowApplication = workflowApplication;
-		}
+//		public OrderResultNotifyHandler(
+//			IOrderRepository orderRepository, 
+//			IWorkflowApplication workflowApplication)
+//		{
+//			_orderRepository = orderRepository;
+//			_workflowApplication = workflowApplication;
+//		}
 
-		public async Task Handle(OrderResultNotify request, CancellationToken cancellationToken)
-		{
-			var order = await  _orderRepository.GetAsync(request.OrderId, cancellationToken);
-            if (order != null)
-            {
-				if ("0".Equals(request.FinishType))
-				{
-					await _workflowApplication.PreviousAsync(
-						new PreviousWorkflowDto { WorkflowId = order.WorkflowId, Opinion = request.Opinion, Files = request.Files }, cancellationToken: cancellationToken);
-				}
-				else if ("1".Equals(request.FinishType)) {
-					await _workflowApplication.JumpToEndAsync(order.WorkflowId, request.Opinion, request.Files, cancellationToken: cancellationToken);
-				}
-			}
-        }
-	}
-}
+//		public async Task Handle(OrderResultNotify request, CancellationToken cancellationToken)
+//		{
+//			var order = await  _orderRepository.GetAsync(request.OrderId, cancellationToken);
+//            if (order != null)
+//            {
+//				if ("0".Equals(request.FinishType))
+//				{
+//					await _workflowApplication.PreviousAsync(
+//						new PreviousWorkflowDto { WorkflowId = order.WorkflowId, Opinion = request.Opinion, Files = request.Files }, cancellationToken: cancellationToken);
+//				}
+//				else if ("1".Equals(request.FinishType)) {
+//					await _workflowApplication.JumpToEndAsync(order.WorkflowId, request.Opinion, request.Files, cancellationToken: cancellationToken);
+//				}
+//			}
+//        }
+//	}
+//}

+ 59 - 59
src/Hotline.Application/Handlers/Order/ScreenProvinceResultNotifyHandler.cs

@@ -1,63 +1,63 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Hotline.Application.FlowEngine;
-using Hotline.DataSharing.Province.Notifications;
-using Hotline.Orders;
-using Hotline.Share.Dtos.FlowEngine;
-using Hotline.Share.Enums.FlowEngine;
-using Hotline.Share.Enums.Order;
-using MediatR;
-using Microsoft.AspNetCore.Http;
-using XF.Domain.Exceptions;
-using XF.Domain.Repository;
+//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+//using Hotline.Application.FlowEngine;
+//using Hotline.DataSharing.Province.Notifications;
+//using Hotline.Orders;
+//using Hotline.Share.Dtos.FlowEngine;
+//using Hotline.Share.Enums.FlowEngine;
+//using Hotline.Share.Enums.Order;
+//using MediatR;
+//using Microsoft.AspNetCore.Http;
+//using XF.Domain.Exceptions;
+//using XF.Domain.Repository;
 
-namespace Hotline.Application.Handlers.Order
-{
-    public class ScreenProvinceResultNotifyHandler : INotificationHandler<ScreenProvinceResultNotify>
-    {
-        private readonly IRepository<OrderScreen> _orderScreenRepository;
-        private readonly IWorkflowApplication _workflowApplication;
+//namespace Hotline.Application.Handlers.Order
+//{
+//    public class ScreenProvinceResultNotifyHandler : INotificationHandler<ScreenProvinceResultNotify>
+//    {
+//        private readonly IRepository<OrderScreen> _orderScreenRepository;
+//        private readonly IWorkflowApplication _workflowApplication;
 
-        public ScreenProvinceResultNotifyHandler(
-            IRepository<OrderScreen> orderScreenRepository,
-            IWorkflowApplication workflowApplication)
-        {
-            _orderScreenRepository = orderScreenRepository;
-            _workflowApplication = workflowApplication;
-        }
+//        public ScreenProvinceResultNotifyHandler(
+//            IRepository<OrderScreen> orderScreenRepository,
+//            IWorkflowApplication workflowApplication)
+//        {
+//            _orderScreenRepository = orderScreenRepository;
+//            _workflowApplication = workflowApplication;
+//        }
 
-        /// <summary>Handles a notification</summary>
-        /// <param name="notification">The notification</param>
-        /// <param name="cancellationToken">Cancellation token</param>
-        public async Task Handle(ScreenProvinceResultNotify notification, CancellationToken cancellationToken)
-        {
-            var dto = notification.ProvinceScreenResult;
-            var orderScreen = await _orderScreenRepository.Queryable()
-                .Includes(d => d.Order)
-                .Includes(d => d.Workflow)
-                .FirstAsync(d => d.Order.ProvinceNo == dto.CaseSerial && d.Status == EScreenStatus.Approval, cancellationToken);
-            if (orderScreen is null)
-                throw new UserFriendlyException("无效省工单编号");
-            if (string.IsNullOrEmpty(orderScreen.WorkflowId))
-                throw new UserFriendlyException("无效甄别审批流程编号");
+//        /// <summary>Handles a notification</summary>
+//        /// <param name="notification">The notification</param>
+//        /// <param name="cancellationToken">Cancellation token</param>
+//        public async Task Handle(ScreenProvinceResultNotify notification, CancellationToken cancellationToken)
+//        {
+//            var dto = notification.ProvinceScreenResult;
+//            var orderScreen = await _orderScreenRepository.Queryable()
+//                .Includes(d => d.Order)
+//                .Includes(d => d.Workflow)
+//                .FirstAsync(d => d.Order.ProvinceNo == dto.CaseSerial && d.Status == EScreenStatus.Approval, cancellationToken);
+//            if (orderScreen is null)
+//                throw new UserFriendlyException("无效省工单编号");
+//            if (string.IsNullOrEmpty(orderScreen.WorkflowId))
+//                throw new UserFriendlyException("无效甄别审批流程编号");
 
-            if (dto.AuditResult)
-            {
-                await _workflowApplication.JumpToEndAsync(orderScreen.WorkflowId, dto.AuditOpinion, notification.Files,EReviewResult.Approval,
-                    true,cancellationToken);
-            }
-            else
-            {
-                var rejectDto = new RejectDto
-                {
-                    WorkflowId = orderScreen.WorkflowId,
-                    Opinion = dto.AuditOpinion,
-                };
-                await _workflowApplication.RejectAsync(rejectDto, cancellationToken);
-            }
-        }
-    }
-}
+//            if (dto.AuditResult)
+//            {
+//                await _workflowApplication.JumpToEndAsync(orderScreen.WorkflowId, dto.AuditOpinion, notification.Files,EReviewResult.Approval,
+//                    true,cancellationToken);
+//            }
+//            else
+//            {
+//                var rejectDto = new RejectDto
+//                {
+//                    WorkflowId = orderScreen.WorkflowId,
+//                    Opinion = dto.AuditOpinion,
+//                };
+//                await _workflowApplication.RejectAsync(rejectDto, cancellationToken);
+//            }
+//        }
+//    }
+//}

+ 5 - 5
src/Hotline.Application/Subscribers/DatasharingSubscriber.cs

@@ -112,7 +112,7 @@ namespace Hotline.Application.Subscribers
                 {
                     if (!string.IsNullOrEmpty(order.WorkflowId))
                     {
-                        await _workflowApplication.JumpToEndAsync(order.WorkflowId, "省工单同意退回",null,isProvince:true, cancellationToken: cancellationToken);
+                        await _workflowApplication.HandleToEndAsync(order.WorkflowId, "省工单同意退回",null,isProvince:true, cancellationToken: cancellationToken);
                     }
                 }
             }
@@ -127,7 +127,7 @@ namespace Hotline.Application.Subscribers
         {
             var order = await _orderRepository.GetAsync(p => p.ProvinceNo == dto.ProvinceNo, cancellationToken);
             if (!string.IsNullOrEmpty(order.WorkflowId))
-                await _workflowApplication.JumpToEndAsync(order.WorkflowId, dto.Opinion, null,isProvince:true, cancellationToken: cancellationToken);
+                await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, null,isProvince:true, cancellationToken: cancellationToken);
             else
             {
 
@@ -236,7 +236,7 @@ namespace Hotline.Application.Subscribers
         {
             var order = await _orderRepository.Queryable().Where(x => x.ProvinceNo == dto.ProvinceScreenResult!.CaseSerial).FirstAsync(cancellationToken);
             var orderScreen = await _orderScreenRepository.Queryable().Where(x => x.OrderId == order.Id && x.Status == Share.Enums.Order.EScreenStatus.Approval).FirstAsync(cancellationToken);
-            await _workflowApplication.JumpToEndAsync(orderScreen.WorkflowId, "省上推送甄别结果", null,dto.ProvinceScreenResult.AuditResult? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed ,isProvince:true, cancellationToken: cancellationToken);
+            await _workflowApplication.HandleToEndAsync(orderScreen.WorkflowId, "省上推送甄别结果", null,dto.ProvinceScreenResult.AuditResult? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed ,isProvince:true, cancellationToken: cancellationToken);
             orderScreen.Status = dto.ProvinceScreenResult.AuditResult ? Share.Enums.Order.EScreenStatus.End : Share.Enums.Order.EScreenStatus.Refuse;
             if (orderScreen.Status == Share.Enums.Order.EScreenStatus.End)
             {
@@ -489,7 +489,7 @@ namespace Hotline.Application.Subscribers
             {
                 //查询延期
                 var orderDelay = await _orderDelayRepository.GetAsync(x => x.OrderId == order.Id && x.DelayState == EDelayState.Examining, cancellationToken);
-                await _workflowApplication.JumpToEndAsync(orderDelay.WorkflowId, dto.Opinion, null, dto.IsPass ? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed,isProvince:true,cancellationToken);
+                await _workflowApplication.HandleToEndAsync(orderDelay.WorkflowId, dto.Opinion, null, dto.IsPass ? Share.Enums.FlowEngine.EReviewResult.Approval : Share.Enums.FlowEngine.EReviewResult.Failed,isProvince:true,cancellationToken);
             }
         }
 
@@ -519,7 +519,7 @@ namespace Hotline.Application.Subscribers
                     break;
                 case "1":
                     //办结:归档
-                    await _workflowApplication.JumpToEndAsync(order.WorkflowId, dto.Opinion, dto.Files,isProvince:true,
+                    await _workflowApplication.HandleToEndAsync(order.WorkflowId, dto.Opinion, dto.Files,isProvince:true,
                         cancellationToken: cancellationToken);
                     break;
             }