田爽 1 year ago
parent
commit
47e3622d4f
1 changed files with 30 additions and 5 deletions
  1. 30 5
      src/Hotline.Api/Controllers/CommonPController.cs

+ 30 - 5
src/Hotline.Api/Controllers/CommonPController.cs

@@ -32,6 +32,8 @@ namespace Hotline.Api.Controllers
         private readonly IOrderRepository _orderRepository;
         private readonly IOrderRepository _orderRepository;
         private readonly IOrderDelayRepository _orderDelayRepository;
         private readonly IOrderDelayRepository _orderDelayRepository;
         private readonly ITimeLimitDomainService _timeLimitDomainService;
         private readonly ITimeLimitDomainService _timeLimitDomainService;
+        private readonly IOrderScreenRepository _orderScreenRepository;
+        private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
 
 
 		public CommonPController(
 		public CommonPController(
             ISystemCommonOpinionDomainService commonOpinionDomainService,
             ISystemCommonOpinionDomainService commonOpinionDomainService,
@@ -41,7 +43,9 @@ namespace Hotline.Api.Controllers
             IOrderRepository orderRepository,
             IOrderRepository orderRepository,
 			IMapper mapper,
 			IMapper mapper,
             IOrderDelayRepository orderDelayRepository,
             IOrderDelayRepository orderDelayRepository,
-            ITimeLimitDomainService timeLimitDomainService)
+            ITimeLimitDomainService timeLimitDomainService,
+            IOrderScreenRepository orderScreenRepository,
+            IRepository<OrderVisitDetail> orderVisitedDetailRepository)
         {
         {
             _commonOpinionDomainService = commonOpinionDomainService;
             _commonOpinionDomainService = commonOpinionDomainService;
             _systemAreaDomainService= systemAreaDomainService;
             _systemAreaDomainService= systemAreaDomainService;
@@ -51,6 +55,8 @@ namespace Hotline.Api.Controllers
             _orderRepository = orderRepository;
             _orderRepository = orderRepository;
             _orderDelayRepository = orderDelayRepository;
             _orderDelayRepository = orderDelayRepository;
             _timeLimitDomainService = timeLimitDomainService;
             _timeLimitDomainService = timeLimitDomainService;
+            _orderScreenRepository = orderScreenRepository;
+            _orderVisitedDetailRepository= orderVisitedDetailRepository;
 		}
 		}
 
 
        
        
@@ -100,6 +106,7 @@ namespace Hotline.Api.Controllers
 			//部门
 			//部门
 			//今日待办 tasksOkNum
 			//今日待办 tasksOkNum
 			var time = DateTime.Parse(tadayTime);
 			var time = DateTime.Parse(tadayTime);
+            //工单
             var order = await _orderRepository.Queryable()
             var order = await _orderRepository.Queryable()
                .Includes(o => o.Workflow, w => w.Steps)
                .Includes(o => o.Workflow, w => w.Steps)
                .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) || SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))
                .Where(o => SqlFunc.JsonListObjectAny(o.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) || SqlFunc.JsonListObjectAny(o.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))
@@ -114,10 +121,28 @@ namespace Hotline.Api.Controllers
             var aboutExpire = order?.aboutExpire ?? 0;
             var aboutExpire = order?.aboutExpire ?? 0;
             var havExpired = order?.havExpired ?? 0;
             var havExpired = order?.havExpired ?? 0;
             var countersignHandle = order?.countersignHandle ?? 0;
             var countersignHandle = order?.countersignHandle ?? 0;
-
-
-
-			return new { AboutExpire = aboutExpire, HavExpired = havExpired, CountersignHandle = countersignHandle, ScreenAudit = "aa", Delay = "aa", ScreenHandle = "aa" };
+            //延期
+            var delay = await _orderDelayRepository.Queryable()
+                .Includes(x=>x.Workflow)
+                .Where(x=> SqlFunc.JsonListObjectAny(x.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) || SqlFunc.JsonListObjectAny(x.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))
+                .Where(x => x.DelayState == EDelayState.Examining).CountAsync();
+            //甄别
+            var screenAudit = await _orderScreenRepository.Queryable()
+                .Includes(x=>x.Workflow)
+				 .Where(x => SqlFunc.JsonListObjectAny(x.Workflow.HandlerUsers, "Key", _sessionContext.RequiredUserId) || SqlFunc.JsonListObjectAny(x.Workflow.HandlerOrgs, "Key", _sessionContext.RequiredOrgId))
+				.Where(x =>  x.Status == EScreenStatus.Apply)
+                .CountAsync();
+			var workTime = _timeLimitDomainService.CalcWorkTimeReduce(DateTime.Now, 5);
+			var screenHandle = await _orderVisitedDetailRepository.Queryable(false, true)
+                .Includes(x => x.OrderVisit)
+                .LeftJoin<OrderScreen>((x, s) => x.Id == s.VisitDetailId && s.Status < EScreenStatus.End && s.IsDeleted == false)
+                .Where((x, s) => s.Id == null)
+                .Where(x => x.OrderVisit.VisitTime < time && x.OrderVisit.VisitTime > workTime)
+                .Where((x, s) => x.OrderVisit.VisitState != EVisitState.None && x.OrderVisit.IsCanHandle)
+                .Where((x, s) => x.VisitTarget == EVisitTarget.Org && x.VisitOrgCode.StartsWith(_sessionContext.OrgId) && (
+                SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "1" || SqlFunc.JsonField(x.OrgProcessingResults, "Key") == "2" ||
+                SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "1" || SqlFunc.JsonField(x.OrgHandledAttitude, "Key") == "2")).CountAsync();
+			return new { AboutExpire = aboutExpire, HavExpired = havExpired, CountersignHandle = countersignHandle, ScreenAudit = screenAudit, Delay = delay, ScreenHandle = screenHandle };
         }
         }
 	}
 	}
 }
 }