473 lines
18 KiB
C#
473 lines
18 KiB
C#
using ICSharpCode.SharpZipLib.Zip;
|
||
using NPOI.SS.Formula.Functions;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Configuration;
|
||
using System.Data;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using Telerik.Web.UI;
|
||
using Telerik.Web.UI.Widgets;
|
||
using VRS.Handler;
|
||
|
||
namespace VRS.Management.Exam
|
||
{
|
||
public partial class ResultQueryMatch : BaseListPage
|
||
{
|
||
DataService.BLL.pro_result bll = new DataService.BLL.pro_result();
|
||
DataService.BLL.pro_result_detail bll_result_detail = new DataService.BLL.pro_result_detail();
|
||
DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user();
|
||
DataService.BLL.pro_file bll_file = new DataService.BLL.pro_file();
|
||
|
||
DataService.BLL.exam_result_match bll_exam_result_match = new DataService.BLL.exam_result_match();
|
||
DataService.BLL.exam_result_match_detail bll_exam_result_match_detail = new DataService.BLL.exam_result_match_detail();
|
||
|
||
DataService.BLL.exam_config_cache bll_cache = new DataService.BLL.exam_config_cache();
|
||
DataService.BLL.set_data_acquisition bll_data_acquisition = new DataService.BLL.set_data_acquisition();
|
||
|
||
protected override void Page_Load(object sender, EventArgs e)
|
||
{
|
||
base.Page_Load(sender, e);
|
||
if (!IsPostBack)
|
||
{
|
||
|
||
var systemName = ConfigurationManager.AppSettings["SystemName"];
|
||
hid_sys.Value = systemName;
|
||
if (systemName == "00")
|
||
{
|
||
btn_answer.Visible = false;
|
||
}
|
||
|
||
|
||
start.SelectedDate = DateTime.Today.AddDays(-365);
|
||
end.SelectedDate = DateTime.Today;
|
||
|
||
//BindResultSubject(dp_subject_name, "");
|
||
BindExamSubject(dp_subject_name, "");
|
||
//BindKsMode(dp_mode, "");
|
||
|
||
var user = DataService.BLL.admin_user.load_login();
|
||
var userModel = bll_user.GetModel(user.user_id);
|
||
if (bll_user.IsAdministrator(userModel))
|
||
{
|
||
BindSchool(dp_school, "");
|
||
}
|
||
else//老师、学校管理员
|
||
{
|
||
BindSchool(dp_school, "");
|
||
dp_school.SelectedValue = userModel.school_id;
|
||
dp_school.Enabled = false;
|
||
|
||
var school_id = userModel.school_id;
|
||
BindSchoolGrade(school_id, cbx_schoolgrade, "");
|
||
}
|
||
DataLoad();
|
||
}
|
||
}
|
||
|
||
protected void ddp_province_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e)
|
||
{
|
||
BindCity(ddp_city, ddp_province.SelectedValue, "");
|
||
ddp_unit.SelectedIndex = 0;
|
||
ddp_unit.Items.Clear();
|
||
DataLoad();
|
||
}
|
||
|
||
protected void ddp_city_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e)
|
||
{
|
||
BindUnit(ddp_unit, ddp_city.SelectedValue, "");
|
||
DataLoad();
|
||
}
|
||
|
||
public DataTable getDataSet()
|
||
{
|
||
var start_date = start.SelectedDate.HasValue ? start.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
var end_date = end.SelectedDate.HasValue ? end.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
if (!string.IsNullOrEmpty(end_date))
|
||
{
|
||
end_date = DateTime.Parse(end_date).AddDays(1).ToString("yyyy-MM-dd");
|
||
}
|
||
|
||
// 身份证号、姓名、部门、性别、科目、船型、时间联合筛选 (3列)
|
||
var query = new StringBuilder(" 1 = 1 and T2.is_lock = 0 "); //不排除故障现象考试
|
||
var user = DataService.BLL.admin_user.load_login();
|
||
var userModel = bll_user.GetModel(user.user_id);
|
||
if (bll_user.IsAdministrator(userModel))
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(dp_school.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND T2.school_id = '{0}' ", dp_school.SelectedValue);
|
||
}
|
||
}
|
||
else //老师、学校管理员只能看到自己的学校的 $$
|
||
{
|
||
query.AppendFormat(" AND T2.school_id = '{0}' ", userModel.school_id);
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(cbx_schoolgrade.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND T2.grade = '{0}' ", cbx_schoolgrade.SelectedValue);
|
||
}
|
||
|
||
//开始时间、结束时间
|
||
if (!string.IsNullOrWhiteSpace(start_date))
|
||
{
|
||
query.AppendFormat(" AND T1.create_time >= '{0}' ", start_date);
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(end_date))
|
||
{
|
||
query.AppendFormat(" AND T1.create_time < '{0}' ", end_date);
|
||
}
|
||
|
||
|
||
|
||
//姓名、登录账号
|
||
if (!string.IsNullOrWhiteSpace(user_name.Text.Trim()))
|
||
{
|
||
query.AppendFormat(" AND (T2.login_name LIKE '%{0}%' or T2.real_name LIKE '%{0}%' )", user_name.Text.Trim());
|
||
}
|
||
|
||
|
||
//科目
|
||
if (!string.IsNullOrWhiteSpace(dp_subject_name.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND T1.subject = '{0}' ", dp_subject_name.SelectedValue);
|
||
}
|
||
|
||
/*
|
||
//模式
|
||
if (!string.IsNullOrWhiteSpace(dp_mode.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND T1.sjms = '{0}' ", dp_mode.SelectedValue);
|
||
}
|
||
*/
|
||
|
||
var where = query.ToString();
|
||
var order = " order by T1.create_time desc";
|
||
var dataSet = bll_exam_result_match.QueryResult(where, order).Tables[0];
|
||
|
||
return dataSet;
|
||
|
||
#region 旧的查询条件
|
||
/*
|
||
|
||
if (!string.IsNullOrWhiteSpace(dpsjms.SelectedValue))
|
||
{
|
||
query.AppendFormat(" AND sjms = '{0}' ", dpsjms.SelectedValue);
|
||
}
|
||
*/
|
||
#endregion
|
||
|
||
/*
|
||
var data = bll.GetModelList(query.ToString());
|
||
|
||
|
||
for (int i = 0; i < data.Count; i++)
|
||
{
|
||
var model = data[i];
|
||
|
||
|
||
var result_user = bll_user.GetModel(model.user_id);
|
||
if (null != result_user)
|
||
{
|
||
//model.province = result_user.province;
|
||
//model.city = result_user.city;
|
||
//model.unit_name = result_user.unit_name;
|
||
}
|
||
|
||
}
|
||
*/
|
||
|
||
// return data.OrderByDescending(s => s.examine_time).ToList(); ;
|
||
}
|
||
|
||
protected override void DataLoad()
|
||
{
|
||
/*
|
||
var start_date = start.SelectedDate.HasValue ? start.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
var end_date = end.SelectedDate.HasValue ? end.SelectedDate.Value.ToString("yyyy-MM-dd") : "";
|
||
var examine_type = 1;
|
||
var data = bll.GetListDetailByName(user_name.Text, subject_name.Text, start_date, end_date, examine_type);
|
||
*/
|
||
var data = getDataSet();
|
||
dataList.DataSource = data;
|
||
dataList.Rebind();
|
||
}
|
||
|
||
protected override void GridList_PageIndexChanged(object sender, GridPageChangedEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GridList_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GridList_SortCommand(object sender, GridSortCommandEventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void GrdList_DeleteCommand(object sender, GridCommandEventArgs e)
|
||
{
|
||
string Id = (e.Item as GridDataItem).OwnerTableView.DataKeyValues[e.Item.ItemIndex]["Id"].ToString();
|
||
bll.Delete(Id);
|
||
DataLoad();
|
||
}
|
||
|
||
protected override void AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e)
|
||
{
|
||
|
||
}
|
||
|
||
protected void btnSelect_Click(object sender, EventArgs e)
|
||
{
|
||
DataLoad();
|
||
}
|
||
|
||
protected void btnDelete_Click(object sender, EventArgs e)
|
||
{
|
||
var model = bll_exam_result_match.GetModel(IdInput.Value);
|
||
if (bll_exam_result_match.Delete(IdInput.Value))
|
||
{
|
||
if (model.subject == "智能制造工厂")
|
||
{
|
||
var cache_list = bll_cache.GetModelList("user_id='" + model.user_id + "'");
|
||
foreach (var item in cache_list)
|
||
{
|
||
bll_cache.Delete(item.id);
|
||
}
|
||
|
||
var data_list = bll_data_acquisition.GetModelList("user_id='" + model.user_id + "'");
|
||
foreach (var item in data_list)
|
||
{
|
||
bll_data_acquisition.Delete(item.id);
|
||
}
|
||
}
|
||
|
||
bll_exam_result_match_detail.DeleteByResultId(model.id);
|
||
}
|
||
DataLoad();
|
||
}
|
||
|
||
public void getvalue()
|
||
{
|
||
|
||
}
|
||
|
||
protected void btnBatchDel_Click(object sender, EventArgs e)
|
||
{
|
||
var count = dataList.SelectedItems.Count;
|
||
if (count <= 0)
|
||
{
|
||
RadAjaxManager1.Alert("请选择需要删除的记录!");
|
||
return;
|
||
}
|
||
|
||
List<string> list_result = new List<string>();
|
||
foreach (var obj in dataList.SelectedItems)
|
||
{
|
||
GridDataItem item = obj as GridDataItem;
|
||
var result_id = item.GetDataKeyValue("id").ToString();
|
||
var model = bll_exam_result_match.GetModel(result_id);
|
||
if (null != model)
|
||
{
|
||
list_result.Add(model.id);
|
||
}
|
||
}
|
||
var flag = false;
|
||
//批量删除
|
||
if (list_result.Count > 0)
|
||
{
|
||
for (int i = 0; i < list_result.Count; i++)
|
||
{
|
||
var id = list_result[i];
|
||
if (bll_exam_result_match.Delete(id))
|
||
{
|
||
flag = true;
|
||
var model = bll_exam_result_match.GetModel(id);
|
||
if (null != model && model.subject == "智能制造工厂")
|
||
{
|
||
var cache_list = bll_cache.GetModelList("user_id='" + model.user_id + "'");
|
||
foreach (var item in cache_list)
|
||
{
|
||
bll_cache.Delete(item.id);
|
||
}
|
||
|
||
|
||
var data_list = bll_data_acquisition.GetModelList("user_id='" + model.user_id + "'");
|
||
foreach (var item in data_list)
|
||
{
|
||
bll_data_acquisition.Delete(item.id);
|
||
}
|
||
}
|
||
|
||
|
||
bll_exam_result_match_detail.DeleteByResultId(id);
|
||
}
|
||
}
|
||
}
|
||
|
||
if (flag)
|
||
{
|
||
DataLoad();
|
||
}
|
||
}
|
||
|
||
protected void dp_school_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e)
|
||
{
|
||
var value = dp_school.SelectedValue;
|
||
BindSchoolGrade(value, cbx_schoolgrade, "");
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 导出excel
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnExport_Click(object sender, EventArgs e)
|
||
{
|
||
var data = getDataSet();
|
||
string filePath = Server.MapPath("~/Download/");
|
||
if (!Directory.Exists(filePath))
|
||
{
|
||
Directory.CreateDirectory(filePath);
|
||
}
|
||
string fileName = string.Format("{0}.xls", "竞赛成绩列表_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
|
||
filePath = filePath + fileName;
|
||
|
||
//学校 班级 姓名 账号 科目名称 实践模式 总分 得分 考试时间
|
||
var table = new DataTable();
|
||
|
||
table.Columns.Add("学校");
|
||
table.Columns.Add("班级");
|
||
table.Columns.Add("姓名");
|
||
table.Columns.Add("账号");
|
||
|
||
//table.Columns.Add("科目名称");
|
||
//table.Columns.Add("实践模式");
|
||
table.Columns.Add("三维得分");
|
||
table.Columns.Add("图片、配置得分");
|
||
table.Columns.Add("总得分");
|
||
table.Columns.Add("考试时间");
|
||
//SELECT T1.id,T1.user_id,T1.subject,T1.sjms ,T1.total,T1.score,T1.create_time ,T2.login_name,T2.real_name,T2.school_id,T2.grade,T3.school FROM
|
||
//var dic = DicKsMode();
|
||
for (int i = 0; i < data.Rows.Count; i++)
|
||
{
|
||
var row = table.NewRow();
|
||
var r = data.Rows[i];
|
||
row["学校"] = r["school"].ToString();
|
||
row["班级"] = r["grade"].ToString();
|
||
row["姓名"] = r["real_name"].ToString();
|
||
row["账号"] = r["login_name"].ToString();
|
||
|
||
//row["科目名称"] = r["subject"].ToString();
|
||
|
||
//DicKsMode().ContainsKey(Eval("sjms").ToString()) ? DicKsMode()[Eval("sjms").ToString()] : ""
|
||
//var sjms = r["sjms"].ToString();
|
||
|
||
|
||
//row["实践模式"] = dic.ContainsKey(sjms) ? dic[sjms] : "";
|
||
|
||
row["三维得分"] = r["score"].ToString();
|
||
row["图片、配置得分"] = r["pic_score"].ToString();
|
||
row["总得分"] = r["sum_score"].ToString();
|
||
row["考试时间"] = Convert.ToDateTime(r["create_time"]).ToString("yyyy-MM-dd HH:mm:ss");
|
||
table.Rows.Add(row);
|
||
}
|
||
|
||
VRS.Util.Import.DateTableToExcel(table, filePath);
|
||
FileInfo fileInfo = new FileInfo(filePath);
|
||
Response.Clear();
|
||
Response.ClearContent();
|
||
Response.ClearHeaders();
|
||
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);
|
||
Response.AddHeader("Content-Length", fileInfo.Length.ToString());
|
||
Response.AddHeader("Content-Transfer-Encoding", "binary");
|
||
Response.ContentType = "application/octet-stream";
|
||
Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
|
||
Response.WriteFile(fileInfo.FullName);
|
||
Response.Flush();
|
||
Response.End();
|
||
}
|
||
|
||
|
||
protected void btnExport_Import_Click(object sender, EventArgs e)
|
||
{
|
||
//根据所选文件打包下载
|
||
MemoryStream ms = new MemoryStream();
|
||
byte[] buffer = null;
|
||
|
||
using (ZipFile file = ZipFile.Create(ms))
|
||
{
|
||
var data = getDataSet();
|
||
|
||
file.BeginUpdate();
|
||
//file.NameTransform = new MyNameTransfom();//通过这个名称格式化器,可以将里面的文件名进行一些处理。默认情况下,会自动根据文件的路径在zip中创建有关的文件夹。
|
||
|
||
for (int i = 0; i < data.Rows.Count; i++)
|
||
{
|
||
var r = data.Rows[i];
|
||
var path = r["pic_url"].ToString();
|
||
if (!string.IsNullOrEmpty(path))
|
||
{
|
||
|
||
var filePath = Server.MapPath(r["pic_url"].ToString());
|
||
if (File.Exists(filePath))
|
||
{
|
||
FileInfo fi1 = new FileInfo(filePath);
|
||
var filePath2 = Server.MapPath("~/Copy/" + data.Rows[i]["login_name"].ToString() + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png");
|
||
FileInfo fi2 = new FileInfo(filePath2);
|
||
//Ensure that the target file does not exist.
|
||
if (File.Exists(filePath2))
|
||
{
|
||
fi2.Delete();
|
||
}
|
||
fi1.CopyTo(filePath2);
|
||
file.Add(filePath2);
|
||
}
|
||
}
|
||
}
|
||
//var filePath = Server.MapPath("/Upload/file_202309181654404833044606181182035.png");
|
||
//file.Add(Server.MapPath("/Upload/file_202309181654404833044606181182035.png"));
|
||
//var filePath2 = Server.MapPath("/Copy/" + data.Rows[0]["login_name"].ToString() + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".png");
|
||
|
||
//FileInfo fi1 = new FileInfo(filePath);
|
||
//FileInfo fi2 = new FileInfo(filePath2);
|
||
//Ensure that the target file does not exist.
|
||
//if (File.Exists(filePath2))
|
||
//{
|
||
// fi2.Delete();
|
||
//}
|
||
//fi1.CopyTo(filePath2);
|
||
////var filePath = Server.MapPath(data.Rows[0]["pic_url"].ToString());
|
||
//file.Add(filePath2);
|
||
try
|
||
{
|
||
file.CommitUpdate();
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
throw new Exception(ex.Message);
|
||
}
|
||
|
||
|
||
buffer = new byte[ms.Length];
|
||
ms.Position = 0;
|
||
ms.Read(buffer, 0, buffer.Length);
|
||
}
|
||
|
||
|
||
Response.AddHeader("content-disposition", "attachment;filename=" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".zip");
|
||
Response.BinaryWrite(buffer);
|
||
Response.Flush();
|
||
Response.End();
|
||
}
|
||
}
|
||
} |