/// <summary> /// 提交 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Submit_Click(object sender, EventArgs e) { if (!VertifyOverTime()) { return; } if (!BeforeSubmit()) { return; } string id = ViewState["FormID"].ToString(); var dataInfo = SaveFormData(); Countersign1.SaveData(true);//会签数据保存 Countersign_Group1.SaveData(true); if (dataInfo != null) { uploadAttachments.SaveAttachment(FormId); // Countersign1.SaveAndSubmit();//会签数据保存 #region 工作流参数 NameValueCollection dataFields = SetWFParams(); if (dataFields == null) { return; } #endregion WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId; AppDict appInfo = new Pkurg.BPM.Services.AppDictService().GetByAppId("10109"); if (appInfo == null) { Alert("提交失败"); return; } int wfInstanceId = 0; //process instance id WorkflowHelper.StartProcess(appInfo.WorkFlowName, FormId, dataFields, ref wfInstanceId); if (wfInstanceId > 0) { string instId = SaveWorkFlowInstance("1", DateTime.Now, wfInstanceId.ToString()); if (!string.IsNullOrEmpty(instId)) { SaveWorkItem(); if (!AfterWorkflowStart(wfInstanceId)) { return; } IFrameHelper.DownloadLocalFileUrl(instId); ScriptManager.RegisterClientScriptBlock(this, typeof(string), "1", "alert('提交成功');window.opener.location.href=window.opener.location.href;", true); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "ajax", " window.opener=null;window.open('', '_self', '');window.close();", true); return; } } } Alert("提交失败"); }
/// <summary> /// 提交事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Submit_Click(object sender, EventArgs e) { string id = ViewState["FormID"].ToString(); var dataInfo = SaveFormData(); //如何设置 Countersign1.SaveData(true);//会签数据保存 Countersign_Group1.SaveData(true); if (dataInfo != null) { UploadAttachments1.SaveAttachment(FormId); #region 工作流参数 NameValueCollection dataFields = SetWFParams(); if (dataFields == null) { return; } #endregion WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId; AppDict appInfo = new Pkurg.BPM.Services.AppDictService().GetByAppId("2006"); if (appInfo == null) { Alert("提交失败"); return; } int wfInstanceId = 0; //process instance id WorkflowHelper.StartProcess(appInfo.WorkFlowName, FormId, dataFields, ref wfInstanceId); if (wfInstanceId > 0) { if (SaveWorkFlowInstance("1", DateTime.Now, wfInstanceId.ToString())) { //保存工作流条目 SaveWorkItem(); DisplayMessage.ExecuteJs("alert('提交成功');"); ScriptManager.RegisterClientScriptBlock(this, typeof(string), "1", "alert('提交成功');window.opener.location.href=window.opener.location.href;", true); ScriptManager.RegisterStartupScript(Page, Page.GetType(), "ajax", " window.opener=null; window.open('', '_self', '');window.close();", true); return; } } } Alert("提交失败"); }
/// <summary> /// 保存数据 /// </summary> private void SaveData() { var info = BizContext.OA_InstructionOfWY.FirstOrDefault(x => x.FormID == FormId); //info.LeadersSelected = lblApprovers.Text; info.IsReportToGroup = cblIsReportToGroup.SelectedValue; info.IsReportToWY = cblIsReportToWY.SelectedValue; info.LeadersSelected = SaveLeadersSelected(); WorkFlowInstance workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(info.FormID); Countersign1.ProcId = workFlowInstance.InstanceId; Countersign1.SaveData(true); Countersign_Group1.ProcId = workFlowInstance.InstanceId; Countersign_Group1.SaveData(true); BizContext.SubmitChanges(); }
/// <summary> /// 保存工作流实例 /// </summary> /// <param name="p"></param> /// <param name="dateTime"></param> /// <param name="p_2"></param> /// <returns></returns> private bool SaveWorkFlowInstance(string WfStatus, DateTime?SumitTime, string WfInstanceId) { bool result = false; WorkFlowInstance workFlowInstance = null; try { workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(FormId); bool isEdit = false; if (workFlowInstance == null) { workFlowInstance = new WorkFlowInstance(); workFlowInstance.InstanceId = Guid.NewGuid().ToString(); workFlowInstance.CreateAtTime = DateTime.Now; //appid和应用管理创建新的管理的应用号是一致的 workFlowInstance.AppId = "2006"; workFlowInstance.CreateDeptCode = ddlDepartName.SelectedItem.Value.ToString(); workFlowInstance.CreateDeptName = ddlDepartName.SelectedItem.Text; workFlowInstance.CreateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.CreateByUserName = CurrentEmployee.EmployeeName; workFlowInstance.FormTitle = tbTitle.Text; } else { isEdit = true; workFlowInstance.UpdateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.UpdateByUserName = CurrentEmployee.EmployeeName; workFlowInstance.FormTitle = tbTitle.Text; workFlowInstance.AppId = "2006"; } workFlowInstance.FormId = FormId; 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; //会签 Countersign1.ProcId = workFlowInstance.InstanceId; Countersign_Group1.ProcId = workFlowInstance.InstanceId; Countersign1.SaveData(true);//会签数据保存 Countersign_Group1.SaveData(true); } catch (Exception ex) { throw ex; } return(result); }
/// <summary> /// 设置流程参数 /// </summary> /// <returns></returns> private NameValueCollection SetWFParams() { NameValueCollection dataFields = new NameValueCollection(); BFPmsUserRoleDepartment bfurd = new BFPmsUserRoleDepartment(); //动态获取待定 string startDeptId = ddlDepartName.SelectedItem.Value; Department deptInfo = new Pkurg.PWorld.Services.DepartmentService().GetByDepartCode(startDeptId); string CompanyCode = BPMHelp.GetCompanyCodeByDeptID(startDeptId); string ExecutiveDirector = string.Empty; //执行主任 String Members = string.Empty; //招标委员会成员 String Director = string.Empty; //招标委员会主任 //验证部分步骤的审批人是否尚未配置 bool flag = true; if (string.IsNullOrEmpty(GetRoleUsers(PKURGICode, "执行主任"))) { flag = false; Alert(Page, "执行主任尚未配置!"); } if (string.IsNullOrEmpty(GetRoleUsers(CompanyCode, "招标委员会成员"))) { flag = false; Alert(Page, "公司招标委员会成员尚未配置!"); } if (string.IsNullOrEmpty(GetRoleUsers(CompanyCode, "招标委员会主任"))) { flag = false; Alert(Page, "公司招标委员会主任尚未配置!"); } if (string.IsNullOrEmpty(GetRoleUsers(PKURGICode, "招标委员会成员"))) { flag = false; Alert(Page, "集团招标委员会成员尚未配置!"); } if (string.IsNullOrEmpty(GetRoleUsers(PKURGICode, "招标委员会主任"))) { flag = false; Alert(Page, "集团招标委员会主任尚未配置!"); } List <string> countersigns = Countersign1.Result.Split(',').ToList(); List <string> countersigns_group = Countersign_Group1.Result.Split(',').ToList(); if ((CompanyCode != PKURGICode && cblIsAccreditByGroup.SelectedItem.Value == "1") || CompanyCode == PKURGICode) { ExecutiveDirector = GetRoleUsers(PKURGICode, "执行主任"); } if (CompanyCode != PKURGICode && cblIsAccreditByGroup.SelectedIndex == 0) { Members = GetRoleUsers(CompanyCode, cblFirstLevel.SelectedIndex == 0 ? "招标委员会成员(一级)" : "招标委员会成员"); Director = GetRoleUsers(CompanyCode, "招标委员会主任"); } if (CompanyCode != PKURGICode && cblIsAccreditByGroup.SelectedIndex == 1) { Members = GetRoleUsers(PKURGICode, "招标委员会成员") + "," + GetRoleUsers(CompanyCode, "招标委员会主任"); Director = GetRoleUsers(PKURGICode, "招标委员会主任"); } if (CompanyCode == PKURGICode) { Members = GetRoleUsers(PKURGICode, "招标委员会成员"); Director = GetRoleUsers(PKURGICode, "招标委员会主任"); } dataFields.Add("CounterSignUsers", FilterDataField(Countersign1.GetCounterSignUsers())); dataFields.Add("CounterSignUsers_Group", FilterDataField(Countersign_Group1.GetCounterSignUsers())); dataFields.Add("Members", FilterDataField(Members)); dataFields.Add("Director", FilterDataField(Director)); dataFields.Add("ExecutiveDirector", FilterDataField(ExecutiveDirector)); //dataFields.Add("IsGroup", companyCode == "B04-D319"?"yes":"no"); //dataFields.Add("IsReport", cblIsAccreditByGroup.SelectedIndex == 1?"yes":"no"); dataFields.Add("IsPass", "1"); if (!flag) { dataFields = null; } return(dataFields); }
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 string SaveWorkFlowInstance(string WfStatus, DateTime?SumitTime, string WfInstanceId) { bool result = false; WorkFlowInstance workFlowInstance = null; try { workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(FormId); bool isEdit = false; if (workFlowInstance == null) { workFlowInstance = new WorkFlowInstance(); workFlowInstance.InstanceId = Guid.NewGuid().ToString(); workFlowInstance.CreateAtTime = DateTime.Now; workFlowInstance.AppId = "10109"; workFlowInstance.CreateDeptCode = CurrentEmployee.DepartCode; workFlowInstance.CreateDeptName = CurrentEmployee.DepartName; workFlowInstance.CreateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.CreateByUserName = CurrentEmployee.EmployeeName; workFlowInstance.FormTitle = GetFormTitle(); } else { isEdit = true; workFlowInstance.UpdateByUserCode = CurrentEmployee.EmployeeCode; workFlowInstance.UpdateByUserName = CurrentEmployee.EmployeeName; workFlowInstance.AppId = "10109"; } workFlowInstance.FormId = FormId; 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); } flowRelated.ProcId = workFlowInstance.InstanceId; Countersign1.ProcId = workFlowInstance.InstanceId; Countersign_Group1.ProcId = workFlowInstance.InstanceId; Countersign1.SaveData(true);//会签数据保存 Countersign_Group1.SaveData(true); } catch (Exception ex) { throw ex; } return(workFlowInstance == null ? "" : workFlowInstance.InstanceId); }