protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { DataBind(); if (Mid > 0) { proMod = proBll.SelReturnModel(Mid); proNameT.Text = proMod.ProcedureName; NickName_T.Text = proMod.SponsorGroup; ProClass_DP.SelectedValue = proMod.ClassID.ToString(); ProType_DP.SelectedValue = proMod.TypeID.ToString(); //FormType_Rad.SelectedValue = proMod.FormType.ToString(); FormInfo_T.Text = proMod.FormInfo; //manager_Hid.Value = proMod.Manager; sponsor_Hid.Value = proMod.Sponsor; //manager_T.Text = perBll.GetRoleNameByIDs(proMod.Manager); //buser.GetUserNameByIDS(proMod.Manager); sponsor_T.Text = perBll.GetRoleNameByIDs(proMod.Sponsor); flowdoc_chk.Checked = proMod.AllowAttach == 1; //CanEditField_T.Text = proMod.CanEditField; remindT.Text = proMod.Remind; FlowTlp_DP.SelectedValue = proMod.FlowTlp; PrintTlp_DP.SelectedValue = proMod.PrintTlp; function.Script(this, "SetChkVal('docauth_chk','" + proMod.DocAuth + "');"); } } Call.SetBreadCrumb(Master, "<li><a href='" + CustomerPageAction.customPath2 + "Main.aspx'>工作台</a></li><li><a href='../Config/SiteOption.aspx'>系统设置</a></li><li><a href='Default.aspx'>流程管理</a></li><li class='active'>添加流程</a></li>"); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string proName = ""; if (ProID > 0) { M_MisProcedure proceMod = proBll.SelReturnModel(ProID); if (proceMod != null) { proName = "[" + proceMod.ProcedureName + "]"; } } switch (CurrentView) { case "1": CurView_L.Text = "待办公文" + proName; break; case "2": CurView_L.Text = "已办公文" + proName; break; case "3": CurView_L.Text = "我的公文" + proName; break; case "4": CurView_L.Text = "我的借阅" + proName; break; } MyBind(); } }
protected void saveBtn_Click(object sender, EventArgs e) { if (Mid > 0) { proMod = proBll.SelReturnModel(Mid); } proMod.ProcedureName = proNameT.Text.Trim(); proMod.ClassID = DataConvert.CLng(ProClass_DP.SelectedValue); proMod.TypeID = Convert.ToInt32(ProType_DP.SelectedValue); //proMod.FormType = Convert.ToInt32(FormType_Rad.SelectedValue); proMod.FormInfo = FormInfo_T.Text; //proMod.Manager = buser.GetIdsByUserName(manager_T.Text.Trim()); proMod.Sponsor = sponsor_Hid.Value; proMod.SponsorGroup = NickName_T.Text.Trim(); //proMod.ModelID = modelDP.SelectedValue; proMod.AllowAttach = flowdoc_chk.Checked ? 1 : 0; proMod.AllowFlow = 1; proMod.CanEditField = "*"; proMod.Remind = remindT.Text.Trim(); proMod.NodeID = 0;//绑定节点,暂无用 proMod.DocAuth = Request.Form["docauth_chk"]; proMod.FlowTlp = FlowTlp_DP.SelectedValue; proMod.PrintTlp = PrintTlp_DP.SelectedValue; if (Mid > 0) { proBll.UpdateByID(proMod); } else { proBll.insert(proMod); } function.WriteSuccessMsg("操作成功", "Default.aspx"); }
//------------Tools public M_OA_Document FillMod(M_OA_Document oaMod = null) { M_UserInfo mu = buser.GetLogin(); if (oaMod == null) { oaMod = new M_OA_Document(); } M_MisProcedure proceMod = proceBll.SelReturnModel(ProID); oaMod.UserID = mu.UserID; oaMod.CreateTime = DateTime.Now; oaMod.Status = 0; oaMod.ProID = ProID; //oaMod.Branch = groupBll.GetGroupNameByID(mu.GroupID.ToString()); oaMod.CurStepNum = 0; oaMod.PublicAttach = Attach_Hid.Value.Trim('|'); oaMod.PrivateAttach = FName_Hid.Value; //----------- oaMod.Title = OAFormUI.Title_ASCX; oaMod.SendDate = DataConverter.CDate(OAFormUI.SendDate_ASCX); oaMod.No = ViewState["No"].ToString(); oaMod.ProType = proceMod.TypeID; return(oaMod); }
//保存 protected void Save_Btn_Click(object sender, EventArgs e) { OAFormUI.vstate = ViewState; Call commonCall = new Call(); M_OA_Document oaMod = null; if (Mid > 0) { oaMod = oaBll.SelReturnModel(Mid); } oaMod = FillMod(oaMod); M_MisProcedure proceMod = proceBll.SelReturnModel(ProID); DataTable table = OAFormUI.CreateTable(OAFormUI.GetFields(OAFormUI.ModelID).Split(',')); if (Mid > 0)//修改 { M_CommonData conMod = conBll.SelReturnModel(Convert.ToInt32(oaMod.Content)); conBll.UpdateContent(table, conMod); oaBll.UpdateByID(oaMod); } else { oaMod.Content = commonCall.AddContentToNode(oaMod, NodeID, OAFormUI.ModelID, table).ToString(); oaMod.ID = oaBll.insert(oaMod); } oaCom.CreateStep(oaMod, proceMod, new OAStepParam() { IsFirst = true, ReferUser = ReferUser_Hid.Value, StepNum = 1 }); Response.Redirect("ViewDrafting.aspx?ID=" + oaMod.ID + "&FlowType=2"); }
public void CreateFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { M_MisProLevel freeMod = null; if (param.IsFirst) { freeMod = freeBll.SelByDocID(oaMod.ID); } else if (param.StepID > 0)//修改步骤 { freeMod = freeBll.SelReturnModel(param.StepID); } bool isUpdate = true; if (freeMod == null)//非修改则新建 { isUpdate = false; freeMod = new M_MisProLevel(); } freeMod.ProID = proceMod.ID; freeMod.stepNum = param.StepNum; freeMod.stepName = proceMod.ProcedureName + "第" + param.StepNum + "步"; freeMod.SendMan = buser.GetLogin().UserID.ToString(); freeMod.ReferUser = param.ReferUser.Trim(','); freeMod.ReferGroup = ""; freeMod.CCUser = param.CCUser.Trim(','); freeMod.CCGroup = ""; freeMod.HQoption = 1; freeMod.Qzzjoption = 0; freeMod.HToption = 2; freeMod.EmailAlert = ""; freeMod.EmailGroup = ""; freeMod.SmsAlert = ""; freeMod.SmsGroup = ""; freeMod.BackOption = oaMod.ID; freeMod.PublicAttachOption = 1; freeMod.PrivateAttachOption = 1; freeMod.DocAuth = "refer"; freeMod.Status = 1; freeMod.CreateTime = DateTime.Now; freeMod.Remind = oaMod.Title + "的流程"; if (isUpdate) { freeBll.UpdateByID(freeMod); } else { freeBll.Insert(freeMod); if (!param.IsFirst)//非起始步骤修改,则更新状态 { oaMod.Status = 0; oaBll.UpdateByID(oaMod); } } }
//---------------Tool /// <summary> /// 用户是否有发起权限 /// </summary> public bool CheckSponsor(int proID, int userID) { bool flag = false; model = SelReturnModel(proID); if (string.IsNullOrEmpty(model.Sponsor) || model.Sponsor.Contains("," + userID + ",")) { flag = true; } return(flag); }
public void ShowPage(M_MisProcedure proceMod) { if (Mid > 0) { M_OA_Document oaMod = oaBll.SelReturnModel(Mid); DataTable dtContent = conBll.GetContent(Convert.ToInt32(oaMod.Content)); if (dtContent == null || dtContent.Rows.Count < 1) { return; } OAFormUI.dataRow = dtContent.Rows[0]; OAFormUI.MyBind(); } }
//后期可扩展为单步步骤,自由 public void CreateAdminFreeStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { //从proceMod中拷贝流程信息,但主办人可自指定 M_MisProLevel freeMod = null; M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(proceMod.ID, param.StepNum); if (stepMod == null) { function.WriteErrMsg("错误:" + proceMod.ProcedureName + "下步骤不完整"); } if (param.IsFirst) { freeMod = freeBll.SelByDocID(oaMod.ID); } else if (param.StepID > 0) { freeMod = freeBll.SelReturnModel(param.StepID); } bool isUpdate = true;//需处理 if (freeMod == null) { isUpdate = false; stepMod.ID = 0; freeMod = stepMod; } freeMod.SendMan = buser.GetLogin().UserID.ToString(); freeMod.ReferUser = param.ReferUser.Trim(','); freeMod.ReferGroup = ""; freeMod.CCUser = param.CCUser.Trim(','); //freeMod.CCGroup = ""; freeMod.BackOption = oaMod.ID; freeMod.CreateTime = DateTime.Now; freeMod.Remind = oaMod.Title + "的流程"; if (isUpdate) { freeBll.UpdateByID(freeMod); } else { freeBll.Insert(freeMod); if (!param.IsFirst) { oaMod.Status = 0; oaBll.UpdateByID(oaMod); } } }
//获取ZL_User中的数据,包含组名等 //完结自由流程,只有会签完毕才会显示 protected void Free_Sure_Btn_Click(object sender, EventArgs e) { //判断是否真的执行完成,避免用户添加了步骤后,又点完结流程 if (freeBll.IsLastStep(oaMod, CurrentStep)) { M_MisProcedure proceMod = proceBll.SelReturnModel(oaMod.ProID); oaMod.Status = proceMod.AllowAttach == 1 ? (int)ZLEnum.ConStatus.Filed : (int)ZLEnum.ConStatus.Audited; oaBll.UpdateByID(oaMod); Response.Redirect(Request.RawUrl); } else { Page.ClientScript.RegisterStartupScript(this.GetType(), "disAlert", "alert('流程未完成,是否已指定下一步骤!!!');location=location;", true); } }
//---------------------流程块 public void CreateStep(M_OA_Document oaMod, M_MisProcedure proceMod, OAStepParam param) { switch (proceMod.MyProType) { case M_MisProcedure.ProTypes.Admin: ////不需处理 //break; case M_MisProcedure.ProTypes.AdminFree: CreateAdminFreeStep(oaMod, proceMod, param); break; case M_MisProcedure.ProTypes.Free: CreateFreeStep(oaMod, proceMod, param); break; } }
public ActionResult EditProcedure() { int id = Convert.ToInt32(Request.QueryString["ProID"]); M_MisProcedure proMod = mpBll.SelReturnModel(id); if (proMod != null) { ViewBag.TxtName = proMod.ProcedureName; DataTable dt = proBll.SelByProID(id); ViewBag.repdt = dt; if (dt.Rows.Count > 0) { ViewBag.txtTRLastIndex = (dt.Rows.Count + 1).ToString(); } else { ViewBag.txtTRLastIndex = "1"; } SqlParameter[] sp2 = new SqlParameter[] { new SqlParameter("ID", proMod.MyProType) }; string Name = mtBll.Sel("ID=@ID", "ID", sp2).Rows[0]["TypeName"].ToString(); ViewBag.DrpTypeSel = Name; } else { ViewBag.TxtName.Text = ""; } DataTable types = mtBll.Sels(); List <SelectListItem> nodeList = new List <SelectListItem>(); nodeList.Add(new SelectListItem { Text = "全部", Value = "0" }); foreach (DataRow row in types.Rows) { nodeList.Add(new SelectListItem { Text = row.Field <string>("TypeName"), Value = row.Field <int>("ID").ToString() }); } ViewBag.types = nodeList; return(View()); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { if (AppID < 1) { function.WriteErrMsg("未指定需要打印的文档"); } M_OA_Document oaMod = oaBll.SelReturnModel(AppID); M_MisProcedure proceMod = proceBll.SelReturnModel(oaMod.ProID); ascx = proceMod.PrintTlp; OAFormUI.InitControl(ViewState, Convert.ToInt32(proceMod.FormInfo)); OAFormUI.Title_ASCX = oaMod.Title; OAFormUI.SendDate_ASCX = oaMod.SendDate.ToString("yyyy年MM月dd日"); OAFormUI.NO_ASCX = oaMod.No; DataTable dtContent = conBll.GetContent(Convert.ToInt32(oaMod.Content)); OAFormUI.dataRow = dtContent.Rows[0]; OAFormUI.MyBind(); } }
public M_MisProcedure SelReturnModel(int ID) { if (ID == 0) { M_MisProcedure freeMod = new M_MisProcedure(); freeMod.TypeID = (int)M_MisProcedure.ProTypes.Free; freeMod.ProcedureName = "自由流程"; return(freeMod); } using (SqlDataReader reader = Sql.SelReturnReader(strTableName, PK, ID)) { if (reader.Read()) { return(model.GetModelFromReader(reader)); } else { return(null); } } }
//protected void Type_SelectedIndexChanged(object sender, EventArgs e) //{ // int modelID = DataConvert.CLng(Type.SelectedValue.ToString()); // if (modelID > 0) // { // mmis = bmis.SelReturnModel(modelID); // Content.Text = mmis.ModelContent; // } // else // { // Content.Text = ""; // } //} //protected void proDP_SelectedIndexChanged(object sender, EventArgs e) //{ // if (proDP.SelectedIndex == 0) return; // int proID = DataConvert.CLng(proDP.SelectedValue); // proMod = proBll.SelReturnModel(proID); // if (proMod.AllowAttach == 1) // { // upFileTR.Visible = true; // } //} //保存 #endregion protected void saveBtn_Click(object sender, EventArgs e) { int proID = DataConverter.CLng(proDP.SelectedValue); if (Request.QueryString["Edit"] == "1" && Request.QueryString["appID"] != "") { moa = boa.SelReturnModel(DataConvert.CLng(Request.QueryString["appID"])); FillMod(0, moa); boa.UpdateByID(moa); } else { moa = FillMod(0); moa.ID = boa.insert(moa); } M_MisProcedure proceMod = proBll.SelReturnModel(moa.ProID); oaCom.CreateStep(moa, proceMod, new OAStepParam() { IsFirst = true, ReferUser = RUserID_Hid.Value, StepNum = 1 }); { //同步入能力中心 M_User_Plat upMod = B_User_Plat.GetLogin(); if (upMod != null) { B_Blog_Msg msgBll = new B_Blog_Msg(); M_Blog_Msg msgMod = new M_Blog_Msg(); msgMod.CompID = upMod.CompID; msgMod.CUser = upMod.UserID; msgMod.CUName = upMod.TrueName; msgMod.MsgContent = "[" + upMod.TrueName + "]发布了一条公文,标题:<a href=\"/Office/Office/ReadOffice.aspx?AppID=" + moa.ID + "\" target=\"_blank\">" + moa.Title + "</a>"; msgMod.GroupIDS = ""; msgBll.Insert(msgMod); } } Response.Redirect("ViewDrafting.aspx?ID=" + moa.ID); }
private void MyBind() { //stepCodeT.Text = GenStepCode(proID).ToString(); string key = searchText.Text; proMod = proBll.SelReturnModel(ProID); ProceName_L.Text = proMod.ProcedureName; DataTable dt = new DataTable(); dt = stepBll.SelByProID(ProID); if (!string.IsNullOrEmpty(key)) { dt.DefaultView.RowFilter = "StepName like '%" + key + "%'"; } if (dt.Rows.Count > 1) { orderBtn.Visible = true; } EGV.DataSource = dt; EGV.DataBind(); ImgData_Hid.Value = JsonHelper.JsonSerialDataTable(dt); }
//填充模型 public M_OA_Document FillMod(int status, M_OA_Document oaMod = null) { if (oaMod == null) { oaMod = new M_OA_Document(); } oaMod.UserID = buser.GetLogin().UserID; oaMod.Secret = (Secret.SelectedValue); oaMod.Urgency = (Urgency.SelectedValue); oaMod.Importance = (Importance.SelectedValue); oaMod.Urgency = (Urgency.SelectedValue); oaMod.Type = DataConverter.CLng(this.DocType_DP.SelectedValue); oaMod.Title = Title_T.Text; oaMod.Keywords = Keywords.Text; oaMod.CreateTime = DataConverter.CDate(CreateTime.Text); oaMod.Content = Content.Text; oaMod.Status = status; oaMod.ProID = DataConverter.CLng(proDP.SelectedValue); if (oaMod.ProID > 0) { M_MisProcedure proMod = proBll.SelReturnModel(oaMod.ProID); oaMod.ProType = proMod.TypeID; } else { oaMod.ProType = (int)M_MisProcedure.ProTypes.Free; } oaMod.Branch = groupBll.GetByID(buser.GetLogin().GroupID).GroupName; oaMod.CurStepNum = 0; oaMod.PublicAttach = SaveFile(); if (signRadio.Items.Count > 0 && signRadio.SelectedIndex > 0)//0是不使用签章 { oaMod.SignID = signRadio.SelectedValue + ":" + curPosD.Value; } return(oaMod); }
protected void Page_Load(object sender, EventArgs e) { if (function.isAjax()) { #region AJAX请求 string result = "", action = Request["action"], value = Request["value"]; switch (action) { case "signpwdcheck": { int id = DataConverter.CLng(Request["SignID"]); string signpwd = Request["SignPwd"]; M_OA_Sign signMod = signBll.SelByPwd(id, signpwd); if (signMod == null) { result = "0"; } else { result = signMod.VPath.Replace("//", "/"); //-----写入至数据库 M_UserInfo mu = buser.GetLogin(); M_OA_DocSigned signedMod = new M_OA_DocSigned(); signedMod.ProID = ProID; //同名签章在一个流程中只能有一个 signedMod.Step = 0; //暂时不使用 signedMod.UserID = mu.UserID; signedMod.VPath = signMod.VPath; signedMod.SignID = id; signedMod.SignName = signMod.SignName; signedMod.AppID = AppID; signedMod.CUName = mu.UserName; signedBll.InsertNoDup(signedMod); } } break; default: //addword break; } Response.Clear(); Response.Write(result); Response.Flush(); Response.End(); #endregion } if (!IsPostBack) { M_UserInfo mu = buser.GetLogin(); M_MisProcedure proceMod = proceBll.SelReturnModel(ProID); AuthDT = perBll.SelAuthByRoles(mu.UserRole); string getword = "/Plugins/Office/OfficeAction.ashx?action=getword&AppID=" + AppID; if (!string.IsNullOrEmpty(FName)) { getword += "&fname=" + HttpUtility.UrlEncode(FName); function.Script(this, "DelayLoadFile('" + getword + "');"); AuthCheck(AuthDT); } else if (Action.Equals("add") && ProID > 0)//新建 { FName = GetWordName(proceMod.ProcedureName); function.Script(this, "CreateDoc();"); AuthCheck(AuthDT); } else if (AppID > 0)//根据主键ID,打开其已有文档 { Sign_DP.Enabled = true; M_OA_Document oaMod = oaBll.SelReturnModel(AppID); if (oaMod.IsComplete) { AuthCheck(null); } //已完结则关闭操作权限 else { M_MisProLevel stepMod = stepBll.SelByProIDAndStepNum(oaMod.ProID, oaMod.CurStepNum + 1); AuthCheck(AuthDT); } //------------打开公文 if (!string.IsNullOrEmpty(oaMod.PrivateAttach)) { FName = Path.GetFileName(HttpUtility.UrlDecode(oaMod.PrivateAttach)); function.Script(this, "DelayLoadFile('" + getword + "');"); } } else { function.WriteErrMsg("参数不正确,请先核对!"); } MyBind(); BindSigned(); } }
private string CreateNo(M_MisProcedure proceMod) { //20150406190538 return(DateTime.Now.ToString(proceMod.ID + "yyyyMMddHHmmss")); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { M_UserInfo mu = buser.GetLogin(); M_MisProcedure proceMod = new M_MisProcedure(); if (Mid < 1) { ProID = DataConverter.CLng(Request.QueryString["ProID"]); if (ProID < 1) { function.WriteErrMsg("请先指定需要创建的流程!"); } proceMod = proceBll.SelReturnModel(ProID); if (!perBll.ContainRole(proceMod.Sponsor, mu.UserRole)) { function.WriteErrMsg("你没有权限使用该流程"); } ascx = proceMod.FlowTlp; ModelID = Convert.ToInt32(proceMod.FormInfo); OAFormUI.InitControl(ViewState, ModelID); switch (proceMod.MyProType) { case M_MisProcedure.ProTypes.Admin: SelUser_Tr.Visible = false; break; } ViewState["No"] = CreateNo(proceMod); //OAFormUI.Title_T = proceMod.ProcedureName; OAFormUI.SendDate_ASCX = DateTime.Now.ToString("yyyy年MM月dd日 HH:mm"); } else { M_OA_Document oaMod = new M_OA_Document(); oaMod = oaBll.SelReturnModel(Mid); if (mu.UserID != oaMod.UserID) { function.WriteErrMsg("非发起人不能修改文档!"); } if (oaBll.HasBegin(oaMod.ID)) { function.WriteErrMsg("已开始的流程不能修改"); } ProID = oaMod.ProID; proceMod = proceBll.SelReturnModel(oaMod.ProID); FName_Hid.Value = oaMod.PrivateAttach;//Word文档 ascx = proceMod.FlowTlp; ModelID = Convert.ToInt32(proceMod.FormInfo); OAFormUI.InitControl(ViewState, ModelID); OAFormUI.Title_ASCX = oaMod.Title; OAFormUI.SendDate_ASCX = oaMod.SendDate.ToString(); OAFormUI.NO_ASCX = oaMod.No; M_MisProLevel freeMod = freeBll.SelByDocID(oaMod.ID); if (freeMod != null) { ReferUser_T.Text = buser.GetUserNameByIDS(freeMod.ReferUser); ReferUser_Hid.Value = freeMod.ReferUser; } ViewState["No"] = oaMod.No; Save_Btn.Text = "修改发文"; } OAFormUI.NO_ASCX = ViewState["No"].ToString(); NodeID = proceMod.NodeID; ShowPage(proceMod); } }
//与写入新的进度信息,如果是最后一步或是拒绝,则更新OA模型 private void UpdateModel(int status) { //会签需要加判断,备注需要另外处理 oaMod = oaBll.SelReturnModel(appID); M_MisProcedure proceMod = proceBll.SelReturnModel(oaMod.ProID); //throw new Exception(progBll.IsHQComplete(appID, userID, CurrentStep).ToString()); progMod.AppID = oaMod.ID; progMod.ProID = oaMod.ProID; progMod.ProLevel = CurrentStep.stepNum; progMod.ProLevelName = CurrentStep.stepName; progMod.ApproveID = userID; progMod.Result = status; progMod.Remind = remindT.Text; progMod.CreateTime = DateTime.Now; progMod.HQUserID = userID.ToString(); //if (signRadio.Items.Count > 0 && signRadio.SelectedIndex > 0)//0是不使用签章 //{ // progMod.Sign = signRadio.SelectedValue + ":" + curPosD.Value; // progMod.SignID = signRadio.SelectedValue; //} //用于email与sms通知功能 string content = ""; //是否为最后一步 bool isLastStep = freeBll.IsLastStep(oaMod, CurrentStep); //增加通知功能, if (isLastStep && status == 98) { if (oaMod.ProType == (int)M_MisProcedure.ProTypes.AdminFree) { //公文流程且是最后一步, status = proceMod.AllowAttach == 1 ? (int)ZLEnum.ConStatus.Filed : (int)ZLEnum.ConStatus.Audited; } if (CurrentStep.HQoption > 0)//会签判断 { if (progBll.IsHQComplete(appID, userID, CurrentStep)) { oaMod.Status = status;//流程完成,全部同意 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "会签完成,已进入下一步骤"; } } else { oaMod.Status = status;//流程完成,全部同意 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成" + CurrentStep.stepName + ",进入下一步骤"; } } else if (status == 2) //回退 { #region 回退 oaMod.Status = 2; int rbStep = DataConvert.CLng(rollBackDP.SelectedValue); if (rbStep > 0) { rbStep = rbStep - 1; //自由流程回退删除步骤 freeBll.DelByStep(oaMod.ID, Convert.ToInt32(rollBackDP.SelectedValue)); } else //回退至上一步(-1) { rbStep = CurrentStep.stepNum - 2; //自由流程回退删除步骤 freeBll.DelByStep(oaMod.ID, CurrentStep.stepNum - 1); } oaMod.CurStepNum = rbStep; progMod.Remind2 = "回退至" + rbStep; progMod.HQUserID = ""; content = oaMod.Title + "已被经办人回退至" + rbStep; //回退的时候,清除目标会签与签章信息 progBll.ClearHQ(oaMod.ID, rbStep); progBll.ClearSign(oaMod.ID, rbStep); #endregion } else if (status == -1) { oaMod.Status = status; //拒绝 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已被经办人" + buser.GetLogin().HoneyName + "拒绝."; } else//同意,但未至最后一步 { if (CurrentStep.HQoption > 0)//需要会签 { if (progBll.IsHQComplete(appID, userID, CurrentStep)) { oaMod.Status = status; oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成会签审批,成功通过"; } } else { oaMod.Status = status; oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成审批,成功通过"; } } if (!string.IsNullOrEmpty(CurrentStep.EmailAlert))//Email与sms通知 { //发送邮件包括会员组里的会员(需扩展支持会员组) string ids = ""; //if (!string.IsNullOrEmpty(CurrentStep.EmailGroup)) // ids += groupBll.GetUserIDByGroupIDS(CurrentStep.EmailGroup); ids += CurrentStep.SmsAlert; ids = ids.Trim(','); emailToUser(content, ids); } //if (!string.IsNullOrEmpty(CurrentStep.SmsAlert)) //{ // smsTouser(content, CurrentStep.SmsAlert); //} progBll.Insert(progMod); oaBll.UpdateByID(oaMod); }
//与写入新的进度信息,如果是最后一步或是拒绝,则更新OA模型 private void UpdateModel(int status) { //会签需要加判断,备注需要另外处理 oaMod = oaBll.SelReturnModel(appID); //throw new Exception(progBll.IsHQComplete(appID, userID, CurrentStep).ToString()); progMod.AppID = oaMod.ID; progMod.ProID = oaMod.ProID; progMod.ProLevel = CurrentStep.stepNum; progMod.ProLevelName = CurrentStep.stepName; progMod.ApproveID = userID; progMod.Result = status; progMod.Remind = remindT.Text; progMod.CreateTime = DateTime.Now; progMod.HQUserID = userID.ToString(); if (signRadio.Items.Count > 0 && signRadio.SelectedIndex > 0)//0是不使用签章 { progMod.Sign = signRadio.SelectedValue + ":" + curPosD.Value; progMod.SignID = signRadio.SelectedValue; } //用于email与sms通知功能 string content = ""; //是否为最后一步 bool isLastStep = false; if (oaMod.ProID == 0) { isLastStep = freeBll.IsLastStep(oaMod, CurrentStep); } else { isLastStep = stepBll.IsLastStep(CurrentStep); } //增加通知功能, if (isLastStep && status == 99 || status == 98) { if (CurrentStep.HQoption > 0)//会签判断 { if (progBll.IsHQComplete(appID, userID, CurrentStep)) { oaMod.Status = status;//流程完成,全部同意 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "会签完成,已进入下一步骤"; } } else { oaMod.Status = status;//流程完成,全部同意 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成" + CurrentStep.stepName + ",进入下一步骤"; } } else if (status == 2) //回退 { oaMod.Status = 2; int rbStep = DataConvert.CLng(rollBackDP.SelectedValue); if (rbStep > 0) { rbStep = rbStep - 1; //自由流程回退删除步骤 if (oaMod.IsFreePro) { freeBll.DelByStep(oaMod.ID, Convert.ToInt32(rollBackDP.SelectedValue)); } } else //回退至上一步(-1) { rbStep = CurrentStep.stepNum - 2; //自由流程回退删除步骤 if (oaMod.IsFreePro) { freeBll.DelByStep(oaMod.ID, CurrentStep.stepNum - 1); } } oaMod.CurStepNum = rbStep; progMod.Remind2 = "回退至" + rbStep; progMod.HQUserID = ""; content = oaMod.Title + "已被经办人回退至" + rbStep; //回退的时候,清除目标会签与签章信息 progBll.ClearHQ(oaMod.ID, rbStep); progBll.ClearSign(oaMod.ID, rbStep); } else if (status == -1) { oaMod.Status = status; //拒绝 oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已被经办人" + buser.GetLogin().HoneyName + "拒绝."; } else//同意,但未至最后一步 { if (CurrentStep.HQoption > 0)//需要会签 { if (progBll.IsHQComplete(appID, userID, CurrentStep)) { oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成会签审批,成功通过"; //if (oaMod.IsFreePro) oaMod.Status = status;//如果是自由流程就仍更新状态 } } else { oaMod.CurStepNum = CurrentStep.stepNum; content = oaMod.Title + "已完成审批,成功通过"; } } if (!string.IsNullOrEmpty(CurrentStep.EmailAlert))//Email与sms通知 { //发送邮件包括会员组里的会员(需扩展支持会员组) string ids = ""; if (!string.IsNullOrEmpty(CurrentStep.EmailGroup)) { ids += groupBll.GetUserIDByGroupIDS(CurrentStep.EmailGroup); } ids += CurrentStep.SmsAlert; ids = ids.Trim(','); emailToUser(content, ids); } if (!string.IsNullOrEmpty(CurrentStep.SmsAlert)) { smsTouser(content, CurrentStep.SmsAlert); } progBll.Insert(progMod); oaBll.UpdateByID(oaMod); //分发功能 if (isLastStep && oaMod.Status == 99 && !oaMod.IsFreePro) { B_MisProcedure prodBll = new B_MisProcedure(); M_MisProcedure prodMod = prodBll.SelReturnModel(oaMod.ProID); if (prodMod.NodeID > -1)//指定了节点,才分发 { commCall.AddContentToNode(oaMod, prodMod.NodeID, OAConfig.ModelID); } } }
public bool UpdateByID(M_MisProcedure model) { return(DBCenter.UpdateByID(model, model.ID)); }
public int insert(M_MisProcedure model) { return(DBCenter.Insert(model)); }