private void BindFormData()
    {
        string methodName = "BindFormData";

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN);
        try
        {
            JC_ElevatorOrderInfo jcInfo = jc.GetElevatorOrder(ViewState["FormID"].ToString());
            if (jcInfo != null)
            {
                cblSecurityLevel.SelectedValue = jcInfo.SecurityLevel.ToString();
                cblUrgentLevel.SelectedValue   = jcInfo.UrgenLevel != null?jcInfo.UrgenLevel.ToString() : "0";

                tbData.Text       = ((DateTime)jcInfo.Date).ToString("yyyy-MM-dd");
                tbPerson.Text     = jcInfo.UserName;
                tbDepartName.Text = jcInfo.DeptName;
                tbPhone.Text      = jcInfo.Mobile;
                tbTitle.Text      = jcInfo.ReportTitle;
                tbOrderType.Text  = jcInfo.OrderType.ToString();;
                tbOrderID.Text    = jcInfo.OrderID.ToString();
                tbContent.Text    = jcInfo.Url;
                tbNumber.Text     = jcInfo.ReportCode;
                txtMaxCost.Text   = jcInfo.MaxCost.HasValue ? FormatMoney(jcInfo.MaxCost.Value.ToString()) : "";
                tbNote.Text       = jcInfo.Note;
                //add 2014-12-23
                Countersign1.CounterSignDeptId = jcInfo.StartDeptCode;
            }
        }
        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);
    }
    private void BindFormData()
    {
        string methodName = "BindFormData";

        try
        {
            WorkFlowInstance Instance = wf_WorkFlowInstance.GetWorkFlowInstanceById(ViewState["InstanceID"].ToString());
            if (Instance == null)
            {
                ExceptionHander.GoToErrorPage("记录不存在");
            }
            JC_ElevatorOrderInfo item = jc.GetElevatorOrder(Instance.FormId.ToString());
            if (item == null)
            {
                ExceptionHander.GoToErrorPage("记录不存在");
            }
            if (item != null)
            {
                cblSecurityLevel.SelectedValue = item.SecurityLevel.ToString();
                cblUrgentLevel.SelectedValue   = item.UrgenLevel != null?item.UrgenLevel.ToString() : "0";

                tbData.Text       = ((DateTime)item.Date).ToString("yyyy-MM-dd");
                tbPerson.Text     = item.UserName;
                tbDepartName.Text = item.DeptName;
                tbPhone.Text      = item.Mobile;
                tbTitle.Text      = item.ReportTitle;
                tbOrderType.Text  = item.OrderType.ToString();
                tbOrderID.Text    = item.OrderID.ToString();
                tbContent.Text    = item.Url;
                tbNumber.Text     = item.ReportCode;
                txtMaxCost.Text   = item.MaxCost.HasValue ? FormatMoney(item.MaxCost.Value.ToString()) : "";
                tbNote.Text       = item.Note;
                //add 2014-12-23
                Countersign1.CounterSignDeptId = item.StartDeptCode;
            }
            Countersign1.ProcId = ViewState["InstanceID"].ToString();

            #region 审批意见框

            DeptManagerApproveOpinion.InstanceId       = ViewState["InstanceID"].ToString();
            RealateDeptApproveOpinion.InstanceId       = ViewState["InstanceID"].ToString();
            CityCompanyLeaderApproveOpinion.InstanceId = ViewState["InstanceID"].ToString();
            JCFirstApprovalApproveOpinion.InstanceId   = ViewState["InstanceID"].ToString();
            DesignerApproveOpinion.InstanceId          = ViewState["InstanceID"].ToString();
            ProjectOperatorApproveOpinion.InstanceId   = ViewState["InstanceID"].ToString();
            JCReApprovalApproveOpinion.InstanceId      = ViewState["InstanceID"].ToString();
            PurchaserApproveOpinion.InstanceId         = ViewState["InstanceID"].ToString();
            COOApproveOpinion.InstanceId             = ViewState["InstanceID"].ToString();
            JCMakeOrderApproveOpinion.InstanceId     = ViewState["InstanceID"].ToString();
            JCFinalApprovalApproveOpinion.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);
    }
    private void BindFormData()
    {
        string methodName = "BindFormData";

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN);
        try
        {
            JC_ElevatorOrderInfo jcInfo = jc.GetElevatorOrder(ViewState["FormID"].ToString());
            cblSecurityLevel.SelectedValue = jcInfo.SecurityLevel.ToString();
            cblUrgentLevel.SelectedValue   = jcInfo.UrgenLevel != null?jcInfo.UrgenLevel.ToString() : "0";

            ListItem item = ddlDepartName.Items.FindByValue(jcInfo.StartDeptCode);
            if (item != null)
            {
                ddlDepartName.SelectedIndex = ddlDepartName.Items.IndexOf(item);
            }

            UpdatedTextBox.Value = ((DateTime)jcInfo.Date).ToString("yyyy-MM-dd");
            tbPerson.Text        = jcInfo.UserName;
            tbPhone.Text         = jcInfo.Mobile;
            tbTitle.Text         = jcInfo.ReportTitle;
            tbOrderID.Text       = jcInfo.OrderID.ToString();
            tbOrderType.Text     = jcInfo.OrderType.ToString();
            tbNumber.Text        = jcInfo.ReportCode;
            tbNote.Text          = jcInfo.Note;
            //add 2015-01-14
            txtMaxCost.Text = jcInfo.MaxCost.HasValue ? jcInfo.MaxCost.Value.ToString() : "";

            tbContent.Text = jcInfo.Url;

            WorkFlowInstance workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(jcInfo.FormID);
            Countersign1.ProcId            = workFlowInstance.InstanceId;
            Countersign1.CounterSignDeptId = jcInfo.StartDeptCode;
            #region 审批意见框
            DeptManagerApproveOpinion.InstanceId       = workFlowInstance.InstanceId;
            RealateDeptApproveOpinion.InstanceId       = workFlowInstance.InstanceId;
            CityCompanyLeaderApproveOpinion.InstanceId = workFlowInstance.InstanceId;
            JCFirstApprovalApproveOpinion.InstanceId   = workFlowInstance.InstanceId;
            DesignerApproveOpinion.InstanceId          = workFlowInstance.InstanceId;
            ProjectOperatorApproveOpinion.InstanceId   = workFlowInstance.InstanceId;
            JCReApprovalApproveOpinion.InstanceId      = workFlowInstance.InstanceId;
            PurchaserApproveOpinion.InstanceId         = workFlowInstance.InstanceId;
            COOApproveOpinion.InstanceId             = workFlowInstance.InstanceId;
            JCMakeOrderApproveOpinion.InstanceId     = workFlowInstance.InstanceId;
            JCFinalApprovalApproveOpinion.InstanceId = workFlowInstance.InstanceId;
            #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);
    }
    protected void Save_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtMaxCost.Text.Trim()))
        {
            txtMaxCost.Focus();
            Alert(Page, "目标成本限额 不能为空!");
            return;
        }

        decimal val = 0;
        bool    f   = decimal.TryParse(txtMaxCost.Text.Trim(), out val);

        if (!f)
        {
            txtMaxCost.Focus();
            Alert(Page, "目标成本限额 不是有效的数值!");
            return;
        }

        //合同总额已超目标成本限额
        if (!string.IsNullOrEmpty(txtTotalPrice.Text.Trim()))
        {
            if (Convert.ToDecimal(txtMaxCost.Text.Trim()) < Convert.ToDecimal(txtTotalPrice.Text))
            {
                if (string.IsNullOrEmpty(tbNote.Text.Trim()))
                {
                    tbNote.Focus();
                    Alert(Page, "订单合同总额已超目标成本限额,请在“备注”中写明理由!");
                    return;
                }
            }
        }


        string id = ViewState["FormID"].ToString();
        JC_ElevatorOrderInfo jcInfo = SaveJCElevatorOrder(id, "00");

        if (jcInfo != null)
        {
            if (SaveWorkFlowInstance(jcInfo, "0", null, ""))
            {
                Alert(Page, "保存成功!");
            }
        }
        else
        {
            Alert(Page, "保存失败");
        }
    }
    protected void Submit_Click(object sender, EventArgs e)
    {
        if (string.IsNullOrEmpty(txtMaxCost.Text.Trim()))
        {
            txtMaxCost.Focus();
            Alert(Page, "目标成本限额 不能为空!");
            return;
        }
        decimal val = 0;
        bool    f   = decimal.TryParse(txtMaxCost.Text.Trim(), out val);

        if (!f)
        {
            txtMaxCost.Focus();
            Alert(Page, "目标成本限额 不是有效的数值!");
            return;
        }

        //合同总额已超目标成本限额
        if (!string.IsNullOrEmpty(txtTotalPrice.Text.Trim()))
        {
            if (Convert.ToDecimal(txtMaxCost.Text.Trim()) < Convert.ToDecimal(txtTotalPrice.Text))
            {
                if (string.IsNullOrEmpty(tbNote.Text.Trim()))
                {
                    tbNote.Focus();
                    Alert(Page, "订单合同总额已超目标成本限额,请在“备注”中写明理由!");
                    return;
                }
            }
        }

        #region 工作流参数
        NameValueCollection dataFields = SetWFParams();
        if (dataFields == null)
        {
            return;
        }
        #endregion
        int    wfInstanceId = 0; //process instance id
        string id           = ViewState["FormID"].ToString();

        //会签数据保存 yanghechun
        //Countersign1.SaveData(true);

        JC_ElevatorOrderInfo jcInfo = SaveJCElevatorOrder(id, "02");
        if (jcInfo != null)
        {
            //Countersign1.SaveAndSubmit();//会签数据保存
            //开启流程
            WorkflowHelper.CurrentUser = "******" + _BPMContext.CurrentUser.LoginId;

            WorkflowHelper.StartProcess(@"K2Workflow\JC_Lift", id, dataFields, ref wfInstanceId);
            if (wfInstanceId > 0)
            {
                if (SaveWorkFlowInstance(jcInfo, "1", DateTime.Now, wfInstanceId.ToString()))
                {
                    if (jc.UpdateStatus(id, "02"))
                    {
                        string           Opinion          = "";
                        string           ApproveResult    = "同意";
                        string           OpinionType      = "";
                        string           IsSign           = "0";
                        string           DelegateUserName = "";
                        string           DelegateUserCode = "";
                        WorkFlowInstance workFlowInstance = wf_WorkFlowInstance.GetWorkFlowInstanceByFormId(jcInfo.FormID);
                        //通知集采系统
                        string instanceID = workFlowInstance.InstanceId;
                        string url        = "http://" + Request.Url.Authority + "/Workflow/ViewPage/V_JCElevatorOrder.aspx?ID=" + instanceID;

                        try
                        {
                            //和集采的接口
                            order.SubmitWorkFlow(url, Convert.ToInt16(tbOrderType.Text.ToString()), Convert.ToInt16(tbOrderID.Text.ToString()));
                        }
                        catch
                        {
                        }

                        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_ElevatorOrderInfo jcInfo, 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(jcInfo.FormID);
            bool isEdit = false;
            if (workFlowInstance == null)
            {
                workFlowInstance                  = new WorkFlowInstance();
                workFlowInstance.InstanceId       = Guid.NewGuid().ToString();
                workFlowInstance.CreateDeptCode   = CurrentEmployee.DepartCode;
                workFlowInstance.CreateDeptName   = CurrentEmployee.DepartName;
                workFlowInstance.CreateAtTime     = DateTime.Now;
                workFlowInstance.CreateByUserCode = CurrentEmployee.EmployeeCode;
                workFlowInstance.CreateByUserName = CurrentEmployee.EmployeeName;
                workFlowInstance.AppId            = "10106";
            }
            else
            {
                workFlowInstance.CreateAtTime     = DateTime.Now;
                workFlowInstance.UpdateByUserCode = CurrentEmployee.EmployeeCode;
                workFlowInstance.UpdateByUserName = CurrentEmployee.EmployeeName;
                isEdit = true;
            }
            workFlowInstance.FormId    = jcInfo.FormID;
            workFlowInstance.FormTitle = jcInfo.ReportTitle;
            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);
            }
            Countersign1.ProcId = workFlowInstance.InstanceId;
            Countersign1.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_ElevatorOrderInfo SaveJCElevatorOrder(string ID, string wfStatus)
    {
        string methodName = "SaveJCElevatorOrder";

        Logger.Write(this.GetType(), EnumLogLevel.Info, className + ":" + methodName + ":" + Pkurg.PWorldBPM.Common.Log.MessageType.IN);

        JC_ElevatorOrderInfo jcInfo = null;

        try
        {
            jcInfo = jc.GetElevatorOrder(ID);

            bool isEdit = false;
            if (jcInfo == null)
            {
                jcInfo        = new JC_ElevatorOrderInfo();
                jcInfo.FormID = ViewState["FormID"].ToString();

                jcInfo.ReportCode = ViewState["FormID"].ToString();

                jcInfo.ApproveStatus = wfStatus;

                jcInfo.CreateByUserCode = CurrentEmployee.EmployeeCode;
                jcInfo.CreateAtTime     = DateTime.Now;
                jcInfo.CreateByUserName = CurrentEmployee.EmployeeName;
            }
            else
            {
                isEdit        = true;
                jcInfo.FormID = ViewState["FormID"].ToString();
                // jcInfo.OriginalFormId = ViewState["FormID"].ToString ();
                jcInfo.ApproveStatus = wfStatus;
            }
            jcInfo.UpdateByUserCode = CurrentEmployee.EmployeeCode;
            jcInfo.UpdateByUserName = CurrentEmployee.EmployeeName;
            if (cblSecurityLevel.SelectedIndex != -1)
            {
                jcInfo.SecurityLevel = short.Parse(cblSecurityLevel.SelectedValue);
            }
            if (cblUrgentLevel.SelectedIndex != -1)
            {
                jcInfo.UrgenLevel = short.Parse(cblUrgentLevel.SelectedValue);
            }
            DateTime date;
            bool     flag1 = DateTime.TryParse(UpdatedTextBox.Value, out date);
            if (flag1)
            {
                jcInfo.Date = date;
            }

            jcInfo.UserName      = tbPerson.Text;
            jcInfo.StartDeptCode = ddlDepartName.SelectedItem.Value.ToString();
            jcInfo.DeptName      = ddlDepartName.SelectedItem.Text;
            jcInfo.Mobile        = tbPhone.Text;
            jcInfo.ReportTitle   = tbTitle.Text;
            jcInfo.Note          = tbNote.Text;
            //add 2015-01-14
            jcInfo.MaxCost   = Convert.ToDecimal(txtMaxCost.Text.Trim());
            jcInfo.OrderType = tbOrderType.Text.ToString();
            jcInfo.OrderID   = tbOrderID.Text.ToString();
            if (tbContent.Text.ToString() != "")
            {
                jcInfo.Url = tbContent.Text.ToString();
            }
            else
            {
                jcInfo.Url = "";
            }

            if (!isEdit)
            {
                jc.InsertElevatorOrder(jcInfo);
            }
            else
            {
                jc.UpdateElevatorOrder(jcInfo);
            }
        }
        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(jcInfo);
    }