/// <summary> /// 根据ID,获取整个评分表的JSON格式数据 /// </summary> /// <param name="rtid"></param> /// <returns></returns> private string GetJsonStrByRtid(int rtid) { int totalCount = 0; Entities.QS_RulesTable QsObject = BLL.QS_RulesTable.Instance.GetQS_RulesTable(rtid); Entities.QueryQS_Category queryC = new Entities.QueryQS_Category(); queryC.QS_RTID = rtid; DataTable DtCategory = BLL.QS_Category.Instance.GetQS_Category(queryC, "", 1, 999999, out totalCount); Entities.QueryQS_Item queryI = new Entities.QueryQS_Item(); queryI.QS_RTID = rtid; DataTable DtItem = BLL.QS_Item.Instance.GetQS_Item(queryI, "", 1, 999999, out totalCount); Entities.QueryQS_Standard queryS = new Entities.QueryQS_Standard(); queryS.QS_RTID = rtid; DataTable DtStandard = BLL.QS_Standard.Instance.GetQS_Standard(queryS, "", 1, 999999, out totalCount); Entities.QueryQS_Marking queryM = new Entities.QueryQS_Marking(); queryM.QS_RTID = rtid; DataTable DtMarking = BLL.QS_Marking.Instance.GetQS_Marking(queryM, "", 1, 999999, out totalCount); Entities.QueryQS_DeadOrAppraisal queryD = new Entities.QueryQS_DeadOrAppraisal(); queryD.QS_RTID = rtid; DataTable DtDead = BLL.QS_DeadOrAppraisal.Instance.GetQS_DeadOrAppraisal(queryD, "", 1, 999999, out totalCount); string jsonStr = GetJsonStrByDataTable(QsObject, DtCategory, DtItem, DtStandard, DtMarking, DtDead); return(jsonStr); }
//评分型导出 private string ExportByRatingType(int qs_rtid) { StringBuilder returnStr = new StringBuilder(); returnStr.Append("<table borderColor=#000000 height=40 cellPadding=1 align=center border=1>"); DataTable dtCategory = BLL.QS_Category.Instance.GetQS_CategoryNameAndItemNum(qs_rtid); #region 表头 returnStr.Append("<tr>"); string rowspan = ""; if (dtCategory != null && dtCategory.Rows.Count > 0) { rowspan = " rowspan='2' "; } returnStr.Append("<td " + rowspan + " >序号</td>"); returnStr.Append("<td " + rowspan + " >对话时间</td>"); returnStr.Append("<td " + rowspan + " >评分时间</td>"); returnStr.Append("<td " + rowspan + " >员工姓名</td>"); returnStr.Append("<td " + rowspan + " >对话ID</td>"); returnStr.Append("<td " + rowspan + " >消息次数</td>"); returnStr.Append("<td " + rowspan + " >所属分组</td>"); //returnStr.Append("<td " + rowspan + " >分类</td>"); returnStr.Append("<td " + rowspan + " >工单ID</td>"); returnStr.Append("<td " + rowspan + " >任务状态</td>"); #region 评分分类名称 if (dtCategory != null) { foreach (DataRow dr in dtCategory.Rows) { returnStr.Append("<td colspan=" + dr["ItemNum"] + " style='text-align:center'>" + dr["Name"] + "</td>"); } } #endregion returnStr.Append("<td " + rowspan + " >致命项数</td>"); returnStr.Append("<td " + rowspan + " >总分</td>"); returnStr.Append("<td " + rowspan + " >质检点评</td>"); returnStr.Append("</tr>"); #endregion #region 评分项 Entities.QueryQS_Item itemQuery = new Entities.QueryQS_Item(); itemQuery.QS_RTID = qs_rtid; int itemTotalCount = 0; DataTable dtItem = BLL.QS_Item.Instance.GetQS_Item(itemQuery, "QS_IID ASC", 1, -1, out itemTotalCount); if (itemTotalCount > 0) { returnStr.Append("<tr>"); foreach (DataRow dr in dtItem.Rows) { returnStr.Append("<td>" + dr["ItemName"] + "</td>"); } returnStr.Append("</tr>"); } #endregion #region 输出统计结果 DataTable dtDetails = GetResultDetail(qs_rtid); DataTable dtResult = GetResult(); for (int j = 0; j < dtResult.Rows.Count; j++) { returnStr.Append("<tr>"); DataRow dr = dtResult.Rows[j]; //序号 returnStr.Append("<td>" + (j + 1) + "</td>"); DateTime dt; //对话时间 if (DateTime.TryParse(dr["BeginTime"].ToString(), out dt)) { returnStr.Append("<td style='vnd.ms-excel.numberformat:@'>" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "</td>"); } else { returnStr.Append("<td></td>"); } //评分时间 if (DateTime.TryParse(dr["Result_CreateTime"].ToString(), out dt)) { returnStr.Append("<td style='vnd.ms-excel.numberformat:@'>" + dt.ToString("yyyy-MM-dd HH:mm:ss") + "</td>"); } else { returnStr.Append("<td></td>"); } //坐席 returnStr.Append("<td>" + dr["AgentUserName"] + "</td>"); //会话id returnStr.Append("<td style='vnd.ms-excel.numberformat:@'>" + dr["CSID"] + "</td>"); //消息次数 returnStr.Append("<td>" + dr["Count"].ToString() + "</td>"); //所属分组 returnStr.Append("<td>" + dr["BGName"] + "</td>"); //工单ID returnStr.Append("<td>" + dr["OrderID"] + "</td>"); //任务状态 string statusname = BLL.Util.GetEnumOptText(typeof(QSResultStatus), CommonFunction.ObjectToInteger(dr["Result_Status"])); returnStr.Append("<td>" + statusname + "</td>"); //成绩明细 string qsrid = dr["QS_RID"].ToString(); decimal totalScore = 100; if (scoretype == "3") { totalScore = 0; } int deadNum = 0; for (int k = 0; k < dtItem.Rows.Count; k++) { string qsiid = dtItem.Rows[k]["QS_IID"].ToString(); if (qsrid != "" && qsiid != "") { DataRow[] resultItem = dtDetails.Select(" QS_RID=" + qsrid + " and QS_IID=" + qsiid); if (resultItem.Length > 0) { decimal enscore = 0; if (scoretype == "3") { for (int p = 0; p < resultItem.Length; p++) { if (resultItem[p]["Score"] != null && resultItem[p]["Score"].ToString() != string.Empty) { //单项扣的分数和 enscore += decimal.Parse(resultItem[p]["Score"].ToString()); } } } else { for (int p = 0; p < resultItem.Length; p++) { if (resultItem[p]["enscore"] != null && resultItem[p]["enscore"].ToString() != string.Empty) { //单项扣的分数和 enscore += decimal.Parse(resultItem[p]["enscore"].ToString()); } } //比较这个总和是否大于整个选项的分值,如果扣分大于选项最大值,则取最大选项值 decimal itemMaxScore = decimal.Parse(dtItem.Rows[k]["Score"].ToString()); if (System.Math.Abs(enscore) > itemMaxScore) { enscore = itemMaxScore * -1; } } returnStr.Append("<td>" + enscore + "</td>"); totalScore += enscore; } else { //没有值则单项为空 returnStr.Append("<td></td>"); //判断是不是有致命项 DataRow[] resultItem1 = dtDetails.Select(" QS_RID=" + qsrid + " and QS_IID=-2"); if (resultItem1.Length > 0) { if (resultItem1[0]["deadNum"] != null && resultItem1[0]["deadNum"].ToString() != string.Empty) { deadNum = int.Parse(resultItem1[0]["deadNum"].ToString()); } } } } else { returnStr.Append("<td></td>"); } } //是否有致命项 if (statusname != "待评分") { returnStr.Append("<td>" + deadNum + "</td>"); } else { returnStr.Append("<td></td>"); } if (deadNum == 1) { //有致命项,分数直接为0 returnStr.Append("<td>0</td>"); } else { //否则分数为统计分数 if (statusname != "待评分") { returnStr.Append("<td>" + totalScore + "</td>"); } else { returnStr.Append("<td></td>"); } } //质检评价 returnStr.Append("<td>" + dr["QualityAppraisal"] + "</td>"); returnStr.Append("</tr>"); } #endregion returnStr.Append("</table>"); return(returnStr.ToString()); }