diff --git a/src/main/java/com/ynxbd/ali/helper/AliHelper.java b/src/main/java/com/ynxbd/ali/helper/AliHelper.java index 6d20c09..f90c82c 100644 --- a/src/main/java/com/ynxbd/ali/helper/AliHelper.java +++ b/src/main/java/com/ynxbd/ali/helper/AliHelper.java @@ -455,7 +455,7 @@ public class AliHelper { return order; } if (isMIPay) { - return AliMedicalHelper.queryTrade(outTradeNo, null); + return AliMIHelper.queryTrade(outTradeNo, null); } return queryTransaction(outTradeNo); } diff --git a/src/main/java/com/ynxbd/ali/helper/AliMedicalHelper.java b/src/main/java/com/ynxbd/ali/helper/AliMIHelper.java similarity index 90% rename from src/main/java/com/ynxbd/ali/helper/AliMedicalHelper.java rename to src/main/java/com/ynxbd/ali/helper/AliMIHelper.java index 97878c3..930353b 100644 --- a/src/main/java/com/ynxbd/ali/helper/AliMedicalHelper.java +++ b/src/main/java/com/ynxbd/ali/helper/AliMIHelper.java @@ -11,9 +11,11 @@ import com.alipay.api.domain.MedicalNationalPayAuthInfo; import com.alipay.api.request.AlipayCommerceMedicalAuthinfoAuthQueryRequest; import com.alipay.api.request.AlipayTradeAppPayRequest; import com.alipay.api.request.AlipayTradeQueryRequest; +import com.alipay.api.request.AlipayTradeRefundApplyRequest; import com.alipay.api.response.AlipayCommerceMedicalAuthinfoAuthQueryResponse; import com.alipay.api.response.AlipayTradeAppPayResponse; import com.alipay.api.response.AlipayTradeQueryResponse; +import com.alipay.api.response.AlipayTradeRefundApplyResponse; import com.ynxbd.ali.config.AliConfig; import com.ynxbd.ali.config.AliMIConfig; import com.ynxbd.common.bean.pay.Order; @@ -30,7 +32,7 @@ import java.net.URLDecoder; import java.util.*; @Slf4j -public class AliMedicalHelper { +public class AliMIHelper { /** * 国家医保局线上业务身份核验信息授权查询接口[alipay_commerce_medical_authinfo_auth_query_response] @@ -250,7 +252,11 @@ public class AliMedicalHelper { if (response.isSuccess()) { if ("TRADE_SUCCESS".equals(response.getTradeStatus())) { order.setSuccess(true); + + } else if ("TRADE_CLOSED".equals(response.getTradeStatus())) { + order.setTradeDesc("TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)"); } + order.setOpenid(response.getBuyerUserId()); order.setInfo(response.getBody()); order.setTradeState(response.getTradeStatus()); order.setTradeNo(response.getTradeNo()); @@ -258,7 +264,8 @@ public class AliMedicalHelper { order.setOutTradeNo(response.getOutTradeNo()); order.setTotalFee(new BigDecimal(response.getTotalAmount())); } else { - order.setErrorMsg(response.getMsg()); + order.setErrorCode(response.getSubCode()); + order.setErrorMsg(response.getSubMsg()); } } catch (AlipayApiException e) { ErrorHelper.println(e); @@ -267,19 +274,29 @@ public class AliMedicalHelper { } // 5.2.2.6 交易退款接口alipay.trade.refund.apply - public static String refundTrade(String outTradeNo, String outRefundNo, String tradeNo, BigDecimal refundAmount, String refundReason) { + public static AlipayTradeRefundApplyResponse refundTrade(String outTradeNo, String outRefundNo, String tradeNo, BigDecimal refundAmount, String refundReason) throws Exception { try { + if (ObjectUtils.isEmpty(outRefundNo)) { + log.info("[支付宝]退费outRefundNo为空"); + return null; + } + if (ObjectUtils.isEmpty(outTradeNo) && ObjectUtils.isEmpty(tradeNo)) { + log.info("[支付宝]退费[outTradeNo 和 tradeNo]不能都为空"); + return null; + } AlipayClient alipayClient = new DefaultAlipayClient(AliConfig.getAlipayConfig()); - AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); + AlipayTradeRefundApplyRequest request = new AlipayTradeRefundApplyRequest(); JSONObject bizContent = new JSONObject(); - bizContent.put("trade_no", tradeNo); - bizContent.put("out_trade_no", outTradeNo); + if (ObjectUtils.isEmpty(outTradeNo)) { + bizContent.put("trade_no", tradeNo); + } else { + bizContent.put("out_trade_no", outTradeNo); + } bizContent.put("refund_amount", refundAmount.toString()); bizContent.put("out_request_no", outRefundNo); // 退款请求号-如需部分退款,则此参数必传 // 退款原因说明 bizContent.put("refund_reason", refundReason); - //亲情账户增加 end JSONObject extendParams = new JSONObject(); extendParams.put("cancel_serial_no", outRefundNo); extendParams.put("cancel_bill_no", outRefundNo); @@ -288,12 +305,17 @@ public class AliMedicalHelper { request.setBizContent(JSONObject.toJSONString(bizContent)); log.info("[支付宝][医保]交易退款接口-入参 {}", JSONObject.toJSONString(request)); - AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); + AlipayTradeRefundApplyResponse response = alipayClient.execute(request); log.info("[支付宝][医保]交易退款接口-返回 {}", response.getBody()); if (response.isSuccess()) { - return response.getBody(); + if ("REFUND_FAIL".equals(response.getRefundStatus())) { + log.info("[支付宝][医保]退款失败 outTradeNo={}, outRefundNo={}, refundStatus={}", outTradeNo, outRefundNo, response.getRefundStatus()); + return null; + } + log.info("[支付宝][医保]退款成功 outTradeNo={}, outRefundNo={}, refundStatus={}", outTradeNo, outRefundNo, response.getRefundStatus()); + return response; } - } catch (AlipayApiException e) { + } catch (Exception e) { ErrorHelper.println(e); } return null; diff --git a/src/main/java/com/ynxbd/common/action/AccountsAction.java b/src/main/java/com/ynxbd/common/action/AccountsAction.java index 3bbc32e..5c55fa3 100644 --- a/src/main/java/com/ynxbd/common/action/AccountsAction.java +++ b/src/main/java/com/ynxbd/common/action/AccountsAction.java @@ -24,7 +24,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; - import java.util.*; /** diff --git a/src/main/java/com/ynxbd/common/action/RecipeAction.java b/src/main/java/com/ynxbd/common/action/RecipeAction.java index 263263b..0d71d07 100644 --- a/src/main/java/com/ynxbd/common/action/RecipeAction.java +++ b/src/main/java/com/ynxbd/common/action/RecipeAction.java @@ -223,7 +223,7 @@ public class RecipeAction extends BaseAction { params.put("BankTransNo", bankTransNo); // 商户订单号 params.put("OpenId", recipe.getOpenid()); params.put("Token", WeChatConfig.TOKEN); - JsonResult result = HisHelper.getJsonResult(HisEnum.AP_Pay_Invoice, params, MerchantEnum.WX); + JsonResult result = HisHelper.getJsonResult(HisEnum.AP_Pay_Invoice, params); return result.success() ? Result.success(result) : Result.error(result.getMessage()); } diff --git a/src/main/java/com/ynxbd/common/action/WechatMiniAction.java b/src/main/java/com/ynxbd/common/action/WechatMiniAction.java index e62e1b0..ce9595e 100644 --- a/src/main/java/com/ynxbd/common/action/WechatMiniAction.java +++ b/src/main/java/com/ynxbd/common/action/WechatMiniAction.java @@ -66,7 +66,7 @@ public class WechatMiniAction extends BaseAction { order.setPatientId(patientId); order.setOpenid(mid); order.setPayWay(merchantEnum.PAY_WAY_MICRO); - Order orderResult = new OutCollectService().ocPayMicro(order, barCode, cardNo); + Order orderResult = new OutCollectService().createOCPayMicro(order, barCode, cardNo); return orderResult.isSuccess() ? Result.success(outTradeNo) diff --git a/src/main/java/com/ynxbd/common/action/XBDAction.java b/src/main/java/com/ynxbd/common/action/XBDAction.java index 71fc439..4da427c 100644 --- a/src/main/java/com/ynxbd/common/action/XBDAction.java +++ b/src/main/java/com/ynxbd/common/action/XBDAction.java @@ -89,7 +89,7 @@ public class XBDAction extends BaseAction { if (patientId == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - String resp = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetBA.Name, params -> { + String resp = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetBA.NAME, params -> { params.put("patientID", patientId); params.put("flagFP", 0); params.put("flagSH", flagSh); @@ -137,7 +137,7 @@ public class XBDAction extends BaseAction { @Action("getMRTemplateList") public Result getMRTemplateList() { try { - String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetTemplate.Name, params -> { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetTemplate.NAME, params -> { }); return Result.success(JsonHelper.parseArray(jsonString)); } catch (Exception e) { @@ -190,7 +190,7 @@ public class XBDAction extends BaseAction { return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); } - String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetAppointment.Name, params -> { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetAppointment.NAME, params -> { params.put("ZYNum", zyNum); params.put("ApplyName", applyName); params.put("UseToNo", useToNo); @@ -231,7 +231,7 @@ public class XBDAction extends BaseAction { @Action("getMRHistory") public Result getMRHistory(String patientId) { try { - String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name, params -> { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetHistoryAppointment.NAME, params -> { params.put("patientID", patientId); params.put("BorrowNo", -1); }); @@ -309,6 +309,32 @@ public class XBDAction extends BaseAction { } + /** + * 图片测试 + * + * @param patientId patientId + * @return 成功行数 + */ + @Action("testImportImage") + public Result testImportImage(@AesDecode String patientId, String img1, String img2, String img3) { + try { + log.info("[图片测试]patientId={}, img1={}", patientId, img1); + if (ObjectUtils.isEmpty(patientId)) { + return Result.error(ResultEnum.PARAM_IS_DEFECT); + } + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.Test_ImportImage.NAME, params -> { + params.put("Img1", img1); + params.put("Img2", img2); + params.put("ImageType", 1); + }); + return Result.success(jsonString); + } catch (Exception e) { + log.error("[图片测试] error-{}", e.toString()); + return Result.error(ResultEnum.ERROR); + } + } + + // /** // * 病人修改病历的地址 // * @param id 申请单号 diff --git a/src/main/java/com/ynxbd/common/action/pay/AliPayAction.java b/src/main/java/com/ynxbd/common/action/pay/AliPayAction.java index 64eeb4d..66f9902 100644 --- a/src/main/java/com/ynxbd/common/action/pay/AliPayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/AliPayAction.java @@ -1,12 +1,14 @@ package com.ynxbd.common.action.pay; import com.alipay.api.domain.MedicalNationalPayAuthInfo; +import com.ynxbd.ali.config.AliMIConfig; import com.ynxbd.ali.helper.AliHelper; -import com.ynxbd.ali.helper.AliMedicalHelper; +import com.ynxbd.ali.helper.AliMIHelper; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.Order; import com.ynxbd.common.helper.common.DateHelper; +import com.ynxbd.common.helper.common.ErrorHelper; import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ServiceException; @@ -101,14 +103,20 @@ public class AliPayAction extends BaseAction { } log.info("[支付宝][医保][收到通知] order={}", JsonHelper.toJsonString(order)); - String openid = order.getOpenid(); - String bankTransNo = order.getBankTransNo(); - String payInfo = order.getInfo(); - BigDecimal totalFee = order.getTotalFee(); - String payDate = DateHelper.getCurDate(); - String payTime = DateHelper.getCurTime(); - - new MedicalService().commonNotify(MerchantEnum.ALI_MEDICAL, notifyType, outTradeNo, totalFee, bankTransNo, payDate, payTime, openid, payInfo); + try { + if (AliMIConfig.IS_DEV) { + Thread.sleep(1000 * 12); // 12s + } + String openid = order.getOpenid(); + String bankTransNo = order.getBankTransNo(); + String payInfo = order.getInfo(); + BigDecimal totalFee = order.getTotalFee(); + String payDate = DateHelper.getCurDate(); + String payTime = DateHelper.getCurTime(); + new MedicalService().commonNotify(MerchantEnum.ALI_MEDICAL, notifyType, outTradeNo, totalFee, bankTransNo, payDate, payTime, openid, payInfo); + } catch (Exception e) { + ErrorHelper.println(e); + } return Result.respStr(); } @@ -121,7 +129,7 @@ public class AliPayAction extends BaseAction { public Result queryMIAuth(String openid, String accessToken, String patientName, String patientCardNo, String reqBizNo, String callUrl) { log.info("[支付宝][医保]授权查询 openid={}, accessToken={}, patientName={}, patientCardNo={}, reqBizNo={}, callUrl={}", openid, accessToken, patientName, patientCardNo, reqBizNo, callUrl); try { - MedicalNationalPayAuthInfo dataInfo = AliMedicalHelper.queryMIAuth(openid, accessToken, patientName, patientCardNo, reqBizNo, callUrl); + MedicalNationalPayAuthInfo dataInfo = AliMIHelper.queryMIAuth(openid, accessToken, patientName, patientCardNo, reqBizNo, callUrl); log.info("[支付宝][医保]授权查询 {}", JsonHelper.toJsonString(dataInfo)); if (dataInfo == null) { return Result.error("授权查询失败"); diff --git a/src/main/java/com/ynxbd/common/action/pay/MedicalAction.java b/src/main/java/com/ynxbd/common/action/pay/MedicalAction.java index 0133c0a..47cc7de 100644 --- a/src/main/java/com/ynxbd/common/action/pay/MedicalAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/MedicalAction.java @@ -1,7 +1,7 @@ package com.ynxbd.common.action.pay; import com.alibaba.fastjson.JSONObject; -import com.ynxbd.ali.helper.AliMedicalHelper; +import com.ynxbd.ali.helper.AliMIHelper; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.Order; @@ -331,12 +331,12 @@ public class MedicalAction extends BaseAction { return Result.error(order.getMessage()); } else if (merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) { - Order order = AliMedicalHelper.queryTrade(outTradeNo, medTransId); + Order order = AliMIHelper.queryTrade(outTradeNo, medTransId); order.setOrderObj(orderObj); - if (order.isSuccess()) { - return Result.success(order); + if (order.hasErrorMsg()) { + return Result.error(order.getErrorMsg()); } - return Result.error(order.getErrorMsg()); + return Result.success(order); } else { return Result.error(ResultEnum.PAY_TYPE_ERROR); } diff --git a/src/main/java/com/ynxbd/common/action/pay/MedicalTestAction.java b/src/main/java/com/ynxbd/common/action/pay/MedicalTestAction.java index b03f35e..8e9128c 100644 --- a/src/main/java/com/ynxbd/common/action/pay/MedicalTestAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/MedicalTestAction.java @@ -4,7 +4,7 @@ import com.ynxbd.ali.config.AliMIConfig; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.bean.HisRecipe; import com.ynxbd.common.config.interceptor.AesDecode; -import com.ynxbd.common.dao.his.HisMedicalTestDao; +import com.ynxbd.common.dao.his.HisMITestDao; import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ResultEnum; @@ -43,7 +43,7 @@ public class MedicalTestAction extends BaseAction { } int days = DateHelper.intervalDays(begDate, endDate, true); - List hisRecipes = HisMedicalTestDao.devUnPayList(patientId, days); + List hisRecipes = HisMITestDao.devUnPayList(patientId, days); List dataList = new ArrayList<>(); for (HisRecipe hisRecipe : hisRecipes) { @@ -68,7 +68,7 @@ public class MedicalTestAction extends BaseAction { return Result.error("环境错误"); } - List hisRecipeList = HisMedicalTestDao.devPaidRecipeList(patientId, begDate, endDate); + List hisRecipeList = HisMITestDao.devPaidRecipeList(patientId, begDate, endDate); return Result.success(new RecipeService().filterPaidList(hisRecipeList)); } diff --git a/src/main/java/com/ynxbd/common/action/pay/NotifyAction.java b/src/main/java/com/ynxbd/common/action/pay/NotifyAction.java index 6c0bb66..cdb3b96 100644 --- a/src/main/java/com/ynxbd/common/action/pay/NotifyAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/NotifyAction.java @@ -59,12 +59,11 @@ public class NotifyAction extends BaseAction { String notifyType = notifyInfo.getAttach(); - log.info("notifyInfo={}", notifyInfo); - log.info("【微信】[{}] native收到通知 outTradeNo={}, bankTransNo={}", notifyType, outTradeNo, bankTransNo); + log.info("【微信native支付】[{}] 收到通知 outTradeNo={}, bankTransNo={}, notifyInfo={}", notifyType, outTradeNo, bankTransNo, notifyInfo); switch (PQREnum.toEnum(notifyType)) { case OUT_COLLECT: - new OutCollectService().ocPayNotify(MerchantEnum.WX, openid, totalFee, bankTransNo, outTradeNo, payInfo); + new OutCollectService().ocPaidNotify(MerchantEnum.WX, openid, totalFee, bankTransNo, outTradeNo, payInfo); break; default: diff --git a/src/main/java/com/ynxbd/common/action/pay/PayAction.java b/src/main/java/com/ynxbd/common/action/pay/PayAction.java index a4e9f00..2ab3121 100644 --- a/src/main/java/com/ynxbd/common/action/pay/PayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/PayAction.java @@ -106,7 +106,7 @@ public class PayAction extends BaseAction { log.info("{} [处方]预结算开始... patientId={}", merchantEnum.NAME, patientId); // 调用预结算!!!!注意如果HIS不支持开启改功能后,会存在直接入库的风险 - List respList = recipeService.hisRecipePrepay(recipeJson, patientId, treatNum); + List respList = recipeService.hisRxPrepay(recipeJson, patientId, treatNum); return Result.success(respList); } @@ -895,7 +895,7 @@ public class PayAction extends BaseAction { String outTradeNo = CodeHelper.getOutTradeNo(merchantEnum); try { - new OutCollectService().ocPay(outTradeNo, totalFee, collectId, openid, mid, name, cardNo, patientId, remark); + new OutCollectService().creatorOCOrder(outTradeNo, totalFee, collectId, openid, mid, name, cardNo, patientId, remark); } catch (ServiceException e) { return Result.error(e); } diff --git a/src/main/java/com/ynxbd/common/action/pay/WxPayAction.java b/src/main/java/com/ynxbd/common/action/pay/WxPayAction.java index 269776c..28163a6 100644 --- a/src/main/java/com/ynxbd/common/action/pay/WxPayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/WxPayAction.java @@ -62,7 +62,7 @@ public class WxPayAction extends BaseAction { switch (PQREnum.toEnum(notifyType)) { case OUT_COLLECT: - new OutCollectService().ocPayNotify(MerchantEnum.WX, openid, totalFee, bankTransNo, outTradeNo, payInfo); + new OutCollectService().ocPaidNotify(MerchantEnum.WX, openid, totalFee, bankTransNo, outTradeNo, payInfo); break; default: diff --git a/src/main/java/com/ynxbd/common/action/test/TestAction.java b/src/main/java/com/ynxbd/common/action/test/TestAction.java index fc34d28..bb121e1 100644 --- a/src/main/java/com/ynxbd/common/action/test/TestAction.java +++ b/src/main/java/com/ynxbd/common/action/test/TestAction.java @@ -1,6 +1,7 @@ package com.ynxbd.common.action.test; import com.alibaba.fastjson.JSONObject; +import com.ynxbd.ali.helper.AliMIHelper; import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.bean.his.HisTreat; import com.ynxbd.common.bean.pay.Recipe; @@ -86,12 +87,18 @@ public class TestAction extends BaseAction { return Result.success(); } - @Action("md_refund_test") - public Result md_refund_test() throws ServiceException { + @Action("wx_med_refund_test") + public Result wx_med_refund_test() throws ServiceException { WxMedicalHelper.refundCash("WX_M202f622bb3444a033f7a014a421b", "ORD530100202505100932115202726", new BigDecimal("183.390"), "人工退费"); return Result.success(); } + @Action("ali_med_refund_test") + public Result ali_med_refund_test() throws Exception { + AliMIHelper.refundTrade("", "", null, new BigDecimal(""), "退费测试"); + return Result.success(); + } + @Action("md_add") public Result md_add(String outTradeNo) { @@ -108,7 +115,6 @@ public class TestAction extends BaseAction { Recipe recipe = new Recipe(); recipe.setUpdateTime(new Date()); recipe.setOpenid(order.getOpenid()); - recipe.setPatientId("1xbd"); recipe.setPayStatus(0); recipe.setHisStatus(-1); recipe.setOutTradeNo(outTradeNo); @@ -119,9 +125,11 @@ public class TestAction extends BaseAction { String payOrdId = jsonObject.getString("payOrdId"); recipe.setTradeNo(payOrdId); recipe.setPayOrdId(payOrdId); - + // ========================== + recipe.setPatientId("1xbd"); recipe.setMdTrtId("xbd-med"); recipe.setMdUserId("xbd-med"); + recipe.setPayWay("0"); recipe.setHisResult("订单未调用HIS接口"); recipe.setTotalFee(order.getTotalFee()); diff --git a/src/main/java/com/ynxbd/common/bean/pay/Order.java b/src/main/java/com/ynxbd/common/bean/pay/Order.java index 9365c3e..a71dd42 100644 --- a/src/main/java/com/ynxbd/common/bean/pay/Order.java +++ b/src/main/java/com/ynxbd/common/bean/pay/Order.java @@ -111,6 +111,8 @@ public class Order implements Serializable { private String errorMsg; // 订单交易状态 private String tradeState; + // 交易状态描述 + private String tradeDesc; // 判断支付是否成功标识 private boolean isSuccess; // 判断是否需要退费标识 @@ -206,4 +208,7 @@ public class Order implements Serializable { return ("OK".equals(this.refundResult)); } + public boolean hasErrorMsg() { + return !ObjectUtils.isEmpty(errorMsg) || !ObjectUtils.isEmpty(errorCode); + } } diff --git a/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java b/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java index ff74619..6d3f6cd 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java @@ -79,33 +79,33 @@ public class HisInHospDao { /** * 通过患者ID查询住院记录 + * * @param patientId 患者id * @return 住院记录 */ - public JsonResult getAllHospList(String patientId){ - return HisHelper.getJsonResult(HisEnum.Query_InHospListByPatientId,params-> { - params.put("PatientID",patientId); - params.put("CallNo",HisHelper.CALL_NO); + public JsonResult getAllHospList(String patientId) { + return HisHelper.getJsonResult(HisEnum.Query_InHospListByPatientId, params -> { + params.put("PatientID", patientId); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); }); } - public JsonResult getAllFee(String treatNum){ - return HisHelper.getJsonResult(HisEnum.Query_InHospFeeDailyByTreat,params-> { - params.put("ZYNum",treatNum); - params.put("CallNo",HisHelper.CALL_NO); + public JsonResult getAllFee(String treatNum) { + return HisHelper.getJsonResult(HisEnum.Query_InHospFeeDailyByTreat, params -> { + params.put("ZYNum", treatNum); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); }); } - /** * [住院]预交金缴费 * * @param patientId 患者id * @return 预交金缴费记录 */ - public JsonResult inHospPrepay(MerchantEnum payType, String patientId, String patientName, BigDecimal payMoney, String payDate, String payTime, String backTransNo, String tradeNo, String treatNum) { - return HisHelper.getJsonResult(HisEnum.Query_InHospPrepay, params -> { + public JsonResult inHospPrepay(MerchantEnum merchantEnum, String patientId, String patientName, BigDecimal payMoney, String payDate, String payTime, String backTransNo, String tradeNo, String treatNum) { + return HisHelper.getJsonResultByMer(HisEnum.Query_InHospPrepay, merchantEnum, params -> { params.put("PatientId", patientId); params.put("PatientName", patientName); params.put("ZYNum", treatNum); @@ -114,9 +114,9 @@ public class HisInHospDao { params.put("PayTime", payTime); params.put("TransNo", tradeNo); params.put("BankTransNo", backTransNo); - params.put("PayWay", payType.HIS_PAY_WAY); + params.put("PayWay", merchantEnum.HIS_PAY_WAY); params.put("PayDeviceID", "mobile"); - },payType); + }); } diff --git a/src/main/java/com/ynxbd/common/dao/his/HisMIDao.java b/src/main/java/com/ynxbd/common/dao/his/HisMIDao.java index e0b9ef8..38f4690 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisMIDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisMIDao.java @@ -61,7 +61,7 @@ public class HisMIDao { params.put("YBBZCode", ybBZCode); params.put("YBBZName", ybBZName); } - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.AP_Pay_Invoice, params); + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.AP_Pay_Invoice, merchantEnum, params); } @@ -70,7 +70,7 @@ public class HisMIDao { */ public static JsonResult regMIUploadFeeDetails(MerchantEnum merchantEnum, Register reg, String payAuthNo, String cardNo, Boolean isSplitTime) { if (isSplitTime) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.AP_Regist_New, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.AP_Regist_New, merchantEnum, params -> { params.put("PatientID", reg.getPatientId()); params.put("PayMoney", reg.getPayMoney()); @@ -99,7 +99,7 @@ public class HisMIDao { }); } // 非分时段挂号 医保支付 - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.AP_Regist, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.AP_Regist, merchantEnum, params -> { params.put("PatientID", reg.getPatientId()); params.put("PayMoney", reg.getPayMoney()); params.put("DeptCode", reg.getDeptCode()); @@ -136,7 +136,7 @@ public class HisMIDao { * @param bankTransNo HIS流水号 */ public static JsonResult regMIPay(MerchantEnum merchantEnum, String mdUserId, String payDate, String payTime, String transNo, String bankTransNo, BigDecimal cashFee) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.Medical_PAY, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.Medical_PAY, merchantEnum, params -> { params.put("UserID_YBZF", mdUserId); params.put("PayMoney", cashFee); params.put("PayDate", payDate); @@ -155,7 +155,7 @@ public class HisMIDao { * @param mdInfo 医保下单对象 */ public static JsonResult placeMIOrder(MerchantEnum merchantEnum, MedicalInfo mdInfo) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.Medical_PayOrders, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.Medical_PayOrders, merchantEnum, params -> { // 授权码 params.put("PayAuthNo", mdInfo.getPayAuthNo()); // 授权token @@ -179,7 +179,7 @@ public class HisMIDao { * @param bankTransNo HIS流水号 */ public static JsonResult rxMIPay(MerchantEnum merchantEnum, String mdUserId, String payDate, String payTime, String transNo, String bankTransNo, BigDecimal cashFee) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.Medical_PAY, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.Medical_PAY, merchantEnum, params -> { params.put("UserID_YBZF", mdUserId); params.put("PayMoney", cashFee); params.put("PayDate", payDate); @@ -200,7 +200,7 @@ public class HisMIDao { */ // * @param refundType 退款类型(ALL:全部,CASH:只退现金 HI:只退医保) public static JsonResult miRefund(MerchantEnum merchantEnum, String payAuthNo, String fpNum, String bankTransNo, String refundTradeNo, BigDecimal cashFee) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.Medical_Refund, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.Medical_Refund, merchantEnum, params -> { params.put("PayAuthNo", payAuthNo); // AUTH530100202206291132200000008 params.put("FPNum", fpNum); params.put("PayWay", "4"); @@ -237,7 +237,7 @@ public class HisMIDao { * -1 : 状态未知 */ public static JsonResult getMIAccounts(MerchantEnum merchantEnum, String mdUserId) { - return HisMIHelper.getJsonResult(merchantEnum.IS_DEV, HisEnum.Medical_QueryOrderStatus, params -> { + return HisMIHelper.getJsonResultByMer(merchantEnum.IS_DEV, HisEnum.Medical_QueryOrderStatus, merchantEnum, params -> { params.put("UserID_YBZF", mdUserId); }); } @@ -277,7 +277,7 @@ public class HisMIDao { */ public static JsonResult getChronicList(String idCardNo) { return HisMIHelper.getJsonResult(HisMIHelper.IS_PROD, HisEnum.YDZF_QueryDiseaseInfo, params -> { - params.put("CallNo", HisHelper.CALL_NO); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); params.put("IDCardNo", idCardNo); }); } diff --git a/src/main/java/com/ynxbd/common/dao/his/HisMedicalTestDao.java b/src/main/java/com/ynxbd/common/dao/his/HisMITestDao.java similarity index 93% rename from src/main/java/com/ynxbd/common/dao/his/HisMedicalTestDao.java rename to src/main/java/com/ynxbd/common/dao/his/HisMITestDao.java index 81cbb1d..17bb64b 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisMedicalTestDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisMITestDao.java @@ -1,72 +1,72 @@ -package com.ynxbd.common.dao.his; - -import com.ynxbd.common.bean.HisRecipe; -import com.ynxbd.common.helper.his.HisEnum; -import com.ynxbd.common.helper.his.HisHelper; -import com.ynxbd.common.helper.his.HisMIHelper; -import com.ynxbd.common.result.JsonResult; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class HisMedicalTestDao { - - /** - * [测试]查询处方 - * - * @param patientId 患者id - * @return 待付费项目 - */ - public static List devUnPayList(String patientId, int days) { - List resultList = new ArrayList<>(); - - JsonResult jsonResult = HisMIHelper.getJsonResult(HisMIHelper.IS_DEV, HisEnum.AP_Query_UnPay_Invoice, params -> { - params.put("PatientID", patientId); - params.put("IsLastWeekFlag", days <= 7 ? "1" : ""); - params.put("CallNo", HisHelper.CALL_NO); - }); - - if (!jsonResult.success()) { // 失败 - return resultList; - } - - List hisRecipeList = jsonResult.getDataMapList(HisRecipe.class, "Recipe"); - if (hisRecipeList != null) { - resultList = hisRecipeList; - } - return resultList; - } - - - /** - * 根据患者id查询已缴费项目 - * - * @param patientId 患者id - * @param begDate 开始日期 - * @param endDate 结束日期 - * @return 已缴费项目 - */ - public static List devPaidRecipeList(String patientId, String begDate, String endDate) { - List resultList = new ArrayList<>(); - - Map params = new HashMap<>(); - params.put("PatientID", patientId); - params.put("RecipeID", ""); - params.put("StartTime", begDate); - params.put("EndTime", endDate); - JsonResult jsonResult = HisMIHelper.getJsonResult(HisMIHelper.IS_DEV, HisEnum.AP_Query_OutpatientFee, params); - - if (!jsonResult.success()) { // 请求失败 - return resultList; - } - - List hisRecipe = jsonResult.getDataMapList(HisRecipe.class, "Recipe"); - if (hisRecipe != null) { - resultList = hisRecipe; - } - return resultList; - } - -} +package com.ynxbd.common.dao.his; + +import com.ynxbd.common.bean.HisRecipe; +import com.ynxbd.common.helper.his.HisEnum; +import com.ynxbd.common.helper.his.HisHelper; +import com.ynxbd.common.helper.his.HisMIHelper; +import com.ynxbd.common.result.JsonResult; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HisMITestDao { + + /** + * [测试]查询处方 + * + * @param patientId 患者id + * @return 待付费项目 + */ + public static List devUnPayList(String patientId, int days) { + List resultList = new ArrayList<>(); + + JsonResult jsonResult = HisMIHelper.getJsonResult(HisMIHelper.IS_DEV, HisEnum.AP_Query_UnPay_Invoice, params -> { + params.put("PatientID", patientId); + params.put("IsLastWeekFlag", days <= 7 ? "1" : ""); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); + }); + + if (!jsonResult.success()) { // 失败 + return resultList; + } + + List hisRecipeList = jsonResult.getDataMapList(HisRecipe.class, "Recipe"); + if (hisRecipeList != null) { + resultList = hisRecipeList; + } + return resultList; + } + + + /** + * 根据患者id查询已缴费项目 + * + * @param patientId 患者id + * @param begDate 开始日期 + * @param endDate 结束日期 + * @return 已缴费项目 + */ + public static List devPaidRecipeList(String patientId, String begDate, String endDate) { + List resultList = new ArrayList<>(); + + Map params = new HashMap<>(); + params.put("PatientID", patientId); + params.put("RecipeID", ""); + params.put("StartTime", begDate); + params.put("EndTime", endDate); + JsonResult jsonResult = HisMIHelper.getJsonResult(HisMIHelper.IS_DEV, HisEnum.AP_Query_OutpatientFee, params); + + if (!jsonResult.success()) { // 请求失败 + return resultList; + } + + List hisRecipe = jsonResult.getDataMapList(HisRecipe.class, "Recipe"); + if (hisRecipe != null) { + resultList = hisRecipe; + } + return resultList; + } + +} diff --git a/src/main/java/com/ynxbd/common/dao/his/HisRecipeDao.java b/src/main/java/com/ynxbd/common/dao/his/HisRecipeDao.java index 4ea234a..705a446 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisRecipeDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisRecipeDao.java @@ -83,7 +83,7 @@ public class HisRecipeDao { params.put("PatientID", patientId); params.put("PersonNo", personNo); params.put("IsLastWeekFlag", days <= 7 ? "1" : ""); - params.put("CallNo", HisHelper.CALL_NO); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); }); if (!jsonResult.success()) { // 失败 @@ -103,7 +103,7 @@ public class HisRecipeDao { JsonResult jsonResult = HisMIHelper.getJsonResult(HisMIHelper.IS_PROD, HisEnum.XK_MEDICAL_RECIPE, params -> { params.put("PersonID", personID); params.put("MZNum", treatNum); - params.put("CallNo", HisHelper.CALL_NO); + params.put("CallNo", HisHelper.WECHAT_CALL_NO); params.put("CFNums", recipes); }); @@ -133,16 +133,13 @@ public class HisRecipeDao { */ public static JsonResult prepay(String patientId, String treatNum, List recipeIds, String payMoney, String payDate, String payTime, String payDeviceId, MerchantEnum merchantEnum) { - - StringBuilder recipeIdsXml = new StringBuilder(); for (String id : recipeIds) { recipeIdsXml.append("").append(id).append(""); } - return HisHelper.getJsonResult(HisEnum.AP_PrePay_Invoice_New, params -> { + return HisHelper.getJsonResultByMer(HisEnum.AP_PrePay_Invoice_New, merchantEnum, params -> { params.put("Recipe", recipeIdsXml.toString()); - params.put("PatientID", patientId); params.put("MZNum", treatNum); params.put("PayMoney", payMoney); @@ -154,7 +151,7 @@ public class HisRecipeDao { params.put("BankTransNo", UUID.randomUUID().toString().replace("-", "")); params.put("PayWay", merchantEnum.HIS_PAY_WAY); - }, merchantEnum); + }); } @@ -180,8 +177,8 @@ public class HisRecipeDao { if (ObjectUtils.isNotEmpty(feeId) && ObjectUtils.isNotEmpty(feeInfo)) { // 新版本预缴费 - log.info("[预结算]回调 feeId={}", feeId); - return HisHelper.getJsonResult(HisEnum.AP_Pay_Invoice_New, params -> { + log.info("[HIS预结算]回调 feeId={}", feeId); + return HisHelper.getJsonResultByMer(HisEnum.AP_Pay_Invoice_New, merchantEnum, params -> { params.put("PatientID", patientId); params.put("PayDate", payDate); params.put("PayTime", payTime); @@ -191,8 +188,11 @@ public class HisRecipeDao { // 预结算 params.put("FeeID", feeId); params.put("FeeInfo", feeInfo); - }, merchantEnum); + }); } +// 2025092422001440171439259286C001 + // 843242395 + // 47465565 StringBuilder recipeIdsXml = new StringBuilder(); for (String id : recipeIds) { @@ -221,7 +221,7 @@ public class HisRecipeDao { params.remove("Recipe"); params.put("PayMoney", totalFee); //如果是体检支付就传入总金额 } - return HisHelper.getJsonResult(HisEnum.AP_Pay_Invoice, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Pay_Invoice, merchantEnum, params); } diff --git a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java index 8f1dc34..36e7b8d 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java @@ -597,7 +597,7 @@ public class HisRegisterDao { params.put("ReservationTransNo", tradeNo); params.put("RecallTransNo", "R" + tradeNo); - return HisHelper.getJsonResult(HisEnum.AP_Recall_Reservation, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Recall_Reservation, merchantEnum, params); } /** @@ -609,7 +609,8 @@ public class HisRegisterDao { Map params = new HashMap<>(); params.put("TransNo", tradeNo); params.put("DelTransNo", "R" + tradeNo); - return HisHelper.getJsonResult(HisEnum.AP_Refund_Register, params, merchantEnum); + + return HisHelper.getJsonResultByMer(HisEnum.AP_Refund_Register, merchantEnum, params); } /** @@ -969,7 +970,7 @@ public class HisRegisterDao { params.put("OpenId", reg.getOpenid()); params.put("Token", WeChatConfig.TOKEN); - return HisHelper.getJsonResult(HisEnum.AP_Regist_New, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Regist_New, merchantEnum, params); } /** @@ -999,14 +1000,13 @@ public class HisRegisterDao { if (!ObjectUtils.isEmpty(reg.getSubDeptCode())) { params.put("DeptCode_YZKCode", reg.getSubDeptCode()); // 亚专科code } - if (DateHelper.isToday(regDate)) { // 今日挂号 - return HisHelper.getJsonResult(HisEnum.AP_Regist, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Regist, merchantEnum, params); } // 预约挂号 params.put("ReservationDate", regDate); - return HisHelper.getJsonResult(HisEnum.AP_Reservation, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Reservation, merchantEnum, params); } /** @@ -1016,13 +1016,12 @@ public class HisRegisterDao { * @param sourceId 号源id * @return true:是; false:否 */ - public synchronized static JsonResult isOccupySource(String patientId, String sourceId, MerchantEnum merchantEnum) { + public synchronized static JsonResult hasOccupySource(String patientId, String sourceId, MerchantEnum merchantEnum) { Map params = new HashMap<>(); - params.put("PatientID", patientId); params.put("SourceId", sourceId); params.put("TransNo", CodeHelper.get32UUID()); - return HisHelper.getJsonResult(HisEnum.AP_Occupy_Source_New, params, merchantEnum); + return HisHelper.getJsonResultByMer(HisEnum.AP_Occupy_Source_New, merchantEnum, params); } /** diff --git a/src/main/java/com/ynxbd/common/dao/his/dev/DevHisRecipeDao.java b/src/main/java/com/ynxbd/common/dao/his/dev/DevHisRecipeDao.java index f4184b1..39e5ab9 100644 --- a/src/main/java/com/ynxbd/common/dao/his/dev/DevHisRecipeDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/dev/DevHisRecipeDao.java @@ -1,6 +1,7 @@ package com.ynxbd.common.dao.his.dev; import com.ynxbd.common.bean.HisRecipe; +import com.ynxbd.common.helper.his.HisDevHelper; import com.ynxbd.common.helper.his.HisEnum; import com.ynxbd.common.helper.his.HisHelper; import com.ynxbd.common.result.JsonResult; @@ -18,10 +19,10 @@ public class DevHisRecipeDao { public List getDevUnPayRecipe(String patientId, int days) { List resultList = new ArrayList<>(); - JsonResult jsonResult = HisHelper.getDevJsonResult(HisEnum.AP_Query_UnPay_Invoice, params -> { + JsonResult jsonResult = HisDevHelper.getDevJsonResult(HisEnum.AP_Query_UnPay_Invoice, params -> { params.put("PatientID", patientId); params.put("IsLastWeekFlag", days <= 7 ? "1" : ""); - params.put("CallNo",HisHelper.CALL_NO); + params.put("CallNo",HisHelper.WECHAT_CALL_NO); }); if (!jsonResult.success()) { // 失败 diff --git a/src/main/java/com/ynxbd/common/helper/TestHelper.java b/src/main/java/com/ynxbd/common/helper/TestHelper.java index f8bdea3..9268758 100644 --- a/src/main/java/com/ynxbd/common/helper/TestHelper.java +++ b/src/main/java/com/ynxbd/common/helper/TestHelper.java @@ -1,13 +1,59 @@ package com.ynxbd.common.helper; -import org.apache.commons.codec.digest.DigestUtils; +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTCreator; +import com.auth0.jwt.algorithms.Algorithm; +import com.ynxbd.common.helper.common.JwtHelper; +import lombok.extern.slf4j.Slf4j; +import java.util.Calendar; + +@Slf4j public class TestHelper { +// public static void main(String[] args) { +// String treatNum = "1579733" + "huiyou69"; +// String key = DigestUtils.md5Hex(treatNum).toUpperCase(); +// System.out.println(key); +// String substring = key.substring(3, 12); +// System.out.println(substring); +// } + + private static final String TOKEN_KEY = "OPEN_ID"; + + /** + * 生成token + * + * @param sign 密钥 + * @return token + */ + public static String createOpenIdToken(String sign, String openId) { + try { + JWTCreator.Builder builder = JWT.create(); + builder.withClaim(TOKEN_KEY, openId); + // 有效时间 + Calendar instance = Calendar.getInstance(); + instance.add(Calendar.HOUR, 1); + builder.withExpiresAt(instance.getTime()); + return builder.sign(Algorithm.HMAC256(sign)); + } catch (Exception e) { + log.error("生成token异常:[ {} ]", e.getMessage()); + return null; + } + } + public static void main(String[] args) { - String treatNum = "1579733" + "huiyou69"; - String key = DigestUtils.md5Hex(treatNum).toUpperCase(); - System.out.println(key); - String substring = key.substring(3, 12); - System.out.println(substring); + String token = createOpenIdToken("token", "openid-123"); + System.out.println(token); + String openid = getUserOpenId(token); + System.out.println(openid); + } + + /** + * 获取userId + * + * @return userId + */ + public static String getUserOpenId(String token) { + return JwtHelper.getTokenVal(token, TOKEN_KEY, String.class); } } diff --git a/src/main/java/com/ynxbd/common/helper/common/JwtHelper.java b/src/main/java/com/ynxbd/common/helper/common/JwtHelper.java index b0f5186..8ee2046 100644 --- a/src/main/java/com/ynxbd/common/helper/common/JwtHelper.java +++ b/src/main/java/com/ynxbd/common/helper/common/JwtHelper.java @@ -5,10 +5,9 @@ import com.auth0.jwt.JWTCreator; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.interfaces.DecodedJWT; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.struts2.ServletActionContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import javax.servlet.ServletRequest; import java.util.Calendar; @@ -19,9 +18,8 @@ import java.util.Calendar; * @Author skotori * @Date 2019-11-08 11:50 */ +@Slf4j public class JwtHelper { - private static final Logger log = LoggerFactory.getLogger(JwtHelper.class); - // token头名 public static final String TOKEN_HEADER = "AuthToken"; @@ -29,6 +27,7 @@ public class JwtHelper { public static final String USER_ID = "user_id"; public static final String USERNAME = "username"; + /** * 生成token * diff --git a/src/main/java/com/ynxbd/common/helper/common/SnowHelper.java b/src/main/java/com/ynxbd/common/helper/common/SnowHelper.java index b489213..1bb9ae6 100644 --- a/src/main/java/com/ynxbd/common/helper/common/SnowHelper.java +++ b/src/main/java/com/ynxbd/common/helper/common/SnowHelper.java @@ -1,101 +1,40 @@ package com.ynxbd.common.helper.common; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.IdUtil; + /** * @author wsq * @description 雪花算法 * @date 2019/8/14 下午8:22 */ public class SnowHelper { - /** - * 起始的时间戳 - */ - private final static long START_STAMP = 3500522218L; - - /** - * 每一部分占用的位数 - */ - private final static long SEQUENCE_BIT = 12; // 序列号占用的位数 - private final static long MACHINE_BIT = 5; // 机器标识占用的位数 - private final static long DATACENTER_BIT = 5; // 数据中心占用的位数 - - /** - * 每一部分的最大值 - */ - private final static long MAX_DATACENTER_NUM = ~(-1L << DATACENTER_BIT); - private final static long MAX_MACHINE_NUM = ~(-1L << MACHINE_BIT); - private final static long MAX_SEQUENCE = ~(-1L << SEQUENCE_BIT); - - /** - * 每一部分向左的位移 - */ - private final static long MACHINE_LEFT = SEQUENCE_BIT; - private final static long DATACENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT; - private final static long TIME_STAMP_LEFT = DATACENTER_LEFT + DATACENTER_BIT; - - private long datacenterId; // 数据中心 - private long machineId; // 机器标识 - private long sequence = 0L; // 序列号 - private long lastStamp = -1L; // 上一次时间戳 - - public SnowHelper(long datacenterId, long machineId) { - if (datacenterId > MAX_DATACENTER_NUM || datacenterId < 0) { - throw new IllegalArgumentException("datacenterId can't be greater than MAX_DATACENTER_NUM or less than 0"); - } - if (machineId > MAX_MACHINE_NUM || machineId < 0) { - throw new IllegalArgumentException("machineId can't be greater than MAX_MACHINE_NUM or less than 0"); - } - this.datacenterId = datacenterId; - this.machineId = machineId; + private SnowHelper() { } - /** - * 产生下一个ID - * - */ - public synchronized long nextId() { - long curTimeStamp = getCurTime(); - if (curTimeStamp < lastStamp) { - throw new RuntimeException("Clock moved backwards. Refusing to generate id"); - } - - if (curTimeStamp == lastStamp) { - //相同毫秒内,序列号自增 - sequence = (sequence + 1) & MAX_SEQUENCE; - //同一毫秒的序列数已经达到最大 - if (sequence == 0L) { - curTimeStamp = getNextMill(); - } - } else { - //不同毫秒内,序列号置为0 - sequence = 0L; - } - - lastStamp = curTimeStamp; + private static Snowflake snowflake = null; - return (curTimeStamp - START_STAMP) << TIME_STAMP_LEFT //时间戳部分 - | datacenterId << DATACENTER_LEFT //数据中心部分 - | machineId << MACHINE_LEFT //机器标识部分 - | sequence; //序列号部分 + private synchronized static void createSnowflake() { + snowflake = IdUtil.getSnowflake(0, 0); } - private long getNextMill() { - long mill = getCurTime(); - while (mill <= lastStamp) { - mill = getCurTime(); + public static Long nextId() { + if (snowflake == null) { + createSnowflake(); } - return mill; + return snowflake.nextId(); } - private long getCurTime() { - return System.currentTimeMillis(); + public static String nextStrId() { + if (snowflake == null) { + createSnowflake(); + } + return String.valueOf(snowflake.nextId()); } public static void main(String[] args) { - SnowHelper snowFlake = new SnowHelper(2, 3); - for (int i = 0; i < (1 << 12); i++) { - System.out.println(snowFlake.nextId()); + for (int i = 0; i < 10; i++) { + System.out.println(nextId()); } } - - } \ No newline at end of file diff --git a/src/main/java/com/ynxbd/common/helper/common/SoapHelper.java b/src/main/java/com/ynxbd/common/helper/common/SoapHelper.java index 239ea13..976a943 100644 --- a/src/main/java/com/ynxbd/common/helper/common/SoapHelper.java +++ b/src/main/java/com/ynxbd/common/helper/common/SoapHelper.java @@ -1,6 +1,7 @@ package com.ynxbd.common.helper.common; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -158,7 +159,7 @@ public class SoapHelper { * @param params 数据 * @return 组合好的请求xml数据 */ - public static String requestParams(String sys, Map params) { + public static String requestParams(String sys, String reqCode, String reqId, Map params) { StringBuilder paramsXml = new StringBuilder(); String key; Object value; @@ -170,7 +171,7 @@ public class SoapHelper { paramsXml.append("<").append(key).append(">").append(value).append(""); } - log.info("{} " + paramsXml + "", sys); + log.info("{}{}[rid:{}]{}", ObjectUtils.isEmpty(reqCode) ? "" : "[" + reqCode + "]", sys, reqId, paramsXml); return paramsXml.toString(); } } diff --git a/src/main/java/com/ynxbd/common/helper/his/HisDevHelper.java b/src/main/java/com/ynxbd/common/helper/his/HisDevHelper.java new file mode 100644 index 0000000..b48d31c --- /dev/null +++ b/src/main/java/com/ynxbd/common/helper/his/HisDevHelper.java @@ -0,0 +1,50 @@ +package com.ynxbd.common.helper.his; + +import com.ynxbd.common.result.JsonResult; +import com.ynxbd.common.result.JsonResultEnum; + +import java.util.HashMap; +import java.util.Map; + +public class HisDevHelper { + + // 测试环境--------------------------------------------------------------------------- + /** + * 测试环境 + * + * @param hisEnum 枚举 + * @param params 发送的参数 + * @return 响应的xml数据 + */ + public static String getDevResponseXml(HisEnum hisEnum, Map params) { + return HisHelper.getResponseXml(hisEnum, HisHelper.HIS_SOAP_DEV_URL, params); + } + + + /** + * xml响应数据组装成为JSON数据 + * + * @return 封装好的对象 + */ + public static JsonResult getDevJsonResult(HisEnum hisEnum, Map params) { + JsonResult result = JsonResult.xmlToBean(getDevResponseXml(hisEnum, params), JsonResultEnum.SYS_HIS); + if (result == null) { // 如果返回为空可能为超时 + return HisHelper.createTimeoutResult(); + } + return result; + } + + /** + * xml响应数据组装成为JSON数据 + * + * @return 封装好的对象 + */ + public static JsonResult getDevJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { + Map requestParams = new HashMap<>(); + if (params != null) { + params.setParams(requestParams); + } + return getDevJsonResult(hisEnum, requestParams); + } + +} diff --git a/src/main/java/com/ynxbd/common/helper/his/HisHelper.java b/src/main/java/com/ynxbd/common/helper/his/HisHelper.java index 0be4a2d..4dad622 100644 --- a/src/main/java/com/ynxbd/common/helper/his/HisHelper.java +++ b/src/main/java/com/ynxbd/common/helper/his/HisHelper.java @@ -6,6 +6,7 @@ import com.ynxbd.common.bean.pay.Order; import com.ynxbd.common.helper.ProperHelper; import com.ynxbd.common.helper.common.CodeHelper; import com.ynxbd.common.helper.common.ErrorHelper; +import com.ynxbd.common.helper.common.SnowHelper; import com.ynxbd.common.helper.common.SoapHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResultEnum; @@ -25,10 +26,10 @@ import java.util.Map; public class HisHelper { public static final String SOAP_ENV = " params) { +// if (merchantEnum == null) return; +// +// if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) { +// params.put("CallNo", ALI_CALL_NO); // } -// return null; // } @@ -144,30 +130,6 @@ public class HisHelper { return getResponseXml(hisEnum, HIS_SOAP_URL, params); } - /** - * webService请求工具类(枚举版) - * - * @param hisEnum 枚举 - * @param params 发送的参数 - * @param merchantEnum 支付宝标志 - * @return 响应的xml数据 - */ - public static String getResponseXml(HisEnum hisEnum, Map params, MerchantEnum merchantEnum) { - return getResponseXml(hisEnum, HIS_SOAP_URL, params, merchantEnum); - } - - - /** - * 测试环境 - * - * @param hisEnum 枚举 - * @param params 发送的参数 - * @return 响应的xml数据 - */ - public static String getDevResponseXml(HisEnum hisEnum, Map params) { - return getResponseXml(hisEnum, HIS_SOAP_DEV_URL, params); - } - /** * webService请求工具类(枚举版) * @@ -176,77 +138,71 @@ public class HisHelper { * @return 响应的xml数据 */ public static String getResponseXml(HisEnum hisEnum, String soapUrl, Map params) { - return getResponseXmlForCallNo(hisEnum, soapUrl, params, MerchantEnum.WX); + return getResponseXmlForCallNo(hisEnum, soapUrl, params); } - public static String getResponseXml(HisEnum hisEnum, String soapUrl, Map params, MerchantEnum merchantEnum) { - return getResponseXmlForCallNo(hisEnum, soapUrl, params, merchantEnum); - } /** * webService请求工具类(枚举版) * - * @param hisEnum 枚举 - * @param soapUrl 路径 - * @param params 参数 - * @param merchantEnum 来源 + * @param hisEnum 枚举 + * @param soapUrl 路径 + * @param params 参数 * @return 响应xml */ - public static String getResponseXmlForCallNo(HisEnum hisEnum, String soapUrl, Map params, MerchantEnum merchantEnum) { + public static String getResponseXmlForCallNo(HisEnum hisEnum, String soapUrl, Map params) { String method = hisEnum.METHOD; String transactionCode = hisEnum.CODE; if (params == null || transactionCode == null || method == null) { - log.info("WebService-{ map | transactionCode | method 为空 }"); + log.info("[WebService]-{ map | transactionCode | method 为空 }"); return null; } Object callNo = params.get("CallNo"); - if (params.get("CallNo") == null || "".equals(callNo)) { - params.put("CallNo", CALL_NO); - } - if ("ali".equals(merchantEnum.CODE) && !"".equals(ALI_CALL_NO)) { - params.put("CallNo", ALI_CALL_NO); + if (ObjectUtils.isEmpty(callNo)) { + params.put("CallNo", WECHAT_CALL_NO); } params.put("TransactionCode", transactionCode); String result = null; try { + String reqId = SnowHelper.nextStrId(); long begTime = System.currentTimeMillis(); // 开始时间 String hisResponse = SoapHelper.post("HIS", soapUrl, null, SOAP_ENV + "xmlns:urn=\"urn:Interface_ABIntf-IInterface_AB\">" + "" + "" + - "" + SoapHelper.requestParams("HIS", params) + "" + + "" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "" + "" ); long endTime = System.currentTimeMillis(); // 结束时间 String takeTime = (endTime - begTime) + "ms"; // 耗时 if (hisResponse == null) { - log.info("HIS请求无响应[{}]-耗时:[{}]", transactionCode, takeTime); + log.info("[{}]HIS请求无响应[rid:{}]-耗时:[{}]", transactionCode, reqId, takeTime); return null; } //解析响应消息,使用SAXReader对象 org.dom4j.Document document = DocumentHelper.parseText(hisResponse); if (document == null) { - log.info("HIS响应内容解析失败[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, hisResponse); + log.info("[{}]HIS响应内容解析失败[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, hisResponse); return null; } List nodes = document.selectNodes("//return"); if (nodes.isEmpty()) { - log.info("HIS请求失败[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, hisResponse); + log.info("[{}]HIS请求失败[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, hisResponse); return null; } Element element = (Element) nodes.get(0); result = element.getText(); if (hisEnum.IS_LOG_RESP) { // 是否打印返回的xml - log.info("HIS请求成功[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, result); + log.info("[{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result); } else { if (IS_LOG_RESP) { // 配置文件强制要求打印xml if (!HisEnum.AP_Query_Statement.equals(hisEnum) && !HisEnum.Query_Area.equals(hisEnum)) { - log.info("[强制打印]HIS请求成功[{}]-耗时:[{}]-返回xml={}", transactionCode, takeTime, result); + log.info("[强制打印][{}]HIS请求成功[rid:{}]-耗时:[{}]-返回xml={}", transactionCode, reqId, takeTime, result); } } } @@ -260,43 +216,6 @@ public class HisHelper { } -// /** -// * xml响应数据组装成为JSON数据 -// * -// * @param xml xml -// * @return 封装好的对象 -// */ -// public static HisResult xmlToBean(String xml) { -// if (xml == null || "".equals(xml)) { -// log.info("HIS response xml is null"); -// return HisResult.createErrorHisResult("[HIS]获取xml数据失败"); -// } -// -// JSONObject respObj; -// try { -// Document document = DocumentHelper.parseText(xml); -// Element root = document.getRootElement(); // 获取根节点元素对象 -// respObj = HisResult.nodeToJsonObject(root); -// Map map = new HashMap<>(); -// Set keys = respObj.keySet(); -// for (String key : keys) { -// if (!key.equals("TransactionCode") && !key.equals("ResponseCode") && !key.equals("ResponseMessage") && !key.equals("PatientName")) { -// map.put(key, respObj.getString(key)); -// } -// } -// respObj.put("DataMap", map); -// } catch (DocumentException e) { -// ErrorHelper.println(e); -// return HisResult.createErrorHisResult(e.getMessage()); -// } -// HisResult hisResult = JSON.toJavaObject(respObj, HisResult.class); -// if (hisResult.getResponseCode() != 0) { -// log.info("HIS Error Message:[{}]", hisResult.getResponseMessage()); -// } -// return hisResult; -// } - - /** * xml响应数据组装成为JSON数据 * @@ -310,20 +229,12 @@ public class HisHelper { return result; } - /** - * [支付宝] xml响应数据组装成为JSON数据 - * - * @param hisEnum 接口枚举 - * @param params 参数 - * @param merchantEnum 支付类型 - * @return JsonResult - */ - public static JsonResult getJsonResult(HisEnum hisEnum, Map params, MerchantEnum merchantEnum) { - JsonResult result = JsonResult.xmlToBean(getResponseXml(hisEnum, params, merchantEnum), JsonResultEnum.SYS_HIS); - if (result == null) { // 如果返回为空可能为超时 - return createTimeoutResult(); + public static void putAliCallNo(MerchantEnum merchantEnum, Map params) { + if (IS_ALI_MER && params != null && merchantEnum != null) { + if (merchantEnum.equals(MerchantEnum.ALI) || merchantEnum.equals(MerchantEnum.ALI_MEDICAL)) { + params.put("CallNo", ALI_CALL_NO); + } } - return result; } /** @@ -331,55 +242,39 @@ public class HisHelper { * * @return 封装好的对象 */ - public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { - Map requestParams = new HashMap<>(); - if (params != null) { - params.setParams(requestParams); - } - return getJsonResult(hisEnum, requestParams); + public static JsonResult getJsonResultByMer(HisEnum hisEnum, MerchantEnum merchantEnum, Map params) { + putAliCallNo(merchantEnum, params); + return getJsonResult(hisEnum, params); } +// 4004 +// 675448357 +// 843242395 /** * xml响应数据组装成为JSON数据 * * @return 封装好的对象 */ - public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params, MerchantEnum merchantEnum) { + public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { Map requestParams = new HashMap<>(); if (params != null) { params.setParams(requestParams); } - return getJsonResult(hisEnum, requestParams, merchantEnum); + return getJsonResult(hisEnum, requestParams); } - // --------------------------------------------------------------------------- - // 测试环境 - /** * xml响应数据组装成为JSON数据 * * @return 封装好的对象 */ - public static JsonResult getDevJsonResult(HisEnum hisEnum, Map params) { - JsonResult result = JsonResult.xmlToBean(getDevResponseXml(hisEnum, params), JsonResultEnum.SYS_HIS); - if (result == null) { // 如果返回为空可能为超时 - return createTimeoutResult(); - } - return result; - } - - /** - * xml响应数据组装成为JSON数据 - * - * @return 封装好的对象 - */ - public static JsonResult getDevJsonResult(HisEnum hisEnum, JsonResult.MapParams params) { + public static JsonResult getJsonResultByMer(HisEnum hisEnum, MerchantEnum merchantEnum, JsonResult.MapParams params) { Map requestParams = new HashMap<>(); if (params != null) { params.setParams(requestParams); } - return getDevJsonResult(hisEnum, requestParams); + return getJsonResultByMer(hisEnum, merchantEnum, requestParams); } @@ -419,4 +314,93 @@ public class HisHelper { return sb.toString(); } + + // /** +// * [支付宝] xml响应数据组装成为JSON数据 +// * +// * @param hisEnum 接口枚举 +// * @param params 参数 +// * @param merchantEnum 支付类型 +// * @return JsonResult +// */ +// public static JsonResult getJsonResult(HisEnum hisEnum, Map params, MerchantEnum merchantEnum) { +// JsonResult result = JsonResult.xmlToBean(getResponseXml(hisEnum, params, merchantEnum), JsonResultEnum.SYS_HIS); +// if (result == null) { // 如果返回为空可能为超时 +// return createTimeoutResult(); +// } +// return result; +// } + +// /** +// * xml响应数据组装成为JSON数据 +// * +// * @return 封装好的对象 +// */ +// public static JsonResult getJsonResult(HisEnum hisEnum, JsonResult.MapParams params, MerchantEnum merchantEnum) { +// Map requestParams = new HashMap<>(); +// if (params != null) { +// params.setParams(requestParams); +// } +// return getJsonResult(hisEnum, requestParams, merchantEnum); +// } + + + // /** +// * 根据订单号获取类型 +// * +// * @param bankTransNo 交易流水号 +// * @param tradeNo HIS订单号 +// * @return 类型 +// */ +// public static String getTypeByPEnum(String bankTransNo, String tradeNo) throws ServiceException { +// if (!PayService.isNewOrder(bankTransNo, tradeNo)) { +// throw new ServiceException(ResultEnum.REFUND_IS_OLD_ORDER_NUM); +// } +// int len = tradeNo.length(); +// String middleCode1 = tradeNo.substring(len - 4, len - 3); +// String middleCode2 = tradeNo.substring(len - 4, len - 2); +// for (PEnum item : PEnum.values()) { +// if (item.ORDER_CODE.equals(middleCode1) || item.ORDER_CODE.equals(middleCode2)) { +// return item.CODE; +// } +// } +// return null; +// } + + +// /** +// * xml响应数据组装成为JSON数据 +// * +// * @param xml xml +// * @return 封装好的对象 +// */ +// public static HisResult xmlToBean(String xml) { +// if (xml == null || "".equals(xml)) { +// log.info("HIS response xml is null"); +// return HisResult.createErrorHisResult("[HIS]获取xml数据失败"); +// } +// +// JSONObject respObj; +// try { +// Document document = DocumentHelper.parseText(xml); +// Element root = document.getRootElement(); // 获取根节点元素对象 +// respObj = HisResult.nodeToJsonObject(root); +// Map map = new HashMap<>(); +// Set keys = respObj.keySet(); +// for (String key : keys) { +// if (!key.equals("TransactionCode") && !key.equals("ResponseCode") && !key.equals("ResponseMessage") && !key.equals("PatientName")) { +// map.put(key, respObj.getString(key)); +// } +// } +// respObj.put("DataMap", map); +// } catch (DocumentException e) { +// ErrorHelper.println(e); +// return HisResult.createErrorHisResult(e.getMessage()); +// } +// HisResult hisResult = JSON.toJavaObject(respObj, HisResult.class); +// if (hisResult.getResponseCode() != 0) { +// log.info("HIS Error Message:[{}]", hisResult.getResponseMessage()); +// } +// return hisResult; +// } } diff --git a/src/main/java/com/ynxbd/common/helper/his/HisMIHelper.java b/src/main/java/com/ynxbd/common/helper/his/HisMIHelper.java index 767ea55..bf022ca 100644 --- a/src/main/java/com/ynxbd/common/helper/his/HisMIHelper.java +++ b/src/main/java/com/ynxbd/common/helper/his/HisMIHelper.java @@ -1,5 +1,6 @@ package com.ynxbd.common.helper.his; +import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResultEnum; @@ -18,7 +19,7 @@ public class HisMIHelper { * @param params 发送的参数 * @return 响应的xml数据 */ - public static String getResponseXml(boolean isDev, HisEnum hisEnum, Map params) { + private static String getResponseXml(boolean isDev, HisEnum hisEnum, Map params) { return HisHelper.getResponseXml(hisEnum, isDev ? HisHelper.HIS_DEV_MI_URL : HisHelper.HIS_PROD_MI_URL, params); } @@ -27,7 +28,9 @@ public class HisMIHelper { * * @return 封装好的对象 */ - public static JsonResult getJsonResult(boolean isDev, HisEnum hisEnum, Map params) { + public static JsonResult getJsonResultByMer(boolean isDev, HisEnum hisEnum, MerchantEnum merchantEnum, Map params) { + HisHelper.putAliCallNo(merchantEnum, params); + JsonResult result = JsonResult.xmlToBean(getResponseXml(isDev, hisEnum, params), JsonResultEnum.SYS_HIS); if (result == null) { // 如果返回为空可能为超时 return HisHelper.createTimeoutResult(); @@ -40,11 +43,31 @@ public class HisMIHelper { * * @return 封装好的对象 */ - public static JsonResult getJsonResult(boolean isDev, HisEnum hisEnum, JsonResult.MapParams params) { + public static JsonResult getJsonResult(boolean isDev, HisEnum hisEnum, Map params) { + return getJsonResultByMer(isDev, hisEnum, null, params); + } + + /** + * xml响应数据组装成为JSON数据 + * + * @return 封装好的对象 + */ + public static JsonResult getJsonResultByMer(boolean isDev, HisEnum hisEnum, MerchantEnum merchantEnum, JsonResult.MapParams params) { Map requestParams = new HashMap<>(); if (params != null) { params.setParams(requestParams); } - return getJsonResult(isDev, hisEnum, requestParams); + return getJsonResultByMer(isDev, hisEnum, merchantEnum, requestParams); } + + /** + * xml响应数据组装成为JSON数据 + * + * @return 封装好的对象 + */ + public static JsonResult getJsonResult(boolean isDev, HisEnum hisEnum, JsonResult.MapParams params) { + return getJsonResultByMer(isDev, hisEnum, null, params); + } + + } diff --git a/src/main/java/com/ynxbd/common/helper/lis/RMLisHelper.java b/src/main/java/com/ynxbd/common/helper/lis/RMLisHelper.java index 7397e61..3b511b7 100644 --- a/src/main/java/com/ynxbd/common/helper/lis/RMLisHelper.java +++ b/src/main/java/com/ynxbd/common/helper/lis/RMLisHelper.java @@ -3,6 +3,7 @@ package com.ynxbd.common.helper.lis; import com.ynxbd.common.helper.ProperHelper; import com.ynxbd.common.helper.common.ErrorHelper; import com.ynxbd.common.helper.common.FileHelper; +import com.ynxbd.common.helper.common.SnowHelper; import com.ynxbd.common.helper.common.SoapHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResultEnum; @@ -26,15 +27,15 @@ public class RMLisHelper { static { ProperHelper config = new ProperHelper().read("webservice.properties"); String url = config.getString("lis.url"); - Boolean unifiedEntrance = config.getBoolean("lis.unifiedEntrance",false); - IS_LOG_RESP = config.getBoolean("lis.is_log_resp",false); + Boolean unifiedEntrance = config.getBoolean("lis.unifiedEntrance", false); + IS_LOG_RESP = config.getBoolean("lis.is_log_resp", false); if (url == null) { LIS_SOAP_URL = null; log.error("Lis配置文件读取失败"); - } else if(unifiedEntrance==false){ + } else if (!unifiedEntrance) { LIS_SOAP_URL = "http://" + url + "/LisReportServics.asmx?wsdl"; - }else { + } else { LIS_SOAP_URL = "http://" + url + "/LisReportServics.asmx?UnifiedEntrance"; } } @@ -54,6 +55,7 @@ public class RMLisHelper { String result; try { + String reqId = SnowHelper.nextStrId(); long begTime = System.currentTimeMillis(); // 开始时间 String responseXml = SoapHelper.post("RMLis", LIS_SOAP_URL, null, "" + @@ -61,7 +63,7 @@ public class RMLisHelper { "" + "" + method + "" + "1" + - "" + SoapHelper.requestParams("RMLis", params) + "]]>" + + "" + SoapHelper.requestParams("RMLis", null, reqId, params) + "]]>" + "" ); diff --git a/src/main/java/com/ynxbd/common/helper/xbd/XBDEnum.java b/src/main/java/com/ynxbd/common/helper/xbd/XBDEnum.java index 9c4381c..208c45e 100644 --- a/src/main/java/com/ynxbd/common/helper/xbd/XBDEnum.java +++ b/src/main/java/com/ynxbd/common/helper/xbd/XBDEnum.java @@ -34,13 +34,15 @@ public enum XBDEnum { /** * [病案翻拍] 停止预约 */ - BLSM_Appointment_StopAppointment("BLSM_Appointment_StopAppointment","停止预约"); + BLSM_Appointment_StopAppointment("BLSM_Appointment_StopAppointment","停止预约"), - public final String Name; - public final String Description; + Test_ImportImage("Test_ImportImage","图片测试"); - XBDEnum(String Name, String Description) { - this.Name = Name; - this.Description = Description; + public final String NAME; + public final String DESCRIPTION; + + XBDEnum(String NAME, String DESCRIPTION) { + this.NAME = NAME; + this.DESCRIPTION = DESCRIPTION; } } diff --git a/src/main/java/com/ynxbd/common/result/JsonResult.java b/src/main/java/com/ynxbd/common/result/JsonResult.java index 431ebf5..c5134e6 100644 --- a/src/main/java/com/ynxbd/common/result/JsonResult.java +++ b/src/main/java/com/ynxbd/common/result/JsonResult.java @@ -137,7 +137,7 @@ public class JsonResult { Map map = new HashMap<>(); Set keys = respObj.keySet(); for (String key : keys) { - if (ignoreParams != null && ignoreParams.length > 0) { + if (ignoreParams != null) { for (String ignoreParam : ignoreParams) { if (key.equals(ignoreParam)) { break; @@ -154,7 +154,6 @@ public class JsonResult { } map.put(key, respObj.getString(key)); } - result.setDataMap(map); result.dataMap = map; result.successCode = jsonResultEnum.getSUCCESS_CODE(); if (jsonResultEnum.getTIMEOUT_CODE() == null) { diff --git a/src/main/java/com/ynxbd/common/service/CasebookService.java b/src/main/java/com/ynxbd/common/service/CasebookService.java index 65942d9..7313d27 100644 --- a/src/main/java/com/ynxbd/common/service/CasebookService.java +++ b/src/main/java/com/ynxbd/common/service/CasebookService.java @@ -115,7 +115,7 @@ public class CasebookService { log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId); try { - String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.NAME, params -> { params.put("borrowNo", casebookId); params.put("payDateTime", DateHelper.getCurDateTime()); }); diff --git a/src/main/java/com/ynxbd/common/service/MedicalService.java b/src/main/java/com/ynxbd/common/service/MedicalService.java index d462e51..ef31286 100644 --- a/src/main/java/com/ynxbd/common/service/MedicalService.java +++ b/src/main/java/com/ynxbd/common/service/MedicalService.java @@ -1,8 +1,9 @@ package com.ynxbd.common.service; import com.alibaba.fastjson.JSONObject; +import com.alipay.api.response.AlipayTradeRefundApplyResponse; import com.ynxbd.ali.config.AliMIConfig; -import com.ynxbd.ali.helper.AliMedicalHelper; +import com.ynxbd.ali.helper.AliMIHelper; import com.ynxbd.common.action.pay.PEnum; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.*; @@ -215,9 +216,9 @@ public class MedicalService { throw new ServiceException("【支付宝】医保授权码medicalCardId为空"); } - Order order = hasDBOrder ? AliMedicalHelper.queryTrade(outTradeNo, null) : new Order(); + Order order = hasDBOrder ? AliMIHelper.queryTrade(outTradeNo, null) : new Order(); String notifyUrl = WeChatConfig.getHttpsBaseUrl() + merchantEnum.getNotifyUrl(outTradeNo, notifyType); - Map map = AliMedicalHelper.createOrder(orderMIEnum, + Map map = AliMIHelper.createOrder(orderMIEnum, openid, outTradeNo, chrgBchno, @@ -723,7 +724,7 @@ public class MedicalService { } else { // 支付宝 - String respBody = AliMedicalHelper.refundTrade(outTradeNo, outRefundNo, tradeNo, cashFee, "线上退费"); + AlipayTradeRefundApplyResponse respBody = AliMIHelper.refundTrade(outTradeNo, outRefundNo, tradeNo, cashFee, "线上退费"); boolean isOk = respBody != null; log.info("[支付宝][处方][现金]退费{} outTradeNo={}, bankTransNo={}, tradeNo={}", (isOk ? "成功" : "失败"), outTradeNo, bankTransNo, tradeNo); if (isOk) { diff --git a/src/main/java/com/ynxbd/common/service/MiddleOfficeService.java b/src/main/java/com/ynxbd/common/service/MiddleOfficeService.java index ef24933..1f6ce8f 100644 --- a/src/main/java/com/ynxbd/common/service/MiddleOfficeService.java +++ b/src/main/java/com/ynxbd/common/service/MiddleOfficeService.java @@ -1,6 +1,7 @@ package com.ynxbd.common.service; import com.ynxbd.common.bean.enums.HospEnum; +import com.ynxbd.common.helper.common.SnowHelper; import com.ynxbd.common.helper.common.SoapHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResultEnum; @@ -18,7 +19,8 @@ public class MiddleOfficeService { try { if (HospEnum.红河州人民医院.isHosp()) { if (MiddleOfficeConfig.MIDDLE_OFFICE_URL != null) { //平台数据上传 - MiddleOfficeConfig.run(soapUrl, "" + SoapHelper.requestParams("HIS", params) + "", hisSoapMdUrl, transactionCode, result); + String reqId = SnowHelper.nextStrId(); + MiddleOfficeConfig.run(soapUrl, "" + SoapHelper.requestParams("HIS", null, reqId, params) + "", hisSoapMdUrl, transactionCode, result); if ("7004".equals(transactionCode) && JsonResult.xmlToBean(result, JsonResultEnum.SYS_HIS) != null) { MiddleOfficeConfig.uploadTreatNum("JH0104", Objects.requireNonNull(JsonResult.xmlToBean(result, JsonResultEnum.SYS_HIS)).getDataMapString("MZNum")); } diff --git a/src/main/java/com/ynxbd/common/service/OutCollectService.java b/src/main/java/com/ynxbd/common/service/OutCollectService.java index d8d1d71..1265d92 100644 --- a/src/main/java/com/ynxbd/common/service/OutCollectService.java +++ b/src/main/java/com/ynxbd/common/service/OutCollectService.java @@ -21,7 +21,7 @@ public class OutCollectService { /** * [外采]扫收款码支付 */ - public Order ocPayMicro(Order order, String brCode, String cardNo) { + public Order createOCPayMicro(Order order, String brCode, String cardNo) { Order oResult = new Order(); PayOutCollect addInfo = CopyHelper.fatherToChild(order, PayOutCollect.class); addInfo.setBarCode(brCode); @@ -37,9 +37,9 @@ public class OutCollectService { /** * [外采]支付 * - * @param totalFee + * @param totalFee 金额 */ - public void ocPay(String outTradeNo, BigDecimal totalFee, String collectId, String openid, String mid, String name, String cardNo, String patientId, String remark) throws ServiceException { + public void creatorOCOrder(String outTradeNo, BigDecimal totalFee, String collectId, String openid, String mid, String name, String cardNo, String patientId, String remark) throws ServiceException { log.info("collectId={}, mid={}, name={}, cardNo={}, patientId={}, remark={}", collectId, mid, name, cardNo, patientId, remark); if (ObjectUtils.isEmpty(collectId) || ObjectUtils.isEmpty(mid) || ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(cardNo)) { throw new ServiceException(ResultEnum.PARAM_IS_DEFECT); @@ -76,7 +76,7 @@ public class OutCollectService { map.put("payAmount", totalFee); map.put("bankTransNo", bankTransNo); }); - log. info("[外采]回调 resp={}", resp); + log.info("[外采]回调 resp={}", resp); if (resp == null) { throw new ServiceException("[外采]回调请求失败"); } @@ -96,7 +96,7 @@ public class OutCollectService { /** * [外采]回调通知 */ - public void ocPayNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo) throws ServiceException { + public void ocPaidNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo) throws ServiceException { OutCollectPayDao ocPayDao = new OutCollectPayDao(); PayOutCollect ocPay = ocPayDao.selectByOutTradeNo(outTradeNo); diff --git a/src/main/java/com/ynxbd/common/service/PayService.java b/src/main/java/com/ynxbd/common/service/PayService.java index d7f882a..c794dc8 100644 --- a/src/main/java/com/ynxbd/common/service/PayService.java +++ b/src/main/java/com/ynxbd/common/service/PayService.java @@ -80,7 +80,7 @@ public class PayService { break; case OUT_COLLECT: - new OutCollectService().ocPayNotify(MerchantEnum.WX, openid, totalFee, outTradeNo, bankTransNo, payInfo); + new OutCollectService().ocPaidNotify(MerchantEnum.WX, openid, totalFee, outTradeNo, bankTransNo, payInfo); break; case OL_REG: diff --git a/src/main/java/com/ynxbd/common/service/RecipeService.java b/src/main/java/com/ynxbd/common/service/RecipeService.java index 1396176..8a697b5 100644 --- a/src/main/java/com/ynxbd/common/service/RecipeService.java +++ b/src/main/java/com/ynxbd/common/service/RecipeService.java @@ -154,11 +154,11 @@ public class RecipeService { * @param treatNum 门诊号 * @return 是否完成操作 */ - public List hisRecipePrepay(String recipeJson, String patientId, String treatNum) { + public List hisRxPrepay(String recipeJson, String patientId, String treatNum) { log.info("[处方]预结算 patientId={}, treatNum={}, recipeJson={}", patientId, treatNum, recipeJson); List respList = new ArrayList<>(); List recipeList = JsonHelper.parseArray(recipeJson, Recipe.class); - if (recipeList == null || recipeList.size() == 0) { + if (recipeList == null || recipeList.isEmpty()) { log.info("[处方]预结算勾选处方数量为0 或 数据转换失败"); return respList; } @@ -434,6 +434,7 @@ public class RecipeService { recipe.getFeeId(), recipe.getFeeInfo()); + log.info("[处方]结算返回 resp={}", JsonHelper.toJsonString(response)); String respCode = response.getCode(); String respMessage = response.getMessage(); diff --git a/src/main/java/com/ynxbd/common/service/RegService.java b/src/main/java/com/ynxbd/common/service/RegService.java index 0c2d1b2..158ce12 100644 --- a/src/main/java/com/ynxbd/common/service/RegService.java +++ b/src/main/java/com/ynxbd/common/service/RegService.java @@ -698,7 +698,7 @@ public class RegService { String sourceId = reg.getSourceId(); // 占用查询开关被开启 if (isOccupySource != null && isOccupySource) { - JsonResult result = HisRegisterDao.isOccupySource(patientId, sourceId, merchantEnum); + JsonResult result = HisRegisterDao.hasOccupySource(patientId, sourceId, merchantEnum); if (!result.success()) { return Result.error(result.getMessage()); } diff --git a/src/main/java/com/ynxbd/wx/wxfactory/WxAuthHelper.java b/src/main/java/com/ynxbd/wx/wxfactory/WxAuthHelper.java index c97c3dc..16865b1 100644 --- a/src/main/java/com/ynxbd/wx/wxfactory/WxAuthHelper.java +++ b/src/main/java/com/ynxbd/wx/wxfactory/WxAuthHelper.java @@ -125,6 +125,7 @@ public class WxAuthHelper { HttpSession session = request.getSession(); Object openid = session.getAttribute("openid"); + if (openid != null) { User user = WxCacheHelper.getCacheUser((String) openid); if (user == null) { diff --git a/src/main/resources/ali.properties b/src/main/resources/ali.properties index b701e87..f2794aa 100644 --- a/src/main/resources/ali.properties +++ b/src/main/resources/ali.properties @@ -1,42 +1,11 @@ -ali.is_log=true ali.is_enable=true -# \u6D88\u606F\u63A8\u9001 -ali.is_push_msg=true -# \u7CFB\u7EDF\u5546\u7B7E\u7EA6\u534F\u8BAE\u7684PID-\u516C\u53F8isv_pid\uFF08\u552F\u4E00\uFF09 +# 消息推送 +ali.is_push_msg=false +# 公司ISV_PID(唯一) ali.isv_partner_id=2088041605229629 -#----------------------------------------- -# appid\uFF08\u548C\u5546\u6237\u76F8\u5173-\u94B1\u5230\u7684\u5730\u65B9\uFF09 -ali.app_id=2021003163655042 -# \u533B\u9662\u8D26\u53F7id = \u5546\u6237pid -ali.hosp_id=2088541276656015 +#---------------------------------- +ali.app_id=2021002128669589 # \u5E94\u7528\u516C\u94A5->\u652F\u4ED8\u5B9D\u516C\u94A5 -ali.public_key=miibijanbgkqhkig9w0baqefaaocaq8amiibcgkcaqeaiirkzafc4fuxbmtprisjiy/ongxhpkpqemhqjroehgydcd+fwsqmi4cougift27vktqokw23df2mnhjws/nbofswgqdkbstjr2eqhnmzhkyf6d30wnb1c19ocdrburaeaotctt7equamnz5updzpv5w6qoh1nwysshuoyzxdhpwsanjrw5a3gdsqtodikoxgfzrvw7yzszbtwsvnrezk7yxyi2nxalnehquoypbxe6a30kjcehlze9dn3eaho5/h2o3xxgqiunwltkqrc5uo785e6b7eyuswl2cky3eauguaiidzdkslavi+5bgfwhhexgskf4bd1acapc9bhmgiwwidaqab +ali.public_key=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAg//Py3c3G+g2cVQTvEZ7Er1QY3woI31myGiez2tgs6thVPA5WJ+mjAxp0ZdqPNvgm7/fCRQtX2LcYmk5YGwcTW5JjAAYvW4ebyj9BtfJJ4UoDF7lC7WVtojtosCZ8xMQApISYhZaR694jolyyZbXWUCGP81GfZpaM+/ZQ5pzkVgZLpmpffXR8xlw68h59l74sYsGraofoZaNfx5LlnNm0cBi8v0cz0x2tkRDlD3+5iooVccGBxxoRhHyTxxLRq+8O9i/rdxWPHQWlzPQxFohyTF8+9diRSa8cDFuqqJV/JiiaU8wCojfS6cIcso/07zYkvgoTUzkFkIahUi7JjxbZQIDAQAB # \u5E94\u7528\u79C1\u94A5 -ali.app_private_key=miievgibadanbgkqhkig9w0baqefaascbkgwggskageaaoibaqdni1a+z5ha7msqjeim11covr3m0faybpsx82cmgh1soquq98mrtgybmj44fzitezkqsyu0auwbzke35aquncgdop9k0q5eeok4pzzo6dxgcp6gzsd/p6tiynaoqrxuroxy45stzvv32g/ufb6h9t2htx+qn33d0mnqtklm1buqim1iobnbsjmcrdbkewfx32qxxqxzeoq9eepphu7yuigohjya5tvpd6mykd7bwph6fvgy8rpl7shr+iwzt4kmq+qkyi5a93z51qa41d+i12hwgr4je25rlu6arhuoxu9uvzd57zsckn5wx6zkud+k6khklinv7utyqbrrrdiqsmlhagmbaaecggebamrptuyc96iev1q7woukxsmfwlezl8sjwklu63vezrro6r4bjdxyniozzmen/cqumuywcwjndksxzsncvt2pdsktkrcmh3k825dtcdati1ofstqdxd2uugt8u9l26c6i8rrkd9lcxdw8zzdlufvpphcnlzkg/ao9gwtkykwuqzzuimewk9rllgorp7bqxgth8r2cutdylzbue2aq2w3pf0xkhpkg82cgwmtnxhjbxfhoo+3ciyta5ncrymzc+icuqwersdktctp1+s83aks6cya66rxzlp2rz3eb2n4maj+y+dodkju4gok7askmxth+wgwwqxbvbftu+99jw5a9laecgyea5o8mjhfc7b04u/jn7y2hyfrqwixjqhzf8cqoogprrb/y5f3pvzlpiltfgtgkodnsvbc3ilt0svf56zganhrwf8rteyerun5tl8vzdutp5enjvqb1jxo0w1urklnrx13dysxcrt6maumvcu8w5em+jh2v+nv5qwu9w9vwwtddx3ecgyea5dmre5k1yuk3c8kppmul/quwououfswqnaz9z6ojaref9y6rdqdoruzgokmi4lu3s9jz3pmn0ezzd8svplzzr9gnrpo39jwag5zwnllysjjllk+yjijplb78fxz4/eey+s3ynspy0t73c0wcnfbpuwb4jeiaijw6iykd8dvfkdccgyea0x1qsjwmjhq4zjrxqevcqe5xun13aw7tg0p/oreu4wtzsgstcyod6fc1hzk6pu3i9hdsdck7x40ifk4wcda6qsolvnx9iyudmmsqh5/qtaddzazorgvnw95bhnuuxnqzvvkhl9knc8fib97is1ltczyydysf9gggyvyy5jgiceecgyadcue8wkovvw1zc9ggd8a3hduf3dj8gmilismvt0pvaopjjzpwaoembokwpuqwcd7tynmhbbrwpv4eanzrr6ridmvgcrtpndq5iyejefo8gzguek3wpyucurxz7fm5yzqcl7r8blpffnxcsq6g8vwiuwa6fndr6wgmyhgccex+zqkbgdjweqqx9m7zivj3dzbzn5bbs0fgbm0vascwcx1fgd2kml1qm6rj2unjaen2yi81bdrn5calu9eipvopia3jvxtfrubrf5l+0/vyaj9olqayumzgk6qf1a4rmfglxfugo7jd8ow9mq5tqtz3ldelaqlijkvyu+5ssphj2twgtzan -#------------------------------------------ -# \u533B\u9662\u767B\u8BB0\u53F7 -ali.hosp_register_id=43278598053310011a2101 -# \u79DF\u6237\u5E94\u7528id -ali.tenant_app_id= 20221116560100034264 -# \u533B\u9662\u540D\u79F0 -ali.hosp_name=\u5FB7\u5B8F\u5DDE\u4E2D\u533B\u533B\u9662 -# \u533B\u9662\u522B\u540D -ali.hosp_alias=\u5FB7\u5B8F\u5DDE\u4E2D\u533B\u533B\u9662 -# \u533B\u7597\u5B9A\u70B9\u673A\u6784\u7F16\u53F7 -ali.hosp_standard_code=h53310300023 -# \u533B\u9662\u6240\u5728\u7701\u4EFD -ali.hosp_province=\u4E91\u5357\u7701 -# \u533B\u9662\u6240\u5728\u57CE\u5E02 -ali.hosp_city=\u8292\u5E02 -# \u533B\u9662\u6240\u5728\u57CE\u5E02\u533A\u5212\u7F16\u7801 -ali.hosp_district=530600 -# \u533B\u9662\u5730\u5740 -ali.hosp_addr=\u4E91\u5357\u7701\u5FB7\u5B8F\u50A3\u65CF\u666F\u9887\u65CF\u81EA\u6CBB\u5DDE\u8292\u5E02\u5357\u868C\u8DEF87\u53F7 -# \u533B\u9662\u7ECF\u5EA6 -ali.hosp_lgt=98.574521 -# \u533B\u9662\u7EAC\u5EA6 -ali.hosp_lat=24.414922 -# \u533B\u9662\u7C7B\u578B -ali.hosp_type=\u516C\u7ACB -# \u533B\u9662\u7B49\u7EA7 -ali.hosp_grade=\u4E09\u7EA7 \ No newline at end of file +ali.app_private_key=MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDGaCGdSQUaNT3JZZrQWZm+Uf73MOzlQLNjdyE6HZur0Pp0B7h2VaDRMHIf4dUoiSB5qrRgzyDgbegcjtc68TNmv1euFhK7KD6NW+aPRM6jiyXvj3l9yQazC91ZtuEmx12kBKPHQbEp6sto9iXHdwsahh/yKg9jf3R+fevvRRmaJfk8MQlCaHeNr44cW9FlsW0JWvHva2w7/aeEFkiMSUR8mK3aSE/wmcb2MI2qvHlcDigVbXPtEnb+/RqEKS3QuW2d7cFrHkcspdL6026HRJgKFepnrrQsYpZFxfnEBPhvfwNJDBeb6ZCoxgxX/sasrb/slO9eUOhFLXzCqvwx7+U9AgMBAAECggEBALPIPdVhCj+SSPeKmvr6hebANBHXgoHF3AdgNnqLw7iv95JWQJ7xvnRvuqoLH/TINOYqeaJTbc4PqUjfYkYls9cBwTidBcITmILM6KGfzsLA3tIxpvwEwY5STPPzVBeohcCO970hWKDMAh+NE/SneSdCrAXqeOFG58+K2NSKP8W90fBfJkYIBIyOJSItJJfsCfLSNPNW5yMi1FxTtAQPpsN9eEE+F7bCXKjA48grppa78BU7vnFZu7WdAjnOsBk91bf7nHi4Xt0fbFdaHYR3qkFAZ72xS+8k3vTE7BAEWZIKEFTB8Yao4S2ZEs9OU3iLoqXVG2ke1KO/HwuFUmxRZL0CgYEA/OP6VN8k90MF0tcsj/Vs6rGZR3bUFxGNzFnR7Wn6OWgsyy6wWIIiUna2fMVaHqZkDXSnZ8Hriz1UzkMRiiiEVb/ljFYUOy1lGKPGROoj0wsrC96speb1hNLKLosFLAkWYnGWnHGbJxs+2KMCW9NKd8RYyN6TEdrWpVZrKCJmOJsCgYEAyNinuUrvr+GJGqEWIyQ/T5H3HOMqKISiD/5yaWL/tQRtWisaU7BPbU+vMM4BK+ewjK30+y7y+qzCdgx8xJrvP7wgMxkHB/ONTLCuQnsHQ23b1UMaY0eBNUGz0hBx+1W9fpRqU+UlQd6P/XQIpw0ATuOCEkWAOlal9aBQcVBEGwcCgYEAqR4Ag49ylhRxKY2SFHeJLe401hDGRuMLU7RhagasOoXLJtmDPr1QHJuc8BW+ba7STBlN9lo9nbEXLJS3fxAXZ4zcApxyDR0PdYnYhq+Z44GdeOOhy5SHbhrU8IkxnUA6gvz5PofOvTlALvncEvJa43sf8Ly/13nkf08qe/19JK8CgYA1b07QQVubk4mCiDD3kIE3jkIMcXOZ7A+h6bROzYPyiQb+4lDSyymWj4iwl15AbBfQlceDvG3wu13RQmk/dWkJr+dxMMtqFiYVrTvvfAPmsKe4CW5P04pQvPY2gSGSGLGdp6bSQziyWaA9ck2LBC58zpKggdUnsD3fJ5O/UfeMqQKBgQCQT27hHAGoAmNmXbL2LjnwtS08xEQo6m5YE1eRVoKNFkJD7tBzQ99M4VFpRaxwmL+wRzrNfYrzSI/SUHuOKD+P7nS8FyNf1vXqP14D30vTKSIWRKMW3K7PiBIYkhbIK2iI/yxEDT2D6OdxC4flinEdwbNuvBpARQavkJ82aly5Cg== \ No newline at end of file diff --git a/src/main/resources/medical-ali.properties b/src/main/resources/medical-ali.properties index c223c60..51523fe 100644 --- a/src/main/resources/medical-ali.properties +++ b/src/main/resources/medical-ali.properties @@ -2,7 +2,6 @@ mi_ali.is_dev=true mi_ali.is_enable=true mi_ali.is_auto_refund=true -mi_ali.mi_ali.dev_openid= # \u5B9A\u70B9\u533B\u7597\u673A\u6784\u540D\u79F0\uFF08\u652F\u4ED8\u5B9D\u53EF\u80FD\u4E0D\u540C\uFF09 mi_ali.org_hospital_name=\u4E91\u5357\u7701\u6EC7\u5357\u4E2D\u5FC3\u533B\u9662 diff --git a/src/main/resources/webservice.properties b/src/main/resources/webservice.properties index c718220..73886a3 100644 --- a/src/main/resources/webservice.properties +++ b/src/main/resources/webservice.properties @@ -1 +1 @@ -# \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false lis.url=192.168.1.185:8090 lis.unifiedEntrance=true # \u672C\u5730 #his.url=127.0.0.1:8888 # \u6D4B\u8BD5\u73AF\u5883 ali_code=675448357 # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=true # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=127.0.0.1:7777 # \u533B\u4FDD====================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u533B\u4FDD\u6B63\u5F0F\u73AF\u5883 his.prod_mi_url=127.0.0.1:7777 # \u533B\u4FDD\u6D4B\u8BD5\u73AF\u5883 his.dev_mi_url=10.20.10.7:7885 # \u6D4B\u8BD5============================================================ ### \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C his.url=192.168.11.7:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # \u4E91\u9F99 #his.url=200.200.200.69:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910 \ No newline at end of file +# \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false lis.url=192.168.1.185:8090 lis.unifiedEntrance=true # \u672C\u5730 #his.url=127.0.0.1:8888 # \u6D4B\u8BD5\u73AF\u5883 ali_code=675448357 # HIS\u662F\u5426\u5F00\u542F\u652F\u4ED8\u5B9D\u5206\u5F00\u5BF9\u8D26 his.is_ali_mer=false # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=true # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=127.0.0.1:7777 # \u533B\u4FDD====================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u533B\u4FDD\u6B63\u5F0F\u73AF\u5883 his.prod_mi_url=127.0.0.1:7777 # \u533B\u4FDD\u6D4B\u8BD5\u73AF\u5883 his.dev_mi_url=10.20.10.7:7885 # \u6D4B\u8BD5============================================================ ### \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C his.url=192.168.11.7:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # \u4E91\u9F99 #his.url=200.200.200.69:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910 \ No newline at end of file diff --git a/src/main/resources/xbd.properties b/src/main/resources/xbd.properties index 11c6fbb..7d651aa 100644 --- a/src/main/resources/xbd.properties +++ b/src/main/resources/xbd.properties @@ -18,7 +18,7 @@ xbd.200.cloud_film_url=http://200.200.200.70:3306/wx3306 # \u75C5\u5386\u590D\u5370 #xbd.200.med_record_copy_url=http://10.20.10.41:8082 -xbd.200.med_record_copy_url=http://10.255.248.186:8080 +xbd.200.med_record_copy_url=http://192.168.12.66:8080 # \u4F53\u68C0 xbd.100.peis_url=http://200.200.200.71:5050/peisReserve \ No newline at end of file