Selaa lähdekoodia

满意度统计

duhongyu 5 vuotta sitten
vanhempi
commit
5efa78a89f

+ 101 - 10
CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/report/WorkOrderReportController.cs

@@ -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",