diff --git a/src/main/java/com/ynxbd/ali/helper/AliUploadHelper.java b/src/main/java/com/ynxbd/ali/helper/AliUploadHelper.java index 4a6351d..cdd242d 100644 --- a/src/main/java/com/ynxbd/ali/helper/AliUploadHelper.java +++ b/src/main/java/com/ynxbd/ali/helper/AliUploadHelper.java @@ -108,7 +108,7 @@ public class AliUploadHelper { } children = dept.getChildren(); - if (children == null || children.size() == 0) { + if (children == null || children.isEmpty()) { continue; } for (Dept childDept : children) { diff --git a/src/main/java/com/ynxbd/common/TestA.java b/src/main/java/com/ynxbd/common/TestA.java index d517c40..1f430a0 100644 --- a/src/main/java/com/ynxbd/common/TestA.java +++ b/src/main/java/com/ynxbd/common/TestA.java @@ -1,17 +1,37 @@ package com.ynxbd.common; -import com.ynxbd.wx.wxfactory.AesWxHelper; -import lombok.extern.slf4j.Slf4j; +import com.ynxbd.common.helper.common.HMACHelper; -import java.io.UnsupportedEncodingException; -@Slf4j public class TestA { - public static void main(String[] args) throws UnsupportedEncodingException { +// public static void main(String[] args) throws Exception { +// // System.out.println(AesWxHelper.decode("")); +// } -// System.out.println(AesWxHelper.decode("")); + +// public static void main(String[] args) { +// String KEY = "3431de05cbf9d0ffdbc064a352835981"; +// String PARTNER_ID = "100000637"; +// +// String timestamp = System.currentTimeMillis() + ""; +// String str = PARTNER_ID + timestamp; +// String cacheSign = HMACHelper.sha256(str, KEY); +// System.out.println(timestamp); +// System.out.println(cacheSign); +// } + + public static void main(String[] args) { + String KEY = "795b207e12572839976d9310bdde32be"; + String PARTNER_ID = "100000317"; + + String timestamp = System.currentTimeMillis() + ""; + String str = PARTNER_ID + timestamp; + String cacheSign = HMACHelper.sha256(str, KEY); + System.out.println(timestamp); + System.out.println(cacheSign); } + } diff --git a/src/main/java/com/ynxbd/common/action/AIGuidanceAction.java b/src/main/java/com/ynxbd/common/action/AIGuidanceAction.java index 7aca564..bdad3ab 100644 --- a/src/main/java/com/ynxbd/common/action/AIGuidanceAction.java +++ b/src/main/java/com/ynxbd/common/action/AIGuidanceAction.java @@ -61,9 +61,9 @@ public class AIGuidanceAction extends BaseAction { */ @Action("getDeptList") public Result getDeptList(String hosId, String branchId) { - if (!AIGuidanceConfig.isVerifySign(request)) { - return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 - } +// if (!AIGuidanceConfig.isVerifySign(request)) { +// return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 +// } return new AIGuidanceService().getDeptList(hosId, branchId); } @@ -72,9 +72,9 @@ public class AIGuidanceAction extends BaseAction { */ @Action("getDoctorList") public Result getDoctorList(String hosId, String branchId, String deptId) { - if (!AIGuidanceConfig.isVerifySign(request)) { - return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 - } +// if (!AIGuidanceConfig.isVerifySign(request)) { +// return Result.error(ResultEnum.SIGN_ERROR); // 签名异常 +// } return new AIGuidanceService().getDoctorList(hosId, branchId, deptId); } diff --git a/src/main/java/com/ynxbd/common/action/AccountsAction.java b/src/main/java/com/ynxbd/common/action/AccountsAction.java index 003a482..dd14ec4 100644 --- a/src/main/java/com/ynxbd/common/action/AccountsAction.java +++ b/src/main/java/com/ynxbd/common/action/AccountsAction.java @@ -197,7 +197,7 @@ public class AccountsAction extends BaseAction { } List dataList = JsonResult.getDataMapList(HisTransaction.class, "Item"); - if (dataList.size() == 0) { + if (dataList.isEmpty()) { return Result.error(ResultEnum.INTERFACE_HIS_INVOKE_ERROR); } return Result.success(dataList); diff --git a/src/main/java/com/ynxbd/common/action/HealthCardAction.java b/src/main/java/com/ynxbd/common/action/HealthCardAction.java index 30afa6f..2ad8b88 100644 --- a/src/main/java/com/ynxbd/common/action/HealthCardAction.java +++ b/src/main/java/com/ynxbd/common/action/HealthCardAction.java @@ -38,7 +38,7 @@ public class HealthCardAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_INVALID); } } - JSONObject result = HealthCardHelper.registerHealthCardPreAuth(isMiniApp, openid, false, patientType, wechatCode, enHisPatientId); + JSONObject result = HealthCardHelper.registerHealthCardPreAuth(isMiniApp, isHttpsWithProxy(), openid, false, patientType, wechatCode, enHisPatientId); return Result.success(result); } catch (Exception e) { return Result.error(e); @@ -59,7 +59,7 @@ public class HealthCardAction extends BaseAction { if (name == null || gender == null || nation == null || birthday == null || idNumber == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - JSONObject result = HealthCardHelper.registerHealthCardPreFill(isMiniApp, openid, authCode, name, gender, nation, birthday, idNumber, HCardTypeEnum._01, phone); + JSONObject result = HealthCardHelper.registerHealthCardPreFill(isMiniApp, isHttpsWithProxy(), openid, authCode, name, gender, nation, birthday, idNumber, HCardTypeEnum._01, phone); if (result == null) { return Result.error(); } @@ -219,7 +219,7 @@ public class HealthCardAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_INVALID); } - JSONObject dataJson = HealthCardHelper.registerUniformVerifyOrder(isMiniApp, openid, wechatCode, sceneEnum, name, idCardNo, redirectPage, redirectHash); + JSONObject dataJson = HealthCardHelper.registerUniformVerifyOrder(isMiniApp, isHttpsWithProxy(), openid, wechatCode, sceneEnum, name, idCardNo, redirectPage, redirectHash); return Result.success(dataJson); } catch (Exception e) { return Result.error(e); diff --git a/src/main/java/com/ynxbd/common/action/HealthCodeAction.java b/src/main/java/com/ynxbd/common/action/HealthCodeAction.java index 95caca2..3ff10a3 100644 --- a/src/main/java/com/ynxbd/common/action/HealthCodeAction.java +++ b/src/main/java/com/ynxbd/common/action/HealthCodeAction.java @@ -243,31 +243,31 @@ public class HealthCodeAction extends BaseAction { } - @Action("batchUpdate") - public void batchUpdate() { - Timer timer = new Timer(); - timer.schedule(new TimerTask() { - public void run() { - log.info("开始执行批量领卡定时任务"); - List lstPatient = new PatientDao().selectPatient4BatchUpdateHealthCard(); - JSONArray jsonArray = null; - try { - jsonArray = HCodeService.batchUpdate(lstPatient); - } catch (Exception e) { - log.error(e.getMessage()); - } - - if (jsonArray == null) return; - - for (int i = 0; i < jsonArray.size(); i++) { - new PatientDao().updateCallFlag(jsonArray.getJSONObject(i).get("idNumber").toString()); - if (!"".equals(jsonArray.getJSONObject(i).get("healthCardId").toString()) && !"".equals(jsonArray.getJSONObject(i).get("idNumber").toString())) - new PatientDao().updateHealthCard(jsonArray.getJSONObject(i).get("healthCardId").toString(), - jsonArray.getJSONObject(i).get("idNumber").toString()); - } - } - }, 2 * 1000, 30 * 1000); - } +// @Action("batchUpdate") +// public void batchUpdate() { +// Timer timer = new Timer(); +// timer.schedule(new TimerTask() { +// public void run() { +// log.info("开始执行批量领卡定时任务"); +// List lstPatient = new PatientDao().selectPatient4BatchUpdateHealthCard(); +// JSONArray jsonArray = null; +// try { +// jsonArray = HCodeService.batchUpdate(lstPatient); +// } catch (Exception e) { +// log.error(e.getMessage()); +// } +// +// if (jsonArray == null) return; +// +// for (int i = 0; i < jsonArray.size(); i++) { +// new PatientDao().updateCallFlag(jsonArray.getJSONObject(i).get("idNumber").toString()); +// if (!"".equals(jsonArray.getJSONObject(i).get("healthCardId").toString()) && !"".equals(jsonArray.getJSONObject(i).get("idNumber").toString())) +// new PatientDao().updateHealthCard(jsonArray.getJSONObject(i).get("healthCardId").toString(), +// jsonArray.getJSONObject(i).get("idNumber").toString()); +// } +// } +// }, 2 * 1000, 30 * 1000); +// } // /** diff --git a/src/main/java/com/ynxbd/common/action/RegisterAction.java b/src/main/java/com/ynxbd/common/action/RegisterAction.java index 8fad497..f8f01c8 100644 --- a/src/main/java/com/ynxbd/common/action/RegisterAction.java +++ b/src/main/java/com/ynxbd/common/action/RegisterAction.java @@ -13,6 +13,7 @@ import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.result.JsonResult; import com.ynxbd.common.result.Result; import com.ynxbd.common.result.ResultEnum; +import com.ynxbd.common.result.ServiceException; import com.ynxbd.common.service.DoctorService; import com.ynxbd.common.service.MedToolService; import com.ynxbd.common.service.PatientService; @@ -24,7 +25,6 @@ import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import java.util.*; -import java.util.stream.Collectors; /** * @Author wsq @@ -103,122 +103,72 @@ public class RegisterAction extends BaseAction { /** * [挂号]查询科室列表 * - * @param isReserve 是否为预约挂号 { true:预约挂号; false:今日挂号 } - * @param hasSourcesFlag 有号源标识 { 1:仅返回有号源科室; 0:有无号源科室都返回(默认值)} + * @param merCode 商户code * @param isDeptTypeGroup 是否按deptType分组 */ @Action("getRegDeptList") - public Result getRegDeptList(String merCode, Boolean isReserve, String hasSourcesFlag, Boolean isDeptTypeGroup) { - log.info("[挂号]查询科室列表 isReserve={}, hasSourcesFlag={}, isDeptTypeGroup={}", isReserve, hasSourcesFlag, isDeptTypeGroup); - if (isDeptTypeGroup == null) { - isDeptTypeGroup = false; - } - - if (isReserve == null) { - return Result.error(ResultEnum.PARAM_IS_DEFECT); - } - - log.info("[{}挂号] 获取科室列表", isReserve ? "预约" : "今日"); - - HisRegisterDao hisRegisterDao = new HisRegisterDao(); - - List deptList = isReserve - ? hisRegisterDao.getRegResDeptList() - : hisRegisterDao.getRegTodayDeptList(hasSourcesFlag); - - if (!isDeptTypeGroup) { // 不按deptType分组 - return Result.success(deptList); - } - - List resultList = new ArrayList<>(); - - List deptTypeList = new ArrayList<>(); - for (Dept dept : deptList) { - if (!ObjectUtils.isEmpty(dept.getDeptTypeCode())) { - deptTypeList.add(dept); - } else { - resultList.add(dept); - } - } - - Map> stringListMap = deptTypeList.stream().collect(Collectors.groupingBy(Dept::getDeptTypeCode)); + public Result getRegDeptList(String merCode, Boolean isDeptTypeGroup) { + log.info("[挂号]查询科室列表 merCode={}, isDeptTypeGroup={}", merCode, isDeptTypeGroup); + List deptList = new RegService().queryRegDeptList(merCode, isDeptTypeGroup); + return Result.success(deptList); + } - Dept dept; - String deptTypeName; - List groupList; - for (Map.Entry> entry : stringListMap.entrySet()) { - groupList = entry.getValue(); - dept = groupList.get(0); - deptTypeName = dept.getDeptTypeName(); - if (ObjectUtils.isEmpty(deptTypeName)) { - deptTypeName = groupList.stream().map(Dept::getDeptName).collect(Collectors.joining("、")); + /** + * [挂号]查询号源状态[POST] + * + * @param isSplitTime 是否为分时段 + * @param isTimeInterval 是否根据时段判断今日是否有号 + * @param deptCode 科室编码 + * @param subDeptCode 亚专科编码 + * @param timeInterval 时段[分时段无需传参] + * @param begDate 开始日期[分时段必传] + * @param endDate 结束日期[分时段必传] + * @return map + */ + @Action("getRegSourceState") + public Result getRegSourceState(Boolean isSplitTime, Boolean isTimeInterval, String deptCode, String subDeptCode, String timeInterval, String begDate, String endDate) { + try { + if (isSplitTime == null) { + return Result.error(ResultEnum.PARAM_IS_DEFECT); } - dept.setDeptName(deptTypeName); - dept.setDeptCode(groupList.stream().map(Dept::getDeptCode).collect(Collectors.joining(","))); - resultList.add(dept); - } - - MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode); - if (MerchantEnum.ALI.equals(merchantEnum)) { - AliUploadHelper.uploadDept(resultList, isReserve); + log.info("[{}挂号]查询号源状态 deptCode={}, subDeptCode={}", (isSplitTime ? "分时段" : ""), deptCode, subDeptCode); + Map data = new RegService().queryHisRegSourceState(isSplitTime, isTimeInterval, deptCode, subDeptCode, timeInterval, begDate, endDate); + return Result.success(data); + } catch (Exception e) { + return Result.error(e); } - return Result.success(resultList); } /** - * [挂号]查询科室的下的医生列表 + * [挂号]查询科室的医生排班 + * + * @param regDate 挂号日期 + * @param deptCode 科室编码 + * @param subDeptCode 亚专科编码[未使用预留] + * @param timeInterval 时段 + * @return list */ @Action("getRegDoctorList") - public Result getRegDoctorList(String regDate, String deptCode, String timeInterval) { + public Result getRegDoctorList(String regDate, String deptCode, String subDeptCode, String timeInterval) { if (deptCode == null) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - - log.info("[{}挂号] 查询科室的下的医生列表 deptCode={}, regDate={}, timeInterval={}", (regDate == null ? "现场" : "预约"), deptCode, regDate, timeInterval); + boolean isToday = (regDate == null || regDate.equals(DateHelper.getCurDate())); + log.info("[{}挂号]查询科室下的医生列表 deptCode={}, regDate={}, timeInterval={}", (isToday ? "今日" : "预约"), deptCode, regDate, timeInterval); HisRegisterDao hisRegisterDao = new HisRegisterDao(); List doctorList = new ArrayList<>(); for (String code : deptCode.split(",")) { - doctorList.addAll((regDate == null) - ? hisRegisterDao.getRegTodayDoctorList(code, timeInterval) - : hisRegisterDao.getRegReserveDoctorList(code, regDate) + doctorList.addAll(isToday + ? hisRegisterDao.queryHisTodayRegDoctorList(code, subDeptCode, timeInterval) + : hisRegisterDao.queryHisResRegDoctorListByRegDate(code, regDate) ); } doctorList = new DoctorService().doctorListFilter(doctorList); return Result.success(doctorList); } - /** - * [预约挂号]获取预约记录(旧) - */ - @Action("getReserveHistory") - public Result getReserveHistory(String begDate, String endDate, String patientId) { - log.info("[预约挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); - if (patientId == null || begDate == null || endDate == null) { - return Result.error(ResultEnum.PARAM_IS_DEFECT); - } - List resultList = new HisRegisterDao().getRegReserveRecords(patientId, null); - return Result.success(resultList); - } - - /** - * [挂号]查询挂号记录(旧) - */ - @Action("getSiteHistory") - public Result getSiteHistory(String begDate, String endDate, @AesDecode String patientId) { - try { - log.info("[挂号]查询挂号记录 patientId={}, begDate={},endDate={}", patientId, begDate, endDate); - if (patientId == null || begDate == null || endDate == null) { - return Result.error(ResultEnum.PARAM_IS_DEFECT); - } - - List regRecords = new RegService().getHisRegRecordsByRegDate(patientId, begDate, endDate); - return Result.success(regRecords); - } catch (Exception e) { - return Result.error(e); - } - } /** * [挂号]查询挂号历史记录 @@ -283,7 +233,7 @@ public class RegisterAction extends BaseAction { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - List doctorList = new HisRegisterDao().getTimeDoctorList(deptCode, subDeptCode, begDate, endDate); + List doctorList = new HisRegisterDao().queryHisTimeRegDoctorList(deptCode, subDeptCode, begDate, endDate); doctorList = new DoctorService().doctorListFilter(doctorList); return Result.success(doctorList); @@ -507,7 +457,7 @@ public class RegisterAction extends BaseAction { List noRepeatPatients = new ArrayList<>(); for (Patient pItem : patients) { String patientId = pItem.getPatientId(); - if(ObjectUtils.isEmpty(patientId)){ + if (ObjectUtils.isEmpty(patientId)) { continue; } Patient findItem = noRepeatPatients.stream().filter(o -> patientId.equals(o.getPatientId())).findFirst().orElse(null); diff --git a/src/main/java/com/ynxbd/common/bean/Dept.java b/src/main/java/com/ynxbd/common/bean/Dept.java index e6fb6ae..586b778 100644 --- a/src/main/java/com/ynxbd/common/bean/Dept.java +++ b/src/main/java/com/ynxbd/common/bean/Dept.java @@ -29,6 +29,10 @@ public class Dept implements Serializable { private String deptCode; // 科室名 private String deptName; + // 亚专科科室代码 + private String subDeptCode; + // 亚专科科室 + private String subDeptName; // 科室别名 private String deptAlias; // 地址 @@ -41,6 +45,7 @@ public class Dept implements Serializable { private String deptTypeName; // 科室描述 private String description; + // 号源信息[今日有号] private String sourceInfo; // 科室拼音码 private String pym; diff --git a/src/main/java/com/ynxbd/common/bean/Doctor.java b/src/main/java/com/ynxbd/common/bean/Doctor.java index 921262c..9564844 100644 --- a/src/main/java/com/ynxbd/common/bean/Doctor.java +++ b/src/main/java/com/ynxbd/common/bean/Doctor.java @@ -53,10 +53,12 @@ public class Doctor implements Serializable { private Boolean isDisabled; // 是否移除{ 0:未移除;1:已移除} private Integer deletedState; - // 剩余号源数量 + // 剩余号源数量| 0:已约完 private Integer surplusSources; // 号源信息对象 private Register register; + // 挂号排班日期 + private String regDate; private List subDeptList; // 特长HIS diff --git a/src/main/java/com/ynxbd/common/bean/RegSign.java b/src/main/java/com/ynxbd/common/bean/RegSign.java index 972aebf..21c5312 100644 --- a/src/main/java/com/ynxbd/common/bean/RegSign.java +++ b/src/main/java/com/ynxbd/common/bean/RegSign.java @@ -26,4 +26,6 @@ public class RegSign { private String regDateTime; // His挂号预约日期(预约挂号才有) private String reservationDate; + // 签到日期 + private String lineDateTime; } diff --git a/src/main/java/com/ynxbd/common/bean/ai/AIDept.java b/src/main/java/com/ynxbd/common/bean/ai/AIDept.java index 36732d3..a62c9a2 100644 --- a/src/main/java/com/ynxbd/common/bean/ai/AIDept.java +++ b/src/main/java/com/ynxbd/common/bean/ai/AIDept.java @@ -20,7 +20,7 @@ public class AIDept { private String deptAddr; // 是否特色科室 {0:否 1:是} private Integer featureFlag; - // 科室级别 { 1.一级科室 2.二级科室 一级科室只是为了页面 显示科室时层级,在实 际业务中用二级科室ID 做流转 } + // 科室级别 { 1.一级科室 2.二级科室 一级科室只是为了页面 显示科室时层级,在实际业务中用二级科室ID=>做流转 } private Integer level; // 上级科室Id private String parentDeptId; diff --git a/src/main/java/com/ynxbd/common/bean/pay/Register.java b/src/main/java/com/ynxbd/common/bean/pay/Register.java index c4f6c9f..947f00e 100644 --- a/src/main/java/com/ynxbd/common/bean/pay/Register.java +++ b/src/main/java/com/ynxbd/common/bean/pay/Register.java @@ -52,7 +52,7 @@ public class Register extends Order { private String tName; // 挂号类型(1:预约挂号,2:今日挂号,3:分时段预约挂号,4:分时段今日挂号) private String regType; - // 挂号日期 + // 挂号日期|医生排班日期 private String regDate; // 号别名 private String regName; @@ -96,6 +96,16 @@ public class Register extends Order { return isTreat != null && isTreat == val; } + // [普通挂号]有剩余号源(>0为有号) + public boolean hasRemainCount() { + return this.remainCount != null && this.remainCount > 0; + } + + // [普通挂号]为无限号(0为无限号) + public boolean hasSourceCount() { + return this.remainCount != null && this.remainCount == 0; + } + /** * * // * @param regFee 金额 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 b8799c1..d4945b1 100644 --- a/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java +++ b/src/main/java/com/ynxbd/common/dao/his/HisRegisterDao.java @@ -18,10 +18,13 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import java.math.BigDecimal; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** - * His挂号调用 + * HIS挂号调用 * * @Author wsq * @Date 2020/10/30 11:59 @@ -31,47 +34,39 @@ import java.util.*; public class HisRegisterDao { /** - * [预约挂号]获取医生列表 + * [预约挂号]查询HIS预约挂号医生 * * @param deptCode 科室代码 * @return 医生列表 */ - public List getRegReserveDoctorList(String deptCode, String regDate) { - log.info("[预约挂号]查询HIS医生列表"); - - List resultList = new ArrayList<>(); - if (regDate == null) { - log.info("[预约挂号]获取医生列表失败 regDate 为空"); - return resultList; - } - + public List queryHisResRegDoctorList(String deptCode, String regDate) { Map params = new HashMap<>(); params.put("DeptCode", deptCode); - params.put("DoctCode", ""); - params.put("ReservationDate", regDate); - params.put("AllowResevationFlag", "1"); + params.put("DoctCode", ""); // 空为所有 + params.put("ReservationDate", ObjectUtils.isEmpty(regDate) ? "" : regDate); // 空为近7天 + params.put("AllowResevationFlag", "1"); // [0:默认值可不传——所有;1:只返回有剩余号源的医师] JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Reservation_Doct, params); - if (!jsonResult.success()) { - return resultList; + return new ArrayList<>(); } List doctorList = new ArrayList<>(); String deptName = jsonResult.getDataMapString("DeptName"); - JSONArray jsonArray = jsonResult.getJsonArray("Doctor"); Doctor doctorItem; JSONObject node; Register regItem; + String doctRegDate; BigDecimal regFee, clinicFee, payMoney; for (int i = 0; i < jsonArray.size(); i++) { node = jsonArray.getJSONObject(i); doctorItem = new Doctor(); doctorItem.setDeptCode(deptCode); - doctorItem.setDeptName(deptName); + doctRegDate = ParamHelper.spaceFormat(node.getString("ReservationDate")); + doctorItem.setDoctCode(node.getString("DoctCode")); doctorItem.setDoctName(node.getString("DoctName")); doctorItem.setTitle(node.getString("Title")); // @@ -88,7 +83,7 @@ public class HisRegisterDao { regItem.setSourceCount(node.getInteger("TotalCount")); // 总号源数量 regItem.setRemainCount(node.getInteger("RemainCount")); // 剩余号源数 regItem.setAllowReg(node.getInteger("AllowRegist")); // - regItem.setRegDate(node.getString("ReservationDate")); + regItem.setRegDate(doctRegDate); regItem.setAddress(node.getString("Address")); // 金额 regFee = node.getBigDecimal("RegFee"); @@ -108,53 +103,139 @@ public class HisRegisterDao { regItem.setEnPayMoney(AesWxHelper.encode(payMoney)); doctorItem.setRegister(regItem); + doctorItem.setRegDate(doctRegDate); doctorList.add(doctorItem); } + return doctorList; + } - String appId = WeChatConfig.APP_ID; - if ("wx14ea983bce19d64c".equals(appId)) { // 富民晚班不能预约 - Register register; - for (Doctor doctor : doctorList) { - register = doctor.getRegister(); - if (register != null) { - String tid = register.getTid(); - if (tid != null && !tid.trim().contains("晚班")) { - resultList.add(doctor); - } + /** + * [预约挂号]查询有号状态 + * + * @param deptCode 科室代码 + * @return 预约的号源状态 + */ + public Map queryHisRegSourceState(String deptCode, String subDeptCode, Boolean isTimeInterval, String timeInterval) { + if (isTimeInterval == null) { + isTimeInterval = false; + } + + List doctorList = queryHisResRegDoctorList(deptCode, null); + + Map sourceStateMap = new HashMap<>(); + String regDate; + Register regInfo; + for (Doctor doctor : doctorList) { + regDate = doctor.getRegDate(); + if (ObjectUtils.isEmpty(regDate)) { + continue; + } + regInfo = doctor.getRegister(); + if (regInfo == null) { + continue; + } + if (!sourceStateMap.containsKey(regDate) && (regInfo.hasSourceCount() || regInfo.hasRemainCount())) { // 不存在挂号日期 && (无限号 || 剩余号源>0) + sourceStateMap.put(regDate, 1); + } + } + List todayDoctorList = isTimeInterval + ? queryHisTodayRegDoctorList(deptCode, subDeptCode, timeInterval) + : queryHisRegTodayDoctorList(deptCode, subDeptCode); + if (!todayDoctorList.isEmpty()) { // 今日挂号 + String curDate = DateHelper.getCurDate(); + for (Doctor doctor : todayDoctorList) { + regInfo = doctor.getRegister(); + if (regInfo == null) { + continue; + } + if (!sourceStateMap.containsKey(curDate) && (regInfo.hasSourceCount() || regInfo.hasRemainCount())) { // 不存在挂号日期 && (无限号 || 剩余号源>0) + sourceStateMap.put(curDate, 1); + break; } } - } else { - resultList = doctorList; } - return resultList; + return sourceStateMap; } + /** - * [今日挂号]获取今日挂号医生列表 + * [预约挂号]查询有号状态 * - * @param deptCode 科室代码 - * @param timeInterval 挂号时段显示 + * @param deptCode 科室代码 + * @return 预约的号源状态 + */ + public Map queryHisTimeRegSourceState(String deptCode, String subDeptCode, String begDate, String endDate) { + List doctorList = queryHisTimeRegDoctorList(deptCode, subDeptCode, begDate, endDate); + Map sourceStateMap = new HashMap<>(); + String regDate; + Integer surplusSources; + for (Doctor doctor : doctorList) { + regDate = doctor.getRegDate(); + if (ObjectUtils.isEmpty(regDate)) { + continue; + } + surplusSources = doctor.getSurplusSources(); + if (!sourceStateMap.containsKey(regDate) && surplusSources > 0) { + sourceStateMap.put(regDate, 1); + } + } + return sourceStateMap; + } + + /** + * [预约挂号]获取医生列表 + * + * @param deptCode 科室代码 * @return 医生列表 */ - public List getRegTodayDoctorList(String deptCode, String timeInterval) { - log.info("[今日挂号]查询HIS医生列表 deptCode={}", deptCode); + public List queryHisResRegDoctorListByRegDate(String deptCode, String regDate) { + List resultList = new ArrayList<>(); + if (regDate == null) { + log.info("[预约挂号]获取医生列表失败 regDate 为空"); + return resultList; + } + return queryHisResRegDoctorList(deptCode, regDate); +// +// String appId = WeChatConfig.APP_ID; +// if (HospConfigEnum.富民县人民医院.WX_APP_ID.equals(appId)) { // 富民晚班不能预约 +// Register register; +// for (Doctor doctor : doctorList) { +// register = doctor.getRegister(); +// if (register != null) { +// String tid = register.getTid(); +// if (tid != null && !tid.trim().contains("晚班")) { +// resultList.add(doctor); +// } +// } +// } +// } else { +// resultList = doctorList; +// } + } + + /** + * [今日挂号]查询今日挂号医生列表 + * + * @param deptCode 科室代码 + * @return 医生列表 + */ + public List queryHisRegTodayDoctorList(String deptCode, String subDeptCode) { Map params = new HashMap<>(); params.put("DeptCode", deptCode); params.put("DoctCode", ""); params.put("AllowRegistFlag", "1"); // 只返回有号源的医生 JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Doct, params); - - List resultList = new ArrayList<>(); if (!jsonResult.success()) { - return resultList; + return new ArrayList<>(); } List doctorList = new ArrayList<>(); String deptName = jsonResult.getDataMapString("DeptName"); - JSONArray jsonArray = jsonResult.getJsonArray("Doctor"); + + String tId; Doctor doctorItem; JSONObject node; Register regItem; @@ -165,6 +246,8 @@ public class HisRegisterDao { doctorItem = new Doctor(); doctorItem.setDeptCode(deptCode); doctorItem.setDeptName(deptName); + tId = ParamHelper.spaceFormat(node.getString("TID")); + doctorItem.setDoctCode(node.getString("DoctCode")); doctorItem.setDoctName(node.getString("DoctName")); doctorItem.setTitle(node.getString("Title")); // @@ -175,8 +258,9 @@ public class HisRegisterDao { regItem = new Register(); regItem.setClinicCode(node.getString("ClinicCode")); // regItem.setClinicName(node.getString("ClinicName")); // - regItem.setTid(node.getString("TID")); // 时段id - regItem.setTName(node.getString("TID")); // 时段名 + regItem.setTid(tId); // 时段id + regItem.setTName(tId); // 时段名 + regItem.setSourceCount(node.getInteger("TotalCount")); // 总号源数量 regItem.setRemainCount(node.getInteger("RemainCount")); // 剩余号源数 regItem.setAllowReg(node.getInteger("AllowReservation")); // @@ -200,13 +284,27 @@ public class HisRegisterDao { regItem.setEnPayMoney(AesWxHelper.encode(payMoney)); doctorItem.setRegister(regItem); + doctorItem.setRegDate(today); doctorList.add(doctorItem); } + return doctorList; + } + - // 丽江古城区 "08:00:00", "11:59:00" | "12:00:00", "13:54:00" | "13:55:00", "17:30:00" + /** + * [今日挂号]获取今日挂号医生列表 + * + * @param deptCode 科室代码 + * @param timeInterval 挂号时段显示 + * @return 医生列表 + */ + public List queryHisTodayRegDoctorList(String deptCode, String subDeptCode, String timeInterval) { + List doctorList = queryHisRegTodayDoctorList(deptCode, subDeptCode); // 芒市 "08:00:00", "11:45:00" | "11:46:00", "14:31:00" | "14:30:00", "17:30:00" // 蒙自市 07:40:00", "11:30:00 | "11:31:00", "13:44:00" | "13:45:00", "17:30:00" + List resultList = new ArrayList<>(); + String defaultTimeInterval = "{\"am\":{\"begTime\":\"08:00\",\"endTime\":\"12:00\"},\"pm\":{\"begTime\":\"14:00\",\"endTime\":\"17:30\"},\"noon\":{\"begTime\":\"12:01\",\"endTime\":\"13:59\"}}"; if (ObjectUtils.isEmpty(timeInterval)) { @@ -246,16 +344,12 @@ public class HisRegisterDao { String nightBegTime = null; String nightEndTime = null; - // 中午 if (night != null) { nightBegTime = DateHelper.timeToHms(night.getString("begTime"), null); nightEndTime = DateHelper.timeToHms(night.getString("endTime"), null); } - log.info("[挂号]时段参数 早上:{}-{}, 下午:{}-{}, 中午:{}-{}", amBegTime, amEndTime, pmBegTime, pmEndTime, noonBegTime, noonEndTime); - - int key; if (DateHelper.inTimeRangeH_m_s(amBegTime, amEndTime)) { // 上午 key = 1; @@ -267,12 +361,13 @@ public class HisRegisterDao { key = 4; } + log.info("[挂号]时段参数【key[{}]】 早上:{}-{}, 下午:{}-{}, 中午:{}-{}", key, amBegTime, amEndTime, pmBegTime, pmEndTime, noonBegTime, noonEndTime); + // 晚班 boolean isNight = night != null && nightBegTime != null && nightEndTime != null && DateHelper.inTimeRangeH_m_s(nightBegTime, nightEndTime); - log.info("【今日挂号】时段{{}}", key); - Register register; + boolean hasNightTid; for (Doctor doctor : doctorList) { register = doctor.getRegister(); if (register == null) { @@ -280,16 +375,17 @@ public class HisRegisterDao { } String tid = register.getTid(); tid = tid == null ? "" : tid.trim(); + hasNightTid = tid.contains("晚"); if (tid.contains("全天")) { resultList.add(doctor); - } else if (key == 1 && (tid.contains("上午") || tid.contains("上午及下午") || (isNight && (tid.contains("晚班") || tid.contains("晚上"))))) { + } else if (key == 1 && (tid.contains("上午") || (isNight && hasNightTid))) { resultList.add(doctor); - } else if (key == 2 && tid.contains("中午") || (isNight && (tid.contains("晚班") || tid.contains("晚上")))) { + } else if (key == 2 && tid.contains("中午") || (isNight && hasNightTid)) { resultList.add(doctor); - } else if (key == 3 && (tid.contains("下午") || tid.contains("上午及下午") || (isNight && (tid.contains("晚班") || tid.contains("晚上"))))) { + } else if (key == 3 && (tid.contains("下午") || (isNight && hasNightTid))) { resultList.add(doctor); - } else if (key == 4 && (tid.contains("晚班") || tid.contains("晚上"))) { + } else if (key == 4 && hasNightTid) { if (night == null || nightBegTime == null || nightEndTime == null) { resultList.add(doctor); } else { @@ -324,7 +420,6 @@ public class HisRegisterDao { List deptList = new ArrayList<>(); JSONArray jsonArray = jsonResult.getJsonArray("Dept"); - RegisterDao registerDao = new RegisterDao(); List wxDeptList = registerDao.selectDeptList(); @@ -376,33 +471,29 @@ public class HisRegisterDao { /** * [今日挂号]获取科室列表 * - * @param hasSourcesFlag 有号源标识 { 1:仅返回有号源科室; 0:有无号源科室都返回(默认值)} + * @param hasSourcesFlag 有号源标识 { 1:仅返回有号源科室; 0:有无号源科室都返回} * @return 科室列表 */ public List getRegTodayDeptList(String hasSourcesFlag) { if (ObjectUtils.isEmpty(hasSourcesFlag)) { hasSourcesFlag = "1"; + } else { + if (!"0".equals(hasSourcesFlag) && !"1".equals(hasSourcesFlag)) { + hasSourcesFlag = "1"; + } } - if (!"0".equals(hasSourcesFlag) && !"1".equals(hasSourcesFlag)) { - hasSourcesFlag = "1"; - } - - log.info("[今日挂号]查询HIS科室列表"); - List resultList = new ArrayList<>(); - Map params = new HashMap<>(); params.put("DeptCode", ""); // 空为所有 - params.put("HasSourcesFlag", hasSourcesFlag); // 1:仅返回有号源科室; 0:有无号源科室都返回(默认值) + params.put("HasSourcesFlag", hasSourcesFlag); // 1:仅返回有号源科室; 0:有无号源科室都返回 + List deptList = new ArrayList<>(); JsonResult jsonResult = HisHelper.getJsonResult(HisEnum.AP_Query_Dept, params); if (!jsonResult.success()) { - return resultList; + return deptList; } - List deptList = new ArrayList<>(); JSONArray jsonArray = jsonResult.getJsonArray("Dept"); - RegisterDao registerDao = new RegisterDao(); List wxDeptList = registerDao.selectDeptList(); @@ -446,16 +537,7 @@ public class HisRegisterDao { deptList.add(dept); } } - - String appId = WeChatConfig.APP_ID; - if ("wx99b45c38093d17f9".equals(appId)) { // 武定县人民医院挂号时间段定为7:30-11:30 - if (DateHelper.inTimeRangeH_m_s("07:30:00", "11:30:00") || DateHelper.inTimeRangeH_m_s("13:30:00", "17:00:00")) { // 在时间段内 - resultList = new ArrayList<>(deptList); - } - } else { - resultList = new ArrayList<>(deptList); - } - return resultList; + return deptList; } @@ -731,7 +813,7 @@ public class HisRegisterDao { * @param endDate 结束日期 * @return list */ - public List getTimeDoctorList(String deptCode, String subDeptCode, String begDate, String endDate) { + public List queryHisTimeRegDoctorList(String deptCode, String subDeptCode, String begDate, String endDate) { Map params = new HashMap<>(); params.put("DeptCode", deptCode); params.put("DoctCode", null); // 空为所有 @@ -771,10 +853,11 @@ public class HisRegisterDao { doctorItem.setDoctName(ParamHelper.spaceFormat(doctorJson.getString("DoctName"))); // doctorItem.setTitle(ParamHelper.spaceFormat(doctorJson.getString("Title"))); // 职称 - doctorItem.setTitleCode(ParamHelper.spaceFormat(doctorJson.getString("TitleCode"))); // + doctorItem.setTitleCode(ParamHelper.spaceFormat(doctorJson.getString("TitleCode"))); // 职称编码 doctorItem.setDescription(ParamHelper.spaceFormat(doctorJson.getString("Spec"))); // 描述 + doctorItem.setRegDate(ParamHelper.spaceFormat(doctorJson.getString("ReservationDate"))); // 排班日期 // - doctorItem.setSurplusSources(doctorJson.getInteger("SurplusSources")); // 描述 + doctorItem.setSurplusSources(doctorJson.getInteger("SurplusSources")); // 号源信息 resultList.add(doctorItem); } } @@ -875,7 +958,6 @@ public class HisRegisterDao { } - /** * [分时段]根据科室code和医生code查询医生号源 * @@ -1195,6 +1277,7 @@ public class HisRegisterDao { regSign.setReservationDate(item.getString("ReservationDate")); regSign.setScheduleDate(item.getString("ScheduleDate")); regSign.setRegDateTime(item.getString("RegistDate")); + regSign.setLineDateTime(item.getString("LineDate")); regSignList.add(regSign); } return regSignList; diff --git a/src/main/java/com/ynxbd/common/helper/HealthCardHelper.java b/src/main/java/com/ynxbd/common/helper/HealthCardHelper.java index f49aedc..d232585 100644 --- a/src/main/java/com/ynxbd/common/helper/HealthCardHelper.java +++ b/src/main/java/com/ynxbd/common/helper/HealthCardHelper.java @@ -25,11 +25,9 @@ import java.util.Date; public class HealthCardHelper { /** - * 绑卡验证授权 - * - * @param wechatCode 微信身份码 + * [电子健康卡]绑卡验证授权 */ - public static JSONObject registerHealthCardPreAuth(Boolean isMiniApp, String openid, Boolean isHCBindUI, Integer patientType, String wechatCode, String enHisPatientId) throws ServiceException { + public static JSONObject registerHealthCardPreAuth(Boolean isMiniApp, Boolean isHttps, String openid, Boolean isHCBindUI, Integer patientType, String wechatCode, String enHisPatientId) throws ServiceException { if (isMiniApp == null) { isMiniApp = false; } @@ -38,8 +36,8 @@ public class HealthCardHelper { throw new ServiceException("[电子健康卡]健康卡授权码获取健康卡信息-请求体CommonIn缺失"); } - String domain = WeChatConfig.getDomain(false); - String webURL = WeChatConfig.getWebReqURL(); + String domain = WeChatConfig.getDomain(false, false); + String webURL = WeChatConfig.getWebReqURL(isHttps); // 授权成功回调页 String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}"); @@ -101,10 +99,9 @@ public class HealthCardHelper { /** - * 验证注册/绑卡接口 - * + * [电子健康卡]验证注册/绑卡接口 */ - public static JSONObject registerHealthCardPreFill(Boolean isMiniApp, String openid, String authCode, String name, String gender, String nation, String birthday, + public static JSONObject registerHealthCardPreFill(Boolean isMiniApp, Boolean isHttps, String openid, String authCode, String name, String gender, String nation, String birthday, String idNumber, HCardTypeEnum cardTypeEnum, String phone1) { try { if (isMiniApp == null) { @@ -115,7 +112,7 @@ public class HealthCardHelper { return null; } - String webURL = WeChatConfig.getWebReqURL(); + String webURL = WeChatConfig.getWebReqURL(isHttps); // 授权成功回调页 String successRedirectUrl = isMiniApp ? "mini:/path/to/isvpage?healthCode=${healthCode}" : (webURL + "health-card-form.html?healthCode=${healthCode}"); @@ -430,7 +427,7 @@ public class HealthCardHelper { /** * 实人认证生成orderId */ - public static JSONObject registerUniformVerifyOrder(Boolean isMiniApp, String openid, String wechatCode, HealthCardSceneEnum sceneEnum, String name, String idCardNo, String redirectPage, String redirectHash) throws ServiceException { + public static JSONObject registerUniformVerifyOrder(Boolean isMiniApp, boolean isHttps, String openid, String wechatCode, HealthCardSceneEnum sceneEnum, String name, String idCardNo, String redirectPage, String redirectHash) throws ServiceException { if (ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(idCardNo)) { throw new ServiceException(ResultEnum.PARAM_IS_DEFECT); } @@ -447,7 +444,7 @@ public class HealthCardHelper { throw new ServiceException("[电子健康卡]实人认证生成orderId-请求体CommonIn缺失"); } - String webURL = WeChatConfig.getWebReqURL(); + String webURL = WeChatConfig.getWebReqURL(isHttps); String verifySuccessRedirectUrl = webURL + redirectPage + "?registerOrderId=${registerOrderId}" + redirectHash; String verifyFailRedirectUrl = webURL + "health-card-fail.html?code=-3"; diff --git a/src/main/java/com/ynxbd/common/helper/common/ParamHelper.java b/src/main/java/com/ynxbd/common/helper/common/ParamHelper.java index c386b6a..9a681ec 100644 --- a/src/main/java/com/ynxbd/common/helper/common/ParamHelper.java +++ b/src/main/java/com/ynxbd/common/helper/common/ParamHelper.java @@ -27,7 +27,7 @@ public class ParamHelper { return null; } data = data.trim(); - if ("".equals(data)) { + if (ObjectUtils.isEmpty(data)) { return null; } return data; diff --git a/src/main/java/com/ynxbd/common/helper/his/HisHelper.java b/src/main/java/com/ynxbd/common/helper/his/HisHelper.java index cd9c71b..fa71864 100644 --- a/src/main/java/com/ynxbd/common/helper/his/HisHelper.java +++ b/src/main/java/com/ynxbd/common/helper/his/HisHelper.java @@ -48,6 +48,8 @@ public class HisHelper { // 是否强制打印HIS响应的xml private static final Boolean IS_LOG_RESP; + // 是否使用""阻止解析 + private static final Boolean IS_REQ_CDATA; // 是否传递openid给HIS推送消息 public static final Boolean IS_PUSH_MSG; @@ -71,6 +73,7 @@ public class HisHelper { IS_LOG_RESP = config.getBoolean("his.is_log_resp", false); IS_PUSH_MSG = config.getBoolean("his.is_push_msg", false); IS_ALI_MER = config.getBoolean("his.is_ali_mer", false); + IS_REQ_CDATA = config.getBoolean("his.is_req_cdata", false); IS_RECIPE_PREPAY = config.getBoolean("his.is_recipe_prepay", false); if (url == null) { @@ -88,6 +91,9 @@ public class HisHelper { if (ObjectUtils.isEmpty(ip)) { return null; } + if (ip.contains("http")) { + return ip; + } return "http://" + ip + "/WebService_AB.dll/soap/IInterface_AB"; } @@ -175,8 +181,11 @@ public class HisHelper { "xmlns:urn=\"urn:Interface_ABIntf-IInterface_AB\">" + "" + "" + - "" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "" + - "" + "" + + (IS_REQ_CDATA ? "" + SoapHelper.requestParams("HIS", transactionCode, reqId, params) + "" + + (IS_REQ_CDATA ? "]]>" : "") + + "" ); long endTime = System.currentTimeMillis(); // 结束时间 String takeTime = (endTime - begTime) + "ms"; // 耗时 @@ -184,6 +193,7 @@ public class HisHelper { log.info("[{}]HIS请求无响应[rid:{}]-耗时:[{}]", transactionCode, reqId, takeTime); return null; } + //解析响应消息,使用SAXReader对象 org.dom4j.Document document = DocumentHelper.parseText(hisResponse); if (document == null) { diff --git a/src/main/java/com/ynxbd/common/result/ServiceException.java b/src/main/java/com/ynxbd/common/result/ServiceException.java index e4e71dc..42a22a4 100644 --- a/src/main/java/com/ynxbd/common/result/ServiceException.java +++ b/src/main/java/com/ynxbd/common/result/ServiceException.java @@ -1,9 +1,12 @@ package com.ynxbd.common.result; +import lombok.Getter; + /** * 业务逻辑异常 */ +@Getter public class ServiceException extends Exception { final private ResultEnum resultEnum; @@ -21,9 +24,4 @@ public class ServiceException extends Exception { super(message); this.resultEnum = null; } - - public ResultEnum getResultEnum() { - return resultEnum; - } - } diff --git a/src/main/java/com/ynxbd/common/service/AIGuidanceService.java b/src/main/java/com/ynxbd/common/service/AIGuidanceService.java index 437585e..70ff91e 100644 --- a/src/main/java/com/ynxbd/common/service/AIGuidanceService.java +++ b/src/main/java/com/ynxbd/common/service/AIGuidanceService.java @@ -15,7 +15,6 @@ import com.ynxbd.wx.config.WeChatConfig; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; -import java.net.URLEncoder; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -48,16 +47,15 @@ public class AIGuidanceService { map.put("hosLevel", AIGuidanceConfig.HOS_LEVEL); map.put("hosAddress", AIGuidanceConfig.HOS_ADDRESS); map.put("hosTelephone", AIGuidanceConfig.HOS_TELEPHONE); - map.put("hosImage", WeChatConfig.getWebReqURL() + "images/logo.png"); + map.put("hosImage", WeChatConfig.getBaseURL(true) + "config/logo.png"); map.put("appId", WeChatConfig.APP_ID); // 公众号appid - map.put("hosUrl", WeChatConfig.getWebReqURL() + "app.html"); // 公众号appid + map.put("hosUrl", WeChatConfig.getWebReqURL(true) + "app.html"); // 公众号appid map.put("originAppid", ""); // 小程序原始id map.put("location", ""); // 经纬度,逗号分割 map.put("miniAppId", ""); // 经纬度,逗号分割 map.put("isHTML", false); // 经纬度,逗号分割 - resultList.add(map); return Result.success(ResultEnum.AI_SUCCESS, resultList); } @@ -71,51 +69,76 @@ public class AIGuidanceService { */ public Result getDeptList(String hosId, String branchId) { log.info("[智能导诊]科室列表查询 hosId={}, branchId={}", hosId, branchId); - if (ObjectUtils.isEmpty(hosId)) { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - List resultList = new ArrayList<>(); + List dataList = new ArrayList<>(); if (!hosId.equals(AIGuidanceConfig.HOS_ID)) { // 医院id校验 - return Result.success(ResultEnum.AI_SUCCESS, resultList); + return Result.success(ResultEnum.AI_SUCCESS, dataList); + } + + List deptList; + if (AIGuidanceConfig.IS_SPLIT_TIME_REG) { // 分时段 + String curDate = DateHelper.getCurDate(); + deptList = new HisRegisterDao().getTimeDeptList(curDate, DateHelper.getMoveDate(curDate, 7), ""); + } else { + deptList = new RegService().queryHisRegDeptList(); } - String curDate = DateHelper.getCurDate(); - List deptList = new HisRegisterDao().getTimeDeptList(curDate, DateHelper.getMoveDate(curDate, 7), ""); String webReqURL = WeChatConfig.getWebReqURL(true); - String deptName; - AIDept item; + AIDept addItem; + List children; for (Dept dept : deptList) { - item = new AIDept(); - deptName = dept.getDeptName(); - if (!ObjectUtils.isEmpty(dept.getDeptAlias())) { - deptName = dept.getDeptAlias(); + addItem = createAIDept(webReqURL, dept); + dataList.add(addItem); + + children = dept.getChildren(); + if (children != null && !children.isEmpty()) { + for (Dept childDept : children) { + childDept.setSubDeptCode(childDept.getDeptCode()); + childDept.setDeptCode(dept.getDeptCode()); + addItem = createAIDept(webReqURL, childDept); + dataList.add(addItem); + } } - item.setDeptId(dept.getDeptCode()); - item.setDeptName(deptName); - item.setDeptIntro(dept.getDescription() == null ? "" : dept.getDescription()); // 科室简介 - item.setDeptAddr(dept.getAddress() == null ? "" : dept.getAddress()); // 科室地址 - item.setLevel(2); - item.setParentDeptId(""); - item.setFeatureFlag(0); // 是否特色科室 - item.setTreatrange(""); // 诊疗范围 - item.setIsHTML(true); + } + return Result.success(ResultEnum.AI_SUCCESS, dataList); + } - item.setDeptMiniAlipayUrl(""); - item.setDeptLifeAlipayUrl(""); - item.setDeptEmbedAlipayUrl(""); - try { - item.setDeptUrl(webReqURL + "reg-reserve.html#/reg-doctor?deptCode=" + dept.getDeptCode() + "&deptName=" + URLHelper.encodeURL(deptName) + "&hospitalArea="); - } catch (Exception e) { - log.error(e.getMessage()); - item.setDeptUrl(""); - } - resultList.add(item); + private AIDept createAIDept(String webReqURL, Dept dept) { + AIDept item = new AIDept(); + String subDeptCode = dept.getSubDeptCode(); + boolean isSubDept = !ObjectUtils.isEmpty(subDeptCode); + + String deptName = dept.getDeptName(); + if (!ObjectUtils.isEmpty(dept.getDeptAlias())) { + deptName = dept.getDeptAlias(); } - return Result.success(ResultEnum.AI_SUCCESS, resultList); + item.setDeptId(dept.getDeptCode()); + item.setDeptName(deptName); + item.setDeptIntro(dept.getDescription() == null ? "" : dept.getDescription()); // 科室简介 + item.setDeptAddr(dept.getAddress() == null ? "" : dept.getAddress()); // 科室地址 + item.setLevel(2); + item.setParentDeptId(isSubDept ? dept.getDeptCode() : ""); + item.setFeatureFlag(0); // 是否特色科室 + item.setTreatrange(""); // 诊疗范围 + item.setIsHTML(true); + + item.setDeptMiniAlipayUrl(""); + item.setDeptLifeAlipayUrl(""); + item.setDeptEmbedAlipayUrl(""); + + try { + subDeptCode = isSubDept ? ("&subDeptCode=" + subDeptCode) : ""; + item.setDeptUrl(webReqURL + "reg-reserve.html#/reg-doctor?deptCode=" + dept.getDeptCode() + "&deptName=" + URLHelper.encodeURL(deptName) + subDeptCode + "&hospitalArea="); + } catch (Exception e) { + log.error(e.getMessage()); + item.setDeptUrl(""); + } + return item; } @@ -133,15 +156,35 @@ public class AIGuidanceService { return Result.error(ResultEnum.PARAM_IS_DEFECT); } - List resultList = new ArrayList<>(); if (!hosId.equals(AIGuidanceConfig.HOS_ID)) { // 医院id校验 - return Result.success(ResultEnum.AI_SUCCESS, resultList); + return Result.success(ResultEnum.AI_SUCCESS, new ArrayList<>()); } + List doctorList; + if (AIGuidanceConfig.IS_SPLIT_TIME_REG) { // 分时段 + String curDate = DateHelper.getCurDate(); + doctorList = new HisRegisterDao().queryHisTimeRegDoctorList(deptId, branchId, curDate, DateHelper.getMoveDate(curDate, 7)); + } else { + HisRegisterDao hisRegisterDao = new HisRegisterDao(); + doctorList = hisRegisterDao.queryHisResRegDoctorList(deptId, null); + List todayDoctorList = hisRegisterDao.queryHisRegTodayDoctorList(deptId, null); + for (Doctor doctor : todayDoctorList) { + Doctor findItem = doctorList.stream().filter(o -> o.getDoctCode().equals(doctor.getDoctCode())).findFirst().orElse(null); + if (findItem == null) { + doctorList.add(doctor); + } + } + } + + List dataList = aiDoctorHandle(doctorList); + return Result.success(ResultEnum.AI_SUCCESS, dataList); + } + + + public List aiDoctorHandle(List doctorList) { + List resultList = new ArrayList<>(); String webReqURL = WeChatConfig.getWebReqURL(true); - String curDate = DateHelper.getCurDate(); - List doctorList = new HisRegisterDao().getTimeDoctorList(deptId, branchId, curDate, DateHelper.getMoveDate(curDate, 7)); doctorList = new DoctorService().doctorListFilter(doctorList); RegisterDao registerDao = new RegisterDao(); @@ -171,7 +214,7 @@ public class AIGuidanceService { item.setDoctorGoodat(doctor.getSkill() == null ? "" : doctor.getSkill()); // 擅长 item.setDoctorIntro(doctor.getDescription() == null ? "" : doctor.getDescription()); // 介绍 headImg = doctor.getHeadImg(); - if (headImg != null && !"".equals(headImg.trim())) { + if (headImg != null && !ObjectUtils.isEmpty(headImg.trim())) { if (!headImg.contains("data:image/")) { // 不是base64 item.setDoctorImage(domain + headImg); // 头像 } @@ -198,14 +241,17 @@ public class AIGuidanceService { map.put("doctCode", doctor.getDoctCode()); map.put("subDeptCode", ""); map.put("hospitalArea", ""); - item.setDoctorUrl(webReqURL + "reg-reserve.html#/reg-doct-source" + URLHelper.mapParamsToUrl(map, true)); + if (AIGuidanceConfig.IS_SPLIT_TIME_REG) { + item.setDoctorUrl(webReqURL + "reg-reserve.html#/reg-doct-source" + URLHelper.mapParamsToUrl(map, true)); + } else { + item.setDoctorUrl(webReqURL + "reg-reserve.html#/reg-doctor" + URLHelper.mapParamsToUrl(map, true)); + } } catch (Exception e) { log.error(e.getMessage()); item.setDoctorUrl(""); } resultList.add(item); } - return Result.success(ResultEnum.AI_SUCCESS, resultList); + return resultList; } - } diff --git a/src/main/java/com/ynxbd/common/service/HCodeService.java b/src/main/java/com/ynxbd/common/service/HCodeService.java index 6d82e49..e9c1dfa 100644 --- a/src/main/java/com/ynxbd/common/service/HCodeService.java +++ b/src/main/java/com/ynxbd/common/service/HCodeService.java @@ -76,8 +76,6 @@ public class HCodeService { } - - public static String bindUniformVerifyOrder(String wechatCode, String name, String idCardNo) { return registerUniformVerifyOrder(false, wechatCode, null, name, idCardNo); // HealthCardSceneEnum._0201091 } @@ -85,7 +83,7 @@ public class HCodeService { /** * [旧版]实人认证生成orderId接口 */ - public static String registerUniformVerifyOrder(Boolean isMiniApp, String wechatCode, HealthCardSceneEnum sceneEnum, String name, String idCardNo) { + public static String registerUniformVerifyOrder(Boolean isMiniApp, String wechatCode, HealthCardSceneEnum sceneEnum, String name, String idCardNo) { try { log.info("[电子健康卡]实人认证生成orderId idCardNo={}, name={}", idCardNo, name); if (ObjectUtils.isEmpty(idCardNo) || ObjectUtils.isEmpty(name)) { @@ -135,11 +133,15 @@ public class HCodeService { * @param qrCodeText 标识ID(healthCardId = qrCodeText) */ public JSONObject bindCardRelation(Boolean isMiniApp, String patientId, String qrCodeText) { - if (patientId == null || ObjectUtils.isEmpty(qrCodeText)) { - log.info("[电子健康卡]绑定健康卡和医院关系-参数缺失 patientId={}, qrCodeText={}", patientId, qrCodeText); - return null; - } try { + if (!HealthCardConfig.IS_UPLOAD_DATA) { + return null; + } + if (patientId == null || ObjectUtils.isEmpty(qrCodeText)) { + log.info("[电子健康卡]绑定健康卡和医院关系-参数缺失 patientId={}, qrCodeText={}", patientId, qrCodeText); + return null; + } + CommonIn commonIn = HealthCardConfig.createCommonIn(isMiniApp, null); if (commonIn == null) { return null; @@ -147,7 +149,7 @@ public class HCodeService { JSONObject resultJson = HealthCardConfig.createHealthCardService().bindCardRelation(commonIn, patientId, qrCodeText); HealthCardConfig.HCardResult result = new HealthCardConfig.HCardResult(resultJson); if (!result.isOk) { - log.info("[电子健康卡]绑定健康卡和医院关系-失败: {}", resultJson); + log.info("[电子健康卡]绑定健康卡和医院关系-失败: {}", result.getJsonCommon()); return null; } return result.getRsp(); diff --git a/src/main/java/com/ynxbd/common/service/RegService.java b/src/main/java/com/ynxbd/common/service/RegService.java index a962482..094f0ca 100644 --- a/src/main/java/com/ynxbd/common/service/RegService.java +++ b/src/main/java/com/ynxbd/common/service/RegService.java @@ -1,11 +1,12 @@ package com.ynxbd.common.service; -import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; import com.ynxbd.ali.enums.AliMsgEnum; import com.ynxbd.ali.helper.AliHelper; import com.ynxbd.ali.helper.AliMessageHelper; +import com.ynxbd.ali.helper.AliUploadHelper; import com.ynxbd.common.action.pay.PEnum; +import com.ynxbd.common.bean.Dept; import com.ynxbd.common.bean.RegSign; import com.ynxbd.common.bean.enums.MerchantEnum; import com.ynxbd.common.bean.pay.Order; @@ -14,7 +15,6 @@ import com.ynxbd.common.dao.RefundDao; import com.ynxbd.common.dao.RegisterDao; import com.ynxbd.common.dao.his.HisAccountDao; import com.ynxbd.common.dao.his.HisRegisterDao; -import com.ynxbd.common.helper.common.CodeHelper; import com.ynxbd.common.helper.common.DateHelper; import com.ynxbd.common.helper.his.HisHelper; import com.ynxbd.common.result.JsonResult; @@ -23,7 +23,6 @@ import com.ynxbd.common.result.ResultEnum; import com.ynxbd.common.result.ServiceException; import com.ynxbd.wx.config.MessagePushConfig; import com.ynxbd.wx.utils.DateGenerate; -import com.ynxbd.wx.wxfactory.AesWxHelper; import com.ynxbd.wx.wxfactory.WxMedHelper; import com.ynxbd.wx.wxfactory.WxPayHelper; import com.ynxbd.wx.wxfactory.medical.models.WxMedOrder; @@ -1067,4 +1066,187 @@ public class RegService { return records.stream().filter(o -> treatNum.equals(o.getTreatNum())).findFirst().orElse(null); } + + /** + * [普通固话]合并今日挂号和预约挂号科室 + * + * @return list + */ + public List queryHisRegDeptList() { + HisRegisterDao hisRegisterDao = new HisRegisterDao(); + + List deptList = hisRegisterDao.getRegResDeptList(); + List todayDeptList = hisRegisterDao.getRegResDeptList(); + + hisRegisterDao.getRegTodayDeptList(null); + + String sourceInfo = "今日有号"; + + String childDeptCode; + Dept findDept, newChild; + List children; + List todayChildren, resChildren; + for (Dept todayItem : todayDeptList) { + todayItem.setSourceInfo(sourceInfo); + + findDept = deptList.stream().filter(o -> o.getDeptCode().equals(todayItem.getDeptCode())).findFirst().orElse(null); + if (findDept == null) { + if (todayItem.getChildren() != null && !todayItem.getChildren().isEmpty()) { + for (Dept child : todayItem.getChildren()) { + child.setSourceInfo(sourceInfo); + } + } + deptList.add(todayItem); + } else { + findDept.setSourceInfo(sourceInfo); + + resChildren = findDept.getChildren(); + todayChildren = todayItem.getChildren(); + if (resChildren == null) { + resChildren = new ArrayList<>(); + } + + if (todayChildren == null) { + todayChildren = new ArrayList<>(); + } + if (resChildren.isEmpty() && todayChildren.isEmpty()) { + continue; + } + + children = findDept.getChildren(); + if (children == null) { + children = new ArrayList<>(); + } + Map childMap = new HashMap<>(); + if (!todayChildren.isEmpty()) { + for (Dept child : todayChildren) { + childDeptCode = child.getDeptCode(); + newChild = new Dept(); + newChild.setDeptCode(childDeptCode); + newChild.setDeptName(child.getDeptName()); + newChild.setDeptTypeCode(child.getDeptTypeCode()); + newChild.setSourceInfo(sourceInfo); // 今日有号 + children.add(newChild); + childMap.put(childDeptCode, child.getDeptName()); + } + } + + if (!resChildren.isEmpty()) { + for (Dept child : resChildren) { + childDeptCode = child.getDeptCode(); + if (!childMap.containsKey(childDeptCode)) { + newChild = new Dept(); + newChild.setDeptCode(child.getDeptCode()); + newChild.setDeptName(child.getDeptName()); + newChild.setDeptTypeCode(child.getDeptTypeCode()); + children.add(newChild); + childMap.put(childDeptCode, child.getDeptName()); + } + } + } + findDept.setChildren(children); + } + } + return deptList; + } + + public List queryRegDeptList(String merCode, Boolean isDeptTypeGroup) { + List deptList = queryHisRegDeptList(); + + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode); + if (MerchantEnum.ALI.equals(merchantEnum)) { + AliUploadHelper.uploadDept(deptList, true); + } + + if (!isDeptTypeGroup) { // 不按deptType分组 + return deptList; + } + System.out.println("deptType分组"); + return deptList; + } + + public Result getOldRegDeptList(String merCode, Boolean isReserve, String hasSourcesFlag, Boolean isDeptTypeGroup) { + log.info("[挂号]查询科室列表 isReserve={}, hasSourcesFlag={}, isDeptTypeGroup={}", isReserve, hasSourcesFlag, isDeptTypeGroup); + if (isDeptTypeGroup == null) { + isDeptTypeGroup = false; + } + + if (isReserve == null) { + return Result.error(ResultEnum.PARAM_IS_DEFECT); + } + + log.info("[{}挂号] 获取科室列表", isReserve ? "预约" : "今日"); + + HisRegisterDao hisRegisterDao = new HisRegisterDao(); + + List deptList = isReserve + ? hisRegisterDao.getRegResDeptList() + : hisRegisterDao.getRegTodayDeptList(hasSourcesFlag); + + if (!isDeptTypeGroup) { // 不按deptType分组 + return Result.success(deptList); + } + + List resultList = new ArrayList<>(); + + List deptTypeList = new ArrayList<>(); + for (Dept dept : deptList) { + if (!ObjectUtils.isEmpty(dept.getDeptTypeCode())) { + deptTypeList.add(dept); + } else { + resultList.add(dept); + } + } + + Map> stringListMap = deptTypeList.stream().collect(Collectors.groupingBy(Dept::getDeptTypeCode)); + + Dept dept; + String deptTypeName; + List groupList; + for (Map.Entry> entry : stringListMap.entrySet()) { + groupList = entry.getValue(); + dept = groupList.get(0); + deptTypeName = dept.getDeptTypeName(); + if (ObjectUtils.isEmpty(deptTypeName)) { + deptTypeName = groupList.stream().map(Dept::getDeptName).collect(Collectors.joining("、")); + } + dept.setDeptName(deptTypeName); + dept.setDeptCode(groupList.stream().map(Dept::getDeptCode).collect(Collectors.joining(","))); + resultList.add(dept); + } + + MerchantEnum merchantEnum = MerchantEnum.findEnumByCode(merCode); + if (MerchantEnum.ALI.equals(merchantEnum)) { + AliUploadHelper.uploadDept(resultList, isReserve); + } + return Result.success(resultList); + } + + // 查询号源状态 + + /** + * 查询号源状态 + * + * @param isSplitTime 是否为分时段 + * @param deptCode 科室编码 + * @param subDeptCode 亚专科编码 + * @param timeInterval 时段[非分时段] + * @param begDate 开始日期[分时段] + * @param endDate 结束日期[分时段] + * @return mao + */ + public Map queryHisRegSourceState(Boolean isSplitTime, Boolean isTimeInterval, String deptCode, String subDeptCode, String timeInterval, String begDate, String endDate) throws ServiceException { + if (isSplitTime == null || ObjectUtils.isEmpty(deptCode)) { + throw new ServiceException(ResultEnum.PARAM_IS_DEFECT); + } + + if (isSplitTime) { + if (ObjectUtils.isEmpty(begDate) || ObjectUtils.isEmpty(endDate)) { + throw new ServiceException(ResultEnum.PARAM_IS_DEFECT); + } + return new HisRegisterDao().queryHisTimeRegSourceState(deptCode, subDeptCode, begDate, endDate); + } else { + return new HisRegisterDao().queryHisRegSourceState(deptCode, subDeptCode, isTimeInterval, timeInterval); + } + } } diff --git a/src/main/java/com/ynxbd/wx/config/AIGuidanceConfig.java b/src/main/java/com/ynxbd/wx/config/AIGuidanceConfig.java index 3338390..cf5c88e 100644 --- a/src/main/java/com/ynxbd/wx/config/AIGuidanceConfig.java +++ b/src/main/java/com/ynxbd/wx/config/AIGuidanceConfig.java @@ -6,6 +6,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; import javax.servlet.http.HttpServletRequest; +import java.util.Date; /** * 智能导诊配置 @@ -16,6 +17,8 @@ public class AIGuidanceConfig { } public final static boolean IS_ENABLE; + // 是否为分时段挂号 + public final static boolean IS_SPLIT_TIME_REG; //配置文件读取项 public final static String HOS_ID; // 密钥 @@ -30,6 +33,7 @@ public class AIGuidanceConfig { static { ProperHelper config = new ProperHelper().read("ai-guidance.properties"); IS_ENABLE = config.getBoolean("ai.is_enable", false); + IS_SPLIT_TIME_REG = config.getBoolean("ai.is_split_time_reg", true); config.setIsEnable(IS_ENABLE); PARTNER_ID = config.getString("ai.partner_id"); @@ -42,7 +46,7 @@ public class AIGuidanceConfig { HOS_TELEPHONE = config.getString("ai.hos_telephone"); if (PARTNER_ID == null) { - log.error("读取AI配置文件失败"); + log.error("[智能导诊]读取配置文件失败|功能未开启"); } } @@ -67,4 +71,5 @@ public class AIGuidanceConfig { String cacheSign = HMACHelper.sha256(str, KEY); return signature.equals(cacheSign); } + } diff --git a/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java b/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java index 4fe34e4..8eafb07 100644 --- a/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java +++ b/src/main/java/com/ynxbd/wx/config/HospConfigEnum.java @@ -15,6 +15,7 @@ public enum HospConfigEnum { 芒市人民医院("芒市人民医院", "wxca97aaeb3c40c0d0", null, null), 玉龙县人民医院("玉龙县人民医院", "wx1f1e9d29f9b44c36", null, null), 景洪第三人民医院("景洪第三人民医院", "wxd19b076c0695589b", null, null), + 富民县人民医院("富民县人民医院", "wx14ea983bce19d64c", null, null), ; public final String NAME; diff --git a/src/main/java/com/ynxbd/wx/config/WeChatConfig.java b/src/main/java/com/ynxbd/wx/config/WeChatConfig.java index e724488..7566f49 100644 --- a/src/main/java/com/ynxbd/wx/config/WeChatConfig.java +++ b/src/main/java/com/ynxbd/wx/config/WeChatConfig.java @@ -115,6 +115,7 @@ public class WeChatConfig { return BASE_REQ_URL; } + // https://xxx.b.x/wx/ public static String getBaseURL(boolean isHttps) { if (isHttps) { return getHttpsBaseURL(); diff --git a/src/main/resources/ai-guidance.properties b/src/main/resources/ai-guidance.properties index b880ea0..bd76db1 100644 --- a/src/main/resources/ai-guidance.properties +++ b/src/main/resources/ai-guidance.properties @@ -1,18 +1,20 @@ -# 智能导诊(需商户加https白名单) -ai.is_enable=false -# 合作方id +# \u667A\u80FD\u5BFC\u8BCA\uFF08\u9700\u5546\u6237\u52A0https\u767D\u540D\u5355\uFF09 +ai.is_enable=true +# \u662F\u5426\u662F\u5206\u65F6\u6BB5\u6302\u53F7(\u9ED8\u8BA4true) +ai.is_split_time_reg=false +# \u5408\u4F5C\u65B9id ai.partner_id=100000317 -# 密钥 +# \u5BC6\u94A5 ai.key=795b207e12572839976d9310bdde32be -# 医院id +# \u533B\u9662id ai.hos_id=20002953 -# 医院名称 -ai.hos_name=德宏州中医医院 -# 医院地址 -ai.hos_address=医院地址 -# 医院地址 -ai.hos_intro=医院介绍 -# 医院等级 -ai.hos_level=三级乙等 -# 医院联系方式 +# \u533B\u9662\u540D\u79F0 +ai.hos_name=\u5FB7\u5B8F\u5DDE\u4E2D\u533B\u533B\u9662 +# \u533B\u9662\u5730\u5740 +ai.hos_address=\u533B\u9662\u5730\u5740 +# \u533B\u9662\u5730\u5740 +ai.hos_intro=\u533B\u9662\u4ECB\u7ECD +# \u533B\u9662\u7B49\u7EA7 +ai.hos_level=\u4E09\u7EA7\u4E59\u7B49 +# \u533B\u9662\u8054\u7CFB\u65B9\u5F0F ai.hos_telephone=0692-2121450 diff --git a/src/main/resources/copy/ai-guidance/德宏州中医院.properties b/src/main/resources/copy/ai-guidance/德宏州中医院.properties new file mode 100644 index 0000000..370b635 --- /dev/null +++ b/src/main/resources/copy/ai-guidance/德宏州中医院.properties @@ -0,0 +1,18 @@ +# \u667A\u80FD\u5BFC\u8BCA\uFF08\u9700\u5546\u6237\u52A0https\u767D\u540D\u5355\uFF09 +ai.is_enable=false +# \u5408\u4F5C\u65B9id +ai.partner_id=100000317 +# \u5BC6\u94A5\uFF08token\uFF09 +ai.key=795b207e12572839976d9310bdde32be +# \u533B\u9662id +ai.hos_id=20002953 +# \u533B\u9662\u540D\u79F0 +ai.hos_name=\u5FB7\u5B8F\u5DDE\u4E2D\u533B\u533B\u9662 +# \u533B\u9662\u5730\u5740 +ai.hos_address=\u533B\u9662\u5730\u5740 +# \u533B\u9662\u5730\u5740 +ai.hos_intro=\u533B\u9662\u4ECB\u7ECD +# \u533B\u9662\u7B49\u7EA7 +ai.hos_level=\u4E09\u7EA7\u4E59\u7B49 +# \u533B\u9662\u8054\u7CFB\u65B9\u5F0F +ai.hos_telephone=0692-2121450 diff --git a/src/main/resources/copy/ai-guidance/石林县人民医院.properties b/src/main/resources/copy/ai-guidance/石林县人民医院.properties new file mode 100644 index 0000000..270013c --- /dev/null +++ b/src/main/resources/copy/ai-guidance/石林县人民医院.properties @@ -0,0 +1,18 @@ +# \u667A\u80FD\u5BFC\u8BCA\uFF08\u9700\u5546\u6237\u52A0https\u767D\u540D\u5355\uFF09 +ai.is_enable=true +# \u5408\u4F5C\u65B9id +ai.partner_id=100000637 +# \u5BC6\u94A5\uFF08token\uFF09 +ai.key=3431de05cbf9d0ffdbc064a352835981 +# \u533B\u9662id +ai.hos_id=800002592 +# \u533B\u9662\u540D\u79F0 +ai.hos_name=\u77F3\u6797\u5F5D\u65CF\u81EA\u6CBB\u53BF\u4EBA\u6C11\u533B\u9662 +# \u533B\u9662\u5730\u5740 +ai.hos_address=\u533B\u9662\u5730\u5740 +# \u533B\u9662\u5730\u5740 +ai.hos_intro=\u533B\u9662\u4ECB\u7ECD +# \u533B\u9662\u7B49\u7EA7 +ai.hos_level=\u4E8C\u7EA7\u7532\u7B49 +# \u533B\u9662\u8054\u7CFB\u65B9\u5F0F +ai.hos_telephone=0871-67798120 diff --git a/src/main/resources/webservice.properties b/src/main/resources/webservice.properties index 8788884..cd1afcb 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 # \u672C\u5730 #his.url=127.0.0.1:8888 # HIS\u662F\u5426\u5F00\u542F\u652F\u4ED8\u5B9D\u5206\u5F00\u5BF9\u8D26 his.is_ali_mer=false # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=false # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=200.200.200.105:8888 # \u533B\u4FDD=========================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u5FAE\u4FE1\u533B\u4FDD his.wx_med_url=10.20.10.7:7885 # \u652F\u4ED8\u5B9D\u533B\u4FDD his.ali_med_url=10.20.10.7:7885 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u77F3\u6797\u6D4B\u8BD5 #his.url=200.200.200.105:8888 # \u6D4B\u8BD5============================================================ # \u5FB7\u5B8F\u4E2D\u533B his.url=200.200.200.60:9999 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7: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 # #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 # \u672C\u5730 #his.url=127.0.0.1:8888 # HIS\u662F\u5426\u5F00\u542F\u652F\u4ED8\u5B9D\u5206\u5F00\u5BF9\u8D26 his.is_ali_mer=false # \u662F\u5426\u5F3A\u5236\u6253\u5370webservice\u7684xml\u8FD4\u56DE\u6570\u636E his.is_log_resp=false # \u5DDE\u50A3\u533B\u4F7F\u7528 his.is_req_cdata=false # \u662F\u5426\u4F20\u9012openid\u7ED9his\u63A8\u9001\u6D88\u606F his.is_push_msg=false #------------------------------- # \u6D4B\u8BD5\u73AF\u5883 his.dev_url=200.200.200.105:8888 # \u533B\u4FDD=========================== # \u65E7\u914D\u7F6E his.md_url=127.0.0.1:7777 # \u5FAE\u4FE1\u533B\u4FDD his.wx_med_url=10.20.10.7:7885 # \u652F\u4ED8\u5B9D\u533B\u4FDD his.ali_med_url=10.20.10.7:7885 # \u516C\u53F8\u6D4B\u8BD5 #his.url=192.168.12.10:8888 # \u77F3\u6797\u6D4B\u8BD5 #his.url=200.200.200.105:8888 # \u6D4B\u8BD5============================================================ # \u5FB7\u5B8F\u4E2D\u533B #his.url=200.200.200.60:9999 # \u7EA2\u6CB3\u5DDE\u533B\u9662 #his.url=10.20.10.6:8888 # \u8292\u5E02\u5987\u5E7C #his.url=192.168.11.7:8888 # \u5B81\u8497\u5987\u5E7C #his.url=172.19.3.15:8888 # \u5B81\u8497\u53BF\u533B\u9662 his.url=192.168.10.8: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 # #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