You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
12 KiB
98 lines
12 KiB
package com.ynxbd.common;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.ynxbd.common.helper.common.JsonHelper;
|
|
import com.ynxbd.common.helper.http.OkHttpHelper;
|
|
import com.ynxbd.common.result.JsonResult;
|
|
import com.ynxbd.common.result.JsonResultEnum;
|
|
import com.ynxbd.wx.config.MessagePushConfig;
|
|
import com.ynxbd.wx.utils.DesEncryptHelper;
|
|
import com.ynxbd.wx.wxfactory.medical.models.MedicalInfo;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
@Slf4j
|
|
public class TestA {
|
|
|
|
public static void main(String[] args) throws Exception {
|
|
// System.out.println(AesWxHelper.encode("om5HqvlWTys3Bqls6YV-o4iA3Zqg"));
|
|
// System.out.println(AesWxHelper.encode("192970"));
|
|
// System.out.println(AesWxHelper.encode("533103200008164016"));
|
|
|
|
System.out.println(DesEncryptHelper.enCode("oeso-t62kkoRwLVVkSkwmmjPfUXk"));
|
|
|
|
System.out.println(MessagePushConfig.REG_NAVIGATE_API);
|
|
// OkHttpHelper.getAsync(REG_NAVIGATE_API, params -> {
|
|
// params.put("patientName", "小王");
|
|
// params.put("content", "就诊时间:2026-08-13 12:12:12");
|
|
// params.put("deptName", "科室");
|
|
// params.put("deptCode", "0001");
|
|
// params.put("openId", "32EBE22EF6C9437575AB7A043E456D25704583EFA5E6BE1B5CB899A6F3B7075A");
|
|
// });
|
|
test();
|
|
}
|
|
|
|
public static void test() {
|
|
// String xml = "<Response><TransactionCode>4009</TransactionCode><ResponseCode>0</ResponseCode><ResponseMessage>成功</ResponseMessage><PayOrRefundMoney>0.00</PayOrRefundMoney><PayOrdId>ORD530100202608121122576630746</PayOrdId><PayToken>TSN530100202608121122573403831</PayToken><MdtrtId>311996889875</MdtrtId><ChrgBchno>400308</ChrgBchno><UserID_YBZF>16565161</UserID_YBZF><OrdStas>1</OrdStas><FeeSumamt>89</FeeSumamt><OwnPayAmt>0</OwnPayAmt><PsnAcctPay>89</PsnAcctPay><FundPay>0</FundPay><Deposit>0</Deposit><ExtData>{\"setlinfo\":{\"psnCashPay\":0,\"inscpScpAmt\":81,\"medinsSetlId\":\"H53310300023202608121122583668\",\"medType\":\"21\",\"age\":25,\"acctPay\":89,\"psnType\":\"11\",\"psnName\":\"王晨宇\",\"mdtrtCertNo\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"insuAdmdvs\":\"533199\",\"hifobPay\":0,\"psnCertType\":\"01\",\"mdtrtCertType\":\"01\",\"actPayDedc\":81,\"psnPay\":89,\"psnInsuRltsId\":\"53000000300121343792\",\"overlmtSelfpay\":5,\"ownpayHospPart\":0,\"medfeeSumamt\":89,\"mdtrtId\":\"311996889875\",\"hifmiPay\":0,\"certno\":\"533103200008164016\",\"crtDedc\":81,\"hifpPay\":0,\"poolPropSelfpay\":0,\"clrType\":\"21\",\"mafPay\":0,\"cvlservPay\":0,\"setlTime\":\"2026-08-12 11:22:59\",\"hospPartAmt\":0,\"expContent\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"othPay\":0,\"dedcStd\":600,\"othfundPay\":0,\"preselfpayAmt\":3,\"cashPayamt\":0,\"fulamtOwnpayAmt\":0,\"fundPaySumamt\":0,\"cvlservFlag\":\"0\",\"insutype\":\"310\",\"acctMulaidPay\":0,\"psnPartAmt\":89,\"enddate\":1785838099000,\"hifesPay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"inscpAmt\":81,\"hifdmPay\":0,\"begndate\":1785813000000,\"psnNo\":\"DH5310062846\"},\"SETLINFO\":{\"psn_part_amt\":89,\"hifob_pay\":0,\"age\":25,\"psn_pay\":89,\"preselfpay_amt\":3,\"oth_pay\":0,\"hifp_pay\":0,\"overlmt_selfpay\":5,\"hifes_pay\":0,\"psn_cash_pay\":0,\"maf_pay\":0,\"dedc_std\":600,\"act_pay_dedc\":81,\"inscp_amt\":81,\"mdtrt_id\":\"311996889875\",\"hifmi_pay\":0,\"crt_dedc\":81,\"psn_no\":\"DH5310062846\",\"medins_setl_id\":\"H53310300023202608121122583668\",\"certno\":\"533103200008164016\",\"psn_cert_type\":\"01\",\"exp_content\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"setl_time\":\"2026-08-12 11:22:59\",\"acct_mulaid_pay\":0,\"psn_type\":\"11\",\"psn_name\":\"王晨宇\",\"clr_type\":\"21\",\"fulamt_ownpay_amt\":0,\"med_type\":\"21\",\"cashPayamt\":0,\"mdtrt_cert_no\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"cvlserv_flag\":\"0\",\"cvlserv_pay\":0,\"insutype\":\"310\",\"enddate\":1785838099000,\"ownpay_hosp_part\":0,\"hosp_part_amt\":0,\"mdtrt_cert_type\":\"01\",\"pool_prop_selfpay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"hifdm_pay\":0,\"medfee_sumamt\":89,\"othfund_pay\":0,\"psn_insu_rlts_id\":\"53000000300121343792\",\"insu_admdvs\":\"533199\",\"acct_pay\":89,\"inscp_scp_amt\":81,\"begndate\":1785813000000,\"fund_pay_sumamt\":0},\"originalResult\":{\"respondTime\":\"20260812112259839\",\"infRefmsgid\":\"530000202608121122598204425853\",\"output\":{\"setlinfo\":{\"psn_part_amt\":89,\"hifob_pay\":0,\"age\":25,\"psn_pay\":89,\"preselfpay_amt\":3,\"oth_pay\":0,\"hifp_pay\":0,\"overlmt_selfpay\":5,\"hifes_pay\":0,\"psn_cash_pay\":0,\"maf_pay\":0,\"dedc_std\":600,\"act_pay_dedc\":81,\"inscp_amt\":81,\"mdtrt_id\":\"311996889875\",\"hifmi_pay\":0,\"crt_dedc\":81,\"psn_no\":\"DH5310062846\",\"medins_setl_id\":\"H53310300023202608121122583668\",\"certno\":\"533103200008164016\",\"psn_cert_type\":\"01\",\"exp_content\":\"{\\\"unif_pay_std\\\":0,\\\"unif_pay_blnc\\\":0,\\\"bkst_safeg_amt\\\":0,\\\"fin_subs\\\":null,\\\"care_subs\\\":null,\\\"insu_cmpy_name\\\":\\\"\\\",\\\"comp_sum_amt\\\":null,\\\"comp_dscr\\\":\\\"\\\",\\\"comp_fail_rea\\\":\\\"\\\",\\\"bas_sec_pool_lmt\\\":0,\\\"mihisec_pool_lmt\\\":0,\\\"cvlserv_acct_pay\\\":0,\\\"oth_subs\\\":null,\\\"bas_sev_inpool_amt\\\":0,\\\"mihisec_inpool_amt\\\":0,\\\"third_pay_list\\\":[],\\\"sp_psn_type\\\":\\\"95341\\\",\\\"cvlserv_lmt_rm\\\":0,\\\"wlt_acct_pay\\\":0,\\\"hosp_payf_amt\\\":0,\\\"cla_trt_flag\\\":\\\"1\\\"}\",\"setl_time\":\"2026-08-12 11:22:59\",\"acct_mulaid_pay\":0,\"psn_type\":\"11\",\"psn_name\":\"王晨宇\",\"clr_type\":\"21\",\"fulamt_ownpay_amt\":0,\"med_type\":\"21\",\"cashPayamt\":0,\"mdtrt_cert_no\":\"530000ocvpvqk10ujb26a3720a00009bfc99ea\",\"cvlserv_flag\":\"0\",\"cvlserv_pay\":0,\"insutype\":\"310\",\"enddate\":1785838099000,\"ownpay_hosp_part\":0,\"hosp_part_amt\":0,\"mdtrt_cert_type\":\"01\",\"pool_prop_selfpay\":0,\"naty\":\"01\",\"gend\":\"1\",\"brdy\":\"2000-08-16\",\"balc\":242.38,\"hifdm_pay\":0,\"medfee_sumamt\":89,\"othfund_pay\":0,\"psn_insu_rlts_id\":\"53000000300121343792\",\"insu_admdvs\":\"533199\",\"acct_pay\":89,\"inscp_scp_amt\":81,\"begndate\":1785813000000,\"fund_pay_sumamt\":0},\"setldetail\":[{\"fund_pay_type_name\":\"城镇职工基本医疗保险统筹基金(住院)\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"310100\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"职工大病保险基金\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"99999702\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"城镇职工基本医疗保险个人账户基金\",\"crt_payb_lmt_amt\":89,\"fund_pay_type\":\"310200\",\"inscp_scp_amt\":89,\"fund_payamt\":89}]},\"refmsgTime\":\"20260812112258087\",\"infcode\":0},\"setldetail\":[{\"fund_pay_type_name\":\"城镇职工基本医疗保险统筹基金(住院)\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"310100\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"职工大病保险基金\",\"crt_payb_lmt_amt\":0,\"fund_pay_type\":\"99999702\",\"inscp_scp_amt\":0,\"fund_payamt\":0},{\"fund_pay_type_name\":\"城镇职工基本医疗保险个人账户基金\",\"crt_payb_lmt_amt\":89,\"fund_pay_type\":\"310200\",\"inscp_scp_amt\":89,\"fund_payamt\":89}]}</ExtData></Response>";
|
|
// JsonResult result = JsonResult.xmlToBean(xml, JsonResultEnum.SYS_HIS);
|
|
//
|
|
// String payOrdId = result.getDataMapString("PayOrdId");
|
|
// String payToken = result.getDataMapString("PayToken");
|
|
// String mdTrtId = result.getDataMapString("MdtrtId"); // 医保就诊ID
|
|
// String chrgBchno = result.getDataMapString("ChrgBchno"); // 医疗机构订单号、收费批次号
|
|
// String mdUserId = result.getDataMapString("UserID_YBZF"); // 医保用户ID
|
|
// // 住院=========
|
|
// String payOrRefundMoney = result.getDataMapString("PayOrRefundMoney"); // 缴退金额[大于0时需要微信收取费用,小于0时需要微信退费]
|
|
// String prePayOrderId = result.getDataMapString("PrePayOrderId"); // 预交金缴费单号[需要退费时,his返回预交金时候的单号给微信退费。可能存在退多比微信预交金费用,字段具体内容后续协商后敲定]
|
|
// String ordStas = result.getDataMapString("OrdStas"); //
|
|
// BigDecimal deposit = result.getDataMapBigDecimal("Deposit"); // 住院押金(医保6202返回)
|
|
// String payAuthNo = "1";
|
|
//
|
|
// log.info("[医保-住院结算]HIS费用上传明细接口返回-授权信息 payAuthNo={}, payOrdId={}, payToken={}, mdtrtId={}, chrgBchno={}, userIdYBZF={}", payAuthNo, payOrdId, payToken, mdTrtId, chrgBchno, mdUserId);
|
|
// if (payOrdId == null || payToken == null || mdTrtId == null || chrgBchno == null) {
|
|
// }
|
|
//
|
|
// MedicalInfo medicalInfo = new MedicalInfo();
|
|
// medicalInfo.setPayAuthNo("1");
|
|
// medicalInfo.setPayToken(payToken);
|
|
// medicalInfo.setPayOrdId(payOrdId);
|
|
// medicalInfo.setMdTrtId(mdTrtId);
|
|
// medicalInfo.setChrgBchno(chrgBchno);
|
|
// medicalInfo.setMdUserId(mdUserId);
|
|
//
|
|
// BigDecimal totalFee = result.getDataMapBigDecimal("FeeSumamt"); // 订单总金额医保返回
|
|
// BigDecimal cashFee = result.getDataMapBigDecimal("OwnPayAmt"); // 现金支付(医保6202返回)
|
|
// BigDecimal hifpFee = result.getDataMapBigDecimal("FundPay"); // 统筹金额[基金金额]
|
|
// BigDecimal acctPay = result.getDataMapBigDecimal("PsnAcctPay"); // 个人账户支出(医保6202返回)
|
|
// log.info("[医保-住院结算]HIS费用上传明细接口返回-费用明细 payOrdId={}, totalFee={}, cashFee={}, hifpFee={}, acctPay={}",
|
|
// payOrdId, totalFee, cashFee, hifpFee, acctPay);
|
|
//
|
|
// String extData = result.getDataMapString("ExtData");
|
|
//
|
|
// if (totalFee == null) {
|
|
// }
|
|
// if (ObjectUtils.isEmpty(extData)) {
|
|
// }
|
|
// JSONObject extDataJson = JsonHelper.parseObject(extData);
|
|
// JSONObject setLInfo = extDataJson.getJSONObject("SETLINFO");
|
|
//
|
|
// medicalInfo.setMedFeeSumAmt(new BigDecimal(setLInfo.getString("medfee_sumamt"))); // 医保金额
|
|
//
|
|
// medicalInfo.setTotalFee(totalFee); // 医保订单总金额
|
|
// medicalInfo.setCashFee(cashFee); // 现金部分
|
|
// medicalInfo.setHifpFee(hifpFee); // 统筹支付金额
|
|
// medicalInfo.setAcctFee(acctPay); // 个人账户支付
|
|
//
|
|
// medicalInfo.setInsuranceFee(acctPay.add(hifpFee)); // 医保支付(个账 + 统筹)
|
|
// System.out.println(medicalInfo.getMedFeeSumAmt());
|
|
|
|
}
|
|
|
|
// public static void main(String[] args) throws Exception {
|
|
// String content = "533103198212184014";
|
|
// String encrypt = RSAHelper.enPKCS1Padding(content, PUB_KEY);
|
|
// System.out.println(HexUtil.encodeHexStr(encrypt));
|
|
// }
|
|
} |