| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | 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);                }                //费用撤销                new InpatientFeeUploadCancelProcess().Process(input);                //取消HIS医保结算信息                if (hIS.cancleSettlementInfo(OrginalInput, out outParam) != 0)                {                    return Exception(-1, "中心跟医保平台结算取消成功, 取消HIS结算信息失败!", outParam);                }            }            return IrisReturn("取消结算成功",null);        }    }}
 |