| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- using CallCenter.Utility;
- using CallCenterApi.DB;
- using CallCenterApi.Interface.Controllers.Base;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- namespace CallCenterApi.Interface.Controllers.MedicalFollowup
- {
- public class FollowUpController : BaseController
- {
- //private readonly BLL.T_Call_OutTaskTelNum otnBLL = new BLL.T_Call_OutTaskTelNum();
- private readonly BLL.T_Call_OutAnswers ansBLL = new BLL.T_Call_OutAnswers();
- private readonly BLL.T_Med_FollowUp mfBLL = new BLL.T_Med_FollowUp();
- private readonly BLL.T_Ask_Question questionBLL = new BLL.T_Ask_Question();
- private readonly BLL.T_Ask_QuestionItems questionItemBLL = new BLL.T_Ask_QuestionItems();
- private readonly BLL.T_Ask_PagerInfo pagerInfoBLL = new BLL.T_Ask_PagerInfo();
- BLL.SF_BINGRENQK busSF_BINGRENQK = new BLL.SF_BINGRENQK();
- // GET: FollowUp
- public ActionResult Index()
- {
- return View();
- }
- #region 获取随访列表
- /// <summary>
- /// 获取随访列表
- /// </summary>
- /// <returns></returns>
- public ActionResult GetListAll()
- {
- string sql = " datediff(day,T1.CYRQ,'2020-11-01')<=0 ";
- DataTable dt = new DataTable();
- string dischargedept = HttpUtility.UrlDecode(RequestString.GetQueryString("dischargedept"));//出院科室
- string strstate = "0";// HttpUtility.UrlDecode(RequestString.GetQueryString("state"));//状态
- string strcode = HttpUtility.UrlDecode(RequestString.GetQueryString("code"));//病案号
- string stropename = HttpUtility.UrlDecode(RequestString.GetQueryString("opename"));//手术名称
- //来电号码
- string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("phone"));//联系人电话
- string BRXM = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));//姓名
- string strdoctor = "";// HttpUtility.UrlDecode(RequestString.GetQueryString("tubedoctor"));//管床医生 adminken
- //诊断名称
- string strzdmc = HttpUtility.UrlDecode(RequestString.GetQueryString("zdmc"));//诊断名称
- //出院日期
- string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));//查询起始时间
- string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));//查询截止时间
- //总费用
- string strcosts = HttpUtility.UrlDecode(RequestString.GetQueryString("costs"));
- string strcoste = HttpUtility.UrlDecode(RequestString.GetQueryString("coste"));
- //随访日期 adminken
- string strtime = "";// HttpUtility.UrlDecode(RequestString.GetQueryString("sftime"));
- //仅包含随访结束的
- string strsfend = "";// HttpUtility.UrlDecode(RequestString.GetQueryString("sfend"));
- //仅二级随访未完成
- string strejwwc = "";//HttpUtility.UrlDecode(RequestString.GetQueryString("secondlevel"));
- //满意度
- string strsatisfy = ""; HttpUtility.UrlDecode(RequestString.GetQueryString("satisfied"));
- //类型
- string strtype = "";// HttpUtility.UrlDecode(RequestString.GetQueryString("type"));
- string strpageindex = RequestString.GetQueryString("page");
- int pageindex = 1;
- string strpagesize = RequestString.GetQueryString("pagesize");
- int pagesize = 10;
- if (dischargedept.Trim() != "" && dischargedept != "undefined")
- {
- sql += " and T1.CYKS like '%" + dischargedept.Trim() + "%' ";
- }
- if (strstate.Trim() != "" && strstate != "undefined")
- {
- if (strstate == "2")
- {
- sql += " and T4.F_Id IS NOT NULL ";
- }
- else if (strstate == "0")
- {
- sql += " and T4.F_Id IS NULL ";
- }
-
- }
- if (strcode.Trim() != "" && strcode != "undefined")
- {
- sql += " and T1.BAH = '" + strcode.Trim() + "' ";
- }
- if (stropename.Trim() != "" && stropename != "undefined")
- {
- sql += " and T2.SSMC like '%" + stropename.Trim() + "%' ";
- }
- if (BRXM.Trim() != "" && BRXM != "undefined")
- {
- sql += " and T1.BRXM = '" + BRXM.Trim() + "' ";
- }
- if (strdoctor.Trim() != "" && strdoctor != "undefined")
- {
- sql += " and F_TubeDoctor like '%" + strdoctor.Trim() + "%' ";
- }
- if (strtel.Trim() != "" && strtel != "undefined")
- {
- sql += " and T1.XZZDH like '%" + strtel + "%' ";
- }
- if (strstarttime!=null&&strstarttime.Trim() != "" && strstarttime != "undefined")
- {
- sql += " and datediff(day,T1.CYRQ,'" + strstarttime + "')<=0 ";
- }
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and datediff(day,T1.CYRQ,'" + strendtime + "')>=0 ";
- }
- if (strzdmc.Trim() != "" && strzdmc != "undefined")
- {
- sql += " and T3.ZZDMC = '" + strzdmc.Trim() + "' ";
- }
- if (strcosts.Trim() != "" && strcosts != "undefined")
- {
- sql += " and T1.ZFY >= '" + strzdmc.Trim() + "' ";
- }
- if (strcoste.Trim() != "" && strcoste != "undefined")
- {
- sql += " and T1.ZFY <= '" + strzdmc.Trim() + "' ";
- }
- if (strtime.Trim() != "" && strtime != "undefined")
- {
- sql += " and datediff(day,F_SFDate,'" + strtime + "')=0 ";
- }
- //if (strsfend.Trim() != "" && strsfend != "undefined")
- //{
- // sql += " and F_State = 3 ";//随访完成状态
- //}
- if (strejwwc.Trim() != "" && strejwwc != "undefined")
- {
- sql += " and F_State = 2 ";//随访完成状态
- }
- if (strsatisfy.Trim() != "" && strsatisfy != "undefined")
- {
- sql += " and F_Satisfied = '" + strsatisfy + "' ";//随访完成状态
- }
- if (strtype.Trim() != "" && strtype != "undefined")
- {
- sql += " and F_Type = '" + strtype.Trim() + "' ";
- }
- if (strpageindex.Trim() != "")
- {
- pageindex = Convert.ToInt32(strpageindex);
- }
- if (strpagesize.Trim() != "")
- {
- pagesize = Convert.ToInt32(strpagesize);
- }
- int count = 0;
- dt =busSF_BINGRENQK.GetALLListByPage(sql,"", (pageindex-1)*pagesize, pagesize*pageindex, out count);
- //dt = BLL.PagerBLL.GetListPager(
- // "T_Med_FollowUp",
- // "T_Med_FollowUp.F_Id",
- // "*",
- // sql,
- // "ORDER BY T_Med_FollowUp.F_Id desc",
- // pagesize,
- // pageindex,
- // true,
- // out recordCount);
- var obj = new
- {
- state = "success",
- message = "成功",
- rows = dt,
- total = count
- };
- return Content(obj.ToJson());
- }
- /// <summary>
- /// 根据id获取信息
- /// </summary>
- /// <returns></returns>
- public ActionResult GetListById(string id)
- {
- int idint = Convert.ToInt32(id);
- DataTable dt = new DataTable();
-
- dt = busSF_BINGRENQK.GetALLListById(" T1.BINGRENZYID="+ idint, "", 0, 1);
- var obj = new
- {
- state = "success",
- message = "成功",
- rows = dt,
- total = 1
- };
- return Content(obj.ToJson());
- }
- /// <summary>
- /// 获取随访单条结果
- /// </summary>
- /// <returns></returns>
- public ActionResult Getdetail()
- {
- DataTable dt = new DataTable();
- int F_Id =Convert.ToInt32(HttpUtility.UrlDecode(RequestString.GetQueryString("F_Id")));
- BLL.T_Med_FollowUp busfollowUp = new BLL.T_Med_FollowUp();
- Model.T_Med_FollowUp model = busfollowUp.GetModel(F_Id);
- return Content(model.ToJson());
- }
- /// <summary>
- /// 获取随访列表
- /// </summary>
- /// <returns></returns>
- public ActionResult GetListAllOld()
- {
- string sql = " and F_IsDel=0 ";
- DataTable dt = new DataTable();
- string dischargedept = HttpUtility.UrlDecode(RequestString.GetQueryString("dischargedept"));//出院科室
- string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));//状态
- string strcode = HttpUtility.UrlDecode(RequestString.GetQueryString("code"));//病案号
- string stropename = HttpUtility.UrlDecode(RequestString.GetQueryString("opename"));//手术名称
- //来电号码
- string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("phone"));//联系人电话
- string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));//姓名
- string strdoctor = HttpUtility.UrlDecode(RequestString.GetQueryString("tubedoctor"));//管床医生
- //诊断名称
- string strzdmc = HttpUtility.UrlDecode(RequestString.GetQueryString("zdmc"));//诊断名称
- //出院日期
- string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));//查询起始时间
- string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));//查询截止时间
- //总费用
- string strcosts = HttpUtility.UrlDecode(RequestString.GetQueryString("costs"));
- string strcoste = HttpUtility.UrlDecode(RequestString.GetQueryString("coste"));
- //随访日期
- string strtime = HttpUtility.UrlDecode(RequestString.GetQueryString("sftime"));
- //仅包含随访结束的
- string strsfend = HttpUtility.UrlDecode(RequestString.GetQueryString("sfend"));
- //仅二级随访未完成
- string strejwwc = HttpUtility.UrlDecode(RequestString.GetQueryString("secondlevel"));
- //满意度
- string strsatisfy = HttpUtility.UrlDecode(RequestString.GetQueryString("satisfied"));
- //类型
- string strtype = HttpUtility.UrlDecode(RequestString.GetQueryString("type"));
- string strpageindex = RequestString.GetQueryString("page");
- int pageindex = 1;
- string strpagesize = RequestString.GetQueryString("pagesize");
- int pagesize = 10;
- if (dischargedept.Trim() != "" && dischargedept != "undefined")
- {
- sql += " and F_DischargeDept like '%" + dischargedept.Trim() + "%' ";
- }
- if (strstate.Trim() != "" && strstate != "undefined")
- {
- sql += " and F_State = '" + strstate.Trim() + "' ";
- }
- if (strcode.Trim() != "" && strcode != "undefined")
- {
- sql += " and F_Code = '" + strcode.Trim() + "' ";
- }
- if (stropename.Trim() != "" && stropename != "undefined")
- {
- sql += " and F_OpeName like '%" + stropename.Trim() + "%' ";
- }
- if (strname.Trim() != "" && strname != "undefined")
- {
- sql += " and F_Name = '" + strname.Trim() + "' ";
- }
- if (strdoctor.Trim() != "" && strdoctor != "undefined")
- {
- sql += " and F_TubeDoctor like '%" + strdoctor.Trim() + "%' ";
- }
- if (strtel.Trim() != "" && strtel != "undefined")
- {
- sql += " and F_Phone like '%" + strtel + "%' ";
- }
- if (strstarttime.Trim() != "" && strstarttime != "undefined")
- {
- sql += " and datediff(day,F_OutDate,'" + strstarttime + "')<=0 ";
- }
- if (strendtime.Trim() != "" && strendtime != "undefined")
- {
- sql += " and datediff(day,F_OutDate,'" + strendtime + "')>=0 ";
- }
- if (strzdmc.Trim() != "" && strzdmc != "undefined")
- {
- sql += " and F_ZDMC = '" + strzdmc.Trim() + "' ";
- }
- if (strcosts.Trim() != "" && strcosts != "undefined")
- {
- sql += " and F_TotalCosts >= '" + strzdmc.Trim() + "' ";
- }
- if (strcoste.Trim() != "" && strcoste != "undefined")
- {
- sql += " and F_TotalCosts <= '" + strzdmc.Trim() + "' ";
- }
- if (strtime.Trim() != "" && strtime != "undefined")
- {
- sql += " and datediff(day,F_SFDate,'" + strtime + "')=0 ";
- }
- if (strsfend.Trim() != "" && strsfend != "undefined")
- {
- sql += " and F_State = 3 ";//随访完成状态
- }
- if (strejwwc.Trim() != "" && strejwwc != "undefined")
- {
- sql += " and F_State = 2 ";//随访完成状态
- }
- if (strsatisfy.Trim() != "" && strsatisfy != "undefined")
- {
- sql += " and F_Satisfied = '"+strsatisfy +"' ";//随访完成状态
- }
- if (strtype.Trim() != "" && strtype != "undefined")
- {
- sql += " and F_Type = '" + strtype.Trim() + "' ";
- }
- if (strpageindex.Trim() != "")
- {
- pageindex = Convert.ToInt32(strpageindex);
- }
- if (strpagesize.Trim() != "")
- {
- pagesize = Convert.ToInt32(strpagesize);
- }
- int recordCount = 0;
- dt = BLL.PagerBLL.GetListPager(
- "T_Med_FollowUp",
- "T_Med_FollowUp.F_Id",
- "*",
- sql,
- "ORDER BY T_Med_FollowUp.F_Id desc",
- pagesize,
- pageindex,
- true,
- out recordCount);
-
- var obj = new
- {
- state = "success",
- message = "成功",
- rows = dt,
- total = recordCount
- };
- return Content(obj.ToJson());
- }
-
- #endregion
- #region 问卷回答
- /// <summary>
- ///
- /// </summary>
- /// <param name="taskid">任务ID</param>
- /// <param name="custelid">客户电话ID</param>
- /// <param name="ans">答案,数组形式["15_20_单选选项内容","17_25|36|58_复选选项内容1|选项内容2|选项内容3","30_0_问答题"]</param>
- /// <param name="hjjgid">呼叫结果</param>
- /// <param name="telphone">电话号码</param>
- /// <param name="name">姓名</param>
- /// <param name="phone">固定号码</param>
- /// <param name="countryid">乡镇id</param>
- /// <param name="address">地址</param>
- /// <returns></returns>
- public ActionResult Answers(int? taskid, int custelid, string[] ans, int hjjgid,
- string name, string phone, string address,string advise, string satisfied,string praise,string criticism,int pagerid=0, int countryid = 0)
- {
- taskid = 0;
- int cc = 0;
- if (custelid > 0)
- {
- var otnModel = busSF_BINGRENQK.GetModel(custelid.ToString());
- if (otnModel != null)
- {
- //物业系统,客户档案信息是存储业主信息的,外呼不需要存储
- //int cusid = saveCus(otnModel.F_Phone, name, phone, countryid, address);
- int cusid = 0;
- #region 保存答案
- var ansModel = new Model.T_Call_OutAnswers();
- string askqids = "";
- string ansids = "";
- if (ans != null)
- {
- //先删除 后添加
- ansBLL.DeleteByTelid(custelid, taskid);
- ansModel.F_TaskID = taskid;
- ansModel.F_CusTelID = custelid;
- ansModel.F_CusID = cusid;
- ansModel.F_OptBy = CurrentUser.UserData.F_UserId;
- ansModel.F_OptByName = CurrentUser.UserData.F_UserName;
- ansModel.F_OptOn = DateTime.Now;
- ansModel.F_Expand1 = countryid.ToString();
- ansModel.F_Expand3 = DateTime.Now.ToString("yyyyMMddHHmmssfff");
- #region 循环保存
- foreach (var item in ans)
- {
- var nn = 0;
- var ii = item.Split('_');
- ansModel.F_QID = int.Parse(ii[0]);
- askqids += ii[0] + ",";
- ansids += ii[1] + ",";
- if (ii[1].IndexOf('|') > 0)
- {
- var iii = ii[1].Trim('|').Split('|');
- var iia = ii[2].Trim('|').Split('|');
- for (int i = 0; i < iii.Length; i++)
- {
- ansModel.F_QIID = int.Parse(iii[i]);
- ansModel.F_Answer = iia[i];
- if (ansBLL.Add(ansModel) > 0)
- nn++;
- }
- if (nn == iii.Length)
- cc++;
- }
- else
- {
- ansModel.F_QIID = int.Parse(ii[1]);
- ansModel.F_Answer = ii[2];
- if (ansBLL.Add(ansModel) > 0)
- cc++;
- }
- }
- #endregion
- }
- #endregion
- #region 保存日志
- BLL.SF_Result busResult= new BLL.SF_Result();
-
- Model.SF_Result modelResult= busResult.GetModel(custelid.ToString());
- if (modelResult != null)
- {
- busResult.Delete(modelResult.F_Id);
- modelResult.F_SFNum += 1;
- modelResult.F_Remark += "<br/>上次满意度:" + modelResult.F_MYD;
- modelResult.F_Remark += "<br/>上次建议:" + modelResult.F_Advise;
- modelResult.F_Remark += "<br/>上次回访结果" + modelResult.F_Result;
- }
- else
- {
- modelResult = new Model.SF_Result();
- modelResult.F_SFNum = 1;
- }
- var hjconfig = new BLL.T_Sys_DictionaryValue().GetModel(hjjgid);
- if (hjconfig != null)
- modelResult.F_Result = hjconfig.F_Name;
- modelResult.F_Id = custelid.ToString();
- modelResult.F_SFPersion = CurrentUser.UserData.F_UserName;
- modelResult.F_SFPersionId= CurrentUser.UserData.F_UserCode;
- modelResult.F_SFTime = DateTime.Now;
- modelResult.F_Advise = advise;
- modelResult.F_MYD = satisfied;
- modelResult.F_PagerID = pagerid.ToString();
- modelResult.F_Praise = praise;
- modelResult.F_Criticism = criticism;
- modelResult.F_State = 2;
- busResult.Add(modelResult);
- //planrecord(otnModel);
- #endregion
- }
- }
- if (ans != null)
- {
- if (cc == ans.Length)
- {
- //return Success("问卷答案提交成功!taskid=" + taskid + ",custelid=" + custelid + ",操作人:" + CurrentUser.UserData.F_UserCode);
- return Success("问卷答案提交成功!custelid=" + custelid + ",操作人:" + CurrentUser.UserData.F_UserCode);
- }
- else
- {
- ansBLL.DeleteByTelid(custelid, taskid);
- return Error("问卷答案提交失败!custelid=" + custelid + ",操作人:" + CurrentUser.UserData.F_UserCode);
- }
- }
- else
- {
- return Error("没有问卷答案提交");
- }
- }
- #endregion
- #region 导出
- #endregion
- #region 获取随访结果详情
- //获取任务结果详情
- public ActionResult GetTaskTelInfo(int id = 0)
- {
- if (id <= 0)
- return Error("参数不正确");
- var model = mfBLL.GetModel(id);
- var paperid = 0;
- if (model != null)
- {
- var taskmodel = new Model.T_Med_FollowUp();
- #region 绑定任务和客户信息
-
- taskmodel.F_Id = model.F_Id;//号码id
- //taskmodel.F_TaskId = model.F_TaskId.Value;//任务id
- //taskmodel.F_HJJGId = model.F_HJJGId != null ? model.F_HJJGId.Value : 0;//呼叫结果id
- taskmodel.F_Satisfied = model.F_Satisfied;
- taskmodel.F_SFResult = model.F_SFResult;
- if (!string.IsNullOrWhiteSpace(model.F_Name))
- taskmodel.F_Name = model.F_Name;//客户姓名
- if (!string.IsNullOrWhiteSpace(model.F_Phone))
- taskmodel.F_Phone = model.F_Phone;//号码
-
- if (!string.IsNullOrWhiteSpace(model.F_Addr))
- taskmodel.F_Addr = model.F_Addr;//住址
- #endregion
- var anslist = ansBLL.GetModelList(" F_CusTelID=" + id + " ");//ansBLL.GetModelList(" F_TaskID=" + model.F_TaskId.Value + " and F_CusTelID=" + id + " ");
- //var tmodel = otBLL.GetModel(model.F_TaskId.Value);
- //if (tmodel != null)
- //{
- paperid = model .F_PagerID;
- #region 获取问卷试题信息以及答案
- var pmodel = pagerInfoBLL.GetModel(paperid);
- var qlist = questionBLL.GetModelList(" F_DeleteFlag=0 and F_QuestionId in (select F_QuestionId from T_Ask_PagerItems where F_PagerId=" + paperid + ") order by F_QuestionId ");
- var qilist = questionItemBLL.GetModelList(" F_QuestionId in (select F_QuestionId from T_Ask_PagerItems where F_PagerId=" + paperid + ") order by F_ItemId ");
- var newmodel = new
- {
- F_Title = pmodel.F_Title,
- F_Remark = pmodel.F_Remark,
- F_StartText = pmodel.F_StartText,
- F_EndText = pmodel.F_EndText,
- F_Questions = qlist.Select(q =>
- {
- var answers = "";
- var qalist = anslist.Where(al => al.F_QID.Value == q.F_QuestionId).ToList<Model.T_Call_OutAnswers>();
- if (qalist.Count > 0)
- {
- if (q.F_Type > 1)
- {
- foreach (var item in qalist)
- {
- answers += item.F_QIID + "|";
- }
- }
- else
- {
- answers = qalist[0].F_Answer;
- }
- }
- return new
- {
- quesid = q.F_QuestionId,
- questitle = q.F_Title,
- questype = q.F_Type,
- quescontent = q.F_Content,
- quesremark = q.F_Remark,
- quesanswers = answers.Trim('|'),
- quesitems = qilist.Where(qq => qq.F_QuestionId == q.F_QuestionId).Select(qi =>
- {
- return new
- {
- itemid = qi.F_ItemId,
- itemname = qi.F_ItemName,
- itemremark = qi.F_Remark,
- };
- })
- };
- })
- };
- #endregion
- //taskmodel.F_TaskName = tmodel.F_TaskName;//任务名称
- //taskmodel.F_TaskRemark = tmodel.F_TaskRemark;//任务备注
- var objy = new
- {
- taskModel = taskmodel,
- paperModel = newmodel
- };
- return Success("获取详情成功", objy);
- //}
- }
- return Error("获取详情失败");
- }
- #endregion
- #region 科室随访率统计
- //获取数据
- public ActionResult GetSFDataList(string ks,string stime,string etime)
- {
- ActionResult res = NoToken("未知错误,请重新登录");
- DataTable dtNew = new DataTable();
- dtNew = GetData(ks, stime, etime);
- res = Success("获取科室随访率统计数据成功", dtNew);
- return res;
- }
- //获取数据源
- private DataTable GetData(string ks, string stime, string etime)
- {
- DataTable dtNew = new DataTable();
- #region 编辑表头
- /*DataColumn dc1 = new DataColumn("科室名称", Type.GetType("System.String"));
- DataColumn dc2 = new DataColumn("科室代码", Type.GetType("System.String"));
- DataColumn dc3 = new DataColumn("时间", Type.GetType("System.String"));
- DataColumn dc4 = new DataColumn("需要随访病人数", Type.GetType("System.String"));
- DataColumn dc5 = new DataColumn("随访完成人数", Type.GetType("System.String"));
- DataColumn dc6 = new DataColumn("科室随访率", Type.GetType("System.String"));
- DataColumn dc7 = new DataColumn("满意人数", Type.GetType("System.String"));
- DataColumn dc8 = new DataColumn("不满意人数", Type.GetType("System.String"));
- DataColumn dc9 = new DataColumn("随访满意率", Type.GetType("System.String"));
- dtNew.Columns.Add(dc1);
- dtNew.Columns.Add(dc2);
- dtNew.Columns.Add(dc3);
- dtNew.Columns.Add(dc4);
- dtNew.Columns.Add(dc5);
- dtNew.Columns.Add(dc6);
- #endregion
- string sql = " ";
- var list = bllCall.DataTableToList(bllCall.GetList($" 1=1 {sql} and UserCode is not null ").Tables[0]);
- int callInCount = 0, callOutCount = 0, calledCount = 0, nocalledCount = 0;
- //一天24小时
- for (int i = 0; i < 24; i++)
- {
- DateTime stimes = Convert.ToDateTime(stime + " 00:00:00").AddHours(i);
- DateTime etimes = Convert.ToDateTime(stime + " 00:59:59").AddHours(i);
- DataRow drNew = dtNew.NewRow();
- //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())
- //CallType
- //CallState呼叫状态,0:未接通电话1已接通电话
- var callInTimes = list.Where(x => x.CallType == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //呼入量
- var callOutTimes = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //呼出量
- var calledTimes = list.Where(x => x.CallState == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count(); //接通量
- var nocalledTimes = list.Where(x => x.CallState == 0 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();//未接通量
- //var calledRate = list.Where(x => x.CallType == 1 && x.BeginTime >= stimes && x.BeginTime <= etimes).Count();
- drNew["时间"] = (i + 1).ToString();
- drNew["呼入量"] = callInTimes.ToString();
- drNew["呼出量"] = callOutTimes.ToString();
- drNew["接通量"] = calledTimes.ToString();
- drNew["未接通量"] = nocalledTimes.ToString();
- //计算未结案率
- var calledTotal = calledTimes + nocalledTimes;
- Double notRate = 0.00;
- if (calledTotal > 0)
- notRate = (double)calledTimes / (double)calledTotal;
- drNew["接通率"] = (notRate * 100).ToString("0.00") + "%";
- ////统计结案,未结案数
- callInCount += callInTimes;
- callOutCount += callOutTimes;
- calledCount += calledTimes;
- nocalledCount += nocalledTimes;
- dtNew.Rows.Add(drNew);
- }
- #region 获取一条统计信息
- DataRow drzj = dtNew.NewRow();
- drzj["时间"] = "总计";
- drzj["呼入量"] = callInCount.ToString();
- drzj["呼出量"] = callOutCount.ToString();
- drzj["接通量"] = calledCount.ToString();
- drzj["未接通量"] = nocalledCount.ToString();
- //计算未结案率
- int totalAllCount = calledCount + nocalledCount;
- Double calledAllRate = 0.00;
- if (totalAllCount > 0)
- calledAllRate = (double)calledCount / (double)totalAllCount;
- drzj["接通率"] = (calledAllRate * 100).ToString("0.00") + "%";
- dtNew.Rows.Add(drzj);*/
- #endregion
- return dtNew;
- }
- #endregion
-
- }
- }
|