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

487 lines
20 KiB
C#

using BLL;
using Model;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
namespace FineUIPro.Web.HSSE.EduTrain
{
public partial class PlanEdit : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string PlanId
{
get
{
return (string)ViewState["PlanId"];
}
set
{
ViewState["PlanId"] = value;
}
}
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#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.GetHideReference();
this.ProjectId = this.CurrUser.LoginProjectId;
this.InitDropDownList();
this.PlanId = Request.Params["PlanId"];
if (!string.IsNullOrEmpty(PlanId))
{
var trainingPlan = TrainingPlanService.GetPlanById(PlanId);
if (trainingPlan != null)
{
this.txtPlanCode.Text = trainingPlan.PlanCode;
this.txtPlanName.Text = trainingPlan.PlanName;
this.txtTrainContent.Text = trainingPlan.TrainContent;
this.txtTeachMan.Text = trainingPlan.TeachMan;
if (trainingPlan.TeachHour.HasValue)
this.txtTeachHour.Text = trainingPlan.TeachHour.Value.ToString("0.##");
if (trainingPlan.TrainStartDate.HasValue)
this.dpTrainStartDate.SelectedDate = trainingPlan.TrainStartDate;
if (trainingPlan.TrainEndDate.HasValue)
this.dpTrainEndDate.SelectedDate = trainingPlan.TrainEndDate;
this.txtTeachAddress.Text = trainingPlan.TeachAddress;
if (!string.IsNullOrEmpty(trainingPlan.UnitIds))
dpUnit.SelectedValueArray = trainingPlan.UnitIds.Split(',');
if (!string.IsNullOrEmpty(trainingPlan.WorkPostId))
dpWorkPost.SelectedValueArray = trainingPlan.WorkPostId.Split(',');
if (!string.IsNullOrEmpty(trainingPlan.TrainLevelId))
drpTrainLevel.SelectedValue = trainingPlan.TrainLevelId;
if (!string.IsNullOrEmpty(trainingPlan.TrainTypeId))
drpTrainType.SelectedValue = trainingPlan.TrainTypeId;
if (!string.IsNullOrEmpty(trainingPlan.Cycle))
drpCycle.SelectedValue = trainingPlan.Cycle;
var planItem = (from x in Funs.DB.Training_PlanItem where x.PlanId == trainingPlan.PlanId select x.CompanyTrainingItemId).ToArray();
if (planItem != null && planItem.Length > 0)
{
dpCompanyTraining.SelectedValueArray = planItem;
}
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(this.CurrUser.LoginProjectId, trainingPlan.UnitIds, trainingPlan.WorkPostId, "", trainingPlan.TrainTypeId, "", "").OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
dpSysUser.DataTextField = "PersonName";
dpSysUser.DataValueField = "PersonId";
dpSysUser.DataSource = getDataList;
dpSysUser.DataBind();
//initdpSysUser();
var userids = (from x in Funs.DB.Training_Task where x.PlanId == trainingPlan.PlanId select x.UserId).ToArray();
if (userids != null && userids.Length > 0)
{
dpSysUser.SelectedValueArray = userids;
}
}
}
else
{
string code = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectCode + "-";
txtPlanCode.Text = BLL.SQLHelper.RunProcNewId("SpGetNewCode5ByProjectId", "dbo.Training_Plan", "PlanCode", this.CurrUser.LoginProjectId, code);
}
}
}
/// <summary>
/// 初始化下拉框
/// </summary>
private void InitDropDownList()
{
TrainTypeService.InitTrainTypeDropDownList(drpTrainType, true);
TrainLevelService.InitTrainLevelDropDownList(drpTrainLevel, true);
UnitService.InitUnitByProjectIdUnitTypeDropDownList1(dpUnit, this.CurrUser.LoginProjectId, false);
WorkPostService.InitWorkPostByProjectIdDropDownList(dpWorkPost, this.CurrUser.LoginProjectId, false);
//var postIds = (from u in Funs.DB.SitePerson_Person
// where u.ProjectId == CurrUser.LoginProjectId
// select u.WorkPostId).Distinct();
//var workPost = (from x in Funs.DB.Base_WorkPost where postIds.Contains(x.WorkPostId) orderby x.WorkPostCode select x).ToList();
//dpWorkPost.DataValueField = "WorkPostId";
//dpWorkPost.DataTextField = "WorkPostName";
//dpWorkPost.DataSource = workPost;
//dpWorkPost.DataBind();
List<JQueryFeature> myList = new List<JQueryFeature>();
BoundTree(myList, "0", 0);
dpCompanyTraining.DataTextField = "Name";
dpCompanyTraining.DataValueField = "Id";
dpCompanyTraining.DataSimulateTreeLevelField = "Level";
dpCompanyTraining.DataEnableSelectField = "EnableSelect";
dpCompanyTraining.DataSource = myList;
dpCompanyTraining.DataBind();
}
#region JQueryFeature
public class JQueryFeature
{
private string _id;
public string Id
{
get { return _id; }
set { _id = value; }
}
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private int _level;
public int Level
{
get { return _level; }
set { _level = value; }
}
private bool _enableSelect;
public bool EnableSelect
{
get { return _enableSelect; }
set { _enableSelect = value; }
}
public JQueryFeature(string id, string name, int level, bool enableSelect)
{
_id = id;
_name = name;
_level = level;
_enableSelect = enableSelect;
}
public override string ToString()
{
return String.Format("Name:{0}+Id:{1}", Name, Id);
}
}
#endregion
/// <summary>
/// 加载培训教材
/// </summary>
/// <param name="myList"></param>
/// <param name="menuId"></param>
/// <param name="depth"></param>
private void BoundTree(List<JQueryFeature> myList, string menuId, int depth)
{
var dt = GetNewTraining(menuId);
if (dt.Count() > 0)
{
foreach (var dr in dt)
{
myList.Add(new JQueryFeature(dr.CompanyTrainingId, dr.CompanyTrainingName, depth, false));
BoundTree(myList, dr.CompanyTrainingId, depth + 1);
}
}
else
{
var item = Funs.DB.Training_CompanyTrainingItem.Where(x => x.CompanyTrainingId == menuId).OrderBy(x => x.CompanyTrainingItemCode);
if (item.Count() > 0)
{
foreach (var dr in item)
{
myList.Add(new JQueryFeature(dr.CompanyTrainingItemId, dr.CompanyTrainingItemName, depth, true));
}
}
}
}
/// <summary>
/// 得到菜单方法
/// </summary>
/// <param name="parentId"></param>
/// <returns></returns>
private List<Model.Training_CompanyTraining> GetNewTraining(string parentId)
{
return (from x in Funs.DB.Training_CompanyTraining where x.SupCompanyTrainingId == parentId orderby x.CompanyTrainingCode select x).ToList(); ;
}
#endregion
#region
/// <summary>
/// 提交按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSubmit_Click(object sender, EventArgs e)
{
this.SaveData(Const.BtnSubmit);
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
this.SaveData(Const.BtnSave);
}
#endregion
#region
/// <summary>
/// 保存数据
/// </summary>
/// <param name="type"></param>
private void SaveData(string type)
{
var db = Funs.DB;
Model.Training_Plan trainingPlan = new Model.Training_Plan();
trainingPlan.ProjectId = this.CurrUser.LoginProjectId;
trainingPlan.PlanName = this.txtPlanName.Text;
trainingPlan.PlanCode = this.txtPlanCode.Text;
trainingPlan.TrainContent = this.txtTrainContent.Text;
trainingPlan.TeachMan = this.txtTeachMan.Text;
trainingPlan.TeachHour = decimal.Parse(this.txtTeachHour.Text);
trainingPlan.TrainStartDate = this.dpTrainStartDate.SelectedDate;
trainingPlan.TrainEndDate = this.dpTrainEndDate.SelectedDate;
trainingPlan.TeachAddress = this.txtTeachAddress.Text;
trainingPlan.UnitIds = string.Join(",", dpUnit.SelectedValueArray);
trainingPlan.WorkPostId = string.Join(",", dpWorkPost.SelectedValueArray);
trainingPlan.DesignerId = CurrUser.UserId;
trainingPlan.DesignerDate = DateTime.Now;
trainingPlan.TrainLevelId = drpTrainLevel.SelectedValue;
trainingPlan.TrainTypeId = drpTrainType.SelectedValue;
trainingPlan.Cycle = drpCycle.SelectedValue;
trainingPlan.States = "0";
if (type == Const.BtnSubmit)
{
trainingPlan.States = "1";
}
if (string.IsNullOrEmpty(PlanId))
{
//string code = ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectCode + "-";
//trainingPlan.PlanCode = BLL.SQLHelper.RunProcNewId("SpGetNewCode5ByProjectId", "dbo.Training_Plan", "PlanCode", this.CurrUser.LoginProjectId, code);
//trainingPlan.PlanCode = CodeRecordsService.ReturnCodeByMenuIdProjectId(Const.ProjectTrainingPlanMenuId, CurrUser.LoginProjectId, CurrUser.UnitId);
trainingPlan.PlanId = SQLHelper.GetNewID();
TrainingPlanService.AddPlan(trainingPlan);
CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(Const.ProjectTrainingPlanMenuId, trainingPlan.ProjectId, null, trainingPlan.PlanId, trainingPlan.DesignerDate);
}
else
{
trainingPlan.PlanId = PlanId;
TrainingPlanService.UpdatePlan(trainingPlan);
////删除培训教材类型
var planItem = (from x in db.Training_PlanItem where x.PlanId == trainingPlan.PlanId select x).ToList();
if (planItem.Count() > 0)
{
db.Training_PlanItem.DeleteAllOnSubmit(planItem);
db.SubmitChanges();
}
////删除培训任务
var tasks = from x in db.Training_Task where x.PlanId == trainingPlan.PlanId select x;
if (tasks.Count() > 0)
{
var taskItems = from x in db.Training_TaskItem where x.PlanId == trainingPlan.PlanId select x;
if (tasks.Count() > 0)
{
db.Training_TaskItem.DeleteAllOnSubmit(taskItems);
db.SubmitChanges();
}
db.Training_Task.DeleteAllOnSubmit(tasks);
db.SubmitChanges();
}
}
if (dpCompanyTraining.SelectedValueArray != null && dpCompanyTraining.SelectedValueArray.Count() > 0)
{
////新增培训计划明细
foreach (var CompanyTrainingItemId in dpCompanyTraining.SelectedValueArray)
{
if (!string.IsNullOrEmpty(CompanyTrainingItemId))
{
Model.Training_PlanItem newPlanItem = new Model.Training_PlanItem
{
PlanItemId = SQLHelper.GetNewID(),
PlanId = trainingPlan.PlanId,
};
if (!string.IsNullOrEmpty(CompanyTrainingItemId))
{
newPlanItem.CompanyTrainingItemId = CompanyTrainingItemId;
var trainingItem = Funs.DB.Training_CompanyTrainingItem.FirstOrDefault(x => x.CompanyTrainingItemId == CompanyTrainingItemId);
if (trainingItem != null)
{
newPlanItem.CompanyTrainingId = trainingItem.CompanyTrainingId;
}
}
db.Training_PlanItem.InsertOnSubmit(newPlanItem);
db.SubmitChanges();
}
}
}
if (dpSysUser.SelectedValueArray != null && dpSysUser.SelectedValueArray.Count() > 0)
{
////新增培训任务
foreach (var PersonId in dpSysUser.SelectedValueArray)
{
if (!string.IsNullOrEmpty(PersonId))
{
string taskId = SQLHelper.GetNewID();
Model.Training_Task newTrainDetail = new Model.Training_Task
{
TaskId = taskId,
ProjectId = trainingPlan.ProjectId,
PlanId = trainingPlan.PlanId,
UserId = PersonId,
TaskDate = DateTime.Now,
States = Const.State_0, ////未生成培训教材明细
};
db.Training_Task.InsertOnSubmit(newTrainDetail);
db.SubmitChanges();
if (dpCompanyTraining.SelectedValueArray != null && dpCompanyTraining.SelectedValueArray.Count() > 0)
{
foreach (var CompanyTrainingItemId in dpCompanyTraining.SelectedValueArray)
{
var trainingItem = db.Training_CompanyTrainingItem.FirstOrDefault(x => x.CompanyTrainingItemId == CompanyTrainingItemId);
Model.Training_TaskItem newTaskItem = new Model.Training_TaskItem
{
TaskItemId = SQLHelper.GetNewID(),
TaskId = taskId,
PlanId = trainingPlan.PlanId,
PersonId = PersonId,
TrainingItemCode = trainingItem.CompanyTrainingItemCode,
TrainingItemName = trainingItem.CompanyTrainingItemName,
AttachUrl = trainingItem.AttachUrl,
CompanyTrainingItemId = trainingItem.CompanyTrainingItemId,
//LearnTime = trainingItem.LearningTime,
//VideoProgress = 0,
};
db.Training_TaskItem.InsertOnSubmit(newTaskItem);
db.SubmitChanges();
}
var taskItem = db.Training_Task.FirstOrDefault(x => x.TaskId == taskId);
////更新培训任务
taskItem.States = Const.State_1;
db.SubmitChanges();
}
}
}
}
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
#endregion
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpSupCheckItemSet_SelectedIndexChanged(object sender, EventArgs e)
{
//this.drpCheckItem.Items.Clear();
//Technique_CheckItemSetService.InitCheckItemSetNameDropDownList(this.drpCheckItem, "2", this.drpSupCheckItemSet.SelectedValue, false);
}
protected void drpWorkUnit_SelectedIndexChanged(object sender, EventArgs e)
{
string unitName = ((DropDownList)sender).SelectedValue;
string id = "";
if (unitName != BLL.Const._Null)
{
var unit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == unitName);
if (unit != null)
{
id = unit.UnitId;
}
}
var sysUser = BLL.ProjectUserService.GetProjectUserByUnitidAndProjectId(CurrUser.LoginProjectId, id, Const.HSSEManager);
List<ListItem> lists = new List<ListItem>();
foreach (var item in sysUser)
{
lists.Add(new ListItem(item.UserName, item.UserName));
}
}
protected void dpUnit_SelectedIndexChanged(object sender, EventArgs e)
{
initdpSysUser();
}
protected void dpWorkPost_SelectedIndexChanged(object sender, EventArgs e)
{
initdpSysUser();
}
protected void drpTrainType_SelectedIndexChanged(object sender, EventArgs e)
{
initdpSysUser();
}
private void initdpSysUser()
{
if (dpUnit.SelectedValueArray != null && dpWorkPost.SelectedValueArray != null)
{
dpSysUser.Items.Clear();
string unitIds = string.Join(",", dpUnit.SelectedValueArray);
string workPostIds = string.Join(",", dpWorkPost.SelectedValueArray);
var getDataList = APIPersonService.getTrainingPersonListByTrainTypeId(this.CurrUser.LoginProjectId, unitIds, workPostIds, "", drpTrainType.SelectedValue, "", "").OrderBy(x => x.UnitName).ThenBy(x => x.ProjectName).ToList();
dpSysUser.DataTextField = "PersonName";
dpSysUser.DataValueField = "PersonId";
dpSysUser.DataSource = getDataList;
dpSysUser.DataBind();
}
}
}
}