using Newtonsoft.Json.Linq; 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 { class IPSettlementCancelProcess : AbstractProcess { public IPSettlementCancelProcess() { } public IPSettlementCancelProcess(JObject orginal) { this.OrginalInput = orginal; } public override CallResult Process(JObject input) { //取消中心结算信息 if (cBus.cancleSettlement(TradeEnum.InpatientSettlementCancel, out outParam) != 0) { //查看是医保平台是否已经退费,如果是,则询问是否继续退费 string SqlStr = " SELECT * FROM BS_MedInsuSettlement WHERE ValidFlag = 0 AND BillType = -1 "; SqlStr = SqlStr + " AND Hospital_Dr=" + Global.inf.hospitalDr + " AND Interface_Dr=" + Global.inf.interfaceDr; SqlStr = SqlStr + " AND SettlementID ='" + Global.pat.settlID + "'"; JObject joSqlStr = new JObject(); joSqlStr.Add("sqlStr", SqlStr); JObject joCancleSettlInfo = mIS.QuerySettlementInfo(joSqlStr); JArray jaCancleSettlInfo = JArray.Parse(JsonHelper.getDestValue(joCancleSettlInfo, "result.data")); if (jaCancleSettlInfo.Count == 1) { //询问收款员是否继续进行HIS退费 if (DialogResult.Yes == MessageBox.Show("中心提示:" + outParam, " 该费用在医保中心已成功退费但在HIS未成功退费,是否强制退HIS费用? ", MessageBoxButtons.YesNo)) { return Exception(0, "该费用在医保中心已成功退费但在HIS未成功退费,收款员选择强制退HIS费用!", outParam); } } else { return Exception(-1, "取消中心结算(云医保平台未退费或未查询到退费记录)", outParam); } return Exception(-1, "取消中心结算信息失败!", outParam); } else { string newSettleID = JsonHelper.getDestValue(JObject.Parse(outParam), "output.setlinfo.setl_id"); //取消平台结算信息 if (mIS.cancleSettlement(newSettleID, out outParam) != 0) { return Exception(-1, "中心结算取消成功,医保平台结算信息取消失败!", outParam); } //取消HIS医保结算信息 if (hIS.cancleSettlementInfo(OrginalInput, out outParam) != 0) { return Exception(-1, "中心跟医保平台结算取消成功, 取消HIS结算信息失败!", outParam); } // 取消出院 new InpatientExitCancelProcess().Process(input); //费用撤销 new InpatientFeeUploadCancelProcess().Process(input); } return IrisReturn("取消结算成功",null); } } }