using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; namespace FineUIPro.Web.HSSE.Check { public partial class CheckSpecialEdit : PageBase { #region 定义变量 /// /// 主键 /// public string CheckSpecialId { get { return (string)ViewState["CheckSpecialId"]; } set { ViewState["CheckSpecialId"] = value; } } /// /// 项目主键 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } //public List details //{ // get // { // return (List)ViewState["details"]; // } // set // { // ViewState["details"] = value; // } //} /// /// 定义集合 /// private static List details = new List(); #endregion // public List details = new List(); #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.btnClose.OnClientClick = ActiveWindow.GetHideReference(); this.ProjectId = this.CurrUser.LoginProjectId; this.InitDropDownList(); this.InitCheckItemSetDropDownList(); this.CheckSpecialId = Request.Params["CheckSpecialId"]; var checkSpecial = Check_CheckSpecialService.GetCheckSpecialByCheckSpecialId(this.CheckSpecialId); Technique_CheckItemSetService.InitCheckItemSetNameDropDownList(this.drpSupCheckItemSet, "2", "0", false); if (checkSpecial != null) { details.Clear(); this.ProjectId = checkSpecial.ProjectId; if (this.ProjectId != this.CurrUser.LoginProjectId) { this.InitDropDownList(); } if (!String.IsNullOrEmpty(checkSpecial.CheckType)) { this.drpType.SelectedValue = checkSpecial.CheckType; } this.InitCheckItemSetDropDownList(); this.txtCheckSpecialCode.Text = CodeRecordsService.ReturnCodeByDataId(this.CheckSpecialId); if (checkSpecial.CheckTime != null) { this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", checkSpecial.CheckTime); } this.txtPartInPersonNames.Text = checkSpecial.PartInPersonNames; if (!string.IsNullOrEmpty(checkSpecial.CheckItemSetId)) { this.drpSupCheckItemSet.SelectedValue = checkSpecial.CheckItemSetId; } if (!string.IsNullOrEmpty(checkSpecial.PartInPersonIds)) { this.drpPartInPersons.SelectedValueArray = checkSpecial.PartInPersonIds.Split(','); } var checkSpecialDetails = (from x in Funs.DB.View_CheckSpecialDetail where x.CheckSpecialId == this.CheckSpecialId orderby x.UnitName, x.SortIndex select x).ToList(); if (checkSpecialDetails.Count() > 0) { this.drpSupCheckItemSet.Readonly = true; this.drpType.Readonly = true; } details = checkSpecialDetails; Grid1.DataSource = details; Grid1.DataBind(); } else { ////自动生成编码 this.txtCheckSpecialCode.Text = CodeRecordsService.ReturnCodeByMenuIdProjectId(BLL.Const.ProjectCheckSpecialMenuId, this.ProjectId, this.CurrUser.UnitId); this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.drpSupCheckItemSet.SelectedIndex = 0; } // 删除选中单元格的客户端脚本 string deleteScript = GetDeleteScript(); // 新增数据初始值 } } #endregion protected void btnAdd_Click(object sender, EventArgs e) { //JObject defaultObj = new JObject // { { "CheckSpecialDetailId",Guid.NewGuid() }, // { "CheckAreaName", "" }, // { "UnitName", "" }, // { "HSEManage",""}, // { "Unqualified", "" }, // { "attchUrl","上传" }, // {"RiskLevel","" }, // { "CompleteStatusName", "" }, // {"LimitedDate","" }, // { "Suggestions",""}, // { "HandleStepStr", "" }, // { "Delete", String.Format("", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete)) } // }; //details = (from x in Funs.DB.View_CheckSpecialDetail // where x.CheckSpecialId == this.CheckSpecialId // orderby x.UnitName, x.SortIndex // select x).ToList(); if (details == null) details = new List(); View_CheckSpecialDetail d = new View_CheckSpecialDetail(); d.CheckSpecialDetailId = Guid.NewGuid().ToString(); details.Add(d); Grid1.DataSource= details; Grid1.DataBind(); // 在第一行新增一条数据 //btnNew.OnClientClick = Grid1.GetAddNewRecordReference(defaultObj, true); } protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string itemId = Grid1.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "attchUrl") { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckSpecial&menuId={1}&edit=1", itemId, BLL.Const.ProjectCheckSpecialMenuId))); } } /// /// 初始化下拉框 /// private void InitDropDownList() { ListItem[] item = new ListItem[4]; item[0] = new ListItem("专项检查", "0"); item[1] = new ListItem("安全周检", "1"); item[2] = new ListItem("安全月检", "2"); item[3] = new ListItem("节前节后安全检查", "3"); this.drpType.DataValueField = "Value"; this.drpType.DataTextField = "Text"; this.drpType.DataSource = item; this.drpType.DataBind(); //检查组成员 UserService.InitUserDropDownList(this.drpPartInPersons, this.ProjectId, true); // ConstValue.InitConstNameDropDownList(this.drpHandleStep, ConstValue.Group_HandleStep, true); ///责任单位 UnitService.InitUnitNameByProjectIdUnitTypeDropDownList(this.drpWorkUnit, this.ProjectId, Const.ProjectUnitType_2, true); ///单位工程 UnitWorkService.InitUnitWorkNameDropDownList(this.drpCheckArea, this.ProjectId, false); } /// /// /// private void SaveNew() { if (string.IsNullOrEmpty(this.CheckSpecialId)) { Model.Check_CheckSpecial checkSpecial = new Model.Check_CheckSpecial { CheckSpecialId = SQLHelper.GetNewID(typeof(Model.Check_CheckSpecial)), CheckSpecialCode = this.txtCheckSpecialCode.Text.Trim(), ProjectId = this.ProjectId, CompileMan=this.CurrUser.UserId, }; ///组成员 string partInPersonIds = string.Empty; string partInPersons = string.Empty; foreach (var item in this.drpPartInPersons.SelectedValueArray) { var user = BLL.UserService.GetUserByUserId(item); if (user != null) { partInPersonIds += user.UserId + ","; partInPersons += user.UserName + ","; } } if (!string.IsNullOrEmpty(partInPersonIds)) { checkSpecial.PartInPersonIds = partInPersonIds.Substring(0, partInPersonIds.LastIndexOf(",")); checkSpecial.PartInPersons = partInPersons.Substring(0, partInPersons.LastIndexOf(",")); } checkSpecial.PartInPersonNames = this.txtPartInPersonNames.Text.Trim(); checkSpecial.CheckTime = Funs.GetNewDateTime(this.txtCheckDate.Text.Trim()); ////单据状态 checkSpecial.States = Const.State_0; this.CheckSpecialId = checkSpecial.CheckSpecialId; checkSpecial.CompileMan = this.CurrUser.UserId; BLL.Check_CheckSpecialService.AddCheckSpecial(checkSpecial); BLL.LogService.AddSys_Log(this.CurrUser, checkSpecial.CheckSpecialCode, checkSpecial.CheckSpecialId, BLL.Const.ProjectCheckSpecialMenuId, BLL.Const.BtnAdd); } } #region 提交按钮 /// /// 提交按钮 /// /// /// protected void btnSubmit_Click(object sender, EventArgs e) { if (this.drpType.SelectedValue == "0" && (string.IsNullOrEmpty(this.drpSupCheckItemSet.SelectedValue) || this.drpSupCheckItemSet.SelectedValue == Const._Null)) { ShowNotify("请选择检查类别!", MessageBoxIcon.Warning); return; } this.SaveData(Const.BtnSubmit); } #endregion public string ConvertDate(object date) { if (date != null) { return string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(date)); } else { return null; } } #region 保存按钮 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (this.drpType.SelectedValue == "0" && (string.IsNullOrEmpty(this.drpSupCheckItemSet.SelectedValue) || this.drpSupCheckItemSet.SelectedValue == Const._Null)) { ShowNotify("请选择检查类别!", MessageBoxIcon.Warning); return; } this.SaveData(Const.BtnSave); } #endregion #region 保存方法 /// /// 保存数据 /// /// private void SaveData(string type) { Model.Check_CheckSpecial checkSpecial = new Model.Check_CheckSpecial { CheckSpecialCode = this.txtCheckSpecialCode.Text.Trim(), ProjectId = this.ProjectId, PartInPersonNames = this.txtPartInPersonNames.Text.Trim(), CheckTime = Funs.GetNewDateTime(this.txtCheckDate.Text.Trim()), CompileMan=this.CurrUser.UserId, CheckType=this.drpType.SelectedValue, ////单据状态 States = Const.State_0, }; ///组成员 string partInPersonIds = string.Empty; string partInPersons = string.Empty; foreach (var item in this.drpPartInPersons.SelectedValueArray) { var user = BLL.UserService.GetUserByUserId(item); if (user != null) { partInPersonIds += user.UserId + ","; partInPersons += user.UserName + ","; } } if (!string.IsNullOrEmpty(partInPersonIds)) { checkSpecial.PartInPersonIds = partInPersonIds.Substring(0, partInPersonIds.LastIndexOf(",")); checkSpecial.PartInPersons = partInPersons.Substring(0, partInPersons.LastIndexOf(",")); } var getCheckItem = Funs.DB.Technique_CheckItemSet.FirstOrDefault(x => x.CheckItemName == this.drpSupCheckItemSet.SelectedValue); if (getCheckItem != null) { checkSpecial.CheckItemSetId = getCheckItem.CheckItemSetId; } //if (!string.IsNullOrEmpty(this.drpSupCheckItemSet.SelectedValue) && this.drpSupCheckItemSet.SelectedValue != Const._Null) //{ // checkSpecial.CheckItemSetId = this.drpSupCheckItemSet.SelectedValue; //} if (!string.IsNullOrEmpty(this.CheckSpecialId)) { checkSpecial.CheckSpecialId = this.CheckSpecialId; Check_CheckSpecialService.UpdateCheckSpecial(checkSpecial); LogService.AddSys_Log(this.CurrUser, checkSpecial.CheckSpecialCode, checkSpecial.CheckSpecialId, BLL.Const.ProjectCheckSpecialMenuId, BLL.Const.BtnModify); // Check_CheckSpecialDetailService.DeleteCheckSpecialDetails(this.CheckSpecialId); } else { checkSpecial.CheckSpecialId = SQLHelper.GetNewID(typeof(Model.Check_CheckSpecial)); this.CheckSpecialId = checkSpecial.CheckSpecialId; checkSpecial.CompileMan = this.CurrUser.UserId; Check_CheckSpecialService.AddCheckSpecial(checkSpecial); LogService.AddSys_Log(this.CurrUser, checkSpecial.CheckSpecialCode, checkSpecial.CheckSpecialId, BLL.Const.ProjectCheckSpecialMenuId, BLL.Const.BtnAdd); } ShowNotify(this.SaveDetail(type, checkSpecial), MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } /// /// 保存明细项 /// private string SaveDetail(string type, Model.Check_CheckSpecial checkSpecial) { string info = string.Empty; var unitWorks = from x in Funs.DB.WBS_UnitWork where x.ProjectId == this.ProjectId && x.SuperUnitWork == null orderby x.UnitWorkCode select new { x.UnitWorkId, UnitWorkName = BLL.UnitWorkService.GetUnitWorkALLName(x.UnitWorkId) }; List detailLists = new List(); JArray teamGroupData = Grid1.GetMergedData(); foreach (JObject teamGroupRow in teamGroupData) { JObject values = teamGroupRow.Value("values"); int rowIndex = teamGroupRow.Value("index"); Model.Check_CheckSpecialDetail newDetail = new Model.Check_CheckSpecialDetail { CheckSpecialDetailId = values.Value("CheckSpecialDetailId"), CheckSpecialId = this.CheckSpecialId, CheckContent = values.Value("CheckItemName"), Unqualified = values.Value("Unqualified"), Suggestions = values.Value("Suggestions"), RectifyOpinion = values.Value("RectifyOpinion"), }; if (!string.IsNullOrEmpty(values.Value("RectifyOpinion"))) { if(values.Value("RectifyOpinion")=="") newDetail.HandleStep = ""; } if (!string.IsNullOrEmpty(values.Value("LimitedDate"))) { newDetail.LimitedDate = values.Value("LimitedDate"); } var HSE = Funs.DB.Sys_User.FirstOrDefault(x=>x.UserName== values.Value("HSE")); var getUnit = Funs.DB.Base_Unit.FirstOrDefault(x => x.UnitName == values.Value("UnitName")); if (getUnit != null) { newDetail.UnitId = getUnit.UnitId; } var getF = from x in unitWorks.ToList() where x.UnitWorkName == values.Value("CheckAreaName") select x; if (getF.FirstOrDefault() != null) { newDetail.CheckArea = getF.FirstOrDefault().UnitWorkId; } //var getUnitWork = Funs.DB.WBS_UnitWork.FirstOrDefault(x => x.UnitWorkName == values.Value("CheckAreaName") //&& x.ProjectId == this.ProjectId); //if (getUnitWork != null) //{ // newDetail.CheckArea = getUnitWork.UnitWorkId; //} if (!string.IsNullOrEmpty(values.Value("HSEManage"))) { string hsemange = values.Value("HSEManage").Split('-')[0]; Sys_User user = Funs.DB.Sys_User.FirstOrDefault(x => x.UserCode == hsemange); if (user != null) { newDetail.HSEManage = user.UserId; } } if (values.Value("CompleteStatusName") == "已整改") { newDetail.CompleteStatus = true; newDetail.CompletedDate = DateTime.Now; } else { newDetail.CompleteStatus = false; } var getCheckItem = Funs.DB.HSSE_Hazard_HazardRegisterTypes.FirstOrDefault(x => x.RegisterTypesName == values.Value("CheckItemName") ); if (getCheckItem != null) { newDetail.CheckItem = getCheckItem.RegisterTypesId; } newDetail.SortIndex = rowIndex; if (Grid1.Rows[rowIndex].DataKeys.Length > 0) { newDetail.CheckSpecialDetailId = Grid1.Rows[rowIndex].DataKeys[0].ToString(); } switch (values.Value("RiskLevel")) { case "低": newDetail.RiskLevel = "0"; break; case "一般": newDetail.RiskLevel = "1"; break; case "较高": newDetail.RiskLevel = "2"; break; case "高": newDetail.RiskLevel = "3"; break; } if (string.IsNullOrEmpty(newDetail.CheckSpecialDetailId)) { Check_CheckSpecialDetailService.AddCheckSpecialDetail(newDetail); } else { Check_CheckSpecialDetailService.UpdateCheckSpecialDetail(newDetail); } detailLists.Add(newDetail); } if (type == Const.BtnSubmit) { var getDails = detailLists.Where(x => x.CompleteStatus == false); if (getDails.Count() > 0) { info = Check_CheckSpecialService.IssueRectification(getDails.ToList(), checkSpecial); } else { checkSpecial.States = Const.State_2; Check_CheckSpecialService.UpdateCheckSpecial(checkSpecial); info = "提交成功!"; } } else { info = "保存成功!"; } return info; } #endregion #region 附件上传 /// /// 上传附件 /// /// /// protected void btnAttachUrl_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(this.CheckSpecialId)) { SaveNew(); } PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("~/AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/CheckSpecial&menuId={1}", this.CheckSpecialId, BLL.Const.ProjectCheckSpecialMenuId))); } #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); } /// /// /// /// /// 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) { //for (int i = 0; i < this.Grid1.Rows.Count; i++) //{ // DropDownList drpUnitWork = (DropDownList)Grid1.Rows[i].FindControl("drpUnitWork"); // if(((DropDownList)sender).ID == drpUnitWork.ID) // { //DropDownList drpHSE = (DropDownList)Grid1.Rows[i].FindControl("drpHSE"); 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)); } drpHSE.Items.Clear(); drpHSE.DataValueField = "Value"; drpHSE.DataTextField = "Value"; drpHSE.DataSource = lists; drpHSE.DataBind(); // } //} //this.drpHSE.Items.Clear(); //this.drpHSE.DataValueField = "UserId"; //this.drpHSE.DataTextField = "UserId"; //this.drpHSE.DataSource=BLL.ProjectUserService.GetProjectUserByProjectId(CurrUser.LoginProjectId, Const.HSSEManager); } protected void drpPartInPersons_SelectedIndexChanged(object sender, EventArgs e) { this.drpPartInPersons.SelectedValueArray = Funs.RemoveDropDownListNull(this.drpPartInPersons.SelectedValueArray); } protected void rbType_SelectedIndexChanged(object sender, EventArgs e) { InitCheckItemSetDropDownList(); } /// /// /// private void InitCheckItemSetDropDownList() { this.drpCheckItem.DataTextField = "RegisterTypesName"; this.drpCheckItem.DataValueField = "RegisterTypesName"; this.drpCheckItem.DataSource = BLL.HSSE_Hazard_HazardRegisterTypesService.GetHazardRegisterTypesList("1"); //安全巡检类型 this.drpCheckItem.DataBind(); //this.drpCheckItem.SelectedValue = null; ListItem[] item = new ListItem[4]; item[0] = new ListItem("低", "低"); item[1] = new ListItem("一般", "一般"); item[2] = new ListItem("较高", "较高"); item[3] = new ListItem("高", "高"); this.drpRiskLevel.DataValueField = "Value"; this.drpRiskLevel.DataTextField = "Text"; this.drpRiskLevel.DataSource = item; this.drpRiskLevel.DataBind(); } protected void drpCheckItem_SelectedIndexChanged(object sender, EventArgs e) { // this.drpCheckItem.SelectedValueArray = Funs.RemoveDropDownListNull(this.drpCheckItem.SelectedValueArray); } protected void Grid1_Sort(object sender, GridSortEventArgs e) { var checkSpecialDetails = (from x in Funs.DB.View_CheckSpecialDetail where x.CheckSpecialId == this.CheckSpecialId orderby x.SortIndex select x).ToList(); if (checkSpecialDetails.Count() > 0) { this.drpSupCheckItemSet.Readonly = true; this.drpType.Readonly = true; } details = checkSpecialDetails; Grid1.DataSource = details; Grid1.DataBind(); } } }