コード例 #1
0
        private DynamicObject getbandobject(Context ctx, JNBandPara actband)
        {
            int actbandid = actband.bandid;

            DynamicObject[] bandIDs = BusinessDataServiceHelper.Load(ctx, new object[] { actbandid }, (MetaDataServiceHelper.Load(ctx, "CN_BANKACNT") as FormMetadata).BusinessInfo.GetDynamicObjectType());
            return(bandIDs.FirstOrDefault());
        }
コード例 #2
0
        /// <summary>
        /// 查询余额
        /// </summary>
        /// <param name="Context">上下文</param>
        /// <param name="actband">我方银行账户</param>
        public JNBandBalance checkamount(Context ctx, JNBandPara actband)
        {
            DynamicObject bandID    = getbandobject(ctx, actband);
            DynamicObject urlobject = getbandUrl(bandID);


            string bandNUMBER       = Convert.ToString(bandID["NUMBER"]);
            string ACNTBRANCHNUMBER = Convert.ToString(bandID["ACNTBRANCHNUMBER"]);
            string token            = checkin(ctx, actband);
            string url        = Convert.ToString(urlobject["F_JN_ServiceURL"]);
            string F_JNtermid = Convert.ToString(urlobject["F_JNtermid"]);
            string F_JNCustid = Convert.ToString(urlobject["F_JNCustid"]);
            string F_JNCusopr = Convert.ToString(urlobject["F_JNCusopr"]);

            DateTime currentTime = new System.DateTime();

            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string      F_JNcustdt = string.Format("{0:yyyyMMddHHmmss}", currentTime);
            string      xmlMsg     = string.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
<bocb2e version=""100"" security=""true"" lang=""chs"">
<head>
<termid>{0}</termid>
<trnid>20060704001</trnid>
<custid>{1}</custid>
<cusopr>{2}</cusopr>
<trncod>b2e0005</trncod>
<token>{3}</token>
</head>
<trans>
<trn-b2e0005-rq>
<b2e0005-rq>
<account>
<ibknum>{4}</ibknum>
<actacn>{5}</actacn>
</account>
</b2e0005-rq>
</trn-b2e0005-rq>
</trans>
</bocb2e>
", F_JNtermid, F_JNCustid, F_JNCusopr, token, bandNUMBER, ACNTBRANCHNUMBER);
            string      Xmldata    = BandPost(url, xmlMsg, 600);
            XmlDocument xx         = new XmlDocument();

            xx.LoadXml(Xmldata);                                               //加载xml
            XmlNodeList xxList = xx.GetElementsByTagName("balance");           //取得节点名为row的XmlNode集合
            double      bokbal = Convert.ToDouble(xxList[0]["bokbal"].Value);  //账面余额
            double      avabal = Convert.ToDouble(xxList[0]["avabal"].Value);; //有效余额
            double      stpamt = Convert.ToDouble(xxList[0]["stpamt"].Value);; //圈存余额
            double      ovramt = Convert.ToDouble(xxList[0]["ovramt"].Value);; //透资余额


            JNBandBalance amount = new JNBandBalance();

            amount.bokbal = bokbal;
            amount.bokbal = avabal;
            amount.stpamt = stpamt;
            amount.ovramt = ovramt;
            return(amount);
        }
コード例 #3
0
        /// <summary>
        /// 签入
        /// </summary>
        /// <param name="Context">上下文</param>
        /// <param name="actband">我方银行账户</param>
        public string checkin(Context ctx, JNBandPara actband)
        {
            DynamicObject bandID    = getbandobject(ctx, actband);
            DynamicObject urlobject = getbandUrl(bandID);

            #region
            //判断是否是启用的帐套
            string database       = ctx.DataCenterName;
            string F_VTR_DataBase = Convert.ToString(urlobject["F_VTR_DataBase"]);
            if (database != F_VTR_DataBase)
            {
                return("");
            }
            #endregion


            string   url         = Convert.ToString(urlobject["F_JN_ServiceURL"]);
            string   F_JNtermid  = Convert.ToString(urlobject["F_JNtermid"]);
            string   F_JNCustid  = Convert.ToString(urlobject["F_JNCustid"]);
            string   F_JNCusopr  = Convert.ToString(urlobject["F_JNCusopr"]);
            string   F_JNOprpwd  = Convert.ToString(urlobject["F_JNOprpwd"]);
            DateTime currentTime = new System.DateTime();
            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string      F_JNcustdt = string.Format("{0:yyyyMMddHHmmss}", currentTime);
            string      xmlMsg     = string.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
<bocb2e version=""100"" security=""true"" lang=""chs"">
<head>
<termid>{0}</termid>
<trnid>20060704001</trnid>
<custid>{1}</custid>
<cusopr>{2}</cusopr>
<trncod>b2e0001</trncod>
</head>
<trans>
<trn-b2e0001-rq>
<b2e0001-rq>
<custdt>{3}</custdt>
<oprpwd>{4}</oprpwd>
</b2e0001-rq>
</trn-b2e0001-rq>
</trans>
</bocb2e>
", F_JNtermid, F_JNCustid, F_JNCusopr, F_JNcustdt, F_JNOprpwd);
            string      Xmldata    = BandPost(url, xmlMsg, 600);
            XmlDocument xx         = new XmlDocument();
            xx.LoadXml(Xmldata);                               //加载xml
            XmlNode rootnote  = xx.SelectSingleNode("bocb2e"); //指向根节点
            XmlNode transnote = rootnote.SelectSingleNode("trans");
            XmlNode b2enote   = transnote.SelectSingleNode("trn-b2e0001-rs");
            XmlNode tokennote = b2enote.SelectSingleNode("token");
            string  token     = tokennote.InnerText;
            return(token);
        }
コード例 #4
0
        /// <summary>
        /// 签出
        /// </summary>
        /// <param name="Context">上下文</param>
        /// <param name="actband">我方银行账户</param>
        public void checkout(Context ctx, JNBandPara actband)
        {
            DynamicObject bandID    = getbandobject(ctx, actband);
            DynamicObject urlobject = getbandUrl(bandID);

            #region
            //判断是否是启用的帐套
            string database       = ctx.DataCenterName;
            string F_VTR_DataBase = Convert.ToString(urlobject["F_VTR_DataBase"]);
            if (database != F_VTR_DataBase)
            {
                return;
            }
            #endregion

            string url        = Convert.ToString(urlobject["F_JN_ServiceURL"]);
            string F_JNtermid = Convert.ToString(urlobject["F_JNtermid"]);
            string F_JNCustid = Convert.ToString(urlobject["F_JNCustid"]);
            string F_JNCusopr = Convert.ToString(urlobject["F_JNCusopr"]);

            DateTime currentTime = new System.DateTime();
            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string F_JNcustdt = string.Format("{0:yyyyMMddHHmmss}", currentTime);
            string xmlMsg     = string.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
<bocb2e version=""100"" security=""true"" lang=""chs"">
<head>
<termid>{0}</termid>
<trnid>20060704001</trnid>
<custid>{1}</custid>
<cusopr>{2}</cusopr>
<trncod>b2e0002</trncod>
</head>
<trans>
<trn-b2e0002-rq>
<b2e0002-rq>
<custdt>{3}</custdt>
</b2e0002-rq>
</trn-b2e0002-rq>
</trans>
</bocb2e>
", F_JNtermid, F_JNCustid, F_JNCusopr, F_JNcustdt);
            string Xmldata    = BandPost(url, xmlMsg, 600);
        }
コード例 #5
0
        /// <summary>

        /// 实际运行的Run 方法

        /// </summary>

        /// <param name="ctx"></param>

        /// <param name="schedule"></param>

        public void Run(Context ctx, Schedule schedule)
        {
            DateTime   currentTime     = new System.DateTime();
            JNBandPara actband         = new JNBandPara();
            JNBand     findbandservice = new JNBand();

            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string sql = "";

            sql = string.Format(@"select t1.FENTRYID,t1.F_JNOBSSID,t2.FACCOUNTID from T_AP_PAYBILLENTRY_B t1 
join T_AP_PAYBILLENTRY t2 on t2.fid=t1.fid
join T_AP_PAYBILL t3 on t1.FID=t3.FID where  DATEDIFF(DAY,GETDATE(),FAPPROVEDATE)>-10
and (t1.F_JNOBSSID is not null and  t1.F_JNOBSSID <>'')");
            DynamicObjectCollection rundatas = DBUtils.ExecuteDynamicObject(ctx, sql);
            string token = "";
            int    i     = 0;

            foreach (var rundata in rundatas)
            {
                FormMetadata  formMetadata = MetaDataServiceHelper.Load(ctx, "CN_BANKACNT") as FormMetadata;
                DynamicObject FrACCOUNT    = BusinessDataServiceHelper.LoadSingle(
                    ctx,
                    rundata["FACCOUNTID"],
                    formMetadata.BusinessInfo.GetDynamicObjectType());
                DynamicObject FrBAND = FrACCOUNT["BANKID"] as DynamicObject;
                actband.bandid = Convert.ToInt32(FrACCOUNT["Id"]);
                //actband.addr = Convert.ToString(FrACCOUNT["BANKADDRESS"]);
                actband.name     = Convert.ToString(FrACCOUNT["Name"]);
                actband.bandnum  = Convert.ToString(FrACCOUNT["ACNTBRANCHNUMBER"]);
                actband.cn       = Convert.ToString(FrACCOUNT["NUMBER"]);
                actband.bandname = Convert.ToString(FrBAND["Name"]);
                string obssid = Convert.ToString(rundata["F_JNOBSSID"]);
                if (i == 0)//首行获取令牌
                {
                    token = findbandservice.checkin(ctx, actband);
                    i++;
                }
                string result = "";
                if (obssid.Length > 1)
                {
                    result = findbandservice.findPay(ctx, actband, obssid, token);
                }
                if (result.Length > 0)
                {
                    switch (result)
                    {
                    default:
                        BusinessDataServiceHelper.SetState(ctx, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "F_JNOBSSID", new object[] { obssid });
                        break;

                    case "待授权":
                        BusinessDataServiceHelper.SetState(ctx, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid });
                        break;

                    case "ok":
                        BusinessDataServiceHelper.SetState(ctx, "T_AP_PAYBILLENTRY_B", "FBankStatus", "C", "F_JNOBSSID", new object[] { obssid });
                        break;

                    case "授权拒绝":
                        BusinessDataServiceHelper.SetState(ctx, "T_AP_PAYBILLENTRY_B", "FBankStatus", "D", "F_JNOBSSID", new object[] { obssid });
                        break;

                    case "交易处理中":
                        BusinessDataServiceHelper.SetState(ctx, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid });
                        break;
                    }
                }

                //Thread.Sleep(5000);
            }
            //throw new NotImplementedException();
            if (token.Length > 1)
            {
                findbandservice.checkout(ctx, actband);
            }
        }
コード例 #6
0
        /// <summary>
        /// 查询交易状态
        /// </summary>
        /// <param name="Context">上下文</param>
        /// <param name="actband">我方银行账户</param>
        /// <param name="obssid">银行流水号</param>
        /// <param name="token">令牌</param>
        public string findPay(Context ctx, JNBandPara actband, string obssid, string token)
        {
            DynamicObject bandID    = getbandobject(ctx, actband);
            DynamicObject urlobject = getbandUrl(bandID);

            #region
            //判断是否是启用的帐套
            string database       = ctx.DataCenterName;
            string F_VTR_DataBase = Convert.ToString(urlobject["F_VTR_DataBase"]);
            if (database != F_VTR_DataBase)
            {
                return("");
            }
            #endregion


            string bandNUMBER       = Convert.ToString(bandID["NUMBER"]);
            string ACNTBRANCHNUMBER = Convert.ToString(bandID["ACNTBRANCHNUMBER"]);
            //string token = checkin(ctx,actband);
            string url        = Convert.ToString(urlobject["F_JN_ServiceURL"]);
            string F_JNtermid = Convert.ToString(urlobject["F_JNtermid"]);
            string F_JNCustid = Convert.ToString(urlobject["F_JNCustid"]);
            string F_JNCusopr = Convert.ToString(urlobject["F_JNCusopr"]);

            DateTime currentTime = new System.DateTime();
            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string      F_JNcustdt = string.Format("{0:yyyyMMddHHmmss}", currentTime);
            string      xmlMsg     = string.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
<bocb2e version=""100"" security=""true"" lang=""chs"">
<head>
<termid>{0}</termid>
<trnid>20060704001</trnid>
<custid>{1}</custid>
<cusopr>{2}</cusopr>
<trncod>b2e0007</trncod>
<token>{3}</token>
</head>
<trans>
<trn-b2e0007-rq>
<b2e0007-rq>
<insid></insid> 
<obssid>{4}</obssid>
</b2e0007-rq>
</trn-b2e0007-rq>
</trans>
</bocb2e>
", F_JNtermid, F_JNCustid, F_JNCusopr, token, obssid);
            string      Xmldata    = BandPost(url, xmlMsg, 600);
            XmlDocument xx         = new XmlDocument();
            xx.LoadXml(Xmldata);                                //加载xml
            XmlNode rootnote   = xx.SelectSingleNode("bocb2e"); //指向根节点
            XmlNode transnote  = rootnote.SelectSingleNode("trans");
            XmlNode trnb2enote = transnote.SelectSingleNode("trn-b2e0007-rs");

            XmlNode b2enotes   = trnb2enote.SelectSingleNode("b2e0007-rs");
            XmlNode statusnote = b2enotes.SelectSingleNode("status");
            XmlNode rspnote    = statusnote.SelectSingleNode("rspmsg");
            string  rspmsg     = rspnote.InnerText;
            //checkout(ctx,actband);
            return(rspmsg);//返回银行流水号
        }
コード例 #7
0
        /// <summary>
        /// 公对私转账支付
        /// </summary>
        ///  /// <param name="Context">上下文</param>
        /// <param name="actband">我方银行账户</param>
        /// <param name="actband">对方银行账户</param>
        /// <param name="actband">金额</param>
        /// <param name="furinfo">用途</param>
        /// <param name="F_VTR_Bocflag">是否跨行</param>
        ///  <param name="token">令牌</param>
        public string BtoCPay(Context ctx, JNBandPara actband, JNBandPara toband, double payamount, string furinfo, int F_VTR_Bocflag, string token)
        {
            DynamicObject bandID    = getbandobject(ctx, actband);
            DynamicObject urlobject = getbandUrl(bandID);

            #region
            //判断是否是启用的帐套
            string database       = ctx.DataCenterName;
            string F_VTR_DataBase = Convert.ToString(urlobject["F_VTR_DataBase"]);
            if (database != F_VTR_DataBase)
            {
                return("");
            }
            #endregion

            string bandNUMBER       = Convert.ToString(bandID["NUMBER"]);
            string ACNTBRANCHNUMBER = Convert.ToString(bandID["ACNTBRANCHNUMBER"]);
            //string token = checkin(ctx,actband);
            string url        = Convert.ToString(urlobject["F_JN_ServiceURL"]);
            string F_JNtermid = Convert.ToString(urlobject["F_JNtermid"]);
            string F_JNCustid = Convert.ToString(urlobject["F_JNCustid"]);
            string F_JNCusopr = Convert.ToString(urlobject["F_JNCusopr"]);

            DateTime currentTime = new System.DateTime();
            currentTime = TimeServiceHelper.GetSystemDateTime(ctx);
            string insid = string.Format("{0:yyyyMMddHHmmssff}", currentTime);//指令ID

            //我方银行账号
            string frbandnum = actband.bandnum;
            string frcn      = actband.cn;
            string frname    = actband.name;
            //对方银行账号
            string tobandnum  = toband.bandnum;
            string tocn       = toband.cn;
            string toname     = toband.name;
            string toadd      = toband.addr;
            string tobandname = toband.bandname;

            string payamountstr = Convert.ToString(payamount);



            string F_JNcustdt = string.Format("{0:yyyyMMdd}", currentTime);
            //F_JNcustdt = "20170330";
            string      xmlMsg  = string.Format(@"<?xml version=""1.0"" encoding=""UTF-8""?>
<bocb2e version=""100"" security=""true"" lang=""chs"">
<head>
<termid>{0}</termid>
<trnid>20060704001</trnid>
<custid>{1}</custid>
<cusopr>{2}</cusopr>
<trncod>b2e0061</trncod>
<token>{3}</token>
</head>
<trans>
<trn-b2e0061-rq>
<transtype>1</transtype>
<b2e0061-rq>
<insid>{4}</insid>
<obssid></obssid>
<fractn>
<fribkn>{5}</fribkn>
<actacn>{6}</actacn>
<actnam>{7}</actnam> 
</fractn>
<toactn>
<toibkn>{8}</toibkn>
<actacn>{9}</actacn>
<toname>{10}</toname> 
<toaddr>{11}</toaddr>
<tobknm>{12}</tobknm>
</toactn>
<trnamt>{13}</trnamt>
<trncur>001</trncur> 
<priolv>0</priolv>
<cuspriolv>0</cuspriolv>
<furinfo>{14}</furinfo>
<trfdate>{15}</trfdate> 
<trftime></trftime>
<comacn></comacn> 
<bocflag>{16}</bocflag>
</b2e0061-rq>
</trn-b2e0061-rq>
</trans>
</bocb2e>
", F_JNtermid, F_JNCustid, F_JNCusopr, token, insid, frbandnum, frcn, frname, tobandnum, tocn, toname, toadd, tobandname, payamountstr, furinfo, F_JNcustdt, F_VTR_Bocflag);
            string      Xmldata = BandPost(url, xmlMsg, 600);
            XmlDocument xx      = new XmlDocument();
            xx.LoadXml(Xmldata);                               //加载xml
            XmlNode rootnote  = xx.SelectSingleNode("bocb2e"); //指向根节点
            XmlNode transnote = rootnote.SelectSingleNode("trans");
            XmlNode b2enote   = transnote.SelectSingleNode("trn-b2e0061-rs");
            if (b2enote == null)
            {
                return("");
            }

            XmlNode statusnote = b2enote.SelectSingleNode("b2e0061-rs");
            XmlNode obssidnote = statusnote.SelectSingleNode("obssid");
            //XmlNode rspnote = statusnote.SelectSingleNode("rspmsg");
            string rspmsg = obssidnote.InnerText;
            //checkout(ctx,actband);
            return(rspmsg);//返回银行流水号
        }
コード例 #8
0
        /// <summary>
        /// 操作执行前逻辑
        /// </summary>
        /// <param name="e"></param>
        public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e)
        {
            JNBandPara actband    = new JNBandPara();
            JNBandPara toband     = new JNBandPara();
            double     payamount  = 0;
            var        billGroups = e.DataEntitys;
            string     database   = this.Context.DataCenterName;
            string     token      = "";
            int        i          = 0;

            foreach (var billGroup in billGroups)
            {
                DynamicObject BillType     = billGroup["BillTypeID"] as DynamicObject;
                string        BillTypeName = Convert.ToString(BillType["name"]);
                if (BillTypeName != "其他业务付款单")
                {
                    DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection;
                    foreach (var BILLENTRYDATA in BILLENTRYDATAs)
                    {
                        DynamicObject FrACCOUNT    = BILLENTRYDATA["FACCOUNTID"] as DynamicObject;
                        int           SETTLETYPEID = Convert.ToInt16(BILLENTRYDATA["SETTLETYPEID_Id"]);
                        if (FrACCOUNT != null)
                        {
                            DynamicObject FrBAND = FrACCOUNT["BANKID"] as DynamicObject;
                            if (FrBAND != null && SETTLETYPEID == 4)
                            {
                                actband.bandid = Convert.ToInt32(BILLENTRYDATA["FACCOUNTID_Id"]);
                                //actband.addr = Convert.ToString(FrACCOUNT["BANKADDRESS"]);
                                actband.name     = Convert.ToString(FrACCOUNT["Name"]);
                                actband.bandnum  = Convert.ToString(FrACCOUNT["ACNTBRANCHNUMBER"]);
                                actband.cn       = Convert.ToString(FrACCOUNT["NUMBER"]);
                                actband.bandname = Convert.ToString(FrBAND["Name"]);


                                toband.addr     = Convert.ToString(BILLENTRYDATA["OpenAddressRec"]);
                                toband.cn       = Convert.ToString(BILLENTRYDATA["OPPOSITEBANKACCOUNT"]);
                                toband.bandname = Convert.ToString(BILLENTRYDATA["OPPOSITEBANKNAME"]);
                                toband.name     = Convert.ToString(BILLENTRYDATA["OPPOSITECCOUNTNAME"]);
                                payamount       = Convert.ToDouble(BILLENTRYDATA["REALPAYAMOUNTFOR"]);
                                Int32 EntryID = Convert.ToInt32(BILLENTRYDATA["Id"]);
                                if (i == 0)//首单获取令牌
                                {
                                    token = checkin(this.Context, actband);
                                    i++;
                                }
                                //判断对公对私业务
                                int    RecType = Convert.ToInt16(BILLENTRYDATA["RecType"]);
                                string result  = "";
                                if (RecType == 0)//对公
                                {
                                    result = BtoBPay(this.Context, actband, toband, payamount, "", token);
                                }
                                else//对私
                                {
                                    int F_VTR_Bocflag = Convert.ToInt32(BILLENTRYDATA["F_VTR_Bocflag"]);
                                    result = BtoCPay(this.Context, actband, toband, payamount, "", F_VTR_Bocflag, token);
                                }
                                if (result.Length > 0)
                                {
                                    BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FSUBMITSTATUS", "B", "FEntryID", new object[] { EntryID });
                                    //BusinessDataServiceHelper.s
                                    string sql = string.Format("update T_AP_PAYBILLENTRY_B set F_JNobssid={0} where FEntryID={1}", result, EntryID.ToString());
                                    DBUtils.Execute(this.Context, sql);
                                }
                                else
                                {
                                    // 定义交互消息标识,以与其他交互消息区分开
                                    string spensorKey = "JNbandAudit.ServicePlugIn.Operation.S160425ShowInteractionOpPlug.ShowK3DisplayMessage";
                                    // 提示信息的列标题,以“~|~”分开两列
                                    string titleMsg = "提交银行失败";
                                    // 对应的提示信息格式,以"~|~"分开两列,以{n}进行占位
                                    string           errMsg = "提交银行失败";
                                    K3DisplayerModel model  = K3DisplayerModel.Create(Context, titleMsg);
                                    // 消息内容:可以添加多行
                                    string rowMsg = string.Format(errMsg, "提交银行失败");
                                    ((K3DisplayerModel)model).AddMessage(rowMsg);
                                    model.Option.SetVariableValue(K3DisplayerModel.CST_FormTitle, "本节点为最后节点,是否继续完成审批?");
                                    // 是否继续按钮
                                    model.FieldAppearances[1].Width = new LocaleValue("300");


                                    model.OKButton.Visible     = true;
                                    model.OKButton.Caption     = new LocaleValue("继续", Context.UserLocale.LCID);
                                    model.CancelButton.Visible = true;
                                    model.CancelButton.Caption = new LocaleValue("取消", Context.UserLocale.LCID);
                                    // 创建一个交互提示错误对象KDInteractionException:
                                    // 通过throw new KDInteractionException()的方式,向操作调用者,输出交互信息
                                    KDInteractionException ie = new KDInteractionException(this.Option, spensorKey);
                                    // 提示信息显示界面
                                    ie.InteractionContext.InteractionFormId = Kingdee.BOS.Core.FormIdConst.BOS_K3Displayer;
                                    // 提示内容
                                    ie.InteractionContext.K3DisplayerModel = model;
                                    // 是否需要交互
                                    ie.InteractionContext.IsInteractive = true;
                                    // 抛出错误,终止流程
                                    throw ie;
                                }
                            }
                        }
                    }
                    //i++;
                }
            }

            if (token.Length > 1)
            {
                checkout(this.Context, actband);
            }
        }
コード例 #9
0
ファイル: findpaystatus.cs プロジェクト: gordonjie/VTRERP
        /// <summary>
        /// 操作执行前逻辑
        /// </summary>
        /// <param name="e"></param>
        public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e)
        {
            JNBandPara actband    = new JNBandPara();
            var        billGroups = e.DataEntitys;
            string     token      = "";
            int        i          = 0;

            foreach (var billGroup in billGroups)
            {
                string result = "";
                DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection;
                foreach (var BILLENTRYDATA in BILLENTRYDATAs)
                {
                    DynamicObject FrACCOUNT = BILLENTRYDATA["FACCOUNTID"] as DynamicObject;
                    DynamicObject FrBAND    = FrACCOUNT["BANKID"] as DynamicObject;
                    actband.bandid = Convert.ToInt32(BILLENTRYDATA["FACCOUNTID_Id"]);
                    //actband.addr = Convert.ToString(FrACCOUNT["BANKADDRESS"]);
                    actband.name     = Convert.ToString(FrACCOUNT["Name"]);
                    actband.bandnum  = Convert.ToString(FrACCOUNT["ACNTBRANCHNUMBER"]);
                    actband.cn       = Convert.ToString(FrACCOUNT["NUMBER"]);
                    actband.bandname = Convert.ToString(FrBAND["Name"]);
                    if (i == 0)//首单获取令牌
                    {
                        token = checkin(this.Context, actband);
                        i++;
                    }
                    string obssid = Convert.ToString(BILLENTRYDATA["F_JNOBSSID"]);
                    if (obssid.Length > 1)
                    {
                        result = findPay(this.Context, actband, obssid, token);
                    }
                    if (result.Length > 0)
                    {
                        switch (result)
                        {
                        default:
                            BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "F_JNOBSSID", new object[] { obssid });
                            break;

                        case "待授权":
                            BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid });
                            break;

                        case "ok":
                            BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "C", "F_JNOBSSID", new object[] { obssid });
                            break;

                        case "授权拒绝":
                            BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "D", "F_JNOBSSID", new object[] { obssid });
                            break;

                        case "交易处理中":
                            BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "B", "F_JNOBSSID", new object[] { obssid });
                            break;
                        }
                    }
                }
            }
            if (token.Length > 1)
            {
                checkout(this.Context, actband);
            }
        }