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

497 lines
19 KiB
C#

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<DataService.Model.admin_user> list_admin_user = new List<DataService.Model.admin_user>();
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<string>();
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();");
}
}
/// <summary>
/// 修改故障现象题目
/// </summary>
/// <param name="list_admin_user"></param>
/// <param name="batch"></param>
/// <param name="now"></param>
private void update_fault_exam(List<DataService.Model.admin_user> list_admin_user, DataService.Model.pro_exam_batch batch, DateTime now)
{
var success = false;
var fail_list = new List<string>();
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<string> list = new List<string>();
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<DataService.Model.pro_fault_exam> list_fault_exam = new List<DataService.Model.pro_fault_exam>();
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<DataService.Model.admin_user> 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<string> ks_subject_exists = new List<string>();
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<string> list = new List<string>();
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<DataService.Model.pro_subject>();
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<DataService.Model.admin_user> 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<string> list = new List<string>();
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);
}
}
}
}