示例#1
0
 public bool Save_PBOC_Data(PBOCDATA data)
 {
     try
     {
         string sql_num = "select count(1) from C_PBOC_RESULT where application_no='" + data.Data.application_no + "'";
         int    num     = Convert.ToInt32(AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar(sql_num));
         if (num > 0)//原表中有数据,先移动到历史记录表;
         {
             string sql_to_his = "insert into C_PBOC_RESULT_HIS select* from C_PBOC_RESULT where application_no = '" + data.Data.application_no + "'";
             int    n_to_his   = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(sql_to_his);
             string sql_del    = "delete from C_PBOC_RESULT where application_no = '" + data.Data.application_no + "'";
             int    n_del      = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(sql_del);
             AppUtility.Engine.LogWriter.Write("插入到历史表C_PBOC_RESULT_HIS成功,受影响行数-->" + n_to_his + ",C_PBOC_RESULT删除数据成功,受影响行数-->" + n_del);
         }
         string sql_insert = "begin\r\n";
         foreach (var v in data.Applicants)
         {
             sql_insert += string.Format("insert into C_PBOC_RESULT(application_no,res_date,Name,Id_number,pboc_report,pboc_no,app_type) values ('{0}',to_date('{1}','yyyy-mm-dd hh24:mi:ss'),'{2}','{3}','{4}','{5}','{6}');\r\n", data.Data.application_no,
                                         data.Data.res_date, v.Name, v.Id_number, v.pboc_report, v.pboc_no, v.app_type);
         }
         sql_insert += "end;";
         int n_insert = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteNonQuery(sql_insert);
         AppUtility.Engine.LogWriter.Write("插入到C_PBOC_RESULT成功,受影响行数-->" + n_insert);
     }
     catch (Exception ex)
     {
         AppUtility.Engine.LogWriter.Write("Save PBOC Data Exception-->申请号" + data.Data.application_no + "," + ex.ToString());
     }
     return(true);
 }
示例#2
0
        public JsonResult Get_PCM_Result()
        {
            AppUtility.Engine.LogWriter.Write("中科软回调开始");
            var xml_result = "";

            try
            {
                //1.直接拿到Body中的内容
                var sr = new StreamReader(Request.InputStream);
                xml_result = HttpUtility.HtmlDecode(sr.ReadToEnd());
                //2.截取出PBOCDATA内的内容
                int first_index = xml_result.IndexOf("<PBOCDATA>");
                int last_index  = xml_result.IndexOf("</PBOCDATA>");
                var result      = "<?xml version=\"1.0\" encoding=\"UTF - 8\" ?>" + xml_result.Substring(first_index, last_index - first_index + 11);
                AppUtility.Engine.LogWriter.Write("Get_PCM_Result:" + result);
                //3.采用xml反序列化进行,但是Applicant在有多个人的情况下是并列的,这不符合规范,所以增加了一个Applicants节点,把所有的Applicant包括在内;
                int f_index = result.IndexOf("<Applicant>");
                int l_index = result.LastIndexOf("</Applicant>");
                result = result.Substring(0, f_index) + "<Applicants>" + result.Substring(f_index, l_index - f_index + 12) +
                         "</Applicants>" + result.Substring(l_index + 12);
                TextReader    tr        = new StringReader(result);
                XmlSerializer reader    = new XmlSerializer(typeof(PBOCDATA));
                PBOCDATA      pboc_data = reader.Deserialize(tr) as PBOCDATA;
                AppUtility.Engine.LogWriter.Write("中科软回调申请号:" + pboc_data.Data.application_no);
                //4.保存pboc_data的值;
                Save_PBOC_Data(pboc_data);
                //5.发送给融数;
                string application_no = pboc_data.Data.application_no;
                if (!string.IsNullOrEmpty(application_no))
                {
                    string   SchemaCode = "RetailApp";
                    string[] arryV      = application_no.Split('_');
                    string   manual     = application_no.Split('_')[1].Substring(0, 1);
                    string   schemaid   = application_no.Split('_')[1].Substring(1, 1);
                    if (schemaid == "2")
                    {
                        SchemaCode = "CompanyApp";
                    }
                    else if (schemaid == "3")
                    {
                        SchemaCode = "APPLICATION";
                    }
                    string sql        = "select objectid from OT_InstanceContext where  bizobjectschemacode='" + SchemaCode + "'and sequenceno='" + arryV[2] + "'";
                    string instanceid = AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar(sql).ToString();
                    Dictionary <string, object> dic = new Dictionary <string, object>();
                    dic.Add("SchemaCode", SchemaCode + string.Empty);
                    dic.Add("manual", manual + string.Empty);
                    dic.Add("instanceid", instanceid + string.Empty);
                    BizService.ExecuteBizNonQuery("DZWebService", "postHttp", dic);
                }
                else
                {
                    AppUtility.Engine.LogWriter.Write("调用风控失败:申请号," + pboc_data.Data.application_no);
                }
            }
            catch (Exception ex)
            {
                AppUtility.Engine.LogWriter.Write("中科软回调开始失败--> xml_result:" + xml_result + ",错误信息:" + ex.Message);
            }

            return(Json("Received!", JsonRequestBehavior.AllowGet));
        }