| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953 | 
							- using Newtonsoft.Json.Linq;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.ComponentModel;
 
- using System.Data;
 
- using System.Drawing;
 
- using System.Linq;
 
- using System.Text;
 
- using System.Threading.Tasks;
 
- using System.Windows.Forms;
 
- using PTMedicalInsurance.Common;
 
- using PTMedicalInsurance.Helper;
 
- using PTMedicalInsurance.FormSetter;
 
- using PTMedicalInsurance.Business;
 
- using PTMedicalInsurance.Variables;
 
- using FastReport;
 
- using System.Xml;
 
- namespace PTMedicalInsurance.Forms
 
- {
 
-     public partial class HandleException : Form
 
-     {
 
-         private int iLog = 0;
 
-         private int iSettl = 0;
 
-         private int iReg = 0;
 
-         //设置业务实例
 
-         CenterBusiness cBus = new CenterBusiness();
 
-         HisMainBusiness hBus = new HisMainBusiness();
 
-         HisIrisServices hIS = new HisIrisServices();
 
-         MIIrisServices mIS = new MIIrisServices();
 
-         InvokeHelper invoker = new InvokeHelper();
 
-         //1.声明自适应类实例
 
-         AutoResizeForm asc = new AutoResizeForm();
 
-         ReadCardClass rcl = new ReadCardClass();
 
-         AnalysisXML AnXML = new AnalysisXML();
 
-         public HandleException()
 
-         {
 
-             InitializeComponent();
 
-             //this.StartPosition = FormStartPosition.CenterParent;
 
-             asc.controllInitializeSize(this);
 
-             asc.controlAutoSize(this);
 
-         }
 
-         private void HandleException_Load(object sender, EventArgs e)
 
-         {
 
-             dpST_Log.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
 
-             dpED_Log.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
 
-             dpST_Settl.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00");
 
-             dpED_Settl.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59");
 
-             dgvSettlRecord.AutoGenerateColumns = false;
 
-             GridViewSetter grdSetter = new GridViewSetter();
 
-             grdSetter.SetHeaderTextOfSettlList(dgvSettlRecord);
 
-             grdSetter.SetHeaderTextOfCenterLog(dgvLog);
 
-             grdSetter.SetHeaderTextOfSettlList(dgvBalanceData);
 
-             rbgAdmType.SelectedIndex = 2;
 
-             rbgBillType.SelectedIndex = 1;
 
-             rbg_Zone.SelectedIndex = 0;
 
-         }
 
-         #region  结算异常
 
-         private void btnQuerySettleRec_Click(object sender, EventArgs e)
 
-         {
 
-             if (tbName.Text == "")
 
-             {
 
-                 MessageBox.Show("请输入患者姓名!");
 
-                 return;
 
-             }
 
-             string sqlStr = "SELECT * FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr;
 
-             sqlStr = sqlStr + " and OccurTime>'" + dpST_Settl.Text + "'";
 
-             sqlStr = sqlStr + " and OccurTime<'" + dpED_Settl.Text + "'";
 
-             sqlStr = sqlStr + " And ReversalFlag<>'1' ";
 
-             if (tbName.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and PatientName='" + tbName.Text + "'";
 
-             }
 
-             if (tbPatSettlID.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and SettlementID='" + tbPatSettlID.Text + "'";
 
-             }
 
-             if (tbHisNO.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and Adm_Dr='" + tbHisNO.Text + "'";
 
-             }
 
-             if (rbgAdmType.SelectedIndex == 1)
 
-             {
 
-                 sqlStr = sqlStr + " and admType=2";
 
-             }
 
-             if (rbgAdmType.SelectedIndex == 2)
 
-             {
 
-                 sqlStr = sqlStr + " and admType=1";
 
-             }
 
-             if (rbgBillType.SelectedIndex == 1)
 
-             {
 
-                 sqlStr = sqlStr + " and BillType=1";
 
-             }
 
-             if (rbgBillType.SelectedIndex == 2)
 
-             {
 
-                 sqlStr = sqlStr + " and BillType=-1";
 
-             }
 
-             JObject joSqlstr = new JObject();
 
-             joSqlstr.Add("sqlStr", sqlStr);
 
-             JArray jaParam = new JArray();
 
-             jaParam.Add(joSqlstr);
 
-             JObject joSettlQuery = new JObject();
 
-             joSettlQuery.Add("params", jaParam);
 
-             joSettlQuery.Add("code", "09010059");
 
-             InvokeHelper invoker = new InvokeHelper();
 
-             JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
 
-             //MessageBox.Show(joRtn.ToString());
 
-             //MessageBox.Show(joRtn["result"]["data"].ToString());
 
-             if (joRtn["result"]["data"].ToString() == "[]")
 
-             {
 
-                 MessageBox.Show("查询结果为空!");
 
-                 return;
 
-             }
 
-             DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
 
-             dgvSettlRecord.DataSource = dt;
 
-         }
 
-         private void btnReverseBySettl_Click(object sender, EventArgs e)
 
-         {
 
-             string outParam = "";
 
-             string sData_XML, OutMsg, AppRtnMsg, psn_no, tradeno, feeno, SettlementID, CloseMsg;
 
-             System.Type InComType = null;
 
-             dynamic InComInstance = "";
 
-             DataTable dt = (DataTable)dgvSettlRecord.DataSource;
 
-             int a = dgvSettlRecord.CurrentRow.Index;            
 
-             psn_no = dt.Rows[a]["PersonnelNO"].ToString();
 
-             feeno = dt.Rows[a]["RecordID"].ToString();
 
-             tradeno = dt.Rows[a]["SettlementID"].ToString();
 
-             Global.pat.settlID = dt.Rows[a]["SettlementID"].ToString();
 
-             try
 
-             {
 
-                 //创建首信医保Com实例
 
-                 if (rcl.CreateBusinessObj(out InComType, out InComInstance) != 0)
 
-                 {
 
-                     MessageBox.Show("实例创建CreateBusinessObj失败:" + outParam);
 
-                     return;
 
-                 }
 
-                 //读卡前先Open             
 
-                 rcl.Open(InComType, InComInstance, out outParam);
 
-                 //1.打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
 
-                 if (hBus.readCardCancelSettle(InComType, InComInstance, out outParam) != 0)
 
-                 {
 
-                     rcl.Close(InComType, InComInstance, out CloseMsg);
 
-                     MessageBox.Show("读卡readCard失败:" + outParam);
 
-                     return;
 
-                 }
 
-                 else
 
-                 {
 
-                     //展示患者信息界面
 
-                     if (hBus.showPatInfoNew(outParam, out outParam) != 0)
 
-                     {
 
-                         rcl.Close(InComType, InComInstance, out CloseMsg);
 
-                         MessageBox.Show("展示参保人员信息showPatInfoNew失败:" + outParam);
 
-                         return;
 
-                     }
 
-                 }
 
-                 //退费-本地
 
-                 if (Global.pat.iOtherProvLocal == 0)
 
-                 {
 
-                     //1.RefundmentDivideAll退费分解
 
-                     sData_XML = "<tradeinfo>"
 
-                               + "<tradeno>" + tradeno + "</tradeno>" // name="交易流水号"
 
-                               + "<operator>" + Global.user.ID + "</operator>" // name="收费员"
 
-                               + "<refundflag>0</refundflag>" // name="退费方式,0全部退费,1部分退费"
 
-                               + "<feeno>" + feeno + "</feeno>" // name="收费单据号"
 
-                               + "</tradeinfo>";
 
-                     sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                     rcl.BussniessObj("RefundmentDivideAll", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                     //解析返回值
 
-                     XmlDocument xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                     Boolean bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                     XmlNode dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/fulltrade/tradeinfo");
 
-                     if (bPass == false)
 
-                     {
 
-                         outParam = "调用RefundmentDivideAll退费分解失败:" + OutMsg;
 
-                         MessageBox.Show(outParam);
 
-                         return;
 
-                     }
 
-                     else
 
-                     {
 
-                         if (OutMsg != "")
 
-                             outParam = "调用RefundmentDivideAll退费分解成功,但中心返回警告信息如下:" + OutMsg;
 
-                         tradeno = AnXML.FormatXMLElement(xmlDoc, dataNode, "tradeno", 0);  //退费分解成功返回退费流水号
 
-                         //2.TradeALL退费确认
 
-                         rcl.TradeAll(InComType, InComInstance, out AppRtnMsg);
 
-                         //Global.writeLog("TradeALL退费确认出参:", sData_XML, AppRtnMsg);
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         if (bPass == false)
 
-                         {
 
-                             outParam = "调用RefundmentDivideAll退费分解成功,调用TradeAll退费确认失败," + OutMsg;
 
-                             if (hBus.TradeBack(3, Global.pat.settlID, InComType, InComInstance, out OutMsg) != 0)
 
-                                 outParam = outParam + "调用TradeRollBack交易挂起回退失败:请手动执行回退退费交易,本次退费失败!" + OutMsg;
 
-                             else
 
-                                 outParam = outParam + "调用TradeRollBack交易挂起回退成功,本次退费失败!";
 
-                             MessageBox.Show(outParam);
 
-                             Global.writeLog("TradeNo:" + Global.pat.settlID + outParam + OutMsg);
 
-                             return;
 
-                         }
 
-                         else
 
-                         {
 
-                             if (OutMsg != "")
 
-                             {
 
-                                 outParam = "调用RefundmentDivideAll退费分解成功,调用TradeALL退费确认成功,返回警告信息:" + OutMsg;
 
-                                 MessageBox.Show(outParam);
 
-                             }
 
-                             //3.HISFinishedNotice门诊退费交易完成通知
 
-                             //sData_XML = "<tradeno>" + Global.pat.settlID + "</tradeno>";
 
-                             sData_XML = "<tradeno>" + tradeno + "</tradeno>";
 
-                             sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                             //Global.writeLog("HISFinishedNotice门诊退费交易完成通知入参:" + sData_XML);
 
-                             rcl.BussniessObj("HISFinishedNotice", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                             //Global.writeLog("HISFinishedNotice门诊退费交易完成通知出参:", sData_XML, AppRtnMsg);
 
-                             xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                             bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                             dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output");
 
-                             string receivestate = AnXML.FormatXMLElement(xmlDoc, dataNode, "receivestate", 0);  //接收状态: 1:成功,0:失败
 
-                             if ((bPass == false) || (receivestate != "1"))
 
-                             {
 
-                                 outParam = "调用RefundmentDivideAll退费分解成功,调用TradeALL退费确认成功,调用HISFinishedNotice退费交易完成通知失败!" + OutMsg;
 
-                                 if (hBus.TradeBack(3, Global.pat.settlID, InComType, InComInstance, out OutMsg) != 0)
 
-                                     outParam = outParam + "调用TradeRollBack交易挂起回退异常:交易回退失败,请手动执行回退退费交易,本次退费失败!" + OutMsg;
 
-                                 else
 
-                                     outParam = outParam + "调用TradeRollBack交易挂起回退成功,本次退费失败!";
 
-                                 MessageBox.Show(outParam);
 
-                                 Global.writeLog("TradeNo:" + Global.pat.settlID + outParam + OutMsg);
 
-                                 return;
 
-                             }
 
-                             else
 
-                             {
 
-                                 if (OutMsg != "")
 
-                                 {
 
-                                     outParam = "调用HISFinishedNotice门诊退费交易完成通知成功,返回警告信息如下:" + OutMsg;
 
-                                     MessageBox.Show(outParam);
 
-                                 }
 
-                                 outParam = "退费成功!" + tradeno;
 
-                                 MessageBox.Show(outParam);
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     string histradeno = tradeno + "-1";
 
-                     //1.RefundmentTradeAllNation异地门诊退费结算                  
 
-                     sData_XML = "<HisTradeNo>" + histradeno + "</HisTradeNo>"  //本次红冲交易流水号
 
-                               + "<OriginalHisTradeNo>" + feeno + "</OriginalHisTradeNo>"  //被退交易流水号
 
-                               + "<Operator>" + Global.user.ID + "</Operator>" //退费操作员的姓名或者工号,可为空
 
-                               + "<feeno></feeno>"; //重收交易对应的收据号,由财政局、税务局和部队统一制定;有重收交易时必填;(2021年1月1日起,由票据代码与票据号码拼接后填写)
 
-                     sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                     rcl.BussniessObj("RefundmentTradeAllNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                     //解析返回值
 
-                     XmlDocument xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                     Boolean bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                     XmlNode dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/tradeinfo");
 
-                     if (bPass == false)
 
-                     {
 
-                         outParam = "调用RefundmentTradeAllNation门诊退费结算失败,中心返回错误信息:" + OutMsg;                        
 
-                         sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                         sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                         rcl.BussniessObj("CommitTradeStateNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                         //解析返回值
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         if (bPass == false)
 
-                             outParam = outParam + "!调用挂起回退交易CommitTradeStateNation失败!中心返回错误信息:" + OutMsg + ",本次异地门诊退费失败!";
 
-                         else
 
-                             outParam = outParam + "!调用挂起回退交易CommitTradeStateNation成功!本次异地门诊退费失败!";
 
-                         MessageBox.Show(outParam);
 
-                         Global.writeLog("histradeno:" + histradeno + outParam + OutMsg);
 
-                         return;
 
-                     }
 
-                     else
 
-                     {
 
-                         tradeno = dataNode.SelectNodes("tradeno")[0].InnerText; //门诊退费结算成功返回退费流水号
 
-                         //2.TradeCheckNation异地门诊退费结算实时对账
 
-                         sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                         sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                         rcl.BussniessObj("TradeCheckNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                         //解析返回值
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output");
 
-                         //string checkflag = dataNode.SelectNodes("checkflag")[0].InnerText; //对账标志 1-对账成功;2-无效交易
 
-                         string checkflag = AnXML.FormatXMLElement(xmlDoc, dataNode, "checkflag", 0);  //对账标志 1-对账成功;2-无效交易
 
-                         if ((bPass == false) || (checkflag != "1"))
 
-                         {
 
-                             outParam = " 调用RefundmentTradeAllNation异地门诊退费结算成功,调用TradeCheckNation异地门诊退费结算实时对账失败,中心返回失败原因:" + OutMsg;
 
-                             sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                             sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                             rcl.BussniessObj("CommitTradeStateNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                             //解析返回值
 
-                             xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                             bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                             if (bPass == false)
 
-                                 outParam = outParam + "调用CommitTradeStateNation门诊挂起回退失败!中心返回错误信息:" + OutMsg + ",本次异地门诊退费失败!";
 
-                             else
 
-                                 outParam = outParam + "调用CommitTradeStateNation门诊挂起回退成功!本次异地门诊退费失败!";
 
-                             MessageBox.Show(outParam);
 
-                             Global.writeLog("histradeno:" + histradeno + outParam + OutMsg);
 
-                             return;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 outParam = "门诊退费异常:" + ex.Message;
 
-                 MessageBox.Show(outParam);
 
-                 return;
 
-             }
 
-             finally
 
-             {
 
-                 rcl.Close(InComType, InComInstance, out CloseMsg);
 
-             }
 
-         }
 
-         private void btCancleSettl_Click(object sender, EventArgs e)
 
-         {
 
-           
 
-         }
 
-         #endregion
 
-         #region  日志异常
 
-         private void btnQueryLog_Click(object sender, EventArgs e)
 
-         {
 
-             string errMsg;
 
-             string sqlStr = "SELECT * FROM  BS_MedInsuTransactionLog WHERE Hospital_Dr=" + Global.inf.hospitalDr;
 
-             sqlStr = sqlStr + " and InfDate>='" + dpST_Log.Value.ToString("yyyy-MM-dd") + "'";
 
-             sqlStr = sqlStr + " and InfDate<='" + dpED_Log.Value.ToString("yyyy-MM-dd") + "'";
 
-             if (tbPsnNO.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and PSNNO='" + tbPsnNO.Text + "'";
 
-             }
 
-             if (tbTransNO.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and Infno='" + tbTransNO.Text + "'";
 
-             }
 
-             JObject joSqlstr = new JObject();
 
-             joSqlstr.Add("sqlStr", sqlStr);
 
-             JObject joRtn = mIS.QueryTransactionLog(joSqlstr);
 
-             try
 
-             {
 
-                 if (joRtn["result"]["data"].ToString() == "[]")
 
-                 {
 
-                     MessageBox.Show("查询结果为空!");
 
-                     return;
 
-                 }
 
-                 DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
 
-                 dgvLog.DataSource = dt;
 
-             }
 
-             catch (Exception eX)
 
-             {
 
-                 MessageBox.Show(eX.Message);
 
-             }
 
-         }
 
-         private void btnReverseByLog_Click(object sender, EventArgs e)
 
-         {
 
-             InvokeHelper invoker = new InvokeHelper();
 
-             DataTable dt = (DataTable)dgvLog.DataSource;
 
-             JObject joInparam = new JObject();
 
-             JObject joData = new JObject();
 
-             int a = dgvLog.CurrentRow.Index;
 
-             if (tbCBD_Log.Text != "")
 
-             { Global.pat.insuplc_admdvs = tbCBD_Log.Text; }
 
-             else
 
-                 Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString();
 
-             joData.Add("omsgid", dt.Rows[a]["msgid"].ToString());
 
-             joData.Add("psn_no", dt.Rows[a]["psn_no"].ToString());
 
-             joData.Add("oinfno", dt.Rows[a]["infno"].ToString());
 
-             //joData.Add("oinfno", "2207");
 
-             joInparam.Add("data", joData);
 
-             JObject joRtn = invoker.invokeCenterService("2601", JsonHelper.setCenterInpar("2601", joInparam.ToString()));
 
-             string errorMessage = "";
 
-             if (JsonHelper.parseCenterRtnValue(joRtn, out errorMessage) != 0)
 
-             {
 
-                 MessageBox.Show("冲正失败" + errorMessage);
 
-             }
 
-             else
 
-             {
 
-                 MessageBox.Show("冲正成功");
 
-             }
 
-         }
 
-         #endregion
 
-         private void btPatInfo_ex_Click(object sender, EventArgs e)
 
-         {
 
-             rtbInparam.Text = "";
 
-             if (rbg_Zone.SelectedIndex == 0)
 
-             {
 
-                 gb_Local.Visible = true;
 
-                 gb_Other.Visible = false;
 
-                 string str = "<tradeinfo>" 
 
-                            + "  <tradeno>" + tb_TradeNo.Text + "</tradeno>" 
 
-                            + "  <operator>" + Global.user.ID + "</operator>" 
 
-                            + "  <refundflag>0</refundflag>" 
 
-                            + "  <feeno>" + tb_FeeNo.Text + "</feeno>" 
 
-                            + "</tradeinfo>";
 
-                 rtbInparam.Text = JsonHelper.GetinPar(str, 2);
 
-             }
 
-             else
 
-             {
 
-                 gb_Local.Visible = false;
 
-                 gb_Other.Visible = true;
 
-                 string str = " <HisTradeNo>"+ tb_HISTradeNo.Text +"</HisTradeNo>" 
 
-                            + " <OriginalHisTradeNo>"+ tb_OrginalHisTradeNo.Text +"</OriginalHisTradeNo>" 
 
-                            + " <Operator>"+ Global.user.ID +"</Operator>" 
 
-                            + " <feeno></feeno>";
 
-                 rtbInparam.Text = JsonHelper.GetinPar(str, 2);
 
-             }
 
-             rtbInparam.Text = XmlHelper.FormatXml(rtbInparam.Text);
 
-         }
 
-         private void rbg_Zone_ValueChanged(object sender, int index, string text)
 
-         {
 
-             rtbInparam.Text = "";
 
-             if (rbg_Zone.SelectedIndex == 0)
 
-             {
 
-                 gb_Local.Visible = true;
 
-                 gb_Other.Visible = false;
 
-                 string str = "<tradeinfo>" 
 
-                            + "  <tradeno>" + tb_TradeNo.Text + "</tradeno>" 
 
-                            + "  <operator>" + Global.user.ID + "</operator>" 
 
-                            + "  <refundflag>0</refundflag>" 
 
-                            + "  <feeno>" + tb_FeeNo.Text + "</feeno>" 
 
-                            + "</tradeinfo>";
 
-                 rtbInparam.Text = JsonHelper.GetinPar(str, 2);
 
-             }
 
-             else
 
-             {
 
-                 gb_Local.Visible = false;
 
-                 gb_Other.Visible = true;
 
-                 string str = " <HisTradeNo>" + tb_HISTradeNo.Text + "</HisTradeNo>" 
 
-                            + " <OriginalHisTradeNo>" + tb_OrginalHisTradeNo.Text + "</OriginalHisTradeNo>" 
 
-                            + " <Operator>" + Global.user.ID + "</Operator>" 
 
-                            + " <feeno></feeno>";
 
-                 rtbInparam.Text = JsonHelper.GetinPar(str, 2);
 
-             }
 
-             rtbInparam.Text = XmlHelper.FormatXml(rtbInparam.Text);
 
-         }
 
-         private void btnPatInfoShow_Click(object sender, EventArgs e)
 
-         {
 
-             string outParam = "";    
 
-             string sData_XML, OutMsg, AppRtnMsg, tradeno, CloseMsg;
 
-             System.Type InComType = null;
 
-             dynamic InComInstance = "";
 
-             try
 
-             {                
 
-                 //创建首信医保Com实例
 
-                 if (rcl.CreateBusinessObj(out InComType, out InComInstance) != 0)
 
-                 {                    
 
-                     MessageBox.Show("实例创建CreateBusinessObj失败:" + outParam);
 
-                     return;
 
-                 }               
 
-                 //读卡前先Open             
 
-                 rcl.Open(InComType, InComInstance, out outParam);
 
-                 //1.打开读卡窗口,操作员选择读卡类型后进行读卡器读卡,再进行1101获取参保信息
 
-                 if (hBus.readCardCancelSettle(InComType, InComInstance, out outParam) != 0)
 
-                 {
 
-                     rcl.Close(InComType, InComInstance, out CloseMsg);
 
-                     rtbOutparam.Text = "读卡readCard失败:" + outParam;
 
-                     return;
 
-                 }
 
-                 else
 
-                 {
 
-                     //展示患者信息界面
 
-                     if (hBus.showPatInfoNew(outParam, out outParam) != 0)
 
-                     {
 
-                         rcl.Close(InComType, InComInstance, out CloseMsg);
 
-                         rtbOutparam.Text = "展示参保人员信息showPatInfoNew失败:" + outParam;
 
-                         return;
 
-                     }
 
-                 }
 
-                 //退费-本地
 
-                 if (Global.pat.iOtherProvLocal == 0)
 
-                 {
 
-                     if (tb_TradeNo.Text == "")
 
-                     {
 
-                         rtbOutparam.Text = "医保结算流水号TradeNo不能为空!";
 
-                         return;
 
-                     }
 
-                     if (tb_FeeNo.Text == "")
 
-                     {
 
-                         MessageBox.Show("收费单据号feeNo不能为空!");
 
-                         return;
 
-                     }
 
-                     //1.RefundmentDivideAll退费分解
 
-                     //sData_XML = "<tradeinfo>"
 
-                     //          + "<tradeno>" + tb_TradeNo.Text + "</tradeno>" // name="交易流水号"
 
-                     //          + "<operator>" + Global.user.ID + "</operator>" // name="收费员"
 
-                     //          + "<refundflag>0</refundflag>" // name="退费方式,0全部退费,1部分退费"
 
-                     //          + "<feeno>" + tb_FeeNo.Text + "</feeno>" // name="收费单据号"
 
-                     //          + "</tradeinfo>";
 
-                     //rtbInparam.Text = sData_XML;                   
 
-                     //sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                     sData_XML = rtbInparam.Text;
 
-                     rcl.BussniessObj("RefundmentDivideAll", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                     //解析返回值
 
-                     XmlDocument xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                     Boolean bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                     XmlNode dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/fulltrade/tradeinfo");
 
-                     if (bPass == false)
 
-                     {
 
-                         rtbOutparam.Text = "调用RefundmentDivideAll退费分解失败:" + OutMsg;
 
-                         return;
 
-                     }
 
-                     else
 
-                     {
 
-                         if (OutMsg != "")
 
-                             rtbOutparam.Text = "调用RefundmentDivideAll退费分解成功,但中心返回警告信息如下:" + OutMsg;
 
-                         tradeno = AnXML.FormatXMLElement(xmlDoc, dataNode, "tradeno", 0);  //退费分解成功返回退费流水号
 
-                         //2.TradeALL退费确认
 
-                         rcl.TradeAll(InComType, InComInstance, out AppRtnMsg);
 
-                         //Global.writeLog("TradeALL退费确认出参:", sData_XML, AppRtnMsg);
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         if (bPass == false)
 
-                         {
 
-                             outParam = "调用RefundmentDivideAll退费分解成功,调用TradeAll退费确认失败," + OutMsg;
 
-                             if (hBus.TradeBack(3, tb_TradeNo.Text, InComType, InComInstance, out OutMsg) != 0)
 
-                                 rtbOutparam.Text = outParam + "调用TradeRollBack交易挂起回退失败:请手动执行回退退费交易,本次退费失败!" + OutMsg;
 
-                             else
 
-                                 rtbOutparam.Text = outParam + "调用TradeRollBack交易挂起回退成功,本次退费失败!";
 
-                             Global.writeLog("TradeNo:" + tb_TradeNo.Text + outParam + OutMsg);
 
-                             return;
 
-                         }
 
-                         else
 
-                         {
 
-                             if (OutMsg != "")
 
-                                 rtbOutparam.Text = "调用RefundmentDivideAll退费分解成功,调用TradeALL退费确认成功,返回警告信息:" + OutMsg;
 
-                             //3.HISFinishedNotice门诊退费交易完成通知
 
-                             //sData_XML = "<tradeno>" + Global.pat.settlID + "</tradeno>";
 
-                             sData_XML = "<tradeno>" + tradeno + "</tradeno>";
 
-                             sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                             //Global.writeLog("HISFinishedNotice门诊退费交易完成通知入参:" + sData_XML);
 
-                             rcl.BussniessObj("HISFinishedNotice", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                             //Global.writeLog("HISFinishedNotice门诊退费交易完成通知出参:", sData_XML, AppRtnMsg);
 
-                             xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                             bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                             dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output");
 
-                             string receivestate = AnXML.FormatXMLElement(xmlDoc, dataNode, "receivestate", 0);  //接收状态: 1:成功,0:失败
 
-                             if ((bPass == false) || (receivestate != "1"))
 
-                             {
 
-                                 outParam = "调用RefundmentDivideAll退费分解成功,调用TradeALL退费确认成功,调用HISFinishedNotice退费交易完成通知失败!" + OutMsg;
 
-                                 if (hBus.TradeBack(3, tb_TradeNo.Text, InComType, InComInstance, out OutMsg) != 0)
 
-                                     rtbOutparam.Text = outParam + "调用TradeRollBack交易挂起回退异常:交易回退失败,请手动执行回退退费交易,本次退费失败!" + OutMsg;
 
-                                 else
 
-                                     rtbOutparam.Text = outParam + "调用TradeRollBack交易挂起回退成功,本次退费失败!";            
 
-                                 Global.writeLog("TradeNo:" + tb_TradeNo.Text + outParam + OutMsg);
 
-                                 return;
 
-                             }
 
-                             else
 
-                             {
 
-                                 if (OutMsg != "")
 
-                                     rtbOutparam.Text = "调用HISFinishedNotice门诊退费交易完成通知成功,返回警告信息如下:" + OutMsg;
 
-                                 rtbOutparam.Text = "退费成功!" + tradeno;
 
-                             }
 
-                         }
 
-                     }
 
-                 }
 
-                 else
 
-                 {
 
-                     if (tb_HISTradeNo.Text == "")
 
-                     {
 
-                         MessageBox.Show("异地退费HISTradeNo不能为空!");
 
-                         return;
 
-                     }
 
-                     if (tb_OrginalHisTradeNo.Text == "")
 
-                     {
 
-                         MessageBox.Show("收费单据号feeNo不能为空!");
 
-                         return;
 
-                     }
 
-                     string histradeno = tb_HISTradeNo.Text;
 
-                     //1.RefundmentTradeAllNation异地门诊退费结算                  
 
-                     //sData_XML = "<HisTradeNo>" + histradeno + "</HisTradeNo>"  //本次红冲交易流水号
 
-                     //          + "<OriginalHisTradeNo>" + tb_OrginalHisTradeNo.Text + "</OriginalHisTradeNo>"  //被退交易流水号
 
-                     //          + "<Operator>" + Global.user.ID + "</Operator>" //退费操作员的姓名或者工号,可为空
 
-                     //          + "<feeno></feeno>"; //重收交易对应的收据号,由财政局、税务局和部队统一制定;有重收交易时必填;(2021年1月1日起,由票据代码与票据号码拼接后填写)
 
-                     //rtbInparam.Text = sData_XML;
 
-                     //sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                     sData_XML = rtbInparam.Text;
 
-                     rcl.BussniessObj("RefundmentTradeAllNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                     //解析返回值
 
-                     XmlDocument xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                     Boolean bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                     XmlNode dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output/tradeinfo");
 
-                     if (bPass == false)
 
-                     {
 
-                         outParam = "调用RefundmentTradeAllNation门诊退费结算失败,中心返回错误信息:" + OutMsg;
 
-                         sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                         sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                         rcl.BussniessObj("CommitTradeStateNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                         //解析返回值
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         if (bPass == false)
 
-                             rtbOutparam.Text = outParam + "!调用挂起回退交易CommitTradeStateNation失败!中心返回错误信息:" + OutMsg + ",本次异地门诊退费失败!";
 
-                         else
 
-                             rtbOutparam.Text = outParam + "!调用挂起回退交易CommitTradeStateNation成功!本次异地门诊退费失败!";
 
-                         Global.writeLog("histradeno:" + histradeno + outParam + OutMsg);
 
-                         return;
 
-                     }
 
-                     else
 
-                     {
 
-                         tradeno = dataNode.SelectNodes("tradeno")[0].InnerText; //门诊退费结算成功返回退费流水号
 
-                         //2.TradeCheckNation异地门诊退费结算实时对账
 
-                         sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                         sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                         rcl.BussniessObj("TradeCheckNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                         //解析返回值
 
-                         xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                         bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                         dataNode = AnXML.GetNodeFromPath(xmlDoc.DocumentElement, "output");
 
-                         //string checkflag = dataNode.SelectNodes("checkflag")[0].InnerText; //对账标志 1-对账成功;2-无效交易
 
-                         string checkflag = AnXML.FormatXMLElement(xmlDoc, dataNode, "checkflag", 0);  //对账标志 1-对账成功;2-无效交易
 
-                         if ((bPass == false) || (checkflag != "1"))
 
-                         {
 
-                             outParam = " 调用RefundmentTradeAllNation异地门诊退费结算成功,调用TradeCheckNation异地门诊退费结算实时对账失败,中心返回失败原因:" + OutMsg;
 
-                             sData_XML = "<histradeno>" + histradeno + "</histradeno>";
 
-                             sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                             rcl.BussniessObj("CommitTradeStateNation", sData_XML, InComType, InComInstance, out AppRtnMsg);
 
-                             //解析返回值
 
-                             xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                             bPass = AnXML.CheckState(xmlDoc, out OutMsg);
 
-                             if (bPass == false)
 
-                                 rtbOutparam.Text = outParam + "调用CommitTradeStateNation门诊挂起回退失败!中心返回错误信息:" + OutMsg + ",本次异地门诊退费失败!";
 
-                             else
 
-                                 rtbOutparam.Text = outParam + "调用CommitTradeStateNation门诊挂起回退成功!本次异地门诊退费失败!";
 
-                             Global.writeLog("histradeno:" + histradeno + outParam + OutMsg);
 
-                             return;
 
-                         }
 
-                     }
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 rtbOutparam.Text = "门诊退费异常:" + ex.Message;
 
-                 return;
 
-             }
 
-             finally
 
-             {
 
-                 rcl.Close(InComType, InComInstance, out CloseMsg);
 
-             }
 
-         }   
 
-         private void btnExit_Click(object sender, EventArgs e)
 
-         {
 
-             Close();
 
-         }
 
-         private void Chk_DealNo_ValueChanged(object sender, bool value)
 
-         {
 
-         }
 
-         private void btnExit_Click_1(object sender, EventArgs e)
 
-         {
 
-             this.Close();
 
-         }
 
-         private void uiButton1_Click(object sender, EventArgs e)
 
-         {
 
-             if (tb_Name.Text == "")
 
-             {
 
-                 MessageBox.Show("请输入患者姓名!");
 
-                 return;
 
-             }
 
-             string sqlStr = "SELECT * FROM  BS_MedInsuSettlement WHERE Hospital_Dr=" + Global.inf.hospitalDr;
 
-             sqlStr = sqlStr + " and OccurTime>'" + dtBegin.Text + "'";
 
-             sqlStr = sqlStr + " and OccurTime<'" + dtEnd.Text + "'";
 
-             if (tb_Name.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and PatientName='" + tb_Name.Text + "'";
 
-             }
 
-             if (tb_PatSettlID.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and SettlementID='" + tb_PatSettlID.Text + "'";
 
-             }
 
-             if (tb_HisNO.Text != "")
 
-             {
 
-                 sqlStr = sqlStr + " and Adm_Dr='" + tb_HisNO.Text + "'";
 
-             }
 
-             if (rbgAdmType_Handel.SelectedIndex == 1)
 
-             {
 
-                 sqlStr = sqlStr + " and admType=1";
 
-             }
 
-             if (rbgAdmType_Handel.SelectedIndex == 2)
 
-             {
 
-                 sqlStr = sqlStr + " and admType=2";
 
-             }
 
-             if (rbgBillType_Handel.SelectedIndex == 1)
 
-             {
 
-                 sqlStr = sqlStr + " and BillType=1";
 
-             }
 
-             if (rbgBillType_Handel.SelectedIndex == 2)
 
-             {
 
-                 sqlStr = sqlStr + " and BillType=-1";
 
-             }
 
-             JObject joSqlstr = new JObject();
 
-             joSqlstr.Add("sqlStr", sqlStr);
 
-             JArray jaParam = new JArray();
 
-             jaParam.Add(joSqlstr);
 
-             JObject joSettlQuery = new JObject();
 
-             joSettlQuery.Add("params", jaParam);
 
-             joSettlQuery.Add("code", "09010059");
 
-             InvokeHelper invoker = new InvokeHelper();
 
-             JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询结算信息");
 
-             //MessageBox.Show(joRtn.ToString());
 
-             //MessageBox.Show(joRtn["result"]["data"].ToString());
 
-             if (joRtn["result"]["data"].ToString() == "[]")
 
-             {
 
-                 MessageBox.Show("查询结果为空!");
 
-                 return;
 
-             }
 
-             DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
 
-             dgvBalanceData.DataSource = dt;
 
-         }
 
-         private void btnDo_Click(object sender, EventArgs e)
 
-         {
 
-             string sData_XML = "", S_Temp = "", Appmsg = "", OutMsg_Open = "", OutMsg_Close, AppRtnMsg = "", OutMsg = "";
 
-             string FunName = "", Explain = "";
 
-             System.Type ComType = null;
 
-             dynamic ComInstance = null;
 
-             if ((rbgType.SelectedIndex == 3) && (rbgType.SelectedIndex == 4) && (rbgType.SelectedIndex == 5))
 
-             {
 
-                 if (tbTradeNo.Text == "")
 
-                 {
 
-                     MessageBox.Show("调用<挂起回退CommitTradeStateNation交易>,请直接输入需要确认的HIS交易流水号!");
 
-                     return;
 
-                 }
 
-             }
 
-             else
 
-             {
 
-             }
 
-             if ((rbgType.SelectedIndex == 0) || (rbgType.SelectedIndex == 1))
 
-             {
 
-                 if (rbgType.SelectedIndex == 0)
 
-                 {
 
-                     sData_XML = " <tradetype>0</tradetype>"
 
-                              + " <tradeno>" + tbTradeNo.Text + "</tradeno>"  //收费交易流水号
 
-                              + " <fulltradeno></fulltradeno> "
 
-                              + " <partialtradeno></partialtradeno> "; // name="重收交易流水号"
 
-                 }
 
-                 else
 
-                 {
 
-                     sData_XML = " <tradetype>2</tradetype>"
 
-                               + " <tradeno></tradeno>"
 
-                               + " <fulltradeno>" + tbTradeNo.Text + "</fulltradeno> "  //退费交易流水号
 
-                               + " <partialtradeno></partialtradeno> "; // name="重收交易流水号"
 
-                 }
 
-                 sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                 FunName = "TradeRollBack";
 
-                 Explain = "交易挂起回退";
 
-             }
 
-             else if (rbgType.SelectedIndex == 2)
 
-             {
 
-                 sData_XML = "<tradeno>" + tbTradeNo.Text + "</tradeno>";
 
-                 sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                 FunName = "HISFinishedNotice";
 
-                 Explain = "门诊交易完成通知";
 
-             }
 
-             else if (rbgType.SelectedIndex == 3)
 
-             {
 
-                 sData_XML = "<HISTradeNO>" + tbTradeNo.Text + "</HISTradeNO>";
 
-                 sData_XML = JsonHelper.GetinPar(sData_XML, 0);
 
-                 FunName = "CommitTradeStateNation";
 
-                 Explain = "门诊挂起回退";
 
-             }
 
-             else if (rbgType.SelectedIndex == 4)
 
-             {
 
-                 if ((tbTradeNo.Text == "") || (tbFeeNo.Text == ""))
 
-                 {
 
-                     MessageBox.Show("收费交易流水号tradeno或医保收费单据号feeno不能为空!");
 
-                     return;
 
-                 }
 
-                 MessageBox.Show("收费回退(异地)成功后,请接着调用退费实时对账交易才能完成异地退费!");
 
-                 sData_XML = " <HisTradeNo>" + tbTradeNo.Text + "</HisTradeNo> "
 
-                           + " <OriginalHisTradeNo></OriginalHisTradeNo> "
 
-                           + " <Operator></Operator> "
 
-                           + " <feeno></feeno> ";
 
-                 sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                 FunName = "RefundmentTradeAllNation";
 
-                 Explain = "收费回退(异地)";
 
-             }
 
-             else if (rbgType.SelectedIndex == 5)
 
-             {
 
-                 sData_XML = "<histradeno>" + tbTradeNo.Text + "</histradeno>";
 
-                 sData_XML = JsonHelper.GetinPar(sData_XML, 2);
 
-                 FunName = "TradeCheckNation";
 
-                 Explain = "异地门诊收费实时对账";
 
-             }
 
-             //创建首信医保Com实例
 
-             if (rcl.CreateBusinessObj(out ComType, out ComInstance) != 0)
 
-             {
 
-                 MessageBox.Show("实例创建失败");
 
-                 return;
 
-             }
 
-             else
 
-             {
 
-                 Appmsg = sData_XML;
 
-                 rcl.Open(ComType, ComInstance, out OutMsg_Open);  //读卡前先Open
 
-                 rcl.ReadCardObj(FunName, Appmsg, ComType, ComInstance, out AppRtnMsg);
 
-                 rcl.Close(ComType, ComInstance, out OutMsg_Close);
 
-                 XmlDocument xmlDoc = new XmlDocument();
 
-                 xmlDoc = AnXML.GetXmlDoc(AppRtnMsg);
 
-                 if (AnXML.CheckState(xmlDoc, out OutMsg) == false)
 
-                 {
 
-                     MessageBox.Show("调用【" + FunName + "】" + Explain + "失败,中心返回错误信息:" + OutMsg + "\r\n"
 
-                                   + "调用【Open】打开读卡设备输出:" + OutMsg_Open + "\r\n"
 
-                                   + "调用【Close】关闭读卡设备输出:" + OutMsg_Close);
 
-                     return;
 
-                 }
 
-                 else
 
-                 {
 
-                     xmlDoc = null;
 
-                     MessageBox.Show("调用【" + FunName + "】" + Explain + "成功:中心返回" + AppRtnMsg);
 
-                 }
 
-             }
 
-         }
 
-        
 
-     }
 
- }
 
 
  |