gyhlw_dotnet/网站项目/VRS/Management/Exam/MatchScene.aspx.cs

624 lines
22 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<DataService.Model.pro_exam_batch> list = new List<DataService.Model.pro_exam_batch>();
// 场景时长:小时
//平阴华玫
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 then '未开始' WHEN now()>=start_time and now()<end_time then '进行中' WHEN 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
/// <summary>
/// 绑定列表
/// </summary>
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<DataService.Model.admin_user> list_admin_user = new List<DataService.Model.admin_user>();
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<DataService.Model.admin_user> 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<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);
}
}
protected void dataList_SelectedIndexChanged(object sender, EventArgs e)
{
var value = dataList.SelectedValue;
}
}
}