487 lines
20 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
} |