using System; using System.Collections.Generic; 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 ExamBatch_Student_Edit : BaseListPage { DataService.BLL.admin_user bll = new DataService.BLL.admin_user(); DataService.BLL.pro_fault_exam bll_fault_exam = new DataService.BLL.pro_fault_exam(); DataService.BLL.pro_fault_exam_paper bll_fault_exam_paper = new DataService.BLL.pro_fault_exam_paper(); DataService.BLL.pro_exam_batch bll_batch = new DataService.BLL.pro_exam_batch(); DataService.BLL.admin_log log = new DataService.BLL.admin_log(); DataService.BLL.pro_fault_exam_paper_item bll_paper_item = new DataService.BLL.pro_fault_exam_paper_item(); DataService.BLL.pro_subject bll_subject = new DataService.BLL.pro_subject(); DataService.BLL.pro_fault bll_fault = new DataService.BLL.pro_fault(); DataService.BLL.pro_subject_batch_user bll_subject_batch_user = new DataService.BLL.pro_subject_batch_user(); DataService.BLL.pro_fault_batch_user bll_fault_batch_user = new DataService.BLL.pro_fault_batch_user(); DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result(); protected override void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataLoad(); } } protected override void DataLoad() { var batch_id = Request.Params["batch_id"]; var batch = bll_batch.GetModel(batch_id); var user_id = Request.Params["Id"]; var user = bll.GetModel(user_id); span_login_name.InnerHtml = " 姓名:" + user.real_name + " 学号:" + user.login_name; var desc = batch.state == 1 ? "启用" : "停用"; span_batch.InnerHtml = batch.batch_name + ",状态:" + desc; if (batch.state == 1) { span_batch.Attributes["class"] = "green"; } else { span_batch.Attributes["class"] = "red"; } //span_batch.InnerHtml = batch.batch_name; //故障现象配置 var exam_list = bll_fault_exam.GetModelList(""); CheckBoxList_fault_exam.DataBindings.DataTextField = "exam_title"; CheckBoxList_fault_exam.DataBindings.DataValueField = "exam_id"; CheckBoxList_fault_exam.DataSource = exam_list; CheckBoxList_fault_exam.DataBind(); var fault_exam_list_exists = bll_fault_exam_paper.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id)); if (fault_exam_list_exists.Count > 0) { var paper_id = fault_exam_list_exists[0].paper_id; var exists_items = bll_paper_item.GetModelList(" paper_id='" + paper_id + "'"); for (var i = 0; i < CheckBoxList_fault_exam.Items.Count; i++) { var value = CheckBoxList_fault_exam.Items[i].Value; var obj = exists_items.FirstOrDefault(s => s.exam_id == value); if (null != obj) { CheckBoxList_fault_exam.Items[i].Selected = true; } } //故障现象考试 考过试 禁止编辑 if (fault_exam_list_exists[0].state > 0) { CheckBoxList_fault_exam.Enabled = false; } } //普通科目配置 #region 普通科目配置 加载 var subject_list = bll_subject.GetModelList(" subject_id !='10003' and subject_id !='00003' "); CheckBoxList_subject.DataBindings.DataTextField = "subject_name"; CheckBoxList_subject.DataBindings.DataValueField = "subject_id"; CheckBoxList_subject.DataSource = subject_list; CheckBoxList_subject.DataBind(); var subject_list_exists = bll_subject_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id)); if (subject_list_exists.Count > 0) { for (var i = 0; i < CheckBoxList_subject.Items.Count; i++) { var value = CheckBoxList_subject.Items[i].Value; var obj = subject_list_exists.FirstOrDefault(s => s.subject_id == value); if (null != obj) { CheckBoxList_subject.Items[i].Selected = true; var exist_subject_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id='" + value + "' "; var exist_subject_list = bll_result.GetModelList(exist_subject_sql); //存在考试记录 if (exist_subject_list.Count > 0) { CheckBoxList_subject.Items[i].Enabled = false; } } } } #endregion //故障科目故障点配置 var fault_list = bll_fault.GetModelList(""); /* RadioButtonList_fault_code.DataTextField = "fault_name"; RadioButtonList_fault_code.DataValueField = "fault_id"; RadioButtonList_fault_code.DataSource = fault_list; RadioButtonList_fault_code.DataBind(); */ CheckBoxList_fault_code.DataBindings.DataTextField = "fault_name"; CheckBoxList_fault_code.DataBindings.DataValueField = "fault_id"; CheckBoxList_fault_code.DataSource = fault_list; CheckBoxList_fault_code.DataBind(); var fault_batch_user_exists = bll_fault_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id)); if (fault_batch_user_exists.Count > 0) { for (var i = 0; i < CheckBoxList_fault_code.Items.Count; i++) { var value = CheckBoxList_fault_code.Items[i].Value; var obj = fault_batch_user_exists.FirstOrDefault(s => s.fault_id == value); if (null != obj) { CheckBoxList_fault_code.Items[i].Selected = true; } } } //故障科目考试 考过试 禁止编辑 var exist_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id='10003' "; var kh_list = bll_result.GetModelList(exist_sql); //1条记录 if (kh_list.Count > 0) { CheckBoxList_fault_code.Enabled = false; } } 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 AjaxManager_AjaxRequest(object sender, AjaxRequestEventArgs e) { } protected void btnSelect_Click(object sender, EventArgs e) { DataLoad(); } protected override void GrdList_DeleteCommand(object sender, GridCommandEventArgs e) { } protected void btnAdd_Click(object sender, EventArgs e) { /* if (CheckBoxList_fault_code.SelectedValues.Length <= 0 && CheckBoxList_fault_exam.SelectedValues.Length <= 0 && CheckBoxList_subject.SelectedValues.Length <= 0) { RadAjaxManager1.Alert("请至少配置一个选项!"); return; } */ if (CheckBoxList_fault_code.SelectedValues.Length > 1) { RadAjaxManager1.Alert("故障点能选择一个或不选!"); return; } List list_admin_user = new List(); var user_model = bll.GetModel(Request.Params["Id"]); list_admin_user.Add(user_model); var batch_id = Request.Params["batch_id"]; var batch = bll_batch.GetModel(batch_id); if (null == batch) { return; } btnAdd.Enabled = false; var now = DateTime.Now; bool success = false; if (CheckBoxList_fault_exam.Enabled) { update_fault_exam(list_admin_user, batch, now); success = true; } #region 修改普通科目 var subject_list_exists = bll_subject_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_model.user_id)); var array = CheckBoxList_subject.SelectedValues; if (array.Length != subject_list_exists.Count) { update_subject(list_admin_user, batch, now); success = true; } else { var list = new List(); if (subject_list_exists.Count > 0) { list.AddRange(subject_list_exists.Select(s => s.subject_id).ToArray()); } foreach (var item in array) { if (!list.Contains(item)) { list.Add(item); } } if (list.Count> subject_list_exists.Count) { update_subject(list_admin_user, batch, now); success = true; } } #endregion if (CheckBoxList_fault_code.Enabled) { update_fault_code(list_admin_user, batch, now); success = true; } if (success) { RadAjaxManager1.ResponseScripts.Add("alert('修改成功!');CloseAndRebind();"); } } /// /// 修改故障现象题目 /// /// /// /// private void update_fault_exam(List list_admin_user, DataService.Model.pro_exam_batch batch, DateTime now) { var success = false; var fail_list = new List(); foreach (var user in list_admin_user) { // 1 如果考过试 禁止修改 var exist_sql = " user_id ='" + user.user_id + "' and batch_id='" + batch.batch_id + "' and state>0 "; var kh_list = bll_fault_exam_paper.GetModelList(exist_sql); //1条记录 if (kh_list.Count > 0) { continue; } // 2 删除再添加 var fault_exam_paper_list = bll_fault_exam_paper.GetModelList(" user_id ='" + user.user_id + "' and batch_id='" + batch.batch_id + "' "); if (fault_exam_paper_list.Count > 0) { var fault_exam_paper = fault_exam_paper_list[0]; bll_fault_exam_paper.DeleteList("'" + fault_exam_paper.paper_id + "'"); var exists_items = bll_paper_item.GetModelList(" paper_id='" + fault_exam_paper.paper_id + "'"); List list = new List(); foreach (var item in exists_items) { list.Add("'" + item.item_id + "'"); } if (list.Count > 0) { var id_list = string.Join(",", list.ToArray()); bll_paper_item.DeleteList(id_list); } } var array = CheckBoxList_fault_exam.SelectedValues; List list_fault_exam = new List(); foreach (var item in array) { var exam = bll_fault_exam.GetModel(item); list_fault_exam.Add(exam); } if (list_fault_exam.Count <= 0) { return; } var model = new DataService.Model.pro_fault_exam_paper(); var paper_id = GetNewId(); model.paper_id = paper_id; model.user_id = user.user_id; model.login_name = user.login_name; model.real_name = user.real_name; model.batch_id = batch.batch_id; model.batch_name = batch.batch_name; model.sjms = batch.sjms; model.state = 0; model.score = 0; model.create_time = now; foreach (var fault_item in list_fault_exam) { var paper_item = new DataService.Model.pro_fault_exam_paper_item(); paper_item.item_id = GetNewId(); paper_item.paper_id = paper_id; paper_item.exam_id = fault_item.exam_id; paper_item.exam_title = fault_item.exam_title; paper_item.create_time = now; bll_paper_item.Add(paper_item); } success = bll_fault_exam_paper.Add(model); } string desc = ""; if (fail_list.Count > 0) { desc = " 学员(" + string.Join("", fail_list.ToArray()) + "),已经添加过该批次!"; } if (success) { log.write_log("修改故障考试题目成功。" + desc); } else { log.write_log("修改故障考试题目失败。" + desc); } } //修改普通科目 private void update_subject(List list_user, DataService.Model.pro_exam_batch batch, DateTime now) { var batch_id = Request.Params["batch_id"]; var user_id = Request.Params["Id"]; //已经考试科目 1、禁止删除、2、禁止添加 var exist_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id!='10003' and subject_id!='00003' "; var kh_list = bll_result.GetModelList(exist_sql); //1条记录 List ks_subject_exists = new List(); if (kh_list.Count > 0) { ks_subject_exists.AddRange(kh_list.Select(s => s.subject_id).ToArray()); } var subject_list_exists = bll_subject_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id)); List list = new List(); foreach (var item in subject_list_exists) { if (!ks_subject_exists.Contains(item.subject_id)) //禁止删除 { list.Add("'" + item.id + "'"); } } if (list.Count > 0) { var id_list = string.Join(",", list.ToArray()); bll_subject_batch_user.DeleteList(id_list); } var array = CheckBoxList_subject.SelectedValues; if (array.Length <= 0) { return; } var list_subject = new List(); foreach (var item in array) { if (!ks_subject_exists.Contains(item)) //禁止添加 { var exam = bll_subject.GetModel(item); list_subject.Add(exam); } } foreach (var user in list_user) { foreach (var sub in list_subject) { var item = new DataService.Model.pro_subject_batch_user(); item.id = GetNewId(); item.batch_id = batch.batch_id; item.batch_name = batch.batch_name; item.subject_id = sub.subject_id; item.subject_name = sub.subject_name; item.user_id = user.user_id; item.login_name = user.login_name; item.real_name = user.real_name; item.state = 0; item.create_time = now; bll_subject_batch_user.Add(item); } } } //修改故障科目故障点 private void update_fault_code(List list_user, DataService.Model.pro_exam_batch batch, DateTime now) { var batch_id = Request.Params["batch_id"]; var user_id = Request.Params["Id"]; //如果考过试 禁止编辑 var exist_sql = " user_id ='" + user_id + "' and batch_id='" + batch.batch_id + "' and subject_id='10003' "; var kh_list = bll_result.GetModelList(exist_sql); //1条记录 if (kh_list.Count > 0) { return; } var fault_list_exists = bll_fault_batch_user.GetModelList(string.Format(" batch_id='{0}' and user_id='{1}' ", batch_id, user_id)); List list = new List(); foreach (var item in fault_list_exists) { list.Add("'" + item.id + "'"); } if (list.Count > 0) { var id_list = string.Join(",", list.ToArray()); bll_fault_batch_user.DeleteList(id_list); } if (string.IsNullOrEmpty(CheckBoxList_fault_code.SelectedValue)) { return; } var fault = bll_fault.GetModel(CheckBoxList_fault_code.SelectedValue); foreach (var user in list_user) { var sql = " user_id ='" + user.user_id + "' and batch_id='" + batch.batch_id + "'"; var exists_item = bll_fault_batch_user.GetModelList(sql).FirstOrDefault(); if (null != exists_item) { exists_item.fault_id = fault.fault_id; exists_item.fault_name = fault.fault_name; exists_item.fault_code = fault.fault_code; bll_fault_batch_user.Update(exists_item); return; } var item = new DataService.Model.pro_fault_batch_user(); item.id = GetNewId(); item.batch_id = batch.batch_id; item.batch_name = batch.batch_name; item.fault_id = fault.fault_id; item.fault_name = fault.fault_name; item.fault_code = fault.fault_code; item.user_id = user.user_id; item.login_name = user.login_name; item.real_name = user.real_name; item.state = 0; item.create_time = now; bll_fault_batch_user.Add(item); } } } }