/// <summary> /// 调用费用退费分解接口 /// </summary> /// <param name="sDll"></param> /// <returns></returns> public ResultClass RefundmentDivide(SiInterfaceDll sDll, string tradeNo) { string sMome = ""; bool bRet = false; string sOut; sDll.RefundmentDivide(tradeNo, out sOut); XmlDocument xmlDoc = GetXmlDoc(sOut); CheckOutputState(xmlDoc, out bRet, out sMome); if (bRet) { string sTradeNO, sIC_NO; XmlNode dataNode = GetNodeFromPath(xmlDoc.DocumentElement, "output/tradeinfo"); sTradeNO = dataNode.SelectNodes("tradeno")[0].InnerText; //sIC_NO = dataNode.SelectNodes("icno")[0].InnerText; //AddLog("解析XML结果:\r\n交易流水号:" + sTradeNO + "\r\n医保应用号:" + sIC_NO); } HIS_Entity.MIManage.Common.DivideResult.root divideResult = (HIS_Entity.MIManage.Common.DivideResult.root)(XmlUtil.DeserializeFromXml(sOut, typeof(HIS_Entity.MIManage.Common.DivideResult.root))); xmlDoc = null; ResultClass resultClassTemp = new ResultClass(); resultClassTemp.bSucess = bRet; resultClassTemp.sRemarks = sMome; resultClassTemp.oResult = divideResult; return(resultClassTemp); }
/// <summary> /// 分解费用 /// </summary> /// <param name="sDll"></param> /// <returns></returns> public ResultClass Divide(SiInterfaceDll sDll, HIS_Entity.MIManage.Common.Reg.root root) { string sMome = ""; bool bRet = false; string sOut; string sIn = XmlUtil.SerializeToXml(root, typeof(HIS_Entity.MIManage.Common.Reg.root)); string sOut1; sDll.Divide(sIn, out sOut); AddLog("分解输出数据:"); AddLog(sOut); HIS_Entity.MIManage.Common.DivideResult.root divideResult = (HIS_Entity.MIManage.Common.DivideResult.root)(XmlUtil.DeserializeFromXml(sOut, typeof(HIS_Entity.MIManage.Common.DivideResult.root))); XmlDocument xmlDoc = GetXmlDoc(sOut); CheckOutputState(xmlDoc, out bRet, out sMome); ResultClass resultClassTemp = new ResultClass(); resultClassTemp.bSucess = bRet; resultClassTemp.sRemarks = sMome; resultClassTemp.oResult = divideResult; return(resultClassTemp); }
public override ResultClass MZ_CancelCharge(InputClass inputClass)//string fph) { ResultClass resultClass = new ResultClass(); resultDic.Clear(); try { string fph = inputClass.SInput.ContainsKey(InputType.InvoiceNo) ? inputClass.SInput[InputType.InvoiceNo].ToString() : ""; MI_MedicalInsurancePayRecord medicalInsurancePayRecordOld = hisDao.Mz_GetPayRecord(2, fph, 2, 1); if (medicalInsurancePayRecordOld == null) { resultClass.bSucess = false; resultClass.sRemarks = "获取收费信息失败!"; } else { //取消医保结算并返回结果 resultClass = ybInterfaceDao.MZ_CancelCharge(medicalInsurancePayRecordOld.TradeNO); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); medicalInsurancePayRecord.RegId = medicalInsurancePayRecordOld.RegId; medicalInsurancePayRecord.FeeNO = medicalInsurancePayRecordOld.FeeNO; medicalInsurancePayRecord.state = 2; medicalInsurancePayRecord.TradeType = 2; MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); //更新交易表 medicalInsurancePayRecordOld.state = 3; hisDao.Mz_SavePayRecord(medicalInsurancePayRecordOld); //保存新信息 MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); if (medicalInsurancePayRecordResult != null) { //返回数据到前台界面,只需金额 resultClass.bSucess = true; } else { resultClass.bSucess = false; resultClass.sRemarks = "更新收费信息失败!"; } resultClass.oResult = resultDic; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 保存登记信息:先保存医保信息;然后保存登记信息;最后保存交易信息 /// </summary> /// <param name="register">登记类</param> /// <returns></returns> public override ResultClass MZ_PreviewRegister(InputClass inputClass)//MI_Register register) { ResultClass resultClass = new ResultClass(); MI_Register register = JsonHelper.DeserializeJsonToObject <MI_Register>(inputClass.SInput[InputType.MI_Register].ToString()); try { resultDic.Clear(); //医保登记并返回结果 AddLog("医保登记并返回结果开始"); resultClass = ybInterfaceDao.MZ_PreviewRegister(PreviewRegisterToInput(register)); AddLog("医保登记并返回结果结束,开始解析"); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); AddLog("解析完成,开始保存登记信息"); register.SocialCreateNum = medicalInsurancePayRecord.TradeNO; ResultClass regResultClass = hisDao.Mz_SaveRegister(register); if (regResultClass.bSucess) { MI_Register registerResult = regResultClass.oResult as MI_Register; AddLog("保存登记完成,开始保存交易信息"); medicalInsurancePayRecord.RegId = registerResult.ID; medicalInsurancePayRecord.state = 0; medicalInsurancePayRecord.TradeType = 1; MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); AddLog("保存交易信息完成,开始返回"); if (medicalInsurancePayRecordResult.ID > 0) { //返回数据到前台界面,只需金额 resultDic.Add("Id", registerResult.ID.ToString()); resultDic.Add("tradeno", root.output.tradeinfo.tradeno); resultDic.Add("FeeAll", root.output.sumpay.feeall); resultDic.Add("fund", root.output.sumpay.fund); resultDic.Add("cash", root.output.sumpay.cash); resultDic.Add("personcountpay", root.output.sumpay.personcountpay); resultClass.oResult = resultDic; } else { resultClass.bSucess = false; resultClass.sRemarks = "保存交易数据失败,返回ID为零"; resultClass.oResult = null;; } } else { AddLog("开始保存登记失败"); resultClass.bSucess = false; resultClass.sRemarks = regResultClass.sRemarks; resultClass.oResult = null;; } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
public override ResultClass MZ_PreviewCharge(InputClass inputClass)//TradeData tradedata) { ResultClass resultClass = new ResultClass(); try { TradeData tradedata = inputClass.SInput.ContainsKey(InputType.TradeData) ? JsonHelper.DeserializeJsonToObject <TradeData>(inputClass.SInput[InputType.TradeData].ToString()): null; MI_Register register = hisDao.Mz_Getregister(-1, tradedata.SerialNo); if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"; MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",未进行医保统筹登记"); } else { if (register.ValidFlag != 1) { resultClass.bSucess = false; resultClass.sRemarks = "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"; MiddlewareLogHelper.WriterLog(LogType.MILog, true, Color.Red, "医院编号:" + tradedata.WorkID + ",门诊就诊号:" + tradedata.SerialNo + ",医保统筹登记已取消"); } else { tradedata.SocityCreateNum = register.SocialCreateNum; //医保登记并返回结果 AddLog("医保登记并返回结果开始"); resultClass = ybInterfaceDao.MZ_PreviewCharge(TradeDataToInput(tradedata)); AddLog("医保登记并返回结果结束,开始解析"); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; //解析返回结果到类,保存 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); medicalInsurancePayRecord.state = 0; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 2; MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); AddLog("解析完成,开始保存"); MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList); AddLog("保存完成,开始返回"); if (medicalInsurancePayRecordResult.ID > 0) { resultDic.Clear(); //返回数据到前台界面,只需金额 resultDic.Add("Id", medicalInsurancePayRecordResult.ID.ToString()); resultDic.Add("tradeno", root.output.tradeinfo.tradeno); resultDic.Add("FeeAll", root.output.sumpay.feeall); resultDic.Add("fund", root.output.sumpay.fund); resultDic.Add("cash", root.output.sumpay.cash); resultDic.Add("personcountpay", root.output.sumpay.personcountpay); resultClass.oResult = resultDic; } else { resultClass.bSucess = false; resultClass.sRemarks = "保存失败,返回ID为零"; resultClass.oResult = null;; } } } } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }
/// <summary> /// 取消登记 /// </summary> /// <param name="inputClass">InputType.SerialNO</param> public override ResultClass Mz_CancelRegister(InputClass inputClass)//string serialNO) { ResultClass resultClass = new ResultClass(); string serialNO = inputClass.SInput.ContainsKey(InputType.SerialNO) ? inputClass.SInput[InputType.SerialNO].ToString() : ""; try { resultDic.Clear(); MI_Register register = hisDao.Mz_Getregister(-1, serialNO); if (register == null) { resultClass.bSucess = false; resultClass.sRemarks = "获取登记信息失败!"; } else { bool b = hisDao.Mz_JudgeRegister(register.ID); if (b) { //取消医保登记并返回结果 resultClass = ybInterfaceDao.Mz_CancelRegister(register.SocialCreateNum); HIS_Entity.MIManage.Common.DivideResult.root root = (HIS_Entity.MIManage.Common.DivideResult.root)resultClass.oResult; //解析返回数据,并保存退费记录 MI_MedicalInsurancePayRecord medicalInsurancePayRecord = ResultToPayRecord(root.output); MI_MIPayRecordHead mIPayRecordHead = ResultToPayRecordHead(root.output); List <MI_MIPayRecordDetail> mIPayRecordDetailList = ResultToPayRecordDetail(root.output); register.ValidFlag = 2; medicalInsurancePayRecord.state = 2; medicalInsurancePayRecord.RegId = register.ID; medicalInsurancePayRecord.TradeType = 1; //更新登记表 ResultClass regResultClass = hisDao.Mz_SaveRegister(register); //更新交易表 MI_MedicalInsurancePayRecord medicalInsurancePayRecordResult = hisDao.Mz_GetPayRecord(1, register.ID.ToString(), 1, 1); if (medicalInsurancePayRecordResult != null) { medicalInsurancePayRecordResult.state = 3; hisDao.Mz_SavePayRecord(medicalInsurancePayRecordResult); } medicalInsurancePayRecord.FeeNO = medicalInsurancePayRecordResult.FeeNO; if (regResultClass.bSucess) { if (hisDao.SaveTradeInfo(medicalInsurancePayRecord, mIPayRecordHead, mIPayRecordDetailList) == null) { resultClass.bSucess = false; resultClass.sRemarks = "更新交易信息失败!"; } else { //返回数据到前台界面,只需金额 resultClass.bSucess = true; } } else { resultClass.bSucess = false; resultClass.sRemarks = "更新登记信息失败!"; } } else { resultClass.bSucess = false; resultClass.sRemarks = "存在已结算的收费数据!"; } } resultClass.oResult = resultDic; } catch (Exception e) { resultClass.bSucess = false; resultClass.sRemarks = e.Message; } return(resultClass); }