From 43263cb18f6cc5ac697e55b3f3429418fb88e56b Mon Sep 17 00:00:00 2001 From: wangsq <944414428@qq.com> Date: Fri, 11 Jul 2025 10:29:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=97=85=E6=A1=88=E5=A4=8D=E5=8D=B0=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E9=94=99=E8=AF=AF=E8=BF=94=E5=9B=9E=E5=92=8C=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=A4=84=E7=90=86=20=E6=96=B0=E5=A2=9E=E4=BD=93?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E8=AF=A2pacs=E6=8A=A5=E5=91=8A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ynxbd/common/action/InHospAction.java | 33 +- .../com/ynxbd/common/action/RecordAction.java | 37 +-- .../ynxbd/common/action/RegisterAction.java | 42 ++- .../com/ynxbd/common/action/XBDAction.java | 136 +++++++-- .../ynxbd/common/action/test/TestAction.java | 25 +- .../ynxbd/common/dao/his/HisInHospDao.java | 2 +- .../ynxbd/common/dao/his/HisRegisterDao.java | 79 ++++- .../com/ynxbd/common/dao/lis/XBDLisDao.java | 4 +- .../com/ynxbd/common/helper/TestHelper.java | 13 + .../ynxbd/common/helper/xbd/EncHelper.java | 25 +- .../ynxbd/common/helper/xbd/HttpHelper.java | 39 +-- .../common/helper/xbd/XBDHttpHelper.java | 281 ++++++++++-------- .../common/service/AIGuidanceService.java | 2 +- .../ynxbd/common/service/CasebookService.java | 36 ++- .../ynxbd/common/service/DoctorService.java | 12 +- .../com/ynxbd/common/service/PeisService.java | 128 ++++---- .../com/ynxbd/common/service/XBDService.java | 16 + .../ynxbd/wx/wxfactory/ReqParamHelper.java | 5 +- .../富民县人民医院-medical.properties | 34 +++ .../石林县中医院-medical.properties | 29 ++ ...自市妇幼保健院-medical.properties | 2 +- src/main/resources/webservice.properties | 2 +- src/main/resources/wx.properties | 22 +- src/main/resources/xbd.properties | 24 +- src/main/webapp/WEB-INF/web.xml | 5 - 25 files changed, 719 insertions(+), 314 deletions(-) create mode 100644 src/main/java/com/ynxbd/common/helper/TestHelper.java create mode 100644 src/main/java/com/ynxbd/common/service/XBDService.java create mode 100644 src/main/resources/copy/medical/富民县人民医院-medical.properties create mode 100644 src/main/resources/copy/medical/石林县中医院-medical.properties diff --git a/src/main/java/com/ynxbd/common/action/InHospAction.java b/src/main/java/com/ynxbd/common/action/InHospAction.java index 1126eac..23f42f0 100644 --- a/src/main/java/com/ynxbd/common/action/InHospAction.java +++ b/src/main/java/com/ynxbd/common/action/InHospAction.java @@ -212,34 +212,45 @@ public class InHospAction extends BaseAction { } /** - * [住院]通过患者ID查询患者所有住院记录 + * [住院]通过患者ID查询住院记录 + * * @param patientId 患者Id * @return 住院记录 */ @Action("getHospListByPatientId") public Result getHospListByPatientId(String patientId) { - log.info("[住院]通过患者ID查询患者所有住院记录, patientId-{}",patientId); - if(patientId==null) - return Result.error(ResultEnum.PARAM_IS_DEFECT); + // [住院]通过患者ID查询患者所有住院记录 + log.info("[住院]通过患者ID查询住院记录 patientId-{}", patientId); patientId = getDecodeString(patientId); + if (patientId == null) { + return Result.error(ResultEnum.PARAM_IS_DEFECT); + } JsonResult resp = new HisInHospDao().getAllHospList(patientId); - List inHospitalList = resp.getDataMapList(InHospitalList.class, "Items","Item"); - return Result.success(inHospitalList); + if (!resp.success()) { + return Result.error(resp.getMessage()); + } + List dataList = resp.getDataMapList(InHospitalList.class, "Items", "Item"); + return Result.success(dataList); } /** * [住院]通过住院号查询所有费用明细 + * * @param treatNum 住院号 * @return 费用明细 */ @Action("getAllFeeByTreat") - public Result getAllFeeByTreat(String treatNum){ - log.info("[住院]通过住院号查询所有费用明细, treatNum-{}",treatNum); - if(treatNum==null) + public Result getAllFeeByTreat(String treatNum) { + log.info("[住院]通过住院号查询所有费用明细, treatNum-{}", treatNum); + if (treatNum == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); + } JsonResult resp = new HisInHospDao().getAllFee(treatNum); - List inHospAllFee = resp.getDataMapList(InHospAllFee.class, "Items","Item"); - return Result.success(inHospAllFee); + if (!resp.success()) { + return Result.error(resp.getMessage()); + } + List dataList = resp.getDataMapList(InHospAllFee.class, "Items", "Item"); + return Result.success(dataList); } } diff --git a/src/main/java/com/ynxbd/common/action/RecordAction.java b/src/main/java/com/ynxbd/common/action/RecordAction.java index 9b69701..b1872e3 100644 --- a/src/main/java/com/ynxbd/common/action/RecordAction.java +++ b/src/main/java/com/ynxbd/common/action/RecordAction.java @@ -21,26 +21,27 @@ import org.apache.struts2.convention.annotation.Namespace; @Namespace("/record") public class RecordAction extends BaseAction { /** - * 申请病历复印 - * @param applyName 申请人姓名 - * @param idcard 身份证👌 - * @param patientId 患者id - * @param openId openid + * 申请病历复印[蒙自市人民医院] + * + * @param applyName 申请人姓名 + * @param idcard 身份证👌 + * @param patientId 患者id + * @param openId openid * @param idcardFront 身份证正面 - * @param idcardBack 身份证反面 - * @param treatId 住院号 + * @param idcardBack 身份证反面 + * @param treatId 住院号 * @param inHospProve 住院证明 - * @param use 用途,前端直接写死 慢性病办理、保险、出生证、伤残鉴定、临床就诊、其他 - * @param phone 联系电话 + * @param use 用途,前端直接写死 慢性病办理、保险、出生证、伤残鉴定、临床就诊、其他 + * @param phone 联系电话 * @return */ @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){ - 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){ + 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); + if (applyName == null || idcard == null || openId == null || patientId == null || use == null) { 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); } Record record = new Record(); @@ -54,16 +55,16 @@ public class RecordAction extends BaseAction { record.setInHospProve(inHospProve); record.setUse(use); record.setPhone(phone); - if(new RecordDao().insert(record)){ - return Result.success(); + if (new RecordDao().insert(record)) { + return Result.success(); } return Result.error(ResultEnum.ERROR); } @Action("listByPatientId") - public Result ListByPatientId(String patientId){ - log.info("[病历复印申请]-获取列表 patientId-{}",patientId); - if(patientId==null){ + public Result listByPatientId(String patientId) { + log.info("[病历复印申请]-获取列表 patientId-{}", patientId); + if (patientId == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } return Result.success(new RecordDao().selectByPatientId(patientId)); diff --git a/src/main/java/com/ynxbd/common/action/RegisterAction.java b/src/main/java/com/ynxbd/common/action/RegisterAction.java index 53d7631..ec325ee 100644 --- a/src/main/java/com/ynxbd/common/action/RegisterAction.java +++ b/src/main/java/com/ynxbd/common/action/RegisterAction.java @@ -78,7 +78,7 @@ public class RegisterAction extends BaseAction { if (doctor == null) { return Result.error(ResultEnum.DATA_NOT_FOUND); } - new DoctorService().docStateHandle(doctor, doctor); + new DoctorService().doctorStateFilter(doctor, doctor); return Result.success(doctor); } @@ -181,7 +181,6 @@ public class RegisterAction extends BaseAction { log.info("[{}挂号] 查询科室的下的医生列表 deptCode={}, regDate={}, timeInterval={}", (regDate == null ? "现场" : "预约"), deptCode, regDate, timeInterval); HisRegisterDao hisRegisterDao = new HisRegisterDao(); - List doctorList = new ArrayList<>(); for (String code : deptCode.split(",")) { doctorList.addAll((regDate == null) @@ -189,7 +188,7 @@ public class RegisterAction extends BaseAction { : hisRegisterDao.getRegReserveDoctorList(code, regDate) ); } - doctorList = new DoctorService().docListHandle(doctorList); + doctorList = new DoctorService().doctorListFilter(doctorList); return Result.success(doctorList); } @@ -228,14 +227,14 @@ public class RegisterAction extends BaseAction { /** * [挂号]查询挂号历史记录 */ - @Action("getRegHistoryRecords") - public Result getRegHistoryRecords(String begDate, String endDate, String patientId) { + @Action("getHisRegHistoryRecords") + public Result getHisRegHistoryRecords(String begDate, String endDate, String patientId) { try { + patientId = getDecodeString(patientId); log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); if (patientId == null || begDate == null || endDate == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - patientId = getDecodeString(patientId); List regRecords = new RegService().getHisRegRecordsByRegDate(patientId, begDate, endDate); return Result.success(regRecords); @@ -249,21 +248,23 @@ public class RegisterAction extends BaseAction { */ @Action("getHisRegReserveRecords") public Result getHisRegReserveRecords(String begDate, String endDate, String patientId) { + patientId = getDecodeString(patientId); log.info("[预约挂号]查询预约记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); if (patientId == null || begDate == null || endDate == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } + List dataList = new RegService().getHisRegReserveRecords(patientId, null); return Result.success(dataList); } /** - * [挂号]查询某天某个科室,某个类型的号源是否被占用 + * [挂号]查询患者是否在该科室已挂过号 */ @Action("hasReg") 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) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } @@ -290,15 +291,13 @@ public class RegisterAction extends BaseAction { List doctorList = new HisRegisterDao().getTimeDoctorList(deptCode, subDeptCode, begDate, endDate); - doctorList = new DoctorService().docListHandle(doctorList); + doctorList = new DoctorService().doctorListFilter(doctorList); return Result.success(doctorList); } /** - * [分时段挂号]查询号源 - * - * @return 号源 + * [分时段挂号]查询号源(旧-支付宝) */ @Action("getTimeSourceList") 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); } + /** + * [分时段挂号]查询号源 + */ + @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 dataList = new HisRegisterDao().getTimeRegSource(deptCode, subDeptCode, doctCode, begDate, endDate); + return Result.success(dataList); + } + @Action("getDoctorSchedule") public Result getDoctorSchedule(String begDate, String endDate, String doctCode) { log.info("[医生排班信息] begDate={}, endDate={}, doctCode={}", begDate, endDate, doctCode); @@ -360,11 +373,8 @@ public class RegisterAction extends BaseAction { */ @Action("getReLineSignInRecord") 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); + log.info("[查询预约待签到记录(包含今日挂号)] patientId-{} begDate={}, endDate={}", decodePatientId, begDate, endDate); if (decodePatientId == null) { return Result.error(ResultEnum.PARAM_IS_INVALID); } diff --git a/src/main/java/com/ynxbd/common/action/XBDAction.java b/src/main/java/com/ynxbd/common/action/XBDAction.java index d1d1574..c2e1ded 100644 --- a/src/main/java/com/ynxbd/common/action/XBDAction.java +++ b/src/main/java/com/ynxbd/common/action/XBDAction.java @@ -1,10 +1,13 @@ 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.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.PayCasebook; import com.ynxbd.common.bean.xbd.MRHistory; 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.xbd.XBDEnum; 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.ServiceException; import com.ynxbd.common.service.CasebookService; +import com.ynxbd.common.service.PeisService; +import com.ynxbd.common.service.XBDService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; @@ -29,7 +35,7 @@ import org.apache.struts2.convention.annotation.Namespace; public class XBDAction extends BaseAction { @Action("test03") - public Result test03() throws ServiceException { + public Result test03(String a) throws ServiceException { System.out.println("测试"); return Result.success(); } @@ -54,22 +60,59 @@ public class XBDAction extends BaseAction { } /** - * 获取该病人已归档可以翻拍的病历 + * 获取该病人已归档可以翻拍的病历[红河] * * @param patientId 病人id * @return 可以翻拍的病历列表 */ @Action("getMedicalRecordList") public Result getMedicalRecordList(String patientId, Integer flagSh) { - String realPatientId = getDecodeString(patientId); - String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetBA.Name, params -> { - params.put("patientID", realPatientId); - params.put("flagFP", 0); - params.put("flagSH", flagSh); - }); - return Result.success(JsonHelper.parseArray(jsonString, MedicalRecord.class)); + try { + 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)); + } 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") public Result getMRTemplateList() { - String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetTemplate.Name); - return Result.success(JsonHelper.parseArray(jsonString)); + try { + 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) { try { 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.setTreatNum(zyNum); payCasebook.setPatientName(applyName); @@ -144,6 +195,7 @@ public class XBDAction extends BaseAction { } } + /** * 获取该病人的病历翻拍历史 * @@ -152,11 +204,15 @@ public class XBDAction extends BaseAction { */ @Action("getMRHistory") public Result getMRHistory(String patientId) { - String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name, params -> { - params.put("patientID", patientId); - params.put("BorrowNo", -1); - }); - return Result.success(JsonHelper.parseArray(jsonString, MRHistory.class)); + try { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_GetHistoryAppointment.Name, params -> { + params.put("patientID", patientId); + params.put("BorrowNo", -1); + }); + 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); } + /** + * 生成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 申请单号 @@ -193,7 +293,7 @@ public class XBDAction extends BaseAction { // */ // @Action("changeMRAddress") // 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("getWay",getWay); // params.put("address",address); @@ -209,7 +309,7 @@ public class XBDAction extends BaseAction { // */ // @Action("stopMRReserve") // 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("delNote",delNote); // }); diff --git a/src/main/java/com/ynxbd/common/action/test/TestAction.java b/src/main/java/com/ynxbd/common/action/test/TestAction.java index 03c104d..d42eb55 100644 --- a/src/main/java/com/ynxbd/common/action/test/TestAction.java +++ b/src/main/java/com/ynxbd/common/action/test/TestAction.java @@ -2,6 +2,8 @@ package com.ynxbd.common.action.test; import com.ynxbd.common.action.base.BaseAction; 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.ResultEnum; 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 java.math.BigDecimal; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.Date; - /** * @Author wsq * @Date 2021/3/17 10:57 @@ -73,6 +76,8 @@ public class TestAction extends BaseAction { public Result test03() throws ServiceException { System.out.println("开关" + MdConfig.IS_AUTO_REFUND); log.info("日志测试"); + System.out.println(System.getProperty("fileEncoding")); + System.out.println(System.getProperty("encoding")); return Result.success(); } @@ -82,6 +87,24 @@ public class TestAction extends BaseAction { 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") // public String lock() { diff --git a/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java b/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java index 00b6acb..ff74619 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisInHospDao.java @@ -78,7 +78,7 @@ public class HisInHospDao { } /** - * 根据patientId查询所有的 + * 通过患者ID查询住院记录 * @param patientId 患者id * @return 住院记录 */ diff --git a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java index 88f16ea..8f1dc34 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java @@ -463,7 +463,6 @@ public class HisRegisterDao { params.put("MZNum", null); params.put("RegistDate", regDate); - JsonResult JsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Regist, params); if (!JsonResult.success()) { return resultList; @@ -863,6 +862,83 @@ public class HisRegisterDao { 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 getTimeRegSource(String deptCode, String subDeptCode, String doctCode, String begDate, String endDate) { + if (DateHelper.isToday(begDate)) { + begDate = begDate + " " + DateHelper.getCurTime(); + } + Map 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 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 { } - /** * 执行预约签到(只执行分时段) * diff --git a/src/main/java/com/ynxbd/common/dao/lis/XBDLisDao.java b/src/main/java/com/ynxbd/common/dao/lis/XBDLisDao.java index 2812db5..6474eaf 100644 --- a/src/main/java/com/ynxbd/common/dao/lis/XBDLisDao.java +++ b/src/main/java/com/ynxbd/common/dao/lis/XBDLisDao.java @@ -533,9 +533,9 @@ public class XBDLisDao { " dbo.lab_result a 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 " + - " 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 -> { ps.setInt(1, reportId); }); diff --git a/src/main/java/com/ynxbd/common/helper/TestHelper.java b/src/main/java/com/ynxbd/common/helper/TestHelper.java new file mode 100644 index 0000000..f8bdea3 --- /dev/null +++ b/src/main/java/com/ynxbd/common/helper/TestHelper.java @@ -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); + } +} diff --git a/src/main/java/com/ynxbd/common/helper/xbd/EncHelper.java b/src/main/java/com/ynxbd/common/helper/xbd/EncHelper.java index 26cb5ea..dbf12c7 100644 --- a/src/main/java/com/ynxbd/common/helper/xbd/EncHelper.java +++ b/src/main/java/com/ynxbd/common/helper/xbd/EncHelper.java @@ -1,6 +1,10 @@ package com.ynxbd.common.helper.xbd; +import org.apache.commons.codec.digest.DigestUtils; + +import javax.crypto.BadPaddingException; import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets; @@ -27,12 +31,13 @@ public class EncHelper { /** * AES加密 + * * @param encryptString 要被加密的字符串 * @return * @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); SecretKeySpec secretKeySpec = new SecretKeySpec(keyValue.getBytes(), "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); //"算法/模式/补码方式" @@ -46,21 +51,25 @@ public class EncHelper { /** * 64位MD5加密 - * @param context - * @return - * @throws Exception + * + * @param context 加密内容 + * @return string */ public static String MD5Encrypt64(String context) throws Exception { 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); } + + + + private static String GetStr(byte[] byteList) { - String valueStr = ""; + StringBuilder valueStr = new StringBuilder(); for (byte b : byteList) { - valueStr += (char) b; + valueStr.append((char) b); } - return valueStr; + return valueStr.toString(); } } diff --git a/src/main/java/com/ynxbd/common/helper/xbd/HttpHelper.java b/src/main/java/com/ynxbd/common/helper/xbd/HttpHelper.java index ade810b..2fb1474 100644 --- a/src/main/java/com/ynxbd/common/helper/xbd/HttpHelper.java +++ b/src/main/java/com/ynxbd/common/helper/xbd/HttpHelper.java @@ -21,35 +21,38 @@ import java.util.Map; public class HttpHelper { /** * Get执行后台指定方法 + * * @param methodName 方法名 - * @param paramDic 参数 + * @param paramDic 参数 * @return 返回的数据(Json) */ - public static String ExecMethodGet (String methodName, Object paramDic){ - return UseGet(methodName,paramDic); + public static String ExecMethodGet(String methodName, Object paramDic) { + return UseGet(methodName, paramDic); } /** * Get执行后台指定方法 + * * @param methodName 方法名 * @return 返回的数据(Json) */ - public static String ExecMethodGet (String methodName){ - return UseGet(methodName,null); + public static String ExecMethodGet(String methodName) { + return UseGet(methodName, null); } + private static String UseGet(String methodName, Object paramDic) { try { String url = "http://192.168.12.66:8080"; 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()); urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv); - String paramJson = JSONObject.toJSONString(paramDic==null? "" :paramDic); + String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic); // json 加密序列化传入链接 String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString()); 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); @@ -63,24 +66,22 @@ public class HttpHelper { // 清除并关闭连接池 // httpClient.connectionPool().evictAll(); JSONObject JSON = JSONObject.parseObject(response.body().string()); - if(response.isSuccessful()){ - return JSON.getString("Data").replaceAll(" ",""); - } - else { - log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.getString("Msg")); - throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") ); + if (response.isSuccessful()) { + return JSON.getString("Data").replaceAll(" ", ""); + } else { + log.error("[在线病历打印]返回错误:方法名-{},错误-{}", methodName, JSON.getString("Msg")); + throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg")); } - } - catch (Exception e){ - log.error("[在线病历打印]请求错误-{}",e.getMessage()); + } catch (Exception e) { + log.error("[在线病历打印]请求错误-{}", e.getMessage()); return e.getMessage(); } } public static void main(String[] args) { - Map test = new HashMap<>(); - test.put("patientID","10947918"); + Map test = new HashMap<>(); + test.put("patientID", "10947918"); System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", test)); } } diff --git a/src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java b/src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java index 7eae7c7..9750ba1 100644 --- a/src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java +++ b/src/main/java/com/ynxbd/common/helper/xbd/XBDHttpHelper.java @@ -3,8 +3,10 @@ package com.ynxbd.common.helper.xbd; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.helper.http.OkHttpHelper; import com.ynxbd.common.result.JsonResult; +import com.ynxbd.common.result.ServiceException; import lombok.extern.slf4j.Slf4j; import okhttp3.*; +import org.apache.commons.lang3.ObjectUtils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; @@ -24,163 +26,199 @@ import java.util.zip.GZIPOutputStream; */ @Slf4j 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 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 requestParams = new HashMap<>(); if (params != null) { 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 paramsNameList = new ArrayList<>(requestParams.keySet()); - JSONObject jsonObj = new JSONObject(); - jsonObj.put("method",compress(URLEncoder.encode(EncHelper.AES_Encrypt(methodName),StandardCharsets.UTF_8.toString()))); - for (String paramsName:paramsNameList) { - if(requestParams.get(paramsName)==null){ - jsonObj.put(paramsName,""); - continue; + JSONObject reqJsonObj = new JSONObject(); + reqJsonObj.put("method", compress(URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString()))); + for (String paramsName : paramsNameList) { + if (requestParams.get(paramsName) == null) { + reqJsonObj.put(paramsName, ""); + 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"); - RequestBody formBody = RequestBody.create(jsonMedia, jsonObj.toJSONString()); - String test = jsonObj.toJSONString(); - log.info("[病案翻拍]加密后请求-{}",test); - return UsePost(methodName,formBody); + RequestBody formBody = RequestBody.create(jsonMedia, reqJsonObj.toJSONString()); + + StringBuilder encodePrint = new StringBuilder(); + 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); } - /** - * Get执行后台指定方法 - * @param methodName 方法名 - * @return 返回的数据(Json) - */ - public static String ExecMethodGet (String methodName){ - return UseGet(methodName,null); + private static String UsePost(String methodName, RequestBody requestBody) { + OkHttpClient httpClient = OkHttpHelper.creatClient(); + Headers.Builder headersBuilder = new Headers.Builder(); + 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()) { + JSONObject respJson = respFilter(response, methodName); + 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(); - 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()) { - JSONObject JSON = JSONObject.parseObject(response.body().string()); - if(response.isSuccessful()){ - log.info("[在线病历打印]返回:方法名-{},内容-{}",methodName,JSON); - return JSON.getString("Data"); - } - else { - log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.toJSONString()); - throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") ); - } - } catch (Exception e) { - log.error("[在线病历打印]请求错误-{}",e.toString()); - return e.getMessage(); - } + + // 返回响应体过滤 + private static JSONObject respFilter(Response response, String methodName) throws Exception { + if (!response.isSuccessful()) { + log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, response.message()); + throw new ServiceException("方法:" + methodName + "错误: " + response.message()); + } + + ResponseBody body = response.body(); + if (body == null) { + log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "body is null"); + throw new ServiceException("方法:" + methodName + "错误: resp body is null"); + } + String respBodyStr = body.string(); + if (ObjectUtils.isEmpty(respBodyStr)) { + log.error("[线上病案RESP]返回错误:方法名-{},错误-{}", methodName, "respBodyStr is null"); + 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 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) { try { OkHttpClient httpClient = OkHttpHelper.creatClient(); 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()); - urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv); - String paramJson = JSONObject.toJSONString(paramDic==null? "" :paramDic); - - if(!paramJson.equals("")){ - log.info("[病案翻拍]未加密前get请求-{}",paramJson); - } + String paramJson = JSONObject.toJSONString(paramDic == null ? "" : paramDic); + log.info("[线上病案GET]未加密前get请求入参:[methodName:{}] {}", methodName, paramJson); - // json 加密序列化传入链接 String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString()); - urlBuilder.addQueryParameter("paramsStrEnc", compress(paramsStrEnv)); - String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodName + paramJson),StandardCharsets.UTF_8.toString()); - urlBuilder.addQueryParameter("modCode", md5Check); + String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString()); + String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodNameEnv + paramsStrEnv), StandardCharsets.UTF_8.toString()); + 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() - .url(urlBuilder.toString()) - .get() - .build(); - Response response = httpClient.newCall(request).execute(); - // 清除并关闭线程池 -// 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(); + try (Response response = httpClient.newCall(new Request.Builder().url(urlBuilder.toString()).get().build()).execute();) { + JSONObject respJson = respFilter(response, methodName); + String code = respJson.getString("Code"); + String msg = respJson.getString("Msg"); + if ("200".equals(code)) { + return respJson.getString("Data"); } + log.error("[线上病案GET]返回错误:方法名-{},错误-{}", methodName, msg); + throw new Exception("方法:" + methodName + "错误:" + msg); + } catch (Exception e) { + log.error("[线上病案GET]请求异常:{}", e.toString()); + return null; } - else { - log.error("[在线病历打印]返回错误:方法名-{},错误-{}",methodName,JSON.getString("Msg")); - throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") ); - } - } - catch (Exception e){ - log.error("[在线病历打印]请求错误-{}",e.toString()); + } catch (Exception e) { + log.error("[线上病案GET]出现异常:{}", e.toString()); return null; } - } + /** * gzip压缩方法 + * * @param primStr 压缩字符串 * @return 压缩后的字符 */ - private static String compress(String primStr) { - if (primStr == null || primStr.length() == 0) { + public static String compress(String primStr) { + if (primStr == null || primStr.isEmpty()) { return primStr; } ByteArrayOutputStream out = new ByteArrayOutputStream(); - GZIPOutputStream gzip = null; - try { - gzip = new GZIPOutputStream(out); + try (GZIPOutputStream gzip = new GZIPOutputStream(out)) { gzip.write(primStr.getBytes()); } catch (IOException e) { e.printStackTrace(); - } finally { - if (gzip != null) { - try { - gzip.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } } return new sun.misc.BASE64Encoder().encode(out.toByteArray()); } + private static String uncompress(String compressedStr) { if (compressedStr == null) { return null; @@ -224,11 +262,18 @@ public class XBDHttpHelper { return decompressed; } - public static void main(String[] args) { - Map params = new HashMap<>(); - params.put("patientID","448969"); - params.put("flagFP",0); - params.put("flagSH",0); - System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", params)); - } +// public static void main(String[] args) { +// Map params = new HashMap<>(); +// params.put("patientID", "448969"); +// params.put("flagFP", 0); +// params.put("flagSH", 0); +// System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", params)); +// } + +// 清除并关闭线程池 +// httpClient.dispatcher().executorService().shutdown(); +// 清除并关闭连接池 +// httpClient.connectionPool().evictAll(); + + } diff --git a/src/main/java/com/ynxbd/common/service/AIGuidanceService.java b/src/main/java/com/ynxbd/common/service/AIGuidanceService.java index 12a6304..8f00e5d 100644 --- a/src/main/java/com/ynxbd/common/service/AIGuidanceService.java +++ b/src/main/java/com/ynxbd/common/service/AIGuidanceService.java @@ -148,7 +148,7 @@ public class AIGuidanceService { String curDate = DateHelper.getCurDate(); List 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(); List wxDeptList = registerDao.selectDeptList(); diff --git a/src/main/java/com/ynxbd/common/service/CasebookService.java b/src/main/java/com/ynxbd/common/service/CasebookService.java index 9459733..65942d9 100644 --- a/src/main/java/com/ynxbd/common/service/CasebookService.java +++ b/src/main/java/com/ynxbd/common/service/CasebookService.java @@ -114,24 +114,28 @@ public class CasebookService { } log.info("[病历] 开始回调支付状态 borrowNo-{}", casebookId); - String jsonString = XBDHttpHelper.ExecMethodGet(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> { - params.put("borrowNo", casebookId); - params.put("payDateTime", DateHelper.getCurDateTime()); - }); - - log.info("[病历]回调返回 resp={}", jsonString); - String code = JsonHelper.parseObject(jsonString).getString("Code"); - if (code == null) { - if (!casebookDao.updateNotifyOk(outTradeNo)) { - log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); + try { + String jsonString = XBDHttpHelper.ExecMethodPost(XBDEnum.BLSM_Appointment_SetISPay.Name, params -> { + params.put("borrowNo", casebookId); + params.put("payDateTime", DateHelper.getCurDateTime()); + }); + + log.info("[病历]回调返回 resp={}", jsonString); + String code = JsonHelper.parseObject(jsonString).getString("Code"); + if (code == null) { + if (!casebookDao.updateNotifyOk(outTradeNo)) { + log.info("[病历]更新订单信息失败 outTradeNo={}, bankTransNo={}, casebookId={}", outTradeNo, bankTransNo, casebookId); + } + return; } - return; - } - String message = JsonHelper.parseObject(jsonString).getString("Msg"); - log.info("[病历]回调失败 code={}, message={}", code, message); - if (!casebookDao.updateNotifyErr(outTradeNo, message)) { - log.info("[病历]更新订单错误信息失败 outTradeNo={}, code={}, message={}", outTradeNo, code, message); + String message = JsonHelper.parseObject(jsonString).getString("Msg"); + log.info("[病历]回调失败 code={}, message={}", code, message); + if (!casebookDao.updateNotifyErr(outTradeNo, message)) { + log.info("[病历]更新订单错误信息失败 outTradeNo={}, code={}, message={}", outTradeNo, code, message); + } + } catch (Exception e) { + log.error(e.getMessage()); } } } diff --git a/src/main/java/com/ynxbd/common/service/DoctorService.java b/src/main/java/com/ynxbd/common/service/DoctorService.java index 626e397..2c0fd51 100644 --- a/src/main/java/com/ynxbd/common/service/DoctorService.java +++ b/src/main/java/com/ynxbd/common/service/DoctorService.java @@ -19,7 +19,7 @@ public class DoctorService { /** * 医生字段空字符串处理、排序 */ - public List docListHandle(List doctorList) { + public List doctorListFilter(List doctorList) { RegisterDao registerDao = new RegisterDao(); List resultList = new ArrayList<>(); @@ -43,7 +43,7 @@ public class DoctorService { doctorItem.setHeadImg(dbDoctor.getHeadImg()); 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()); } - public void docStateHandle(Doctor dbDoctor, Doctor doctorItem) { + /** + * 医生状态过滤 + * + * @param dbDoctor db + * @param doctorItem his + */ + public void doctorStateFilter(Doctor dbDoctor, Doctor doctorItem) { String title, customTitle; // 职称 String description; // 特长 customTitle = dbDoctor.getCustomTitle(); diff --git a/src/main/java/com/ynxbd/common/service/PeisService.java b/src/main/java/com/ynxbd/common/service/PeisService.java index 895b2ed..2c7e28d 100644 --- a/src/main/java/com/ynxbd/common/service/PeisService.java +++ b/src/main/java/com/ynxbd/common/service/PeisService.java @@ -1,6 +1,7 @@ package com.ynxbd.common.service; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ynxbd.common.action.pay.PEnum; import com.ynxbd.common.bean.enums.MerchantEnum; @@ -19,6 +20,7 @@ import com.ynxbd.common.result.ServiceException; import lombok.extern.slf4j.Slf4j; import okhttp3.FormBody; import okhttp3.RequestBody; +import org.apache.commons.lang3.ObjectUtils; import java.math.BigDecimal; import java.util.Date; @@ -35,7 +37,7 @@ import java.util.Map; @Slf4j 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.setOpenid(openid); recipe.setPatientId(patientId); @@ -46,13 +48,14 @@ public class PeisService { recipe.setPayMoney(new BigDecimal(totalFee)); recipe.setPeisStatus(-1); recipe.setPayStatus(-1); - if(new PeisDao().isRepeat(recipe.getRecipeId())){ - log.info("[体检预约]该处方号已经缴费,recipeId-{}",recipe.getRecipeId()); + if (new PeisDao().isRepeat(recipe.getRecipeId())) { + log.info("[体检预约]该处方号已经缴费,recipeId-{}", recipe.getRecipeId()); return false; } 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(); Recipe recipe = peisDao.selectByOutTradeNo(outTradeNo); String tradeNo = HisHelper.getHisTradeNo(bankTransNo, PEnum.PEIS_RESERVE); @@ -62,46 +65,45 @@ public class PeisService { log.error("[体检预约] 拒绝支付-订单已支付 outTradeNo={}, bankTransNo={}, recipeId={}", outTradeNo, bankTransNo, recipeId); return; } - if (!peisDao.updatePayStateOk(outTradeNo, bankTransNo,tradeNo)) { - log.info("[体检预约]修改支付状态失败 outTradeNo={}, bankTransNo={},tradeNo-{}", outTradeNo, bankTransNo,tradeNo); + if (!peisDao.updatePayStateOk(outTradeNo, bankTransNo, tradeNo)) { + log.info("[体检预约]修改支付状态失败 outTradeNo={}, bankTransNo={},tradeNo-{}", outTradeNo, bankTransNo, tradeNo); RequestBody formBody = new FormBody.Builder(). add("orderNo", recipeId) - .add("payStatus","FAIL") - .add("payFailReason","修改支付状态失败") - .add("bankTransNo",bankTransNo) - .add("outTradeNo",outTradeNo) + .add("payStatus", "FAIL") + .add("payFailReason", "修改支付状态失败") + .add("bankTransNo", bankTransNo) + .add("outTradeNo", outTradeNo) .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); - log.info("[体检预约]缴费失败回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}",recipeId,bankTransNo,jsonResult.get("code"),jsonResult.get("message")); - String pushMessage = "体检预约失败已申请退款,原因:修改支付状态失败,订单号:" + outTradeNo+"orderNo:"+ recipeId;; - peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); - } - else { + log.info("[体检预约]缴费失败回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message")); + String pushMessage = "体检预约失败已申请退款,原因:修改支付状态失败,订单号:" + outTradeNo + "orderNo:" + recipeId; + ; + peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid); + } else { RequestBody formBody = new FormBody.Builder(). add("orderNo", recipeId) .add("payStatus", "OK") .add("payFailReason", "") .add("bankTransNo", bankTransNo) - .add("outTradeNo",outTradeNo) + .add("outTradeNo", outTradeNo) .build(); String result = OkHttpHelper.post(XBDHelper.XBD_PEIS + "/wxUse/wxPay", formBody); - if(result==null){ + if (result == null) { log.info("[体检预约]体检服务无响应,开始退费"); - String pushMessage = "体检预约失败已申请退款,原因:体检服务无响应,订单号:" + outTradeNo+"orderNo:"+ recipeId; - peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); + String pushMessage = "体检预约失败已申请退款,原因:体检服务无响应,订单号:" + outTradeNo + "orderNo:" + recipeId; + peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid); } JSONObject jsonResult = JsonHelper.parseObject(result); log.info("[体检预约]缴费成功回调体检系统计费 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message")); - if("200".equals(jsonResult.get("code").toString())){ - if(!peisDao.updatePeisStateOk(outTradeNo, bankTransNo)){ + if ("200".equals(jsonResult.get("code").toString())) { + if (!peisDao.updatePeisStateOk(outTradeNo, bankTransNo)) { log.info("[体检预约]修改体检系统支付状态失败 outTradeNo={}, bankTransNo={}", outTradeNo, bankTransNo); } - } - else { + } else { log.info("[体检预约]回调体检系统计费状态码异常 recipeId={}, bankTransNo-{}, 计费状态-{}, 计费信息-{}", recipeId, bankTransNo, jsonResult.get("code"), jsonResult.get("message")); - String pushMessage = "体检预约失败已申请退款,原因:体检系统计费失败,订单号:" + outTradeNo+"orderNo:"+ recipeId; - peisAutoRefund(recipeId,merchantEnum,outTradeNo,totalFee,pushMessage,tradeDate,openid); + String pushMessage = "体检预约失败已申请退款,原因:体检系统计费失败,订单号:" + outTradeNo + "orderNo:" + recipeId; + peisAutoRefund(recipeId, merchantEnum, outTradeNo, totalFee, pushMessage, tradeDate, openid); } } @@ -109,24 +111,25 @@ public class PeisService { /** * 体检退费接口 - * @param recipeId 订单号 + * + * @param recipeId 订单号 * @param merchantEnum 支付方式 - * @param outTradeNo outTradeNo - * @param totalFee 总金额 - * @param pushInfo 提示信息 - * @param tradeDate 退费时间 - * @param openid openid + * @param outTradeNo outTradeNo + * @param totalFee 总金额 + * @param pushInfo 提示信息 + * @param tradeDate 退费时间 + * @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(); - if(peisDao.checkRefund(outTradeNo)){ + if (peisDao.checkRefund(outTradeNo)) { log.info("{} [体检预约][该订单已经退费,请不要重复退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); return Result.error("该订单已经退费,请不要重复退费"); } - String result = OkHttpHelper.get(XBDHelper.XBD_PEIS+"/wxUse/GetOrder",params -> { - params.put("orderNo",recipeId); + String result = OkHttpHelper.get(XBDHelper.XBD_PEIS + "/wxUse/GetOrder", params -> { + params.put("orderNo", recipeId); }); - if(result==null){ + if (result == null) { log.info("{} [体检预约][退费错误,计费信息查询失败] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); return Result.error("退费错误,计费信息查询失败"); } @@ -134,11 +137,11 @@ public class PeisService { String fee = jsonResult.getJSONObject("data").get("fee").toString(); boolean isWxPay = Boolean.parseBoolean(jsonResult.getJSONObject("data").get("isWxPay").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); 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); return Result.error("退费错误,退费金额跟订单金额不符"); } @@ -146,17 +149,16 @@ public class PeisService { // log.info("{} [体检预约][退费错误,体检显示已计费,不允许退费] recipeId-{}, outTradeNo={}, recipeId={}, totalFee={}", recipeId, merchantEnum.NAME, outTradeNo, recipeId, totalFee); // return Result.error("退费错误,体检显示已计费,不允许退费"); // } - if(isCost){ - log.info("{} [体检预约][退费错误,his显示已计费,不允许退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); + if (isCost) { + log.info("{} [体检预约][退费错误,his显示已计费,不允许退费] outTradeNo={}, recipeId={}, totalFee={}", merchantEnum.NAME, outTradeNo, recipeId, totalFee); return Result.error("退费错误,体检系统his显示已计费,不允许退费"); } String refundResult; Order orderRefund = PayService.refund(merchantEnum, outTradeNo, recipeId, totalFee, totalFee, pushInfo, tradeDate, openid, null, pushInfo); 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(); - } - else { + } else { refundResult = "OK"; } 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(). add("orderNo", recipeId) - .add("refundStatus",refundStatus) - .add("refundFailReason",refundFailReason) + .add("refundStatus", refundStatus) + .add("refundFailReason", refundFailReason) .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); 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) { RequestBody formBody = new FormBody.Builder(). add("orderNo", "Fee2023112900000001") - .add("payStatus","OK") - .add("payFailReason","") - .add("bankTransNo","4200001809202305012522296970") + .add("payStatus", "OK") + .add("payFailReason", "") + .add("bankTransNo", "4200001809202305012522296970") .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); // String result = OkHttpHelper.get(XBDHelper.XBD_PEIS+"/wxUse/GetOrder",params -> { // params.put("orderNo","Fee2023112900000001"); diff --git a/src/main/java/com/ynxbd/common/service/XBDService.java b/src/main/java/com/ynxbd/common/service/XBDService.java new file mode 100644 index 0000000..6a31e56 --- /dev/null +++ b/src/main/java/com/ynxbd/common/service/XBDService.java @@ -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); + } +} diff --git a/src/main/java/com/ynxbd/wx/wxfactory/ReqParamHelper.java b/src/main/java/com/ynxbd/wx/wxfactory/ReqParamHelper.java index 567c6f7..86f70ad 100644 --- a/src/main/java/com/ynxbd/wx/wxfactory/ReqParamHelper.java +++ b/src/main/java/com/ynxbd/wx/wxfactory/ReqParamHelper.java @@ -22,7 +22,8 @@ public class ReqParamHelper { public static void main(String[] args) { // System.out.println(encode("397631")); - System.out.println(encode("25578718")); - System.out.println(decode("EF6115C81C9EA8FF79E21180FEC20294")); + System.out.println(encode("11608089")); +// System.out.println(encode("533103198603294034")); +// System.out.println(decode("EF6115C81C9EA8FF79E21180FEC20294")); } } diff --git a/src/main/resources/copy/medical/富民县人民医院-medical.properties b/src/main/resources/copy/medical/富民县人民医院-medical.properties new file mode 100644 index 0000000..90068f0 --- /dev/null +++ b/src/main/resources/copy/medical/富民县人民医院-medical.properties @@ -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 \ No newline at end of file diff --git a/src/main/resources/copy/medical/石林县中医院-medical.properties b/src/main/resources/copy/medical/石林县中医院-medical.properties new file mode 100644 index 0000000..84365e4 --- /dev/null +++ b/src/main/resources/copy/medical/石林县中医院-medical.properties @@ -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 \ No newline at end of file diff --git a/src/main/resources/copy/medical/蒙自市妇幼保健院-medical.properties b/src/main/resources/copy/medical/蒙自市妇幼保健院-medical.properties index cb46020..6b66681 100644 --- a/src/main/resources/copy/medical/蒙自市妇幼保健院-medical.properties +++ b/src/main/resources/copy/medical/蒙自市妇幼保健院-medical.properties @@ -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 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 -medical.org_app_id=1GBPJCKU80043F60C80A00001CE39A66 +medical.org_app_id=1IUOCUPT30CI4460C80A00007E3FC8B5 # \u5B9A\u70B9\u533B\u836F\u673A\u6784\u6E20\u9053\u8BA4\u8BC1\u7F16\u7801 medical.org_chnl_crtf_codg=BqK1kMStlhVDgN2uHf4EsLK/F2LjZPYJ81nK2eYQqxtPbiPNIsvGFlw+DnMTrurn diff --git a/src/main/resources/webservice.properties b/src/main/resources/webservice.properties index 1f5dcba..13a9523 100644 --- a/src/main/resources/webservice.properties +++ b/src/main/resources/webservice.properties @@ -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 \ No newline at end of file +# \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 \ No newline at end of file diff --git a/src/main/resources/wx.properties b/src/main/resources/wx.properties index c782a58..89a3e6b 100644 --- a/src/main/resources/wx.properties +++ b/src/main/resources/wx.properties @@ -20,14 +20,14 @@ #wx.is_recipe_prepay=true # \u8292\u5E02\u5987\u5E7C\u914D\u7F6E -wx.appId=wx7d33a52af019f134 -wx.appSecret=56ac2bc26672f05f06d6c557d978c0b1 -wx.token=ynxbd -wx.aesKey=SvUOQUIaawWoB6ptViNqcYkrTs1bmq5cbhiBglhtkct -wx.mchId=1605084861 -wx.mchKey=MsfyBJ8871934EKFJA03jdslkfajAaBC -wx.baseURL=http://127.0.0.1/wx/ -wx.webPath=/web -wx.password=ynxbd@6910 -# \u7ED5\u8FC7\u7528\u6237\u7F13\u5B58\uFF1A\u82F1\u6587\u9017\u53F7\u9694\u5F00 -wx.dev_open_ids=1,2,3 \ No newline at end of file +#wx.appId=wx7d33a52af019f134 +#wx.appSecret=56ac2bc26672f05f06d6c557d978c0b1 +#wx.token=ynxbd +#wx.aesKey=SvUOQUIaawWoB6ptViNqcYkrTs1bmq5cbhiBglhtkct +#wx.mchId=1605084861 +#wx.mchKey=MsfyBJ8871934EKFJA03jdslkfajAaBC +#wx.baseURL=http://127.0.0.1/wx/ +#wx.webPath=/web +#wx.password=ynxbd@6910 +## \u7ED5\u8FC7\u7528\u6237\u7F13\u5B58\uFF1A\u82F1\u6587\u9017\u53F7\u9694\u5F00 +#wx.dev_open_ids=1,2,3 \ No newline at end of file diff --git a/src/main/resources/xbd.properties b/src/main/resources/xbd.properties index a1612d5..11c6fbb 100644 --- a/src/main/resources/xbd.properties +++ b/src/main/resources/xbd.properties @@ -1,10 +1,9 @@ -# \u4E91\u80F6\u7247\u5730\u5740 -xbd.200.cloud_film_url=http://192.168.0.183:3307/wx3307 -# \u75C5\u5386\u590D\u5370 -xbd.200.med_record_copy_url=http://192.168.12.66:8081 -# \u4F53\u68C0 -xbd.100.peis_url=http://192.168.12.102:3000/peisReserve - +## \u4E91\u80F6\u7247\u5730\u5740 +#xbd.200.cloud_film_url=http://192.168.0.183:3307/wx3307 +## \u75C5\u5386\u590D\u5370 +#xbd.200.med_record_copy_url=http://192.168.12.66:8081 +## \u4F53\u68C0 +#xbd.100.peis_url=http://192.168.12.102:3000/peisReserve #location /wx3303{ #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 Upgrade-Insecure-Requests 1; #proxy_set_header X-Forwarded-Proto https; -#} \ No newline at end of file +#} + +# \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 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 4c7bd92..ab3d076 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -10,11 +10,6 @@ com.ynxbd.common.config.WebContextLister - - logbackConfigLocation - classpath:logback.xml - - struts2 org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter