病历复印下单存在逻辑问题调整

debug
王绍全 5 months ago
parent c82b3d7beb
commit f2551d0b8a
  1. 2
      src/main/java/com/ynxbd/common/action/RecordAction.java
  2. 40
      src/main/java/com/ynxbd/common/action/XBDAction.java
  3. 2
      src/main/java/com/ynxbd/common/action/pay/ThirdPartyPayAction.java
  4. 42
      src/main/java/com/ynxbd/common/bean/pay/PayCasebook.java
  5. 4
      src/main/java/com/ynxbd/common/bean/xbd/MRHistory.java
  6. 8
      src/main/java/com/ynxbd/common/config/db/DataBase.java
  7. 101
      src/main/java/com/ynxbd/common/dao/CasebookDao.java
  8. 56
      src/main/java/com/ynxbd/common/dao/ChronicDao.java
  9. 4
      src/main/java/com/ynxbd/common/dao/RegisterDao.java
  10. 3
      src/main/java/com/ynxbd/common/dao/his/HisPatientDao.java
  11. 30
      src/main/java/com/ynxbd/common/helper/xbd/XBDEnum.java
  12. 31
      src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java
  13. 136
      src/main/java/com/ynxbd/common/service/CasebookService.java
  14. 24
      src/main/java/com/ynxbd/common/service/PatientService.java
  15. 2
      src/main/java/com/ynxbd/common/service/PayService.java
  16. 8
      src/main/java/com/ynxbd/common/service/RegService.java

@ -36,7 +36,7 @@ public class RecordAction extends BaseAction {
*/ */
@Action("upload") @Action("upload")
public Result upload(String applyName, String idcard, String patientId, String openId, String idcardFront, String idcardBack, String treatId, String inHospProve, String use, String phone) { public Result upload(String applyName, String idcard, String patientId, String openId, String idcardFront, String idcardBack, String treatId, String inHospProve, String use, String phone) {
log.info("[病历复印申请] applyName-{}, idCard-{},patientId-{},openId-{}, treatId-{}, use-{}, phone-{}", applyName, idcard, patientId, openId, treatId, use, phone); log.info("[病历申请复印] applyName-{}, idCard-{},patientId-{},openId-{}, treatId-{}, use-{}, phone-{}", applyName, idcard, patientId, openId, treatId, use, phone);
if (applyName == null || idcard == null || openId == null || patientId == null || use == null) { if (applyName == null || idcard == null || openId == null || patientId == null || use == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }

@ -85,7 +85,7 @@ public class XBDAction extends BaseAction {
@Action("getMedicalRecordList") @Action("getMedicalRecordList")
public Result getMedicalRecordList(@AesDecode String patientId, Integer flagSh) { public Result getMedicalRecordList(@AesDecode String patientId, Integer flagSh) {
try { try {
log.info("[病]获取该病人已归档可以翻拍的病历 patientId={}", patientId); log.info("[病]获取该病人已归档可以翻拍的病历 patientId={}", patientId);
if (patientId == null) { if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
@ -113,7 +113,7 @@ public class XBDAction extends BaseAction {
// @Action("getMedicalRecordList2") // @Action("getMedicalRecordList2")
// public Result getMedicalRecordList2(String patientId, Integer flagSh) { // public Result getMedicalRecordList2(String patientId, Integer flagSh) {
// String realPatientId = getDecodeString(patientId); // String realPatientId = getDecodeString(patientId);
// log.info("[病]获取该病人已归档可以翻拍的病历 patientId={}", realPatientId); // log.info("[病]获取该病人已归档可以翻拍的病历 patientId={}", realPatientId);
// if (ObjectUtils.isEmpty(realPatientId)) { // if (ObjectUtils.isEmpty(realPatientId)) {
// return Result.error(ResultEnum.PARAM_IS_DEFECT); // return Result.error(ResultEnum.PARAM_IS_DEFECT);
// } // }
@ -169,7 +169,7 @@ public class XBDAction extends BaseAction {
@Action("addMRReserve") @Action("addMRReserve")
public Result addMRReserve(String openId, String patientId, String zyNum, String applyName, String relationship, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String ptImg3, String ptImg4, String ptImg5, String ptImg6, String applyPtImg1, String applyPtImg2, String applicationImg) { public Result addMRReserve(String openId, String patientId, String zyNum, String applyName, String relationship, String useToNo, String useToName, int getWay, String address, String phone, String ptImg1, String ptImg2, String ptImg3, String ptImg4, String ptImg5, String ptImg6, String applyPtImg1, String applyPtImg2, String applicationImg) {
try { try {
log.info("[病历复印]patientId-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}", patientId, zyNum, applyName, useToNo, useToName, getWay, address, phone); log.info("[病历复印]预约信息 patientId={}, treatNum={}, applyName={}, useToNo={}, useToName={}, getWay={}, address={}, phone={}", patientId, zyNum, applyName, useToNo, useToName, getWay, address, phone);
if (ObjectUtils.isEmpty(openId) || ObjectUtils.isEmpty(patientId)) { if (ObjectUtils.isEmpty(openId) || ObjectUtils.isEmpty(patientId)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
@ -181,12 +181,15 @@ public class XBDAction extends BaseAction {
payCasebook.setGetWay(getWay); payCasebook.setGetWay(getWay);
payCasebook.setAddress(address); payCasebook.setAddress(address);
payCasebook.setPhone(phone); payCasebook.setPhone(phone);
if (new CasebookService().isExit(patientId, zyNum, String.valueOf(getWay), useToName)) {
log.info("[病历复印]下单信息重复 patientId={},treatNum-{},getWay-{},useToName-{}", patientId, zyNum, getWay, useToName); CasebookService casebookService = new CasebookService();
if (casebookService.isExit(patientId, zyNum, String.valueOf(getWay), useToName)) {
log.info("[病历复印]预约信息重复 patientId={}, treatNum={}, getWay={}, useToName={}", patientId, zyNum, getWay, useToName);
return Result.error(ResultEnum.APPLY_REPEAT); return Result.error(ResultEnum.APPLY_REPEAT);
} }
if (!new CasebookService().addApply(payCasebook, openId, patientId)) { long id = casebookService.addApply(payCasebook, openId, patientId); // 返回自增id
log.info("[病历复印]下单信息存储失败 patientId={},openId-{},patientId-{}", patientId, openId, patientId); if (id <= 0) {
log.info("[病历复印]预约信息存储失败 patientId={}, openId={}, patientId={}", patientId, openId, patientId);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
} }
@ -214,9 +217,24 @@ public class XBDAction extends BaseAction {
params.put("applyPtImg2", applyPtImg2); params.put("applyPtImg2", applyPtImg2);
params.put("ApplicationImg", applicationImg); params.put("ApplicationImg", applicationImg);
}); });
return Result.success(JsonHelper.parseObject(jsonString));
if (ObjectUtils.isEmpty(jsonString)) {
return Result.error(ResultEnum.ERROR);
}
JSONObject jsonObject = JsonHelper.parseObject(jsonString);
String applyId = jsonObject.getString("applyId");
if (ObjectUtils.isEmpty(applyId)) {
return Result.error(ResultEnum.ERROR);
}
if (!casebookService.updateApplyIdById(id, applyId)) {
log.error("[病历复印]记录applyId失败 id={}, applyId={}", applyId, applyId);
return Result.error(ResultEnum.ERROR);
}
return Result.success(jsonObject);
} catch (Exception e) { } catch (Exception e) {
log.error("[病历复印申请]预约失败,error-{}", e.toString()); log.error("[病历复印]预约失败 error:{}", e.toString());
return Result.error(ResultEnum.ERROR); return Result.error(ResultEnum.ERROR);
} }
} }
@ -242,7 +260,7 @@ public class XBDAction extends BaseAction {
} }
/** /**
* 复印唤起支付 * 复印唤起支付
* *
* @param payCode wx微信 * @param payCode wx微信
* @param openid 患者openId * @param openid 患者openId
@ -254,7 +272,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.findEnumByCode(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);

@ -81,7 +81,7 @@ public class ThirdPartyPayAction extends BaseAction {
reg.setOutTradeNo(outTradeNo); reg.setOutTradeNo(outTradeNo);
log.info("{} [第三方-扫码挂号]生成 outTradeNo={}", merchantEnum.NAME, outTradeNo); log.info("{} [第三方-扫码挂号]生成 outTradeNo={}", merchantEnum.NAME, outTradeNo);
if (!new RegService().isSaveRegPrepay(reg)) { if (!new RegService().updateRegPrepay(reg)) {
log.info("{} [第三方-扫码挂号]预存支付信息失败 patientId={}, sourceId={}", merchantEnum.NAME, patientId, sourceId); log.info("{} [第三方-扫码挂号]预存支付信息失败 patientId={}, sourceId={}", merchantEnum.NAME, patientId, sourceId);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
} }

@ -5,53 +5,37 @@ import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
@Setter @Setter
@Getter @Getter
@ToString(callSuper = true) @ToString(callSuper = true)
@NoArgsConstructor @NoArgsConstructor
public class PayCasebook extends Order{ public class PayCasebook extends Order {
/** // 住院号
* 住院号
*/
private String treatNum; private String treatNum;
/** // 申请人姓名
* 申请人姓名 private String patientName;
*/
private String PatientName;
/** // 模板ID
* 模板ID
*/
private String useToNo; private String useToNo;
/** // 模板名称
* 模板名称
*/
private String useToName; private String useToName;
/** // 获取方式; 0自提 1邮寄
* 病历申请id
*/
private String applyId;
/**
* 获取方式; 0自提 1邮寄
*/
private int getWay; private int getWay;
/** // 地址
* 地址
*/
private String address; private String address;
/** // 联系电话 (邮寄时的联系电话)
* 联系电话 (邮寄时的联系电话)
*/
private String phone; private String phone;
// 病历预约申请id(唯一)
private String applyId;
// 申请时间
private Date applyTime;
} }

@ -26,7 +26,7 @@ public class MRHistory {
private String patientID; private String patientID;
/** /**
* 借阅号 (-1为屏蔽此字段 查询所有此病人的记录) * 借阅号 (-1为屏蔽此字段 查询所有此病人的记录)
*/ */
private int baBorrowNo; private int baBorrowNo;
@ -36,7 +36,7 @@ public class MRHistory {
private String zyNum; private String zyNum;
/** /**
* *
*/ */
private String bano; private String bano;

@ -364,11 +364,11 @@ public class DataBase {
* @param ips ips * @param ips ips
* @return 自增ID * @return 自增ID
*/ */
public static int insertGetId(String sql, IPS ips) { public static long insertGetId(String sql, IPS ips) {
Connection conn = null; Connection conn = null;
PreparedStatement ps = null; PreparedStatement ps = null;
ResultSet rs = null; ResultSet rs = null;
int id = 0; long id = -1;
try { try {
conn = getConnection(); conn = getConnection();
ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
@ -377,7 +377,7 @@ public class DataBase {
rs = ps.getGeneratedKeys(); rs = ps.getGeneratedKeys();
if (rs.next()) { if (rs.next()) {
id = rs.getInt(1); id = rs.getLong(1);
} }
ps.clearBatch(); ps.clearBatch();
} catch (SQLException e) { } catch (SQLException e) {
@ -387,7 +387,7 @@ public class DataBase {
} catch (SQLException err) { } catch (SQLException err) {
ErrorHelper.println(err); ErrorHelper.println(err);
} }
return 0; return -1;
} finally { } finally {
close(rs, ps, conn); close(rs, ps, conn);
} }

@ -14,18 +14,27 @@ public class CasebookDao {
* @param casebook 信息 * @param casebook 信息
* @return 是否成功 * @return 是否成功
*/ */
public boolean insert(PayCasebook casebook,String openId,String patientId) { public long insert(PayCasebook casebook, String openId, String patientId) {
String sql = "insert into pay_casebook(UpdateTime,TreatNum, PatientName, UseToNo, UseToName, GetWay, Address, Phone,OpenID,PatientID) values (now(),?,?,?,?,?,?,?,?,?)"; String sql = "insert into pay_casebook(ApplyTime, UpdateTime, TreatNum, PatientName, UseToNo, UseToName, GetWay, Address, Phone, OpenID, PatientID) values (now(),now(),?,?,?,?,?,?,?,?,?)";
return DataBase.insert(sql, ps -> { return DataBase.insertGetId(sql, ps -> {
ps.setString(1,casebook.getTreatNum()); ps.setString(1, casebook.getTreatNum());
ps.setString(2,casebook.getPatientName()); ps.setString(2, casebook.getPatientName());
ps.setString(3,casebook.getUseToNo()); ps.setString(3, casebook.getUseToNo());
ps.setString(4,casebook.getUseToName()); ps.setString(4, casebook.getUseToName());
ps.setInt(5,casebook.getGetWay()); ps.setInt(5, casebook.getGetWay());
ps.setString(6,casebook.getAddress()); ps.setString(6, casebook.getAddress());
ps.setString(7, casebook.getPhone()); ps.setString(7, casebook.getPhone());
ps.setString(8,openId); ps.setString(8, openId);
ps.setString(9,patientId); ps.setString(9, patientId);
});
}
// 补充申请id
public boolean updateApplyIdById(long id, String applyId) {
String sql = "update pay_casebook set applyId=? where id=?";
return DataBase.update(sql, ps -> {
ps.setString(1, applyId);
ps.setLong(2, id);
}) > 0; }) > 0;
} }
@ -41,7 +50,7 @@ public class CasebookDao {
List<PayCasebook> list = DataBase.select(sql, PayCasebook.class, ps -> { List<PayCasebook> list = DataBase.select(sql, PayCasebook.class, ps -> {
ps.setString(1, outTradeNo); ps.setString(1, outTradeNo);
}); });
if (list.size() > 0) { if (!list.isEmpty()) {
return list.get(0); return list.get(0);
} }
return null; return null;
@ -54,59 +63,54 @@ public class CasebookDao {
* @param bankTransNo 交易流水号 * @param bankTransNo 交易流水号
*/ */
public boolean updatePayStateOk(String outTradeNo, String bankTransNo) { public boolean updatePayStateOk(String outTradeNo, String bankTransNo) {
String sql = "update pay_casebook set payStatus=0, bankTransNo=? where outTradeNo=? and bankTransNo is null"; String sql = "update pay_casebook set updateTime=now(), payStatus=0, bankTransNo=? where outTradeNo=? and bankTransNo is null";
return DataBase.update(sql, ps -> { return DataBase.update(sql, ps -> {
ps.setString(1, bankTransNo); ps.setString(1, bankTransNo);
ps.setString(2, outTradeNo); ps.setString(2, outTradeNo);
}) > 0; }) > 0;
} }
public boolean updatePayStatePre(String patientId, String treatNum, String applyId, BigDecimal totalFee,String outTradeNo,String getWay, String useToName) { public boolean updatePrepayInfo(String applyId, String treatNum, BigDecimal totalFee, String outTradeNo) {
String sql = "update pay_casebook set payStatus=-1, applyId = ?, payMoney = ?, TotalFee = ?, outTradeNo =? where patientId=? and treatNum = ? and getWay = ? and useToName = ?"; String sql = "update pay_casebook set updateTime=now(), payStatus=-1, payMoney=?, totalFee=?, outTradeNo=? where applyId=? and treatNum=? and payStatus != 0";
return DataBase.update(sql, ps -> { return DataBase.update(sql, ps -> {
ps.setString(1, applyId); ps.setBigDecimal(1, totalFee);
ps.setBigDecimal(2,totalFee); ps.setBigDecimal(2, totalFee);
ps.setBigDecimal(3,totalFee); ps.setString(3, outTradeNo);
ps.setString(4,outTradeNo); ps.setString(4, applyId);
ps.setString(5,patientId); ps.setString(5, treatNum);
ps.setString(6,treatNum);
ps.setString(7,getWay);
ps.setString(8,useToName);
}) > 0; }) > 0;
} }
public boolean selectIsExit(String patientId, String treatNum, String getWay, String useToName){
String sql = "select * from pay_casebook where patientId=? and treatNum = ? and getWay = ? and getWay !=1 and useToName = ? and (payStatus is null or payStatus = -1)"; // 查询是已有相同的申请记录
return DataBase.select(sql, PayCasebook.class, ps -> { public boolean selectIsExit(String patientId, String treatNum, String getWay, String useToName) {
ps.setString(1,patientId); String sql = "select * from pay_casebook where patientId=? and treatNum=? and getWay=? and getWay !=1 and useToName=? and (payStatus is null or payStatus= -1)";
ps.setString(2,treatNum); return !DataBase.select(sql, PayCasebook.class, ps -> {
ps.setString(3,getWay); ps.setString(1, patientId);
ps.setString(4,useToName); ps.setString(2, treatNum);
}).size()>0; ps.setString(3, getWay);
ps.setString(4, useToName);
}).isEmpty();
} }
public boolean selectIsPay(String patientId, String treatNum, String applyId,String getWay, String useToName){ public PayCasebook selectOrder(String applyId, String treatNum) {
String sql = "select * from pay_casebook where patientId=? and treatNum = ? and applyId = ? and getWay = ? and useToName = ? and payStatus = 0"; String sql = "select * from pay_casebook where applyId=? and treatNum=?";
return DataBase.select(sql, PayCasebook.class, ps -> { return DataBase.selectOne(sql, PayCasebook.class, ps -> {
ps.setString(1,patientId); ps.setString(1, applyId);
ps.setString(2,treatNum); ps.setString(2, treatNum);
ps.setString(3,applyId); });
ps.setString(4,getWay);
ps.setString(5,useToName);
}).size()>0;
} }
public boolean updateNotifyOk(String outTradeNo) { public boolean updateNotifyOk(String outTradeNo) {
String sql = "update pay_casebook set payStatus=0, HisStatus=0 where outTradeNo=?"; String sql = "update pay_casebook set payStatus=0, hisStatus=0 where outTradeNo=?";
return DataBase.update(sql, ps -> { return DataBase.update(sql, ps -> {
ps.setString(1, outTradeNo); ps.setString(1, outTradeNo);
}) > 0; }) > 0;
} }
public boolean updateNotifyErr(String outTradeNo, String message) { public boolean updateNotifyErr(String outTradeNo, String message) {
String sql = "update pay_casebook set payStates=0, HisStatus=-1, HisResult=? where outTradeNo=?"; String sql = "update pay_casebook set payStates=0, hisStatus=-1, hisResult=? where outTradeNo=?";
return DataBase.update(sql, ps -> { return DataBase.update(sql, ps -> {
ps.setString(1, message); ps.setString(1, message);
@ -115,4 +119,15 @@ public class CasebookDao {
} }
// public boolean selectIsPay(String patientId, String treatNum, String applyId, String getWay, String useToName) {
// String sql = "select * from pay_casebook where patientId=? and treatNum = ? and applyId = ? and getWay = ? and useToName = ? and payStatus = 0";
// return !DataBase.select(sql, PayCasebook.class, ps -> {
// ps.setString(1, patientId);
// ps.setString(2, treatNum);
// ps.setString(3, applyId);
// ps.setString(4, getWay);
// ps.setString(5, useToName);
// }).isEmpty();
// }
} }

@ -18,54 +18,56 @@ import java.util.List;
public class ChronicDao { public class ChronicDao {
/** /**
* 预约慢病 * 预约慢病
*
* @param chronic 慢病信息 * @param chronic 慢病信息
* @return 是否新增成功 * @return 是否新增成功
*/ */
public Boolean insert(Chronic chronic){ public Boolean insert(Chronic chronic) {
String sql = "insert into chronic(ApplyName, ApplyTime, ReserveTime, PatientId, OpenId, Idcard, TreatId, PatientType, DiagProve, IdcardFont, IdcardBack, InHospProve, ChronicName, ChronicCode, Phone, Address) values (?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; String sql = "insert into chronic(ApplyName, ApplyTime, ReserveTime, PatientId, OpenId, Idcard, TreatId, PatientType, DiagProve, IdcardFont, IdcardBack, InHospProve, ChronicName, ChronicCode, Phone, Address) values (?,now(),?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
return DataBase.insert(sql,ps -> { return DataBase.insert(sql, ps -> {
ps.setString(1,chronic.getApplyName()); ps.setString(1, chronic.getApplyName());
ps.setString(2,chronic.getReserveTime()); ps.setString(2, chronic.getReserveTime());
ps.setString(3,chronic.getPatientId()); ps.setString(3, chronic.getPatientId());
ps.setString(4,chronic.getOpenId()); ps.setString(4, chronic.getOpenId());
ps.setString(5,chronic.getIdcard()); ps.setString(5, chronic.getIdcard());
ps.setString(6,chronic.getTreatId()); ps.setString(6, chronic.getTreatId());
ps.setInt(7,chronic.getPatientType()); ps.setInt(7, chronic.getPatientType());
ps.setString(8,chronic.getDiagProve()); ps.setString(8, chronic.getDiagProve());
ps.setString(9,chronic.getIdcardFont()); ps.setString(9, chronic.getIdcardFont());
ps.setString(10,chronic.getIdcardBack()); ps.setString(10, chronic.getIdcardBack());
ps.setString(11,chronic.getInHospProve()); ps.setString(11, chronic.getInHospProve());
ps.setString(12,chronic.getChronicName()); ps.setString(12, chronic.getChronicName());
ps.setString(13,chronic.getChronicCode()); ps.setString(13, chronic.getChronicCode());
ps.setString(14,chronic.getPhone()); ps.setString(14, chronic.getPhone());
ps.setString(15,chronic.getAddress()); ps.setString(15, chronic.getAddress());
})>0; }) > 0;
} }
/** /**
* 获取该患者申请的慢病预约 * 获取该患者申请的慢病预约
*
* @param patientId 患者id * @param patientId 患者id
* @return 预约列表 * @return 预约列表
*/ */
public List<Chronic> selectByPatientId(String patientId){ public List<Chronic> selectByPatientId(String patientId) {
String sql ="select * from chronic where PatientId = ? "; String sql = "select * from chronic where PatientId = ? ";
return DataBase.select(sql, Chronic.class, ps -> { return DataBase.select(sql, Chronic.class, ps -> {
ps.setString(1,patientId); ps.setString(1, patientId);
}); });
} }
public List<DictChronic> selectDict(Integer chronicType){ public List<DictChronic> selectDict(Integer chronicType) {
String sql ="select * from dict_chronic where ChronicType = ? "; String sql = "select * from dict_chronic where ChronicType = ? ";
return DataBase.select(sql, DictChronic.class, ps -> { return DataBase.select(sql, DictChronic.class, ps -> {
ps.setInt(1,chronicType); ps.setInt(1, chronicType);
}); });
} }
public Boolean selectIfApply(Integer patientType, String treatId){ public Boolean selectIfApply(Integer patientType, String treatId) {
String sql = "select * from chronic where PatientType = ? and TreatId = ? and RejectTime is null and DeleteTime is null and CheckTime is null"; String sql = "select * from chronic where PatientType = ? and TreatId = ? and RejectTime is null and DeleteTime is null and CheckTime is null";
return !DataBase.select(sql, Chronic.class, ps -> { return !DataBase.select(sql, Chronic.class, ps -> {
ps.setInt(1,patientType); ps.setInt(1, patientType);
ps.setString(2,treatId); ps.setString(2, treatId);
}).isEmpty(); }).isEmpty();
} }
} }

@ -411,7 +411,7 @@ public class RegisterDao {
List<Register> list = DataBase.select(sql, Register.class, ps -> { List<Register> list = DataBase.select(sql, Register.class, ps -> {
ps.setString(1, outTradeNo); ps.setString(1, outTradeNo);
}); });
if (list.size() > 0) { if (!list.isEmpty()) {
return list.get(0); return list.get(0);
} }
return null; return null;
@ -422,7 +422,7 @@ public class RegisterDao {
List<Register> list = DataBase.select(sql, Register.class, ps -> { List<Register> list = DataBase.select(sql, Register.class, ps -> {
ps.setString(1, tradeNo); ps.setString(1, tradeNo);
}); });
if (list.size() > 0) { if (!list.isEmpty()) {
return list.get(0); return list.get(0);
} }
return null; return null;

@ -8,6 +8,7 @@ import com.ynxbd.common.helper.his.HisHelper;
import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ResultEnum;
import com.ynxbd.common.result.ServiceException; import com.ynxbd.common.result.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
@ -20,6 +21,7 @@ import java.util.UUID;
* @Date 2020/9/27 15:13 * @Date 2020/9/27 15:13
* @Copyright @ 2020 云南新八达科技有限公司 All rights reserved. * @Copyright @ 2020 云南新八达科技有限公司 All rights reserved.
*/ */
@Slf4j
public class HisPatientDao { public class HisPatientDao {
/** /**
@ -58,6 +60,7 @@ public class HisPatientDao {
params.put("Nation", nation); params.put("Nation", nation);
params.put("Tel", tel); params.put("Tel", tel);
log.warn("put code={}, isCounty={}", county, isCounty);
if (isCounty && !ObjectUtils.isEmpty(county)) { if (isCounty && !ObjectUtils.isEmpty(county)) {
params.put("Address_Code", county); params.put("Address_Code", county);
} }

@ -8,35 +8,35 @@ package com.ynxbd.common.helper.xbd;
*/ */
public enum XBDEnum { public enum XBDEnum {
/** /**
* [翻拍] 获取可以翻拍的列表 * [翻拍] 获取可以翻拍的列表
*/ */
BLSM_Appointment_GetBA("BLSM_Appointment_GetBA","获取此病人已被翻拍的病(可以翻拍的病历)"), BLSM_Appointment_GetBA("BLSM_Appointment_GetBA", "获取此病人已被翻拍的病(可以翻拍的病历)"),
/** /**
* [案翻拍] 获取病人翻拍病案所用用途 * [历翻拍] 获取病人翻拍病历所用用途
*/ */
BLSM_Appointment_GetTemplate("BLSM_Appointment_GetTemplate","获取模板列表(获取用途列表)"), BLSM_Appointment_GetTemplate("BLSM_Appointment_GetTemplate", "获取模板列表(获取用途列表)"),
/** /**
* [翻拍] 新增预约记录 * [翻拍] 新增预约记录
*/ */
BLSM_Appointment_SetAppointment("BLSM_Appointment_SetAppointment","新增预约记录"), BLSM_Appointment_SetAppointment("BLSM_Appointment_SetAppointment", "新增预约记录"),
/** /**
* [翻拍] 获取历史预约记录 * [翻拍] 获取历史预约记录
*/ */
BLSM_Appointment_GetHistoryAppointment("BLSM_Appointment_GetHistoryAppointment","获取此病人预约的历史数据"), BLSM_Appointment_GetHistoryAppointment("BLSM_Appointment_GetHistoryAppointment", "获取此病人预约的历史数据"),
/** /**
* [翻拍] 付费成功回调 * [翻拍] 付费成功回调
*/ */
BLSM_Appointment_SetISPay("BLSM_Appointment_SetISPay","付费成功回调"), BLSM_Appointment_SetISPay("BLSM_Appointment_SetISPay", "付费成功回调"),
/** /**
* [翻拍] 修改收获地址 * [翻拍] 修改收获地址
*/ */
BLSM_Appointment_ChangeAddress("BLSM_Appointment_ChangeAddress","修改收货信息"), BLSM_Appointment_ChangeAddress("BLSM_Appointment_ChangeAddress", "修改收货信息"),
/** /**
* [翻拍] 停止预约 * [翻拍] 停止预约
*/ */
BLSM_Appointment_StopAppointment("BLSM_Appointment_StopAppointment","停止预约"), BLSM_Appointment_StopAppointment("BLSM_Appointment_StopAppointment", "停止预约"),
Test_ImportImage("Test_ImportImage","图片测试"); Test_ImportImage("Test_ImportImage", "图片测试");
public final String NAME; public final String NAME;
public final String DESCRIPTION; public final String DESCRIPTION;

@ -27,6 +27,7 @@ import java.util.zip.GZIPOutputStream;
@Slf4j @Slf4j
public class XBDHttpHelper { public class XBDHttpHelper {
private static final boolean IS_LOG = false;
public static String ExecMethodPost(String methodName, JsonResult.MapParams params) throws Exception { public static String ExecMethodPost(String methodName, JsonResult.MapParams params) throws Exception {
Map<String, Object> requestParams = new HashMap<>(); Map<String, Object> requestParams = new HashMap<>();
@ -44,7 +45,7 @@ public class XBDHttpHelper {
originalPrint.append(key).append(":\"").append(valueStr).append("\", "); originalPrint.append(key).append(":\"").append(valueStr).append("\", ");
}); });
originalPrint.append("}"); originalPrint.append("}");
log.info("[病案翻拍]未加密前请求-{}", originalPrint); log.info("[病]未加密前请求-{}", originalPrint);
List<String> paramsNameList = new ArrayList<>(requestParams.keySet()); List<String> paramsNameList = new ArrayList<>(requestParams.keySet());
JSONObject reqJsonObj = new JSONObject(); JSONObject reqJsonObj = new JSONObject();
@ -69,7 +70,7 @@ public class XBDHttpHelper {
encodePrint.append(key).append(":\"").append(valueStr).append("\", "); encodePrint.append(key).append(":\"").append(valueStr).append("\", ");
}); });
encodePrint.append("}"); encodePrint.append("}");
log.info("[病案翻拍]加密后请求-{}", encodePrint); log.info("[病]加密后请求-{}", encodePrint);
return UsePost(methodName, formBody); return UsePost(methodName, formBody);
} }
@ -82,12 +83,16 @@ public class XBDHttpHelper {
String code = respJson.getString("Code"); String code = respJson.getString("Code");
String msg = respJson.getString("Msg"); String msg = respJson.getString("Msg");
if ("200".equals(code)) { if ("200".equals(code)) {
return respJson.getString("Data"); String data = respJson.getString("Data");
if (IS_LOG) {
log.info("[病历POST]返回 [方法名:{}] data={}", methodName, data);
}
return data;
} }
log.error("[线上病案POST]返回错误:方法名-{},错误-{}", methodName, msg); log.error("[病历POST]返回错误:方法名-{},错误-{}", methodName, msg);
throw new Exception("方法:" + methodName + "错误:" + msg); throw new Exception("方法:" + methodName + "错误:" + msg);
} catch (Exception e) { } catch (Exception e) {
log.error("[线上病案POST]请求异常:{}", e.toString()); log.error("[病历POST]请求异常:{}", e.toString());
return e.getMessage(); return e.getMessage();
} }
} }
@ -96,23 +101,23 @@ public class XBDHttpHelper {
// 返回响应体过滤 // 返回响应体过滤
private static JSONObject respFilter(Response response, String methodName) throws Exception { private static JSONObject respFilter(Response response, String methodName) throws Exception {
if (!response.isSuccessful()) { if (!response.isSuccessful()) {
log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, response.message()); log.error("[病历RESP]返回错误:方法名-{},错误-{}", methodName, response.message());
throw new ServiceException("方法:" + methodName + "错误: " + response.message()); throw new ServiceException("方法:" + methodName + "错误: " + response.message());
} }
ResponseBody body = response.body(); ResponseBody body = response.body();
if (body == null) { if (body == null) {
log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "body is null"); log.error("[病历RESP]返回错误:方法名-{},错误-{}", methodName, "body is null");
throw new ServiceException("方法:" + methodName + "错误: resp body is null"); throw new ServiceException("方法:" + methodName + "错误: resp body is null");
} }
String respBodyStr = body.string(); String respBodyStr = body.string();
if (ObjectUtils.isEmpty(respBodyStr)) { if (ObjectUtils.isEmpty(respBodyStr)) {
log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "respBodyStr is null"); log.error("[病历RESP]返回错误:方法名-{},错误-{}", methodName, "respBodyStr is null");
throw new ServiceException("方法:" + methodName + "错误: respBodyStr is null"); throw new ServiceException("方法:" + methodName + "错误: respBodyStr is null");
} }
JSONObject respJson = JSONObject.parseObject(respBodyStr); JSONObject respJson = JSONObject.parseObject(respBodyStr);
if (respJson == null) { if (respJson == null) {
log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "respJson is null"); log.error("[病历RESP]返回错误:方法名-{},错误-{}", methodName, "respJson is null");
throw new ServiceException("方法:" + methodName + "错误: respJson is null"); throw new ServiceException("方法:" + methodName + "错误: respJson is null");
} }
return respJson; return respJson;
@ -168,7 +173,7 @@ public class XBDHttpHelper {
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(XBDHelper.MED_RECORD_COPY_URL + "/api/SqlContext/ExecMethodByNameEncryption")).newBuilder(); HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(XBDHelper.MED_RECORD_COPY_URL + "/api/SqlContext/ExecMethodByNameEncryption")).newBuilder();
// 加密序列化 // 加密序列化
String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic); String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic);
log.info("[线上病案GET]未加密前get请求入参:[methodName:{}] {}", methodName, paramJson); log.info("[病历GET]未加密前get请求入参:[methodName:{}] {}", methodName, paramJson);
String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString()); String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString());
String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString()); String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString());
@ -186,14 +191,14 @@ public class XBDHttpHelper {
if ("200".equals(code)) { if ("200".equals(code)) {
return respJson.getString("Data"); return respJson.getString("Data");
} }
log.error("[线上病案GET]返回错误:方法名-{},错误-{}", methodName, msg); log.error("[病历GET]返回错误:方法名-{},错误-{}", methodName, msg);
throw new Exception("方法:" + methodName + "错误:" + msg); throw new Exception("方法:" + methodName + "错误:" + msg);
} catch (Exception e) { } catch (Exception e) {
log.error("[线上病案GET]请求异常:{}", e.toString()); log.error("[病历GET]请求异常:{}", e.toString());
return null; return null;
} }
} catch (Exception e) { } catch (Exception e) {
log.error("[线上病案GET]出现异常:{}", e.toString()); log.error("[病历GET]出现异常:{}", e.toString());
return null; return null;
} }
} }

@ -29,21 +29,25 @@ public class CasebookService {
return Result.error(ResultEnum.PAY_MONEY_IS_ZERO); return Result.error(ResultEnum.PAY_MONEY_IS_ZERO);
} }
if (isPay(patientId, treatNum, applyId, getWay, useToName)) { PayCasebook order = selectOrderByApplyId(applyId, treatNum);
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); String outTradeNo = CodeHelper.getOutTradeNo(merchantEnum);
log.info("{} [病历]查询订单 order=[{}]", merchantEnum.NAME, JsonHelper.toJsonString(order));
if (order != null) {
if (order.hasPayStatusPaid()) {
log.info("{} [病历]订单已支付 applyId={}, outTradeNo={}", merchantEnum.NAME, applyId, order.getOutTradeNo());
return Result.error(ResultEnum.PAY_REPEAT);
}
if (ObjectUtils.isEmpty(order.getOutTradeNo())) {
outTradeNo = order.getOutTradeNo();
}
}
if (!isSaveCasebookInfo(patientId, treatNum, applyId, new BigDecimal(totalFee), outTradeNo, getWay, useToName)) { if (!updatePrepayInfo(applyId, treatNum, new BigDecimal(totalFee), outTradeNo)) {
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) {
return Result.error(ResultEnum.PAY_ERROR); // 支付异常 return Result.error(ResultEnum.PAY_ERROR); // 支付异常
@ -51,91 +55,135 @@ public class CasebookService {
return Result.success(respJson); return Result.success(respJson);
} }
/**
* [病历复印]判断是否存在预约记录
*
* @param patientId 患者id
* @param treatNum 住院号
* @param getWay 方式
* @param useToName 模版名称
* @return bool
*/
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);
} }
/** /**
* @param patientId 患者id * 更新预支付订单信息
* @param treatNum 住院号 *
* @return 是否成功 * @param applyId 申请id
* @param treatNum 住院号
* @param totalFee 金额
* @param outTradeNo 订单号
* @return bool
*/ */
public boolean isSaveCasebookInfo(String patientId, String treatNum, String applyId, BigDecimal totalFee, String outTradeNo, String getWay, String useToName) { public boolean updatePrepayInfo(String applyId, String treatNum, BigDecimal totalFee, String outTradeNo) {
if (patientId == null || treatNum == null) { log.info("[病历复印]更新下单信息 applyId={}, treatNum={}, totalFee={}, outTradeNo={}", applyId, treatNum, totalFee, totalFee);
log.info("[病历复印]唤起支付 存入 applyId失败,patientId-{},treatNum-{},totalFee-{}", patientId, treatNum, totalFee); if (ObjectUtils.isEmpty(applyId) || totalFee.compareTo(BigDecimal.ZERO) == 0 || ObjectUtils.isEmpty(outTradeNo)) {
log.error("[病历复印]更新下单信息失败 applyId={}, totalFee={}, outTradeNo={}", applyId, totalFee, totalFee);
return false; return false;
} }
return new CasebookDao().updatePayStatePre(patientId, treatNum, applyId, totalFee, outTradeNo, getWay, useToName); return new CasebookDao().updatePrepayInfo(applyId, treatNum, totalFee, outTradeNo);
} }
public boolean isPay(String patientId, String treatNum, String applyId, String getWay, String useToName) { /**
if (patientId == null || treatNum == null) { * 根据预约申请id查询订单信息
log.info("[病历复印]查重失败,patientId-{},treatNum-{},applyId-{}", patientId, treatNum, applyId); *
return false; * @param applyId 申请id
* @param treatNum 住院号
* @return bean
*/
public PayCasebook selectOrderByApplyId(String applyId, String treatNum) {
if (ObjectUtils.isEmpty(applyId) || ObjectUtils.isEmpty(treatNum)) {
return null;
} }
return new CasebookDao().selectIsPay(patientId, treatNum, applyId, getWay, useToName); return new CasebookDao().selectOrder(applyId, treatNum);
} }
/** /**
* 新增预约记录首次存入 * [病历复印]新增预约记录
* *
* @param casebook 病历订单信息 * @param casebook 订单信息
* @return 是否成功 * @return bool
*/ */
public boolean addApply(PayCasebook casebook, String openId, String patientId) { public long 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 -1;
} }
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) {
/**
* 预约成功后记录申请id
*
* @param id id
* @param applyId 申请id
* @return bool
*/
public boolean updateApplyIdById(long id, String applyId) {
return new CasebookDao().updateApplyIdById(id, applyId);
}
// 支付回调通知
public void paidNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo) {
CasebookDao casebookDao = new CasebookDao(); CasebookDao casebookDao = new CasebookDao();
PayCasebook order = casebookDao.selectByOutTradeNo(outTradeNo); PayCasebook order = casebookDao.selectByOutTradeNo(outTradeNo);
String casebookId = order.getApplyId(); String applyId = order.getApplyId();
if (ObjectUtils.isEmpty(casebookId)) { if (ObjectUtils.isEmpty(applyId)) {
log.error("[病历]病历申请ID缺失 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); log.error("[病历复印]回调:病历申请ID缺失 outTradeNo={}, bankTransNo={}, applyId={}", outTradeNo, bankTransNo, applyId);
return; return;
} }
Integer payStates = order.getPayStatus(); if (order.hasPayStatusPaid()) {
if (payStates == 0) { log.error("[病历复印]订单已支付 outTradeNo={}, bankTransNo={}, applyId={}", outTradeNo, bankTransNo, applyId);
log.error("[病历]订单已支付 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId);
return; return;
} }
if (!casebookDao.updatePayStateOk(outTradeNo, bankTransNo)) { if (!casebookDao.updatePayStateOk(outTradeNo, bankTransNo)) {
log.info("[病历]修改支付状态失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); log.info("[病历复印]修改支付状态失败 outTradeNo={}, bankTransNo={}, applyId={}", outTradeNo, bankTransNo, applyId);
} }
log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId);
try { try {
String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.NAME, params -> { log.info("[病历复印]调用HIS接口开始... borrowNo-{}", applyId);
params.put("borrowNo", casebookId); String respJson = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.NAME, params -> {
params.put("borrowNo", applyId);
params.put("payDateTime", DateHelper.getCurDateTime()); params.put("payDateTime", DateHelper.getCurDateTime());
}); });
log.info("[病历]回调返回 resp={}", jsonString); log.info("[病历复印]HIS接口返回 resp={}", respJson);
String code = JsonHelper.parseObject(jsonString).getString("Code"); String code = JsonHelper.parseObject(respJson).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("[病历复印]更新HIS订单信息失败 outTradeNo={}, bankTransNo={}, applyId={}", outTradeNo, bankTransNo, applyId);
} }
return; return;
} }
String message = JsonHelper.parseObject(jsonString).getString("Msg"); String message = JsonHelper.parseObject(respJson).getString("Msg");
log.info("[病历]回调失败 code={}, message={}", code, message); log.error("[病历复印]HIS接口调用失败 code={}, message={}, outTradeNo={}, applyId={}", code, message, outTradeNo, applyId);
if (!casebookDao.updateNotifyErr(outTradeNo, message)) { if (!casebookDao.updateNotifyErr(outTradeNo, message)) {
log.info("[病历]更新订单错误信息失败 outTradeNo={}, code={}, message={}", outTradeNo, code, message); log.info("[病历复印]更新HIS订单错误信息失败 outTradeNo={}, code={}, message={}, outTradeNo={}, applyId={}", outTradeNo, code, message, outTradeNo, applyId);
} }
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());
} }
} }
// public boolean isPaid(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);
// }
} }

@ -89,15 +89,15 @@ public class PatientService {
/** /**
* [有证绑定] * [有证绑定]
*/ */
public Result bindCard(boolean isMyself, boolean isCounty, String healthCardId, String openid, String name, String sex, String idCardNo, HCardTypeEnum cardTypeEnum, String tel, String address, String birthday, String nation, String county, String uuid) { public Result bindCard(boolean isMyself, boolean isAreaCode, String healthCardId, String openid, String name, String sex, String idCardNo, HCardTypeEnum cardTypeEnum, String tel, String address, String birthday, String nation, String areaCode, String uuid) {
return bind(isMyself, isCounty, healthCardId, openid, name, sex, idCardNo, cardTypeEnum, tel, address, birthday, nation, county, uuid, null, null, null, null, null, null); return bind(isMyself, isAreaCode, healthCardId, openid, name, sex, idCardNo, cardTypeEnum, tel, address, birthday, nation, areaCode, uuid, null, null, null, null, null, null);
} }
/** /**
* [绑定] * [绑定]
* *
* @param isMyself 是否为自己 * @param isMyself 是否为自己
* @param isCounty 是否传递行政区编码 * @param isArea 是否传递行政区编码
* @param healthCardId 健康卡id * @param healthCardId 健康卡id
* @param openid openid * @param openid openid
* @param name 姓名 * @param name 姓名
@ -107,7 +107,7 @@ public class PatientService {
* @param address 地址 * @param address 地址
* @param birthday 出生日期 * @param birthday 出生日期
* @param nation 名字 * @param nation 名字
* @param county 行政区编码 * @param areaCode 行政区编码
* @param uuid uuid 随机编码 * @param uuid uuid 随机编码
* @param fName 父姓名 * @param fName 父姓名
* @param fTel 父电话 * @param fTel 父电话
@ -116,8 +116,8 @@ public class PatientService {
* @param mTel 母电话 * @param mTel 母电话
* @param mIDCardNo 母身份证号码 * @param mIDCardNo 母身份证号码
*/ */
public Result bind(boolean isMyself, boolean isCounty, String healthCardId, String openid, String name, String sex, String idCardNo, HCardTypeEnum cardTypeEnum, String tel, String address, String birthday, String nation, String county, String uuid, String fName, String fTel, String fIDCardNo, String mName, String mTel, String mIDCardNo) { public Result bind(boolean isMyself, boolean isArea, String healthCardId, String openid, String name, String sex, String idCardNo, HCardTypeEnum cardTypeEnum, String tel, String address, String birthday, String nation, String areaCode, String uuid, String fName, String fTel, String fIDCardNo, String mName, String mTel, String mIDCardNo) {
log.info("[患者]身份绑定 name={}, county={}, address={}, nation={}, sex={}, birthday={}, tel={}", name, county, address, nation, sex, birthday, tel); log.info("[患者]身份绑定 name={}, county={}, address={}, nation={}, sex={}, birthday={}, tel={}", name, areaCode, address, nation, sex, birthday, tel);
if (openid == null || sex == null || birthday == null || name == null) { if (openid == null || sex == null || birthday == null || name == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
@ -131,7 +131,7 @@ public class PatientService {
Patient hisPatient; Patient hisPatient;
try { try {
hisPatient = new HisPatientDao().bind(isCounty, name, sex, idCardNo, cardTypeEnum, tel, address, birthday, nation, county, uuid, fName, fTel, fIDCardNo, mName, mTel, mIDCardNo); hisPatient = new HisPatientDao().bind(isArea, name, sex, idCardNo, cardTypeEnum, tel, address, birthday, nation, areaCode, uuid, fName, fTel, fIDCardNo, mName, mTel, mIDCardNo);
} catch (ServiceException e) { } catch (ServiceException e) {
return Result.error(e); return Result.error(e);
} }
@ -144,8 +144,8 @@ public class PatientService {
// 判断是否已有数据 // 判断是否已有数据
Patient patient = patientDao.selectByIdCardNo(openid, idCardNo); Patient patient = patientDao.selectByIdCardNo(openid, idCardNo);
if (patient == null) { // 数据库没有-->添加 if (patient == null) { // 数据库没有-->添加
log.info("[患者]添加 name={}, county={}, healthCardId={}, address={}, nation={}, sex={}, birthday={}, tel={}", name, county, healthCardId, address, nation, sex, birthday, tel); log.info("[患者]添加 name={}, county={}, healthCardId={}, address={}, nation={}, sex={}, birthday={}, tel={}", name, areaCode, healthCardId, address, nation, sex, birthday, tel);
if (!patientDao.insert(isMyself, healthCardId, openid, patientId, hisPatient.getHisTransNo(), name, sex, idCardNo, cardTypeEnum, birthday, null, address, nation, tel, uuid, county, fName, fTel, fIDCardNo, mName, mTel, mIDCardNo)) { if (!patientDao.insert(isMyself, healthCardId, openid, patientId, hisPatient.getHisTransNo(), name, sex, idCardNo, cardTypeEnum, birthday, null, address, nation, tel, uuid, areaCode, fName, fTel, fIDCardNo, mName, mTel, mIDCardNo)) {
log.info("[身份绑定]添加患者失败"); log.info("[身份绑定]添加患者失败");
return Result.error(ResultEnum.PATIENT_ADD_ERROR); return Result.error(ResultEnum.PATIENT_ADD_ERROR);
} }
@ -162,12 +162,12 @@ public class PatientService {
log.info("[患者]更新 isMyself={}, patientId={}, name={}, healthCardId={}", isMyself, patient.getPatientId(), name, healthCardId); log.info("[患者]更新 isMyself={}, patientId={}, name={}, healthCardId={}", isMyself, patient.getPatientId(), name, healthCardId);
if (isMyself) { if (isMyself) {
if (!patientDao.updateMyself(openid, idCardNo, patientId, name, address, county, nation, tel)) { if (!patientDao.updateMyself(openid, idCardNo, patientId, name, address, areaCode, nation, tel)) {
log.info("[患者]自身信息更新失败 patientId={}", patient.getPatientId()); log.info("[患者]自身信息更新失败 patientId={}", patient.getPatientId());
return Result.error(ResultEnum.DATA_UPDATE_ERROR); return Result.error(ResultEnum.DATA_UPDATE_ERROR);
} }
} else { } else {
if (!patientDao.updateInfo(openid, idCardNo, patientId, healthCardId, name, nation, tel, address, uuid, county)) { if (!patientDao.updateInfo(openid, idCardNo, patientId, healthCardId, name, nation, tel, address, uuid, areaCode)) {
log.info("[患者]更新失败 patientId={}", patient.getPatientId()); log.info("[患者]更新失败 patientId={}", patient.getPatientId());
return Result.error(ResultEnum.PATIENT_UPDATE_ERROR); return Result.error(ResultEnum.PATIENT_UPDATE_ERROR);
} }
@ -280,7 +280,7 @@ public class PatientService {
public Result toOpenIds(List<Patient> dataList, String algorithm, Boolean isLastBind, Boolean isEncryptComma) { public Result toOpenIds(List<Patient> dataList, String algorithm, Boolean isLastBind, Boolean isEncryptComma) {
if (dataList.size() == 0) { if (dataList.isEmpty()) {
return Result.error(ResultEnum.DATA_NOT_FOUND); return Result.error(ResultEnum.DATA_NOT_FOUND);
} }

@ -76,7 +76,7 @@ public class PayService {
break; break;
case CASEBOOK: case CASEBOOK:
new CasebookService().payNotify(MerchantEnum.WX, openid, totalFee, outTradeNo, bankTransNo, payInfo); new CasebookService().paidNotify(MerchantEnum.WX, openid, totalFee, outTradeNo, bankTransNo, payInfo);
break; break;
case OUT_COLLECT: case OUT_COLLECT:

@ -69,7 +69,7 @@ public class RegService {
* @param reg 挂号信息 * @param reg 挂号信息
* @return 是否成功 * @return 是否成功
*/ */
public boolean isSaveRegPrepay(Register reg) { public boolean updateRegPrepay(Register reg) {
if (reg == null) { if (reg == null) {
log.info("reg is null"); log.info("reg is null");
return false; return false;
@ -121,13 +121,13 @@ public class RegService {
Integer hisStatus = reg.getHisStatus(); Integer hisStatus = reg.getHisStatus();
Integer payStatus = reg.getPayStatus(); Integer payStatus = reg.getPayStatus();
if (payStatus == null || hisStatus == null || payStatus == 0 || hisStatus == 0) { // 状态不明确 if (payStatus == null || hisStatus == null || payStatus == 0 || hisStatus == 0) { // 状态不明确
log.info(String.format("{%s} [挂号]订单已支付,停止向下执行 outTradeNo={%s}, bankTransNo={%s}, tradeNo={%s}", merchantEnum.NAME, outTradeNo, bankTransNo, tradeNo)); log.info("{} [挂号]订单已支付,停止向下执行 outTradeNo={}, bankTransNo={}, tradeNo={}", merchantEnum.NAME, outTradeNo, bankTransNo, tradeNo);
return false; return false;
} }
// 更新商户支付状态 // 更新商户支付状态
if (!registerDao.updateMerPaidByOutTradeNo(outTradeNo, payDate, payTime, bankTransNo, tradeNo, bankMerchantNo)) { if (!registerDao.updateMerPaidByOutTradeNo(outTradeNo, payDate, payTime, bankTransNo, tradeNo, bankMerchantNo)) {
log.info(String.format("{%s} [挂号]更新订单失败,停止向下执行 outTradeNo={%s}, bankTransNo={%s}, tradeNo={%s}", merchantEnum.NAME, outTradeNo, bankTransNo, tradeNo)); log.info("{} [挂号]更新订单失败,停止向下执行 outTradeNo={}, bankTransNo={}, tradeNo={}", merchantEnum.NAME, outTradeNo, bankTransNo, tradeNo);
return false; return false;
} }
reg.setPayDate(payDate); reg.setPayDate(payDate);
@ -722,7 +722,7 @@ public class RegService {
reg.setPayWay(merchantEnum.PAY_WAY_IN); reg.setPayWay(merchantEnum.PAY_WAY_IN);
if (!isSaveRegPrepay(reg)) { if (!updateRegPrepay(reg)) {
log.info("{} [挂号]预存支付信息失败 patientId={}", merchantEnum.NAME, patientId); log.info("{} [挂号]预存支付信息失败 patientId={}", merchantEnum.NAME, patientId);
return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST); return Result.error(ResultEnum.SPECIFIED_QUESTIONED_USER_NOT_EXIST);
} }

Loading…
Cancel
Save