using System; using System.Collections.Generic; using System.Configuration; 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.Exam { public partial class MatchScene : BaseListPage { DataService.BLL.pro_exam_batch bll = new DataService.BLL.pro_exam_batch(); DataService.BLL.pro_result bll_result = new DataService.BLL.pro_result(); DataService.BLL.admin_log log = new DataService.BLL.admin_log(); DataService.BLL.pro_subject_batch_user bll_subject_batch_user = new DataService.BLL.pro_subject_batch_user(); DataService.BLL.admin_user bll_user = new DataService.BLL.admin_user(); DataService.BLL.pro_exam_batch_result bll_batch_result = new DataService.BLL.pro_exam_batch_result(); DataService.BLL.pro_scene_open bll_open = new DataService.BLL.pro_scene_open(); DataService.BLL.admin_school bll_school = new DataService.BLL.admin_school(); protected override void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { var user = DataService.BLL.admin_user.load_login(); var user_login = bll_user.GetModel(user.user_id); if (bll_user.IsAdministrator(user_login)) { tr_school.Visible = true; BindSchool(dp_school, ""); } else //老师或学校管理员 { tr_school.Visible = false; //BindSchoolGrade(user_login.school_id, dp_schoolgrade, ""); } //start.SelectedDate = DateTime.Today.AddMonths(-3); //end.SelectedDate = DateTime.Today.AddMonths(12); start.SelectedDate = DateTime.Today.AddDays(-365); end.SelectedDate = DateTime.Today; BindSceneBase(dp_scene, ""); DataLoad(); } } protected override void DataLoad() { StringBuilder query = new StringBuilder(" 1 = 1 "); var userlogin = DataService.BLL.admin_user.load_login(); var user_login = bll_user.GetModel(userlogin.user_id); if (bll_user.IsAdministrator(user_login)) { if (!string.IsNullOrEmpty(dp_school.SelectedValue)) { query.AppendFormat(" AND school_id = '{0}' ", dp_school.SelectedValue); } } else //老师或学校管理员 { query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id); } if (!string.IsNullOrEmpty(ddp_state.SelectedValue)) { query.AppendFormat(" AND state ={0} ", ddp_state.SelectedValue); } //dp_scene if (!string.IsNullOrEmpty(dp_scene.SelectedValue)) { query.AppendFormat(" AND scene_id ={0} ", dp_scene.SelectedValue); } /* if (!string.IsNullOrWhiteSpace(txt_batch_name.Text.Trim())) { query.AppendFormat(" AND batch_name LIKE '%{0}%' ", txt_batch_name.Text.Trim()); } */ 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"); } //开始时间、结束时间 if (!string.IsNullOrWhiteSpace(start_date)) { query.AppendFormat(" AND start_time >= '{0}' ", start_date); } if (!string.IsNullOrWhiteSpace(end_date)) { query.AppendFormat(" AND end_time < '{0}' ", end_date); } var qry = query.ToString(); var list = bll_open.GetModelList(qry); var school_list = bll_school.GetModelList(""); foreach (var model in list) { model.process = getProcess(model.start_time.Value, model.end_time.Value); var obj = school_list.FirstOrDefault(s => s.id == model.school_id); if (null != obj) { model.school = obj.school; } } dataList.DataSource = list; dataList.Rebind(); } protected void DataLoad_old() { List list = new List(); // 场景时长:小时 //平阴华玫 var model = new DataService.Model.pro_exam_batch(); model.batch_id = "01"; model.r1 = "秋季选拔赛"; model.batch_name = "平阴华玫"; model.state = 0; model.start_time = DateTime.Now.AddDays(-3); model.end_time = DateTime.Now.AddDays(1); model.school = "南京交通职业技术学院"; var ts = model.end_time.Value.Subtract(model.start_time.Value).TotalSeconds; int minute = (int)ts / 3600; model.ks_minute = minute; model.process = getProcess(model.start_time.Value, model.end_time.Value); model.create_time = DateTime.Now; list.Add(model); //智能制造工厂 model = new DataService.Model.pro_exam_batch(); model.batch_id = "02"; model.r1 = "秋季选拔赛"; model.batch_name = "智能制造工厂"; model.state = 1; model.start_time = DateTime.Now.AddDays(-3); model.end_time = DateTime.Now.AddDays(-1); model.school = "顺德职业技术学院"; ts = model.end_time.Value.Subtract(model.start_time.Value).TotalSeconds; minute = (int)ts / 3600; model.ks_minute = minute; model.create_time = DateTime.Now; model.process = getProcess(model.start_time.Value, model.end_time.Value); list.Add(model); //离散型工厂 model = new DataService.Model.pro_exam_batch(); model.batch_id = "03"; model.r1 = "2024认证考试"; model.batch_name = "离散型工厂"; model.state = 0; model.start_time = DateTime.Now.AddDays(5); model.end_time = DateTime.Now.AddDays(10); model.school = "南京信息职业技术学院"; ts = model.end_time.Value.Subtract(model.start_time.Value).TotalSeconds; minute = (int)ts / 3600; model.ks_minute = minute; model.create_time = DateTime.Now; model.process = getProcess(model.start_time.Value, model.end_time.Value); list.Add(model); //流程型工厂 model = new DataService.Model.pro_exam_batch(); model.batch_id = "04"; model.r1 = "2024认证考试"; model.batch_name = "流程型工厂"; model.state = 0; model.start_time = DateTime.Now.AddDays(15); model.end_time = DateTime.Now.AddDays(20); model.school = "金肯职业技术学院"; ts = model.end_time.Value.Subtract(model.start_time.Value).TotalSeconds; minute = (int)ts / 3600; model.ks_minute = minute; model.create_time = DateTime.Now; model.process = getProcess(model.start_time.Value, model.end_time.Value); list.Add(model); //智能制造工厂 model = new DataService.Model.pro_exam_batch(); model.batch_id = "05"; model.r1 = "2024认证考试"; model.batch_name = "智能制造工厂"; model.state = 0; model.start_time = DateTime.Now.AddDays(15); model.end_time = DateTime.Now.AddDays(20); model.school = "金肯职业技术学院"; ts = model.end_time.Value.Subtract(model.start_time.Value).TotalSeconds; minute = (int)ts / 3600; model.ks_minute = minute; model.create_time = DateTime.Now; model.process = getProcess(model.start_time.Value, model.end_time.Value); list.Add(model); dataList.DataSource = list; dataList.Rebind(); } //strSql.Append(" ,(CASE WHEN now()=start_time and now()=end_time then '已结束' ELSE '未知' END) AS process "); private string getProcess(DateTime start, DateTime end) { var temp = ""; var now = DateTime.Now; if (now < start) { temp = "未开放"; } else if (now > start && now < end) { temp = "已开放"; } else if (now >= end) { temp = "已过期"; } return temp; } protected void DataLoad_old2() { StringBuilder query = new StringBuilder(" 1 = 1 "); var userlogin = DataService.BLL.admin_user.load_login(); var user_login = bll_user.GetModel(userlogin.user_id); if (bll_user.IsAdministrator(user_login)) { if (!string.IsNullOrEmpty(dp_school.SelectedValue)) { query.AppendFormat(" AND school_id = '{0}' ", dp_school.SelectedValue); } } else //老师只能看到自己学校的(学生和老师) { query.AppendFormat(" AND school_id = '{0}' ", user_login.school_id); } /* if (!string.IsNullOrEmpty(dp_schoolgrade.SelectedValue)) { query.AppendFormat(" AND grade = '{0}' ", dp_schoolgrade.SelectedValue); } */ if (!string.IsNullOrEmpty(ddp_state.SelectedValue)) { query.AppendFormat(" AND state ={0} ", ddp_state.SelectedValue); } /* if (!string.IsNullOrWhiteSpace(txt_batch_name.Text.Trim())) { query.AppendFormat(" AND batch_name LIKE '%{0}%' ", txt_batch_name.Text.Trim()); } */ 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"); } //开始时间、结束时间 if (!string.IsNullOrWhiteSpace(start_date)) { query.AppendFormat(" AND T1.start_time >= '{0}' ", start_date); } if (!string.IsNullOrWhiteSpace(end_date)) { query.AppendFormat(" AND T1.end_time < '{0}' ", end_date); } string orderby = " order by T1.batch_id desc "; var data = bll.QueryResult(query.ToString(), orderby); dataList.DataSource = data; dataList.Rebind(); } protected void dp_school_SelectedIndexChanged(object sender, Telerik.Web.UI.DropDownListEventArgs e) { //var value = dp_school.SelectedValue; //BindSchoolGrade(value, dp_schoolgrade, ""); DataLoad(); } protected void cbx_schoolgrade_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e) { DataLoad(); } protected void ddp_role_SelectedIndexChanged(object sender, DropDownListEventArgs e) { DataLoad(); } 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) { } 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_open.GetModel(IdInput.Value); var now = DateTime.Now; /* if (now >= model.start_time && now < model.end_time) { RadAjaxManager1.ResponseScripts.Add("alert('该场景正在进行中,禁止删除!') "); return; } */ if (model.state == 1) { if (now >= model.start_time && now < model.end_time) { RadAjaxManager1.ResponseScripts.Add("alert('该场景正在启用中,请先停用!') "); return; } } if (bll_open.Delete(IdInput.Value)) { DataLoad(); } /* var list = bll_batch_result.GetModelList(" batch_id='" + model.batch_id + "'"); if (list.Count > 0) { RadAjaxManager1.ResponseScripts.Add("if (confirm('该考试批次已经有学员参加科目考试,确定要删除吗?')) { $('#btnDelete_Confirm').click(); } "); return; } */ //DeleteBatch(); } protected void btnDelete_Confirm_Click(object sender, EventArgs e) { DeleteBatch(); } public void DeleteBatch() { var model = bll.GetModel(IdInput.Value); /* if (bll.Delete(IdInput.Value)) { var pro_subject_batch_user_list = bll_subject_batch_user.GetModelList(string.Format("batch_id='{0}' ", IdInput.Value)); foreach (var item in pro_subject_batch_user_list) { bll_subject_batch_user.Delete(item.id); } log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value); } */ var count = bll.DeleteBatchAndUser(IdInput.Value); if (count > 0) { log.write_log("删除考试批次成功。" + "批次名称:" + model.batch_name + ",id:" + IdInput.Value); DataLoad(); } } protected void btn_Off_Click(object sender, EventArgs e) { } protected void btn_On_Click(object sender, EventArgs e) { } protected void dataList_ItemCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "start") { var open_id = (e.Item as GridDataItem).GetDataKeyValue("open_id").ToString(); var model = bll_open.GetModel(open_id); model.state = 1; if (bll_open.Update(model)) { /* if (model.state == 1) { bll.UpdateState(model.batch_id); } */ log.write_log("启用场景成功。" + "场景名称:" + model.scene_name + ",场景id:" + model.scene_id); //RadAjaxManager1.ResponseScripts.Add("alert('启用考试批次成功!');"); DataLoad(); } else RadAjaxManager1.Alert("启用考试批次失败!"); } else if (e.CommandName == "stop") { var open_id = (e.Item as GridDataItem).GetDataKeyValue("open_id").ToString(); var model = bll_open.GetModel(open_id); /* var now = DateTime.Now; if (now >= model.start_time && now < model.end_time) { RadAjaxManager1.ResponseScripts.Add("alert('该考试批次正在进行中,禁止停用!') "); return; } */ model.state = 0; //停用 if (bll_open.Update(model)) { log.write_log("停用场景成功。" + "场景名称:" + model.scene_name + ",场景id:" + model.scene_id); //RadAjaxManager1.ResponseScripts.Add("alert('停用考试批次成功!');"); hd_mainId.Value = ""; DataLoad(); } else RadAjaxManager1.Alert("停用场景失败!"); } } protected void dataList_ItemDataBound(object sender, GridItemEventArgs e) { if (e.Item is GridDataItem) { GridDataItem item = e.Item as GridDataItem; Button btn_start = e.Item.FindControl("btn_start") as Button; Button btn_stop = e.Item.FindControl("btn_stop") as Button; int state = int.Parse(item.GetDataKeyValue("state").ToString()); if (state == 0) //禁用 { btn_start.Visible = true; btn_stop.Visible = false; } else if (state == 1) //启用 { btn_start.Visible = false; btn_stop.Visible = true; //e.Item.CssClass = "row_highlight"; } } } #region 关联列表方法 /// /// 绑定列表 /// public void DataLoad_Sub() { var main_id = hd_mainId.Value; var query = new StringBuilder(" 1=1"); // old methods //query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id); //query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}') ", main_id); //query.AppendFormat(" or user_id in (select user_id from pro_fault_batch_user where batch_id = '{0}')) ", main_id); query.AppendFormat(" and(user_id in (select user_id from pro_fault_exam_paper where batch_id = '{0}') ", main_id); query.AppendFormat(" or user_id in (select user_id from pro_subject_batch_user where batch_id = '{0}')) ", main_id); var list = bll_user.GetModelList(query.ToString()).ToList(); //dataList_Sub.DataSource = list; //dataList_Sub.Rebind(); } protected void btnSelectSub_Click(object sender, EventArgs e) { DataLoad_Sub(); } protected void dataList_Sub_PageIndexChanged(object sender, GridPageChangedEventArgs e) { DataLoad_Sub(); } protected void dataList_Sub_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e) { DataLoad_Sub(); } protected void dataList_Sub_SortCommand(object sender, GridSortCommandEventArgs e) { DataLoad_Sub(); } //删除记录并绑定 protected void btnDelete_Sub_Click(object sender, EventArgs e) { var mainId = hd_mainId.Value; var sub_id = hd_subId.Value; /* var model = bll_task_proc_material.GetModel(sub_id); if (bll_task_proc_material.Delete(sub_id)) { RadAjaxManager1.Alert("删除素材成功!"); log.write_log("删除素材成功。" + "名称:" + model.name + ",ID:" + sub_id + ",任务id:" + model.taskId + ",步骤id:" + model.proc_id); } */ List list_admin_user = new List(); var user_model = bll_user.GetModel(sub_id); list_admin_user.Add(user_model); var batch_id = mainId; var batch = bll.GetModel(batch_id); if (null == batch) { return; } var now = DateTime.Now; delete_subject(list_admin_user, batch, now); RadAjaxManager1.ResponseScripts.Add("alert('删除成功!');"); DataLoad_Sub(); } #endregion //删除普通科目 private void delete_subject(List list_user, DataService.Model.pro_exam_batch batch, DateTime now) { var batch_id = batch.batch_id; var user_id = list_user[0].user_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); } } protected void dataList_SelectedIndexChanged(object sender, EventArgs e) { var value = dataList.SelectedValue; } } }