1、医保没有现金部分时,如果医保部分已退费,标识为已退费。

2、部分接口进行数据加密。
debug
wangsq 2 weeks ago
parent 5c59a6e983
commit a67bf5d877
  1. 25
      src/main/java/com/ynxbd/common/action/PatientAction.java
  2. 2
      src/main/java/com/ynxbd/common/service/HCodeService.java
  3. 12
      src/main/java/com/ynxbd/common/service/MedicalService.java
  4. 2
      src/main/java/com/ynxbd/common/service/RecipeService.java
  5. 2
      src/main/java/com/ynxbd/wx/config/TZReserveConfig.java

@ -29,12 +29,12 @@ public class PatientAction extends BaseAction {
*/ */
@Action("getHisInfoByPatientId") @Action("getHisInfoByPatientId")
public Result getHisInfoByPatientId(String patientId) { public Result getHisInfoByPatientId(String patientId) {
log.info("[患者]根据patientId查询信息 patientId={}", patientId); patientId = getDecodeString(patientId);
log.info("[患者]根据patientId查询HIS信息 patientId={}", patientId);
if (patientId == null) { if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_BLANK); return Result.error(ResultEnum.PARAM_IS_BLANK);
} }
try { try {
patientId = getDecodeString(patientId);
JsonResult jsonResult = new HisPatientDao().selectPatientInfo(patientId, "999"); JsonResult jsonResult = new HisPatientDao().selectPatientInfo(patientId, "999");
if (!jsonResult.success()) { if (!jsonResult.success()) {
return Result.error(jsonResult.getMessage()); return Result.error(jsonResult.getMessage());
@ -59,12 +59,13 @@ public class PatientAction extends BaseAction {
*/ */
@Action("getInfoByPatientId") @Action("getInfoByPatientId")
public Result getInfoByPatientId(String patientId) { public Result getInfoByPatientId(String patientId) {
patientId = getDecodeString(patientId);
log.info("[患者]根据patientId查询信息 patientId={}", patientId); log.info("[患者]根据patientId查询信息 patientId={}", patientId);
if (patientId == null) { if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_BLANK); return Result.error(ResultEnum.PARAM_IS_BLANK);
} }
List<Patient> patients = new PatientDao().selectListByPatientId(patientId); List<Patient> patients = new PatientDao().selectListByPatientId(patientId);
if (patients.size() == 0) { if (patients.isEmpty()) {
return Result.error(ResultEnum.DATA_NOT_FOUND); return Result.error(ResultEnum.DATA_NOT_FOUND);
} }
Patient patient = patients.get(0); Patient patient = patients.get(0);
@ -112,15 +113,16 @@ public class PatientAction extends BaseAction {
/** /**
* [患者] 外部对接-根据openId查询患者信息 * [患者] 外部对接-根据openId查询患者信息
* @param openid openId *
* @param openid openId
* @param organizeName 组织机构代码 * @param organizeName 组织机构代码
* @return 返回患者信息 * @return 返回患者信息
*/ */
@Action("getPatientsByOpenid") @Action("getPatientsByOpenid")
public Result getPatientsByOpenid(String openid,String organizeName) { public Result getPatientsByOpenid(String openid, String organizeName) {
log.info("[外部患者信息对接]根据openid查询信息 openid={},organizeName-{}", openid,organizeName); log.info("[外部患者信息对接]根据openid查询信息 openid={},organizeName-{}", openid, organizeName);
organizeName = AesHelper.deCode(organizeName); organizeName = AesHelper.deCode(organizeName);
if(organizeName==null){ if (organizeName == null) {
return Result.error(ResultEnum.PERMISSION_NO_ACCESS); return Result.error(ResultEnum.PERMISSION_NO_ACCESS);
} }
if (openid == null) { if (openid == null) {
@ -132,16 +134,17 @@ public class PatientAction extends BaseAction {
/** /**
* [患者] 外部对接-根据openId加密版查询患者信息 * [患者] 外部对接-根据openId加密版查询患者信息
* @param enParams 加密openId *
* @param enParams 加密openId
* @param organizeName 组织机构代码 * @param organizeName 组织机构代码
* @return 返回患者信息 * @return 返回患者信息
*/ */
@Action("getPatientsByEncOpenid") @Action("getPatientsByEncOpenid")
public Result getPatientsByEncOpenid(String enParams,String organizeName) { public Result getPatientsByEncOpenid(String enParams, String organizeName) {
String openid = AesHelper.deCode(enParams); String openid = AesHelper.deCode(enParams);
log.info("[外部患者信息对接]根据openid查询信息 openid={},organizeName-{},emParams-{}", openid,organizeName,enParams); log.info("[外部患者信息对接]根据openid查询信息 openid={},organizeName-{},emParams-{}", openid, organizeName, enParams);
organizeName = AesHelper.deCode(organizeName); organizeName = AesHelper.deCode(organizeName);
if(organizeName==null){ if (organizeName == null) {
return Result.error(ResultEnum.PERMISSION_NO_ACCESS); return Result.error(ResultEnum.PERMISSION_NO_ACCESS);
} }
if (openid == null) { if (openid == null) {

@ -708,7 +708,7 @@ public class HCodeService {
* @param patientId patientId * @param patientId patientId
* @return 是否成功 * @return 是否成功
*/ */
public static boolean payNotifyReportHISData(String openid, String patientId) { public static boolean rxReportHISData(String openid, String patientId) {
try { try {
if (!HCodeService.isEnableHealthCard()) { // 判断是否禁用电子健康卡 if (!HCodeService.isEnableHealthCard()) { // 判断是否禁用电子健康卡
return false; return false;

@ -356,7 +356,10 @@ public class MedicalService {
} }
if (cashFee.compareTo(BigDecimal.ZERO) == 0) { // 现金部分为0 if (cashFee.compareTo(BigDecimal.ZERO) == 0) { // 现金部分为0
log.info("[医保][挂号]现金为0不执行退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); log.info("[医保][挂号]现金为0不执行退费-修改退费状态 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
if (!regDao.updateRefundByTradeNo(tradeNo, "OK")) {
log.info("【微信】[医保][挂号] 修改数据库退费状态失败 tradeNo={}", tradeNo);
}
return false; return false;
} }
@ -463,7 +466,10 @@ public class MedicalService {
// 微信医保自动退费 // 微信医保自动退费
if (cashFee.compareTo(BigDecimal.ZERO) == 0) { // 现金部分为0 if (cashFee.compareTo(BigDecimal.ZERO) == 0) { // 现金部分为0
log.info("[医保][处方]现金为0不执行退费 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo); log.info("[医保][处方]现金为0不执行退费-修改退费状态 outTradeNo={}, bankTransNo={}, tradeNo={}", outTradeNo, bankTransNo, tradeNo);
if (!recipeDao.updateRefundByTradeNo(tradeNo, "OK")) {
log.info("【微信】[医保][处方]修改数据库退费状态失败 tradeNo={}", tradeNo);
}
return false; return false;
} }
MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费"); MedicalOrder order = WxMedicalHelper.refundCash(outTradeNo, tradeNo, cashFee, "系统繁忙缴费失败,自动退费");
@ -471,7 +477,7 @@ public class MedicalService {
String refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage(); String refundResult = order.isOk() ? WxPayHelper.OK : order.getMessage();
log.info("【微信】[医保][处方]现金自动退费 outTradeNo={}, bankTransNo={}, tradeNo={} [{}]:{}", outTradeNo, bankTransNo, tradeNo, (isOk ? "成功" : "失败"), order.getMessage()); log.info("【微信】[医保][处方]现金自动退费 outTradeNo={}, bankTransNo={}, tradeNo={} [{}]:{}", outTradeNo, bankTransNo, tradeNo, (isOk ? "成功" : "失败"), order.getMessage());
if (!recipeDao.updateRefundByTradeNo(tradeNo, refundResult)) { if (!recipeDao.updateRefundByTradeNo(tradeNo, refundResult)) {
log.info("[医保][处方]现金自动退费 修改数据库状态失败 tradeNo={}, refundResult={}", tradeNo, refundResult); log.info("【微信】[医保][处方]现金自动退费 修改数据库状态失败 tradeNo={}, refundResult={}", tradeNo, refundResult);
} }
return false; return false;
} }

@ -379,7 +379,7 @@ public class RecipeService {
TZReserveConfig.reserveRun(patientId); // 天助医技预约 TZReserveConfig.reserveRun(patientId); // 天助医技预约
HCodeService.payNotifyReportHISData(openid, patientId); HCodeService.rxReportHISData(openid, patientId);
return true; return true;
} }

@ -25,7 +25,7 @@ import java.util.Map;
* 天助平台配置 * 天助平台配置
* *
* @author 李进才 * @author 李进才
* @ClassName MeTechnologyReConfig * @ClassName TZReserveConfig
* @Description TODO * @Description TODO
* @date 2024/06/14 09:27:00 * @date 2024/06/14 09:27:00
*/ */

Loading…
Cancel
Save