xinjiang/SGGL/FineUIPro.Web/HSSE/EduTrain/TrainRecordEdit.aspx.cs

540 lines
21 KiB
C#

using BLL;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
namespace FineUIPro.Web.HSSE.EduTrain
{
public partial class TrainRecordEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string TrainingId
{
get
{
return (string)ViewState["TrainingId"];
}
set
{
ViewState["TrainingId"] = value;
}
}
/// <summary>
/// 主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
/// <summary>
/// 考试计划ID
/// </summary>
public string TestPlanId
{
get
{
return (string)ViewState["TestPlanId"];
}
set
{
ViewState["TestPlanId"] = value;
}
}
/// <summary>
/// 定义集合
/// </summary>
private static List<Model.View_EduTrain_TrainRecordDetail> trainRecordDetails = new List<Model.View_EduTrain_TrainRecordDetail>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.btnClose.OnClientClick = ActiveWindow.GetHidePostBackReference();
this.ProjectId = this.CurrUser.LoginProjectId;
this.InitDropDownList();
trainRecordDetails.Clear();
this.TrainingId = Request.Params["TrainingId"];
var trainRecord = EduTrain_TrainRecordService.GetTrainingByTrainingId(this.TrainingId);
if (trainRecord != null)
{
this.ProjectId = trainRecord.ProjectId;
if (this.ProjectId != this.CurrUser.LoginProjectId)
{
this.InitDropDownList();
}
this.txtTrainingCode.Text = BLL.CodeRecordsService.ReturnCodeByDataId(this.TrainingId);
if (!string.IsNullOrEmpty(trainRecord.TrainTypeId))
{
this.drpTrainType.SelectedValue = trainRecord.TrainTypeId;
}
if (!string.IsNullOrEmpty(trainRecord.TrainLevelId))
{
this.drpTrainLevel.SelectedValue = trainRecord.TrainLevelId;
}
this.txtTrainTitle.Text = trainRecord.TrainTitle;
if (!string.IsNullOrEmpty(trainRecord.UnitIds))
{
this.drpUnits.SelectedValueArray = trainRecord.UnitIds.Split(',');
}
if (!string.IsNullOrEmpty(trainRecord.WorkPostIds))
{
this.drpWorkPostIds.SelectedValueArray = trainRecord.WorkPostIds.Split(',');
}
this.txtTeachMan.Text = trainRecord.TeachMan;
this.txtTeachAddress.Text = trainRecord.TeachAddress;
if (trainRecord.TeachHour != null)
{
this.txtTeachHour.Text = trainRecord.TeachHour.ToString();
}
if (trainRecord.TrainStartDate != null)
{
this.txtTrainStartDate.Text = string.Format("{0:yyyy-MM-dd}", trainRecord.TrainStartDate);
}
if (trainRecord.TrainPersonNum != null)
{
this.txtTrainPersonNum.Text = Convert.ToString(trainRecord.TrainPersonNum);
}
this.txtTrainContent.Text = trainRecord.TrainContent;
var getTestPlan = TestPlanService.GetTestPlanByPlanId(trainRecord.PlanId);
if (getTestPlan != null)
{
this.TestPlanId = getTestPlan.TestPlanId;
}
}
else
{
////自动生成编码
this.txtTrainingCode.Text = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectTrainRecordMenuId, this.ProjectId, this.CurrUser.UnitId);
this.txtTrainStartDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
this.txtTeachMan.Text = this.CurrUser.UserName;
this.txtTeachAddress.Text = "办公室";
this.txtTeachHour.Text = "1";
//this.txtTrainEndDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now);
}
this.Grid1DataBind();
///初始化审核菜单
this.ctlAuditFlow.MenuId = Const.ProjectTrainRecordMenuId;
this.ctlAuditFlow.DataId = this.TrainingId;
this.ctlAuditFlow.ProjectId = this.ProjectId;
this.ctlAuditFlow.UnitId = this.CurrUser.UnitId;
}
}
#endregion
/// <summary>
/// 绑定 Grid1
/// </summary>
private void Grid1DataBind()
{
trainRecordDetails = (from x in Funs.DB.View_EduTrain_TrainRecordDetail
where x.TrainingId == this.TrainingId
orderby x.UnitName, x.PersonName
select x).ToList();
Grid1.DataSource = trainRecordDetails;
Grid1.DataBind();
for (int i = 0; i < Grid1.Rows.Count; i++)
{
bool isRed = true;
string trainDetailId = Grid1.Rows[i].DataKeys[0].ToString();
var getAtt = Funs.DB.AttachFile.FirstOrDefault(x => x.ToKeyId == trainDetailId);
if (getAtt != null)
{
isRed = false;
}
if(isRed)
{
var getRecordDetail = trainRecordDetails.FirstOrDefault(x => x.TrainDetailId == trainDetailId);
if (getRecordDetail != null && !string.IsNullOrEmpty(this.TestPlanId)) ////未参加过培训的人员
{
var getTestRecord = Funs.DB.Training_TestRecord.FirstOrDefault(x => x.TestManId == getRecordDetail.PersonId && x.TestPlanId == this.TestPlanId);
if (getTestRecord != null)
{
isRed = false;
}
}
}
if (isRed)
{
Grid1.Rows[i].RowCssClass = "Red";
}
}
}
/// <summary>
///
/// </summary>
private void InitDropDownList()
{
//培训类型
TrainTypeService.InitTrainTypeDropDownList(this.drpTrainType, true);
string trainType = Request.Params["trainType"];
if (!string.IsNullOrWhiteSpace(trainType))
{
this.drpTrainType.Items.FindByText(trainType).Selected = true;
}
//培训级别
TrainLevelService.InitTrainLevelDropDownList(this.drpTrainLevel, true);
//培训单位
UnitService.InitUnitDropDownList(this.drpUnits, this.ProjectId, false);
WorkPostService.InitWorkPostDropDownList(this.drpWorkPostIds, true);
this.drpUnits.SelectedValue = this.CurrUser.UnitId;
}
#region
/// <summary>
/// 选择按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSelect_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.TrainingId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ShowPerson.aspx?TrainingId={0}&TrainTypeId={1}", this.TrainingId, this.drpTrainType.SelectedValue, "编辑 - ")));
}
#endregion
#region
/// <summary>
/// 导入按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click(object sender, EventArgs e)
{
if (this.drpTrainType.SelectedValue == BLL.Const._Null)
{
ShowNotify("请选择培训类型!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.TrainingId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("TrainRecordIn.aspx?TrainingId={0}", this.TrainingId, "导入 - "), "导入", 900, 560));
}
#endregion
#region
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (this.ctlAuditFlow.NextStep == BLL.Const.State_1 && this.ctlAuditFlow.NextPerson == BLL.Const._Null)
{
ShowNotify("请选择下一步办理人!", MessageBoxIcon.Warning);
return;
}
this.SaveData(BLL.Const.BtnSubmit);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
this.SaveData(BLL.Const.BtnSave);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
#endregion
#region
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
int i = 0;
if (this.drpTrainType.SelectedValue == BLL.Const._Null)
{
ShowNotify("请选择培训类型!", MessageBoxIcon.Warning);
i++;
return;
}
Model.EduTrain_TrainRecord trainRecord = new Model.EduTrain_TrainRecord
{
TrainingCode = this.txtTrainingCode.Text.Trim(),
ProjectId = this.ProjectId,
TrainTitle = this.txtTrainTitle.Text.Trim(),
TrainContent = this.txtTrainContent.Text.Trim(),
TrainStartDate = Funs.GetNewDateTime(this.txtTrainStartDate.Text.Trim()),
TrainPersonNum = this.Grid1.Rows.Count,
TeachHour = Funs.GetNewDecimalOrZero(this.txtTeachHour.Text.Trim()),
TeachMan = this.txtTeachMan.Text.Trim(),
TeachAddress = this.txtTeachAddress.Text.Trim(),
};
if (this.drpTrainType.SelectedValue != BLL.Const._Null)
{
trainRecord.TrainTypeId = this.drpTrainType.SelectedValue;
}
if (this.drpTrainLevel.SelectedValue != BLL.Const._Null)
{
trainRecord.TrainLevelId = this.drpTrainLevel.SelectedValue;
}
//培训单位
string unitIds = string.Empty;
foreach (var item in this.drpUnits.SelectedValueArray)
{
unitIds += item + ",";
}
if (!string.IsNullOrEmpty(unitIds))
{
unitIds = unitIds.Substring(0, unitIds.LastIndexOf(","));
}
trainRecord.UnitIds = unitIds;
//培训岗位
string workPostIds = string.Empty;
foreach (var item in this.drpWorkPostIds.SelectedValueArray)
{
workPostIds += item + ",";
}
if (!string.IsNullOrEmpty(workPostIds))
{
workPostIds = workPostIds.Substring(0, workPostIds.LastIndexOf(","));
}
trainRecord.WorkPostIds = workPostIds;
////单据状态
trainRecord.States = BLL.Const.State_0;
if (type == BLL.Const.BtnSubmit)
{
trainRecord.States = this.ctlAuditFlow.NextStep;
//if (!this.drpTrainStates.Hidden && trainRecord.TrainStates != "3" && trainRecord.States == Const.State_2)
//{
// ShowNotify("当前培训还未结束,不能审核完成!", MessageBoxIcon.Warning);
// i++;
// return;
//}
}
if (!string.IsNullOrEmpty(this.TrainingId))
{
var getTrain = BLL.EduTrain_TrainRecordService.GetTrainingByTrainingId(this.TrainingId);
if (getTrain != null)
{
trainRecord.FromRecordId = getTrain.FromRecordId;
}
trainRecord.TrainingId = this.TrainingId;
BLL.EduTrain_TrainRecordService.UpdateTraining(trainRecord);
BLL.LogService.AddSys_Log(this.CurrUser, trainRecord.TrainingCode, trainRecord.TrainingId, BLL.Const.ProjectTrainRecordMenuId, BLL.Const.BtnModify);
}
else
{
trainRecord.TrainingId = SQLHelper.GetNewID(typeof(Model.EduTrain_TrainRecord));
this.TrainingId = trainRecord.TrainingId;
trainRecord.CompileMan = this.CurrUser.UserId;
BLL.EduTrain_TrainRecordService.AddTraining(trainRecord);
BLL.LogService.AddSys_Log(this.CurrUser, trainRecord.TrainingCode, trainRecord.TrainingId, BLL.Const.ProjectTrainRecordMenuId, BLL.Const.BtnAdd);
}
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
Model.EduTrain_TrainRecordDetail detail = BLL.EduTrain_TrainRecordDetailService.GetTrainDetailByTrainDetailId(values.Value<string>("TrainDetailId").ToString());
if (detail != null)
{
if (values.Value<string>("CheckResult").ToString() == "1")
{
detail.CheckResult = true;
}
else
{
detail.CheckResult = false;
}
detail.CheckScore = Funs.GetNewDecimalOrZero(values.Value<string>("CheckScore").ToString()); ;
BLL.EduTrain_TrainRecordDetailService.UpdateTrainDetail(detail);
}
}
if (i == 0)
{
////保存流程审核数据
this.ctlAuditFlow.btnSaveData(this.ProjectId, BLL.Const.ProjectTrainRecordMenuId, this.TrainingId, (type == BLL.Const.BtnSubmit ? true : false), this.txtTrainTitle.Text.Trim(), "../EduTrain/TrainRecordView.aspx?TrainingId={0}");
}
}
#endregion
#region
/// <summary>
/// 关闭弹出窗
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, EventArgs e)
{
this.Grid1DataBind();
this.txtTrainPersonNum.Text = trainRecordDetails.Count.ToString();
}
#endregion
#region
/// <summary>
/// 批量删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
BLL.EduTrain_TrainRecordDetailService.DeleteTrainDetailByTrainDetail(rowID);
}
this.Grid1DataBind();
this.txtTrainPersonNum.Text = trainRecordDetails.Count.ToString();
this.ShowNotify("删除数据成功!(表格数据已重新绑定)");
}
}
#endregion
#region
/// <summary>
/// 上传附件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAttachUrl_Click(object sender, EventArgs e)
{
if (this.drpTrainType.SelectedValue == BLL.Const._Null)
{
ShowNotify("请选择培训类型!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.TrainingId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/TrainRecord&menuId={1}", this.TrainingId, BLL.Const.ProjectTrainRecordMenuId)));
}
#endregion
/// <summary>
/// 培训试题
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnTrainTest_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(this.TrainingId))
{
this.SaveData(BLL.Const.BtnSave);
}
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainTest.aspx?TrainingId={0}", this.TrainingId, "编辑 - ")));
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuView_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainTestView.aspx?TrainDetailId={0}", rowID, "查看试卷 - ")));
}
}
}
///// <summary>
///// 选择培训教材类型
///// </summary>
///// <param name="sender"></param>
///// <param name="e"></param>
//protected void btnTrainingType_Click(object sender, EventArgs e)
//{
// if (string.IsNullOrEmpty(this.TrainingId))
// {
// this.SaveData(BLL.Const.BtnSave);
// }
// PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("ShowTrainingType.aspx?TrainingId={0}&TrainTypeId={1}", this.TrainingId, this.drpTrainType.SelectedValue, "编辑 - ")));
//}
#region
/// <summary>
/// 格式化受伤情况
/// </summary>
/// <param name="injury"></param>
/// <returns></returns>
protected string GetCheckScore(object TrainDetailId)
{
string values = string.Empty;
var getTrainRecordDetail = Funs.DB.EduTrain_TrainRecordDetail.FirstOrDefault(x => x.TrainDetailId == TrainDetailId.ToString());
if (getTrainRecordDetail != null)
{
var getTrainRecord = Funs.DB.EduTrain_TrainRecord.FirstOrDefault(x => x.TrainingId == getTrainRecordDetail.TrainingId);
if (getTrainRecord != null)
{
var getTestPlan = Funs.DB.Training_TestPlan.FirstOrDefault(x => x.PlanId == getTrainRecord.PlanId);
if (getTestPlan != null)
{
decimal? scors = 0;
var getTestRecord = Funs.DB.Training_TestRecord.Where(x => x.TestPlanId == getTestPlan.TestPlanId && x.TestManId == getTrainRecordDetail.PersonId);
foreach (var item in getTestRecord)
{
if (scors == 0)
{
scors = item.TestScores;
}
else
{
if (item.TestScores < scors)
{
scors = item.TestScores ?? 0;
}
}
}
values = scors.ToString();
}
}
}
return values;
}
#endregion
}
}