ReadCardProcess.cs 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Common;
  3. using PTMedicalInsurance.Entity;
  4. using PTMedicalInsurance.Forms;
  5. using PTMedicalInsurance.Helper;
  6. using PTMedicalInsurance.Variables;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using System.Windows.Forms;
  13. namespace PTMedicalInsurance.Business.Core.Process
  14. {
  15. class ReadCardProcess : AbstractProcess
  16. {
  17. public override CallResult Process(JObject input)
  18. {
  19. outParam = "";
  20. string errorMsg = "";
  21. string sInput = "";
  22. string sOutPar;
  23. JObject joCardInfo = new JObject();
  24. ChooseCard cc = new ChooseCard();
  25. CardReader_HN CardRead = new CardReader_HN();
  26. try
  27. {
  28. if (cc.ShowDialog() == DialogResult.OK)
  29. {
  30. #region【1101获取身份信息】
  31. JObject joData = new JObject();
  32. joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  33. joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  34. joData.Add("card_sn", Global.pat.card.SN);
  35. joData.Add("begntime", "");
  36. joData.Add("psn_cert_type", Global.pat.certType);
  37. joData.Add("certno", Global.pat.certNO); //证件号码
  38. joData.Add("psn_name", Global.pat.name);
  39. JObject joInput = new JObject();
  40. joInput.Add("data", joData);
  41. InvokeHelper invoker = new InvokeHelper();
  42. JObject joRtn = invoker.invokeCenterService("1101", JsonHelper.setCenterInpar("1101", joInput));
  43. if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
  44. {
  45. outParam = "读卡失败:" + errorMsg;
  46. return Exception(-1, "读卡", outParam);
  47. }
  48. else
  49. {
  50. //joRtn.Add("cardinfo",joCardInfo);
  51. outParam = joRtn.ToString();
  52. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insuplc_admdvs"); //参保地
  53. //Global.pat.card.NO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.insuplc_admdvs"); //社会保障号码
  54. Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
  55. Global.pat.card.SN = ""; //卡识别码
  56. Global.pat.name = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_name"); //姓名
  57. Global.pat.certType = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_cert_type"); //人员证件类型
  58. Global.pat.mdtrtcertType = "02"; //就诊凭证类型
  59. Global.pat.mdtrtcertNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //就诊凭证编号
  60. Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
  61. Global.pat.psn_no = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_no"); //人员编号
  62. Global.pat.emp_name = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.emp_name"); //单位名称
  63. Global.pat.insuType = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insutype"); //险种类型
  64. //Global.pat.psn_type = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.psn_type"); //人员类别
  65. Global.pat.ecToken = JsonHelper.getDestValue(JObject.Parse(outParam), "output.exp_content.ectoken"); //电子令牌
  66. //if (Global.pat.ecToken != "")
  67. //{
  68. // Global.pat.mdtrtcertType = "01";
  69. // Global.pat.mdtrtcertNO = Global.pat.ecToken;
  70. //}
  71. outParam = outParam.Replace(@"\", "").Replace("\"{", "{").Replace("}\"", "}");
  72. return Success();
  73. }
  74. #endregion
  75. }
  76. else
  77. {
  78. outParam = "收款员取消读卡!";
  79. return Exception(-2, "读卡", outParam);
  80. }
  81. if (trade1101(out outParam) == 0)
  82. {
  83. return Success();
  84. }
  85. else
  86. {
  87. return Exception(-2, "1101读取", outParam);
  88. }
  89. }
  90. catch (Exception ex)
  91. {
  92. outParam = "异常:" + ex.Message;
  93. return Exception(-2, "读卡", outParam);
  94. }
  95. }
  96. /// <summary>
  97. /// 通过证件号获取基本信息(无卡)
  98. /// </summary>
  99. /// <param name="cardNo"></param>
  100. /// <param name="outParam"></param>
  101. /// <returns></returns>
  102. public int trade1101(out string outParam)
  103. {
  104. #region【1101获取身份信息】
  105. JObject joData = new JObject();
  106. joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
  107. joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
  108. joData.Add("card_sn", Global.pat.card.SN);
  109. joData.Add("begntime", "");
  110. joData.Add("psn_cert_type", Global.pat.certType);
  111. joData.Add("certno", Global.pat.certNO); //证件号码
  112. joData.Add("psn_name", Global.pat.name);
  113. JObject joInput = new JObject();
  114. joInput.Add("data", joData);
  115. //InvokeHelper invoker = new InvokeHelper();
  116. JObject joRtn = invoker.invokeCenterService("1101", JsonHelper.setCenterInpar("1101", joInput));
  117. if (JsonHelper.parseCenterRtnValue(joRtn, out outParam) != 0)
  118. {
  119. outParam = "读卡失败:" + outParam;
  120. return -1;
  121. }
  122. else
  123. {
  124. //joRtn.Add("cardinfo",joCardInfo);
  125. outParam = joRtn.ToString();
  126. Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insuplc_admdvs"); //参保地
  127. Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
  128. Global.pat.psn_no = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_no"); //人员编号
  129. outParam = outParam.Replace(@"\", "").Replace("\"{", "{").Replace("}\"", "}");
  130. return 0;
  131. }
  132. #endregion
  133. }
  134. }
  135. }