public override void LoadFormInfo()
 {
     try
     {
         _BillNoControl = new BillNumberControl(CE_BillTypeEnum.IT运维申请单.ToString(), _MainService);
         _LnqBillInfo   = _MainService.GetSingleBillInfo(this.FlowInfo_BillNo);
         SetInfo();
     }
     catch (Exception ex)
     {
         MessageDialog.ShowErrorMessage(ex.Message);
     }
 }
        void SetInfo()
        {
            IFlowServer serverFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>();

            if (_LnqBillInfo != null)
            {
                lbBillStatus.Text = serverFlow.GetNowBillStatus(_LnqBillInfo.BillNo);
                txtBillNo.Text    = _LnqBillInfo.BillNo;

                txtAssetsNo.Text            = _LnqBillInfo.AssetsNo;
                txtContact.Text             = _LnqBillInfo.Contact;
                txtEvaluation.Text          = _LnqBillInfo.Evaluation;
                txtMalfunctionApproach.Text = _LnqBillInfo.MalfunctionApproach;
                txtMalfunctionReason.Text   = _LnqBillInfo.MalfunctionReason;
                txtMalfunctionSymptom.Text  = _LnqBillInfo.MalfunctionSymptom;
                txtMalfunctionAddress.Text  = _LnqBillInfo.MalfunctionAddress;

                numElapsedTime.Value  = _LnqBillInfo.ElapsedTime == null ? 0 : (decimal)_LnqBillInfo.ElapsedTime;
                numExpenses.Value     = _LnqBillInfo.Expenses == null ? 0 : (decimal)_LnqBillInfo.Expenses;
                numSatisfaction.Value = _LnqBillInfo.Satisfaction == null ? 0 : (decimal)_LnqBillInfo.Satisfaction;

                cmbSymptomType.Text = _LnqBillInfo.SymptomType == null ? "" : _LnqBillInfo.SymptomType;

                if (_LnqBillInfo.Solve != null)
                {
                    GlobalObject.GeneralFunction.SetRadioButton(_LnqBillInfo.Solve, customGroupBox3);
                }

                List <CommonProcessInfo> lstTemp = serverFlow.GetFlowData(_LnqBillInfo.BillNo);
                CommonProcessInfo        info    = lstTemp.OrderBy(k => k.时间).First();
                txtLinkPersonnel.Text = info.人员;
            }
            else
            {
                lbBillStatus.Text = CE_CommonBillStatus.新建单据.ToString();

                _LnqBillInfo = new Business_Composite_ComputerMalfunction();

                txtBillNo.Text        = this.FlowInfo_BillNo;
                _LnqBillInfo.BillNo   = txtBillNo.Text;
                txtLinkPersonnel.Text = BasicInfo.LoginName;
            }
        }
        private bool IT运维申请单_Form_CommonProcessSubmit(CustomFlowForm form, string advise)
        {
            try
            {
                Business_Composite_ComputerMalfunction lnqSaveInfo = form.ResultList[0] as Business_Composite_ComputerMalfunction;
                this.OperationType = GeneralFunction.StringConvertToEnum <CE_FlowOperationType>(form.ResultList[1].ToString());
                this.BillNo        = lnqSaveInfo.BillNo;

                switch (this.OperationType)
                {
                case CE_FlowOperationType.提交:
                case CE_FlowOperationType.暂存:
                    m_mainService.SaveInfo(lnqSaveInfo);
                    break;

                case CE_FlowOperationType.回退:
                    break;

                case CE_FlowOperationType.未知:
                    break;

                default:
                    break;
                }

                if (!m_mainService.IsExist(lnqSaveInfo.BillNo))
                {
                    MessageDialog.ShowPromptMessage("数据为空,保存失败,如需退出,请直接X掉界面");
                    return(false);
                }

                return(true);
            }
            catch (Exception ex)
            {
                MessageDialog.ShowPromptMessage(ex.Message);
                return(false);
            }
        }
        /// <summary>
        /// 保存业务信息
        /// </summary>
        /// <param name="billInfo">业务总单信息</param>
        /// <param name="effectValue">业务明细信息</param>
        public void SaveInfo(Business_Composite_ComputerMalfunction billInfo)
        {
            DepotManagementDataContext ctx = CommentParameter.DepotDataContext;

            ctx.Connection.Open();
            ctx.Transaction = ctx.Connection.BeginTransaction();
            IFlowServer serviceFlow = FlowControlService.ServerModuleFactory.GetServerModule <IFlowServer>();

            try
            {
                var varData = from a in ctx.Business_Composite_ComputerMalfunction
                              where a.BillNo == billInfo.BillNo
                              select a;

                if (varData.Count() == 1)
                {
                    Business_Composite_ComputerMalfunction lnqBill = varData.Single();

                    Flow_FlowInfo     flowInfo = serviceFlow.GetNowFlowInfo(lnqBill.BillNo);
                    CE_CommonFlowName flowName =
                        GlobalObject.GeneralFunction.StringConvertToEnum <CE_CommonFlowName>(flowInfo.FlowName);

                    switch (flowName)
                    {
                    case CE_CommonFlowName.新建:
                        lnqBill.MalfunctionAddress = billInfo.MalfunctionAddress;
                        lnqBill.MalfunctionSymptom = billInfo.MalfunctionSymptom;
                        lnqBill.AssetsNo           = billInfo.AssetsNo;
                        lnqBill.Contact            = billInfo.Contact;

                        if (lnqBill.MalfunctionAddress == null || lnqBill.MalfunctionAddress.Trim().Length == 0)
                        {
                            throw new Exception("请填写【故障发生地点】");
                        }

                        if (lnqBill.MalfunctionSymptom == null || lnqBill.MalfunctionSymptom.Trim().Length == 0)
                        {
                            throw new Exception("请填写【故障现象】");
                        }

                        if (lnqBill.Contact == null || lnqBill.Contact.Trim().Length == 0)
                        {
                            throw new Exception("请填写【联系方式】");
                        }

                        PointEvaluation(ctx, billInfo.BillNo);
                        break;

                    case CE_CommonFlowName.处理:
                        lnqBill.SymptomType         = billInfo.SymptomType;
                        lnqBill.MalfunctionReason   = billInfo.MalfunctionReason;
                        lnqBill.MalfunctionApproach = billInfo.MalfunctionApproach;
                        lnqBill.ElapsedTime         = billInfo.ElapsedTime;
                        lnqBill.Expenses            = billInfo.Expenses;


                        if (lnqBill.SymptomType == null || lnqBill.SymptomType.Trim().Length == 0)
                        {
                            throw new Exception("请填写【故障类别】");
                        }

                        if (lnqBill.MalfunctionReason == null || lnqBill.MalfunctionReason.Trim().Length == 0)
                        {
                            throw new Exception("请填写【故障原因】");
                        }

                        if (lnqBill.MalfunctionApproach == null || lnqBill.MalfunctionApproach.Trim().Length == 0)
                        {
                            throw new Exception("请填写【处理方式】");
                        }

                        break;

                    case CE_CommonFlowName.评价:
                        lnqBill.Evaluation   = billInfo.Evaluation;
                        lnqBill.Solve        = billInfo.Solve;
                        lnqBill.Satisfaction = billInfo.Satisfaction;

                        if (lnqBill.Evaluation == null || lnqBill.Evaluation.Trim().Length == 0)
                        {
                            throw new Exception("请填写【评价】");
                        }

                        if (lnqBill.Satisfaction == null || lnqBill.Satisfaction.Value == 0)
                        {
                            throw new Exception("请填写【满意度】");
                        }

                        break;

                    case CE_CommonFlowName.完成:
                        break;

                    default:
                        break;
                    }
                }
                else if (varData.Count() == 0)
                {
                    if (billInfo.MalfunctionAddress == null || billInfo.MalfunctionAddress.Trim().Length == 0)
                    {
                        throw new Exception("请填写【故障发生地点】");
                    }

                    if (billInfo.MalfunctionSymptom == null || billInfo.MalfunctionSymptom.Trim().Length == 0)
                    {
                        throw new Exception("请填写【故障现象】");
                    }

                    if (billInfo.Contact == null || billInfo.Contact.Trim().Length == 0)
                    {
                        throw new Exception("请填写【联系方式】");
                    }

                    ctx.Business_Composite_ComputerMalfunction.InsertOnSubmit(billInfo);
                    PointEvaluation(ctx, billInfo.BillNo);
                }
                else
                {
                    throw new Exception("单据数据不唯一");
                }

                ctx.SubmitChanges();
                ctx.Transaction.Commit();
            }
            catch (Exception ex)
            {
                ctx.Transaction.Rollback();
                throw new Exception(ex.Message);
            }
        }