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.Threading; namespace PTMedicalInsurance.Forms { public partial class HandleException : Form { private int iLog = 0; private int iSettl = 0; private int iReg = 0; private XmlHelper xmler = new XmlHelper(); //设置业务实例 CenterBusiness cBus = new CenterBusiness(); HisMainBusiness hBus = new HisMainBusiness(); HisIrisServices hIS = new HisIrisServices(); MIIrisServices mIS = new MIIrisServices(); InvokeHelper invoker = new InvokeHelper(); public HandleException() { InitializeComponent(); } 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"); dpST_OutPatReg.Text = DateTime.Now.ToString("yyyy-MM-dd 00:00:00"); dpED_OutPatReg.Text = DateTime.Now.ToString("yyyy-MM-dd 23:59:59"); dgvSettlRecord.AutoGenerateColumns = false; GridViewSetter grdSetter = new GridViewSetter(); grdSetter.SetHeaderTextOfSettlList(dgvSettlRecord); grdSetter.SetHeaderTextOfCenterLog(dgvLog); grdSetter.SetHeaderTextOfRegister(dgvOutPatReg); rbgAdmType.SelectedIndex = 0; rbgBillType.SelectedIndex = 1; } #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 + "'"; 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=1"; } if (rbgAdmType.SelectedIndex == 2) { sqlStr = sqlStr + " and admType=2"; } if (rbgBillType.SelectedIndex == 1) { sqlStr = sqlStr + " and BillType=1"; } if (rbgBillType.SelectedIndex == 2) { sqlStr = sqlStr + " and BillType=-1"; } if (rgbValidFlag_1.SelectedIndex == 1) { sqlStr = sqlStr + " and ValidFlag=1"; } if (rgbValidFlag_1.SelectedIndex == 2) { sqlStr = sqlStr + " and ValidFlag=-1"; } JObject joSqlStr = new JObject(); joSqlStr.Add("sqlStr",sqlStr); JObject joRtn = mIS.QuerySettlementInfo(joSqlStr); DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable)); dgvSettlRecord.DataSource = dt; } private void btnReverseBySettl_Click(object sender, EventArgs e) { InvokeHelper invoker = new InvokeHelper(); DataTable dt = (DataTable)dgvSettlRecord.DataSource; string errorMessage = ""; int a = dgvSettlRecord.CurrentRow.Index; Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString(); Global.pat.mdtrtID = dt.Rows[a]["MdtrtID"].ToString(); Global.pat.psn_no = dt.Rows[a]["PersonnelNO"].ToString(); Global.pat.adm_Dr = int.Parse(dt.Rows[a]["AdmID"].ToString()); Global.pat.settlID= dt.Rows[a]["SettlementID"].ToString(); Global.pat.medType = dt.Rows[a]["MedicalType"].ToString(); hBus.setPrmBatch(); JObject joInparam = new JObject(); //string infno = ""; //if (dt.Rows[a]["admType"].ToString() == "1") infno = "2207"; //if (dt.Rows[a]["admType"].ToString() == "2") infno = "2304"; JObject joData = new JObject(); String msgID = dt.Rows[a]["msgid"].ToString(); if (!String.IsNullOrEmpty(tbMsgID.Text)) { msgID = tbMsgID.Text; } joData.Add("omsgid",msgID ); joData.Add("prm_aac001", dt.Rows[a]["PersonnelNO"].ToString()); joData.Add("prm_akc190",Global.pat.mdtrtID); joData.Add("prm_yka103", Global.pat.settlID); if (tbPrmBatch.Text == "") { joData.Add("prm_yabtch", Global.pat.patExtend.prm_yabtch);//没有取清算机构 } else { joData.Add("prm_yabtch", tbPrmBatch.Text);//没有取清算机构 } //将中心返回的结果返回HIS 调用HIS服务进行保存 string funNO = "H7103"; if (dt.Rows[a]["ClearingOrgan"].ToString() == "9902") funNO = "H7106"; if (invoker.invokeYHCom(funNO,joData, out errorMessage) != 0) { MessageBox.Show("冲正失败:" + errorMessage); } else { dynamic joTmp = new JObject(); joTmp.admID = Global.pat.adm_Dr; joTmp.PersonalNO = Global.pat.psn_no; joTmp.mdtrt_id = Global.pat.mdtrtID; joTmp.setl_id = Global.pat.settlID; if (mIS.cancleSettlement(Global.pat.settlID, out errorMessage) != 0) { errorMessage = "中心取消结算成功但云HIS平台取消失败,请联系管理员!" + errorMessage; MessageBox.Show(errorMessage); } else { MessageBox.Show("冲正成功"); } } } string outPar; int iRes; [STAThread] private void cancleSettle(object o) { try { string outParam; DataTable dt = (DataTable)dgvSettlRecord.DataSource; int a = dgvSettlRecord.CurrentRow.Index; Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString(); Global.pat.mdtrtID = dt.Rows[a]["MdtrtID"].ToString(); Global.pat.psn_no = dt.Rows[a]["PersonnelNO"].ToString(); Global.pat.settlID = dt.Rows[a]["SettlementID"].ToString(); Global.pat.adm_Dr = int.Parse(dt.Rows[a]["AdmID"].ToString()); Global.pat.insuType = dt.Rows[a]["InsuranceType"].ToString(); Global.pat.medType = dt.Rows[a]["MedicalType"].ToString(); hBus.setPrmBatch(); dynamic joTmp = new JObject(); joTmp.prm_akc190 = Global.pat.mdtrtID; joTmp.prm_aac001 = Global.pat.psn_no; joTmp.prm_yka103 = Global.pat.settlID; joTmp.prm_yab003 = Global.pat.insuplc_admdvs; joTmp.prm_aka130 = Global.pat.medType; joTmp.prm_ykb065 = Global.pat.insuType; joTmp.prm_aae011 = Global.user.ID; joTmp.prm_ykc141 = Global.user.name; joTmp.prm_aae036 = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); joTmp.prm_yabtch = Global.pat.patExtend.prm_yabtch; YinHaiCom yhCom = new YinHaiCom(); yhCom.Init(out outParam); iRes = invoker.invokeYHCom("42", joTmp, out outParam); if (iRes != 0) { CallBack(outParam); return; } if (invoker.confirmYHCom(out outParam) != 0) { CallBack(outParam); return; } else { //取消中心结算信息 if (cBus.cancleSettlement(out outParam) != 0) { MessageBox.Show("取消中心结算信息失败!" + outParam); return; } else { string output = xmler.ToJSON(outParam); string newSettleID = JsonHelper.getDestValue(JObject.Parse(output), "output.prm_yka198"); //取消平台结算信息 if (mIS.cancleSettlement(newSettleID, out outParam) != 0) { MessageBox.Show("中心结算取消成功,医保平台结算信息取消失败!" + outParam); return; } //取消出院登记 if (cBus.cancleDisRegister(out outParam) != 0) { MessageBox.Show("中心,医保平台及HIS结算信息取消成功,取消出院登记失败!请手工取消出院登记!" + outParam); return; } else { MessageBox.Show("退结算成功!"); } } } } catch (Exception ex) { CallBack(ex.Message); } } [STAThread] private void cancleInsuPlatformSettle(object o) { try { string outParam; DataTable dt = (DataTable)dgvSettlRecord.DataSource; int a = dgvSettlRecord.CurrentRow.Index; Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString(); Global.pat.mdtrtID = dt.Rows[a]["MdtrtID"].ToString(); Global.pat.psn_no = dt.Rows[a]["PersonnelNO"].ToString(); Global.pat.settlID = dt.Rows[a]["SettlementID"].ToString(); Global.pat.adm_Dr = int.Parse(dt.Rows[a]["AdmID"].ToString()); Global.pat.insuType = dt.Rows[a]["InsuranceType"].ToString(); Global.pat.medType = dt.Rows[a]["MedicalType"].ToString(); string newSettleID = Global.pat.settlID; //取消平台结算信息 if (mIS.cancleSettlement(newSettleID, out outParam) != 0) { MessageBox.Show("医保平台结算信息取消失败!" + outParam); return; } else { MessageBox.Show("医保平台结算信息取消成功!" ); } } catch (Exception ex) { CallBack(ex.Message); } } [STAThread] private void cancleHisSettle(object o) { try { string outParam; DataTable dt = (DataTable)dgvSettlRecord.DataSource; int a = dgvSettlRecord.CurrentRow.Index; JObject joParam = new JObject(); joParam.Add("admID", int.Parse(dt.Rows[a]["AdmID"].ToString())); joParam.Add("billID", int.Parse(dt.Rows[a]["BillID"].ToString())); joParam.Add("recordID", int.Parse(dt.Rows[a]["RecordID"].ToString())); joParam.Add("psn_no", int.Parse(dt.Rows[a]["PersonnelNO"].ToString())); joParam.Add("mdtrt_id", int.Parse(dt.Rows[a]["MdtrtID"].ToString())); joParam.Add("insuplc_admdvs", int.Parse(dt.Rows[a]["insuplc_admdvs"].ToString())); joParam.Add("setl_id", int.Parse(dt.Rows[a]["SettlementID"].ToString())); //退HIS结算 if (hIS.cancleSettlementInfo(joParam, out outParam) != 0) { MessageBox.Show("取消HIS结算信息"); return ; } else { MessageBox.Show("取消HIS结算成功"); return ; } } catch (Exception ex) { CallBack(ex.Message); } } public delegate void callBack(string errMsg); public void CallBack(string errMsg) { MessageBox.Show(this, errMsg); } private void btCancleSettl_Click(object sender, EventArgs e) { Thread thread = new Thread(cancleSettle); try { callBack cb = new callBack(CallBack); thread.SetApartmentState(ApartmentState.STA); //重点 thread.Start(); //thread.Join(); } catch (Exception ex) { Global.writeLog("退结算:" + ex.Message); MessageBox.Show("退结算异常:" + ex.Message); } finally { //thread.Abort(); } } #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); //if (JsonHelper.parseIrisRtnValue(joRtn, out errMsg) != 0) //{ // MessageBox.Show(errMsg); // return; //} try { 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(); 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(); JObject joData = new JObject(); joData.Add("omsgid", dt.Rows[a]["msgid"].ToString()); joData.Add("prm_aac001", dt.Rows[a]["PersonnelNO"].ToString()); joData.Add("prm_akc190", Global.pat.mdtrtID); joData.Add("prm_yka103", Global.pat.settlID); //将中心返回的结果返回HIS 调用HIS服务进行保存 string errorMessage = ""; if (invoker.invokeYHCom("H7103",joData, out errorMessage) != 0) { MessageBox.Show("冲正失败" + errorMessage); } else { MessageBox.Show("冲正成功"); } } #endregion #region 手工 #endregion #region 门诊登记 private void btnQueryOutPatReg_Click(object sender, EventArgs e) { string sqlStr = "SELECT * FROM BS_MedInsuRegisterInfo WHERE Type=3 and Hospital_Dr=" + Global.inf.hospitalDr; sqlStr = sqlStr + " and OccurTime>'" + dpST_OutPatReg.Text + "'"; sqlStr = sqlStr + " and OccurTime<'" + dpED_OutPatReg.Text + "'"; if (tbOutPatName.Text != "") { sqlStr = sqlStr + " and Pat_Name='" + tbOutPatName.Text + "'"; } if (tbOutPatRegID.Text != "") { sqlStr = sqlStr + " and InsuRegID='" + tbOutPatRegID.Text + "'"; } if (tbOutPatPsnNO.Text != "") { sqlStr = sqlStr + " and PersonalNO='" + tbOutPatPsnNO.Text + "'"; } if (rbgValidFlag4.SelectedIndex == 1) { sqlStr = sqlStr + " and ValidFlag = 1"; } if (rbgValidFlag4.SelectedIndex == 2) { sqlStr = sqlStr + " and ValidFlag = -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", "09010062"); InvokeHelper invoker = new InvokeHelper(); JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询门诊挂号"); try { DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable)); dgvOutPatReg.DataSource = dt; } catch (Exception eX) { MessageBox.Show(eX.Message); } } private void btnCancleOutPatReg_Click(object sender, EventArgs e) { InvokeHelper invoker = new InvokeHelper(); DataTable dt = (DataTable)dgvOutPatReg.DataSource; string errorMessage = ""; int a = dgvOutPatReg.CurrentRow.Index; //组织挂号入参 JObject joCancleRegInpar = new JObject(); Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString(); joCancleRegInpar.Add("psn_no", dt.Rows[a]["PersonalNO"].ToString()); joCancleRegInpar.Add("mdtrt_id", dt.Rows[a]["InsuRegID"].ToString()); joCancleRegInpar.Add("ipt_otp_no", dt.Rows[a]["AdmID"].ToString()); joCancleRegInpar.Add("mdtrt_mode", "0"); JObject joRegInput = new JObject(); joRegInput.Add("mdtrtinfo", joCancleRegInpar); //取消挂号信息 JObject jo2202Rtn = invoker.invokeCenterService("2202", joRegInput); if (JsonHelper.parseCenterRtnValue(jo2202Rtn, out errorMessage) != 0) { MessageBox.Show("取消挂号失败" + errorMessage); } else { //取消云医保平台的信息 Global.pat.adm_Dr = int.Parse(dt.Rows[a]["AdmID"].ToString()); Global.pat.psn_no = dt.Rows[a]["PersonalNO"].ToString(); Global.pat.mdtrtID = dt.Rows[a]["InsuRegID"].ToString(); if (mIS.cancleRegister(3, out errorMessage) != 0) { MessageBox.Show("云医保平台取消登记失败,请后台撤销登记!" + errorMessage); } else { MessageBox.Show("取消挂号成功"); } } } private void btnCancleOutPatFee_Click(object sender, EventArgs e) { InvokeHelper invoker = new InvokeHelper(); DataTable dt = (DataTable)dgvOutPatReg.DataSource; string errorMessage = ""; int a = dgvOutPatReg.CurrentRow.Index; Global.pat.insuplc_admdvs = dt.Rows[a]["insuplc_admdvs"].ToString(); string mdtrt_id = dt.Rows[a]["InsuRegID"].ToString(); string psn_no = dt.Rows[a]["PersonalNO"].ToString(); string adm_Dr = dt.Rows[a]["AdmID"].ToString(); //组织入参 dynamic joTmp = new JObject(); joTmp.chrg_bchno = "0000"; joTmp.mdtrt_id = mdtrt_id; joTmp.psn_no = psn_no; joTmp.expContent = ""; JObject joData = new JObject(); joData.Add("data", joTmp); //组织好后上传给中心 JObject joCenterRtn = invoker.invokeCenterService("2205", joData); if (joCenterRtn["infcode"].ToString() == "0") { //删除医保传送表的数据 joTmp = new JObject(); joTmp.code = "09010048"; joTmp.HospitalDr = Global.inf.hospitalDr; joTmp.admID = adm_Dr; joTmp.mdtrt_id = mdtrt_id; joTmp.updateUserID = Global.user.ID; JObject joIris2301DeleteRtn = invoker.invokeInsuService(joTmp.ToString(), "删除门诊明细"); if (JsonHelper.parseCenterRtnValue(joIris2301DeleteRtn, out errorMessage) != 0) { MessageBox.Show("取消门诊费用失败" + errorMessage); } else { MessageBox.Show("取消门诊费用成功"); } } else { MessageBox.Show("取消门诊费用失败"); } } #endregion private void uiButton1_Click(object sender, EventArgs e) { string data = rtbInparam.Text; InvokeHelper invoker = new InvokeHelper(); rtbOutparam.Text = invoker.invokeHISService(data,"").ToString(); } private void btCancel_Click(object sender, EventArgs e) { string errMsg = ""; Global.curEvt.msgid = tbJYLSH.Text; if (invoker.cancleYHCom(out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功" ); } } private void btConfirm_Click(object sender, EventArgs e) { string errMsg = ""; Global.curEvt.msgid = tbJYLSH.Text; Global.curEvt.jyyzm = tbJYYZM.Text; if (invoker.confirmYHCom(out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功"); } } private void btLocalReversalEx_Click(object sender, EventArgs e) { rtbInparam.Text = "" + @"" + System.Environment.NewLine + @"个人编码" + System.Environment.NewLine + @"就诊ID" + System.Environment.NewLine + @"结算ID" + System.Environment.NewLine + @"原发送方报文ID" + System.Environment.NewLine + @"同城化标识" + System.Environment.NewLine + @""; } private void btOtherReversalEx_Click(object sender, EventArgs e) { rtbInparam.Text = "" + @"" + System.Environment.NewLine + @"就医地医保区划" + System.Environment.NewLine + @"参保地医保区划" + System.Environment.NewLine + @"发送方报文 ID" + System.Environment.NewLine + @"支付类别" + System.Environment.NewLine + @"个人编号" + System.Environment.NewLine + @"就诊序号" + System.Environment.NewLine + @"结算编号" + System.Environment.NewLine + @"同城化标识" + System.Environment.NewLine + @""; } private void btLocalReversal_Click(object sender, EventArgs e) { string errMsg = ""; JObject jo = JObject.Parse(xmler.ToJSON(rtbInparam.Text)); JObject joInput = JObject.Parse(JsonHelper.getDestValue(jo,"input")); if (invoker.invokeYHCom("H7103",joInput,out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功"); } } private void btOtherReversal_Click(object sender, EventArgs e) { string errMsg = ""; JObject jo = JObject.Parse(xmler.ToJSON(rtbInparam.Text)); JObject joInput = JObject.Parse(JsonHelper.getDestValue(jo, "input")); if (invoker.invokeYHCom("H7106", joInput, out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功"); } } private void btCancelSettlementEx_Click(object sender, EventArgs e) { rtbInparam.Text = "" + @"" + System.Environment.NewLine + @"就诊编号" + System.Environment.NewLine + @"分中心编号" + System.Environment.NewLine + @"支付类别" + System.Environment.NewLine + @"结算编号" + System.Environment.NewLine + @"经办人员编码" + System.Environment.NewLine + @"经人人姓名" + System.Environment.NewLine + @"2023-03-24 18:01:01" + System.Environment.NewLine + @"退费原因" + System.Environment.NewLine + @"社会保险办法" + System.Environment.NewLine + @"个人编号" + System.Environment.NewLine + @"同城化标识" + System.Environment.NewLine + @""; } private void btCancelSettlement_Click(object sender, EventArgs e) { string errMsg = ""; JObject jo = JObject.Parse(xmler.ToJSON(rtbInparam.Text)); JObject joInput = JObject.Parse(JsonHelper.getDestValue(jo, "input")); if (invoker.invokeYHCom("42", joInput, out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功"); tbJYLSH.Text = Global.curEvt.msgid; } } private void btInvokeCenterTransaction_Click(object sender, EventArgs e) { string errMsg = ""; JObject jo = JObject.Parse(xmler.ToJSON(rtbInparam.Text)); JObject joInput = JObject.Parse(JsonHelper.getDestValue(jo, "input")); if (invoker.invokeYHCom(tbFunNO.Text, joInput, out errMsg) != 0) { MessageBox.Show("失败:" + errMsg); } else { MessageBox.Show("成功"); tbJYLSH.Text = Global.curEvt.msgid; } } private void btSetInsuInvalid_Click(object sender, EventArgs e) { Thread thread = new Thread(cancleInsuPlatformSettle); try { callBack cb = new callBack(CallBack); thread.SetApartmentState(ApartmentState.STA); //重点 thread.Start(); //thread.Join(); } catch (Exception ex) { Global.writeLog("退医保平台结算:" + ex.Message); MessageBox.Show("退医保平台结算:" + ex.Message); } finally { //thread.Abort(); } } private void btSetHisInvalid_Click(object sender, EventArgs e) { Thread thread = new Thread(cancleHisSettle); try { callBack cb = new callBack(CallBack); thread.SetApartmentState(ApartmentState.STA); //重点 thread.Start(); //thread.Join(); } catch (Exception ex) { Global.writeLog("退HIS结算:" + ex.Message); MessageBox.Show("退HIS结算:" + ex.Message); } finally { //thread.Abort(); } } private void btSignOut_Click(object sender, EventArgs e) { dynamic jsonInput = new JObject(); jsonInput.opter_no = Global.user.ID; jsonInput.sign_no = Global.curEvt.signno; JObject joSignOut = new JObject(); joSignOut.Add("signOut", jsonInput); string outParam = invoker.invokeCenterService("9002", joSignOut).ToString(); JObject joRtn = JObject.Parse(outParam); if (joRtn["infcode"].ToString() == "0") { MessageBox.Show("签退成功"); } else { //joRtn = JsonHelper.getIrisExceptionJson(-100, "签到异常", (string)joRtn["err_msg"]); Global.curEvt.signno = ""; MessageBox.Show("签退失败" + joRtn.ToString()); } } } }