病案复印相关接口调整,新增错误返回和异常处理

新增体检查询pacs报告接口。
debug
wangsq 2 days ago
parent ceaee24571
commit 43263cb18f
  1. 33
      src/main/java/com/ynxbd/common/action/InHospAction.java
  2. 37
      src/main/java/com/ynxbd/common/action/RecordAction.java
  3. 42
      src/main/java/com/ynxbd/common/action/RegisterAction.java
  4. 136
      src/main/java/com/ynxbd/common/action/XBDAction.java
  5. 25
      src/main/java/com/ynxbd/common/action/test/TestAction.java
  6. 2
      src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java
  7. 79
      src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java
  8. 4
      src/main/java/com/ynxbd/common/dao/lis/XBDLisDao.java
  9. 13
      src/main/java/com/ynxbd/common/helper/TestHelper.java
  10. 25
      src/main/java/com/ynxbd/common/helper/xbd/EncHelper.java
  11. 39
      src/main/java/com/ynxbd/common/helper/xbd/HttpHelper.java
  12. 281
      src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java
  13. 2
      src/main/java/com/ynxbd/common/service/AIGuidanceService.java
  14. 36
      src/main/java/com/ynxbd/common/service/CasebookService.java
  15. 12
      src/main/java/com/ynxbd/common/service/DoctorService.java
  16. 128
      src/main/java/com/ynxbd/common/service/PeisService.java
  17. 16
      src/main/java/com/ynxbd/common/service/XBDService.java
  18. 5
      src/main/java/com/ynxbd/wx/wxfactory/ReqParamHelper.java
  19. 34
      src/main/resources/copy/medical/富民县人民医院-medical.properties
  20. 29
      src/main/resources/copy/medical/石林县中医院-medical.properties
  21. 2
      src/main/resources/copy/medical/蒙自市妇幼保健院-medical.properties
  22. 2
      src/main/resources/webservice.properties
  23. 22
      src/main/resources/wx.properties
  24. 24
      src/main/resources/xbd.properties
  25. 5
      src/main/webapp/WEB-INF/web.xml

@ -212,34 +212,45 @@ public class InHospAction extends BaseAction {
} }
/** /**
* [住院]通过患者ID查询患者所有住院记录 * [住院]通过患者ID查询住院记录
*
* @param patientId 患者Id * @param patientId 患者Id
* @return 住院记录 * @return 住院记录
*/ */
@Action("getHospListByPatientId") @Action("getHospListByPatientId")
public Result getHospListByPatientId(String patientId) { public Result getHospListByPatientId(String patientId) {
log.info("[住院]通过患者ID查询患者所有住院记录, patientId-{}",patientId); // [住院]通过患者ID查询患者所有住院记录
if(patientId==null) log.info("[住院]通过患者ID查询住院记录 patientId-{}", patientId);
return Result.error(ResultEnum.PARAM_IS_DEFECT);
patientId = getDecodeString(patientId); patientId = getDecodeString(patientId);
if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JsonResult resp = new HisInHospDao().getAllHospList(patientId); JsonResult resp = new HisInHospDao().getAllHospList(patientId);
List<InHospitalList> inHospitalList = resp.getDataMapList(InHospitalList.class, "Items","Item"); if (!resp.success()) {
return Result.success(inHospitalList); return Result.error(resp.getMessage());
}
List<InHospitalList> dataList = resp.getDataMapList(InHospitalList.class, "Items", "Item");
return Result.success(dataList);
} }
/** /**
* [住院]通过住院号查询所有费用明细 * [住院]通过住院号查询所有费用明细
*
* @param treatNum 住院号 * @param treatNum 住院号
* @return 费用明细 * @return 费用明细
*/ */
@Action("getAllFeeByTreat") @Action("getAllFeeByTreat")
public Result getAllFeeByTreat(String treatNum){ public Result getAllFeeByTreat(String treatNum) {
log.info("[住院]通过住院号查询所有费用明细, treatNum-{}",treatNum); log.info("[住院]通过住院号查询所有费用明细, treatNum-{}", treatNum);
if(treatNum==null) if (treatNum == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
JsonResult resp = new HisInHospDao().getAllFee(treatNum); JsonResult resp = new HisInHospDao().getAllFee(treatNum);
List<InHospAllFee> inHospAllFee = resp.getDataMapList(InHospAllFee.class, "Items","Item"); if (!resp.success()) {
return Result.success(inHospAllFee); return Result.error(resp.getMessage());
}
List<InHospAllFee> dataList = resp.getDataMapList(InHospAllFee.class, "Items", "Item");
return Result.success(dataList);
} }
} }

@ -21,26 +21,27 @@ import org.apache.struts2.convention.annotation.Namespace;
@Namespace("/record") @Namespace("/record")
public class RecordAction extends BaseAction { public class RecordAction extends BaseAction {
/** /**
* 申请病历复印 * 申请病历复印[蒙自市人民医院]
* @param applyName 申请人姓名 *
* @param idcard 身份证👌 * @param applyName 申请人姓名
* @param patientId 患者id * @param idcard 身份证👌
* @param openId openid * @param patientId 患者id
* @param openId openid
* @param idcardFront 身份证正面 * @param idcardFront 身份证正面
* @param idcardBack 身份证反面 * @param idcardBack 身份证反面
* @param treatId 住院号 * @param treatId 住院号
* @param inHospProve 住院证明 * @param inHospProve 住院证明
* @param use 用途前端直接写死 慢性病办理保险出生证伤残鉴定临床就诊其他 * @param use 用途前端直接写死 慢性病办理保险出生证伤残鉴定临床就诊其他
* @param phone 联系电话 * @param phone 联系电话
* @return * @return
*/ */
@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);
} }
if(new RecordDao().selectIfApply(treatId,use)){ if (new RecordDao().selectIfApply(treatId, use)) {
return Result.error(ResultEnum.APPLY_REPEAT); return Result.error(ResultEnum.APPLY_REPEAT);
} }
Record record = new Record(); Record record = new Record();
@ -54,16 +55,16 @@ public class RecordAction extends BaseAction {
record.setInHospProve(inHospProve); record.setInHospProve(inHospProve);
record.setUse(use); record.setUse(use);
record.setPhone(phone); record.setPhone(phone);
if(new RecordDao().insert(record)){ if (new RecordDao().insert(record)) {
return Result.success(); return Result.success();
} }
return Result.error(ResultEnum.ERROR); return Result.error(ResultEnum.ERROR);
} }
@Action("listByPatientId") @Action("listByPatientId")
public Result ListByPatientId(String patientId){ public Result listByPatientId(String patientId) {
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);
} }
return Result.success(new RecordDao().selectByPatientId(patientId)); return Result.success(new RecordDao().selectByPatientId(patientId));

@ -78,7 +78,7 @@ public class RegisterAction extends BaseAction {
if (doctor == null) { if (doctor == null) {
return Result.error(ResultEnum.DATA_NOT_FOUND); return Result.error(ResultEnum.DATA_NOT_FOUND);
} }
new DoctorService().docStateHandle(doctor, doctor); new DoctorService().doctorStateFilter(doctor, doctor);
return Result.success(doctor); return Result.success(doctor);
} }
@ -181,7 +181,6 @@ public class RegisterAction extends BaseAction {
log.info("[{}挂号] 查询科室的下的医生列表 deptCode={}, regDate={}, timeInterval={}", (regDate == null ? "现场" : "预约"), deptCode, regDate, timeInterval); log.info("[{}挂号] 查询科室的下的医生列表 deptCode={}, regDate={}, timeInterval={}", (regDate == null ? "现场" : "预约"), deptCode, regDate, timeInterval);
HisRegisterDao hisRegisterDao = new HisRegisterDao(); HisRegisterDao hisRegisterDao = new HisRegisterDao();
List<Doctor> doctorList = new ArrayList<>(); List<Doctor> doctorList = new ArrayList<>();
for (String code : deptCode.split(",")) { for (String code : deptCode.split(",")) {
doctorList.addAll((regDate == null) doctorList.addAll((regDate == null)
@ -189,7 +188,7 @@ public class RegisterAction extends BaseAction {
: hisRegisterDao.getRegReserveDoctorList(code, regDate) : hisRegisterDao.getRegReserveDoctorList(code, regDate)
); );
} }
doctorList = new DoctorService().docListHandle(doctorList); doctorList = new DoctorService().doctorListFilter(doctorList);
return Result.success(doctorList); return Result.success(doctorList);
} }
@ -228,14 +227,14 @@ public class RegisterAction extends BaseAction {
/** /**
* [挂号]查询挂号历史记录 * [挂号]查询挂号历史记录
*/ */
@Action("getRegHistoryRecords") @Action("getHisRegHistoryRecords")
public Result getRegHistoryRecords(String begDate, String endDate, String patientId) { public Result getHisRegHistoryRecords(String begDate, String endDate, String patientId) {
try { try {
patientId = getDecodeString(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);
} }
patientId = getDecodeString(patientId);
List<Register> regRecords = new RegService().getHisRegRecordsByRegDate(patientId, begDate, endDate); List<Register> regRecords = new RegService().getHisRegRecordsByRegDate(patientId, begDate, endDate);
return Result.success(regRecords); return Result.success(regRecords);
@ -249,21 +248,23 @@ public class RegisterAction extends BaseAction {
*/ */
@Action("getHisRegReserveRecords") @Action("getHisRegReserveRecords")
public Result getHisRegReserveRecords(String begDate, String endDate, String patientId) { public Result getHisRegReserveRecords(String begDate, String endDate, String patientId) {
patientId = getDecodeString(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> dataList = new RegService().getHisRegReserveRecords(patientId, null); List<Register> dataList = new RegService().getHisRegReserveRecords(patientId, null);
return Result.success(dataList); return Result.success(dataList);
} }
/** /**
* [挂号]查询某天某个科室某个类型的号源是否被占用 * [挂号]查询患者是否在该科室已挂过号
*/ */
@Action("hasReg") @Action("hasReg")
public Result hasReg(String regDate, String deptCode, String patientId) { public Result hasReg(String regDate, String deptCode, String patientId) {
log.info("[挂号]查询号源是否被占用regDate={}, deptCode={}, patientId={}", regDate, deptCode, patientId); log.info("[挂号]查询患者是否在该科室已挂过号 regDate={}, deptCode={}, patientId={}", regDate, deptCode, patientId);
if (regDate == null || deptCode == null || patientId == null) { if (regDate == null || deptCode == null || patientId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT); return Result.error(ResultEnum.PARAM_IS_DEFECT);
} }
@ -290,15 +291,13 @@ public class RegisterAction extends BaseAction {
List<Doctor> doctorList = new HisRegisterDao().getTimeDoctorList(deptCode, subDeptCode, begDate, endDate); List<Doctor> doctorList = new HisRegisterDao().getTimeDoctorList(deptCode, subDeptCode, begDate, endDate);
doctorList = new DoctorService().docListHandle(doctorList); doctorList = new DoctorService().doctorListFilter(doctorList);
return Result.success(doctorList); return Result.success(doctorList);
} }
/** /**
* [分时段挂号]查询号源 * [分时段挂号]查询号源-支付宝
*
* @return 号源
*/ */
@Action("getTimeSourceList") @Action("getTimeSourceList")
public Result getTimeSourceList(String begDate, String endDate, String deptCode, String doctCode, String subDeptCode) { public Result getTimeSourceList(String begDate, String endDate, String deptCode, String doctCode, String subDeptCode) {
@ -311,6 +310,20 @@ public class RegisterAction extends BaseAction {
return Result.success(dataList); return Result.success(dataList);
} }
/**
* [分时段挂号]查询号源
*/
@Action("getRegSourceList")
public Result getRegSourceList(String begDate, String endDate, String deptCode, String doctCode, String subDeptCode) {
log.info("[分时段挂号]查询号源 begDate={}, endDate={}, deptCode={}, subDeptCode={}, doctCode={}", begDate, endDate, deptCode, subDeptCode, doctCode);
if (deptCode == null || doctCode == null || begDate == null || endDate == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
List<Register> dataList = new HisRegisterDao().getTimeRegSource(deptCode, subDeptCode, doctCode, begDate, endDate);
return Result.success(dataList);
}
@Action("getDoctorSchedule") @Action("getDoctorSchedule")
public Result getDoctorSchedule(String begDate, String endDate, String doctCode) { public Result getDoctorSchedule(String begDate, String endDate, String doctCode) {
log.info("[医生排班信息] begDate={}, endDate={}, doctCode={}", begDate, endDate, doctCode); log.info("[医生排班信息] begDate={}, endDate={}, doctCode={}", begDate, endDate, doctCode);
@ -360,11 +373,8 @@ public class RegisterAction extends BaseAction {
*/ */
@Action("getReLineSignInRecord") @Action("getReLineSignInRecord")
public Result getReLineSignInRecord(String patientId, String begDate, String endDate) { public Result getReLineSignInRecord(String patientId, String begDate, String endDate) {
log.info("[查询预约待签到记录(包含今日挂号)] patientId-{} begDate={}, endDate={}", patientId, begDate, endDate);
if (patientId == null) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
String decodePatientId = getDecodeString(patientId); String decodePatientId = getDecodeString(patientId);
log.info("[查询预约待签到记录(包含今日挂号)] patientId-{} begDate={}, endDate={}", decodePatientId, begDate, endDate);
if (decodePatientId == null) { if (decodePatientId == null) {
return Result.error(ResultEnum.PARAM_IS_INVALID); return Result.error(ResultEnum.PARAM_IS_INVALID);
} }

@ -1,10 +1,13 @@
package com.ynxbd.common.action; package com.ynxbd.common.action;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.enums.MerchantEnum;
import com.ynxbd.common.bean.pay.PayCasebook; import com.ynxbd.common.bean.pay.PayCasebook;
import com.ynxbd.common.bean.xbd.MRHistory; import com.ynxbd.common.bean.xbd.MRHistory;
import com.ynxbd.common.bean.xbd.MedicalRecord; import com.ynxbd.common.bean.xbd.MedicalRecord;
import com.ynxbd.common.helper.common.Base64Helper;
import com.ynxbd.common.helper.common.JsonHelper; import com.ynxbd.common.helper.common.JsonHelper;
import com.ynxbd.common.helper.xbd.XBDEnum; import com.ynxbd.common.helper.xbd.XBDEnum;
import com.ynxbd.common.helper.xbd.XBDHelper; import com.ynxbd.common.helper.xbd.XBDHelper;
@ -13,7 +16,10 @@ 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.result.ServiceException;
import com.ynxbd.common.service.CasebookService; import com.ynxbd.common.service.CasebookService;
import com.ynxbd.common.service.PeisService;
import com.ynxbd.common.service.XBDService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
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;
@ -29,7 +35,7 @@ import org.apache.struts2.convention.annotation.Namespace;
public class XBDAction extends BaseAction { public class XBDAction extends BaseAction {
@Action("test03") @Action("test03")
public Result test03() throws ServiceException { public Result test03(String a) throws ServiceException {
System.out.println("测试"); System.out.println("测试");
return Result.success(); return Result.success();
} }
@ -54,22 +60,59 @@ public class XBDAction extends BaseAction {
} }
/** /**
* 获取该病人已归档可以翻拍的病历 * 获取该病人已归档可以翻拍的病历[红河]
* *
* @param patientId 病人id * @param patientId 病人id
* @return 可以翻拍的病历列表 * @return 可以翻拍的病历列表
*/ */
@Action("getMedicalRecordList") @Action("getMedicalRecordList")
public Result getMedicalRecordList(String patientId, Integer flagSh) { public Result getMedicalRecordList(String patientId, Integer flagSh) {
String realPatientId = getDecodeString(patientId); try {
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetBA.Name, params -> { String realPatientId = getDecodeString(patientId);
params.put("patientID", realPatientId); log.info("[病案]获取该病人已归档可以翻拍的病历 patientId={}", realPatientId);
params.put("flagFP", 0); if (ObjectUtils.isEmpty(realPatientId)) {
params.put("flagSH", flagSh); return Result.error(ResultEnum.PARAM_IS_DEFECT);
}); }
return Result.success(JsonHelper.parseArray(jsonString, MedicalRecord.class)); String resp = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetBA.Name, params -> {
params.put("patientID", realPatientId);
params.put("flagFP", 0);
params.put("flagSH", flagSh);
});
if (ObjectUtils.isEmpty(resp)) {
return Result.error(ResultEnum.INTERFACE_INVOKE_ERROR);
}
return Result.success(JsonHelper.parseArray(resp, MedicalRecord.class));
} catch (Exception e) {
return Result.error(e);
}
} }
// /**
// * 获取该病人已归档可以翻拍的病历[红河]
// *
// * @param patientId 病人id
// * @return 可以翻拍的病历列表
// */
// @Action("getMedicalRecordList2")
// public Result getMedicalRecordList2(String patientId, Integer flagSh) {
// String realPatientId = getDecodeString(patientId);
// log.info("[病案]获取该病人已归档可以翻拍的病历 patientId={}", realPatientId);
// if (ObjectUtils.isEmpty(realPatientId)) {
// return Result.error(ResultEnum.PARAM_IS_DEFECT);
// }
// String resp = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetBA.Name, params -> {
// params.put("patientID", realPatientId);
// params.put("flagFP", 0);
// params.put("flagSH", flagSh);
// });
// if (ObjectUtils.isEmpty(resp)) {
// return Result.error(ResultEnum.INTERFACE_INVOKE_ERROR);
// }
// return Result.success(JsonHelper.parseArray(resp, MedicalRecord.class));
// }
/** /**
* 获取该病人需要翻拍病历干啥的列表(用途)->直接绑定翻拍的病历类型 * 获取该病人需要翻拍病历干啥的列表(用途)->直接绑定翻拍的病历类型
* *
@ -77,8 +120,13 @@ public class XBDAction extends BaseAction {
*/ */
@Action("getMRTemplateList") @Action("getMRTemplateList")
public Result getMRTemplateList() { public Result getMRTemplateList() {
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetTemplate.Name); try {
return Result.success(JsonHelper.parseArray(jsonString)); String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetTemplate.Name, params -> {
});
return Result.success(JsonHelper.parseArray(jsonString));
} catch (Exception e) {
return Result.error(e);
}
} }
/** /**
@ -105,6 +153,9 @@ public class XBDAction extends BaseAction {
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 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 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-{},zyNum-{},applyName-{},useToNo-{},useToName-{},getWay-{},address-{},phone-{}", patientId, zyNum, applyName, useToNo, useToName, getWay, address, phone);
if (ObjectUtils.isEmpty(openId) || ObjectUtils.isEmpty(patientId)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
PayCasebook payCasebook = new PayCasebook(); PayCasebook payCasebook = new PayCasebook();
payCasebook.setTreatNum(zyNum); payCasebook.setTreatNum(zyNum);
payCasebook.setPatientName(applyName); payCasebook.setPatientName(applyName);
@ -144,6 +195,7 @@ public class XBDAction extends BaseAction {
} }
} }
/** /**
* 获取该病人的病历翻拍历史 * 获取该病人的病历翻拍历史
* *
@ -152,11 +204,15 @@ public class XBDAction extends BaseAction {
*/ */
@Action("getMRHistory") @Action("getMRHistory")
public Result getMRHistory(String patientId) { public Result getMRHistory(String patientId) {
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name, params -> { try {
params.put("patientID", patientId); String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name, params -> {
params.put("BorrowNo", -1); params.put("patientID", patientId);
}); params.put("BorrowNo", -1);
return Result.success(JsonHelper.parseArray(jsonString, MRHistory.class)); });
return Result.success(JsonHelper.parseArray(jsonString, MRHistory.class));
} catch (Exception e) {
return Result.error(e);
}
} }
/** /**
@ -184,6 +240,50 @@ public class XBDAction extends BaseAction {
return new CasebookService().placeOrder(merchantEnum, ip, openid, patientId, treatNum, totalFee, applyId, getWay, useToName); return new CasebookService().placeOrder(merchantEnum, ip, openid, patientId, treatNum, totalFee, applyId, getWay, useToName);
} }
/**
* 生成token // 德宏体检看pacs报告
*/
@Action("getCloudToken")
public Result getCloudToken(String treatNum) {
log.info("[生成token] treatNum={}", treatNum);
if (ObjectUtils.isEmpty(treatNum)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
String token = new XBDService().getCloudToken(treatNum);
return Result.success(token);
}
/**
* 生成token // 德宏体检看pacs报告
*/
@Action("getPeisByCardNo")
public Result getPeisByCardNo(String cardNo, String begDate, String endDate) {
log.info("[查询体检记录] cardNo={}", cardNo);
cardNo = getDecodeString(cardNo);
if (ObjectUtils.isEmpty(cardNo) || ObjectUtils.isEmpty(begDate) || ObjectUtils.isEmpty(endDate)) {
return Result.error(ResultEnum.PARAM_IS_DEFECT);
}
String encode = Base64Helper.encode(cardNo);
if (ObjectUtils.isEmpty(encode)) {
return Result.error(ResultEnum.PARAM_IS_INVALID);
}
try {
JSONArray dataList = new PeisService().getPeisByCardNo(encode, begDate, endDate);
for (int i = 0; i < dataList.size(); i++) {
JSONObject dataItem = dataList.getJSONObject(i);
String eid = dataItem.getString("eid");
if (!ObjectUtils.isEmpty(eid)) {
dataItem.put("token", new XBDService().getCloudToken(eid));
}
dataItem.put("treatNum", eid);
}
return Result.success(dataList);
} catch (Exception e) {
return Result.error(e);
}
}
// /** // /**
// * 病人修改病历的地址 // * 病人修改病历的地址
// * @param id 申请单号 // * @param id 申请单号
@ -193,7 +293,7 @@ public class XBDAction extends BaseAction {
// */ // */
// @Action("changeMRAddress") // @Action("changeMRAddress")
// public Result changeMRAddress(Integer id,String getWay,String address) { // public Result changeMRAddress(Integer id,String getWay,String address) {
// String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_ChangeAddress.Name,params-> { // String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_ChangeAddress.Name,params-> {
// params.put("Id",id); // params.put("Id",id);
// params.put("getWay",getWay); // params.put("getWay",getWay);
// params.put("address",address); // params.put("address",address);
@ -209,7 +309,7 @@ public class XBDAction extends BaseAction {
// */ // */
// @Action("stopMRReserve") // @Action("stopMRReserve")
// public Result stopMRReserve(Integer id,String delNote){ // public Result stopMRReserve(Integer id,String delNote){
// String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_StopAppointment.Name,params-> { // String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_StopAppointment.Name,params-> {
// params.put("Id",id); // params.put("Id",id);
// params.put("delNote",delNote); // params.put("delNote",delNote);
// }); // });

@ -2,6 +2,8 @@ package com.ynxbd.common.action.test;
import com.ynxbd.common.action.base.BaseAction; import com.ynxbd.common.action.base.BaseAction;
import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.helper.common.DateHelper;
import com.ynxbd.common.helper.xbd.EncHelper;
import com.ynxbd.common.helper.xbd.XBDHttpHelper;
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.result.ServiceException;
@ -12,9 +14,10 @@ import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Namespace;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Date; import java.util.Date;
/** /**
* @Author wsq * @Author wsq
* @Date 2021/3/17 10:57 * @Date 2021/3/17 10:57
@ -73,6 +76,8 @@ public class TestAction extends BaseAction {
public Result test03() throws ServiceException { public Result test03() throws ServiceException {
System.out.println("开关" + MdConfig.IS_AUTO_REFUND); System.out.println("开关" + MdConfig.IS_AUTO_REFUND);
log.info("日志测试"); log.info("日志测试");
System.out.println(System.getProperty("fileEncoding"));
System.out.println(System.getProperty("encoding"));
return Result.success(); return Result.success();
} }
@ -82,6 +87,24 @@ public class TestAction extends BaseAction {
return Result.success(); return Result.success();
} }
@Action("test_image")
public Result test_image(String image) {
try {
System.out.println(image);
System.out.println("=============================");
String data = EncHelper.AES_Encrypt(image);
System.out.println("1--------------------------");
System.out.println(data);
System.out.println("2--------------------------");
String data2 = XBDHttpHelper.compress(URLEncoder.encode(data, StandardCharsets.UTF_8.toString()));
System.out.println(data2);
} catch (Exception e) {
log.error("异常:{}", e.getMessage());
e.printStackTrace();
}
return Result.success();
}
// @Action("lock") // @Action("lock")
// public String lock() { // public String lock() {

@ -78,7 +78,7 @@ public class HisInHospDao {
} }
/** /**
* 根据patientId查询所有的 * 通过患者ID查询住院记录
* @param patientId 患者id * @param patientId 患者id
* @return 住院记录 * @return 住院记录
*/ */

@ -463,7 +463,6 @@ public class HisRegisterDao {
params.put("MZNum", null); params.put("MZNum", null);
params.put("RegistDate", regDate); params.put("RegistDate", regDate);
JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Regist, params); JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Regist, params);
if (!JsonResult.success()) { if (!JsonResult.success()) {
return resultList; return resultList;
@ -863,6 +862,83 @@ public class HisRegisterDao {
return dataList; return dataList;
} }
/**
* [分时段]根据科室code和医生code查询医生号源
*
* @param deptCode 科室code
* @param doctCode 医生code
* @param subDeptCode 亚专科code可为空为空查询大科室
* @param begDate 开始日期(yyyy-MM-dd HH:mm:ss)
* @param endDate 结束日期(yyyy-MM-dd)
* @return 号源集合
*/
public List<Register> getTimeRegSource(String deptCode, String subDeptCode, String doctCode, String begDate, String endDate) {
if (DateHelper.isToday(begDate)) {
begDate = begDate + " " + DateHelper.getCurTime();
}
Map<String, Object> params = new HashMap<>();
params.put("DeptCode", deptCode);
params.put("DoctCode", doctCode);
params.put("RegistBegDate", begDate);
params.put("RegistEndDate", endDate);
params.put("CanRegistFlag", "1"); // 仅返回有号源的医师 { 空或0:所有; 1:仅返回可挂号源 }
params.put("TimeInterval", 0); // 排班时段[ 0:所有时段、1:上午、2:中午、3:下午、4:晚上 ]
if (!ObjectUtils.isEmpty(subDeptCode)) {
params.put("DeptCode_YZKCode", subDeptCode); // 亚专科code
}
JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Register_Source_New, params);
List<Register> dataList = new ArrayList<>();
if (!jsonResult.success()) {
log.info("[分时段挂号-号源查询]{}", jsonResult.getMessage());
return dataList;
}
try {
JSONArray jsonArray = jsonResult.getJsonArray("Dept", "Doct", "TimeInterval");
JSONObject timeNode, sourceNode;
Register sourceItem;
JSONArray sourceArr;
BigDecimal regMoney;
String tid, tName;
for (int i = 0; i < jsonArray.size(); i++) {
timeNode = jsonArray.getJSONObject(i);
tid = timeNode.getString("TID");
tid = tid == null ? null : tid.trim();
tName = timeNode.getString("TName");
tName = tName == null ? null : tName.trim();
sourceArr = timeNode.getJSONArray("Source");
for (int k = 0; k < sourceArr.size(); k++) {
sourceNode = sourceArr.getJSONObject(k);
regMoney = sourceNode.getBigDecimal("RegistPrice");
if (regMoney == null) {
regMoney = BigDecimal.ZERO;
}
sourceItem = new Register();
sourceItem.setTid(tid);
sourceItem.setTName(tName);
sourceItem.setRegFee(regMoney);
// -----------------------
sourceItem.setSourceId(sourceNode.getString("SourceId"));
sourceItem.setQueueNum(sourceNode.getString("QueueNumber"));
sourceItem.setBegTime(sourceNode.getString("BegTime"));
sourceItem.setEndTime(sourceNode.getString("EndTime"));
sourceItem.setRegCode(sourceNode.getString("RegistCode"));
sourceItem.setRegName(sourceNode.getString("RegistName"));
sourceItem.setRegDate(sourceNode.getString("RegistDate"));
sourceItem.setAddress(sourceNode.getString("ClinicAddress"));
sourceItem.setAllowReg(sourceNode.getInteger("AllowOnline"));
sourceItem.setIsUsed(sourceNode.getInteger("IsUsed"));
dataList.add(sourceItem);
}
}
} catch (Exception e) {
ErrorHelper.println(e);
}
return dataList;
}
/** /**
* 执行分时段挂号 * 执行分时段挂号
@ -1060,7 +1136,6 @@ public class HisRegisterDao {
} }
/** /**
* 执行预约签到(只执行分时段) * 执行预约签到(只执行分时段)
* *

@ -533,9 +533,9 @@ public class XBDLisDao {
" dbo.lab_result a LEFT JOIN" + " dbo.lab_result a LEFT JOIN" +
" lab_rptunit_item b ON a.rptunitid = b.rptunitid AND a.rpt_itemid = b.rpt_itemid LEFT JOIN" " lab_rptunit_item b ON a.rptunitid = b.rptunitid AND a.rpt_itemid = b.rpt_itemid LEFT JOIN"
+ +
" dbo.lab_rptitem c ON a.rpt_itemid = c.rpt_itemid" + " dbo.lab_rptitem c ON a.rpt_itemid = c.rpt_itemid LEFT JOIN dbo.lab_report d ON a.reportid = d.reportid " +
" WHERE " + " WHERE " +
" reportid = ? and isnull(b.unprintflag, 0) <> '1' and (result_num IS NOT NULL OR ISNULL(result_unit,'') <> '' OR ISNULL(result_ref,'') <> '' OR ISNULL(result6,'') = '') ORDER BY b.seq"; " a.reportid = ? AND d.UnPrint_Flag<>'1' and (result_num IS NOT NULL OR ISNULL(result_unit,'') <> '' OR ISNULL(result_ref,'') <> '' OR ISNULL(result6,'') = '') ORDER BY b.seq";
return LisDB.select(sql, XBDLisResult.class, ps -> { return LisDB.select(sql, XBDLisResult.class, ps -> {
ps.setInt(1, reportId); ps.setInt(1, reportId);
}); });

@ -0,0 +1,13 @@
package com.ynxbd.common.helper;
import org.apache.commons.codec.digest.DigestUtils;
public class TestHelper {
public static void main(String[] args) {
String treatNum = "1579733" + "huiyou69";
String key = DigestUtils.md5Hex(treatNum).toUpperCase();
System.out.println(key);
String substring = key.substring(3, 12);
System.out.println(substring);
}
}

@ -1,6 +1,10 @@
package com.ynxbd.common.helper.xbd; package com.ynxbd.common.helper.xbd;
import org.apache.commons.codec.digest.DigestUtils;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher; import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec; import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -27,12 +31,13 @@ public class EncHelper {
/** /**
* AES加密 * AES加密
*
* @param encryptString 要被加密的字符串 * @param encryptString 要被加密的字符串
* @return * @return
* @throws Exception * @throws Exception
*/ */
public static String AES_Encrypt(String encryptString) throws Exception { public static String AES_Encrypt(String encryptString) throws Exception {
String keyValue = String.format("%-32s", GetStr(key)); String keyValue = String.format("%-32s", GetStr(key));
byte[] iv = (GetStr(ivB).substring(0, 16)).getBytes(StandardCharsets.UTF_8); byte[] iv = (GetStr(ivB).substring(0, 16)).getBytes(StandardCharsets.UTF_8);
SecretKeySpec secretKeySpec = new SecretKeySpec(keyValue.getBytes(), "AES"); SecretKeySpec secretKeySpec = new SecretKeySpec(keyValue.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //"算法/模式/补码方式" Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //"算法/模式/补码方式"
@ -46,21 +51,25 @@ public class EncHelper {
/** /**
* 64位MD5加密 * 64位MD5加密
* @param context *
* @return * @param context 加密内容
* @throws Exception * @return string
*/ */
public static String MD5Encrypt64(String context) throws Exception { public static String MD5Encrypt64(String context) throws Exception {
MessageDigest md5 = MessageDigest.getInstance("MD5"); MessageDigest md5 = MessageDigest.getInstance("MD5");
byte[] digest = md5.digest(context.getBytes("utf-8")); byte[] digest = md5.digest(context.getBytes(StandardCharsets.UTF_8));
return Base64.getEncoder().encodeToString(digest); return Base64.getEncoder().encodeToString(digest);
} }
private static String GetStr(byte[] byteList) { private static String GetStr(byte[] byteList) {
String valueStr = ""; StringBuilder valueStr = new StringBuilder();
for (byte b : byteList) { for (byte b : byteList) {
valueStr += (char) b; valueStr.append((char) b);
} }
return valueStr; return valueStr.toString();
} }
} }

@ -21,35 +21,38 @@ import java.util.Map;
public class HttpHelper { public class HttpHelper {
/** /**
* Get执行后台指定方法 * Get执行后台指定方法
*
* @param methodName 方法名 * @param methodName 方法名
* @param paramDic 参数 * @param paramDic 参数
* @return 返回的数据(Json) * @return 返回的数据(Json)
*/ */
public static String ExecMethodGet (String methodName, Object paramDic){ public static String ExecMethodGet(String methodName, Object paramDic) {
return UseGet(methodName,paramDic); return UseGet(methodName, paramDic);
} }
/** /**
* Get执行后台指定方法 * Get执行后台指定方法
*
* @param methodName 方法名 * @param methodName 方法名
* @return 返回的数据(Json) * @return 返回的数据(Json)
*/ */
public static String ExecMethodGet (String methodName){ public static String ExecMethodGet(String methodName) {
return UseGet(methodName,null); return UseGet(methodName, null);
} }
private static String UseGet(String methodName, Object paramDic) { private static String UseGet(String methodName, Object paramDic) {
try { try {
String url = "http://192.168.12.66:8080"; String url = "http://192.168.12.66:8080";
OkHttpClient httpClient = OkHttpHelper.creatClient(); OkHttpClient httpClient = OkHttpHelper.creatClient();
HttpUrl.Builder urlBuilder = HttpUrl.parse(url+"/api/SqlContext/ExecMethodByNameEncryption").newBuilder(); HttpUrl.Builder urlBuilder = HttpUrl.parse(url + "/api/SqlContext/ExecMethodByNameEncryption").newBuilder();
// 加密序列化 // 加密序列化
String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString()); String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString());
urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv); urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv);
String paramJson = JSONObject.toJSONString(paramDic==null? "" :paramDic); String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic);
// json 加密序列化传入链接 // json 加密序列化传入链接
String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString()); String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString());
urlBuilder.addQueryParameter("paramsStrEnc", paramsStrEnv); urlBuilder.addQueryParameter("paramsStrEnc", paramsStrEnv);
String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodName + paramJson),StandardCharsets.UTF_8.toString()); String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodName + paramJson), StandardCharsets.UTF_8.toString());
urlBuilder.addQueryParameter("modCode", md5Check); urlBuilder.addQueryParameter("modCode", md5Check);
@ -63,24 +66,22 @@ public class HttpHelper {
// 清除并关闭连接池 // 清除并关闭连接池
// httpClient.connectionPool().evictAll(); // httpClient.connectionPool().evictAll();
JSONObject JSON = JSONObject.parseObject(response.body().string()); JSONObject JSON = JSONObject.parseObject(response.body().string());
if(response.isSuccessful()){ if (response.isSuccessful()) {
return JSON.getString("Data").replaceAll(" ",""); return JSON.getString("Data").replaceAll(" ", "");
} } else {
else { log.error("[在线病历打印]返回错误:方法名-{},错误-{}", methodName, JSON.getString("Msg"));
log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.getString("Msg")); throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg"));
throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") );
} }
} } catch (Exception e) {
catch (Exception e){ log.error("[在线病历打印]请求错误-{}", e.getMessage());
log.error("[在线病历打印]请求错误-{}",e.getMessage());
return e.getMessage(); return e.getMessage();
} }
} }
public static void main(String[] args) { public static void main(String[] args) {
Map<String,String> test = new HashMap<>(); Map<String, String> test = new HashMap<>();
test.put("patientID","10947918"); test.put("patientID", "10947918");
System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", test)); System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", test));
} }
} }

@ -3,8 +3,10 @@ package com.ynxbd.common.helper.xbd;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.helper.http.OkHttpHelper;
import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.JsonResult;
import com.ynxbd.common.result.ServiceException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.*; import okhttp3.*;
import org.apache.commons.lang3.ObjectUtils;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@ -24,163 +26,199 @@ import java.util.zip.GZIPOutputStream;
*/ */
@Slf4j @Slf4j
public class XBDHttpHelper { public class XBDHttpHelper {
/**
* Get执行后台指定方法
* @param methodName 方法名
* @param paramDic 参数
* @return 返回的数据(Json)
*/
public static String ExecMethodGet (String methodName, Object paramDic){
return UseGet(methodName,paramDic);
}
/**
* 直接用lambda传参数的方法
* @param methodName 方法名
* @param params lambda表达式
* @return String
*/
public static String ExecMethodGet(String methodName, JsonResult.MapParams params){
Map<String, Object> requestParams = new HashMap<>();
if (params != null) {
params.setParams(requestParams);
}
return ExecMethodGet(methodName,requestParams);
}
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<>();
if (params != null) { if (params != null) {
params.setParams(requestParams); params.setParams(requestParams);
} }
// log.info("[病案翻拍]未加密前请求-{}",requestParams);
StringBuilder originalPrint = new StringBuilder();
originalPrint.append("{");
requestParams.forEach((key, value) -> {
String valueStr = value == null ? null : value.toString();
if (valueStr != null && valueStr.length() > 300) {
valueStr = valueStr.substring(0, 300) + "...";
}
originalPrint.append(key).append(":\"").append(valueStr).append("\", ");
});
originalPrint.append("}");
log.info("[病案翻拍]未加密前请求-{}", originalPrint);
List<String> paramsNameList = new ArrayList<>(requestParams.keySet()); List<String> paramsNameList = new ArrayList<>(requestParams.keySet());
JSONObject jsonObj = new JSONObject(); JSONObject reqJsonObj = new JSONObject();
jsonObj.put("method",compress(URLEncoder.encode(EncHelper.AES_Encrypt(methodName),StandardCharsets.UTF_8.toString()))); reqJsonObj.put("method", compress(URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString())));
for (String paramsName:paramsNameList) { for (String paramsName : paramsNameList) {
if(requestParams.get(paramsName)==null){ if (requestParams.get(paramsName) == null) {
jsonObj.put(paramsName,""); reqJsonObj.put(paramsName, "");
continue; continue;
} }
jsonObj.put(paramsName,compress(URLEncoder.encode(EncHelper.AES_Encrypt(requestParams.get(paramsName).toString()),StandardCharsets.UTF_8.toString()))); reqJsonObj.put(paramsName, compress(URLEncoder.encode(EncHelper.AES_Encrypt(requestParams.get(paramsName).toString()), StandardCharsets.UTF_8.toString())));
} }
MediaType jsonMedia = MediaType.parse("application/json; charset=utf-8"); MediaType jsonMedia = MediaType.parse("application/json; charset=utf-8");
RequestBody formBody = RequestBody.create(jsonMedia, jsonObj.toJSONString()); RequestBody formBody = RequestBody.create(jsonMedia, reqJsonObj.toJSONString());
String test = jsonObj.toJSONString();
log.info("[病案翻拍]加密后请求-{}",test); StringBuilder encodePrint = new StringBuilder();
return UsePost(methodName,formBody); encodePrint.append("{");
reqJsonObj.forEach((key, value) -> {
String valueStr = value == null ? null : value.toString();
if (valueStr != null && valueStr.length() > 300) {
valueStr = valueStr.substring(0, 300) + "...";
}
encodePrint.append(key).append(":\"").append(valueStr).append("\", ");
});
encodePrint.append("}");
log.info("[病案翻拍]加密后请求-{}", encodePrint);
return UsePost(methodName, formBody);
} }
/** private static String UsePost(String methodName, RequestBody requestBody) {
* Get执行后台指定方法 OkHttpClient httpClient = OkHttpHelper.creatClient();
* @param methodName 方法名 Headers.Builder headersBuilder = new Headers.Builder();
* @return 返回的数据(Json) HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(XBDHelper.MED_RECORD_COPY_URL + "/api/SqlContext/PostMethodByNameEncryption")).newBuilder();
*/ try (Response response = httpClient.newCall(new Request.Builder().url(urlBuilder.build()).post(requestBody).headers(headersBuilder.build()).build()).execute()) {
public static String ExecMethodGet (String methodName){ JSONObject respJson = respFilter(response, methodName);
return UseGet(methodName,null); String code = respJson.getString("Code");
String msg = respJson.getString("Msg");
if ("200".equals(code)) {
return respJson.getString("Data");
}
log.error("[线上病案POST]返回错误:方法名-{},错误-{}", methodName, msg);
throw new Exception("方法:" + methodName + "错误:" + msg);
} catch (Exception e) {
log.error("[线上病案POST]请求异常:{}", e.toString());
return e.getMessage();
}
} }
private static String UsePost(String methodName, RequestBody requestBody){
OkHttpClient httpClient = OkHttpHelper.creatClient(); // 返回响应体过滤
Headers.Builder headersBuilder = new Headers.Builder(); private static JSONObject respFilter(Response response, String methodName) throws Exception {
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(XBDHelper.MED_RECORD_COPY_URL + "/api/SqlContext/PostMethodByNameEncryption")).newBuilder(); if (!response.isSuccessful()) {
try (Response response = httpClient.newCall(new Request.Builder().url(urlBuilder.build()).post(requestBody).headers(headersBuilder.build()).build()).execute()) { log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, response.message());
JSONObject JSON = JSONObject.parseObject(response.body().string()); throw new ServiceException("方法:" + methodName + "错误: " + response.message());
if(response.isSuccessful()){ }
log.info("[在线病历打印]返回:方法名-{},内容-{}",methodName,JSON);
return JSON.getString("Data"); ResponseBody body = response.body();
} if (body == null) {
else { log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "body is null");
log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.toJSONString()); throw new ServiceException("方法:" + methodName + "错误: resp body is null");
throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") ); }
} String respBodyStr = body.string();
} catch (Exception e) { if (ObjectUtils.isEmpty(respBodyStr)) {
log.error("[在线病历打印]请求错误-{}",e.toString()); log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "respBodyStr is null");
return e.getMessage(); throw new ServiceException("方法:" + methodName + "错误: respBodyStr is null");
} }
JSONObject respJson = JSONObject.parseObject(respBodyStr);
if (respJson == null) {
log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "respJson is null");
throw new ServiceException("方法:" + methodName + "错误: respJson is null");
}
return respJson;
} }
// /**
// * Get执行后台指定方法
// *
// * @param methodName 方法名
// * @param paramDic 参数
// * @return 返回的数据(Json)
// */
// public static String ExecMethodGet(String methodName, Object paramDic) {
// return UseGet(methodName, paramDic);
// }
//
// /**
// * 直接用lambda传参数的方法
// *
// * @param methodName 方法名
// * @param params lambda表达式
// * @return String
// */
// public static String ExecMethodGet(String methodName, JsonResult.MapParams params) {
// Map<String, Object> requestParams = new HashMap<>();
// if (params != null) {
// params.setParams(requestParams);
// }
// return ExecMethodGet(methodName, requestParams);
// }
// /**
// * Get执行后台指定方法
// *
// * @param methodName 方法名
// * @return 返回的数据(Json)
// */
// public static String ExecMethodGet(String methodName) {
// return UseGet(methodName, null);
// }
/**
* Get请求
*
* @param methodName 调用方法名
* @param paramDic 入参
* @return string
*/
private static String UseGet(String methodName, Object paramDic) { private static String UseGet(String methodName, Object paramDic) {
try { try {
OkHttpClient httpClient = OkHttpHelper.creatClient(); OkHttpClient httpClient = OkHttpHelper.creatClient();
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 methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString()); String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic);
urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv); log.info("[线上病案GET]未加密前get请求入参:[methodName:{}] {}", methodName, paramJson);
String paramJson = JSONObject.toJSONString(paramDic==null? "" :paramDic);
if(!paramJson.equals("")){
log.info("[病案翻拍]未加密前get请求-{}",paramJson);
}
// json 加密序列化传入链接
String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString()); String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString());
urlBuilder.addQueryParameter("paramsStrEnc", compress(paramsStrEnv)); String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString());
String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodName + paramJson),StandardCharsets.UTF_8.toString()); String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodNameEnv + paramsStrEnv), StandardCharsets.UTF_8.toString());
urlBuilder.addQueryParameter("modCode", md5Check);
log.info("[method:{}]加密后入参 methodNameEnc={}, modCode={}, paramsStrEnc={}", methodName, methodNameEnv, md5Check, compress(paramsStrEnv));
urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv);
urlBuilder.addQueryParameter("modCode", md5Check);
urlBuilder.addQueryParameter("paramsStrEnc", compress(paramsStrEnv));
Request request = new Request.Builder() try (Response response = httpClient.newCall(new Request.Builder().url(urlBuilder.toString()).get().build()).execute();) {
.url(urlBuilder.toString()) JSONObject respJson = respFilter(response, methodName);
.get() String code = respJson.getString("Code");
.build(); String msg = respJson.getString("Msg");
Response response = httpClient.newCall(request).execute(); if ("200".equals(code)) {
// 清除并关闭线程池 return respJson.getString("Data");
// httpClient.dispatcher().executorService().shutdown();
// 清除并关闭连接池
// httpClient.connectionPool().evictAll();
JSONObject JSON = JSONObject.parseObject(response.body().string());
if(response.isSuccessful()){
log.info("[在线病历打印]返回:方法名-{},内容-{}",methodName,JSON);
if("200".equals(JSON.getString("Code"))){
JSON.getString("Data");
return JSON.getString("Data");
}
else {
log.error("[[在线病历打印] 请求错误:json-{}",JSON);
return JSON.toString();
} }
log.error("[线上病案GET]返回错误:方法名-{},错误-{}", methodName, msg);
throw new Exception("方法:" + methodName + "错误:" + msg);
} catch (Exception e) {
log.error("[线上病案GET]请求异常:{}", e.toString());
return null;
} }
else { } catch (Exception e) {
log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.getString("Msg")); log.error("[线上病案GET]出现异常:{}", e.toString());
throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") );
}
}
catch (Exception e){
log.error("[在线病历打印]请求错误-{}",e.toString());
return null; return null;
} }
} }
/** /**
* gzip压缩方法 * gzip压缩方法
*
* @param primStr 压缩字符串 * @param primStr 压缩字符串
* @return 压缩后的字符 * @return 压缩后的字符
*/ */
private static String compress(String primStr) { public static String compress(String primStr) {
if (primStr == null || primStr.length() == 0) { if (primStr == null || primStr.isEmpty()) {
return primStr; return primStr;
} }
ByteArrayOutputStream out = new ByteArrayOutputStream(); ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = null; try (GZIPOutputStream gzip = new GZIPOutputStream(out)) {
try {
gzip = new GZIPOutputStream(out);
gzip.write(primStr.getBytes()); gzip.write(primStr.getBytes());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} finally {
if (gzip != null) {
try {
gzip.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
return new sun.misc.BASE64Encoder().encode(out.toByteArray()); return new sun.misc.BASE64Encoder().encode(out.toByteArray());
} }
private static String uncompress(String compressedStr) { private static String uncompress(String compressedStr) {
if (compressedStr == null) { if (compressedStr == null) {
return null; return null;
@ -224,11 +262,18 @@ public class XBDHttpHelper {
return decompressed; return decompressed;
} }
public static void main(String[] args) { // public static void main(String[] args) {
Map<String,Object> params = new HashMap<>(); // Map<String, Object> params = new HashMap<>();
params.put("patientID","448969"); // params.put("patientID", "448969");
params.put("flagFP",0); // params.put("flagFP", 0);
params.put("flagSH",0); // params.put("flagSH", 0);
System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", params)); // System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", params));
} // }
// 清除并关闭线程池
// httpClient.dispatcher().executorService().shutdown();
// 清除并关闭连接池
// httpClient.connectionPool().evictAll();
} }

@ -148,7 +148,7 @@ public class AIGuidanceService {
String curDate = DateHelper.getCurDate(); String curDate = DateHelper.getCurDate();
List<Doctor> doctorList = new HisRegisterDao().getTimeDoctorList(deptId, branchId, curDate, DateHelper.getMoveDate(curDate, 7)); List<Doctor> doctorList = new HisRegisterDao().getTimeDoctorList(deptId, branchId, curDate, DateHelper.getMoveDate(curDate, 7));
doctorList = new DoctorService().docListHandle(doctorList); doctorList = new DoctorService().doctorListFilter(doctorList);
RegisterDao registerDao = new RegisterDao(); RegisterDao registerDao = new RegisterDao();
List<Dept> wxDeptList = registerDao.selectDeptList(); List<Dept> wxDeptList = registerDao.selectDeptList();

@ -114,24 +114,28 @@ public class CasebookService {
} }
log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId); log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId);
String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> { try {
params.put("borrowNo", casebookId); String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> {
params.put("payDateTime", DateHelper.getCurDateTime()); params.put("borrowNo", casebookId);
}); params.put("payDateTime", DateHelper.getCurDateTime());
});
log.info("[病历]回调返回 resp={}", jsonString);
String code = JsonHelper.parseObject(jsonString).getString("Code"); log.info("[病历]回调返回 resp={}", jsonString);
if (code == null) { String code = JsonHelper.parseObject(jsonString).getString("Code");
if (!casebookDao.updateNotifyOk(outTradeNo)) { if (code == null) {
log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); if (!casebookDao.updateNotifyOk(outTradeNo)) {
log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId);
}
return;
} }
return;
}
String message = JsonHelper.parseObject(jsonString).getString("Msg"); String message = JsonHelper.parseObject(jsonString).getString("Msg");
log.info("[病历]回调失败 code={}, message={}", code, message); log.info("[病历]回调失败 code={}, message={}", code, message);
if (!casebookDao.updateNotifyErr(outTradeNo, message)) { if (!casebookDao.updateNotifyErr(outTradeNo, message)) {
log.info("[病历]更新订单错误信息失败 outTradeNo={}, code={}, message={}", outTradeNo, code, message); log.info("[病历]更新订单错误信息失败 outTradeNo={}, code={}, message={}", outTradeNo, code, message);
}
} catch (Exception e) {
log.error(e.getMessage());
} }
} }
} }

@ -19,7 +19,7 @@ public class DoctorService {
/** /**
* 医生字段空字符串处理排序 * 医生字段空字符串处理排序
*/ */
public List<Doctor> docListHandle(List<Doctor> doctorList) { public List<Doctor> doctorListFilter(List<Doctor> doctorList) {
RegisterDao registerDao = new RegisterDao(); RegisterDao registerDao = new RegisterDao();
List<Doctor> resultList = new ArrayList<>(); List<Doctor> resultList = new ArrayList<>();
@ -43,7 +43,7 @@ public class DoctorService {
doctorItem.setHeadImg(dbDoctor.getHeadImg()); doctorItem.setHeadImg(dbDoctor.getHeadImg());
doctorItem.setPym(dbDoctor.getPym()); doctorItem.setPym(dbDoctor.getPym());
docStateHandle(dbDoctor, doctorItem); doctorStateFilter(dbDoctor, doctorItem);
} }
} }
@ -83,7 +83,13 @@ public class DoctorService {
return resultList.stream().sorted(Comparator.comparing(Doctor::getTitleCode)).collect(Collectors.toList()); return resultList.stream().sorted(Comparator.comparing(Doctor::getTitleCode)).collect(Collectors.toList());
} }
public void docStateHandle(Doctor dbDoctor, Doctor doctorItem) { /**
* 医生状态过滤
*
* @param dbDoctor db
* @param doctorItem his
*/
public void doctorStateFilter(Doctor dbDoctor, Doctor doctorItem) {
String title, customTitle; // 职称 String title, customTitle; // 职称
String description; // 特长 String description; // 特长
customTitle = dbDoctor.getCustomTitle(); customTitle = dbDoctor.getCustomTitle();

@ -1,6 +1,7 @@
package com.ynxbd.common.service; package com.ynxbd.common.service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.ynxbd.common.action.pay.PEnum; import com.ynxbd.common.action.pay.PEnum;
import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.enums.MerchantEnum;
@ -19,6 +20,7 @@ import com.ynxbd.common.result.ServiceException;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.FormBody; import okhttp3.FormBody;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import org.apache.commons.lang3.ObjectUtils;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@ -35,7 +37,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class PeisService { public class PeisService {
public Boolean Reserve(String openid, String patientId, String treatNum, String outTradeNo, String totalFee,String recipeId){ public Boolean Reserve(String openid, String patientId, String treatNum, String outTradeNo, String totalFee, String recipeId) {
Recipe recipe = new Recipe(); Recipe recipe = new Recipe();
recipe.setOpenid(openid); recipe.setOpenid(openid);
recipe.setPatientId(patientId); recipe.setPatientId(patientId);
@ -46,13 +48,14 @@ public class PeisService {
recipe.setPayMoney(new BigDecimal(totalFee)); recipe.setPayMoney(new BigDecimal(totalFee));
recipe.setPeisStatus(-1); recipe.setPeisStatus(-1);
recipe.setPayStatus(-1); recipe.setPayStatus(-1);
if(new PeisDao().isRepeat(recipe.getRecipeId())){ if (new PeisDao().isRepeat(recipe.getRecipeId())) {
log.info("[体检预约]该处方号已经缴费,recipeId-{}",recipe.getRecipeId()); log.info("[体检预约]该处方号已经缴费,recipeId-{}", recipe.getRecipeId());
return false; return false;
} }
return new PeisDao().insert(recipe); return new PeisDao().insert(recipe);
} }
public void payNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo,Date tradeDate){
public void payNotify(MerchantEnum merchantEnum, String openid, BigDecimal totalFee, String outTradeNo, String bankTransNo, String payInfo, Date tradeDate) {
PeisDao peisDao = new PeisDao(); PeisDao peisDao = new PeisDao();
Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo); Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo);
String tradeNo = HisHelper.getHisTradeNo(bankTransNo, PEnum.PEIS_RESERVE); String tradeNo = HisHelper.getHisTradeNo(bankTransNo, PEnum.PEIS_RESERVE);
@ -62,46 +65,45 @@ public class PeisService {
log.error("[体检预约] 拒绝支付-订单已支付 outTradeNo={}, bankTransNo={}, recipeId={}", outTradeNo, bankTransNo, recipeId); log.error("[体检预约] 拒绝支付-订单已支付 outTradeNo={}, bankTransNo={}, recipeId={}", outTradeNo, bankTransNo, recipeId);
return; return;
} }
if (!peisDao.updatePayStateOk(outTradeNo, bankTransNo,tradeNo)) { if (!peisDao.updatePayStateOk(outTradeNo, bankTransNo, tradeNo)) {
log.info("[体检预约]修改支付状态失败 outTradeNo={}, bankTransNo={},tradeNo-{}", outTradeNo, bankTransNo,tradeNo); log.info("[体检预约]修改支付状态失败 outTradeNo={}, bankTransNo={},tradeNo-{}", outTradeNo, bankTransNo, tradeNo);
RequestBody formBody = new FormBody.Builder(). RequestBody formBody = new FormBody.Builder().
add("orderNo", recipeId) add("orderNo", recipeId)
.add("payStatus","FAIL") .add("payStatus", "FAIL")
.add("payFailReason","修改支付状态失败") .add("payFailReason", "修改支付状态失败")
.add("bankTransNo",bankTransNo) .add("bankTransNo", bankTransNo)
.add("outTradeNo",outTradeNo) .add("outTradeNo", outTradeNo)
.build(); .build();
String result = OkHttpHelper.post(XBDHelper.XBD_PEIS+"/wxUse/wxPay",formBody); String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxPay", formBody);
JSONObject jsonResult = JsonHelper.parseObject(result); JSONObject jsonResult = JsonHelper.parseObject(result);
log.info("[体检预约]缴费失败回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}",recipeId,bankTransNo,jsonResult.get("code"),jsonResult.get("message")); log.info("[体检预约]缴费失败回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message"));
String pushMessage = "体检预约失败已申请退款,原因:修改支付状态失败,订单号:" + outTradeNo+"orderNo:"+ recipeId;; String pushMessage = "体检预约失败已申请退款,原因:修改支付状态失败,订单号:" + outTradeNo + "orderNo:" + recipeId;
peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); ;
} peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid);
else { } else {
RequestBody formBody = new FormBody.Builder(). RequestBody formBody = new FormBody.Builder().
add("orderNo", recipeId) add("orderNo", recipeId)
.add("payStatus", "OK") .add("payStatus", "OK")
.add("payFailReason", "") .add("payFailReason", "")
.add("bankTransNo", bankTransNo) .add("bankTransNo", bankTransNo)
.add("outTradeNo",outTradeNo) .add("outTradeNo", outTradeNo)
.build(); .build();
String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxPay", formBody); String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxPay", formBody);
if(result==null){ if (result == null) {
log.info("[体检预约]体检服务无响应,开始退费"); log.info("[体检预约]体检服务无响应,开始退费");
String pushMessage = "体检预约失败已申请退款,原因:体检服务无响应,订单号:" + outTradeNo+"orderNo:"+ recipeId; String pushMessage = "体检预约失败已申请退款,原因:体检服务无响应,订单号:" + outTradeNo + "orderNo:" + recipeId;
peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid);
} }
JSONObject jsonResult = JsonHelper.parseObject(result); JSONObject jsonResult = JsonHelper.parseObject(result);
log.info("[体检预约]缴费成功回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message")); log.info("[体检预约]缴费成功回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message"));
if("200".equals(jsonResult.get("code").toString())){ if ("200".equals(jsonResult.get("code").toString())) {
if(!peisDao.updatePeisStateOk(outTradeNo, bankTransNo)){ if (!peisDao.updatePeisStateOk(outTradeNo, bankTransNo)) {
log.info("[体检预约]修改体检系统支付状态失败 outTradeNo={}, bankTransNo={}", outTradeNo, bankTransNo); log.info("[体检预约]修改体检系统支付状态失败 outTradeNo={}, bankTransNo={}", outTradeNo, bankTransNo);
} }
} } else {
else {
log.info("[体检预约]回调体检系统计费状态码异常 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message")); log.info("[体检预约]回调体检系统计费状态码异常 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message"));
String pushMessage = "体检预约失败已申请退款,原因:体检系统计费失败,订单号:" + outTradeNo+"orderNo:"+ recipeId; String pushMessage = "体检预约失败已申请退款,原因:体检系统计费失败,订单号:" + outTradeNo + "orderNo:" + recipeId;
peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid);
} }
} }
@ -109,24 +111,25 @@ public class PeisService {
/** /**
* 体检退费接口 * 体检退费接口
* @param recipeId 订单号 *
* @param recipeId 订单号
* @param merchantEnum 支付方式 * @param merchantEnum 支付方式
* @param outTradeNo outTradeNo * @param outTradeNo outTradeNo
* @param totalFee 总金额 * @param totalFee 总金额
* @param pushInfo 提示信息 * @param pushInfo 提示信息
* @param tradeDate 退费时间 * @param tradeDate 退费时间
* @param openid openid * @param openid openid
*/ */
public Result peisAutoRefund(String recipeId, MerchantEnum merchantEnum, String outTradeNo, BigDecimal totalFee, String pushInfo, Date tradeDate, String openid){ public Result peisAutoRefund(String recipeId, MerchantEnum merchantEnum, String outTradeNo, BigDecimal totalFee, String pushInfo, Date tradeDate, String openid) {
PeisDao peisDao = new PeisDao(); PeisDao peisDao = new PeisDao();
if(peisDao.checkRefund(outTradeNo)){ if (peisDao.checkRefund(outTradeNo)) {
log.info("{} [体检预约][该订单已经退费,请不要重复退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); log.info("{} [体检预约][该订单已经退费,请不要重复退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee);
return Result.error("该订单已经退费,请不要重复退费"); return Result.error("该订单已经退费,请不要重复退费");
} }
String result = OkHttpHelper.get(XBDHelper.XBD_PEIS+"/wxUse/GetOrder",params -> { String result = OkHttpHelper.get(XBDHelper.XBD_PEIS + "/wxUse/GetOrder", params -> {
params.put("orderNo",recipeId); params.put("orderNo", recipeId);
}); });
if(result==null){ if (result == null) {
log.info("{} [体检预约][退费错误,计费信息查询失败] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); log.info("{} [体检预约][退费错误,计费信息查询失败] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee);
return Result.error("退费错误,计费信息查询失败"); return Result.error("退费错误,计费信息查询失败");
} }
@ -134,11 +137,11 @@ public class PeisService {
String fee = jsonResult.getJSONObject("data").get("fee").toString(); String fee = jsonResult.getJSONObject("data").get("fee").toString();
boolean isWxPay = Boolean.parseBoolean(jsonResult.getJSONObject("data").get("isWxPay").toString()); boolean isWxPay = Boolean.parseBoolean(jsonResult.getJSONObject("data").get("isWxPay").toString());
boolean isCost = Boolean.parseBoolean(jsonResult.getJSONObject("data").get("isCost").toString()); boolean isCost = Boolean.parseBoolean(jsonResult.getJSONObject("data").get("isCost").toString());
if(totalFee.compareTo(BigDecimal.ZERO)==0||"0".equals(fee)){ if (totalFee.compareTo(BigDecimal.ZERO) == 0 || "0".equals(fee)) {
log.info("{} [体检预约][退费错误,退费金额为0] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); log.info("{} [体检预约][退费错误,退费金额为0] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee);
return Result.error("退费错误,退费金额为0"); return Result.error("退费错误,退费金额为0");
} }
if(totalFee.compareTo(new BigDecimal(fee))!=0){ if (totalFee.compareTo(new BigDecimal(fee)) != 0) {
log.info("{} [体检预约][退费错误,退费金额跟订单金额不符] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); log.info("{} [体检预约][退费错误,退费金额跟订单金额不符] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee);
return Result.error("退费错误,退费金额跟订单金额不符"); return Result.error("退费错误,退费金额跟订单金额不符");
} }
@ -146,17 +149,16 @@ public class PeisService {
// log.info("{} [体检预约][退费错误,体检显示已计费,不允许退费] recipeId-{}, outTradeNo={}, recipeId={}, totalFee={}", recipeId, merchantEnum.NAME, outTradeNo, recipeId, totalFee); // log.info("{} [体检预约][退费错误,体检显示已计费,不允许退费] recipeId-{}, outTradeNo={}, recipeId={}, totalFee={}", recipeId, merchantEnum.NAME, outTradeNo, recipeId, totalFee);
// return Result.error("退费错误,体检显示已计费,不允许退费"); // return Result.error("退费错误,体检显示已计费,不允许退费");
// } // }
if(isCost){ if (isCost) {
log.info("{} [体检预约][退费错误,his显示已计费,不允许退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); log.info("{} [体检预约][退费错误,his显示已计费,不允许退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee);
return Result.error("退费错误,体检系统his显示已计费,不允许退费"); return Result.error("退费错误,体检系统his显示已计费,不允许退费");
} }
String refundResult; String refundResult;
Order orderRefund = PayService.refund(merchantEnum, outTradeNo, recipeId, totalFee, totalFee, pushInfo, tradeDate, openid, null, pushInfo); Order orderRefund = PayService.refund(merchantEnum, outTradeNo, recipeId, totalFee, totalFee, pushInfo, tradeDate, openid, null, pushInfo);
if (!orderRefund.isSuccess()) { if (!orderRefund.isSuccess()) {
log.info("{} [体检预约][退费错误] outTradeNo={}, totalFee={},recipeId-{}", merchantEnum.NAME, outTradeNo, totalFee,recipeId); log.info("{} [体检预约][退费错误] outTradeNo={}, totalFee={},recipeId-{}", merchantEnum.NAME, outTradeNo, totalFee, recipeId);
refundResult = orderRefund.getRefundResult(); refundResult = orderRefund.getRefundResult();
} } else {
else {
refundResult = "OK"; refundResult = "OK";
} }
boolean isUpdate = peisDao.updateRefundResult(outTradeNo, recipeId, refundResult); boolean isUpdate = peisDao.updateRefundResult(outTradeNo, recipeId, refundResult);
@ -167,25 +169,47 @@ public class PeisService {
} }
public boolean peisRefund(String recipeId, String refundStatus, String refundFailReason){ public boolean peisRefund(String recipeId, String refundStatus, String refundFailReason) {
RequestBody formBody = new FormBody.Builder(). RequestBody formBody = new FormBody.Builder().
add("orderNo", recipeId) add("orderNo", recipeId)
.add("refundStatus",refundStatus) .add("refundStatus", refundStatus)
.add("refundFailReason",refundFailReason) .add("refundFailReason", refundFailReason)
.build(); .build();
String result = OkHttpHelper.post(XBDHelper.XBD_PEIS+"/wxUse/wxRefund",formBody); String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxRefund", formBody);
JSONObject jsonResult = JsonHelper.parseObject(result); JSONObject jsonResult = JsonHelper.parseObject(result);
return "200".equals(jsonResult.get("code")); return "200".equals(jsonResult.get("code"));
} }
public JSONArray getPeisByCardNo(String cardNo, String begDate, String endDate) throws ServiceException {
RequestBody formBody = new FormBody.Builder().
add("enIdCard", cardNo)
.add("begDate", begDate)
.add("endDate", endDate)
.build();
String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/WxUse/GetPeisOfPacsResult", formBody);
if (ObjectUtils.isEmpty(result)) {
throw new ServiceException("请求失败");
}
JSONObject jsonResult = JsonHelper.parseObject(result);
if (jsonResult == null) {
throw new ServiceException("请求失败");
}
String code = jsonResult.getString("code");
if (!"200".equals(code)) {
String message = jsonResult.getString("message");
throw new ServiceException(ObjectUtils.isEmpty(message) ? "请求失败" : message);
}
return jsonResult.getJSONArray("data");
}
public static void main(String[] args) { public static void main(String[] args) {
RequestBody formBody = new FormBody.Builder(). RequestBody formBody = new FormBody.Builder().
add("orderNo", "Fee2023112900000001") add("orderNo", "Fee2023112900000001")
.add("payStatus","OK") .add("payStatus", "OK")
.add("payFailReason","") .add("payFailReason", "")
.add("bankTransNo","4200001809202305012522296970") .add("bankTransNo", "4200001809202305012522296970")
.build(); .build();
String result = OkHttpHelper.post(XBDHelper.XBD_PEIS+"/wxUse/wxPay",formBody); String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxPay", formBody);
System.out.println(result); System.out.println(result);
// String result = OkHttpHelper.get(XBDHelper.XBD_PEIS+"/wxUse/GetOrder",params -> { // String result = OkHttpHelper.get(XBDHelper.XBD_PEIS+"/wxUse/GetOrder",params -> {
// params.put("orderNo","Fee2023112900000001"); // params.put("orderNo","Fee2023112900000001");

@ -0,0 +1,16 @@
package com.ynxbd.common.service;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.ObjectUtils;
public class XBDService {
public String getCloudToken(String treatNum) {
treatNum = treatNum + "huiyou69";
String key = DigestUtils.md5Hex(treatNum).toUpperCase();
if (ObjectUtils.isEmpty(key) || key.length() < 12) {
return null;
}
return key.substring(3, 12);
}
}

@ -22,7 +22,8 @@ public class ReqParamHelper {
public static void main(String[] args) { public static void main(String[] args) {
// System.out.println(encode("397631")); // System.out.println(encode("397631"));
System.out.println(encode("25578718")); System.out.println(encode("11608089"));
System.out.println(decode("EF6115C81C9EA8FF79E21180FEC20294")); // System.out.println(encode("533103198603294034"));
// System.out.println(decode("EF6115C81C9EA8FF79E21180FEC20294"));
} }
} }

@ -0,0 +1,34 @@
# \u533B\u4FDD\u914D\u7F6E
medical.is_dev=true
medical.is_enable=true
medical.is_auto_refund=true
# \u53EA\u6709\u8BA2\u9605\u53F7\u7684\u533B\u9662\u6216\u53EA\u60F3\u7528\u8BA2\u9605\u53F7\u7684\u533B\u9662 \u7533\u8BF7\u4E00\u4E2A\u7A7A\u670D\u52A1\u53F7 \u7A7A\u670D\u52A1\u53F7\u914D\u7F6E\u5FAE\u4FE1\u516C\u4F17\u53F7\uFF08\u670D\u52A1\u53F7\uFF09appId
medical.md_app_id=wxab5352ed71b7ffa3
medical.md_app_secret=39c4db8f0d621fcc2d28c37823ad6136
# \u57CE\u5E02\u7F16\u7801\uFF08\u817E\u8BAF\u63D0\u4F9B\uFF09
medical.city_code=530100
# \u533B\u9662\u540D\u79F0
medical.hospital_name=\u5BCC\u6C11\u53BF\u4EBA\u6C11\u533B\u9662
# \u533B\u4FDD\uFF081.PDF\u6587\u6863\uFF09----------------------------------------------------------------------------------
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u7F16\u7801
medical.org_no=H53012400865
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u5C0F\u7A0B\u5E8F/h5\u5E94\u7528id\uFF08\u6B63\u5F0F\u73AF\u5883\uFF1A\u6E20\u9053\u7F16\u53F7\uFF09
medical.org_app_id=1ITTOR5R700E8C430B0A00008D62FBAE
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u6E20\u9053\u8BA4\u8BC1\u7F16\u7801
medical.org_chnl_crtf_codg=BqK1kMStlhVDgN2uHf4EsLK/F2LjZPYJ81nK2eYQqxu5zeB8sYfN/nmeerCmyVx6
# \u514D\u5BC6\u6388\u6743\uFF082.\u8054\u7CFB\u817E\u8BAF-->\u90AE\u4EF6\u63D0\u4F9B\uFF08\u9700\u63D0\u4F9B\u7ED9\u817E\u8BAF\u8D1F\u8D23\u4EBA\uFF1A1.\u533B\u9662\u6B63\u5F0F\u57DF\u540D\u30012.\u516C\u4F17\u53F7appid\u30013.\u514D\u5BC6\u6388\u6743ip\u767D\u540D\u5355\uFF09\uFF09----------
# \u5408\u4F5C\u65B9id
medical.partner_id=50008805
# \u6D4B\u8BD5\u5BC6\u94A5
medical.dev_partner_secret=7779ef94240ded6dea01908bff3b168b
# \u6B63\u5F0F\u5BC6\u94A5
medical.partner_secret=7779ef94240ded6dea01908bff3b168b
# \u6E20\u9053\u53F7channel
medical.channel=AAGDjhBtPzo4LJTh9gCenRkB
# \u533B\u4FDD\u652F\u4ED8\u7B7E\u540Dkey\uFF083.\u516C\u4F17\u53F7-->\u533B\u4FDD\u652F\u4ED8\u529F\u80FD\u5F00\u901A\u540E-->\u90AE\u4EF6\u63D0\u4F9B\uFF09----------------------------------------
medical.pay_key=9a9033855852beac58cf2b0b4fb106b7

@ -0,0 +1,29 @@
# \u533B\u4FDD\u914D\u7F6E
medical.is_dev=true
medical.is_enable=true
medical.is_auto_refund=true
# \u57CE\u5E02\u7F16\u7801\uFF08\u817E\u8BAF\u63D0\u4F9B\uFF09
medical.city_code=532500
# \u533B\u9662\u540D\u79F0
medical.hospital_name=\u77F3\u6797\u5F5D\u65CF\u81EA\u6CBB\u53BF\u4E2D\u533B\u533B\u9662
# \u533B\u4FDD\uFF081.excel\u6587\u6863\uFF09----------------------------------------------------------------------------------
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u7F16\u7801
medical.org_no=H53012600130
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u5C0F\u7A0B\u5E8F/h5\u5E94\u7528id\uFF08\u6B63\u5F0F\u73AF\u5883\uFF1A\u6E20\u9053\u7F16\u53F7\uFF09
medical.org_app_id=1IRU343DL00Q4460C80A0000E0DC46CE
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u6E20\u9053\u8BA4\u8BC1\u7F16\u7801
medical.org_chnl_crtf_codg=BqK1kMStlhVDgN2uHf4EsLK/F2LjZPYJ81nK2eYQqxs6SMTsG0SxDDJvg2aPTdct
# \u514D\u5BC6\u6388\u6743\uFF082.\u8054\u7CFB\u817E\u8BAF-->\u90AE\u4EF6\u63D0\u4F9B\uFF08\u9700\u63D0\u4F9B\u7ED9\u817E\u8BAF\u8D1F\u8D23\u4EBA\uFF1A1.\u533B\u9662\u6B63\u5F0F\u57DF\u540D\u30012.\u516C\u4F17\u53F7appid\u30013.\u514D\u5BC6\u6388\u6743ip\u767D\u540D\u5355\uFF09\uFF09----------
# \u5408\u4F5C\u65B9id
medical.partner_id=50008770
# \u6D4B\u8BD5\u5BC6\u94A5
medical.dev_partner_secret=28ed20c054de87353defbbe00085f1d6
# \u6B63\u5F0F\u5BC6\u94A5
medical.partner_secret=9007e37ec6da1997586d0b857554e3b4
# \u6E20\u9053\u53F7channel
medical.channel=AAHUp9Lp_yjmcOGQjI5CvA1T
# \u533B\u4FDD\u652F\u4ED8\u7B7E\u540Dkey\uFF083.\u516C\u4F17\u53F7-->\u533B\u4FDD\u652F\u4ED8\u529F\u80FD\u5F00\u901A\u540E-->\u90AE\u4EF6\u63D0\u4F9B\uFF09----------------------------------------
medical.pay_key=93a10b4299e2ee52189092c8ac59555c

@ -11,7 +11,7 @@ medical.hospital_name=\u8499\u81EA\u5E02\u5987\u5E7C\u4FDD\u5065\u9662\uFF08\u84
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u7F16\u7801 # \u5B9A\u70B9\u533B\u836F\u673A\u6784\u7F16\u7801
medical.org_no=H53250300180 medical.org_no=H53250300180
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u5C0F\u7A0B\u5E8F/h5\u5E94\u7528id\uFF08\u6B63\u5F0F\u73AF\u5883\uFF1A\u6E20\u9053\u7F16\u53F7\uFF09 # \u5B9A\u70B9\u533B\u836F\u673A\u6784\u5C0F\u7A0B\u5E8F/h5\u5E94\u7528id\uFF08\u6B63\u5F0F\u73AF\u5883\uFF1A\u6E20\u9053\u7F16\u53F7\uFF09
medical.org_app_id=1GBPJCKU80043F60C80A00001CE39A66 medical.org_app_id=1IUOCUPT30CI4460C80A00007E3FC8B5
# \u5B9A\u70B9\u533B\u836F\u673A\u6784\u6E20\u9053\u8BA4\u8BC1\u7F16\u7801 # \u5B9A\u70B9\u533B\u836F\u673A\u6784\u6E20\u9053\u8BA4\u8BC1\u7F16\u7801
medical.org_chnl_crtf_codg=BqK1kMStlhVDgN2uHf4EsLK/F2LjZPYJ81nK2eYQqxtPbiPNIsvGFlw+DnMTrurn medical.org_chnl_crtf_codg=BqK1kMStlhVDgN2uHf4EsLK/F2LjZPYJ81nK2eYQqxtPbiPNIsvGFlw+DnMTrurn

@ -1 +1 @@
# \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false lis.url=192.168.1.185:8090 lis.unifiedEntrance=true # \u672C\u5730 #his.url=127.0.0.1:8888 # \u6D4B\u8BD5\u73AF\u5883 ali_code=675448357 # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=true # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------------------------------------- #\u672C\u5730 his.md_url=127.0.0.1:7777 his.dev_url=127.0.0.1:7777 ## \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u7EA2\u6CB3\u5DDE\u533B\u9662 his.url=10.20.10.6:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # \u4E91\u9F99 #his.url=200.200.200.69:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910 # \u5F00\u542F\u5904\u65B9\u9884\u7ED3\u7B97\uFF08\u7B2C2\u5F00\u5173\uFF09\uFF08\u6CE8\u610F\u8BE5\u914D\u7F6E\u9700\u8054\u7CFBhis\u5F00\u53D1\u8005\u786E\u8BA4\u652F\u6301\u624D\u80FD\u5F00\u542F\uFF0C\u5426\u5219\u5B58\u5728\u98CE\u9669\uFF01\uFF09 his.is_recipe_prepay=false lis.url=192.168.1.185:8090 lis.unifiedEntrance=true # \u672C\u5730 #his.url=127.0.0.1:8888 # \u6D4B\u8BD5\u73AF\u5883 ali_code=675448357 # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=true # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------------------------------------- #\u672C\u5730 his.md_url=127.0.0.1:7777 his.dev_url=127.0.0.1:7777 ## \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u7EA2\u6CB3\u5DDE\u533B\u9662 his.url=10.20.10.6:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.39:8888 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u7EA2\u6CB3 #his.url=10.20.10.6:8888 # \u7EA2\u6CB3\u533B\u4FDD #his.url=10.20.10.6:8888 #his.url=192.168.12.10:8888 #his.md_url=192.168.1.128:7885 #his.dev_url=10.20.10.6:9988 # \u6C38\u80DC #his.url=200.200.200.20:8888 # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:8888 # \u534E\u576A #his.url=192.168.1.115:8888 # \u8499\u81EA\u4E2D\u533B #his.url=192.168.0.228:8888 # \u7389\u9F99 #his.url=192.168.0.17:8888 # \u4E91\u9F99 #his.url=200.200.200.69:8888 # #his.url=172.16.10.15:8888 # \u7984\u529D\u949F\u7231 #his.url=200.200.200.5:8888 # \u8499\u81EA\u5E02\u4EBA\u6C11\u533B\u9662 #his.url=200.200.200.174:8080 # \u5143\u8C0B #his.url=200.200.200.29:8888 # \u5143\u8C0B\u533B\u4FDD #his.dev_url=200.200.200.36:9999 # \u8292\u5E02 #his.url=192.168.100.8:8888 # \u7EA2\u6CB3\u5987\u5E7C\u4FDD\u5065\u9662 #his.url=192.168.1.204:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # #his.url=10.10.11.23:8888 # \u77F3\u6797 #his.url=192.168.10.10:8888 # \u5BCC\u6C11 #his.url=200.200.201.27:8888 # \u897F\u53CC\u7248\u7EB3 #his.url=10.10.11.23:8888 #wx.password=ynxbd@6910

@ -20,14 +20,14 @@
#wx.is_recipe_prepay=true #wx.is_recipe_prepay=true
# \u8292\u5E02\u5987\u5E7C\u914D\u7F6E # \u8292\u5E02\u5987\u5E7C\u914D\u7F6E
wx.appId=wx7d33a52af019f134 #wx.appId=wx7d33a52af019f134
wx.appSecret=56ac2bc26672f05f06d6c557d978c0b1 #wx.appSecret=56ac2bc26672f05f06d6c557d978c0b1
wx.token=ynxbd #wx.token=ynxbd
wx.aesKey=SvUOQUIaawWoB6ptViNqcYkrTs1bmq5cbhiBglhtkct #wx.aesKey=SvUOQUIaawWoB6ptViNqcYkrTs1bmq5cbhiBglhtkct
wx.mchId=1605084861 #wx.mchId=1605084861
wx.mchKey=MsfyBJ8871934EKFJA03jdslkfajAaBC #wx.mchKey=MsfyBJ8871934EKFJA03jdslkfajAaBC
wx.baseURL=http://127.0.0.1/wx/ #wx.baseURL=http://127.0.0.1/wx/
wx.webPath=/web #wx.webPath=/web
wx.password=ynxbd@6910 #wx.password=ynxbd@6910
# \u7ED5\u8FC7\u7528\u6237\u7F13\u5B58\uFF1A\u82F1\u6587\u9017\u53F7\u9694\u5F00 ## \u7ED5\u8FC7\u7528\u6237\u7F13\u5B58\uFF1A\u82F1\u6587\u9017\u53F7\u9694\u5F00
wx.dev_open_ids=1,2,3 #wx.dev_open_ids=1,2,3

@ -1,10 +1,9 @@
# \u4E91\u80F6\u7247\u5730\u5740 ## \u4E91\u80F6\u7247\u5730\u5740
xbd.200.cloud_film_url=http://192.168.0.183:3307/wx3307 #xbd.200.cloud_film_url=http://192.168.0.183:3307/wx3307
# \u75C5\u5386\u590D\u5370 ## \u75C5\u5386\u590D\u5370
xbd.200.med_record_copy_url=http://192.168.12.66:8081 #xbd.200.med_record_copy_url=http://192.168.12.66:8081
# \u4F53\u68C0 ## \u4F53\u68C0
xbd.100.peis_url=http://192.168.12.102:3000/peisReserve #xbd.100.peis_url=http://192.168.12.102:3000/peisReserve
#location /wx3303{ #location /wx3303{
#proxy_pass http://10.20.11.60:3303; #proxy_pass http://10.20.11.60:3303;
@ -13,4 +12,13 @@ xbd.100.peis_url=http://192.168.12.102:3000/peisReserve
#proxy_set_header Host $host; #proxy_set_header Host $host;
#proxy_set_header Upgrade-Insecure-Requests 1; #proxy_set_header Upgrade-Insecure-Requests 1;
#proxy_set_header X-Forwarded-Proto https; #proxy_set_header X-Forwarded-Proto https;
#} #}
# \u4E91\u80F6\u7247\u5730\u5740
xbd.200.cloud_film_url=http://200.200.200.70:3306/wx3306
# \u75C5\u5386\u590D\u5370
#xbd.200.med_record_copy_url=http://10.20.10.41:8082
xbd.200.med_record_copy_url=http://10.255.248.186:8080
# \u4F53\u68C0
xbd.100.peis_url=http://200.200.200.71:5050/peisReserve

@ -10,11 +10,6 @@
<listener-class>com.ynxbd.common.config.WebContextLister</listener-class> <listener-class>com.ynxbd.common.config.WebContextLister</listener-class>
</listener> </listener>
<context-param>
<param-name>logbackConfigLocation</param-name>
<param-value>classpath:logback.xml</param-value>
</context-param>
<filter> <filter>
<filter-name>struts2</filter-name> <filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

Loading…
Cancel
Save