|
|
@@ -316,7 +316,15 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
316
|
316
|
}
|
|
317
|
317
|
return Success("成功", newSet);
|
|
318
|
318
|
}
|
|
319
|
|
-
|
|
|
319
|
+ public class deptSatisfiedReport
|
|
|
320
|
+ {
|
|
|
321
|
+ public int count = 0;
|
|
|
322
|
+ public string deptname;
|
|
|
323
|
+ public int notsatisfiedcount = 0;
|
|
|
324
|
+ public int satisfiedcount = 0;
|
|
|
325
|
+ public string satisfiedrate="" ;
|
|
|
326
|
+ public float fiedrate=0;
|
|
|
327
|
+ }
|
|
320
|
328
|
/// <summary>
|
|
321
|
329
|
/// 市民满意度评价
|
|
322
|
330
|
/// </summary>
|
|
|
@@ -332,20 +340,103 @@ namespace CallCenterApi.Interface.Controllers.report
|
|
332
|
340
|
{
|
|
333
|
341
|
end = DateTime.Now;
|
|
334
|
342
|
}
|
|
335
|
|
- //string sql = $"select * from dbo.GetDeptSatisfied('{start.Value.ToString("yyyy-MM-dd")}','{end.Value.ToString("yyyy-MM-dd")}') ORDER BY rate DESC";
|
|
336
|
|
- //var dtall = DbHelperSQL.Query(sql).Tables[0];
|
|
337
|
|
- Dictionary<string, string> paras = new Dictionary<string, string>();
|
|
338
|
|
- paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
|
|
339
|
|
- paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
|
|
340
|
|
- var obj = DbHelperSQL.RunProcedure("P_DeptSatisfiedReport", paras, "DeptSatisfiedReport");
|
|
341
|
|
-
|
|
342
|
343
|
if (isExport)
|
|
343
|
344
|
{
|
|
344
|
|
- string[] cols = new string[] { "单位名称", "处理总量", "满意总量", "不满意总量", "满意度" };
|
|
|
345
|
+ Dictionary<string, string> paras = new Dictionary<string, string>();
|
|
|
346
|
+ paras.Add("@sdate", start.Value.ToString("yyyy-MM-dd"));
|
|
|
347
|
+ paras.Add("@edate", end.Value.ToString("yyyy-MM-dd"));
|
|
|
348
|
+ var obj = DbHelperSQL.RunProcedure("P_DeptSatisfiedReport", paras, "DeptSatisfiedReport");
|
|
|
349
|
+ string[] cols = new string[] { "单位名称", "处理总量", "满意总量", "不满意总量", "满意度" };
|
|
345
|
350
|
new NPOIHelper().ExportToExcel($"满意度统计报表{Convert.ToDateTime(start).ToString("yyyyMMdd")}-{Convert.ToDateTime(end).ToString("yyyyMMdd")}", obj.Tables[0], cols);
|
|
346
|
351
|
return Success("导出excel");
|
|
347
|
352
|
}
|
|
348
|
|
- return Success("成功", obj);
|
|
|
353
|
+ List<deptSatisfiedReport> DeptSatisfiedReport = new List<deptSatisfiedReport>();
|
|
|
354
|
+ var workorder = new BLL.T_Bus_AssignedInfo().GetModelList
|
|
|
355
|
+ (" F_Id IN ((select max(F_Id) from T_Bus_AssignedInfo where F_IsDelete = 0 " +
|
|
|
356
|
+ "and F_State = 1 and isnull(F_FeedbackTime, '') <> '' and datediff(day, F_FeedbackTime, '" + start + "') <= 0 " +
|
|
|
357
|
+ "and datediff(day, F_FeedbackTime, '" + end + "') >= 0 and F_WorkOrderId in (select F_WorkOrderId from" +
|
|
|
358
|
+ " T_Bus_WorkOrder where F_WorkState = 9) group by F_WorkOrderId)) ");
|
|
|
359
|
+
|
|
|
360
|
+ var visit= new BLL.T_Bus_WorkOrder().GetModelList
|
|
|
361
|
+ ("F_IsDelete=0 and F_WorkOrderId in " +
|
|
|
362
|
+ "(select a.F_WorkOrderId from T_Bus_AssignedInfo a INNER JOIN T_Bus_VisitResult v " +
|
|
|
363
|
+ "on a.F_Id = v.F_AssignedId WHERE v.F_IsDelete = 0 and v.F_State = 1 and a.F_Id IN( (select max(F_Id) " +
|
|
|
364
|
+ "from T_Bus_AssignedInfo where F_IsDelete = 0 and F_State = 1 and isnull(F_FeedbackTime, '') <> '' " +
|
|
|
365
|
+ "and datediff(day, F_FeedbackTime, '"+ start + "') <= 0 and datediff(day, F_FeedbackTime, '"+ end + "') >= 0 " +
|
|
|
366
|
+ "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_WorkOrder where F_WorkState = 9) group by F_WorkOrderId)) ) ") ;
|
|
|
367
|
+
|
|
|
368
|
+ var deptMent = new BLL.T_Sys_Department().GetModelList(" F_State=0 AND F_IsDept='1' ");
|
|
|
369
|
+ if (deptMent!=null )
|
|
|
370
|
+ {
|
|
|
371
|
+ foreach (var it in deptMent)
|
|
|
372
|
+ {
|
|
|
373
|
+ deptSatisfiedReport deptSatisfied = new deptSatisfiedReport();
|
|
|
374
|
+ deptSatisfied.count = 0;
|
|
|
375
|
+ deptSatisfied.deptname = it.F_DeptName;
|
|
|
376
|
+ deptSatisfied.notsatisfiedcount = 0;
|
|
|
377
|
+ deptSatisfied.satisfiedcount = 0;
|
|
|
378
|
+ deptSatisfied.satisfiedrate = "";
|
|
|
379
|
+ deptSatisfied.fiedrate = 0;
|
|
|
380
|
+ int visits = 0;
|
|
|
381
|
+ if (workorder !=null )
|
|
|
382
|
+ {
|
|
|
383
|
+ foreach (var iv in workorder)
|
|
|
384
|
+ {
|
|
|
385
|
+ if (iv.F_MainDeptId == it.F_DeptId)
|
|
|
386
|
+ deptSatisfied.count++;
|
|
|
387
|
+ }
|
|
|
388
|
+ if (visit!=null )
|
|
|
389
|
+ {
|
|
|
390
|
+ foreach (var iv in visit)
|
|
|
391
|
+ {
|
|
|
392
|
+ if (iv.F_MainDeptId == it.F_DeptId)
|
|
|
393
|
+ visits++;
|
|
|
394
|
+ if (iv.F_MainDeptId == it.F_DeptId&& iv. F_IsSatisfie ==1)
|
|
|
395
|
+ deptSatisfied.satisfiedcount++;
|
|
|
396
|
+ }
|
|
|
397
|
+ }
|
|
|
398
|
+ deptSatisfied.notsatisfiedcount = visits - deptSatisfied.satisfiedcount;
|
|
|
399
|
+ if (visits>0)
|
|
|
400
|
+ {
|
|
|
401
|
+ deptSatisfied.fiedrate = (float)deptSatisfied.satisfiedcount / visits;
|
|
|
402
|
+ deptSatisfied.satisfiedrate = string.Format("{0:f2}%",(float )deptSatisfied.satisfiedcount / visits*100);
|
|
|
403
|
+ }
|
|
|
404
|
+ DeptSatisfiedReport.Add(deptSatisfied);
|
|
|
405
|
+ }
|
|
|
406
|
+ else
|
|
|
407
|
+ {
|
|
|
408
|
+ DeptSatisfiedReport.Add(deptSatisfied);
|
|
|
409
|
+ }
|
|
|
410
|
+ }
|
|
|
411
|
+ }
|
|
|
412
|
+
|
|
|
413
|
+ DeptSatisfiedReport. Sort((x, y) => y .fiedrate.CompareTo(x .fiedrate));
|
|
|
414
|
+ // foreach (var it in DeptSatisfiedReport)
|
|
|
415
|
+ // {
|
|
|
416
|
+ // if (it.satisfiedrate == "0%")
|
|
|
417
|
+ // it.satisfiedrate = "";
|
|
|
418
|
+ // }
|
|
|
419
|
+ // var result = DeptSatisfiedReport.OrderBy(x => x == null ).ThenBy(x => x.satisfiedrate );
|
|
|
420
|
+
|
|
|
421
|
+
|
|
|
422
|
+
|
|
|
423
|
+
|
|
|
424
|
+
|
|
|
425
|
+
|
|
|
426
|
+
|
|
|
427
|
+
|
|
|
428
|
+ //string sql = $"select * from dbo.GetDeptSatisfied('{start.Value.ToString("yyyy-MM-dd")}','{end.Value.ToString("yyyy-MM-dd")}') ORDER BY rate DESC";
|
|
|
429
|
+ //var dtall = DbHelperSQL.Query(sql).Tables[0];
|
|
|
430
|
+
|
|
|
431
|
+
|
|
|
432
|
+
|
|
|
433
|
+ var ob = new
|
|
|
434
|
+ {
|
|
|
435
|
+ state = "success",
|
|
|
436
|
+ message = "成功",
|
|
|
437
|
+ DeptSatisfiedReport = DeptSatisfiedReport,
|
|
|
438
|
+ };
|
|
|
439
|
+ return Success("成功", ob );
|
|
349
|
440
|
//int recordCount = 0;
|
|
350
|
441
|
//var dt = BLL.PagerBLL.GetListPager(
|
|
351
|
442
|
// "("+sql+") as v",
|