Bladeren bron

新增随访率统计

zhoufan 4 jaren geleden
bovenliggende
commit
70a88761c6

+ 0 - 21
codegit/CallCenterApi/CallCenterApi.BLL/his/o_sf_bingrenqk.cs

@@ -97,27 +97,6 @@ namespace CallCenterApi.BLL
97 97
         }
98 98
 
99 99
         /// <summary>
100
-        /// 获取科室
101
-        /// </summary>
102
-        public DataSet GetKSList()
103
-        {
104
-            return dal.GetKSList();
105
-        }
106
-        /// <summary>
107
-        /// 获取科室随访总条数
108
-        /// </summary>
109
-        public DataSet GetKSSFCount()
110
-        {
111
-            return dal.GetKSSFCount();
112
-        }
113
-        /// <summary>
114
-        /// 以随访
115
-        /// </summary>
116
-        public DataSet GetYSFCount()
117
-        {
118
-            return dal.GetYSFCount();
119
-        }
120
-        /// <summary>
121 100
         /// 分页获取数据列表
122 101
         /// </summary>
123 102
         //public DataSet GetList(int PageSize,int PageIndex,string strWhere)

+ 0 - 28
codegit/CallCenterApi/CallCenterApi.DAL/his/o_sf_bingrenqk.cs

@@ -396,34 +396,6 @@ namespace CallCenterApi.DAL
396 396
 			return DBOracleHelper.RunProcedure("UP_GetRecordByPage",parameters,"ds");
397 397
 		}*/
398 398
 
399
-        /// <summary>
400
-        /// 获取科室列表
401
-        /// </summary>
402
-        public DataSet GetKSList()
403
-        {
404
-            StringBuilder strSql = new StringBuilder();
405
-            strSql.Append("select distinct CYKS ");
406
-            strSql.Append(" FROM SF_BINGRENQK ");
407
-            return DBOracleHelper.Query(strSql.ToString());
408
-        }
409
-        /// <summary>
410
-        ///获取科室随访总条数 
411
-        /// </summary>
412
-        public DataSet GetKSSFCount()
413
-        {
414
-            StringBuilder strSql = new StringBuilder();
415
-            strSql.Append("select count(1),CYKS FROM SF_BINGRENQK group by CYKS");
416
-            return DBOracleHelper.Query(strSql.ToString());
417
-        }
418
-        /// <summary>
419
-        /// 以随访条数
420
-        /// </summary>
421
-        public DataSet GetYSFCount()
422
-        {
423
-            StringBuilder strSql = new StringBuilder();
424
-            strSql.Append("select CYKS,COUNT(1) from SF_BINGRENQK a,SF_Result b where a.BINGRENZYID=b.F_Id and b.F_Result='正常接通' group by CYKS");
425
-            return DBOracleHelper.Query(strSql.ToString());
426
-        }
427 399
 
428 400
         #endregion  BasicMethod
429 401
         #region  ExtensionMethod

+ 0 - 1
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/CallCenterApi.Interface.csproj

@@ -495,7 +495,6 @@
495 495
           <AutoAssignPort>True</AutoAssignPort>
496 496
           <DevelopmentServerPort>63662</DevelopmentServerPort>
497 497
           <DevelopmentServerVPath>/</DevelopmentServerVPath>
498
-          <IISUrl>http://api.dancheng.test/</IISUrl>
499 498
           <NTLMAuthentication>False</NTLMAuthentication>
500 499
           <UseCustomServer>False</UseCustomServer>
501 500
           <CustomServerUrl>

+ 70 - 140
codegit/CallCenterApi/CallCenterApi.Interface/CallCenterApi.Interface/Controllers/MedicalFollowup/FollowUpController.cs

@@ -649,130 +649,62 @@ namespace CallCenterApi.Interface.Controllers.MedicalFollowup
649 649
         //获取数据
650 650
         public ActionResult GetSFList()
651 651
         {
652
-            #region 添加表格标题
653
-            var columns = new List<string>();
654
-            columns.Add("科室");
655
-            columns.Add("随访量");
656
-            columns.Add("以随访量");
657
-            columns.Add("科室随访率");
658
-            #endregion
659
-            return Success("获取随访率标题成功", columns);
660
-        }
661
-
662
-
663
-        public ActionResult GetSFDataList(string ks, string stime, string etime)
664
-        {
665
-            ActionResult res = NoToken("未知错误,请重新登录");
666
-            DataTable dtNew = new DataTable();
667
-            dtNew = GetDataKSSL();
668
-            res = Success("获取科室随访率统计数据成功", dtNew);
669
-
670
-            return res;
652
+            //if (Request.IsAuthenticated)
653
+            //{
654
+                return Success("获取随访率成功", GetSFData());
655
+            //}
656
+            //return NoToken("未知错误,请重新登录");
671 657
         }
672 658
 
673
-        //获取数据源
674
-        private DataTable GetDataKSSL()
659
+        private DataTable GetSFData()
675 660
         {
676
-            BLL.O_SF_BINGRENQK o_SF_BINGRENQK = new BLL.O_SF_BINGRENQK();
677
-            DataTable dtNew = new DataTable();
678
-            #region 编辑表头
679
-            DataColumn dc1 = new DataColumn("科室名称", Type.GetType("System.String"));
680
-            DataColumn dc2 = new DataColumn("随访量", Type.GetType("System.String"));
681
-            DataColumn dc3 = new DataColumn("以随访量", Type.GetType("System.String"));
682
-            DataColumn dc4 = new DataColumn("科室随访率", Type.GetType("System.String"));
683
-
684
-            dtNew.Columns.Add(dc1);
685
-            dtNew.Columns.Add(dc2);
686
-            dtNew.Columns.Add(dc3);
687
-            dtNew.Columns.Add(dc4);
688
-            #endregion
661
+            DataTable dt = new DataTable();
662
+            dt.Columns.Add("科室");
663
+            dt.Columns.Add("总量");
664
+            dt.Columns.Add("随访量");
665
+            dt.Columns.Add("随访率");
666
+            dt.Columns.Add("rate",typeof(double));
667
+
668
+            var kslist = DbHelperSQL.Query("select distinct CYKS FROM SF_BINGRENQK").Tables[0];
669
+            var tlist = DbHelperSQL.Query("select count(1) Num,CYKS FROM SF_BINGRENQK group by CYKS").Tables[0];
670
+            var sflist = DbHelperSQL.Query("select CYKS,COUNT(1) Num from SF_BINGRENQK a,SF_Result b where a.BINGRENZYID=b.F_Id and b.F_Result='正常接通' group by CYKS").Tables[0];
671
+
672
+            foreach (DataRow dr in kslist.Rows)
673
+            {
674
+                var drnew = dt.NewRow();
675
+                var cyks = dr["CYKS"].ToString();
676
+                drnew["科室"] = cyks;
677
+                var zl = tlist.Select("CYKS='" + cyks + "'").FirstOrDefault()?.ItemArray[0].ToString() ?? "";
678
+                if (zl != "")
679
+                {
680
+                    drnew["总量"] = zl;
681
+                    var sfl = sflist.Select("CYKS='" + cyks + "'").FirstOrDefault()?.ItemArray[1].ToString() ?? "0";
682
+                    drnew["随访量"] = sfl;
683
+                    var Rate = Math.Round(double.Parse(sfl)*100 / double.Parse(zl),2);
684
+                    drnew["rate"] = Rate;
685
+                    drnew["随访率"] = Rate + "%";
686
+                }
689 687
 
690
-            
691
-            DataTable ks = o_SF_BINGRENQK.GetKSList().Tables[0];
692
-            for (int i = 0; i < ks.Rows.Count; i++)
693
-            {
694
-                DataRow drNew = dtNew.NewRow();
695
-                drNew["科室名称"] = ks;
688
+                dt.Rows.Add(drnew);
696 689
             }
697
-            DataTable zl = o_SF_BINGRENQK.GetKSSFCount().Tables[0];
698
-            for (int i = 0; i < zl.Rows.Count; i++)
699
-            {
700
-                DataRow drNew = dtNew.NewRow();
701
-                drNew["随访量"] = zl;
702
-            }
703
-            DataTable YSF = o_SF_BINGRENQK.GetYSFCount().Tables[0];
704
-
705
-            #region
706
-            //一天24小时
707
-            //for (int i = 0; i < 24; i++)
708
-            //{
709
-            //    DateTime stimes = Convert.ToDateTime(stime + " 00:00:00").AddHours(i);
710
-            //    DateTime etimes = Convert.ToDateTime(stime + " 00:59:59").AddHours(i);
711
-            //    DataRow drNew = dtNew.NewRow();
712 690
 
713
-            //SELECT BeginTime, * FROM T_Call_CallRecords WHERE DATEPART(hh,BeginTime) = DATEPART(hh, DATEADD(hh,-2,GETDATE())) and DATEPART(dd,BeginTime) = DATEPART(dd, GETDATE()) and DATEPART(mm, BeginTime) = DATEPART(mm, GETDATE()) and DATEPART(yy, BeginTime) = DATEPART(yy, GETDATE())
691
+            var dtnew = dt.Select("1=1", "rate desc").CopyToDataTable();
692
+            dtnew.Columns.Remove("rate");
714 693
 
715
-            //var a = "";
716
-            //var callInTimes ="";
717
-            ////list.Where(x => x.CallType == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();   //呼入量
718
-            //if (a=0)
719
-            //{
720
-            //    callInTimes=
721
-            //}
722
-            //var callOutTimes = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();  //呼出量
723
-            //var calledTimes = list.Where(x => x.CallState == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();  //接通量
724
-            //var nocalledTimes = list.Where(x => x.CallState == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();//未接通量
725
-
726
-            ////var calledRate = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();
727
-            //drNew["时间"] = (i + 1).ToString();
728
-            //drNew["呼入量"] = callInTimes.ToString();
729
-            //drNew["呼出量"] = callOutTimes.ToString();
730
-            //drNew["接通量"] = calledTimes.ToString();
731
-            //drNew["未接通量"] = nocalledTimes.ToString();
732
-            ////计算未结案率
733
-            //var calledTotal = calledTimes + nocalledTimes;
734
-            //Double notRate = 0.00;
735
-            //if (calledTotal > 0)
736
-            //    notRate = (double)calledTimes / (double)calledTotal;
737
-            //drNew["接通率"] = (notRate * 100).ToString("0.00") + "%";
738
-            //////统计结案,未结案数
739
-            //callInCount += callInTimes;
740
-            //callOutCount += callOutTimes;
741
-            //calledCount += calledTimes;
742
-            //nocalledCount += nocalledTimes;
743
-            //dtNew.Rows.Add(drNew);
744
-            // }
745
-            //#region 获取一条统计信息
746
-            //DataRow drzj = dtNew.NewRow();
747
-            //drzj["时间"] = "总计";
748
-            //drzj["呼入量"] = callInCount.ToString();
749
-            //drzj["呼出量"] = callOutCount.ToString();
750
-            //drzj["接通量"] = calledCount.ToString();
751
-            //drzj["未接通量"] = nocalledCount.ToString();
752
-            ////计算未结案率
753
-            //int totalAllCount = calledCount + nocalledCount;
754
-            //Double calledAllRate = 0.00;
755
-            //if (totalAllCount > 0)
756
-            //    calledAllRate = (double)calledCount / (double)totalAllCount;
757
-            //drzj["接通率"] = (calledAllRate * 100).ToString("0.00") + "%";
758
-            //dtNew.Rows.Add(drzj);
759
-            #endregion
760
-            return dtNew;
694
+            return dtnew;
761 695
         }
696
+
762 697
         /// <summary>
763 698
         /// 导出数据
764 699
         /// </summary>
765
-        /// <param name="stime"></param>
766
-        /// <param name="ks"></param>
767
-        /// <param name="etime"></param>
768 700
         /// <returns></returns>
769
-        public ActionResult ExportExcel(string stime, string ks, string etime)
701
+        public ActionResult ExportExcel()
770 702
         {
771
-            ActionResult res = NoToken("未知错误,请重新登录");
772
-            if (Request.IsAuthenticated)
773
-            {
703
+            //ActionResult res = NoToken("未知错误,请重新登录");
704
+            //if (Request.IsAuthenticated)
705
+            //{
774 706
                 NPOIHelper npoi = new NPOIHelper();
775
-                DataTable dt = GetDataKSSL();
707
+                DataTable dt = GetSFData();
776 708
                 if (npoi.ExportToExcel("科室随访率数据", dt) == "")
777 709
                 {
778 710
                     return Success("导出成功");
@@ -781,45 +713,43 @@ namespace CallCenterApi.Interface.Controllers.MedicalFollowup
781 713
                 {
782 714
                     return Error("导出失败");
783 715
                 }
784
-            }
785
-            return res;
716
+            //}
717
+            //return res;
786 718
         }
787 719
         //获取图形数据
788
-        public ActionResult GetKSSFData(string years)
720
+        public ActionResult GetSFChartData()
789 721
         {
790 722
             ActionResult res = NoToken("未知错误,请重新登录");
791
-            if (Request.IsAuthenticated)
792
-            {
793
-                string[] arr = new string[12];
723
+            //if (Request.IsAuthenticated)
724
+            //{
725
+            var kslist = DbHelperSQL.Query("select distinct CYKS FROM SF_BINGRENQK").Tables[0];
726
+            var tlist = DbHelperSQL.Query("select count(1) Num,CYKS FROM SF_BINGRENQK group by CYKS").Tables[0];
727
+            var sflist = DbHelperSQL.Query("select CYKS,COUNT(1) Num from SF_BINGRENQK a,SF_Result b where a.BINGRENZYID=b.F_Id and b.F_Result='正常接通' group by CYKS").Tables[0];
728
+            var ksc = kslist.Rows.Count;
794 729
 
795
-                DataTable dt = new BLL.T_Call_CallRecords().GetList("1=1").Tables[0];
796
-                DateTime dtNow;
730
+            Dictionary<string, double> dics = new Dictionary<string, double>();
731
+            for (int i = 0; i < ksc; i++)
732
+            {
733
+                var cyks = kslist.Rows[i]["CYKS"].ToString();
797 734
 
798
-                if (string.IsNullOrEmpty(years))
799
-                {
800
-                    dtNow = DateTime.Now;
801
-                }
802
-                else
803
-                {
804
-                    dtNow = DateTime.Parse(years + "年");
805
-                }
806
-                for (int i = 1; i <= 12; i++)
735
+                var zl = tlist.Select("CYKS='" + cyks + "'").FirstOrDefault()?.ItemArray[0].ToString() ?? "";
736
+                if (zl != "")
807 737
                 {
808
-                    DateTime beginTime = Convert.ToDateTime(dtNow.Year + "-" + i + "-01 00:00:00");
809
-                    int days = DateTime.DaysInMonth(dtNow.Year, beginTime.Month);
810
-                    DataRow[] dtRow = dt.Select("begintime >='" + beginTime.ToString() + "' and  beginTime<'" + beginTime.AddDays(days).AddSeconds(-1) + "'");
811
-                    if (dtRow.Length > 0)
812
-                    {
813
-                        arr[i - 1] = dtRow.Length.ToString();
814
-                    }
815
-                    else
816
-                    {
817
-                        arr[i - 1] = "0";
818
-                    }
738
+                    var sfl = sflist.Select("CYKS='" + cyks + "'").FirstOrDefault()?.ItemArray[1].ToString() ?? "0";
739
+                    var Rate = Math.Round(double.Parse(sfl)*100 / double.Parse(zl), 2);
740
+                    dics.Add(cyks, Rate);
819 741
                 }
820
-
821
-                res = Success("获取呼叫量图形数据成功", arr);
822 742
             }
743
+
744
+            dics = dics.OrderByDescending(p => p.Value).ToDictionary(p => p.Key, p => p.Value);
745
+            var obj = new
746
+            {
747
+                ks = dics.Keys,
748
+                rate=dics.Values
749
+            };
750
+
751
+            res = Success("获取科室随访数据成功", obj);
752
+            //}
823 753
             return res;
824 754
         }
825 755
         #endregion