/// <summary> /// 保存事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Save_Click(object sender, EventArgs e) { //工作流参数 NameValueCollection dataFields = SetWFParams(); if (dataFields == null) { return; } JC_ProjectTenderCityCompanyInfo dataInfo = SaveFormData(); if (dataInfo != null) { UploadAttachments1.SaveAttachment(FormId); if (SaveWorkFlowInstance("0", null, "")) { Alert("保存完成"); } } else { Alert("保存失败"); } }
/// <summary> /// 加载表单 /// </summary> private void InitFormData() { try { JC_ProjectTenderCityCompanyInfo info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormId); if (!string.IsNullOrEmpty(Request.QueryString["id"])) { if (info != null) { //加载业务数据 cblSecurityLevel.SelectedIndex = int.Parse(info.SecurityLevel); } cblUrgenLevel.SelectedIndex = int.Parse(info.UrgenLevel); ddlDepartName.Text = info.DeptName; tbDateTime.Text = info.Date ?? ""; tbUserName.Text = info.UserName; tbMobile.Text = info.Tel; tbTitle.Text = info.Title; tbContent.Text = info.Substance.Replace(" ", " ").Replace("\n", "<br/>"); tbRemark.Text = info.Remark; cblIsImpowerProject.SelectedIndex = int.Parse(info.IsAccreditByGroup); tbReportCode.Text = info.FormID; //tbRemark.Text = info.Remark; if (info.DeptName.Contains("开封")) { cblFirstLevel.Visible = true; cblFirstLevel.SelectedValue = info.FirstLevel != null?info.FirstLevel.ToString() : "-1"; } if (!string.IsNullOrEmpty(info.IsApproval)) { lbIsApproval.Text = string.Format("{1}({0})", info.IsApproval == "1" ? "批准" : "拒绝", lbIsApproval.Text); if (info.IsApproval == "1") { this.lbIsApproval.Style.Add("color", "green"); } else { this.lbIsApproval.Style.Add("color", "red"); } } } } catch (Exception ex) { throw ex; } }
/// <summary> /// 加载表单 /// </summary> private void InitFormData(string formId) { try { JC_ProjectTenderCityCompanyInfo info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormID); if (!string.IsNullOrEmpty(Request.QueryString["id"])) { if (info != null) { //ListItem selectedItem = ddlDepartName.Items.FindByValue(info.StartDeptId); //if (selectedItem != null) //{ // selectedItem.Selected = true; //} //加载业务数据[需要思考这块具体怎么加载,从哪里加载过来] cblSecurityLevel.SelectedIndex = int.Parse(info.SecurityLevel); cblUrgenLevel.SelectedIndex = int.Parse(info.UrgenLevel); tbDateTime.Text = info.Date ?? ""; tbUserName.Text = info.UserName; tbMobile.Text = info.Tel; tbTitle.Text = info.Title; tbContent.Text = info.Substance; tbRemark.Text = info.Remark; cblIsImpowerProject.SelectedIndex = int.Parse(info.IsAccreditByGroup); tbReportCode.Text = info.FormID; ddlDepartName.Text = info.DeptName; if (info.DeptName.Contains("开封")) { cblFirstLevel.Visible = true; cblFirstLevel.SelectedValue = info.FirstLevel != null?info.FirstLevel.ToString() : "-1"; } //如果是集团授权,则集团部门意见列表不显示 //if (info.IsAccreditByGroup == "0") //{ // Group_Tender.Visible = false; // Group_TenderChairman.Visible = false; //} } } } catch (Exception ex) { throw ex; } }
/// <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_ProjectTenderCityCompanyInfo citycompanyInfo = Pkurg.PWorldBPM.Business.BIZ.JC.JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormId(ProId); string emailTitle = citycompanyInfo.DeptName + citycompanyInfo.UserName + "于" + citycompanyInfo.Date + "发起的" + "【招标需求_城市公司】" + citycompanyInfo.Title + "流程已审批结束!"; Logger.logger.DebugFormat("WF_Authorization:{0}", AuthorizedUserCode); //得到实例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_ProjectTenderCityCompany.aspx?id=" + WorkFlowInstancesID; string emailFinallyBodyFormat = @"您好! <br/> " + emailTitle + @" <br/> 若要查看审批意见点击此处: <a href='" + ID + @"'>查看</a> <br/> 谢谢 <br/> "; bool eResult = mailService.SendEmailCustom(item.Email, emailTitle, emailFinallyBodyFormat); } }
//是否需要? private void NotifyErpStart() { JC_ProjectTenderCityCompanyInfo info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormId); //new appcode_ContractApproval_Service.ContractApproval_Service().NotifyStart(info.ErpFormId); }
/// <summary> /// 保存表单 /// </summary> /// <returns></returns> private JC_ProjectTenderCityCompanyInfo SaveFormData() { //FormId JC_ProjectTenderCityCompanyInfo info = null; try { //检查存储过程是否正确【有几处需要转换类型的地方自己注意】 info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormId); StringBuilder groupRealateDepts = new StringBuilder(); StringBuilder realateDepts = new StringBuilder(); foreach (ListItem item in cbGroupRealateDept.Items) { if (item.Selected) { groupRealateDepts.AppendFormat("{0},", cbGroupRealateDept.Items.IndexOf(item)); } } foreach (ListItem item in cbRealateDept.Items) { if (item.Selected) { realateDepts.AppendFormat("{0},", cbRealateDept.Items.IndexOf(item)); } } string firstlevel = null; if (ddlDepartName.SelectedItem.Text.Contains("开封")) { firstlevel = cblFirstLevel.SelectedItem.Value; } else { firstlevel = ""; } if (info == null) { info = new JC_ProjectTenderCityCompanyInfo() { FormID = FormId, SecurityLevel = cblSecurityLevel.SelectedIndex.ToString(), UrgenLevel = cblUrgenLevel.SelectedIndex.ToString(), StartDeptId = ddlDepartName.SelectedItem.Value, DeptName = ddlDepartName.SelectedItem.Text, Date = DateTime.Now.ToString(), UserName = _BPMContext.CurrentPWordUser.EmployeeName, //if(_BPMContext.CurrentPWordUser.MobilePhone == null) //{ // Tel=""; //} //else //{ // Tel = _BPMContext.CurrentPWordUser.MobilePhone, //} Tel = _BPMContext.CurrentPWordUser.MobilePhone ?? "", IsAccreditByGroup = cblIsImpowerProject.SelectedIndex.ToString(), Title = tbTitle.Text, Substance = tbContent.Text, Remark = tbRemark.Text, //存储相关部门[因为写死了,所以可以不用保存] //RelateDepartment = cbRealateDept.SelectedIndex.ToString(), RelateDepartment = realateDepts.ToString().Trim(','), //foreach遍历读取 GroupRealateDept = groupRealateDepts.ToString().Trim(','), GroupPurchaseDept = cbGroupPurchaseDept.Items[0].Selected ? "1" : "0", FirstLevel = firstlevel, }; //插入新的表单数据 JC_ProjectTenderCityCompany.InsertJC_ProjectTenderCityCompanyInfo(info); } else { info.FormID = tbReportCode.Text; info.SecurityLevel = cblSecurityLevel.SelectedIndex.ToString(); info.UrgenLevel = cblUrgenLevel.SelectedIndex.ToString(); info.StartDeptId = ddlDepartName.SelectedItem.Value; info.DeptName = ddlDepartName.SelectedItem.Text; info.Date = tbDateTime.Text; info.UserName = tbUserName.Text; info.Tel = tbMobile.Text; info.IsAccreditByGroup = cblIsImpowerProject.SelectedIndex.ToString(); info.Title = tbTitle.Text; info.Substance = tbContent.Text; info.Remark = tbRemark.Text; //存储相关部门意见[因为写死了,所以可以不用保存] info.RelateDepartment = cbRealateDept.SelectedIndex.ToString(); ////foreach遍历读取 info.GroupRealateDept = groupRealateDepts.ToString().Trim(','); info.GroupPurchaseDept = cbGroupPurchaseDept.Items[0].Selected ? "1" : "0"; info.FirstLevel = firstlevel; //更新表单数据 JC_ProjectTenderCityCompany.UpdateJC_ProjectTenderCityCompanyInfo(info); } } catch (Exception ex) { throw ex; } return(info); }
/// <summary> /// 加载表单 /// </summary> /// <param name="FormId"></param> private void InitFormData(string formId) { try { //参照例子中的getmodel检查自己所写的存储过程是否正确 JC_ProjectTenderCityCompanyInfo info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormId); if (info != null) { ListItem selectItem = ddlDepartName.Items.FindByValue(info.StartDeptId); if (selectItem != null) { selectItem.Selected = true; } //加载业务数据[检查加载是否正确] tbReportCode.Text = info.FormID; cblSecurityLevel.SelectedIndex = int.Parse(info.SecurityLevel); cblUrgenLevel.SelectedIndex = int.Parse(info.UrgenLevel); StartDeptId = info.StartDeptId; tbDateTime.Text = info.Date; tbUserName.Text = info.UserName; tbMobile.Text = info.Tel; cblIsImpowerProject.SelectedIndex = int.Parse(info.IsAccreditByGroup); tbTitle.Text = info.Title; tbContent.Text = info.Substance; tbRemark.Text = info.Remark; cblFirstLevel.SelectedValue = info.FirstLevel != null?info.FirstLevel.ToString() : "-1"; //相关部门意见 //cbRealateDept.SelectedIndex = int.Parse(info.RelateDepartment); string[] realateDepts = info.RelateDepartment.Split(','); foreach (var item in realateDepts) { cbRealateDept.Items[int.Parse(item)].Selected = true; } //需要在checkbox里面存储多个数值或者为空 //cbGroupRealateDept.SelectedIndex = int.Parse(info.GroupRealateDept); cbGroupPurchaseDept.Items[0].Selected = info.GroupPurchaseDept == "1"; //集团相关部门意见 if (!string.IsNullOrEmpty(info.GroupRealateDept)) { string[] groupRealateDepts = info.GroupRealateDept.Split(','); foreach (var item in groupRealateDepts) { cbGroupRealateDept.Items[int.Parse(item)].Selected = true; } } } else { tbUserName.Text = _BPMContext.CurrentPWordUser.EmployeeName; tbMobile.Text = _BPMContext.CurrentPWordUser.MobilePhone; tbDateTime.Text = DateTime.Now.ToString(); tbReportCode.Text = FormId; } } catch (Exception ex) { throw ex; } }
private void NotifyErpStart() { JC_ProjectTenderCityCompanyInfo info = JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByFormID(FormId); }
/// <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_ProjectTenderCityCompanyInfo companyInfo = Pkurg.PWorldBPM.Business.BIZ.JC.JC_ProjectTenderCityCompany.GetJC_ProjectTenderCityCompanyInfoByWfId(k2_workflowId.ToString()); string jcFormCode = companyInfo.FormID; string jcFormName = companyInfo.Title; string StartUserName = companyInfo.UserName; //判断是否审批通过,存储0,1表示通过与不通过 string resultString = dataFields["IsPass"]; //添加判断在招标委员会的节点上,如果时间过去两天,还有人没有审批, //则根据相关的字段给数据库插入“同意”字段,并且时间为截至时间[三个表关联] //条件=招标委员会意见/集团招标委员会意见,同时时间=2天,option.value=null //option.value="同意" 时间=当前时间 //方法 insertinto:加意见 //instanceid //先得到节点,再把节点上的datefield的人分隔开,再挨个判断他有没有意见,没有意见的再插入 //if (dataFields["IsPass"] == "1") //{ // string currentActiveName = ""; // string persons=""; // if (dataFields["IsReportToResource"] == "0") // { // persons = dataFields["GroupTenderCommitteeManager"]; // currentActiveName = "集团招标委员会意见"; // } // else // { // persons = dataFields["TenderCommitteeManager"]; // currentActiveName = "招标委员会意见"; // } // //把上面节点的datefield的人分隔开,再挨个判断他有没有意见,没有意见的再插入 // foreach (string person in persons.Split(',')) // { // //定义三个变量得到 // //loginName, wfInstanceId, currentActiveName // string LoginName = person.ToLower().Replace("k2:founder\\",""); // string WFInstanceId = k2_workflowId.ToString(); // //判断他有没有意见 // if ( !string.IsNullOrEmpty( LoginName)) // { // //给表中插入数据,并且option字段值默认为“默认同意” // Pkurg.PWorldBPM.Business.BIZ.JC.JC_ProjectTenderCityCompany.InsertWF_Approval_RecordByInstanceID(currentActiveName, LoginName, WFInstanceId); // } // } //} //添加判断在招标委员会主任的节点上,如果时间过去两天,还有人没有审批, //则根据相关的字段给数据库插入“同意”字段,并且时间为截至时间[三个表关联] //条件=招标委员会主任意见/集团招标委员会主任意见,同时时间=2天,option.value=null //option.value="同意" 时间=当前时间 //instanceid //if (dataFields["IsPass"] == "1") //{ // string currentActiveName = ""; // string person = ""; // person = dataFields["TenderCommitteeChairman"]; // currentActiveName = "招标委员会主任意见"; // //定义三个变量得到 // //loginName, wfInstanceId, currentActiveName // string LoginName = person.ToLower().Replace("k2:founder\\", ""); // string WFInstanceId = k2_workflowId.ToString(); // //给表中插入数据,并且option字段值默认为“默认同意” // Pkurg.PWorldBPM.Business.BIZ.JC.JC_ProjectTenderCityCompany.InsertWF_Approval_RecordByInstanceID(currentActiveName, LoginName, WFInstanceId); //} //这部分是根据自己的流程来判定的,现在只是通过流程ID得到FormId来进行判断结束 Logger.logger.DebugFormat("Proc:{0},{1}", jcFormCode, resultString); JC_ProjectTenderCityCompanyInfo model = new JC_ProjectTenderCityCompanyInfo(); model.FormID = jcFormCode; model.IsApproval = resultString; //两个文件名字最好不能起的一样,尤其是增删改查操作的时候文件名不能一样 Pkurg.PWorldBPM.Business.BIZ.JC.JC_ProjectTenderCityCompany.UpdateJC_ProjectTenderCityCompanyInfoByModel(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; //得到子公司的招采部的编号以及名称 Pkurg.PWorld.Entities.Department deptInfo = new Pkurg.PWorld.Business.Permission.BFPmsUserRoleDepartment().GetDeptByCurrentDeptCodeAndOtherDeptName(companyInfo.StartDeptId, "招标采购部"); //授权给所在公司的招标采购部 InsertAuthorizationToJCGroup(AuthorizedByUserCode, AuthorizedByUserName, ProId, ProcName, deptInfo.DepartCode); //授权给集团的采购管理部 InsertAuthorizationToJCGroup(AuthorizedByUserCode, AuthorizedByUserName, ProId, ProcName, CGDeptCode); //发送邮件通知已经授权 //MailService mailService = new MailService(); //bool eResult = mailService.SendEmailCustom("","",""); //bool eResult = mailService.SendEmailCustom(string toUsers; string title;string body); 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); }