using BLL; using Model.Enums; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; namespace FineUIPro.Web.Customization.CNCEC4.ZHGL.Report { public partial class EmergencyYearEdit : PageBase { public string Id { get { return (string)ViewState["Id"]; } set { ViewState["Id"] = value; } } public string EmId { get { return (string)ViewState["EmId"]; } set { ViewState["EmId"] = value; } } public string action { get { return (string)ViewState["action"]; } set { ViewState["action"] = value; } } /// /// 定义集合 /// private static List details = new List(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.Id = Request.Params[nameof(Id)]; this.action = Request.Params[nameof(action)]; showInfo(); if (this.action == ActionEnums.View.ToString()) { btnSave.Hidden = true; btnSubmit.Hidden = true; btnNew.Hidden = true; } } } /// /// 加载数据 /// void showInfo() { // 删除选中单元格的客户端脚本 string deleteScript = GetDeleteScript(); this.txtUnitName.Text = BLL.UnitService.GetUnitNameByUnitId(CurrUser.UnitId); var resultDetail = Funs.DB.Report_EmergencyYear_c.FirstOrDefault(a => a.Id == this.Id); if (resultDetail != null) { this.EmId = resultDetail.EmId; var result = Funs.DB.Report_EmergencyYear.FirstOrDefault(a => a.Id == resultDetail.EmId); txtUnitName.Text= BLL.UnitService.GetUnitNameByUnitId(result.Unitid); this.txtCreateDate.Text = result.CreateDate.ToString(); //加载列表 details.Clear(); var detailList = Funs.DB.Report_EmergencyYear_c.Where(x => x.EmId == EmId).ToList(); details = detailList; Grid1.DataSource = details; Grid1.DataBind(); } else { this.txtCreateDate.Text = DateTime.Now.ToString(); //如果没有数据,则加载该单位下的所有子项并且非本单位 var thisUnit = BLL.CommonService.GetIsThisUnit(); if (thisUnit.UnitId != this.CurrUser.UnitId) { var projectList = Funs.DB.Base_Project.Where(x => x.UnitId == this.CurrUser.UnitId).ToList(); if (projectList.Count > 0) { var detailList = new List(); var emid= Guid.NewGuid().ToString(); foreach (var item in projectList) { Model.Report_EmergencyYear_c modelDetail = new Model.Report_EmergencyYear_c(); modelDetail.Id= Guid.NewGuid().ToString(); modelDetail.EmId = emid; modelDetail.ProjectName = item.ProjectName; detailList.Add(modelDetail); } details = detailList; Grid1.DataSource = details; Grid1.DataBind(); } } } } protected void btnSave_Click(object sender, EventArgs e) { SaveData(BLL.Const.BtnSave); } /// /// 提交 /// /// /// protected void btnSubmit_Click(object sender, EventArgs e) { SaveData(BLL.Const.BtnSubmit); } /// /// 添加明细按钮 /// /// /// protected void btnAdd_Click(object sender, EventArgs e) { JArray teamGroupData = Grid1.GetMergedData(); List list = new List(); foreach (JObject teamGroupRow in teamGroupData) { JObject values = teamGroupRow.Value("values"); values.Add("Id", teamGroupRow.Value("id")); list.Add(values); } JObject defaultObj = new JObject { { "Id",Guid.NewGuid() }, { "ProjectName", "" }, { "EmName", "" }, { "EmDate",""}, { "EmScene", "" }, { "EmType","" }, { "Delete", String.Format("", GetDeleteScript(), IconHelper.GetResolvedIconUrl(Icon.Delete)) } }; list.Add(defaultObj); Grid1.DataSource = list; Grid1.DataBind(); } #region 保存 void SaveData(string type) { Model.Report_EmergencyYear model = new Model.Report_EmergencyYear() { Unitid = this.CurrUser.UnitId, CreateDate = Convert.ToDateTime(this.txtCreateDate.Text), }; if (type == BLL.Const.BtnSave) { model.States = "0"; } else { model.States = "1"; } if (this.action == ActionEnums.Edit.ToString() || !string.IsNullOrEmpty(this.Id)) { model.Id = this.EmId; EmergencyYearService.Update(model); //删除子表重新添加 EmergencyYearService.DeleteCbyRiskId(model.Id); } else { model.Id = SQLHelper.GetNewID(typeof(Model.Report_EmergencyYear)); this.EmId = model.Id; EmergencyYearService.Insert(model); } var str = this.SaveDetail(type, model); if (str == "保存成功") { ShowNotify(this.SaveDetail(type, model), MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } else { ShowNotify(this.SaveDetail(type, model), MessageBoxIcon.Warning); } } /// /// 保存明细项 /// private string SaveDetail(string type, Model.Report_EmergencyYear model) { var errMsg = ""; try { var olddetailLists = Funs.DB.Report_EmergencyYear_c.Where(x => x.EmId == this.EmId).ToList(); List needRemove = new List(); foreach (var oldDetail in olddetailLists) { bool hasFind = false; for (int i = 0; i < Grid1.Rows.Count; i++) { if (oldDetail.Id == Grid1.Rows[i].DataKeys[0].ToString()) { hasFind = true; break; } } if (!hasFind) { EmergencyYearService.DeleteC(oldDetail.Id); } } List detailLists = new List(); JArray teamGroupData = Grid1.GetMergedData(); var fIndex = 1; foreach (JObject teamGroupRow in teamGroupData) { JObject values = teamGroupRow.Value("values"); int rowIndex = teamGroupRow.Value("index"); Model.Report_EmergencyYear_c newDetail = new Model.Report_EmergencyYear_c() { Id = values.Value("Id"), EmId = this.EmId, ProjectName = values.Value("ProjectName"), EmName = values.Value("EmName"), EmScene = values.Value("EmScene"), EmType = values.Value("EmType") }; if (string.IsNullOrEmpty(newDetail.ProjectName)) { errMsg = "第" + fIndex.ToString() + "行分支机构不能为空"; break; } if (string.IsNullOrEmpty(newDetail.EmName)) { errMsg = "第" + fIndex.ToString() + "行演练名称不能为空"; break; } var emDate = values.Value("EmDate"); if (string.IsNullOrEmpty(emDate)) { errMsg = "第" + fIndex.ToString() + "行演练日期不能为空"; break; } newDetail.EmDate = Convert.ToDateTime(emDate); if (Grid1.Rows[rowIndex].DataKeys.Length > 0) { newDetail.Id = Grid1.Rows[rowIndex].DataKeys[0].ToString(); } var newDetailModel = Funs.DB.Report_EmergencyYear_c.FirstOrDefault(x => x.Id == newDetail.Id); if (newDetailModel == null) { EmergencyYearService.InsertC(newDetail); } else { EmergencyYearService.UpdateC(newDetail); } } } catch (Exception ex) { throw ex; } if (!string.IsNullOrEmpty(errMsg)) { return errMsg; } return "保存成功"; } #endregion /// /// /// /// /// protected void Grid1_PreDataBound(object sender, EventArgs e) { // 设置LinkButtonField的点击客户端事件 LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField; deleteField.OnClientClick = GetDeleteScript(); } /// /// 删除提示 /// /// private string GetDeleteScript() { return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty); } } }