diff --git a/src/main/java/com/ynxbd/common/action/AccountsAction.java b/src/main/java/com/ynxbd/common/action/AccountsAction.java index 766cce7..6193cd1 100644 --- a/src/main/java/com/ynxbd/common/action/AccountsAction.java +++ b/src/main/java/com/ynxbd/common/action/AccountsAction.java @@ -70,7 +70,7 @@ public class AccountsAction extends BaseAction { /** - * [HIS]查询交易流水 + * [HIS]查询交易流水(仅能查询线上缴费记录) * * @param begDate 开始日期 * @param endDate 结束日期 @@ -108,7 +108,7 @@ public class AccountsAction extends BaseAction { } List resultList = jsonResult.getDataMapList(HisTransaction.class, "Item"); - if (resultList.size() == 0) { + if (resultList.isEmpty()) { return Result.error(ResultEnum.INTERFACE_HIS_INVOKE_ERROR); } @@ -121,7 +121,7 @@ public class AccountsAction extends BaseAction { dataMap.put("list", resultList); PEnum pEnum = null; try { - pEnum = PEnum.getByOrderNo(bankTransNo, tradeNo); + pEnum = PEnum.getByOrderNo(bankTransNo, tradeNo); } catch (ServiceException e) { log.info(e.getMessage()); } @@ -215,7 +215,7 @@ public class AccountsAction extends BaseAction { 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); return bill == null ? Result.error() : Result.success(bill); } catch (ServiceException e) { @@ -306,7 +306,7 @@ public class AccountsAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_INVALID); } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(callNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(callNo); if (merchantEnum == null) { return Result.error(ResultEnum.PARAM_IS_INVALID); } @@ -425,7 +425,7 @@ public class AccountsAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_INVALID); } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(callNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(callNo); if (merchantEnum == null) { return Result.error(ResultEnum.PARAM_IS_INVALID); } diff --git a/src/main/java/com/ynxbd/common/action/ApiAction.java b/src/main/java/com/ynxbd/common/action/ApiAction.java index 069883c..0608681 100644 --- a/src/main/java/com/ynxbd/common/action/ApiAction.java +++ b/src/main/java/com/ynxbd/common/action/ApiAction.java @@ -7,12 +7,9 @@ import com.ynxbd.common.bean.sms.SmsTemplate; import com.ynxbd.common.helper.common.*; import com.ynxbd.common.result.Result; 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.utils.DesEncryptHelper; import com.ynxbd.wx.wxfactory.ReqParamHelper; -import com.ynxbd.wx.wxfactory.WxAuthHelper; import com.ynxbd.wx.wxfactory.WxCacheHelper; import com.ynxbd.wx.wxfactory.bean.AccessToken; import lombok.extern.slf4j.Slf4j; @@ -67,9 +64,13 @@ public class ApiAction extends BaseAction { @Action("getWxJsapiTicket") public Result getWxJsapiTicket() { String ticket = WxCacheHelper.getJsapiTicket(); - if (ticket ==null) + if (ticket == null) { return Result.error(); - return Result.success(ticket); + } + Map 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") - public Result getEnPatientId(String patientId){ - if(patientId==null){ + public Result getEnPatientId(String patientId) { + if (patientId == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } patientId = ReqParamHelper.encode(patientId); - for (int i = 0; i< 3;i++){ + for (int i = 0; i < 3; i++) { patientId = Base64.getEncoder().encodeToString(patientId.getBytes()); } return Result.success(patientId); @@ -213,11 +214,10 @@ public class ApiAction extends BaseAction { @Action("version") public Result version() { - return Result.success(VersionHelper.getAppVersion()); + return Result.success(VersionHelper.getAppVersion()); } - /** * 第三方使用勿动! */ diff --git a/src/main/java/com/ynxbd/common/action/HealthCodeAction.java b/src/main/java/com/ynxbd/common/action/HealthCodeAction.java index 882ee50..06c34ca 100644 --- a/src/main/java/com/ynxbd/common/action/HealthCodeAction.java +++ b/src/main/java/com/ynxbd/common/action/HealthCodeAction.java @@ -388,7 +388,7 @@ public class HealthCodeAction extends BaseAction { if (orderId == null || registerOrderId == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); // 参数为空 } - return Result.change(HCodeService.checkUniformVerifyResult(orderId, registerOrderId)); + return Result.isOK(HCodeService.checkUniformVerifyResult(orderId, registerOrderId)); } diff --git a/src/main/java/com/ynxbd/common/action/RegisterAction.java b/src/main/java/com/ynxbd/common/action/RegisterAction.java index 83696b5..6e055bc 100644 --- a/src/main/java/com/ynxbd/common/action/RegisterAction.java +++ b/src/main/java/com/ynxbd/common/action/RegisterAction.java @@ -14,6 +14,8 @@ import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.service.DoctorService; +import com.ynxbd.common.service.RegService; +import com.ynxbd.wx.wxfactory.ReqParamHelper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import org.apache.struts2.convention.annotation.Action; @@ -92,7 +94,7 @@ public class RegisterAction extends BaseAction { List deptList = new HisRegisterDao().getTimeDeptList(begDate, endDate, deptCode); - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(merCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode); if (MerchantEnum.ALI.equals(merchantEnum)) { AliUploadHelper.uploadDept(deptList, true); } @@ -157,7 +159,7 @@ public class RegisterAction extends BaseAction { resultList.add(dept); } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(merCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode); if (MerchantEnum.ALI.equals(merchantEnum)) { AliUploadHelper.uploadDept(resultList, isReserve); } @@ -189,67 +191,68 @@ public class RegisterAction extends BaseAction { return Result.success(doctorList); } - /** - * [今日挂号]查询挂号记录 + * [预约挂号]获取预约记录(旧) */ - @Action("getSiteHistory") - public Result getSiteHistory(String begDate, String endDate, String patientId) { - log.info("[现场挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); + @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 resultList = new HisRegisterDao().getRegReserveHistory(patientId, null); + return Result.success(resultList); + } - patientId = getDecodeString(patientId); - List hisList = new HisRegisterDao().getRegTodayHistory(patientId, null); - - List resultList = new ArrayList<>(); - String regDate; - for (Register reg : hisList) { - regDate = reg.getRegDate(); - if (regDate != null) { - regDate = DateHelper.dateFormatShort(regDate); - if (regDate != null && DateHelper.inDateRange(begDate, endDate, regDate, DateHelper.DateEnum.yyyy_MM_dd)) { - resultList.add(reg); - } + /** + * [挂号]查询挂号记录(旧) + */ + @Action("getSiteHistory") + public Result getSiteHistory(String begDate, String endDate, String patientId) { + try { + log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); + if (patientId == null || begDate == null || endDate == null) { + return Result.error(ResultEnum.PARAM_IS_DEFECT); } + patientId = getDecodeString(patientId); + + List regRecords = new RegService().getHisRegRecords(patientId, begDate, endDate); + return Result.success(regRecords); + } catch (Exception e) { + return Result.error(e); } - return Result.success(resultList); } - /** - * [挂号]查询挂号记录 + * [挂号]查询挂号历史 */ - @Action("getRegList") - public Result getRegList(String begDate, String endDate, String openid) { + @Action("getHisRegRecords") + public Result getRegHistory(String begDate, String endDate, String patientId) { try { - log.info("[挂号]查询挂号记录 begDate={}, endDate={}, openid={}", begDate, endDate, openid); - if (begDate == null || endDate == null || openid == null) { + log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); + if (patientId == null || begDate == null || endDate == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - List regList = new RegisterDao().selectListByRegDate(begDate, endDate, openid); - for (Register item : regList) { - item.filterInfo(); // 数据过滤 - } - return Result.success(regList); + patientId = getDecodeString(patientId); + + List regRecords = new RegService().getHisRegRecords(patientId, begDate, endDate); + return Result.success(regRecords); } catch (Exception e) { return Result.error(e); } } - /** * [预约挂号]获取预约记录 */ - @Action("getReserveHistory") - public Result getReserveHistory(String begDate, String endDate, String patientId) { - log.info("[预约挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); + @Action("getHisRegReserveRecords") + public Result getHisRegReserveRecords(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 resultList = new HisRegisterDao().getRegReserveHistory(patientId, null); - return Result.success(resultList); + List dataList = new RegService().getHisRegReserveRecords(patientId, null); + 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 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 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 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); + } + } + + // /** // * [预约挂号]获取指定科室医生信息 // */ diff --git a/src/main/java/com/ynxbd/common/action/SmsAction.java b/src/main/java/com/ynxbd/common/action/SmsAction.java index 066a4d4..e72e495 100644 --- a/src/main/java/com/ynxbd/common/action/SmsAction.java +++ b/src/main/java/com/ynxbd/common/action/SmsAction.java @@ -13,8 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; -import java.sql.Array; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -167,7 +165,7 @@ public class SmsAction extends BaseAction { default: return Result.error(ResultEnum.PARAM_CALL_NO_NOT_FOUND); } - return Result.change(isFlag); + return Result.isOK(isFlag); } diff --git a/src/main/java/com/ynxbd/common/action/XBDAction.java b/src/main/java/com/ynxbd/common/action/XBDAction.java index 2aa1a71..d1d1574 100644 --- a/src/main/java/com/ynxbd/common/action/XBDAction.java +++ b/src/main/java/com/ynxbd/common/action/XBDAction.java @@ -173,7 +173,7 @@ public class XBDAction extends BaseAction { @Action("caseBookPay") 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); - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } 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 16034a3..12d66a9 100644 --- a/src/main/java/com/ynxbd/common/action/pay/PayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/PayAction.java @@ -79,7 +79,7 @@ public class PayAction extends BaseAction { */ @Action("recipePay") 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) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } @@ -146,7 +146,7 @@ public class PayAction extends BaseAction { if (new BigDecimal(totalFee).compareTo(BigDecimal.ZERO) == 0) { return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 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) { log.info("[体检预约]取消预约退费,recipeId-{}.payCode-{},outTradeNo-{},totalFee-{},openid-{}", recipeId, payCode, outTradeNo, totalFee, openid); PeisService peisService = new PeisService(); - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); PeisDao peisDao = new PeisDao(); Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo); if (new BigDecimal(totalFee).compareTo(recipe.getTotalFee()) != 0) { @@ -210,7 +210,7 @@ public class PayAction extends BaseAction { return result; } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); @@ -826,7 +826,7 @@ public class PayAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_INVALID); } } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT); } @@ -856,7 +856,7 @@ public class PayAction extends BaseAction { */ @Action("refundOLOrder") 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) { return Result.error(ResultEnum.PAY_TYPE_NOT_SUPPORT); } @@ -884,7 +884,7 @@ public class PayAction extends BaseAction { @Action("ocPay") 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) { - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } diff --git a/src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java b/src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java index 5dd142d..e601485 100644 --- a/src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java +++ b/src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java @@ -53,7 +53,7 @@ public class ThirdPartyPayAction extends BaseAction { if (ObjectUtils.isEmpty(sourceId) || ObjectUtils.isEmpty(patientId) || ObjectUtils.isEmpty(date) || money == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常 } diff --git a/src/main/java/com/ynxbd/common/bean/enums/MerchantEnum.java b/src/main/java/com/ynxbd/common/bean/enums/MerchantEnum.java index 94a47fe..7c54f8a 100644 --- a/src/main/java/com/ynxbd/common/bean/enums/MerchantEnum.java +++ b/src/main/java/com/ynxbd/common/bean/enums/MerchantEnum.java @@ -46,8 +46,6 @@ public enum MerchantEnum { - - public final String CODE; public final String NAME; @@ -78,7 +76,7 @@ public enum MerchantEnum { this.PAY_WAY_MICRO = PAY_WAY_MICRO; } - public static MerchantEnum getMerchantEnumByCode(String code) { + public static MerchantEnum findEnumByCode(String code) { if (ObjectUtils.isEmpty(code)) { return null; } @@ -98,7 +96,7 @@ public enum MerchantEnum { * @param outTradeNo 商户订单号 * @return 支付类型 */ - public static MerchantEnum getMerchantEnumByOutTradeNo(String outTradeNo) { + public static MerchantEnum findEnumByOutTradeNo(String outTradeNo) { if (outTradeNo == null) { return null; } @@ -128,7 +126,7 @@ public enum MerchantEnum { * @param payWay 支付代码 * @return 支付方式 */ - public static MerchantEnum getMerchantEnumByPayWay(String payWay) { + public static MerchantEnum findEnumByPayWay(String payWay) { if (ObjectUtils.isEmpty(payWay)) { return MerchantEnum.WX; } @@ -146,7 +144,7 @@ public enum MerchantEnum { * @param userAgent 用户客户端信息 * @return 支付类型 */ - public static MerchantEnum getMerchantEnumByQr(String userAgent) { + public static MerchantEnum findEnumByQr(String userAgent) { if (userAgent.contains("MicroMessenger")) { return MerchantEnum.WX; diff --git a/src/main/java/com/ynxbd/common/bean/pay/Register.java b/src/main/java/com/ynxbd/common/bean/pay/Register.java index d6a67ba..274d94f 100644 --- a/src/main/java/com/ynxbd/common/bean/pay/Register.java +++ b/src/main/java/com/ynxbd/common/bean/pay/Register.java @@ -18,6 +18,7 @@ import java.math.BigDecimal; @NoArgsConstructor public class Register extends Order { private Long id; + private String enId; private String deptCode; private String subDeptCode; @@ -75,5 +76,6 @@ public class Register extends Order { private String orderFromOwner; // 判断是否为分时段挂号 private Boolean isSplitTime; - + // 就医助手流程标记 + private String medToolMark; } diff --git a/src/main/java/com/ynxbd/common/dao/RegisterDao.java b/src/main/java/com/ynxbd/common/dao/RegisterDao.java index 9dc9b10..5172fab 100644 --- a/src/main/java/com/ynxbd/common/dao/RegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/RegisterDao.java @@ -224,7 +224,7 @@ public class RegisterDao { * * @param deptCode 科室code */ - public Dept deptFilter(List wxDeptList, String deptCode, String deptName, String address, String hospitalAreaName) { + public Dept deptFilter(List dbDeptList, String deptCode, String deptName, String address, String hospitalAreaName) { Dept dept = new Dept(); dept.setDeptCode(deptCode); dept.setDeptName(deptName); @@ -235,26 +235,20 @@ public class RegisterDao { return dept; } - if (wxDeptList.size() == 0) { + if (dbDeptList.isEmpty()) { return dept; } - Dept wxDept = wxDeptList.stream().filter(item -> + Dept dbDept = dbDeptList.stream().filter(item -> deptCode.equals(item.getDeptCode())).findAny().orElse(null); - - if (wxDept != null) { - Boolean isDisabled = wxDept.getIsDisabled(); - Integer deletedState = wxDept.getDeletedState(); + if (dbDept != null) { + Boolean isDisabled = dbDept.getIsDisabled(); + Integer deletedState = dbDept.getDeletedState(); if ((isDisabled != null && isDisabled) || (deletedState != null && deletedState != 0)) { // 禁用 | 移除 返回null return null; } - wxDept.setDeptName(deptName); - wxDept.setDescription(null); -// String wxAddress = wxDept.getAddress(); -// wxDept.setAddress(!ObjectUtils.isEmpty(wxAddress) ? wxAddress : address); - wxDept.setHospitalAreaName(hospitalAreaName); - return wxDept; + dept.setAddress(ObjectUtils.isEmpty(address) ? dbDept.getAddress() : address); // HIS优先级最高 } return dept; } @@ -720,17 +714,40 @@ public class RegisterDao { }); } + /** + * [就医助手]根据挂号日期范围,查询挂号记录 + * + * @param begDate 开始日期 + * @param endDate 结束日期 + * @param openid openid + */ public List selectListByRegDate(String begDate, String endDate, String openid) throws ServiceException { String finalEndDate = DateHelper.getMoveDate(endDate, 1); if (finalEndDate == null) { 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 order by regDate desc, updateTime desc"; + 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"; return DataBase.select(sql, Register.class, ps -> { ps.setString(1, openid); 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); }); } } 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 b1c65dd..40caafc 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java @@ -519,7 +519,6 @@ public class HisRegisterDao { params.put("ReservationTransNo", ""); params.put("AfterTodayFlag", "0"); - JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Reservation, params); if (!JsonResult.success()) { return resultList; @@ -667,7 +666,7 @@ public class HisRegisterDao { String address, returnDeptCode, deptName, hospitalAreaName; RegisterDao registerDao = new RegisterDao(); - List wxDeptList = registerDao.selectDeptList(); + List dbDeptList = registerDao.selectDeptList(); String subDeptJson; List subDeptList; @@ -682,7 +681,7 @@ public class HisRegisterDao { hospitalAreaName = nodeItem.getString("HospitalAreaName"); // 科室过滤 - dept = registerDao.deptFilter(wxDeptList, returnDeptCode, deptName, address, hospitalAreaName); + dept = registerDao.deptFilter(dbDeptList, returnDeptCode, deptName, address, hospitalAreaName); if (dept != null) { // 亚专科 subDeptJson = nodeItem.getString("Code_YZKStr"); diff --git a/src/main/java/com/ynxbd/common/helper/common/SmsHelper.java b/src/main/java/com/ynxbd/common/helper/common/SmsHelper.java index 006a384..4a0980b 100644 --- a/src/main/java/com/ynxbd/common/helper/common/SmsHelper.java +++ b/src/main/java/com/ynxbd/common/helper/common/SmsHelper.java @@ -180,7 +180,6 @@ public class SmsHelper { flag = true; } } catch (Exception e) { - e.printStackTrace(); ErrorHelper.println(e); } return flag; diff --git a/src/main/java/com/ynxbd/common/result/Result.java b/src/main/java/com/ynxbd/common/result/Result.java index 9130cdc..89ea5f6 100644 --- a/src/main/java/com/ynxbd/common/result/Result.java +++ b/src/main/java/com/ynxbd/common/result/Result.java @@ -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(); } diff --git a/src/main/java/com/ynxbd/common/service/CasebookService.java b/src/main/java/com/ynxbd/common/service/CasebookService.java index f3ec8de..9459733 100644 --- a/src/main/java/com/ynxbd/common/service/CasebookService.java +++ b/src/main/java/com/ynxbd/common/service/CasebookService.java @@ -20,29 +20,29 @@ import java.math.BigDecimal; @Slf4j 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) { 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); } - if(isPay(patientId,treatNum,applyId,getWay,useToName)){ - log.info("{} [病历]订单已支付 applyId-{}, patientId={},treatNum-{},getWay-{},useToName-{}", merchantEnum.NAME, applyId,patientId,treatNum,getWay,useToName); + if (isPay(patientId, treatNum, applyId, getWay, useToName)) { + log.info("{} [病历]订单已支付 applyId-{}, patientId={},treatNum-{},getWay-{},useToName-{}", merchantEnum.NAME, applyId, patientId, treatNum, getWay, useToName); return Result.error(ResultEnum.APPLY_REPEAT); } String outTradeNo = CodeHelper.getOutTradeNo(merchantEnum); - if (!isSaveCasebookInfo(patientId,treatNum,applyId,new BigDecimal(totalFee),outTradeNo,getWay,useToName)) { - log.info("{} [病历]下单信息存储失败 applyId-{}, patientId={},treatNum-{}", merchantEnum.NAME, applyId,patientId,treatNum); + if (!isSaveCasebookInfo(patientId, treatNum, applyId, new BigDecimal(totalFee), outTradeNo, getWay, useToName)) { + log.info("{} [病历]下单信息存储失败 applyId-{}, patientId={},treatNum-{}", merchantEnum.NAME, applyId, patientId, treatNum); 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); if (respJson == null) { @@ -51,46 +51,47 @@ public class CasebookService { return Result.success(respJson); } - public boolean isExit(String patientId, String treatNum,String getWay, String useToName){ - if (patientId == null||treatNum == null) { - log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},",patientId,treatNum); + public boolean isExit(String patientId, String treatNum, String getWay, String useToName) { + if (patientId == null || treatNum == null) { + log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},", patientId, treatNum); return false; } - return new CasebookDao().selectIsExit(patientId,treatNum,getWay,useToName); + return new CasebookDao().selectIsExit(patientId, treatNum, getWay, useToName); } /** * @param patientId 患者id - * @param treatNum 住院号 + * @param treatNum 住院号 * @return 是否成功 */ - public boolean isSaveCasebookInfo(String patientId, String treatNum, String applyId,BigDecimal totalFee,String outTradeNo,String getWay, String useToName) { - if (patientId == null||treatNum == null) { - log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},totalFee-{}",patientId,treatNum,totalFee); + public boolean isSaveCasebookInfo(String patientId, String treatNum, String applyId, BigDecimal totalFee, String outTradeNo, String getWay, String useToName) { + if (patientId == null || treatNum == null) { + log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},totalFee-{}", patientId, treatNum, totalFee); 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){ - if (patientId == null||treatNum == null) { - log.info("[病历复印]查重失败,patientId-{},treatNum-{},applyId-{}",patientId,treatNum,applyId); + public boolean isPay(String patientId, String treatNum, String applyId, String getWay, String useToName) { + if (patientId == null || treatNum == null) { + log.info("[病历复印]查重失败,patientId-{},treatNum-{},applyId-{}", patientId, treatNum, applyId); return false; } - return new CasebookDao().selectIsPay(patientId,treatNum,applyId,getWay,useToName); + return new CasebookDao().selectIsPay(patientId, treatNum, applyId, getWay, useToName); } /** * 新增预约记录首次存入 + * * @param casebook 病历订单信息 * @return 是否成功 */ - public boolean addApply(PayCasebook casebook,String openId,String patientId){ + public boolean addApply(PayCasebook casebook, String openId, String patientId) { if (casebook == null) { log.info("casebook is null"); 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) { @@ -112,15 +113,15 @@ public class CasebookService { log.info("[病历]修改支付状态失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); } - log.info("[病历] 开始回调支付状态 borrowNo-{}",casebookId); - String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params->{ - params.put("borrowNo",casebookId); + log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId); + String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> { + params.put("borrowNo", casebookId); params.put("payDateTime", DateHelper.getCurDateTime()); }); log.info("[病历]回调返回 resp={}", jsonString); String code = JsonHelper.parseObject(jsonString).getString("Code"); - if (code==null) { + if (code == null) { if (!casebookDao.updateNotifyOk(outTradeNo)) { log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); } diff --git a/src/main/java/com/ynxbd/common/service/HCodeService.java b/src/main/java/com/ynxbd/common/service/HCodeService.java index 89bfe73..84bda98 100644 --- a/src/main/java/com/ynxbd/common/service/HCodeService.java +++ b/src/main/java/com/ynxbd/common/service/HCodeService.java @@ -139,8 +139,8 @@ public class HCodeService { } - public static Patient appBindHealthCard(String healthCode){ - if(healthCode==null){ + public static Patient appBindHealthCard(String healthCode) { + if (healthCode == null) { return null; } String appToken = getAppToken(); @@ -150,7 +150,7 @@ public class HCodeService { HealthCardServerImpl healthCard = new HealthCardServerImpl(H_APP_SECRET); String requestId = UUID.randomUUID().toString().replaceAll("-", "").toUpperCase(); 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 cardJson = rspObj.getJSONObject("card"); Patient patient = new Patient(); @@ -164,7 +164,7 @@ public class HCodeService { String phone1 = cardJson.getString("phone1"); String phone2 = cardJson.getString("phone2"); patient.setTel(ObjectUtils.isEmpty(phone1) ? phone2 : phone1); - return patient; + return patient; } /** @@ -512,7 +512,7 @@ public class HCodeService { JSONObject resultObj = healthCard.getDynamicQRCode(commonIn, healthCardId, "01", idCardNo, codeType); JSONObject commonOut = resultObj.getJSONObject("commonOut"); if (!"0".equals(commonOut.getString("resultCode"))) { - log.info("获取健康卡二维码失败, resp-{}",resultObj); + log.info("获取健康卡二维码失败, resp-{}", resultObj); return null; } return resultObj.getJSONObject("rsp"); diff --git a/src/main/java/com/ynxbd/common/service/MedicalService.java b/src/main/java/com/ynxbd/common/service/MedicalService.java index ba434bc..b657979 100644 --- a/src/main/java/com/ynxbd/common/service/MedicalService.java +++ b/src/main/java/com/ynxbd/common/service/MedicalService.java @@ -147,7 +147,7 @@ public class MedicalService { if (result != null) { return result; } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } @@ -238,7 +238,7 @@ public class MedicalService { return result; } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { // 支付方式异常 return Result.error(ResultEnum.PAY_TYPE_ERROR); } diff --git a/src/main/java/com/ynxbd/common/service/PayService.java b/src/main/java/com/ynxbd/common/service/PayService.java index e0a421d..d7f882a 100644 --- a/src/main/java/com/ynxbd/common/service/PayService.java +++ b/src/main/java/com/ynxbd/common/service/PayService.java @@ -133,7 +133,7 @@ public class PayService { } // 支付类型判断 - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); if (merchantEnum == null) { throw new ServiceException(ResultEnum.PAY_TYPE_ERROR); } @@ -299,9 +299,9 @@ public class PayService { return order; } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); if (merchantEnum == null) { - merchantEnum = MerchantEnum.getMerchantEnumByPayWay(payWay); + merchantEnum = MerchantEnum.findEnumByPayWay(payWay); if (merchantEnum == null) { order.setErrorMsg("支付方式不存在"); return order; diff --git a/src/main/java/com/ynxbd/common/service/RegService.java b/src/main/java/com/ynxbd/common/service/RegService.java index 0808075..5d1e540 100644 --- a/src/main/java/com/ynxbd/common/service/RegService.java +++ b/src/main/java/com/ynxbd/common/service/RegService.java @@ -34,9 +34,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 挂号业务层 @@ -402,7 +401,7 @@ public class RegService { } String outTradeNo = reg.getOutTradeNo(); - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); JsonResult JsonResult = new HisRegisterDao().cancelReserve(patientId, tradeNo, merchantEnum); if (!JsonResult.success()) { @@ -477,7 +476,7 @@ public class RegService { String tradeNo = reg.getTradeNo(); String outTradeNo = reg.getOutTradeNo(); - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); JsonResult JsonResult = new HisRegisterDao().refundRegister(tradeNo, merchantEnum); if (!JsonResult.success()) { @@ -739,7 +738,7 @@ public class RegService { return noPayTime; } - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByCode(payCode); + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(payCode); if (merchantEnum == null) { return Result.error(ResultEnum.PAY_TYPE_ERROR); // 支付方式异常 } @@ -808,4 +807,76 @@ public class RegService { public boolean updateMicroOrderState(String outTradeNo, String bankTransNo, String openid) { return new RegisterDao().updateMicroOrderState(outTradeNo, bankTransNo, openid); } + + + public List getHisRegReserveRecords(String patientId, String regDate) { + return new HisRegisterDao().getRegReserveHistory(patientId, regDate); + } + + + public List getHisRegRecords(String patientId, String begDate, String endDate) throws ServiceException { + if (begDate == null || endDate == null) { + throw new ServiceException("查询日期异常"); + } + List hisRegList = new HisRegisterDao().getRegTodayHistory(patientId, begDate.equals(endDate) ? begDate : null); // 起止日期相同时,传递挂号日期 + + List 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 hisRegRecords; + if (curDate.equals(regDate)) { // 今日挂号及以前 + hisRegRecords = getHisRegRecords(patientId, regDate, regDate); + } else { // 预约挂号 + hisRegRecords = getHisRegReserveRecords(patientId, regDate); + } + + if (hisRegRecords.isEmpty()) { + throw new ServiceException("错误:HIS中未查询到挂号记录 日期:" + regDate); + } + + List 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; + } } diff --git a/src/main/java/com/ynxbd/common/service/cache/PayCache.java b/src/main/java/com/ynxbd/common/service/cache/PayCache.java index 83231b9..68057dd 100644 --- a/src/main/java/com/ynxbd/common/service/cache/PayCache.java +++ b/src/main/java/com/ynxbd/common/service/cache/PayCache.java @@ -105,7 +105,7 @@ public class PayCache { } // HIS处方缴费 - MerchantEnum merchantEnum = MerchantEnum.getMerchantEnumByOutTradeNo(outTradeNo); + MerchantEnum merchantEnum = MerchantEnum.findEnumByOutTradeNo(outTradeNo); if (MerchantEnum.ALI.equals(merchantEnum)) { log.info("[处方]定时器,支付宝订单不处理"); RECIPE_ORDER_CACHE.remove(tradeNo); diff --git a/src/main/java/com/ynxbd/wx/servlet/QServlet.java b/src/main/java/com/ynxbd/wx/servlet/QServlet.java index 65d8ce3..daf4859 100644 --- a/src/main/java/com/ynxbd/wx/servlet/QServlet.java +++ b/src/main/java/com/ynxbd/wx/servlet/QServlet.java @@ -42,7 +42,7 @@ public class QServlet extends HttpServlet { String userAgent = request.getHeader("user-agent"); if (!ObjectUtils.isEmpty(userAgent)) { - merchantEnum = MerchantEnum.getMerchantEnumByQr(userAgent); + merchantEnum = MerchantEnum.findEnumByQr(userAgent); if (merchantEnum == null) { log.info(ResultEnum.PAY_TYPE_NOT_SUPPORT.message); HttpHelper.outRespAlert(response, ResultEnum.PAY_TYPE_NOT_SUPPORT.message); diff --git a/src/main/java/com/ynxbd/wx/wxfactory/WxCacheHelper.java b/src/main/java/com/ynxbd/wx/wxfactory/WxCacheHelper.java index 8aa2adc..4874755 100644 --- a/src/main/java/com/ynxbd/wx/wxfactory/WxCacheHelper.java +++ b/src/main/java/com/ynxbd/wx/wxfactory/WxCacheHelper.java @@ -93,8 +93,6 @@ public class WxCacheHelper { return null; } - - public static final String JSAPI_TICKET_CACHE_NAME = "jsapi_ticket";