using Newtonsoft.Json.Linq;
using PTMedicalInsurance.Common;
using PTMedicalInsurance.Entity;
using PTMedicalInsurance.Forms;
using PTMedicalInsurance.Helper;
using PTMedicalInsurance.Variables;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace PTMedicalInsurance.Business.Core.Process
{
class ReadCardProcess : AbstractProcess
{
public override CallResult Process(JObject input)
{
outParam = "";
string errorMsg = "";
string sInput = "";
string sOutPar;
JObject joCardInfo = new JObject();
ChooseCard cc = new ChooseCard();
CardReader_HN CardRead = new CardReader_HN();
try
{
if (cc.ShowDialog() == DialogResult.OK)
{
#region【1101获取身份信息】
JObject joData = new JObject();
joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
joData.Add("card_sn", Global.pat.card.SN);
joData.Add("begntime", "");
joData.Add("psn_cert_type", Global.pat.certType);
joData.Add("certno", Global.pat.certNO); //证件号码
joData.Add("psn_name", Global.pat.name);
JObject joInput = new JObject();
joInput.Add("data", joData);
InvokeHelper invoker = new InvokeHelper();
JObject joRtn = invoker.invokeCenterService("1101", JsonHelper.setCenterInpar("1101", joInput));
if (JsonHelper.parseCenterRtnValue(joRtn, out errorMsg) != 0)
{
outParam = "读卡失败:" + errorMsg;
return Exception(-1, "读卡", outParam);
}
else
{
//joRtn.Add("cardinfo",joCardInfo);
outParam = joRtn.ToString();
Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insuplc_admdvs"); //参保地
//Global.pat.card.NO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.insuplc_admdvs"); //社会保障号码
Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
Global.pat.card.SN = ""; //卡识别码
Global.pat.name = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_name"); //姓名
Global.pat.certType = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_cert_type"); //人员证件类型
Global.pat.mdtrtcertType = "02"; //就诊凭证类型
Global.pat.mdtrtcertNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //就诊凭证编号
Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
Global.pat.psn_no = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_no"); //人员编号
Global.pat.emp_name = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.emp_name"); //单位名称
Global.pat.insuType = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insutype"); //险种类型
//Global.pat.psn_type = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.psn_type"); //人员类别
Global.pat.ecToken = JsonHelper.getDestValue(JObject.Parse(outParam), "output.exp_content.ectoken"); //电子令牌
//if (Global.pat.ecToken != "")
//{
// Global.pat.mdtrtcertType = "01";
// Global.pat.mdtrtcertNO = Global.pat.ecToken;
//}
outParam = outParam.Replace(@"\", "").Replace("\"{", "{").Replace("}\"", "}");
return Success();
}
#endregion
}
else
{
outParam = "收款员取消读卡!";
return Exception(-2, "读卡", outParam);
}
if (trade1101(out outParam) == 0)
{
return Success();
}
else
{
return Exception(-2, "1101读取", outParam);
}
}
catch (Exception ex)
{
outParam = "异常:" + ex.Message;
return Exception(-2, "读卡", outParam);
}
}
///
/// 通过证件号获取基本信息(无卡)
///
///
///
///
public int trade1101(out string outParam)
{
#region【1101获取身份信息】
JObject joData = new JObject();
joData.Add("mdtrt_cert_type", Global.pat.mdtrtcertType);
joData.Add("mdtrt_cert_no", Global.pat.mdtrtcertNO);
joData.Add("card_sn", Global.pat.card.SN);
joData.Add("begntime", "");
joData.Add("psn_cert_type", Global.pat.certType);
joData.Add("certno", Global.pat.certNO); //证件号码
joData.Add("psn_name", Global.pat.name);
JObject joInput = new JObject();
joInput.Add("data", joData);
//InvokeHelper invoker = new InvokeHelper();
JObject joRtn = invoker.invokeCenterService("1101", JsonHelper.setCenterInpar("1101", joInput));
if (JsonHelper.parseCenterRtnValue(joRtn, out outParam) != 0)
{
outParam = "读卡失败:" + outParam;
return -1;
}
else
{
//joRtn.Add("cardinfo",joCardInfo);
outParam = joRtn.ToString();
Global.pat.insuplc_admdvs = JsonHelper.getDestValue(JObject.Parse(outParam), "output.insuinfo.insuplc_admdvs"); //参保地
Global.pat.certNO = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.certno"); //证件号码
Global.pat.psn_no = JsonHelper.getDestValue(JObject.Parse(outParam), "output.baseinfo.psn_no"); //人员编号
outParam = outParam.Replace(@"\", "").Replace("\"{", "{").Replace("}\"", "}");
return 0;
}
#endregion
}
}
}