using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace FineUIPro.Web.Person.EduTrain { public partial class PlanEdit : PageBase { #region 定义变量 /// /// 主键 /// public string PlanId { get { return (string)ViewState["PlanId"]; } set { ViewState["PlanId"] = value; } } /// /// 项目主键 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } #endregion #region 加载页面 /// /// 加载页面 /// /// /// 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.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)) dpDepart.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(); 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; } } } } } #endregion /// /// 初始化下拉框 /// private void InitDropDownList() { TrainTypeService.InitTrainTypeDropDownList(drpTrainType, true); TrainLevelService.InitTrainLevelDropDownList(drpTrainLevel, true); UnitService.InitUnitByProjectIdUnitTypeDropDownList1(dpUnit, 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_Depart where postIds.Contains(x.DepartId) orderby x.DepartCode select x).ToList(); dpDepart.DataValueField = "DepartId"; dpDepart.DataTextField = "DepartName"; dpDepart.DataSource = workPost; dpDepart.DataBind(); List myList = new List(); 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 private void BoundTree(List 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); if (item.Count() > 0) { foreach (var dr in item) { myList.Add(new JQueryFeature(dr.CompanyTrainingItemId, dr.CompanyTrainingItemName, depth, true)); } } } } /// /// 得到菜单方法 /// /// /// private List GetNewTraining(string parentId) { return (from x in Funs.DB.Training_CompanyTraining where x.SupCompanyTrainingId == parentId orderby x.CompanyTrainingCode select x).ToList(); ; } #region 提交按钮 /// /// 提交按钮 /// /// /// protected void btnSubmit_Click(object sender, EventArgs e) { this.SaveData(Const.BtnSubmit); } #endregion #region 保存按钮 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { this.SaveData(Const.BtnSave); } #endregion #region 保存方法 /// /// 保存数据 /// /// 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.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(",", dpDepart.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)) { 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 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(); } ////删除培训教材类型 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(); } } if (dpSysUser.SelectedValueArray!=null&&dpSysUser.SelectedValueArray.Count() > 0) { ////新增培训人员明细 foreach (var PersonId in dpSysUser.SelectedValueArray) { if (!string.IsNullOrEmpty(PersonId)) { Model.Training_Task newTrainDetail = new Model.Training_Task { TaskId = SQLHelper.GetNewID(), 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) { ////新增培训教材类型明细 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(); } } } PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } #endregion /// /// /// /// /// 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 lists = new List(); 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 && dpDepart.SelectedValueArray != null) { dpSysUser.Items.Clear(); string unitIds=string.Join(",",dpUnit.SelectedValue); string workPostIds = string.Join(",", dpDepart.SelectedValue); 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(); } } } }