OPSettlementCancelProcess.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Newtonsoft.Json.Linq;
  2. using PTMedicalInsurance.Helper;
  3. using PTMedicalInsurance.Variables;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. namespace PTMedicalInsurance.Business
  11. {
  12. class OPSettlementCancelProcess : AbstractProcess
  13. {
  14. public override CallResult Process(JObject input)
  15. {
  16. string newSettleID = "",outParam = "";
  17. dynamic rtnResult = new CallResult(0,"",outParam);
  18. if (cBus.cancleSettlement(TradeEnum.OutpatientSettlementCancel, out outParam) != 0)
  19. {
  20. int i = outParam.IndexOf("获取到的就诊信息为无效状态,不能办理结算撤销业务");
  21. if (i != 0)
  22. {
  23. if (DialogResult.Yes != MessageBox.Show("医保中心提示:" + outParam + ",是否强制撤销HIS结算信息?", "提示", MessageBoxButtons.YesNo))
  24. {
  25. return Error(-1, "中心取消结算失败,");
  26. }
  27. newSettleID = "YC";
  28. }
  29. else
  30. {
  31. rtnResult = new CallResult(-1, "取消中心结算", outParam);
  32. //查看是医保平台是否已经退费,如果是,则询问是否继续退费
  33. string SqlStr = " SELECT * FROM BS_MedInsuSettlement WHERE ValidFlag = 0 AND BillType = -1 ";
  34. SqlStr = SqlStr + " AND Hospital_Dr=" + Global.inf.hospitalDr + " AND Interface_Dr=" + Global.inf.interfaceDr;
  35. SqlStr = SqlStr + " AND SettlementID ='" + Global.pat.settlID + "'";
  36. JObject joSqlStr = new JObject();
  37. joSqlStr.Add("sqlStr", SqlStr);
  38. JObject joCancleSettlInfo = mIS.QuerySettlementInfo(joSqlStr);
  39. JArray jaCancleSettlInfo = JArray.Parse(JsonHelper.getDestValue(joCancleSettlInfo, "result.data"));
  40. if (jaCancleSettlInfo.Count == 1)
  41. {
  42. //询问收款员是否继续进行HIS退费
  43. if (DialogResult.Yes == MessageBox.Show("中心提示:" + outParam, " 该费用在医保中心已成功退费但在HIS未成功退费,是否强制退HIS费用? ", MessageBoxButtons.YesNo))
  44. {
  45. rtnResult = Exception(0,"该费用在医保中心已成功退费但在HIS未成功退费,收款员选择强制退HIS费用!", outParam);
  46. }
  47. }
  48. else
  49. {
  50. rtnResult = Exception(-1, "取消中心结算(云医保平台未退费或未查询到退费记录)", outParam);
  51. }
  52. return rtnResult;
  53. }
  54. }
  55. else
  56. {
  57. newSettleID = JsonHelper.getDestValue(JObject.Parse(outParam), "output.setlinfo.setl_id");
  58. }
  59. //退云医保平台结算
  60. if (mIS.cancleSettlement(newSettleID, out outParam) != 0)
  61. {
  62. return Error(-1, "取消平台结算信息");
  63. }
  64. return Success();
  65. }
  66. }
  67. }