Dun.Jason 3 kuukautta sitten
vanhempi
commit
ef6cbe0e6e

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

@@ -1985,11 +1985,11 @@ public class OrderController : BaseController
         if (int.Parse(setting?.SettingValue[0]) != 0 && !_sessionContext.OrgIsCenter)
         {
             int count = await _orderDelayRepository.CountAsync(x =>
-                x.OrderId == delaydto.OrderId && x.ApplyOrgCode == _sessionContext.RequiredOrgId && x.DelayState == EDelayState.Pass);
+                x.OrderId == delaydto.OrderId && x.ApplyOrgCode.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) == _sessionContext.RequiredOrgId.Substring(SqlFunc.MappingColumn<int>("0"), SqlFunc.MappingColumn<int>("6")) && x.DelayState == EDelayState.Pass);
             if (_appOptions.Value.IsZiGong)
             {
                 count = await _orderDelayRepository.CountAsync(x =>
-                    x.OrderId == delaydto.OrderId && x.ApplyOrgCode == _sessionContext.RequiredOrgId &&
+                    x.OrderId == delaydto.OrderId &&  x.ApplyOrgCode == _sessionContext.RequiredOrgId &&
                     (x.DelayState == EDelayState.Pass || x.DelayState == EDelayState.NoPass));
             }
 
@@ -4036,6 +4036,7 @@ public class OrderController : BaseController
         if (orderId.NotNullOrEmpty())
         {
             outDto.Opinion = await _typeCache.GetAsync($"tmp_opinion_{orderId}{_sessionContext.UserId}", HttpContext.RequestAborted);
+            outDto.Content = (await _orderRepository.GetAsync(orderId, HttpContext.RequestAborted))?.Content;
         }
 
         //随手拍
@@ -4365,6 +4366,7 @@ public class OrderController : BaseController
             throw UserFriendlyException.SameMessage("该工单未开启流程");
         var dto = await _workflowApplication.GetNextStepsAsync(order.WorkflowId, HttpContext.RequestAborted);
         dto.ExpiredTime = order.ExpiredTime;
+        dto.Content = order.Content;
         var rsp = _mapper.Map<NextStepsWithOpinionDto<RecommendStepOption>>(dto);
         foreach (var step in rsp.Steps)
         {

+ 1 - 0
src/Hotline.Application/StatisticalReport/OrderReportApplication.cs

@@ -1717,6 +1717,7 @@ namespace Hotline.Application.StatisticalReport
                     YjAllTimes = SqlFunc.AggregateSum(SqlFunc.IIF(it.AcceptTypeCode == "1" && it.AllTime != null, it.AllTime, 0)),
                     YjAcceptanceTypeCode = "1"
                 }).MergeTable();
+            Console.Write(orderData.ToSqlString());
             return orderData;
         }
 

+ 5 - 0
src/Hotline.Share/Dtos/FlowEngine/NextStepsDto.cs

@@ -63,6 +63,11 @@ public class NextStepsDto
     /// 临时保存的办理意见
     /// </summary>
     public string? Opinion { get; set; }
+
+    /// <summary>
+    /// 受理类容
+    /// </summary>
+    public string? Content { get; set; }
 }
 
 public class NextStepsDto<TSteps> : NextStepsDto

+ 31 - 0
src/Hotline/dataview.md

@@ -518,3 +518,34 @@ group by "OrderId") and "VisitState" not in(50,30)) and "VisitTarget"=20
 
 
 
+### 部门受理类型统计周期
+select 
+部门名称,部门类别,
+总件数,总时长, CAST(总时长/总件数/3600 as NUMERIC(10,2)) as 总平均,
+咨询件数,咨询时长,CASE 咨询件数 WHEN 0 THEN	0	ELSE CAST(咨询时长/咨询件数/3600 as NUMERIC(10,2)) END as 咨询平均,
+建议件数,建议时长,CASE 建议件数 WHEN 0 THEN 0 ELSE CAST(建议时长/建议件数/3600 as NUMERIC(10,2)) END as 建议平均,
+求助件数,求助时长,CASE 求助件数 WHEN 0 THEN 0 ELSE CAST(求助时长/求助件数/3600 as NUMERIC(10,2)) END as 求助平均,
+表扬件数,表扬时长,CASE 表扬件数 WHEN 0 THEN 0 ELSE CAST(表扬时长/表扬件数/3600 as NUMERIC(10,2)) END as 表扬平均,
+举报件数,举报时长,CASE 举报件数 WHEN 0 THEN 0 ELSE CAST(举报时长/举报件数/3600 as NUMERIC(10,2)) END as 举报平均,
+投诉件数,投诉时长,CASE 投诉件数 WHEN 0 THEN 0 ELSE CAST(投诉时长/投诉件数/3600 as NUMERIC(10,2)) END as 投诉平均,
+其他件数,其他时长,CASE 其他件数 WHEN 0 THEN 0 ELSE CAST(其他时长/其他件数/3600 as NUMERIC(10,2)) END as 其他平均 from (
+select "OrgName" as 部门名称,"OrgType" as  部门类别,("ZxAllCount" + "JyAllCount" + "QzAllCount" + "ByAllCount" + "JbAllCount" + "TsAllCount" + "QtAllCount")as 总件数,
+("ZxAllTimes" + "JyAllTimes" + "QzAllTimes" + "ByAllTimes" + "JbAllTimes" + "TsAllTimes" + "QtAllTimes") as 总时长,"ZxAllCount" as 咨询件数,"ZxAllTimes" as 咨询时长,"JyAllCount" as 建议件数,
+"JyAllTimes" as 建议时长,"QzAllCount" as 求助件数,"QzAllTimes" as 求助时长,"ByAllCount" as 表扬件数,"ByAllTimes" as 表扬时长,"JbAllCount" as 举报件数,"JbAllTimes" as 举报时长,"TsAllCount" as 投诉件数,
+"TsAllTimes" as 投诉时长,"QtAllCount" as 其他件数,"QtAllTimes" as 其他时长  from (
+SELECT * FROM  (SELECT  ( CASE  WHEN ( "it"."OrgCode" = N'001' ) THEN N'热线中心'  ELSE "o"."Name" END ) AS "OrgName" , "it"."OrgCode" AS "OrgCode" , ( CASE  WHEN ( "o"."OrgType" = 2 ) THEN N'区县部门'  ELSE N'市直部门' END ) AS "OrgType" ,
+SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'10' ) THEN 1  ELSE 0 END )) AS "ZxAllCount" , SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'10' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "ZxAllTimes" ,
+N'10' AS "ZxAcceptanceTypeCode" , SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'15' ) THEN 1  ELSE 0 END )) AS "JyAllCount" ,
+SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'15' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "JyAllTimes" , N'15' AS "JyAcceptanceTypeCode" , 
+SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'20' ) THEN 1  ELSE 0 END )) AS "QzAllCount" , SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'20' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "QzAllTimes" ,
+N'20' AS "QzAcceptanceTypeCode" , SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'25' ) THEN 1  ELSE 0 END )) AS "ByAllCount" , SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'25' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END ))
+AS "ByAllTimes" , N'25' AS "ByAcceptanceTypeCode" , SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'30' ) THEN 1  ELSE 0 END )) AS "JbAllCount" , SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'30' ) AND 
+( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "JbAllTimes" , N'30' AS "JbAcceptanceTypeCode" , SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'35' ) THEN 1  ELSE 0 END )) AS "TsAllCount" , 
+SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'35' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "TsAllTimes" , N'35' AS "TsAcceptanceTypeCode" , 
+SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'40' ) THEN 1  ELSE 0 END )) AS "QtAllCount" , SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'40' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "QtAllTimes" ,
+N'40' AS "QtAcceptanceTypeCode" , SUM(( CASE  WHEN ( "it"."AcceptTypeCode" = N'1' ) THEN 1  ELSE 0 END )) AS "YjAllCount" , 
+SUM(( CASE  WHEN (( "it"."AcceptTypeCode" = N'1' ) AND ( "it"."AllTime" IS NOT NULL )) THEN "it"."AllTime"  ELSE 0 END )) AS "YjAllTimes" , N'1' AS "YjAcceptanceTypeCode"  FROM  
+(SELECT * FROM  (SELECT  ( CASE  WHEN ( true = true ) THEN SUBSTRING("ActualHandleOrgCode",1 + 0,6)  ELSE SUBSTRING("ActualHandleOrgCode",1 + 0,(LENGTH(N'001')+ 3 )) END ) AS "OrgCode" , "AcceptTypeCode" AS "AcceptTypeCode" ,
+( CASE  WHEN ( "FileOrgIsCenter" = true ) THEN 10  ELSE 20 END ) AS "ProcessType" , ( CASE  WHEN ( "FileOrgIsCenter" = true ) THEN "CreationTimeHandleDurationWorkday"  ELSE "CenterToOrgHandleDurationWorkday" END ) AS "AllTime" ,
+"FileOrgIsCenter" AS "FileOrgIsCenter"  FROM "order"  WHERE ((( "FiledTime" >= '2024-12-01 00:00:00.000' ) AND ( "FiledTime" <= '2024-12-31 23:59:59.000' )) AND ( "Status" >= 300 ))  AND ( "IsDeleted" = false ) ) MergeTable ) "it"
+Left JOIN "system_organize" "o" ON ( "it"."OrgCode" = "o"."Id" )   WHERE ( "o"."IsDeleted" = false )GROUP BY "it"."OrgCode","o"."Name","o"."OrgType"  )))