/// <summary> /// 归还任务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbnRestore_Click(object sender, EventArgs e) { try { String l_strWorkItemID = (sender as LinkButton).CommandName; String l_strTemplateName = (sender as LinkButton).CommandArgument; AgilePointWF ag = new AgilePointWF(); WorkflowService l_objWorkFlowService = ag.GetAPI(); FSWFManualWorkItem l_objManaulWorkItem = ag.GetWorkItem(l_strWorkItemID); if (l_objManaulWorkItem.Status == ProcessConstString.StepStatus.STATUS_ASSIGNED && String.Compare(CurrentUserInfo.UserName, l_objManaulWorkItem.UserID, true) == 0) { l_objWorkFlowService.UndoAssignWorkItem(l_strWorkItemID); System.Threading.Thread.Sleep(500); String l_strTableName = TableName.GetWorkItemsTableName(l_strTemplateName); String sql = String.Format(";UPDATE {0} SET D_StepStatus='{1}' WHERE CommonID ='{2}'", l_strTableName, ProcessConstString.StepStatus.STATUS_NEW, l_objManaulWorkItem.PoolID); int ret = FounderSoftware.Framework.Business.Entity.RunNoQuery(sql); if (ret > 0) { LoadTaskList(); } } else { IMessage im = new WebFormMessage(Page, String.Format("这个任务已经被'{0}'接收了。", l_objManaulWorkItem.UserID)); im.Show(); LoadTaskList(); } } catch (Exception ex) { IMessage im = new WebFormMessage(Page, ex.ToString()); im.Show(); } }
/// <summary> /// 获取任务 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lbnRetrieve_Click(object sender, EventArgs e) { try { String l_strWorkItemID = (sender as LinkButton).CommandName; String l_strTemplateName = (sender as LinkButton).CommandArgument; AgilePointWF ag = new AgilePointWF(); WorkflowService l_objWorkFlowService = ag.GetAPI(); FSWFManualWorkItem l_objManaulWorkItem = ag.GetWorkItem(l_strWorkItemID); if (l_objManaulWorkItem.Status == ProcessConstString.StepStatus.STATUS_NEW) { l_objWorkFlowService.AssignWorkItem(l_strWorkItemID); System.Threading.Thread.Sleep(500); String sqlAP = String.Format("SELECT WORK_ITEM_ID FROM WF_MANUAL_WORKITEMS WHERE POOL_ID='{0}'", l_objManaulWorkItem.PoolID); DataTable l_dtbDataTable = SQLHelper.GetDataTable2(sqlAP); String l_strOthersWorkItemID = String.Empty; String l_strOwnWorkItemID = String.Empty; for (int i = 0; i < l_dtbDataTable.Rows.Count; i++) { if (i != 0) { l_strOthersWorkItemID += ","; } l_strOthersWorkItemID += "'" + l_dtbDataTable.Rows[i]["WORK_ITEM_ID"].ToString() + "'"; if (l_objManaulWorkItem.WorkItemID != l_dtbDataTable.Rows[i]["WORK_ITEM_ID"].ToString()) { if (l_strOwnWorkItemID != "") { l_strOwnWorkItemID += ","; } l_strOwnWorkItemID += "'" + l_dtbDataTable.Rows[i]["WORK_ITEM_ID"].ToString() + "'"; } } //获得表名 String l_strTableName = TableName.GetWorkItemsTableName(l_strTemplateName); String l_strExpression = String.Format("UPDATE {0} SET Is_Common=1 WHERE WorkItemID IN ({2})", l_strTableName, l_objManaulWorkItem.PoolID, l_strOthersWorkItemID); if (l_strOwnWorkItemID != "") { l_strExpression += String.Format(";UPDATE {0} SET D_StepStatus='{1}' WHERE WorkItemID in ({2})", l_strTableName, ProcessConstString.StepStatus.STATUS_REMOVED, l_strOwnWorkItemID); } l_strExpression += String.Format(";UPDATE {0} SET D_StepStatus='{1}' WHERE WorkItemID ='{2}'", l_strTableName, ProcessConstString.StepStatus.STATUS_ASSIGNED, l_objManaulWorkItem.WorkItemID); int ret = FounderSoftware.Framework.Business.Entity.RunNoQuery(l_strExpression); if (ret > 0) { LoadTaskList(); } } else { IMessage im = new WebFormMessage(Page, String.Format("这个任务已经被'{0}'接收了。", l_objManaulWorkItem.UserID)); im.Show(); LoadTaskList(); } } catch (Exception ex) { IMessage im = new WebFormMessage(Page, ex.ToString()); im.Show(); } }
/// <summary> /// 撤销流程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvProgramFileList_RowDeleting(object sender, GridViewDeleteEventArgs e) { string strID = gvProgramFileList.DataKeys[e.RowIndex].Value.ToString(); bool bFlag = false; foreach (string strRole in CurrentUserInfo.RoleName) { if (strRole == "OA系统管理员" || strRole == "OU系统管理员" || strRole.Contains("管理员") || strRole == ConstString.RoleName.QUALITY_MEMBER) { bFlag = true; } } if (!bFlag) { IMessage ms = new WebFormMessage(Page, "只有\'OA系统管理员\'、\'OU系统管理员\'、\'管理员\'、\'质保人员\'可以撤销流程。"); ms.Show(); return; } try { B_ProgramFileInfo pfEntity = new B_ProgramFileInfo(); pfEntity.ID = int.Parse(strID); string strProcessID = pfEntity.ProcessID; //if (pfEntity.ApplyStyle == ConstString.ProgramFile.PROGRAM_CREATE) //{ // pfEntity.ProcessID = null; // pfEntity.Year = null; // //pfEntity.ApplyStyle = null; // //pfEntity.ArchiveState = null; // //pfEntity.Edition = null; // if (pfEntity.Save() == false) // { // IMessage ms = new WebFormMessage(Page, pfEntity.ErrMsgs[0].ToString()); // ms.Show(); // return; // } //}//创建 //else //{ // if (pfEntity.Delete() == false) // { // IMessage ms = new WebFormMessage(Page, pfEntity.ErrMsgs[0].ToString()); // ms.Show(); // return; // } //}//升版、注销 if (pfEntity.Delete() == false) { IMessage ms = new WebFormMessage(Page, pfEntity.ErrMsgs[0].ToString()); ms.Show(); return; } GetSearchList(true); //取消流程 AgilePointWF ag = new AgilePointWF(); WorkflowService api = ag.GetAPI(); api.CancelProcInst(strProcessID); IMessage msg = new WebFormMessage(Page, "撤销成功。"); msg.Show(); } catch (Exception ex) { IMessage ms = new WebFormMessage(Page, ex.Message.Length > 300 ? ex.Message.Substring(0, 300) : ex.Message); ms.Show(); } }
/// <summary> /// 提交按钮处理事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void SubmitBtn_Click(object sender, EventArgs e) { try { //提交动作 string strActionName = ((Button)sender).Text.Trim(); base.SubAction = strActionName; string strErrMsg = string.Empty; string strMessage = string.Empty; string strErrMessage = string.Empty; #region 传阅 if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CIRCULATE) { if (string.IsNullOrEmpty(hfCirculateUserID.Value) && string.IsNullOrEmpty(hfCirculateDeptID.Value)) { JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_CIRCULATE, true); return; } try { base.Circulate(hfCirculateDeptID.Value, "0", string.Empty, hfCirculateUserID.Value, "1", true, string.Empty, false); string strDay = OAConfig.GetConfig("传阅有效期", "天数"); int day = string.IsNullOrEmpty(strDay) ? -1 : int.Parse(strDay); wfCirculateDate.Text = DateTime.Now.AddDays(day).ToString(); if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_QG) { QualityCheck(); }//质保审查 else if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_AUDIT) { AuditCheck(); }//审核 JScript.Alert(ConstString.PromptInfo.ACTION_CIRCULATE_SUC, true); return; } catch (Exception ex) { JScript.Alert(ex.ToString(), true); return; } } #endregion #region 添加多条意见 //添加意见按钮事件 if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_ADD_COMMENT) { this.pnlComment.Visible = true; this.btnCancel.Visible = true; this.btnConfirm.Visible = true; this.btnAdd.Visible = false; return; } //确定按钮事件 if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CONFIRM) { if (string.IsNullOrEmpty(txtInfo2.Text.Trim())) { JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_ADD_COMMENT, true); return; } if (txtInfo2.Text.Trim().Length > 500) { JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_CONTENT_LEN500, true); return; } if (string.IsNullOrEmpty(hfEditIndex.Value)) { CYiJian objYj = new CYiJian(); objYj.Content = SysString.InputText(txtInfo2.Text.Trim()); objYj.FinishTime = DateTime.Now.ToString(); objYj.ID = base.IdentityID.ToString(); objYj.ViewName = base.StepName; /*开始 流程代理 */ if (OAConfig.GetConfig(ConstString.Config.Section.Start_WORKFLOW_AGENT, ConstString.Config.Key.IS_START) == "1" && wfReceiveUserID.Text != CurrentUserInfo.UserName) { objYj.UserName = wfReceiveUserName.Text; objYj.UserID = wfReceiveUserID.Text; } else { objYj.UserName = CurrentUserInfo.DisplayName; objYj.UserID = CurrentUserInfo.UserName; } /*结束 */ objYj.DeptID = base.StepName == ProcessConstString.StepName.ProgramFile.STEP_DEPTSIGN ? B_PF.GetDeptIDByUserID(ucBuMenHuiQian.UCGetHQList(), objYj.UserID) : string.Empty; YiJianInfoList.Add(objYj); txtInfo2.Text = string.Empty; trYiJianHead.Visible = YiJianInfoList.Count > 0 ? true : false; ; rptComment.DataSource = YiJianInfoList; rptComment.DataBind(); }//添加意见 else { int index = int.Parse(hfEditIndex.Value); Label lblContent = rptComment.Items[index].FindControl("lblContent") as Label; lblContent.Text = SysString.InputText(txtInfo2.Text); YiJianInfoList[index].Content = lblContent.Text; this.pnlComment.Visible = false; this.btnCancel.Visible = false; btnConfirm.Visible = false; this.btnAdd.Visible = true; txtInfo2.Text = string.Empty; hfEditIndex.Value = string.Empty; }//修改意见 return; } //取消按钮事件 if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_CANCLE) { this.pnlComment.Visible = false; this.btnCancel.Visible = false; this.btnConfirm.Visible = false; this.btnAdd.Visible = true; txtInfo2.Text = string.Empty; hfEditIndex.Value = string.Empty; return; } #endregion #region 处理落实情况 //编写节点 处理 质保、部门会签、领导会签、批准意见 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_WRITE && pnlDealSign.Visible == true) { B_PF bllProFile = new B_PF(); List<M_ProgramFile.DeptSign> deptSignList = B_PF.GetDeptSignList(rptDept, ucBuMenHuiQian.UCGetHQList());//部门会签意见 List<M_ProgramFile.LeaderSign> leaderSignList = B_PF.GetLeaderSignList(rptLeader, ucLDHuiQian.UCGetHQList());//领导会签 List<M_ProgramFile.QualityCheck> qualityCheckList = B_PF.GetQualityCheckList(rptQG);//质保审查 List<M_ProgramFile.PiZhun> piZhunList = B_PF.GetPiZhunList(rptPiZhun);//批准意见 List<B_PF> entityList = B_PF.GetpfEntityList(deptSignList, leaderSignList, qualityCheckList, piZhunList); if (!bllProFile.EnTransSave(entityList)) { JScript.Alert(ConstString.PromptInfo.ACTION_SUBMIT_DEAL_FAIL, true); return; }//更新当前提交的意见落实情况 } //质保审查节点 处理批准意见 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_QG) { List<M_ProgramFile.PiZhun> piZhunList = B_PF.GetPiZhunList(rptPiZhun);//批准意见 if (piZhunList.Count > 0) { B_PF.UpdateApproveDealCondition(piZhunList); } } #endregion //保存 if (strActionName == ProcessConstString.SubmitAction.ACTION_SAVE_DRAFT) { B_PF bllProFile = ControlToEntity(true) as B_PF; //用于提示信息 bllProFile.IsFormSave = true; bllProFile.SubmitAction = strActionName; if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_ASSIST_SIGN) { ReturnInfo l_objReturnInfo = FormSubmitForProFile(true, strActionName, string.Empty, FSWFStatus.Assigned.ToString(), bllProFile as EntityBase); if (!l_objReturnInfo.IsSucess) { return; } JScript.Alert(ConstString.PromptInfo.ACTION_SAVE_SUC, true); } else { base.FormSubmit(true, strActionName, null, bllProFile as EntityBase); } } else { B_PF bllProFile = ControlToEntity(false) as B_PF; bllProFile.IsFormSave = false; bllProFile.SubmitAction = strActionName; //撤销 if (strActionName == ProcessConstString.SubmitAction.ACTION_CANCEL) { base.FormCancel(bllProFile as EntityBase); } else { //验证及提示 bllProFile.GetSubmitMessage(base.StepName, strActionName, bllProFile, ref strErrMessage, ref strMessage); if (!string.IsNullOrEmpty(strErrMessage)) { JScript.Alert(strErrMessage, true); return; } //表单验证 strErrMsg = bllProFile.SeverCheck(StepName, bllProFile); if (!string.IsNullOrEmpty(strErrMsg)) { JScript.Alert(strErrMsg, true); return; } else { #region 分发节点 点击分发完成按钮 执行分发 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND && base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_SEND_COMPLETE) { if (string.IsNullOrEmpty(hfSendDeptID.Value) && string.IsNullOrEmpty(hfSendUserID.Value)) { JScript.Alert(ConstString.PromptInfo.ACTION_CHECK_SEND, true); return; } try { base.Circulate(hfSendDeptID.Value, "0", string.Empty, hfSendUserID.Value, "1", true, string.Empty, false); } catch (Exception ex) { JScript.Alert(ex.ToString(), true); return; } } #endregion #region 分发节点 点击归档按钮 执行归档 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND && base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_ARCHIVE) { bllProFile.ProgramType1 = B_ProgramFileInfo.GetProTypeName(bllProFile.ProgramFileID); bllProFile.ProgramType2 = B_ProgramFileInfo.GetProSubTypeName(bllProFile.ProgramFileID); string strDeptName = OADept.GetDeptByDeptID(bllProFile.SendDeptID).Name; string strRes = string.Empty; try//renjinquan改 { string strArchiveResult = Devolve(bllProFile, strDeptName, CurrentUserInfo.DisplayName, out strRes); base.Devolved(base.ProcessID, base.TemplateName); JScript.Alert("归档成功!\\n流水号:" + strRes, true); } catch (Exception ex) { base.WriteLog(ex.Message); JScript.Alert("归档失败!请查看配置是否正确!", true); } //Regex.IsMatch(strArchiveResult, @"^\d+$") ? ConstString.PromptInfo.ACTION_ARCHIVE_SUC : strArchiveResult, true); return; } #endregion #region 程序发起、分发节点 更新程序文件信息 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_WRITE) { ReturnInfo retInfo = B_ProgramFileInfo.GetUpdateMsg(bllProFile, ConstString.ProgramFile.PROGRAM_UNFINISHED); if (retInfo.IsSucess == false) { JScript.Alert(retInfo.ErrMessage, true); return; } } if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_SEND && base.SubAction == ProcessConstString.SubmitAction.ProgramFile.ACTION_SEND_COMPLETE) { ReturnInfo retInfo = new ReturnInfo(); if (bllProFile.ApplyStyle == ConstString.ProgramFile.PROGRAM_DELETE) { B_ProgramFileInfo bllFileInfo = new B_ProgramFileInfo(); retInfo = bllFileInfo.IsLogout(bllProFile, ConstString.ProgramFile.PROGRAM_LOGOUT); }//已注销 else { retInfo = B_ProgramFileInfo.GetUpdateMsg(bllProFile, ConstString.ProgramFile.PROGRAM_ARCHIVED); }//已归档 if (retInfo.IsSucess == false) { JScript.Alert(retInfo.ErrMessage, true); return; } } #endregion Hashtable nValues = new Hashtable(); #region 协助会签 if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_DEPTSIGN) { if (strActionName == ProcessConstString.SubmitAction.ProgramFile.ACTION_ASSIGN) { nValues = bllProFile.GetProcNameValue(base.StepName, strActionName, bllProFile); string strSubProcInstID = GetCreateSubProcessID(ProcessConstString.TemplateName.PROGRAM_FILE_ASSIGN_SIGN, nValues); bllProFile.ChildProcessID = strSubProcInstID; ReturnInfo l_objReturnInfo = FormSubmitForProFile(false, strActionName, string.Empty, FSWFStatus.Assigned.ToString(), bllProFile as EntityBase); if (!l_objReturnInfo.IsSucess) { return; } this.ShowMsgBox(this.Page, MsgType.VbInformation, strMessage, base.EntryAction); return; }//交办 if (!string.IsNullOrEmpty(bllProFile.ChildProcessID) && strActionName == ProcessConstString.SubmitAction.ACTION_SUBMIT) { AgilePointWF ag = new AgilePointWF(); WorkflowService api = ag.GetAPI(); WFEvent wfEvnet = api.CancelProcInst(bllProFile.ChildProcessID); if (wfEvnet.Error != null) { JScript.Alert(wfEvnet.Error, true); return; } bllProFile.ChildProcessID = string.Empty; }//存在交办子流程 继续提交 撤销子流程 } if (base.StepName == ProcessConstString.StepName.ProgramFile.STEP_ASSIST_SIGN) { if (strActionName == ProcessConstString.SubmitAction.ACTION_COMPLETE) { ReturnInfo l_objReturnInfo = FormSubmitForProFile(false, strActionName, bllProFile.ParentTBID, FSWFStatus.Completed.ToString(), bllProFile as EntityBase); if (!l_objReturnInfo.IsSucess) { return; } } this.ShowMsgBox(this.Page, MsgType.VbInformation, strMessage, base.EntryAction); return; } #endregion //调用工作流 nValues = bllProFile.GetProcNameValue(base.StepName, strActionName, bllProFile); base.FormSubmit(false, strActionName, nValues, bllProFile as EntityBase); } } } //流程节点结束提示 if (!string.IsNullOrEmpty(strMessage)) { JScript.Alert(strMessage, true); } } catch (Exception ex) { JScript.Alert(ex.Message, true); } }