Browse Source

调整长春对账清算

zzz 1 year ago
parent
commit
e25802c185
5 changed files with 538 additions and 314 deletions
  1. 1 1
      Business/HisMainBusiness.cs
  2. 25 6
      FormSetter/GridViewSetter.cs
  3. 300 293
      Forms/Clearing.Designer.cs
  4. 208 14
      Forms/Clearing.cs
  5. 4 0
      Helper/JsonHelper.cs

+ 1 - 1
Business/HisMainBusiness.cs

@@ -127,7 +127,7 @@ namespace PTMedicalInsurance.Business
             inf.interfaceDr = int.Parse(JsonHelper.getDestValue(joInpar, "medInsuInterfaceID"));            
             inf.interfaceID = JsonHelper.getDestValue(joInpar, "interfaceNO");
             //inf.oper = "3";
-            inf.centerURL = JsonHelper.getDestValue(joInpar, "CenterURL");
+            inf.centerURL = JsonHelper.getDestValue(joInpar, "centerURL");
             inf.areaCode = JsonHelper.getDestValue(joInpar, "areaCode");
             inf.dllName = JsonHelper.getDestValue(joInpar, "dLLName");
             inf.hospitalNO = JsonHelper.getDestValue(joInpar, "hospitalNO");

+ 25 - 6
FormSetter/GridViewSetter.cs

@@ -734,19 +734,38 @@ namespace PTMedicalInsurance.FormSetter
         /// <summary>
         /// 设置清算汇总列标题
         /// </summary>
-        public void SetHeaderTextOfClearing(DataGridView dgv)
+        /*public void SetHeaderTextOfClearing(DataGridView dgv)
         {
             dgv.AutoGenerateColumns = false;
             dgv.Columns.Clear();
+            AddDGVColumn(dgv, "清算类别", "clr_type");
+            AddDGVColumn(dgv, "清算方式", "clr_way");
+            AddDGVColumn(dgv, "清算方式", "setlym");
+            AddDGVColumn(dgv, "清算人次", "psntime", 100);
             AddDGVColumn(dgv, "医疗费总额", "medfee_sumamt", 80);
-            AddDGVColumn(dgv, "基金支付总额", "fund_appy_sum", 200);
             AddDGVColumn(dgv, "医保认可费用总额", "med_sumfee", 300);
-            AddDGVColumn(dgv, "个人账户支付金额", "acct_pay", 300);
+            AddDGVColumn(dgv, "基金申报总额", "fund_appy_sum", 200);
             AddDGVColumn(dgv, "现金支付金额", "cash_payamt", 300);
-            AddDGVColumn(dgv, "清算人次", "psntime", 100);
-            AddDGVColumn(dgv, "清算方式", "clr_way");
+            AddDGVColumn(dgv, "个人账户支出", "acct_pay", 300);
+            //AddDGVColumn(dgv, "清算机构", "clr_optins");
+            //AddDGVColumn(dgv, "接口ID", "Interface_dr", 80);
+            //AddDGVColumn(dgv, "结算经办机构", "setl_optins", 80);
+            //AddDGVColumn(dgv, "险种", "insutype", 80);
+        }*/
+        public void SetHeaderTextOfClearing(DataGridView dgv)
+        {
+            dgv.AutoGenerateColumns = false;
+            dgv.Columns.Clear();
             AddDGVColumn(dgv, "清算类别", "clr_type");
-            AddDGVColumn(dgv, "接口ID", "Interface_dr", 80);
+            AddDGVColumn(dgv, "医疗费总额", "medfee_sumamt", 200);
+            AddDGVColumn(dgv, "医保认可费用总额", "med_sumfee", 200);
+            AddDGVColumn(dgv, "基金申报总额", "fund_appy_sum", 200);
+            AddDGVColumn(dgv, "现金支付金额", "cash_payamt", 300);
+            AddDGVColumn(dgv, "个人账户支出", "acct_pay", 300);
+            AddDGVColumn(dgv, "开始日期", "begndate", 500);
+            AddDGVColumn(dgv, "结束日期", "enddate", 500);
+            AddDGVColumn(dgv, "清算机构", "clr_optins", 100);
+            //AddDGVColumn(dgv, "接口ID", "Interface_dr", 80);
             //AddDGVColumn(dgv, "结算经办机构", "setl_optins", 80);
             //AddDGVColumn(dgv, "险种", "insutype", 80);
         }

File diff suppressed because it is too large
+ 300 - 293
Forms/Clearing.Designer.cs


+ 208 - 14
Forms/Clearing.cs

@@ -296,18 +296,30 @@ namespace PTMedicalInsurance.Forms
             DataTable dt = (DataTable)dgvClearingSum.DataSource;
             int i = dgvClearingSum.CurrentRow.Index;
 
+            //dynamic joClearing = new JObject();
+            //joClearing.clr_type = dt.Rows[i]["clr_type"].ToString();
+            //joClearing.clr_way = dt.Rows[i]["clr_way"].ToString();
+            //joClearing.setlym = dpST_2.Value.ToString("yyyyMM");
+            //joClearing.med_sumfee = dt.Rows[i]["med_sumfee"].ToString();
+            //joClearing.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();
+            //joClearing.fund_appy_sum = dt.Rows[i]["fund_appy_sum"].ToString();
+            //joClearing.acct_pay = dt.Rows[i]["acct_pay"].ToString();
+            //joClearing.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();
+            //joClearing.psntime = dt.Rows[i]["psntime"].ToString();
+            //joClearing.begndate = dpST_2.Value.ToString("yyyy-MM-dd");
+            //joClearing.enddate = dpED_2.Value.ToString("yyyy-MM-dd");
             dynamic joClearing = new JObject();
             joClearing.clr_type = dt.Rows[i]["clr_type"].ToString();
-            joClearing.clr_way = dt.Rows[i]["clr_way"].ToString();
-            joClearing.setlym = dpST_2.Value.ToString("yyyyMM");
-            joClearing.med_sumfee = dt.Rows[i]["med_sumfee"].ToString();
             joClearing.medfee_sumamt = dt.Rows[i]["medfee_sumamt"].ToString();
+            joClearing.med_sumfee = Convert.ToDecimal(dt.Rows[i]["fund_appy_sum"].ToString()) + Convert.ToDecimal(dt.Rows[i]["acct_pay"].ToString());
             joClearing.fund_appy_sum = dt.Rows[i]["fund_appy_sum"].ToString();
-            joClearing.acct_pay = dt.Rows[i]["acct_pay"].ToString();
             joClearing.cash_payamt = dt.Rows[i]["cash_payamt"].ToString();
-            joClearing.psntime = dt.Rows[i]["psntime"].ToString();
+            joClearing.acct_pay = dt.Rows[i]["acct_pay"].ToString();
+            //joClearing.mon_setl_cnt = dt.Rows[i]["psntime"].ToString();
+            //joClearing.optins_pay_sumamt = Convert.ToDecimal(dt.Rows[i]["fund_appy_sum"].ToString()) + Convert.ToDecimal(dt.Rows[i]["acct_pay"].ToString());
             joClearing.begndate = dpST_2.Value.ToString("yyyy-MM-dd");
             joClearing.enddate = dpED_2.Value.ToString("yyyy-MM-dd");
+            joClearing.clr_optins = dt.Rows[i]["clr_optins"].ToString();
 
             JObject joData = new JObject();
             joData.Add("data", joClearing);
@@ -318,7 +330,7 @@ namespace PTMedicalInsurance.Forms
             cBus.signIn(out jo9001Rtn);
 
             InvokeHelper invoker = new InvokeHelper();
-            JObject joRtn = invoker.invokeCenterService("3203", joData.ToString());
+            JObject joRtn = invoker.invokeCenterService("3203A", JsonHelper.setCenterInpar("3203A", joData.ToString()));
             if (JsonHelper.parseCenterReturnJson(joRtn, out error) != 0)
             {
                 return -1;
@@ -329,20 +341,23 @@ namespace PTMedicalInsurance.Forms
                 JObject joTmp = new JObject();
                 joTmp.Add("HospitalDr", Global.inf.hospitalDr);
                 joTmp.Add("InterfaceDr", Global.inf.interfaceDr);
-                joTmp.Add("ApplyID", JsonHelper.getDestValue(joRtn, "output.result.clr_appy_evt_id"));
+                joTmp.Add("ApplyID", JsonHelper.getDestValue(joRtn, "output.clr_appy_evt_id"));
                 joTmp.Add("OccurTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
-                joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());
+                //joTmp.Add("ClrWay", dt.Rows[i]["clr_way"].ToString());
+                joTmp.Add("ClrWay", "1");
                 joTmp.Add("ClrType", dt.Rows[i]["clr_type"].ToString());
-                joTmp.Add("ClearYearMonth", dpST_2.Value.ToString("yyyyMM"));
-                joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
-                joTmp.Add("Sumamt", dt.Rows[i]["med_sumfee"].ToString());
+                //joTmp.Add("ClearYearMonth", JsonHelper.getDestValue(joRtn, "output.result.data_ym"));
+                joTmp.Add("ClearYearMonth", dpED_2.Value.ToString("yyyyMM"));
+                //joTmp.Add("PersonTime", dt.Rows[i]["psntime"].ToString());
+                joTmp.Add("PersonTime", "999999");
+                joTmp.Add("Sumamt", dt.Rows[i]["medfee_sumamt"].ToString());
                 joTmp.Add("MedAcceptSumamt", dt.Rows[i]["med_sumfee"].ToString());
                 joTmp.Add("FundPay", dt.Rows[i]["fund_appy_sum"].ToString());
                 joTmp.Add("CashPay", dt.Rows[i]["cash_payamt"].ToString());
                 joTmp.Add("AccountPay", dt.Rows[i]["acct_pay"].ToString());
                 joTmp.Add("Begndate", dpST_2.Value.ToString("yyyy-MM-dd 00:00:00"));
                 joTmp.Add("Enddate", dpED_2.Value.ToString("yyyy-MM-dd 23:59:59"));
-                joTmp.Add("OthPlcFlag", 0);
+                joTmp.Add("OthPlcFlag", 1);
                 joTmp.Add("ValidFlag", 1);
                 joTmp.Add("Operator", "0");
 
@@ -779,7 +794,7 @@ namespace PTMedicalInsurance.Forms
                 for (int i = 0; i < dt.Rows.Count; i++)
                 {
                     string flag = "";
-                    if (dt.Rows[i]["ValidFlag"].ToString() == "-1")
+                    if (dt.Rows[i]["BillType"].ToString() == "-1")
                     {
                         flag = "1";
                     }
@@ -1450,7 +1465,7 @@ namespace PTMedicalInsurance.Forms
         private void tmsClearing_2_Click(object sender, EventArgs e)
         {
             string error = "";
-            if ((Global.inf.interfaceDr == 1) && (cbOtherPlaceFlag.SelectedIndex == 1))
+            if (Global.inf.interfaceDr == 20)// && (cbOtherPlaceFlag.SelectedIndex == 1))
             {
                 if (OthPlcClearing_Single(out error) != 0)
                 {
@@ -1957,5 +1972,184 @@ namespace PTMedicalInsurance.Forms
         {
 
         }
+
+        private void gbConditionSet_Click(object sender, EventArgs e)
+        {
+
+        }
+
+        /*private void btnQueryClrSum_Click_1(object sender, EventArgs e)
+        {
+            //查询清算汇总
+            DataTable dtInteface = (DataTable)cbxInterface.DataSource;
+            int i = cbxInterface.SelectedIndex;
+            //乘以单据类型后,IRIS会返回整数,关键不知道SQL里咋转换为浮点数
+            //string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt, ";
+            //sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";
+            GridViewSetter grdSetter = new GridViewSetter();
+            grdSetter.SetHeaderTextOfClearing(dgvClearingSum);
+            string sqlStr = "SELECT ClearingType as clr_type,ClearingWay as clr_way,'" + dpED_2.Value.ToString("yyyyMM") + "' as setlym,";
+            sqlStr = sqlStr + "count(*) AS psntime,SUM(BillType*(0.00+Sumamt)) AS medfee_sumamt,SUM(BillType*(0.00+FundPaySumamt+AccountPaySumamt)) AS med_sumfee,";
+            sqlStr = sqlStr + "SUM(BillType*(0.00+FundPaySumamt)) AS fund_appy_sum,SUM(BillType*(0.00+PersonCashPay)) AS cash_payamt,";
+            sqlStr = sqlStr + "SUM(billType*(0.00+AccountPaySumamt)) AS acct_pay,'" + dpST_2.Text + "' as begndate, " + "'" + dpED_2.Text + "' as enddate ";
+
+            //sqlStr = sqlStr + " Interface_dr,clearingWay AS clr_way,clearingType AS clr_type ";
+            string conditionStr = " Group By ClearingType,ClearingWay ";
+           
+
+            sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();
+            sqlStr = sqlStr + " and OccurTime>'" + dpST_2.Text + "'";
+            sqlStr = sqlStr + " and OccurTime<'" + dpED_2.Text + "'";
+            sqlStr = sqlStr + " and Interface_Dr =9";
+
+            //if (cbInterface_2.Text != "")
+            //{
+            //    sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();
+            //}
+
+            if (cbInsutype_2.Text != "")
+            {
+                sqlStr = sqlStr + " and InsuranceType ='" + cbxInsuType.SelectedValue + "'";
+            }
+
+            if (cbClrType_2.Text != "")
+            {
+                sqlStr = sqlStr + " and ClearingType ='" + cbxClrType.SelectedValue + "'";
+            }
+
+            if (tbSettlOption_2.Text != "")
+            {
+                sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";
+            }
+
+            //ValidFlag=1 and BillType=1 表示正常结算记录   ValidFlag=0 and BillType=-1 表示退费记录  ValidFlag=0表示无效记录 
+            if (cbxValid.SelectedIndex != 0)
+            {
+                if (cbValid_2.SelectedIndex == 1)
+                    sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";
+                else
+                    sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";
+            }
+
+            //if (Global.inf.interfaceDr == 1)
+            //{
+            //    sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";
+            //}
+
+            //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );
+            conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);
+
+            sqlStr = sqlStr + conditionStr;
+            JObject joSqlstr = new JObject();
+
+            //MessageBox.Show(sqlStr);
+
+            joSqlstr.Add("sqlStr", sqlStr);
+            JArray jaParam = new JArray();
+            jaParam.Add(joSqlstr);
+            JObject joSettlQuery = new JObject();
+            joSettlQuery.Add("params", jaParam);
+            joSettlQuery.Add("code", "09010081");
+            InvokeHelper invoker = new InvokeHelper();
+            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息(清算)");
+
+            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
+            //设置两位小数格式
+            joRtn["result"]["data"][0]["medfee_sumamt"] = joRtn["result"]["data"][0]["medfee_sumamt"].ToString(0.00);
+            joRtn["result"]["data"][0]["med_sumfee"] = joRtn["result"]["data"][0]["med_sumfee"].ToString(0.00);
+            joRtn["result"]["data"][0]["fund_appy_sum"] = joRtn["result"]["data"][0]["fund_appy_sum"].ToString(0.00);
+            joRtn["result"]["data"][0]["acct_pay"] = joRtn["result"]["data"][0]["acct_pay"].ToString(0.00);
+            joRtn["result"]["data"][0]["cash_payamt"] = joRtn["result"]["data"][0]["cash_payamt"].ToString(0.00);
+            dgvClearingSum.DataSource = dt;
+            //初始化HIS结算明细View数据
+            dgvHisSettlRec.DataSource = null;
+        }*/
+        private void btnQueryClrSum_Click_1(object sender, EventArgs e)
+        {
+            //查询清算汇总
+            DataTable dtInteface = (DataTable)cbxInterface.DataSource;
+            int i = cbxInterface.SelectedIndex;
+            //乘以单据类型后,IRIS会返回整数,关键不知道SQL里咋转换为浮点数
+            //string sqlStr = "SELECT SUM(BillType*Sumamt) AS medfee_sumamt,count(*) AS fixmedins_setl_cnt,SUM(BillType*PersonCashPay) AS cash_payamt, ";
+            //sqlStr = sqlStr + " SUM(BillType*AccountPaySumamt) AS acct_pay,SUM(BillType*FundPaySumamt) AS fund_pay_sumamt ";
+
+            GridViewSetter grdSetter = new GridViewSetter();
+            grdSetter.SetHeaderTextOfClearing(dgvClearingSum);
+            string sqlStr = "SELECT ClearingType as clr_type, SUM(BillType*(0.00+Sumamt)) AS medfee_sumamt,SUM(BillType*(0.00+FundPaySumamt+AccountPaySumamt)) AS med_sumfee,";
+            sqlStr = sqlStr + "SUM(BillType*(0.00+FundPaySumamt)) AS fund_appy_sum, SUM(BillType*(0.00+PersonCashPay)) AS cash_payamt,SUM(billType*(0.00+AccountPaySumamt)) AS acct_pay,";
+            sqlStr = sqlStr + "'" + dpST_2.Text + "' as begndate, " + "'" + dpED_2.Text + "' as enddate, ";
+            sqlStr = sqlStr + "ClearingOrgan as clr_optins ";
+
+            string conditionStr = " Group By ClearingType,ClearingOrgan ";
+
+
+            sqlStr = sqlStr + " FROM BS_MedInsuSettlement WHERE Hospital_Dr=" + dtInteface.Rows[i]["HospitalDr"].ToString();
+            sqlStr = sqlStr + " and OccurTime>'" + dpST_2.Text + "'";
+            sqlStr = sqlStr + " and OccurTime<'" + dpED_2.Text + "'";
+
+            sqlStr = sqlStr + " and Interface_Dr =9";
+            //if (cbInterface_2.Text != "")
+            //{
+            //    sqlStr = sqlStr + " and Interface_Dr =" + dtInteface.Rows[i]["ID"].ToString();
+            //}
+
+            if (cbInsutype_2.Text != "")
+            {
+                sqlStr = sqlStr + " and InsuranceType ='" + cbxInsuType.SelectedValue + "'";
+            }
+
+            if (cbClrType_2.Text != "")
+            {
+                sqlStr = sqlStr + " and ClearingType ='" + cbxClrType.SelectedValue + "'";
+            }
+
+            if (tbSettlOption_2.Text != "")
+            {
+                sqlStr = sqlStr + " and ClearingOrgan ='" + tbSettlOption.Text + "'";
+            }
+
+            //ValidFlag=1 and BillType=1 表示正常结算记录   ValidFlag=0 and BillType=-1 表示退费记录  ValidFlag=0表示无效记录 
+            if (cbxValid.SelectedIndex != 0)
+            {
+                if (cbValid_2.SelectedIndex == 1)
+                    sqlStr = sqlStr + " and ValidFlag =1 and BillType=1";
+                else
+                    sqlStr = sqlStr + " and ValidFlag =0 and BillType=-1";
+            }
+
+            if (Global.inf.interfaceDr == 1)
+            {
+                //sqlStr = sqlStr + " and (InsuranceAreaCode='539900' or InsuranceAreaCode='530100')";
+            }
+
+            //conditionStr = conditionStr.Substring(0,conditionStr.Length -1 );
+            conditionStr = conditionStr.Remove(conditionStr.Length - 1, 1);
+
+            sqlStr = sqlStr + conditionStr;
+            JObject joSqlstr = new JObject();
+
+            //MessageBox.Show(sqlStr);
+
+            joSqlstr.Add("sqlStr", sqlStr);
+            JArray jaParam = new JArray();
+            jaParam.Add(joSqlstr);
+            JObject joSettlQuery = new JObject();
+            joSettlQuery.Add("params", jaParam);
+            joSettlQuery.Add("code", "09010081");
+            InvokeHelper invoker = new InvokeHelper();
+            JObject joRtn = invoker.invokeInsuService(joSettlQuery.ToString(), "查询汇总结算信息(清算)");
+
+            DataTable dt = (DataTable)joRtn["result"]["data"].ToObject(typeof(DataTable));
+            //设置两位小数格式
+            joRtn["result"]["data"][0]["medfee_sumamt"] = joRtn["result"]["data"][0]["medfee_sumamt"].ToString(0.00);
+            joRtn["result"]["data"][0]["med_sumfee"] = joRtn["result"]["data"][0]["med_sumfee"].ToString(0.00);
+            joRtn["result"]["data"][0]["fund_appy_sum"] = joRtn["result"]["data"][0]["fund_appy_sum"].ToString(0.00);
+            joRtn["result"]["data"][0]["acct_pay"] = joRtn["result"]["data"][0]["acct_pay"].ToString(0.00);
+            joRtn["result"]["data"][0]["cash_payamt"] = joRtn["result"]["data"][0]["cash_payamt"].ToString(0.00);
+            dgvClearingSum.DataSource = dt;
+
+            //初始化HIS结算明细View数据
+            dgvHisSettlRec.DataSource = null;
+        }
     }
 }

+ 4 - 0
Helper/JsonHelper.cs

@@ -284,6 +284,10 @@ namespace PTMedicalInsurance.Helper
             //    Global.pat.insuplc_admdvs = Global.inf.areaCode;
             //}
             Jo.insuplc_admdvs = Global.pat.insuplc_admdvs;
+            if (Global.pat.insuplc_admdvs == "")
+            {
+                Jo.insuplc_admdvs = "220100";
+            }
             //Global.pat.insuplc_admdvs;           
             /*if (Global.pat.insuplc_admdvs.Substring(0, 4) != "2201")
             {

Some files were not shown because too many files changed in this diff