gyhlw_dotnet/网站项目/VRS/Management/VSAT/ResultQuery.aspx.cs

400 lines
14 KiB
C#

using System;
using System.Collections.Generic;
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;
namespace VRS.Management.VSAT
{
public partial class ResultQuery : 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();
protected override void Page_Load(object sender, EventArgs e)
{
base.Page_Load(sender, e);
if (!IsPostBack)
{
/*
var user = DataService.BLL.admin_user.load_login();
var userModel = bll_user.GetModel(user.user_id);
if (!bll_user.IsAdministrator(userModel))
{
HttpContext.Current.Response.Cookies["admin_user_token"].Expires = DateTime.Now.AddMinutes(-1);
Response.Redirect("~/Login.aspx");
}
*/
start.SelectedDate = DateTime.Today.AddDays(-365);
end.SelectedDate = DateTime.Today;
//BindMajors(dpMajor, "");
//BindGrade(grade, "");
//BindExamBatch(dpbatch, "");
BindResultSubject(dp_subject_name, "");
//BindDepartNames(cbxDepName, "");
BindBoatType(dp_sign_boat, "");
var user = DataService.BLL.admin_user.load_login();
var userModel = bll_user.GetModel(user.user_id);
if (bll_user.IsAdministrator(userModel))
{
tr_city.Visible = true;
BindProvince(ddp_province, "");
}
else
{
tr_city.Visible = false;
}
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 List<DataService.Model.pro_result> 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");
}
//var query = new StringBuilder(" 1 = 1 and subject_id!='00003' "); //排除故障现象考试
// 身份证号、姓名、部门、性别、科目、船型、时间联合筛选 (3列)
var query = new StringBuilder(" 1 = 1 "); //不排除故障现象考试
var user = DataService.BLL.admin_user.load_login();
var userModel = bll_user.GetModel(user.user_id);
if (bll_user.IsAdministrator(userModel))
{
if (!string.IsNullOrWhiteSpace(ddp_province.SelectedValue))
{
query.AppendFormat(" AND province_id = '{0}' ", ddp_province.SelectedValue);
}
if (!string.IsNullOrWhiteSpace(ddp_city.SelectedValue))
{
query.AppendFormat(" AND city_id = '{0}' ", ddp_city.SelectedValue);
}
if (!string.IsNullOrWhiteSpace(ddp_unit.SelectedValue))
{
query.AppendFormat(" AND unit_id = '{0}' ", ddp_unit.SelectedValue);
}
}
else //老师只能看到自己的单位的 $$
{
//query.AppendFormat(" AND unit_id = '{0}' ", userModel.unit_id);
}
//开始时间、结束时间
if (!string.IsNullOrWhiteSpace(start_date))
{
query.AppendFormat(" AND examine_time >= '{0}' ", start_date);
}
if (!string.IsNullOrWhiteSpace(end_date))
{
query.AppendFormat(" AND examine_time < '{0}' ", end_date);
}
/*
//身份证号
if (!string.IsNullOrWhiteSpace(id_card.Text.Trim()))
{
query.AppendFormat(" AND (examine_term LIKE '%{0}%' )", id_card.Text.Trim());
}
*/
//姓名、登录账号
if (!string.IsNullOrWhiteSpace(user_name.Text.Trim()))
{
query.AppendFormat(" AND (real_name LIKE '%{0}%' or examine_term LIKE '%{0}%' )", user_name.Text.Trim());
//query.AppendFormat(" AND (real_name LIKE '%{0}%' )", user_name.Text.Trim());
}
//科目
if (!string.IsNullOrWhiteSpace(dp_subject_name.SelectedValue))
{
query.AppendFormat(" AND subject_name = '{0}' ", dp_subject_name.SelectedValue);
}
//船型
if (!string.IsNullOrWhiteSpace(dp_sign_boat.SelectedValue))
{
query.AppendFormat(" AND examine_kind = '{0}' ", dp_sign_boat.SelectedValue);
}
#region
/*
if (!string.IsNullOrWhiteSpace(dpMajor.SelectedValue))
{
query.AppendFormat(" AND major = '{0}' ", dpMajor.SelectedValue);
}
if (!string.IsNullOrWhiteSpace(grade.SelectedValue))
{
query.AppendFormat(" AND grade = '{0}' ", grade.SelectedValue);
}
if (!string.IsNullOrWhiteSpace(dpbatch.SelectedValue))
{
query.AppendFormat(" AND batch_id = '{0}' ", dpbatch.SelectedValue);
}
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 boat = BasePage.list_sign_boat.FirstOrDefault(s => s.type_id == model.examine_kind);
if (null != boat)
{
model.examine_kind_dsc = boat.type_name;
}
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;
}
model.has_video = "0";
var file = bll_file.GetModelByOutid(model.result_id);
if (null != file)
{
if (!file.file_url.Contains("http")) //本地
{
string path = Context.Server.MapPath("~/" + file.file_url);
if (File.Exists(path))
{
model.has_video = "1";
var video_title = model.real_name + "-" + model.subject_name + "-" + model.total_result + "分";
model.video_title = video_title;
model.video_url = "/" + file.file_url;
}
}
else
{
model.has_video = "1";
var video_title = model.real_name + "-" + model.subject_name + "-" + model.total_result + "分";
model.video_title = video_title;
model.video_url = file.file_url;
}
}
}
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)
{
bll.Delete(IdInput.Value);
DataLoad();
}
public void getvalue()
{
}
protected void btnBatchDel_Click(object sender, EventArgs e)
{
var count = dataList.SelectedItems.Count;
if (count <= 0)
{
RadAjaxManager1.Alert("成绩不能为空!");
return;
}
List<DataService.Model.pro_result> list_result = new List<DataService.Model.pro_result>();
foreach (var obj in dataList.SelectedItems)
{
GridDataItem item = obj as GridDataItem;
var result_id = item.GetDataKeyValue("result_id").ToString();
var model = bll.GetModel(result_id);
if (null != model)
{
list_result.Add(model);
}
}
var flag = false;
//批量删除
if (list_result.Count > 0)
{
for (int i = 0; i < list_result.Count; i++)
{
var result = list_result[i];
if (bll.Delete(result.result_id))
{
flag = true;
bll_result_detail.DeleteByResultId(result.result_id);
}
}
}
if (flag)
{
DataLoad();
}
}
/// <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("船型");
table.Columns.Add("成绩");
table.Columns.Add("考试时间");
foreach (var item in data)
{
var row = table.NewRow();
row["省"] = item.province;
row["市"] = item.city;
row["单位"] = item.unit_name;
row["姓名"] = item.real_name;
//row["性别"] = item.major;
//row["账号"] = item.login_name;
row["登录账号"] = item.examine_term;
row["科目名称"] = item.subject_name;
row["船型"] = item.examine_kind_dsc;
row["成绩"] = item.total_result;
row["考试时间"] = item.examine_time.Value.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();
}
}
}