1:调整:调整获取用户定位权限的接口,返回appId,无需在前端再次配置。

2:优化:调整科室列表返回的过滤,优先显示挂号返回的地址信息。优化性能。
3:新增:新增接口根据openid查询未来的挂号列表。
4、新增:新增查询HIS挂号信息的接口,可查询预约挂号和今日挂号和历史挂号信息。并优化共有逻辑,查询今日挂号时传递日期,并更加流水号匹配就医助手选择的挂号。能够确保显示挂号一定成功。
5、新增:新增接口用于记录就医助手的当前最新进程,并限制不能重复提交新进程。
6、新增:就医助手新增预约挂号信息、门诊候诊、门诊签到、门诊检验和门诊取药界面等
7、修复:在流程1预约挂号中查看挂号信息时,如果为今日挂号时,会修改当前进程状态,并进入下一步,但如果当前的最大进程大于预约挂号的进程时,第一次点击,闪烁并进入第二个进程的问题修复。
8、维护:红河州第一人民医院问卷调查问题排查(使用者流程不清楚)。
9、维护:德宏州中医药互联网医院维护和沟通处理。
debug
wangsq 3 weeks ago
parent b317ab7167
commit c08a0e2b5f
  1. 10
      src/main/java/com/ynxbd/common/action/AccountsAction.java
  2. 18
      src/main/java/com/ynxbd/common/action/ApiAction.java
  3. 2
      src/main/java/com/ynxbd/common/action/HealthCodeAction.java
  4. 136
      src/main/java/com/ynxbd/common/action/RegisterAction.java
  5. 4
      src/main/java/com/ynxbd/common/action/SmsAction.java
  6. 2
      src/main/java/com/ynxbd/common/action/XBDAction.java
  7. 14
      src/main/java/com/ynxbd/common/action/pay/PayAction.java
  8. 2
      src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java
  9. 10
      src/main/java/com/ynxbd/common/bean/enums/MerchantEnum.java
  10. 4
      src/main/java/com/ynxbd/common/bean/pay/Register.java
  11. 49
      src/main/java/com/ynxbd/common/dao/RegisterDao.java
  12. 5
      src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java
  13. 1
      src/main/java/com/ynxbd/common/helper/common/SmsHelper.java
  14. 2
      src/main/java/com/ynxbd/common/result/Result.java
  15. 51
      src/main/java/com/ynxbd/common/service/CasebookService.java
  16. 8
      src/main/java/com/ynxbd/common/service/HCodeService.java
  17. 4
      src/main/java/com/ynxbd/common/service/MedicalService.java
  18. 6
      src/main/java/com/ynxbd/common/service/PayService.java
  19. 83
      src/main/java/com/ynxbd/common/service/RegService.java
  20. 2
      src/main/java/com/ynxbd/common/service/cache/PayCache.java
  21. 2
      src/main/java/com/ynxbd/wx/servlet/QServlet.java
  22. 2
      src/main/java/com/ynxbd/wx/wxfactory/WxCacheHelper.java

@ -70,7 +70,7 @@ public class AccountsAction extends BaseAction {
/** /**
* [HIS]查询交易流水 * [HIS]查询交易流水仅能查询线上缴费记录
* *
* @param begDate 开始日期 * @param begDate 开始日期
* @param endDate 结束日期 * @param endDate 结束日期
@ -108,7 +108,7 @@ public class AccountsAction extends BaseAction {
} }
List<HisTransaction> resultList = jsonResult.getDataMapList(HisTransaction.class, "Item"); List<HisTransaction> resultList = jsonResult.getDataMapList(HisTransaction.class, "Item");
if (resultList.size() == 0) { if (resultList.isEmpty()) {
return Result.error(ResultEnum.INTERFACE_HIS_INVOKE_ERROR); return Result.error(ResultEnum.INTERFACE_HIS_INVOKE_ERROR);
} }
@ -215,7 +215,7 @@ public class AccountsAction extends BaseAction {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
Bill bill = PayService.queryRefund(merchantEnum, outTradeNo, bankTransNo, outRefundNo); Bill bill = PayService.queryRefund(merchantEnum, outTradeNo, bankTransNo, outRefundNo);
return bill == null ? Result.error() : Result.success(bill); return bill == null ? Result.error() : Result.success(bill);
} catch (ServiceException e) { } catch (ServiceException e) {
@ -306,7 +306,7 @@ public class AccountsAction extends BaseAction {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(callNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(callNo);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }
@ -425,7 +425,7 @@ public class AccountsAction extends BaseAction {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(callNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(callNo);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }

@ -7,12 +7,9 @@ import com.ynxbd.common.bean.sms.SmsTemplate;
import com.ynxbd.common.helper.common.*; import com.ynxbd.common.helper.common.*;
import com.ynxbd.common.result.Result; import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.result.ServiceException;
import com.ynxbd.common.service.ReportService;
import com.ynxbd.wx.config.WeChatConfig; import com.ynxbd.wx.config.WeChatConfig;
import com.ynxbd.wx.utils.DesEncryptHelper; import com.ynxbd.wx.utils.DesEncryptHelper;
import com.ynxbd.wx.wxfactory.ReqParamHelper; import com.ynxbd.wx.wxfactory.ReqParamHelper;
import com.ynxbd.wx.wxfactory.WxAuthHelper;
import com.ynxbd.wx.wxfactory.WxCacheHelper; import com.ynxbd.wx.wxfactory.WxCacheHelper;
import com.ynxbd.wx.wxfactory.bean.AccessToken; import com.ynxbd.wx.wxfactory.bean.AccessToken;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -67,9 +64,13 @@ public class ApiAction extends BaseAction {
@Action("getWxJsapiTicket") @Action("getWxJsapiTicket")
public Result getWxJsapiTicket() { public Result getWxJsapiTicket() {
String ticket = WxCacheHelper.getJsapiTicket(); String ticket = WxCacheHelper.getJsapiTicket();
if (ticket ==null) if (ticket == null) {
return Result.error(); return Result.error();
return Result.success(ticket); }
Map<String, Object> data = new HashMap<>();
data.put("ticket", ticket);
data.put("appId", WeChatConfig.APP_ID);
return Result.success(data);
} }
/** /**
@ -172,12 +173,12 @@ public class ApiAction extends BaseAction {
} }
@Action("getEnPatientId") @Action("getEnPatientId")
public Result getEnPatientId(String patientId){ public Result getEnPatientId(String patientId) {
if(patientId==null){ if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
patientId = ReqParamHelper.encode(patientId); patientId = ReqParamHelper.encode(patientId);
for (int i = 0; i< 3;i++){ for (int i = 0; i < 3; i++) {
patientId = Base64.getEncoder().encodeToString(patientId.getBytes()); patientId = Base64.getEncoder().encodeToString(patientId.getBytes());
} }
return Result.success(patientId); return Result.success(patientId);
@ -217,7 +218,6 @@ public class ApiAction extends BaseAction {
} }
/** /**
* 第三方使用勿动 * 第三方使用勿动
*/ */

@ -388,7 +388,7 @@ public class HealthCodeAction extends BaseAction {
if (orderId == null || registerOrderId == null) { if (orderId == null || registerOrderId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); // 参数为空 return Result.error(ResultEnum.PARAM_IS_DEFECT); // 参数为空
} }
return Result.change(HCodeService.checkUniformVerifyResult(orderId, registerOrderId)); return Result.isOK(HCodeService.checkUniformVerifyResult(orderId, registerOrderId));
} }

@ -14,6 +14,8 @@ import com.ynxbd.common.helper.common.DateHelper;
import com.ynxbd.common.result.Result; import com.ynxbd.common.result.Result;
import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.service.DoctorService; import com.ynxbd.common.service.DoctorService;
import com.ynxbd.common.service.RegService;
import com.ynxbd.wx.wxfactory.ReqParamHelper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Action;
@ -92,7 +94,7 @@ public class RegisterAction extends BaseAction {
List<Dept> deptList = new HisRegisterDao().getTimeDeptList(begDate, endDate, deptCode); List<Dept> deptList = new HisRegisterDao().getTimeDeptList(begDate, endDate, deptCode);
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(merCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode);
if (MerchantEnum.ALI.equals(merchantEnum)) { if (MerchantEnum.ALI.equals(merchantEnum)) {
AliUploadHelper.uploadDept(deptList, true); AliUploadHelper.uploadDept(deptList, true);
} }
@ -157,7 +159,7 @@ public class RegisterAction extends BaseAction {
resultList.add(dept); resultList.add(dept);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(merCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode);
if (MerchantEnum.ALI.equals(merchantEnum)) { if (MerchantEnum.ALI.equals(merchantEnum)) {
AliUploadHelper.uploadDept(resultList, isReserve); AliUploadHelper.uploadDept(resultList, isReserve);
} }
@ -189,67 +191,68 @@ public class RegisterAction extends BaseAction {
return Result.success(doctorList); return Result.success(doctorList);
} }
/**
* [预约挂号]获取预约记录
*/
@Action("getReserveHistory")
public Result getReserveHistory(String begDate, String endDate, String patientId) {
log.info("[预约挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate);
if (patientId == null || begDate == null || endDate == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
List<Register> resultList = new HisRegisterDao().getRegReserveHistory(patientId, null);
return Result.success(resultList);
}
/** /**
* [今日挂号]查询挂号记录 * [挂号]查询挂号记录
*/ */
@Action("getSiteHistory") @Action("getSiteHistory")
public Result getSiteHistory(String begDate, String endDate, String patientId) { public Result getSiteHistory(String begDate, String endDate, String patientId) {
log.info("[现场挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); try {
log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate);
if (patientId == null || begDate == null || endDate == null) { if (patientId == null || begDate == null || endDate == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
patientId = getDecodeString(patientId); patientId = getDecodeString(patientId);
List<Register> hisList = new HisRegisterDao().getRegTodayHistory(patientId, null);
List<Register> resultList = new ArrayList<>(); List<Register> regRecords = new RegService().getHisRegRecords(patientId, begDate, endDate);
String regDate; return Result.success(regRecords);
for (Register reg : hisList) { } catch (Exception e) {
regDate = reg.getRegDate(); return Result.error(e);
if (regDate != null) {
regDate = DateHelper.dateFormatShort(regDate);
if (regDate != null && DateHelper.inDateRange(begDate, endDate, regDate, DateHelper.DateEnum.yyyy_MM_dd)) {
resultList.add(reg);
}
}
} }
return Result.success(resultList);
} }
/** /**
* [挂号]查询挂号记录 * [挂号]查询挂号历史
*/ */
@Action("getRegList") @Action("getHisRegRecords")
public Result getRegList(String begDate, String endDate, String openid) { public Result getRegHistory(String begDate, String endDate, String patientId) {
try { try {
log.info("[挂号]查询挂号记录 begDate={}, endDate={}, openid={}", begDate, endDate, openid); log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate);
if (begDate == null || endDate == null || openid == null) { if (patientId == null || begDate == null || endDate == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
List<Register> regList = new RegisterDao().selectListByRegDate(begDate, endDate, openid); patientId = getDecodeString(patientId);
for (Register item : regList) {
item.filterInfo(); // 数据过滤 List<Register> regRecords = new RegService().getHisRegRecords(patientId, begDate, endDate);
} return Result.success(regRecords);
return Result.success(regList);
} catch (Exception e) { } catch (Exception e) {
return Result.error(e); return Result.error(e);
} }
} }
/** /**
* [预约挂号]获取预约记录 * [预约挂号]获取预约记录
*/ */
@Action("getReserveHistory") @Action("getHisRegReserveRecords")
public Result getReserveHistory(String begDate, String endDate, String patientId) { public Result getHisRegReserveRecords(String begDate, String endDate, String patientId) {
log.info("[预约挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); log.info("[预约挂号]查询预约记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate);
if (patientId == null || begDate == null || endDate == null) { if (patientId == null || begDate == null || endDate == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
List<Register> resultList = new HisRegisterDao().getRegReserveHistory(patientId, null); List<Register> dataList = new RegService().getHisRegReserveRecords(patientId, null);
return Result.success(resultList); return Result.success(dataList);
} }
@ -412,6 +415,71 @@ public class RegisterAction extends BaseAction {
} }
/**
* [就医助手]根据挂号日期范围查询挂号记录
*/
@Action("getRegRecordsByOpenId")
public Result getRegRecordsByOpenId(String begDate, String endDate, String openid) {
try {
log.info("[就医助手]根据挂号日期范围,查询挂号记录 begDate={}, endDate={}, openid={}", begDate, endDate, openid);
if (begDate == null || endDate == null || openid == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
List<Register> regList = new RegisterDao().selectListByRegDate(begDate, endDate, openid);
for (Register item : regList) {
item.setEnId(ReqParamHelper.encode(String.valueOf(item.getId())));
item.setId(null);
item.filterInfo(); // 数据过滤
}
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("date", DateHelper.getCurDateTime());
dataMap.put("list", regList);
return Result.success(dataMap);
} catch (Exception e) {
return Result.error(e);
}
}
/**
* [就医助手]查询HIS挂号记录
*/
@Action("getHisRegInfo")
public Result getHisRegInfo(String regDate, String patientId, String hisTransNo, String openId) {
log.info("[就医助手]查询HIS挂号信息 regDate={}, patientId={}, hisTransNo={} openId={}", regDate, patientId, hisTransNo, openId);
patientId = getDecodeString(patientId);
if (ObjectUtils.isEmpty(regDate) || ObjectUtils.isEmpty(patientId)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
try {
Register record = new RegService().findHisRegRecord(patientId, regDate, hisTransNo);
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("date", DateHelper.getCurDateTime());
dataMap.put("info", record);
return Result.success(dataMap);
} catch (Exception e) {
return Result.error(e);
}
}
/**
* [就医助手]修改流程状态
*/
@Action("updateRegMedToolMark")
public Result updateRegMedToolMark(String id, String medToolMark, String openId) {
id = getDecodeString(id);
log.info("[就医助手]修改流程状态 id={}, medToolMark={}, openId={}", id, medToolMark, openId);
if (ObjectUtils.isEmpty(id) || medToolMark == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
try {
boolean isOK = new RegService().updateRegMedToolMark(id, medToolMark, openId);
return Result.isOK(isOK);
} catch (Exception e) {
return Result.error(e);
}
}
// /** // /**
// * [预约挂号]获取指定科室医生信息 // * [预约挂号]获取指定科室医生信息
// */ // */

@ -13,8 +13,6 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Namespace;
import java.sql.Array;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -167,7 +165,7 @@ public class SmsAction extends BaseAction {
default: default:
return Result.error(ResultEnum.PARAM_CALL_NO_NOT_FOUND); return Result.error(ResultEnum.PARAM_CALL_NO_NOT_FOUND);
} }
return Result.change(isFlag); return Result.isOK(isFlag);
} }

@ -173,7 +173,7 @@ public class XBDAction extends BaseAction {
@Action("caseBookPay") @Action("caseBookPay")
public Result caseBookPay(String payCode, String openid, String patientId, String treatNum, String totalFee, String applyId, String getWay, String useToName) { public Result caseBookPay(String payCode, String openid, String patientId, String treatNum, String totalFee, String applyId, String getWay, String useToName) {
log.info("[病案复印] 唤起支付, payCode-{},openid-{},patientId-{},treatNum-{},totalFee-{}", payCode, openid, patientId, treatNum, totalFee); log.info("[病案复印] 唤起支付, payCode-{},openid-{},patientId-{},treatNum-{},totalFee-{}", payCode, openid, patientId, treatNum, totalFee);
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }

@ -79,7 +79,7 @@ public class PayAction extends BaseAction {
*/ */
@Action("recipePay") @Action("recipePay")
public Result recipePay(boolean isPrepay, String payCode, String openid, String patientId, String treatNum, String totalFee, String recipeJson, String payWay, Integer awaitSecond) { public Result recipePay(boolean isPrepay, String payCode, String openid, String patientId, String treatNum, String totalFee, String recipeJson, String payWay, Integer awaitSecond) {
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }
@ -146,7 +146,7 @@ public class PayAction extends BaseAction {
if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) { if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) {
return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); return Result.error(ResultEnum.PAY_MONEY_IS_ZERO);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }
@ -181,7 +181,7 @@ public class PayAction extends BaseAction {
public Result peisRefund(String recipeId, String payCode, String outTradeNo, String totalFee, String openid) { public Result peisRefund(String recipeId, String payCode, String outTradeNo, String totalFee, String openid) {
log.info("[体检预约]取消预约退费,recipeId-{}.payCode-{},outTradeNo-{},totalFee-{},openid-{}", recipeId, payCode, outTradeNo, totalFee, openid); log.info("[体检预约]取消预约退费,recipeId-{}.payCode-{},outTradeNo-{},totalFee-{},openid-{}", recipeId, payCode, outTradeNo, totalFee, openid);
PeisService peisService = new PeisService(); PeisService peisService = new PeisService();
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
PeisDao peisDao = new PeisDao(); PeisDao peisDao = new PeisDao();
Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo); Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo);
if (new BigDecimal(totalFee).compareTo(recipe.getTotalFee()) != 0) { if (new BigDecimal(totalFee).compareTo(recipe.getTotalFee()) != 0) {
@ -210,7 +210,7 @@ public class PayAction extends BaseAction {
return result; return result;
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { if (merchantEnum == null) {
// 支付方式异常 // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
@ -826,7 +826,7 @@ public class PayAction extends BaseAction {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT); return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT);
} }
@ -856,7 +856,7 @@ public class PayAction extends BaseAction {
*/ */
@Action("refundOLOrder") @Action("refundOLOrder")
public Result refundOLOrder(String payCode, String outTradeNo, String totalFee, String bankTransNo, String openid, String patientId, String refundDesc) { public Result refundOLOrder(String payCode, String outTradeNo, String totalFee, String bankTransNo, String openid, String patientId, String refundDesc) {
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT); return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT);
} }
@ -884,7 +884,7 @@ public class PayAction extends BaseAction {
@Action("ocPay") @Action("ocPay")
public Result ocPay(String payCode, String title, BigDecimal totalFee, String openid, boolean isWeb, boolean isQrCode, public Result ocPay(String payCode, String title, BigDecimal totalFee, String openid, boolean isWeb, boolean isQrCode,
String collectId, String mid, String name, String cardNo, String patientId, String remark) { String collectId, String mid, String name, String cardNo, String patientId, String remark) {
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }

@ -53,7 +53,7 @@ public class ThirdPartyPayAction extends BaseAction {
if (ObjectUtils.isEmpty(sourceId) || ObjectUtils.isEmpty(patientId) || ObjectUtils.isEmpty(date) || money == null) { if (ObjectUtils.isEmpty(sourceId) || ObjectUtils.isEmpty(patientId) || ObjectUtils.isEmpty(date) || money == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常
} }

@ -46,8 +46,6 @@ public enum MerchantEnum {
public final String CODE; public final String CODE;
public final String NAME; public final String NAME;
@ -78,7 +76,7 @@ public enum MerchantEnum {
this.PAY_WAY_MICRO = PAY_WAY_MICRO; this.PAY_WAY_MICRO = PAY_WAY_MICRO;
} }
public static MerchantEnum getMerchantEnumByCode(String code) { public static MerchantEnum findEnumByCode(String code) {
if (ObjectUtils.isEmpty(code)) { if (ObjectUtils.isEmpty(code)) {
return null; return null;
} }
@ -98,7 +96,7 @@ public enum MerchantEnum {
* @param outTradeNo 商户订单号 * @param outTradeNo 商户订单号
* @return 支付类型 * @return 支付类型
*/ */
public static MerchantEnum getMerchantEnumByOutTradeNo(String outTradeNo) { public static MerchantEnum findEnumByOutTradeNo(String outTradeNo) {
if (outTradeNo == null) { if (outTradeNo == null) {
return null; return null;
} }
@ -128,7 +126,7 @@ public enum MerchantEnum {
* @param payWay 支付代码 * @param payWay 支付代码
* @return 支付方式 * @return 支付方式
*/ */
public static MerchantEnum getMerchantEnumByPayWay(String payWay) { public static MerchantEnum findEnumByPayWay(String payWay) {
if (ObjectUtils.isEmpty(payWay)) { if (ObjectUtils.isEmpty(payWay)) {
return MerchantEnum.WX; return MerchantEnum.WX;
} }
@ -146,7 +144,7 @@ public enum MerchantEnum {
* @param userAgent 用户客户端信息 * @param userAgent 用户客户端信息
* @return 支付类型 * @return 支付类型
*/ */
public static MerchantEnum getMerchantEnumByQr(String userAgent) { public static MerchantEnum findEnumByQr(String userAgent) {
if (userAgent.contains("MicroMessenger")) { if (userAgent.contains("MicroMessenger")) {
return MerchantEnum.WX; return MerchantEnum.WX;

@ -18,6 +18,7 @@ import java.math.BigDecimal;
@NoArgsConstructor @NoArgsConstructor
public class Register extends Order { public class Register extends Order {
private Long id; private Long id;
private String enId;
private String deptCode; private String deptCode;
private String subDeptCode; private String subDeptCode;
@ -75,5 +76,6 @@ public class Register extends Order {
private String orderFromOwner; private String orderFromOwner;
// 判断是否为分时段挂号 // 判断是否为分时段挂号
private Boolean isSplitTime; private Boolean isSplitTime;
// 就医助手流程标记
private String medToolMark;
} }

@ -224,7 +224,7 @@ public class RegisterDao {
* *
* @param deptCode 科室code * @param deptCode 科室code
*/ */
public Dept deptFilter(List<Dept> wxDeptList, String deptCode, String deptName, String address, String hospitalAreaName) { public Dept deptFilter(List<Dept> dbDeptList, String deptCode, String deptName, String address, String hospitalAreaName) {
Dept dept = new Dept(); Dept dept = new Dept();
dept.setDeptCode(deptCode); dept.setDeptCode(deptCode);
dept.setDeptName(deptName); dept.setDeptName(deptName);
@ -235,26 +235,20 @@ public class RegisterDao {
return dept; return dept;
} }
if (wxDeptList.size() == 0) { if (dbDeptList.isEmpty()) {
return dept; return dept;
} }
Dept wxDept = wxDeptList.stream().filter(item -> Dept dbDept = dbDeptList.stream().filter(item ->
deptCode.equals(item.getDeptCode())).findAny().orElse(null); deptCode.equals(item.getDeptCode())).findAny().orElse(null);
if (dbDept != null) {
if (wxDept != null) { Boolean isDisabled = dbDept.getIsDisabled();
Boolean isDisabled = wxDept.getIsDisabled(); Integer deletedState = dbDept.getDeletedState();
Integer deletedState = wxDept.getDeletedState();
if ((isDisabled != null && isDisabled) || (deletedState != null && deletedState != 0)) { // 禁用 | 移除 返回null if ((isDisabled != null && isDisabled) || (deletedState != null && deletedState != 0)) { // 禁用 | 移除 返回null
return null; return null;
} }
wxDept.setDeptName(deptName); dept.setAddress(ObjectUtils.isEmpty(address) ? dbDept.getAddress() : address); // HIS优先级最高
wxDept.setDescription(null);
// String wxAddress = wxDept.getAddress();
// wxDept.setAddress(!ObjectUtils.isEmpty(wxAddress) ? wxAddress : address);
wxDept.setHospitalAreaName(hospitalAreaName);
return wxDept;
} }
return dept; return dept;
} }
@ -720,17 +714,40 @@ public class RegisterDao {
}); });
} }
/**
* [就医助手]根据挂号日期范围查询挂号记录
*
* @param begDate 开始日期
* @param endDate 结束日期
* @param openid openid
*/
public List<Register> selectListByRegDate(String begDate, String endDate, String openid) throws ServiceException { public List<Register> selectListByRegDate(String begDate, String endDate, String openid) throws ServiceException {
String finalEndDate = DateHelper.getMoveDate(endDate, 1); String finalEndDate = DateHelper.getMoveDate(endDate, 1);
if (finalEndDate == null) { if (finalEndDate == null) {
throw new ServiceException("endDate错误"); throw new ServiceException("endDate错误");
} }
System.out.println(finalEndDate); String sql = "select * from register where openid = ? and regDate between ? and ? and payStatus = 0 and hisStatus = 0 and refundTime is null order by regDate asc, updateTime asc";
String sql = "select * from register where openid = ? and regDate between ? and ? and payStatus = 0 and hisStatus = 0 order by regDate desc, updateTime desc";
return DataBase.select(sql, Register.class, ps -> { return DataBase.select(sql, Register.class, ps -> {
ps.setString(1, openid); ps.setString(1, openid);
ps.setString(2, begDate); ps.setString(2, begDate);
ps.setString(3, finalEndDate); ps.setString(3, endDate);
});
}
// LOCATE未找到返回0
public int updateRegMedToolMark(String id, String addMedToolMark, String updateMedToolMark) {
String sql = "update register set medToolMark=? where id=? and Locate(?, ifNull(medToolMark, '')) = 0";
return DataBase.update(sql, ps -> {
ps.setString(1, updateMedToolMark);
ps.setString(2, id);
ps.setString(3, addMedToolMark);
});
}
public Register selectRegisterById(String id) {
String sql = "select * from register where id = ?";
return DataBase.selectOne(sql, Register.class, ps -> {
ps.setString(1, id);
}); });
} }
} }

@ -519,7 +519,6 @@ public class HisRegisterDao {
params.put("ReservationTransNo", ""); params.put("ReservationTransNo", "");
params.put("AfterTodayFlag", "0"); params.put("AfterTodayFlag", "0");
JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Reservation, params); JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Reservation, params);
if (!JsonResult.success()) { if (!JsonResult.success()) {
return resultList; return resultList;
@ -667,7 +666,7 @@ public class HisRegisterDao {
String address, returnDeptCode, deptName, hospitalAreaName; String address, returnDeptCode, deptName, hospitalAreaName;
RegisterDao registerDao = new RegisterDao(); RegisterDao registerDao = new RegisterDao();
List<Dept> wxDeptList = registerDao.selectDeptList(); List<Dept> dbDeptList = registerDao.selectDeptList();
String subDeptJson; String subDeptJson;
List<Dept> subDeptList; List<Dept> subDeptList;
@ -682,7 +681,7 @@ public class HisRegisterDao {
hospitalAreaName = nodeItem.getString("HospitalAreaName"); hospitalAreaName = nodeItem.getString("HospitalAreaName");
// 科室过滤 // 科室过滤
dept = registerDao.deptFilter(wxDeptList, returnDeptCode, deptName, address, hospitalAreaName); dept = registerDao.deptFilter(dbDeptList, returnDeptCode, deptName, address, hospitalAreaName);
if (dept != null) { if (dept != null) {
// 亚专科 // 亚专科
subDeptJson = nodeItem.getString("Code_YZKStr"); subDeptJson = nodeItem.getString("Code_YZKStr");

@ -180,7 +180,6 @@ public class SmsHelper {
flag = true; flag = true;
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
ErrorHelper.println(e); ErrorHelper.println(e);
} }
return flag; return flag;

@ -32,7 +32,7 @@ public class Result extends BaseResult {
/** /**
* 判断数据操作是否成功 * 判断数据操作是否成功
*/ */
public static Result change(Boolean flag) { public static Result isOK(Boolean flag) {
return flag ? Result.success() : Result.error(); return flag ? Result.success() : Result.error();
} }

@ -20,29 +20,29 @@ import java.math.BigDecimal;
@Slf4j @Slf4j
public class CasebookService { public class CasebookService {
public Result placeOrder(MerchantEnum merchantEnum, String ip, String openid, String patientId, String treatNum, String totalFee,String applyId,String getWay, String useToName) { public Result placeOrder(MerchantEnum merchantEnum, String ip, String openid, String patientId, String treatNum, String totalFee, String applyId, String getWay, String useToName) {
if (openid == null || patientId == null || totalFee == null) { if (openid == null || patientId == null || totalFee == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO)==0) { if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) {
return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); return Result.error(ResultEnum.PAY_MONEY_IS_ZERO);
} }
if(isPay(patientId,treatNum,applyId,getWay,useToName)){ if (isPay(patientId, treatNum, applyId, getWay, useToName)) {
log.info("{} [病历]订单已支付 applyId-{}, patientId={},treatNum-{},getWay-{},useToName-{}", merchantEnum.NAME, applyId,patientId,treatNum,getWay,useToName); log.info("{} [病历]订单已支付 applyId-{}, patientId={},treatNum-{},getWay-{},useToName-{}", merchantEnum.NAME, applyId, patientId, treatNum, getWay, useToName);
return Result.error(ResultEnum.APPLY_REPEAT); return Result.error(ResultEnum.APPLY_REPEAT);
} }
String outTradeNo = CodeHelper.getOutTradeNo(merchantEnum); String outTradeNo = CodeHelper.getOutTradeNo(merchantEnum);
if (!isSaveCasebookInfo(patientId,treatNum,applyId,new BigDecimal(totalFee),outTradeNo,getWay,useToName)) { if (!isSaveCasebookInfo(patientId, treatNum, applyId, new BigDecimal(totalFee), outTradeNo, getWay, useToName)) {
log.info("{} [病历]下单信息存储失败 applyId-{}, patientId={},treatNum-{}", merchantEnum.NAME, applyId,patientId,treatNum); log.info("{} [病历]下单信息存储失败 applyId-{}, patientId={},treatNum-{}", merchantEnum.NAME, applyId, patientId, treatNum);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
} }
String body = "病历复印缴费 住院号="+treatNum; String body = "病历复印缴费 住院号=" + treatNum;
JSONObject respJson = PayService.createOrder(merchantEnum, openid, patientId, totalFee, outTradeNo, PQREnum.CASEBOOK.CODE, ip, body); JSONObject respJson = PayService.createOrder(merchantEnum, openid, patientId, totalFee, outTradeNo, PQREnum.CASEBOOK.CODE, ip, body);
if (respJson == null) { if (respJson == null) {
@ -51,12 +51,12 @@ public class CasebookService {
return Result.success(respJson); return Result.success(respJson);
} }
public boolean isExit(String patientId, String treatNum,String getWay, String useToName){ public boolean isExit(String patientId, String treatNum, String getWay, String useToName) {
if (patientId == null||treatNum == null) { if (patientId == null || treatNum == null) {
log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},",patientId,treatNum); log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},", patientId, treatNum);
return false; return false;
} }
return new CasebookDao().selectIsExit(patientId,treatNum,getWay,useToName); return new CasebookDao().selectIsExit(patientId, treatNum, getWay, useToName);
} }
/** /**
@ -64,33 +64,34 @@ public class CasebookService {
* @param treatNum 住院号 * @param treatNum 住院号
* @return 是否成功 * @return 是否成功
*/ */
public boolean isSaveCasebookInfo(String patientId, String treatNum, String applyId,BigDecimal totalFee,String outTradeNo,String getWay, String useToName) { public boolean isSaveCasebookInfo(String patientId, String treatNum, String applyId, BigDecimal totalFee, String outTradeNo, String getWay, String useToName) {
if (patientId == null||treatNum == null) { if (patientId == null || treatNum == null) {
log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},totalFee-{}",patientId,treatNum,totalFee); log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},totalFee-{}", patientId, treatNum, totalFee);
return false; return false;
} }
return new CasebookDao().updatePayStatePre(patientId,treatNum,applyId,totalFee,outTradeNo,getWay,useToName); return new CasebookDao().updatePayStatePre(patientId, treatNum, applyId, totalFee, outTradeNo, getWay, useToName);
} }
public boolean isPay(String patientId, String treatNum, String applyId,String getWay, String useToName){ public boolean isPay(String patientId, String treatNum, String applyId, String getWay, String useToName) {
if (patientId == null||treatNum == null) { if (patientId == null || treatNum == null) {
log.info("[病历复印]查重失败,patientId-{},treatNum-{},applyId-{}",patientId,treatNum,applyId); log.info("[病历复印]查重失败,patientId-{},treatNum-{},applyId-{}", patientId, treatNum, applyId);
return false; return false;
} }
return new CasebookDao().selectIsPay(patientId,treatNum,applyId,getWay,useToName); return new CasebookDao().selectIsPay(patientId, treatNum, applyId, getWay, useToName);
} }
/** /**
* 新增预约记录首次存入 * 新增预约记录首次存入
*
* @param casebook 病历订单信息 * @param casebook 病历订单信息
* @return 是否成功 * @return 是否成功
*/ */
public boolean addApply(PayCasebook casebook,String openId,String patientId){ public boolean addApply(PayCasebook casebook, String openId, String patientId) {
if (casebook == null) { if (casebook == null) {
log.info("casebook is null"); log.info("casebook is null");
return false; return false;
} }
return new CasebookDao().insert(casebook,openId,patientId); return new CasebookDao().insert(casebook, openId, patientId);
} }
public void payNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo) { public void payNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo) {
@ -112,15 +113,15 @@ public class CasebookService {
log.info("[病历]修改支付状态失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); log.info("[病历]修改支付状态失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId);
} }
log.info("[病历] 开始回调支付状态 borrowNo-{}",casebookId); log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId);
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params->{ String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> {
params.put("borrowNo",casebookId); params.put("borrowNo", casebookId);
params.put("payDateTime", DateHelper.getCurDateTime()); params.put("payDateTime", DateHelper.getCurDateTime());
}); });
log.info("[病历]回调返回 resp={}", jsonString); log.info("[病历]回调返回 resp={}", jsonString);
String code = JsonHelper.parseObject(jsonString).getString("Code"); String code = JsonHelper.parseObject(jsonString).getString("Code");
if (code==null) { if (code == null) {
if (!casebookDao.updateNotifyOk(outTradeNo)) { if (!casebookDao.updateNotifyOk(outTradeNo)) {
log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId);
} }

@ -139,8 +139,8 @@ public class HCodeService {
} }
public static Patient appBindHealthCard(String healthCode){ public static Patient appBindHealthCard(String healthCode) {
if(healthCode==null){ if (healthCode == null) {
return null; return null;
} }
String appToken = getAppToken(); String appToken = getAppToken();
@ -150,7 +150,7 @@ public class HCodeService {
HealthCardServerImpl healthCard = new HealthCardServerImpl(H_APP_SECRET); HealthCardServerImpl healthCard = new HealthCardServerImpl(H_APP_SECRET);
String requestId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); String requestId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();
CommonIn commonIn = new CommonIn(appToken, requestId, H_HOSPITAL_ID, 0); CommonIn commonIn = new CommonIn(appToken, requestId, H_HOSPITAL_ID, 0);
JSONObject resultObj = healthCard.getHealthCardByHealthCode(commonIn,healthCode); JSONObject resultObj = healthCard.getHealthCardByHealthCode(commonIn, healthCode);
JSONObject rspObj = resultObj.getJSONObject("rsp"); JSONObject rspObj = resultObj.getJSONObject("rsp");
JSONObject cardJson = rspObj.getJSONObject("card"); JSONObject cardJson = rspObj.getJSONObject("card");
Patient patient = new Patient(); Patient patient = new Patient();
@ -512,7 +512,7 @@ public class HCodeService {
JSONObject resultObj = healthCard.getDynamicQRCode(commonIn, healthCardId, "01", idCardNo, codeType); JSONObject resultObj = healthCard.getDynamicQRCode(commonIn, healthCardId, "01", idCardNo, codeType);
JSONObject commonOut = resultObj.getJSONObject("commonOut"); JSONObject commonOut = resultObj.getJSONObject("commonOut");
if (!"0".equals(commonOut.getString("resultCode"))) { if (!"0".equals(commonOut.getString("resultCode"))) {
log.info("获取健康卡二维码失败, resp-{}",resultObj); log.info("获取健康卡二维码失败, resp-{}", resultObj);
return null; return null;
} }
return resultObj.getJSONObject("rsp"); return resultObj.getJSONObject("rsp");

@ -147,7 +147,7 @@ public class MedicalService {
if (result != null) { if (result != null) {
return result; return result;
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }
@ -238,7 +238,7 @@ public class MedicalService {
return result; return result;
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { // 支付方式异常 if (merchantEnum == null) { // 支付方式异常
return Result.error(ResultEnum.PAY_TYPE_ERROR); return Result.error(ResultEnum.PAY_TYPE_ERROR);
} }

@ -133,7 +133,7 @@ public class PayService {
} }
// 支付类型判断 // 支付类型判断
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
if (merchantEnum == null) { if (merchantEnum == null) {
throw new ServiceException(ResultEnum.PAY_TYPE_ERROR); throw new ServiceException(ResultEnum.PAY_TYPE_ERROR);
} }
@ -299,9 +299,9 @@ public class PayService {
return order; return order;
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
if (merchantEnum == null) { if (merchantEnum == null) {
merchantEnum = MerchantEnum.getMerchantEnumByPayWay(payWay); merchantEnum = MerchantEnum.findEnumByPayWay(payWay);
if (merchantEnum == null) { if (merchantEnum == null) {
order.setErrorMsg("支付方式不存在"); order.setErrorMsg("支付方式不存在");
return order; return order;

@ -34,9 +34,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.*;
import java.util.HashMap; import java.util.stream.Collectors;
import java.util.Map;
/** /**
* 挂号业务层 * 挂号业务层
@ -402,7 +401,7 @@ public class RegService {
} }
String outTradeNo = reg.getOutTradeNo(); String outTradeNo = reg.getOutTradeNo();
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
JsonResult JsonResult = new HisRegisterDao().cancelReserve(patientId, tradeNo, merchantEnum); JsonResult JsonResult = new HisRegisterDao().cancelReserve(patientId, tradeNo, merchantEnum);
if (!JsonResult.success()) { if (!JsonResult.success()) {
@ -477,7 +476,7 @@ public class RegService {
String tradeNo = reg.getTradeNo(); String tradeNo = reg.getTradeNo();
String outTradeNo = reg.getOutTradeNo(); String outTradeNo = reg.getOutTradeNo();
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
JsonResult JsonResult = new HisRegisterDao().refundRegister(tradeNo, merchantEnum); JsonResult JsonResult = new HisRegisterDao().refundRegister(tradeNo, merchantEnum);
if (!JsonResult.success()) { if (!JsonResult.success()) {
@ -739,7 +738,7 @@ public class RegService {
return noPayTime; return noPayTime;
} }
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode);
if (merchantEnum == null) { if (merchantEnum == null) {
return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常
} }
@ -808,4 +807,76 @@ public class RegService {
public boolean updateMicroOrderState(String outTradeNo, String bankTransNo, String openid) { public boolean updateMicroOrderState(String outTradeNo, String bankTransNo, String openid) {
return new RegisterDao().updateMicroOrderState(outTradeNo, bankTransNo, openid); return new RegisterDao().updateMicroOrderState(outTradeNo, bankTransNo, openid);
} }
public List<Register> getHisRegReserveRecords(String patientId, String regDate) {
return new HisRegisterDao().getRegReserveHistory(patientId, regDate);
}
public List<Register> getHisRegRecords(String patientId, String begDate, String endDate) throws ServiceException {
if (begDate == null || endDate == null) {
throw new ServiceException("查询日期异常");
}
List<Register> hisRegList = new HisRegisterDao().getRegTodayHistory(patientId, begDate.equals(endDate) ? begDate : null); // 起止日期相同时,传递挂号日期
List<Register> dataList = new ArrayList<>();
String regDate;
for (Register reg : hisRegList) {
regDate = reg.getRegDate();
if (regDate != null) {
regDate = DateHelper.dateFormatShort(regDate);
if (regDate != null && DateHelper.inDateRange(begDate, endDate, regDate, DateHelper.DateEnum.yyyy_MM_dd)) {
dataList.add(reg);
}
}
}
return dataList;
}
public Register findHisRegRecord(String patientId, String regDate, String hisTransNo) throws ServiceException {
if (ObjectUtils.isEmpty(hisTransNo) || ObjectUtils.isEmpty(regDate)) {
throw new ServiceException(ResultEnum.PARAM_IS_BLANK);
}
String curDate = DateHelper.getCurDate();
List<Register> hisRegRecords;
if (curDate.equals(regDate)) { // 今日挂号及以前
hisRegRecords = getHisRegRecords(patientId, regDate, regDate);
} else { // 预约挂号
hisRegRecords = getHisRegReserveRecords(patientId, regDate);
}
if (hisRegRecords.isEmpty()) {
throw new ServiceException("错误:HIS中未查询到挂号记录 日期:" + regDate);
}
List<Register> filterList = hisRegRecords.stream().filter(o -> hisTransNo.equals(o.getHisTransNo())).collect(Collectors.toList());
if (filterList.size() == 1) {
return filterList.get(0);
}
throw new ServiceException(filterList.isEmpty()
? "错误:HIS中未找到对应的挂号信息"
: "错误:HIS中同一科室查询到多条挂号记录");
}
public boolean updateRegMedToolMark(String id, String addMedToolMark, String openId) throws ServiceException {
RegisterDao regDao = new RegisterDao();
Register findInfo = regDao.selectRegisterById(id);
if (findInfo == null) {
throw new ServiceException("未找到挂号信息");
}
String dbMedToolMark = findInfo.getMedToolMark();
String updateMedToolMark = addMedToolMark;
if (!ObjectUtils.isEmpty(dbMedToolMark)) {
if (dbMedToolMark.contains(addMedToolMark)) { // 已存在
throw new ServiceException("状态已存在");
} else {
updateMedToolMark = dbMedToolMark + "," + addMedToolMark;
}
}
return regDao.updateRegMedToolMark(id, addMedToolMark, updateMedToolMark) > 0;
}
} }

@ -105,7 +105,7 @@ public class PayCache {
} }
// HIS处方缴费 // HIS处方缴费
MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo);
if (MerchantEnum.ALI.equals(merchantEnum)) { if (MerchantEnum.ALI.equals(merchantEnum)) {
log.info("[处方]定时器,支付宝订单不处理"); log.info("[处方]定时器,支付宝订单不处理");
RECIPE_ORDER_CACHE.remove(tradeNo); RECIPE_ORDER_CACHE.remove(tradeNo);

@ -42,7 +42,7 @@ public class QServlet extends HttpServlet {
String userAgent = request.getHeader("user-agent"); String userAgent = request.getHeader("user-agent");
if (!ObjectUtils.isEmpty(userAgent)) { if (!ObjectUtils.isEmpty(userAgent)) {
merchantEnum = MerchantEnum.getMerchantEnumByQr(userAgent); merchantEnum = MerchantEnum.findEnumByQr(userAgent);
if (merchantEnum == null) { if (merchantEnum == null) {
log.info(ResultEnum.PAY_TYPE_NOT_SUPPORT.message); log.info(ResultEnum.PAY_TYPE_NOT_SUPPORT.message);
HttpHelper.outRespAlert(response, ResultEnum.PAY_TYPE_NOT_SUPPORT.message); HttpHelper.outRespAlert(response, ResultEnum.PAY_TYPE_NOT_SUPPORT.message);

@ -93,8 +93,6 @@ public class WxCacheHelper {
return null; return null;
} }
public static final String JSAPI_TICKET_CACHE_NAME = "jsapi_ticket"; public static final String JSAPI_TICKET_CACHE_NAME = "jsapi_ticket";

Loading…
Cancel
Save