497 lines
19 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
} |