262 lines
14 KiB
C#
262 lines
14 KiB
C#
|
using BLL;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.Linq;
|
|||
|
|
|||
|
namespace FineUIPro.Web.HSSE.EduTrain
|
|||
|
{
|
|||
|
public partial class TestRecordPrint : PageBase
|
|||
|
{
|
|||
|
#region 定义项
|
|||
|
/// <summary>
|
|||
|
/// 主键
|
|||
|
/// </summary>
|
|||
|
public string TestRecordId
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return (string)ViewState["TestRecordId"];
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
ViewState["TestRecordId"] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 类型
|
|||
|
/// </summary>
|
|||
|
public string Type
|
|||
|
{
|
|||
|
get
|
|||
|
{
|
|||
|
return (string)ViewState["Type"];
|
|||
|
}
|
|||
|
set
|
|||
|
{
|
|||
|
ViewState["Type"] = value;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
protected void Page_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
|
|||
|
{
|
|||
|
if (!IsPostBack)
|
|||
|
{
|
|||
|
this.lbTitleName.Text = UnitService.GetUnitNameByUnitId(Const.UnitId_TCC) + ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
|
|||
|
this.lbTestType.Text = "培训试题";
|
|||
|
this.TestRecordId = Request.Params["TestRecordId"];
|
|||
|
this.Type = Request.Params["Type"];
|
|||
|
string sql = string.Empty;
|
|||
|
if (this.Type == "1")
|
|||
|
{
|
|||
|
var testRecord = ServerTestRecordService.GetTestRecordById(this.TestRecordId);
|
|||
|
if (testRecord != null)
|
|||
|
{
|
|||
|
this.lbTestType.Text = "知识竞赛" + this.lbTestType.Text;
|
|||
|
string personInfo = "单位:" + UnitService.GetUnitNameByUnitId(testRecord.UnitId) + " ";
|
|||
|
if (testRecord.ManType == "3")
|
|||
|
{
|
|||
|
personInfo += "项目:" + ProjectService.GetProjectNameByProjectId(testRecord.ProjectId) + " ";
|
|||
|
}
|
|||
|
else if (testRecord.UnitId == Const.UnitId_TCC)
|
|||
|
{
|
|||
|
personInfo += "部门:" + DepartService.getDepartNameById(testRecord.DepartId) + " ";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
personInfo += "部门:" + DepartService.getDepartNameById(testRecord.DepartId) + " ";
|
|||
|
personInfo += "项目:" + ProjectService.GetProjectNameByProjectId(testRecord.ProjectId) + " ";
|
|||
|
}
|
|||
|
personInfo += "姓名:" + testRecord.TestManName + " "
|
|||
|
+ "身份证号码:" + testRecord.IdentityCard + " ";
|
|||
|
if (testRecord.TestScores.HasValue)
|
|||
|
{
|
|||
|
personInfo += "成绩:" + testRecord.TestScores.ToString();
|
|||
|
}
|
|||
|
|
|||
|
this.lbTestPerson.Text = personInfo;
|
|||
|
var attachFile = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == this.TestRecordId);
|
|||
|
if (attachFile != null && !string.IsNullOrEmpty(attachFile.AttachUrl))
|
|||
|
{
|
|||
|
List<string> listUrl = Funs.GetStrListByStr(attachFile.AttachUrl, ',');
|
|||
|
int count = listUrl.Count();
|
|||
|
if (count > 0)
|
|||
|
{
|
|||
|
this.timg1.Src = "../../" + listUrl[0];
|
|||
|
this.timg2.Src = "../../" + listUrl[0];
|
|||
|
if (count >= 2)
|
|||
|
{
|
|||
|
int cout2 = count / 2;
|
|||
|
this.timg2.Src = "../../" + listUrl[cout2];
|
|||
|
}
|
|||
|
this.timg3.Src = "../../" + listUrl[count - 1];
|
|||
|
}
|
|||
|
}
|
|||
|
var getTestPlan = db.Test_TestPlan.FirstOrDefault(x => x.TestPlanId == testRecord.TestPlanId);
|
|||
|
if (getTestPlan != null)
|
|||
|
{
|
|||
|
int getA = 0, getB = 0, getC = 0;
|
|||
|
var getTraining = from x in db.Test_TestPlanTraining
|
|||
|
where x.TestPlanId == testRecord.TestPlanId && x.UserType == testRecord.ManType
|
|||
|
select x;
|
|||
|
if (getTraining.Count() > 0)
|
|||
|
{
|
|||
|
getA = getTraining.Sum(x => x.TestType1Count) ?? 0;
|
|||
|
getB = getTraining.Sum(x => x.TestType2Count) ?? 0;
|
|||
|
getC = getTraining.Sum(x => x.TestType3Count) ?? 0;
|
|||
|
}
|
|||
|
|
|||
|
Namea += "(每题" + getTestPlan.SValue.ToString() + "分,共" + getTestPlan.SValue * getA + "分)";
|
|||
|
Nameb += "(每题" + getTestPlan.MValue.ToString() + "分,共" + getTestPlan.MValue * getB + "分)";
|
|||
|
Namec += "(每题" + getTestPlan.JValue.ToString() + "分,共" + getTestPlan.JValue * getC + "分)";
|
|||
|
}
|
|||
|
}
|
|||
|
sql = @"SELECT TestRecordItemId,TestRecordId,replace(replace(replace(replace(Abstracts,' ',''),'(','('),')',')'),'()',('('+ISNULL(Replace(Replace(Replace(Replace(Replace(SelectedItem,'1','A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E'),'')+')')) AS Abstracts,AttachUrl
|
|||
|
,('A. '+AItem) AS AItem,('B. '+BItem) AS BItem,(CASE WHEN CItem IS NULL OR CItem='' THEN '' ELSE ('C. '+CItem) END) AS CItem
|
|||
|
,(CASE WHEN DItem IS NULL OR DItem='' THEN NULL ELSE 'D. '+DItem END) AS DItem,(CASE WHEN EItem IS NULL OR EItem='' THEN NULL ELSE 'E. '+EItem END) AS EItem
|
|||
|
,('('+ISNULL(Replace(Replace(Replace(Replace(Replace(SelectedItem,'1','A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E'),'')+')') AS SelectedItem
|
|||
|
,TestType,TrainingItemCode
|
|||
|
FROM Test_TestRecordItem WHERE TestRecordId= '" + this.TestRecordId + "'";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
var testRecord = TestRecordService.GetTestRecordById(this.TestRecordId);
|
|||
|
if (testRecord != null)
|
|||
|
{
|
|||
|
var getTrainTypeName = (from x in db.Training_TestRecord
|
|||
|
join y in db.Training_TestPlan on x.TestPlanId equals y.TestPlanId
|
|||
|
join z in db.Training_Plan on y.PlanId equals z.PlanId
|
|||
|
join t in db.Base_TrainType on z.TrainTypeId equals t.TrainTypeId
|
|||
|
where x.TestRecordId == this.TestRecordId
|
|||
|
select t.TrainTypeName).FirstOrDefault();
|
|||
|
if (getTrainTypeName != null)
|
|||
|
{
|
|||
|
this.lbTestType.Text = getTrainTypeName + this.lbTestType.Text;
|
|||
|
}
|
|||
|
string personInfo = string.Empty;
|
|||
|
var testMan = PersonService.GetPersonByUserId(testRecord.TestManId, testRecord.ProjectId);
|
|||
|
if (testMan != null)
|
|||
|
{
|
|||
|
personInfo = "单位:" + UnitService.GetUnitNameByUnitId(testMan.UnitId) + " " +
|
|||
|
"姓名:" + testMan.PersonName + " " +
|
|||
|
"身份证号码:" + testMan.IdentityCard + " " +
|
|||
|
"岗位:" + WorkPostService.getWorkPostNamesWorkPostIds(testMan.WorkPostId) + " ";
|
|||
|
}
|
|||
|
//this.Namea += "时间:" + string.Format("{0:yyyy-MM-dd HH:mm}", testRecord.TestStartTime) + " 至 "+ string.Format("{0:yyyy-MM-dd HH:mm}", testRecord.TestEndTime)+" ";
|
|||
|
if (testRecord.TestScores.HasValue)
|
|||
|
{
|
|||
|
personInfo += "成绩:" + testRecord.TestScores.ToString();
|
|||
|
}
|
|||
|
|
|||
|
this.lbTestPerson.Text = personInfo;
|
|||
|
var attachFile = db.AttachFile.FirstOrDefault(x => x.ToKeyId == this.TestRecordId);
|
|||
|
if (attachFile != null && !string.IsNullOrEmpty(attachFile.AttachUrl))
|
|||
|
{
|
|||
|
List<string> listUrl = Funs.GetStrListByStr(attachFile.AttachUrl, ',');
|
|||
|
int count = listUrl.Count();
|
|||
|
if (count > 0)
|
|||
|
{
|
|||
|
this.timg1.Src = "../../" + listUrl[0];
|
|||
|
this.timg2.Src = "../../" + listUrl[0];
|
|||
|
if (count >= 2)
|
|||
|
{
|
|||
|
int cout2 = count / 2;
|
|||
|
this.timg2.Src = "../../" + listUrl[cout2];
|
|||
|
}
|
|||
|
this.timg3.Src = "../../" + listUrl[count - 1];
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
var getTestPlan = db.Training_TestPlan.FirstOrDefault(x => x.TestPlanId == testRecord.TestPlanId);
|
|||
|
if (getTestPlan != null)
|
|||
|
{
|
|||
|
int getA = 0, getB = 0, getC = 0;
|
|||
|
var getTraining = from x in db.Training_TestPlanTraining
|
|||
|
where x.TestPlanId == getTestPlan.TestPlanId
|
|||
|
select x;
|
|||
|
if (getTraining.Count() > 0)
|
|||
|
{
|
|||
|
getA = getTraining.Sum(x => x.TestType1Count) ?? 0;
|
|||
|
getB = getTraining.Sum(x => x.TestType2Count) ?? 0;
|
|||
|
getC = getTraining.Sum(x => x.TestType3Count) ?? 0;
|
|||
|
}
|
|||
|
|
|||
|
Namea += "(每题" + getTestPlan.SValue.ToString() + "分,共" + getTestPlan.SValue * getA + "分)";
|
|||
|
Nameb += "(每题" + getTestPlan.MValue.ToString() + "分,共" + getTestPlan.MValue * getB + "分)";
|
|||
|
Namec += "(每题" + getTestPlan.JValue.ToString() + "分,共" + getTestPlan.JValue * getC + "分)";
|
|||
|
}
|
|||
|
}
|
|||
|
sql = @"SELECT TestRecordItemId,TestRecordId,TrainingItemName,replace(replace(replace(replace(Abstracts,' ',''),'(','('),')',')'),'()',('('+ISNULL(Replace(Replace(Replace(Replace(Replace(SelectedItem,'1','A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E'),'')+')')) AS Abstracts,AttachUrl
|
|||
|
,('A. '+AItem) AS AItem,('B. '+BItem) AS BItem,(CASE WHEN CItem IS NULL OR CItem='' THEN '' ELSE ('C. '+CItem) END) AS CItem
|
|||
|
,(CASE WHEN DItem IS NULL OR DItem='' THEN NULL ELSE 'D. '+DItem END) AS DItem,(CASE WHEN EItem IS NULL OR EItem='' THEN NULL ELSE 'E. '+EItem END) AS EItem
|
|||
|
,('('+ISNULL(Replace(Replace(Replace(Replace(Replace(SelectedItem,'1','A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E'),'')+')') AS SelectedItem
|
|||
|
,TestType,TrainingItemCode
|
|||
|
FROM Training_TestRecordItem WHERE TestRecordId= '" + this.TestRecordId + "'";
|
|||
|
}
|
|||
|
this.BindGrid(sql);
|
|||
|
this.BindGrid2(sql);
|
|||
|
this.BindGrid3(sql);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
protected string Namea = "一、单项选择题 ";
|
|||
|
protected string Nameb = "二、多项选择题 ";
|
|||
|
protected string Namec = "三、判断题 ";
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 绑定数据
|
|||
|
/// </summary>
|
|||
|
private void BindGrid(string sql)
|
|||
|
{
|
|||
|
gvTest.DataSource = SQLHelper.GetDataTableRunText(sql + " AND TestType= '1' ORDER BY TrainingItemCode", null);
|
|||
|
gvTest.DataBind();
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 绑定数据
|
|||
|
/// </summary>
|
|||
|
private void BindGrid2(string sql)
|
|||
|
{
|
|||
|
gvTest2.DataSource = SQLHelper.GetDataTableRunText(sql + " AND TestType= '2' ORDER BY TrainingItemCode", null); ;
|
|||
|
gvTest2.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 绑定数据
|
|||
|
/// </summary>
|
|||
|
private void BindGrid3(string sql)
|
|||
|
{
|
|||
|
gvTest3.DataSource = SQLHelper.GetDataTableRunText(sql + " AND TestType= '3' ORDER BY TrainingItemCode", null); ; ;
|
|||
|
gvTest3.DataBind();
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 在控件被绑定后激发
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void gvTest_DataBound(object sender, EventArgs e)
|
|||
|
{
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 在控件被绑定后激发
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void gvTest2_DataBound(object sender, EventArgs e)
|
|||
|
{
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 在控件被绑定后激发
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void gvTest3_DataBound(object sender, EventArgs e)
|
|||
|
{
|
|||
|
}
|
|||
|
}
|
|||
|
}
|