private void BindFormData() { string methodName = "BindFormData"; Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN); try { JC_BidScalingInfo obj = bs.GetBidScaling(ViewState["FormID"].ToString()); ListItem item = ddlDepartName.Items.FindByValue(obj.StartDeptCode); if (item != null) { ddlDepartName.SelectedIndex = ddlDepartName.Items.IndexOf(item); } tbTitle.Text = obj.Title; tbDateTime.Text = obj.DateTime; tbContent.Text = obj.Content; UpdatedTextBox.Value = obj.EntranceTime; tbFirstUnit.Text = obj.FirstUnit; tbSecondUnit.Text = obj.SecondUnit; cblIsAccreditByGroup.SelectedValue = obj.IsAccreditByGroup != null?obj.IsAccreditByGroup.ToString() : "-1"; cblFirstLevel.SelectedValue = obj.FirstLevel != null?obj.FirstLevel.ToString() : "-1"; } catch (Exception ex) { Logger.Write(this.GetType(), EnumLogLevel.Fatal, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.Exception + ":" + string.Format("Exception={0}", ex)); throw ex; } Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); }
/// <summary> /// 重写流程结束方法 /// </summary> public override Pkurg.PWorldBPM.FinallyDisposeServices.ExecuteResultInfo DoServiceEvent(int k2_workflowId, SerializableDictionary <string, string> dataFields) { Logger.logger.DebugFormat("Params:{0},{1}", k2_workflowId, dataFields.Keys.Count); foreach (KeyValuePair <string, string> item in dataFields) { Logger.logger.DebugFormat("df:{0}-{1}", item.Key, item.Value); } Pkurg.PWorldBPM.FinallyDisposeServices.ExecuteResultInfo info = new ExecuteResultInfo(); try { //根据流程ID获取FormId JC_BidScalingInfo companyInfo = Pkurg.PWorldBPM.Business.BIZ.JC.JC_BidScaling.GetJC_BidScalingInfoByWfId(k2_workflowId.ToString()); string jcFormCode = companyInfo.FormID; string jcFormName = companyInfo.Title; string StartUserName = companyInfo.UserName; //判断是否审批通过,存储0,1表示通过与不通过 string resultString = dataFields["IsPass"]; //这部分是根据自己的流程来判定的,现在只是通过流程ID得到FormId来进行判断结束 Logger.logger.DebugFormat("Proc:{0},{1}", jcFormCode, resultString); JC_BidScalingInfo model = new JC_BidScalingInfo(); model.FormID = jcFormCode; model.IsApproval = resultString; //两个文件名字最好不能起的一样,尤其是增删改查操作的时候文件名不能一样 Pkurg.PWorldBPM.Business.BIZ.JC.JC_BidScaling.UpdateJC_BidScalingInfoInfoByModel(model); //流程结束之后授权给集团招采部门所有人 //得到各参数的值:AuthorizedByUserCode:授权人编号;AuthorizedByUserName:授权人姓名;ProId:流程ID;ProcName:流程编号;AuthorizedUserCode:被授权部门编号;AuthorizedUserName:被授权部门名称 DataTable dt = Pkurg.PWorldBPM.Business.Controls.WF_WorkFlowInstances.GetWorkFlowInstanceByFormID(jcFormCode); DataRow dataRow = dt.Rows[0]; string AuthorizedByUserCode = dataRow["CreateByUserCode"].ToString(); string AuthorizedByUserName = dataRow["CreateByUserName"].ToString(); string ProId = jcFormCode; string ProcName = jcFormName; InsertAuthorizationToJCGroup(AuthorizedByUserCode, AuthorizedByUserName, ProId, ProcName, CGDeptCode); info.IsSuccess = true; } catch (Exception ex) { info.ExecException = ex.StackTrace; info.IsSuccess = false; } Logger.logger.DebugFormat("Result:{0}", info.IsSuccess); Logger.logger.DebugFormat("Result-e:{0}", info.ExecException); return(info); }
private void BindFormData() { string methodName = "BindFormData"; Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN); try { JC_BidScalingInfo obj = bs.GetBidScaling(ViewState["FormID"].ToString()); if (obj != null) { tbDepartName.Text = obj.DeptName;; tbTitle.Text = obj.Title; tbDateTime.Text = obj.DateTime; tbContent.Text = obj.Content; tbEntranceTime.Text = obj.EntranceTime; cblIsAccreditByGroup.SelectedValue = obj.IsAccreditByGroup != null?obj.IsAccreditByGroup.ToString() : "-1"; if (cblIsAccreditByGroup.SelectedValue == "1") { if (nodeName.Value.Contains("招标委员会")) { tbCompany.Visible = false; tbGroup.Visible = true; tbURL.Visible = true; } } if (obj.DeptName.Contains("开封")) { cblFirstLevel.Visible = true; cblFirstLevel.SelectedValue = obj.FirstLevel != null?obj.FirstLevel.ToString() : "-1"; } tbFirstUnit.Text = obj.FirstUnit; tbSecondUnit.Text = obj.SecondUnit; string StartDeptId = obj.StartDeptCode; if (StartDeptId.Substring(0, StartDeptId.LastIndexOf('-')) == PKURGICode) { trCounterSign.Visible = false; lbIsImpowerProject.Visible = false; cblIsAccreditByGroup.Visible = false; } } } catch (Exception ex) { Logger.Write(this.GetType(), EnumLogLevel.Fatal, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.Exception + ":" + string.Format("Exception={0}", ex)); throw ex; } Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); }
protected void Save_Click(object sender, EventArgs e) { string id = ViewState["FormID"].ToString(); JC_BidScalingInfo obj = SaveData(id, "00"); if (obj != null) { if (SaveWorkFlowInstance(obj, "0", null, "")) { Alert(Page, "保存成功!"); } } else { Alert(Page, "保存失败"); } }
// <summary> /// 插入授权表(授权给招采部门全部成员) from XX to XX 的格式 /// 在该部分中的被授权人是一个部门的集合,所以需要获取部门的编号,遍历得到该部门的所有成员,并对每个成员进行授权 /// </summary> /// <param name="AuthorizedByUserCode">授权人的编号</param> /// <param name="AuthorizedByUserName">授权人的姓名</param> /// <param name="ProId">流程ID,需要从dispose调用过程中就取到值</param> /// <param name="ProcName">流程名称,需要从dispose调用过程中就取到值</param> /// <param name="AuthorizedUserCode">被授权人编号(部门编号)</param> /// <param name="AuthorizedUserName">被授权人姓名(部门名称)</param> /// <returns></returns> public static void InsertAuthorizationToJCGroup(string AuthorizedByUserCode, string AuthorizedByUserName, string ProId, string ProcName, string AuthorizeDeptCode) { //发送邮件 MailService mailService = new MailService(); IList <VEmployeeAndAdditionalInfo> ds = GetUserListByDeptCode(AuthorizeDeptCode); foreach (var item in ds) { string AuthorizedUserCode = item.EmployeeCode; string AuthorizedUserName = item.EmployeeName; Pkurg.PWorldBPM.Business.Workflow.WF_Authorization.InsertAuthorization(AuthorizedByUserCode, AuthorizedByUserName, ProId, ProcName, AuthorizedUserCode, AuthorizedUserName); //发送邮件 //定义两个变量,将title以及body使用字符串方式拼接出来 JC_BidScalingInfo bidScalingInfo = Pkurg.PWorldBPM.Business.BIZ.JC.JC_BidScaling.GetJC_JC_BidScalingInfoByFormId(ProId); string emailTitle = bidScalingInfo.DeptName + bidScalingInfo.UserName + "于" + bidScalingInfo.DateTime + "发起的" + "【招标定标】" + bidScalingInfo.Title + "流程已审批结束!"; //得到实例ID号 DataTable dt = Pkurg.PWorldBPM.Business.Controls.WF_WorkFlowInstances.GetWorkFlowInstanceByFormID(ProId); DataRow dataRow = dt.Rows[0]; string WorkFlowInstancesID = dataRow["InstanceID"].ToString(); string ID = url + "/Workflow/ViewPage/V_JC_BidScaling.aspx?id=" + WorkFlowInstancesID; string emailFinallyTitleFormat = emailTitle; string emailFinallyBodyFormat = @"您好! <br/> " + emailTitle + @" <br/> 若要查看审批意见点击此处: <a href='" + ID + @"'>查看</a> <br/> 谢谢 <br/> "; bool eResult = mailService.SendEmailCustom(item.Email, emailTitle, emailFinallyBodyFormat); } }
protected void Submit_Click(object sender, EventArgs e) { #region 工作流参数 NameValueCollection dataFields = SetWFParams(); if (dataFields == null) { return; } #endregion int wfInstanceId = 0; //process instance id string id = ViewState["FormID"].ToString(); JC_BidScalingInfo obj = SaveData(id, "02"); if (obj != null) { //开启流程 WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId; WorkflowHelper.StartProcess(@"K2Workflow\JC_BidScaling", id, dataFields, ref wfInstanceId); if (wfInstanceId > 0) { if (SaveWorkFlowInstance(obj, "1", DateTime.Now, wfInstanceId.ToString())) { if (bs.UpdateStatus(id, "02")) { string Opinion = ""; string ApproveResult = "同意"; string OpinionType = ""; string IsSign = "0"; string DelegateUserName = ""; string DelegateUserCode = ""; WorkFlowInstance workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(obj.FormID); var appRecord = new Pkurg.PWorldBPM.Business.Sys.WF_Approval_Record() { ApprovalID = Guid.NewGuid().ToString(), FormID = id, InstanceID = workFlowInstance.InstanceId, Opinion = Opinion, ApproveAtTime = DateTime.Now, ApproveByUserCode = CurrentEmployee.EmployeeCode, ApproveByUserName = CurrentEmployee.EmployeeName, ApproveResult = ApproveResult, OpinionType = OpinionType, CurrentActiveName = "拟稿", ISSign = IsSign, DelegateUserName = DelegateUserName, DelegateUserCode = DelegateUserCode, CreateAtTime = DateTime.Now, CreateByUserCode = CurrentEmployee.EmployeeCode, CreateByUserName = CurrentEmployee.EmployeeName, UpdateAtTime = DateTime.Now, UpdateByUserCode = CurrentEmployee.EmployeeCode, UpdateByUserName = CurrentEmployee.EmployeeName, FinishedTime = DateTime.Now }; BFApprovalRecord bfApproval = new BFApprovalRecord(); bfApproval.AddApprovalRecord(appRecord); } } } } ScriptManager.RegisterClientScriptBlock(this, typeof(string), "1", "alert('提交成功');", true); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "ajax", " window.opener=null; window.open('', '_self', '');window.close();", true); }
private bool SaveWorkFlowInstance(JC_BidScalingInfo obj, string WfStatus, DateTime?SumitTime, string WfInstanceId) { string methodName = "SaveWorkFlowInstance"; Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN); bool result = false; WorkFlowInstance workFlowInstance = null; try { workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(obj.FormID); bool isEdit = false; if (workFlowInstance == null) { workFlowInstance = new WorkFlowInstance(); workFlowInstance.InstanceId = Guid.NewGuid().ToString(); workFlowInstance.CreateDeptCode = ddlDepartName.SelectedItem.Value.ToString(); workFlowInstance.CreateDeptName = ddlDepartName.SelectedItem.Text; workFlowInstance.CreateAtTime = DateTime.Now; workFlowInstance.CreateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.CreateByUserName = CurrentEmployee.EmployeeName; workFlowInstance.AppId = "1003"; } else { workFlowInstance.CreateAtTime = DateTime.Now; workFlowInstance.UpdateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.UpdateByUserName = CurrentEmployee.EmployeeName; isEdit = true; } workFlowInstance.FormId = obj.FormID; workFlowInstance.FormTitle = obj.Title; workFlowInstance.WfStatus = WfStatus; if (SumitTime != null) { workFlowInstance.SumitTime = SumitTime; } if (WfInstanceId != "") { workFlowInstance.WfInstanceId = WfInstanceId; } if (!isEdit) { result = wf_WorkFlowInstance.AddWorkFlowInstance(workFlowInstance); } else { result = wf_WorkFlowInstance.UpdateWorkFlowInstance(workFlowInstance); } FlowRelated1.ProcId = workFlowInstance.InstanceId; string StartDeptId = ddlDepartName.SelectedItem.Value; if (StartDeptId.Substring(0, StartDeptId.LastIndexOf('-')) != PKURGICode) { Countersign1.ProcId = workFlowInstance.InstanceId; Countersign1.SaveData(true); Countersign_Group1.ProcId = workFlowInstance.InstanceId; Countersign_Group1.SaveData(true); } else { Countersign_Group1.ProcId = workFlowInstance.InstanceId; Countersign_Group1.SaveData(true); } } catch (Exception ex) { Logger.Write(this.GetType(), EnumLogLevel.Fatal, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.Exception + ":" + string.Format("Exception={0}", ex)); throw ex; } Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); return(result); }
private JC_BidScalingInfo SaveData(string ID, string wfStatus) { string methodName = "SaveData"; Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN); JC_BidScalingInfo obj = null; try { UploadAttachments1.SaveAttachment(ViewState["FormID"].ToString()); obj = bs.GetBidScaling(ID); bool isEdit = false; if (obj == null) { obj = new JC_BidScalingInfo(); obj.FormID = ViewState["FormID"].ToString(); } else { isEdit = true; obj.FormID = ViewState["FormID"].ToString(); //obj.ApproveStatus = wfStatus; } obj.StartDeptCode = ddlDepartName.SelectedItem.Value.ToString(); obj.DeptName = ddlDepartName.SelectedItem.Text; obj.UserName = _BPMContext.CurrentUser.Name; obj.Title = tbTitle.Text; obj.DateTime = tbDateTime.Text; obj.Content = tbContent.Text; obj.EntranceTime = UpdatedTextBox.Value; obj.FirstUnit = tbFirstUnit.Text; obj.SecondUnit = tbSecondUnit.Text; if (cblIsAccreditByGroup.SelectedIndex != -1) { obj.IsAccreditByGroup = cblIsAccreditByGroup.SelectedValue.ToString(); } if (cblFirstLevel.SelectedIndex != -1) { obj.FirstLevel = cblFirstLevel.SelectedValue.ToString(); } if (!isEdit) { bs.InsertBidScaling(obj); } else { bs.UpdateBidScaling(obj); } } catch (Exception ex) { Logger.Write(this.GetType(), EnumLogLevel.Fatal, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.Exception + ":" + string.Format("Exception={0}", ex)); throw ex; } Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); return(obj); }
private void BindFormData() { string methodName = "BindFormData"; try { WorkFlowInstance Instance = wf_WorkFlowInstance.GetWorkFlowInstanceById(ViewState["InstanceID"].ToString()); if (Instance == null) { ExceptionHander.GoToErrorPage("记录不存在"); } JC_BidScalingInfo obj = bs.GetBidScaling(Instance.FormId.ToString()); if (obj == null) { ExceptionHander.GoToErrorPage("记录不存在"); } if (obj != null) { tbDepartName.Text = obj.DeptName;; tbTitle.Text = obj.Title; tbDateTime.Text = obj.DateTime; tbContent.Text = obj.Content.Replace(" ", " ").Replace("\n", "<br/>"); tbEntranceTime.Text = obj.EntranceTime; cblIsAccreditByGroup.SelectedValue = obj.IsAccreditByGroup != null?obj.IsAccreditByGroup.ToString() : "-1"; if (obj.DeptName.Contains("开封")) { cblFirstLevel.Visible = true; cblFirstLevel.SelectedValue = obj.FirstLevel != null?obj.FirstLevel.ToString() : "-1"; } tbFirstUnit.Text = obj.FirstUnit; tbSecondUnit.Text = obj.SecondUnit; tbScalingResult.Text = obj.ScalingResult; string StartDeptId = obj.StartDeptCode; if (StartDeptId.Substring(0, StartDeptId.LastIndexOf('-')) == PKURGICode) { trCounterSign.Visible = false; lbIsImpowerProject.Visible = false; cblIsAccreditByGroup.Visible = false; } BindSelectUnit(Instance.FormId.ToString()); } FlowRelated1.ProcId = ViewState["InstanceID"].ToString(); Countersign1.ProcId = ViewState["InstanceID"].ToString(); Countersign_Group1.ProcId = ViewState["InstanceID"].ToString(); UploadAttachments1.ProcId = ViewState["InstanceID"].ToString(); #region 审批意见框 ApproveOpinionUC1.InstanceId = ViewState["InstanceID"].ToString(); ApproveOpinionUC2.InstanceId = ViewState["InstanceID"].ToString(); OpinionExecutiveDirector.InstanceId = ViewState["InstanceID"].ToString(); ApproveOpinionUC3.InstanceId = ViewState["InstanceID"].ToString(); ApproveOpinionUC4.InstanceId = ViewState["InstanceID"].ToString(); #endregion } catch (Exception ex) { Logger.Write(this.GetType(), EnumLogLevel.Fatal, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.Exception + ":" + string.Format("Exception={0}", ex)); throw ex; } Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.OUT); }