using BLL; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Aspose.Words; using System.Text; using System.Web.Security; using System.Collections; namespace FineUIPro.Web.DocManage { public partial class DocManageEdit : PageBase { /// /// 主键 /// public string DocId { get { return (string)ViewState["DocId"]; } set { ViewState["DocId"] = value; } } /// /// 办理类型 /// public string State { get { return (string)ViewState["State"]; } set { ViewState["State"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { UnitService.GetUnit(drpSendUnit, CurrUser.LoginProjectId, true); UnitService.GetUnit(txtReceivUnit, CurrUser.LoginProjectId, true); //DepartService.InitDepartDropDownList(drpDepart, this.CurrUser.UnitId, true); UnitWorkService.InitUnitWorkDownList(drpProSubject, CurrUser.LoginProjectId,true); DocTypeService.InitDocTypeDropDownList(drpDocType, true); //CNProfessionalService.InitCNProfessionalDownList(drpCNProfessional, true); Options.Hidden = true; rblIsAgree.Visible = false; DocId = Request.Params["DocId"]; BindForm(); InitCopyMan(); AddAttachTab(); } } private void AddAttachTab() { if (string.IsNullOrEmpty(hdDocId.Text)) //新增记录 { hdDocId.Text = SQLHelper.GetNewID(typeof(Model.Doc_DocManage)); } //string SourcePath = Request.RawUrl; string SourcePath = "/DocManage/DocManageView.aspx?DocId=" + hdDocId.Text; //SourcePath= SourcePath.Replace("DocManageEdit", "DocManageView"); string Classify = "文档管理-文档管理"; if (CCfile.Hidden!=true) { PageContext.RegisterStartupScript(TabStrip1.GetAddTabReference("dynamic_tab2", String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&menuId={1}", hdDocId.Text, Const.DocManageMenuId), "附件", IconHelper.GetIconUrl(Icon.Attach), false)); } // PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&menuId={1}", hdDocId.Text, Const.DocManageMenuId))); } private void InitCopyMan() { this.trCopyMan.Nodes.Clear(); this.trCopyMan.ShowBorder = false; this.trCopyMan.ShowHeader = false; this.trCopyMan.EnableIcons = true; this.trCopyMan.AutoScroll = true; this.trCopyMan.EnableSingleClickExpand = true; TreeNode rootNode = new TreeNode { Text = "抄送人员", NodeID = "0", EnableCheckBox = false, EnableCheckEvent = false, Expanded = false }; this.trCopyMan.Nodes.Add(rootNode); var units = BLL.UnitService.GetUnitByProjectIdList(this.CurrUser.LoginProjectId); string notCopyManId = this.CurrUser.UserId; string exitCopyMan = string.Empty; if (!string.IsNullOrEmpty(DocId)) { Model.Doc_DocManage doc = BLL.DocManageService.GetDocByDocId(DocId); if (doc != null) { notCopyManId = doc.CompileMan; exitCopyMan = doc.CopyMan ?? string.Empty; } } foreach (var unit in units) { TreeNode newNode = new TreeNode(); newNode.Text = unit.UnitName; newNode.NodeID = unit.UnitId; newNode.CommandName = "Unit"; newNode.EnableExpandEvent = true; newNode.EnableCheckBox = true; newNode.EnableCheckEvent = true; newNode.Expanded = true; rootNode.Nodes.Add(newNode); var users = BLL.UserService.GetUserListByProjectIdAndUnitIdAndNotCopyManId(this.CurrUser.LoginProjectId, unit.UnitId, notCopyManId); //var remove = users.FirstOrDefault(x => x.UserId == notCopyManId); //users.Remove(remove); foreach (var user in users) { TreeNode newNode2 = new TreeNode(); if (!string.IsNullOrEmpty(user.DepartId)) { newNode2.Text = BLL.DepartService.getDepartNameById(user.DepartId) + "—" + user.UserName; } else { newNode2.Text = user.UserName; } newNode2.NodeID = user.UserId; newNode2.CommandName = "User"; newNode2.EnableExpandEvent = true; newNode2.EnableCheckBox = true; newNode2.EnableCheckEvent = true; if (exitCopyMan.Contains(user.UserId)) { newNode2.EnableCheckBox = false; newNode2.EnableCheckEvent = false; if (!string.IsNullOrEmpty(user.DepartId)) { newNode2.Text = BLL.DepartService.getDepartNameById(user.DepartId) + "—" + user.UserName + "(已抄送)"; } else { newNode2.Text = user.UserName + "(已抄送)"; } } newNode.Nodes.Add(newNode2); } } } #region 全选、全不选 /// /// 全选、全不选 /// /// /// protected void trCopyMan_NodeCheck(object sender, FineUIPro.TreeCheckEventArgs e) { if (e.Checked) { this.trCopyMan.CheckAllNodes(e.Node.Nodes); SetCheckParentNode(e.Node); } else { this.trCopyMan.UncheckAllNodes(e.Node.Nodes); } txtCopyMan.Text = GetCopyManName(); } /// /// 选中父节点 /// /// private void SetCheckParentNode(TreeNode node) { if (node.ParentNode != null && node.ParentNode.NodeID != "0") { node.ParentNode.Checked = true; if (node.ParentNode.ParentNode.NodeID != "0") { SetCheckParentNode(node.ParentNode); } } } #endregion #region 绑定数据 public void BindForm() { if (!string.IsNullOrEmpty(DocId)) { hdDocId.Text = DocId; Model.Doc_DocManage doc = DocManageService.GetDocByDocId(DocId); txtDocCode.Text = doc.DocCode; txtDocName.Text = doc.DocName; if (!string.IsNullOrEmpty(doc.SendUnitId)) { drpSendUnit.SelectedValue = doc.SendUnitId; // DepartService.InitDepartDropDownList(drpDepart, doc.SendUnitId, true); } else { drpSendUnit.SelectedValue = ""; } //if (!string.IsNullOrEmpty(doc.DepartId)) //{ // drpDepart.SelectedValue = doc.DepartId; //} //else //{ // if (doc.State != Const.Doc_State_0) // { // drpDepart.AutoSelectFirstItem = false; // drpDepart.SelectedValue = ""; // } //} if (!string.IsNullOrEmpty(doc.ProjectSubjectId)) { drpProSubject.SelectedValue = doc.ProjectSubjectId; } else { if (doc.State != Const.Doc_State_0) { drpProSubject.AutoSelectFirstItem = false; drpProSubject.SelectedValue = ""; } } if (!string.IsNullOrEmpty(doc.DocTypeId)) { drpDocType.SelectedValue = doc.DocTypeId; } else { if (doc.State != Const.Doc_State_0) { drpDocType.AutoSelectFirstItem = false; drpDocType.SelectedValue = ""; } } //if (!string.IsNullOrEmpty(doc.CNProfessionalId)) //{ // drpCNProfessional.SelectedValue = doc.CNProfessionalId; //} //else //{ // if (doc.State != Const.Doc_State_0) // { // drpCNProfessional.AutoSelectFirstItem = false; // drpCNProfessional.SelectedValue = ""; // } //} txtCompileMan.Text = BLL.UserService.GetUserNameByUserId(doc.CompileMan); if (doc.CompileDate != null) { this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", doc.CompileDate); } if (doc.FinishTime != null) { this.txtFinishTime.Text = string.Format("{0:yyyy-MM-dd}", doc.FinishTime); } txtDocContent.Text = HttpUtility.HtmlDecode(doc.DocContent); if (!string.IsNullOrEmpty(doc.State)) { State = doc.State; if (doc.State == BLL.Const.Doc_State_1 && this.CurrUser.UserId != doc.CompileMan) { CCfile.Hidden = true; Options.Hidden = false; txtDocCode.Readonly = true; txtDocName.Readonly = true; drpSendUnit.Readonly = true; //drpDepart.Readonly = true; drpDocType.Readonly = true; //drpCNProfessional.Readonly = true; txtCompileMan.Readonly = true; txtCompileDate.Readonly = true; txtFinishTime.Readonly = true; txtDocContent.Readonly = true; drpProSubject.Readonly = true; } else if (doc.State == BLL.Const.Doc_State_1 && this.CurrUser.UserId == doc.CompileMan) { Options.Hidden = false; } } else { State = Const.Doc_State_0; Options.Hidden = true; rblIsAgree.Visible = false; } BindGrid(); } else { State = Const.Doc_State_0; plApprove2.Hidden = true; this.txtCompileMan.Text = this.CurrUser.UserName; this.txtCompileDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); drpSendUnit.SelectedValue = this.CurrUser.UnitId; } } public void BindGrid() { var data = DocManageApproveService.GetListData(DocId); gvApprove.DataSource = data; gvApprove.DataBind(); } #endregion protected void drpHandleType_SelectedIndexChanged(object sender, EventArgs e) { if (drpHandleMan.Items.Count > 0) { drpHandleMan.SelectedIndex = 0; } if (drpHandleType.SelectedValue == Const.Doc_State_2) { txtReceivUnit.Enabled = false; txtReceivUnit.Required = false; txtReceivUnit.SelectedIndex = 0; drpHandleMan.Enabled = false; drpHandleMan.Required = false; } else { txtReceivUnit.Enabled = true; txtReceivUnit.Required = true; drpHandleMan.Enabled = true; drpHandleMan.Required = true; } } public void submitPauseNotice() { SavePauseNotice(); Model.Doc_DocManage doc = DocManageService.GetDocByDocId(DocId); if (!string.IsNullOrEmpty(DocId)) { Model.Doc_DocManageApprove approve1 = DocManageApproveService.GetDocManageApproveByDocId(DocId); //获取当前审批人 if (doc.State == Const.Doc_State_0) { DocManageApproveService.DeleteDocManageApprovesByDocId(DocId); approve1 = DocManageApproveService.GetDocManageApproveByDocId(DocId); } doc.State = drpHandleType.SelectedValue.Trim(); if (approve1 != null) { approve1.ApproveDate = DateTime.Now; approve1.ApproveIdea = txtOpinions.Text.Trim(); DocManageApproveService.UpdateDocManageApprove(approve1); if (doc.State == Const.Doc_State_1) { Model.Doc_DocManageApprove approve = new Model.Doc_DocManageApprove(); approve.DocId = doc.DocId; if (drpHandleMan.SelectedValue != BLL.Const._Null) { approve.ApproveMan = drpHandleMan.SelectedValue; if (string.IsNullOrEmpty(doc.AcceptMan)) { doc.AcceptMan = doc.AcceptMan + drpHandleMan.SelectedValue; } else { doc.AcceptMan = doc.AcceptMan + "," + drpHandleMan.SelectedValue; } if (!string.IsNullOrEmpty(doc.ReceivUnitIds) && !doc.ReceivUnitIds.Contains(txtReceivUnit.SelectedValue)) { doc.ReceivUnitIds = doc.ReceivUnitIds + "," + txtReceivUnit.SelectedValue; } else if (string.IsNullOrEmpty(doc.ReceivUnitIds)) { doc.ReceivUnitIds = txtReceivUnit.SelectedValue; } } DocManageApproveService.AddDocManageApprove(approve); } } else { Model.Doc_DocManageApprove approve = new Model.Doc_DocManageApprove(); approve.DocId = doc.DocId; if (drpHandleMan.SelectedValue != BLL.Const._Null) { approve.ApproveMan = drpHandleMan.SelectedValue; if (string.IsNullOrEmpty(doc.AcceptMan)) { doc.AcceptMan = doc.AcceptMan + drpHandleMan.SelectedValue; } else { doc.AcceptMan = doc.AcceptMan + "," + drpHandleMan.SelectedValue; } if (!string.IsNullOrEmpty(doc.ReceivUnitIds) && !doc.ReceivUnitIds.Contains(txtReceivUnit.SelectedValue)) { doc.ReceivUnitIds = doc.ReceivUnitIds + "," + txtReceivUnit.SelectedValue; } else if (string.IsNullOrEmpty(doc.ReceivUnitIds)) { doc.ReceivUnitIds = txtReceivUnit.SelectedValue; } } DocManageApproveService.AddDocManageApprove(approve); } DocManageService.UpdateDoc(doc); } NoticeCreateUser(DocId); NoticeCopyMan(DocId); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); LogService.AddSys_Log(CurrUser, doc.DocCode, DocId, Const.DocManageMenuId, "编辑文档"); } /// /// 保存文档 /// private void SavePauseNotice() { Model.Doc_DocManage doc = new Model.Doc_DocManage(); doc.DocCode = txtDocCode.Text.Trim(); doc.DocName = txtDocName.Text.Trim(); doc.ProjectId = CurrUser.LoginProjectId; if (drpSendUnit.SelectedValue != BLL.Const._Null) { doc.SendUnitId = drpSendUnit.SelectedValue; } //if (drpDepart.SelectedValue != BLL.Const._Null) //{ // doc.DepartId = drpDepart.SelectedValue; //} if (drpProSubject.SelectedValue != BLL.Const._Null) { doc.ProjectSubjectId = drpProSubject.SelectedValue; } if (drpDocType.SelectedValue != BLL.Const._Null) { doc.DocTypeId = drpDocType.SelectedValue; } //if (drpCNProfessional.SelectedValue != BLL.Const._Null) //{ // doc.CNProfessionalId = drpCNProfessional.SelectedValue; //} //else //{ // var model = BLL.CNProfessionalService.GetCNProfessionalByName("通用"); // if (model != null) // { // doc.CNProfessionalId = model.CNProfessionalId; // } //} doc.CompileDate = Funs.GetNewDateTimeOrNow(this.txtCompileDate.Text.Trim()); doc.FinishTime = Funs.GetNewDateTimeOrNow(this.txtFinishTime.Text.Trim()); doc.DocContent = txtDocContent.Text.Trim(); if (!string.IsNullOrEmpty(DocId)) { var model = DocManageService.GetDocByDocId(DocId); string state = model.State; doc.DocId = DocId; doc.State = string.IsNullOrEmpty(state) ? Const.Doc_State_0 : state; doc.CompileMan = model.CompileMan; doc.ReceivUnitIds = model.ReceivUnitIds; doc.AcceptMan = model.AcceptMan; doc.CopyMan = model.CopyMan; DocManageService.UpdateDoc(doc); } else { if (!string.IsNullOrEmpty(hdDocId.Text)) { doc.DocId = hdDocId.Text; } else { doc.DocId = SQLHelper.GetNewID(typeof(Model.Doc_DocManage)); } DocId = doc.DocId; doc.CompileMan = CurrUser.UserId; doc.State = Const.Doc_State_0; DocManageService.AddDoc(doc); Model.Doc_DocManageApprove approve1 = new Model.Doc_DocManageApprove(); approve1.DocId = doc.DocId; approve1.ApproveMan = CurrUser.UserId; DocManageApproveService.AddDocManageApprove(approve1); } PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); LogService.AddSys_Log(CurrUser, doc.DocCode, DocId, Const.DocManageMenuId, "编辑文档"); } protected void btnSave_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId, Const.DocManageMenuId, Const.BtnSave)) { SavePauseNotice(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 闭环时推送通知到提出者 /// /// public void NoticeCreateUser(string DocId) { var model = DocManageService.GetDocByDocId(DocId); if (model != null) { if (model.State == Const.Doc_State_2) { Model.Doc_DocManageApprove approve = new Model.Doc_DocManageApprove(); approve.DocId = model.DocId; approve.ApproveMan = model.CompileMan; approve.Type = "s"; DocManageApproveService.AddDocManageApprove(approve); } } } /// /// 推送通知到抄送人员 /// /// public void NoticeCopyMan(string DocId) { TreeNode[] nodes = this.trCopyMan.GetCheckedNodes(); string copyMan = string.Empty; if (nodes.Length > 0) { foreach (TreeNode tn in nodes) { if (tn.CommandName == "User") { Model.Doc_DocManageApprove approve = new Model.Doc_DocManageApprove(); approve.DocId = DocId; approve.ApproveMan = tn.NodeID; approve.Type = "s"; DocManageApproveService.AddDocManageApprove(approve); copyMan += tn.NodeID + ","; } } } if (!string.IsNullOrEmpty(copyMan)) { copyMan = copyMan.Substring(0, copyMan.Length - 1); } Model.Doc_DocManage doc = BLL.DocManageService.GetDocByDocId(DocId); if (doc != null) { if (string.IsNullOrEmpty(doc.CopyMan)) { doc.CopyMan = copyMan; } else { doc.CopyMan = doc.CopyMan + "," + copyMan; } BLL.DocManageService.UpdateDoc(doc); } } protected string GetCopyManName() { TreeNode[] nodes = this.trCopyMan.GetCheckedNodes(); string copyMan = string.Empty; string copyManName = string.Empty; if (nodes.Length > 0) { foreach (TreeNode tn in nodes) { if (tn.CommandName == "User") { Model.Doc_DocManageApprove approve = new Model.Doc_DocManageApprove(); approve.DocId = DocId; approve.ApproveMan = tn.NodeID; approve.Type = "s"; DocManageApproveService.AddDocManageApprove(approve); copyMan += tn.NodeID + ","; } } } if (!string.IsNullOrEmpty(copyMan)) { copyMan = copyMan.Substring(0, copyMan.Length - 1); } copyManName = UserService.getUserNamesUserIds(copyMan); return copyManName; } protected void btnSubmit_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, CurrUser.UserId, Const.DocManageMenuId, Const.BtnSave)) { if (this.drpHandleType.SelectedValue != BLL.Const.Doc_State_2 && string.IsNullOrEmpty(this.txtReceivUnit.SelectedValue)) { Alert.ShowInTop("请选择单位后再提交!", MessageBoxIcon.Warning); return; } if (this.drpHandleType.SelectedValue != BLL.Const.Doc_State_2 && this.drpHandleMan.SelectedValue == BLL.Const._Null) { Alert.ShowInTop("请选择办理人后再提交!", MessageBoxIcon.Warning); return; } if (Options.Hidden == false && string.IsNullOrEmpty(this.txtOpinions.Text.Trim())) { Alert.ShowInTop("请输入办理意见!", MessageBoxIcon.Warning); return; } //if ( this.drpDepart.SelectedValue == BLL.Const._Null) //{ // Alert.ShowInTop("请选择部门后再提交!", MessageBoxIcon.Warning); // return; //} submitPauseNotice(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } protected void imgfile_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(hdDocId.Text)) //新增记录 { hdDocId.Text = SQLHelper.GetNewID(typeof(Model.Doc_DocManage)); } //string SourcePath = Request.RawUrl; string SourcePath = "/DocManage/DocManageView.aspx?DocId=" + hdDocId.Text; //SourcePath= SourcePath.Replace("DocManageEdit", "DocManageView"); string Classify = "文档管理-文档管理"; PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&menuId={1}", hdDocId.Text, Const.DocManageMenuId))); //PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/DocManage&SourcePath={1}&Classify={2}", hdDocId.Text, SourcePath, Classify))); } /// /// 总包的操作 /// public void NotEdit() { txtDocCode.Enabled = false; txtDocName.Enabled = false; drpSendUnit.Enabled = false; txtReceivUnit.Enabled = false; drpDocType.Enabled = false; // drpCNProfessional.Enabled = false; txtCompileMan.Enabled = false; txtCompileDate.Enabled = false; txtDocContent.Enabled = false; } protected void txtReceivUnit_TextChanged(object sender, EventArgs e) { UserService.InitUserProjectIdUnitIdDropDownList(drpHandleMan, CurrUser.LoginProjectId, this.txtReceivUnit.SelectedValue, true); if (this.drpHandleMan.Items.Count >= 2) { this.drpHandleMan.SelectedIndex = 1; } else { this.drpHandleMan.SelectedIndex = 0; } } protected void ChangeDocCode(object sender, EventArgs e) { //string Code = "AAAA-BBBB-CCCC-DD-EEE-FFFF"; if (drpDocType.SelectedValue == Const._Null) { return; } var Typemodel = DocTypeService.GetDocTypeById(drpDocType.SelectedValue); if (string.IsNullOrEmpty(Typemodel.CodeRule)) { ShowNotify("请维护当前类型编码规则", MessageBoxIcon.Warning); txtDocCode.Text = ""; return; } string CodeRule = Typemodel.CodeRule; string[] CodeList = CodeRule.Split('-'); if (CodeList == null && CodeList.Length != 6) { ShowNotify("请维护当前类型编码规则", MessageBoxIcon.Warning); txtDocCode.Text = ""; return; } CodeList[0] = "CWCEC"; if (drpSendUnit.SelectedValue != Const._Null) { CodeList[1] = UnitService.GetUnitCodeByUnitId(drpSendUnit.SelectedValue); } if (drpProSubject.SelectedValue != Const._Null && !string.IsNullOrEmpty(drpProSubject.SelectedValue)) { CodeList[2] = UnitWorkService.getUnitWorkByUnitWorkId(drpProSubject.SelectedValue).UnitWorkCode; } else { CodeList[2] = "0000"; } //if (drpDepart.SelectedValue!=Const._Null) //{ // CodeList[3] = DepartService.GetDepartById(drpDepart.SelectedValue).DepartCode; //} ArrayList al = new ArrayList(CodeList); al.RemoveAt(5); CodeList = (string[])al.ToArray(typeof(string)); string Code = string.Join("-", CodeList); Code += "-"; txtDocCode.Text = SQLHelper.RunProcNewIdByProjectId("SpGetNewCode5ByProjectId", "dbo.Doc_DocManage", "DocCode", CurrUser.LoginProjectId, Code); } } }