Commit 2c7710f7 authored by gaozhaochen's avatar gaozhaochen

add: 1. 万达公众号对接;2. 号源信息查询逻辑更新和健康云保持一致

parent 8d82fb17
...@@ -41,6 +41,10 @@ public enum LoginTypeEnum { ...@@ -41,6 +41,10 @@ public enum LoginTypeEnum {
* 打浦桥,外滩,小东门,老西门,豫园,五里桥,淮海,瑞二 * 打浦桥,外滩,小东门,老西门,豫园,五里桥,淮海,瑞二
*/ */
WOA_ZZ("woa_zz", "中智用户系统公众号登录"), WOA_ZZ("woa_zz", "中智用户系统公众号登录"),
/**
* 上海交通大学医学院附属第九人民医院黄浦分院
*/
WOA_WD("woa_wd", "万达公众号用户系统公众号登录"),
/** /**
* H5登录 * H5登录
......
...@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert; ...@@ -5,6 +5,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.dto.WOAWDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
...@@ -37,7 +38,7 @@ public class WoaUtil { ...@@ -37,7 +38,7 @@ public class WoaUtil {
/** /**
* 获取用户信息请求地址 * 获取用户信息请求地址
*/ */
private final static String WOA_XSZY_USER_INFO_API_URL = WOA_XSZY_PROXY_PASS_URL + WOA_XSZY_GATEWAY_URL; private final static String WOA_XSZY_USER_INFO_API_URL = WOA_XSZY_URL + WOA_XSZY_GATEWAY_URL;
/** /**
* 接口授权信息 * 接口授权信息
...@@ -98,6 +99,9 @@ public class WoaUtil { ...@@ -98,6 +99,9 @@ public class WoaUtil {
// private final static String WOA_ZZ_PROXY_PASS_URL = "https://booking.hpdapuqiao.com"; // private final static String WOA_ZZ_PROXY_PASS_URL = "https://booking.hpdapuqiao.com";
private final static String ZZ_USER_INFO_API_URL = WOA_ZZ_PROXY_PASS_URL + "/api/Other/GetPerson"; private final static String ZZ_USER_INFO_API_URL = WOA_ZZ_PROXY_PASS_URL + "/api/Other/GetPerson";
//private final static String WOA_WD_PROXY_PASS_URL = "https://wxgzh.shjyhpfy.com/api/hosservice/visit/GetUserInfoByToken";
private final static String WOA_WD_PROXY_PASS_URL = "http://30.30.5.74:9988/woa/wd";
private final static String WOA_WD_USER_INFO_URL = WOA_WD_PROXY_PASS_URL + "/api/hosservice/visit/GetUserInfoByToken";
public WOAZzUserInfo getZzUserInfo(String accessToken) { public WOAZzUserInfo getZzUserInfo(String accessToken) {
try { try {
...@@ -114,6 +118,23 @@ public class WoaUtil { ...@@ -114,6 +118,23 @@ public class WoaUtil {
log.error(ex.getMessage(), ex); log.error(ex.getMessage(), ex);
return null; return null;
} }
}
public WOAWDUserInfo getWoaWDUserInfo(String accessToken) {
try {
HttpResponse response = HttpRequest.get(WOA_WD_USER_INFO_URL)
.header("access-token", accessToken)
.execute();
if (response.getStatus() != 200) {
log.error("万达公众号获取用户信息异常-1");
return null;
}
return JSONUtil.toBean(response.body(), WOAWDUserInfo.class);
} catch (Exception ex) {
log.error("万达公众号token获取用户信息异-2!");
log.error(ex.getMessage(), ex);
return null;
}
} }
......
...@@ -10,6 +10,7 @@ import cn.sh.stc.sict.cloud.common.core.constant.RedisCacheConstant; ...@@ -10,6 +10,7 @@ import cn.sh.stc.sict.cloud.common.core.constant.RedisCacheConstant;
import cn.sh.stc.sict.cloud.common.core.constant.UserConstant; import cn.sh.stc.sict.cloud.common.core.constant.UserConstant;
import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum; import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAWDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo; import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
...@@ -96,6 +97,9 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -96,6 +97,9 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
// 中智公众号登录 // 中智公众号登录
case WOA_ZZ: case WOA_ZZ:
return this.getWoaZzUserInfoByToken(split); return this.getWoaZzUserInfoByToken(split);
// 万达公众号登录
case WOA_WD:
return this.getWoaWDUserInfoByToken(split);
// 微信登录 // 微信登录
default: default:
WxOAuth2AccessToken token = wxMpService.getOAuth2Service().getAccessToken(split[2]); WxOAuth2AccessToken token = wxMpService.getOAuth2Service().getAccessToken(split[2]);
...@@ -245,6 +249,55 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs ...@@ -245,6 +249,55 @@ public class SysUserBaseServiceImpl extends ServiceImpl<SysUserBaseMapper, SysUs
return info; return info;
} }
private UserInfo getWoaWDUserInfoByToken(String[] infoArray) {
String source = infoArray[0];
String appId = infoArray[1];
String token = infoArray[2];
String hospitalCode = infoArray[3];
WOAWDUserInfo userInfo = WoaUtil.getWoaWDUserInfo(token);
String userInfoStr = JSONUtil.toJsonStr(userInfo);
log.error("woa.login.wdUser = {}", userInfoStr);
if (ObjectUtil.isNull(userInfo) || StrUtil.isBlank(userInfo.getId())) {
return null;
}
// 根据用户ID和手机号查询当前用户是否已注册过
LambdaQueryWrapper<SysUserBase> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SysUserBase::getOpenId, userInfo.getId())
.or()
.eq(SysUserBase::getPhone, userInfo.getMobile())
.orderByDesc(SysUserBase::getUpdateTime)
.last("limit 1");
SysUserBase user = this.getOne(wrapper);
// 未注册用户默认注册
if (user == null) {
user = new SysUserBase();
user.setUserName(userInfo.getMobile());
user.setOpenId(userInfo.getId());
user.setName(userInfo.getUsername());
user.setIdCard(userInfo.getPersoncard());
user.setSex(userInfo.getGender());
user.setHeadimg(userInfo.getAvator());
user.setSource(source);
user.setStatus(Constant.BYTE_NO);
user.setPasswd(ENCODER.encode(Constant.DEFAULT_PASSWORD));
user.setPhone(userInfo.getMobile());
user.setAppId(appId);
this.save(user);
}
UserInfo info = new UserInfo();
info.setSysUserBase(user);
info.setOpenId(userInfo.getId());
// 设置医疗机构代码,后续查询只显示当前医疗机构下的查询结果
info.setHospitalCode(hospitalCode);
return info;
}
@Override @Override
public boolean saveDto(UserDTO dto) { public boolean saveDto(UserDTO dto) {
if (NumberUtil.isNotNullOrZero(dto.getUser().getId())) { if (NumberUtil.isNotNullOrZero(dto.getUser().getId())) {
......
...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.theme.hpgp.service; ...@@ -3,6 +3,7 @@ package cn.sh.stc.sict.theme.hpgp.service;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction; import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date; import java.util.Date;
...@@ -28,7 +29,7 @@ public interface HpgpBusyIdlePredictionService extends IService<HpgpBusyIdlePred ...@@ -28,7 +29,7 @@ public interface HpgpBusyIdlePredictionService extends IService<HpgpBusyIdlePred
*/ */
List<HpgpBusyIdlePrediction> busyIdlePrediction(String hospitalCode, String deptName); List<HpgpBusyIdlePrediction> busyIdlePrediction(String hospitalCode, String deptName);
void statisticResourceInfo(HpgpDepartmentRank dept, Date startDate, Date endDate, Byte flag); void statisticResourceInfo(HpDeptInfo dept, Date startDate, Date endDate, Byte flag);
List<HpgpBusyIdlePrediction> listByDeptRank(HpgpDepartmentRank dept, DateTime startTime, DateTime endTime); List<HpgpBusyIdlePrediction> listByDept(HpDeptInfo dept, DateTime startTime, DateTime endTime);
} }
...@@ -17,8 +17,9 @@ public interface HpgpKsHotService extends IService<HpgpKsHot> { ...@@ -17,8 +17,9 @@ public interface HpgpKsHotService extends IService<HpgpKsHot> {
* 根据医疗机构代码查询热门科室 * 根据医疗机构代码查询热门科室
* *
* @param yljgdm 医疗机构代码 * @param yljgdm 医疗机构代码
* @param size 科室数量
* @return * @return
*/ */
List<HpgpKsHot> listHotDept(String yljgdm); List<HpgpKsHot> listHotDept(String yljgdm, int size);
} }
...@@ -8,19 +8,19 @@ import cn.hutool.core.util.StrUtil; ...@@ -8,19 +8,19 @@ import cn.hutool.core.util.StrUtil;
import cn.sh.stc.sict.theme.hpgp.dao.HpHzjlMapper; import cn.sh.stc.sict.theme.hpgp.dao.HpHzjlMapper;
import cn.sh.stc.sict.theme.hpgp.model.HpHzjl; import cn.sh.stc.sict.theme.hpgp.model.HpHzjl;
import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction; import cn.sh.stc.sict.theme.hpgp.model.HpgpBusyIdlePrediction;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hpgp.model.HpgpKsHot; import cn.sh.stc.sict.theme.hpgp.model.HpgpKsHot;
import cn.sh.stc.sict.theme.hpgp.service.HpHzjlService; import cn.sh.stc.sict.theme.hpgp.service.HpHzjlService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService; import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpKsHotService; import cn.sh.stc.sict.theme.hpgp.service.HpgpKsHotService;
import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo;
import cn.sh.stc.sict.theme.hphy.model.HpDocInfo; import cn.sh.stc.sict.theme.hphy.model.HpDocInfo;
import cn.sh.stc.sict.theme.hphy.service.HpDeptInfoService;
import cn.sh.stc.sict.theme.hphy.service.HpDocInfoService; import cn.sh.stc.sict.theme.hphy.service.HpDocInfoService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -40,6 +40,9 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme ...@@ -40,6 +40,9 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme
private final HpgpBusyIdlePredictionService hpgpBusyIdlePredictionService; private final HpgpBusyIdlePredictionService hpgpBusyIdlePredictionService;
private final HpDocInfoService hpDocInfoService; private final HpDocInfoService hpDocInfoService;
private final HpgpKsHotService hpgpKsHotService; private final HpgpKsHotService hpgpKsHotService;
private final HpDeptInfoService hpDeptInfoService;
private static final Integer MAX_DEPT_SIZE = 3;
/** /**
* 根据身份证号查找最后三次不同科室就诊记录,并计算忙闲 * 根据身份证号查找最后三次不同科室就诊记录,并计算忙闲
...@@ -53,6 +56,7 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme ...@@ -53,6 +56,7 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme
public List<HpgpBusyIdlePrediction> listByCertIdAndHosCode(String certId, public List<HpgpBusyIdlePrediction> listByCertIdAndHosCode(String certId,
String hospitalCode) { String hospitalCode) {
List<HpgpBusyIdlePrediction> result = new ArrayList<>(); List<HpgpBusyIdlePrediction> result = new ArrayList<>();
int resultDeptSize = 0;
DateTime startTime = DateUtil.tomorrow(); DateTime startTime = DateUtil.tomorrow();
DateTime endTime = DateUtil.offsetDay(startTime, 6); DateTime endTime = DateUtil.offsetDay(startTime, 6);
...@@ -61,33 +65,38 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme ...@@ -61,33 +65,38 @@ public class HpHzjlServiceImpl extends ServiceImpl<HpHzjlMapper, HpHzjl> impleme
.eq(StrUtil.isNotBlank(hospitalCode), HpHzjl::getYljgdm, hospitalCode) .eq(StrUtil.isNotBlank(hospitalCode), HpHzjl::getYljgdm, hospitalCode)
.groupBy(HpHzjl::getJzksbm) .groupBy(HpHzjl::getJzksbm)
.orderByDesc(HpHzjl::getJzksrq) .orderByDesc(HpHzjl::getJzksrq)
.last("limit 10"); .last("limit " + MAX_DEPT_SIZE);
List<HpHzjl> recordList = this.list(wrapper); List<HpHzjl> recordList = this.list(wrapper);
if (CollUtil.isNotEmpty(recordList)) { if (CollUtil.isNotEmpty(recordList)) {
for (HpHzjl record : recordList) { for (HpHzjl record : recordList) {
if (result.size() >= 20) {
break;
}
// 查找科室 // 查找科室
HpgpDepartmentRank dept = hpgpDepartmentRankService.getByCode(record.getYljgdm(), null, record.getJzksbm()); LambdaQueryWrapper<HpDeptInfo> deptWrapper = Wrappers.<HpDeptInfo>lambdaQuery();
if (ObjectUtil.isEmpty(dept)) { deptWrapper.eq(HpDeptInfo::getHosOrgCode, record.getYljgdm())
.eq(HpDeptInfo::getDeptCode, record.getJzksbm())
.eq(HpDeptInfo::getDeptLevel, 2);
HpDeptInfo dept = hpDeptInfoService.getOne(deptWrapper);
if (ObjectUtil.isNull(dept)) {
continue; continue;
} }
// 忙闲预测 // 忙闲预测
result.addAll(hpgpBusyIdlePredictionService.listByDeptRank(dept, startTime, endTime)); result.addAll(hpgpBusyIdlePredictionService.listByDept(dept, startTime, endTime));
resultDeptSize++;
} }
} }
// 历史科室查询结果为空时,采用热点科室数据 // 历史科室查询结果少于3个时,采用热点科室数据补充
if (CollUtil.isEmpty(result)) { if (resultDeptSize < MAX_DEPT_SIZE) {
List<HpgpKsHot> hotList = hpgpKsHotService.listHotDept(hospitalCode); List<HpgpKsHot> hotList = hpgpKsHotService.listHotDept(hospitalCode, MAX_DEPT_SIZE - resultDeptSize);
hotList.forEach(hot -> { hotList.forEach(hot -> {
HpgpDepartmentRank rank = new HpgpDepartmentRank(); HpDeptInfo dept = new HpDeptInfo();
BeanUtils.copyProperties(hot, rank); dept.setHosOrgCode(hot.getHospitalCode());
result.addAll(hpgpBusyIdlePredictionService.listByDeptRank(rank, startTime, endTime)); dept.setHosName(hot.getHospitalName());
dept.setOneDeptCode(hot.getOneDeptCode());
dept.setDeptCode(hot.getDeptCode());
dept.setDeptName(hot.getDeptName());
result.addAll(hpgpBusyIdlePredictionService.listByDept(dept, startTime, endTime));
}); });
} }
return result; return result;
} }
......
...@@ -67,8 +67,8 @@ public class HpgpDepartmentRankServiceImpl extends ServiceImpl<HpgpDepartmentRan ...@@ -67,8 +67,8 @@ public class HpgpDepartmentRankServiceImpl extends ServiceImpl<HpgpDepartmentRan
deptInfo.setHosOrgCode(dept.getHospitalCode()); deptInfo.setHosOrgCode(dept.getHospitalCode());
deptInfo.setOneDeptCode(dept.getOneDeptCode()); deptInfo.setOneDeptCode(dept.getOneDeptCode());
deptInfo.setDeptCode(dept.getDeptCode()); deptInfo.setDeptCode(dept.getDeptCode());
List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getOutPatInfo(deptInfo);
List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(deptInfo); List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getDoctInfo(deptInfo);
if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) { if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) {
return; return;
} }
......
...@@ -21,11 +21,11 @@ import java.util.List; ...@@ -21,11 +21,11 @@ import java.util.List;
public class HpgpKsHotServiceImpl extends ServiceImpl<HpgpKsHotMapper, HpgpKsHot> implements HpgpKsHotService { public class HpgpKsHotServiceImpl extends ServiceImpl<HpgpKsHotMapper, HpgpKsHot> implements HpgpKsHotService {
@Override @Override
public List<HpgpKsHot> listHotDept(String yljgdm) { public List<HpgpKsHot> listHotDept(String yljgdm, int size) {
LambdaQueryWrapper<HpgpKsHot> wrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<HpgpKsHot> wrapper = Wrappers.lambdaQuery();
wrapper.eq(HpgpKsHot::getGzh, StrUtil.isBlank(yljgdm) ? "ALL" : yljgdm) wrapper.eq(HpgpKsHot::getGzh, StrUtil.isBlank(yljgdm) ? "ALL" : yljgdm)
.orderByAsc(HpgpKsHot::getRankScore) .orderByAsc(HpgpKsHot::getRankScore)
.last("limit 3"); .last("limit " + size);
return this.list(wrapper); return this.list(wrapper);
} }
} }
...@@ -77,13 +77,13 @@ public class HpDeptInfoController extends ApiController { ...@@ -77,13 +77,13 @@ public class HpDeptInfoController extends ApiController {
@RequestParam(value = "oneDeptCode", required = false) String oneDeptCode, @RequestParam(value = "oneDeptCode", required = false) String oneDeptCode,
@RequestParam(value = "dept", required = false) String deptCode, @RequestParam(value = "dept", required = false) String deptCode,
@RequestParam(value = "flag", required = false, defaultValue = Constant.STRING_NO) Byte flag) { @RequestParam(value = "flag", required = false, defaultValue = Constant.STRING_NO) Byte flag) {
QueryWrapper<HpgpDepartmentRank> wrapper = Wrappers.emptyWrapper(); LambdaQueryWrapper<HpDeptInfo> wrapper = Wrappers.<HpDeptInfo>lambdaQuery();
LambdaQueryWrapper<HpgpDepartmentRank> queryWrapper = wrapper.select("DISTINCT standard_dept,hospital_code,hospital_name,one_dept_code,dept_code,dept_name").lambda(); wrapper.eq(HpDeptInfo::getDeptLevel, 2)
queryWrapper.eq(StrUtil.isNotEmpty(hospCode), HpgpDepartmentRank::getHospitalCode, hospCode) .eq(StrUtil.isNotEmpty(hospCode), HpDeptInfo::getHosOrgCode, hospCode)
.eq(StrUtil.isNotEmpty(oneDeptCode), HpgpDepartmentRank::getOneDeptCode, oneDeptCode) .eq(StrUtil.isNotEmpty(oneDeptCode), HpDeptInfo::getOneDeptCode, oneDeptCode)
.eq(StrUtil.isNotEmpty(deptCode), HpgpDepartmentRank::getDeptCode, deptCode); .eq(StrUtil.isNotEmpty(deptCode), HpDeptInfo::getDeptCode, deptCode);;
List<HpgpDepartmentRank> deptList = hpgpDepartmentRankService.list(queryWrapper); List<HpDeptInfo> deptList = hpDeptInfoService.list(wrapper);
log.error("医院科室查询结果deptList = {}", deptList); log.error("医院科室查询结果deptList = {}", deptList);
deptList.forEach(dept -> { deptList.forEach(dept -> {
if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) { if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) {
......
...@@ -6,10 +6,7 @@ import cn.hutool.core.util.StrUtil; ...@@ -6,10 +6,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum; import cn.sh.stc.sict.cloud.common.core.constant.enums.LoginTypeEnum;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo; import cn.sh.stc.sict.cloud.common.core.dto.*;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.core.util.R; import cn.sh.stc.sict.cloud.common.core.util.R;
import cn.sh.stc.sict.cloud.common.core.util.SsbUtil; import cn.sh.stc.sict.cloud.common.core.util.SsbUtil;
...@@ -143,6 +140,7 @@ public class HphyPatientBaseController { ...@@ -143,6 +140,7 @@ public class HphyPatientBaseController {
} }
// 获取患者信息 // 获取患者信息
HphyPatientBase base = hphyPatientBaseService.getByOpenId(current.getOpenId()); HphyPatientBase base = hphyPatientBaseService.getByOpenId(current.getOpenId());
log.error("获取患者信息 = {}", JSONUtil.toJsonStr(base));
// 根据手机号去重 // 根据手机号去重
if (ObjectUtil.isNull(base) || NumberUtil.isNullOrZero(base.getId())) { if (ObjectUtil.isNull(base) || NumberUtil.isNullOrZero(base.getId())) {
base = hphyPatientBaseService.getByPhone(current.getPhone(), true); base = hphyPatientBaseService.getByPhone(current.getPhone(), true);
...@@ -172,7 +170,13 @@ public class HphyPatientBaseController { ...@@ -172,7 +170,13 @@ public class HphyPatientBaseController {
if (LoginTypeEnum.WOA_ZZ.getType().equals(source)) { if (LoginTypeEnum.WOA_ZZ.getType().equals(source)) {
WOAZzUserInfo zzUserInfo = WoaUtil.getZzUserInfo(token); WOAZzUserInfo zzUserInfo = WoaUtil.getZzUserInfo(token);
log.error("zzUser = {}", zzUserInfo); log.error("zzUser = {}", zzUserInfo);
base = hphyPatientBaseService.saveWoaInfo(current, zzUserInfo); base = hphyPatientBaseService.saveWoaZzInfo(current, zzUserInfo);
}
// 万达微信公众后
if (LoginTypeEnum.WOA_WD.getType().equals(source)) {
WOAWDUserInfo wdUserInfo = WoaUtil.getWoaWDUserInfo(token);
log.error("wdUserInfo = {}", wdUserInfo);
base = hphyPatientBaseService.saveWoaWdInfo(current, wdUserInfo);
} }
} }
......
...@@ -75,20 +75,23 @@ public class WDController { ...@@ -75,20 +75,23 @@ public class WDController {
public R getOrderNumberInfo(NumSourceInfo numSourceInfo) { public R getOrderNumberInfo(NumSourceInfo numSourceInfo) {
// 医生查询所有号源能查到,查询指定类型号源差不多,20220715处理:查询所有,过滤 // 医生查询所有号源能查到,查询指定类型号源差不多,20220715处理:查询所有,过滤
String orderNumType = numSourceInfo.getOrderNumType(); // String orderNumType = numSourceInfo.getOrderNumType();
if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){ // if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){
numSourceInfo.setOrderNumType(null); // numSourceInfo.setOrderNumType(null);
} // }
numSourceInfo.setOrderNumType(null);
List<NumSourceInfo> list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); List<NumSourceInfo> list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo);
if(CollUtil.isEmpty(list)){ if(CollUtil.isEmpty(list)){
return new R(); return new R();
} }
if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){
List<NumSourceInfo> result = list.stream().filter(i -> orderNumType.equals(i.getOrderNumType())).collect(Collectors.toList()); return new R(list);
return new R(result); // if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){
}else{ // List<NumSourceInfo> result = list.stream().filter(i -> orderNumType.equals(i.getOrderNumType())).collect(Collectors.toList());
return new R(list); // return new R(result);
} // }else{
// return new R(list);
// }
// if (CollUtil.isNotEmpty(list)) { // if (CollUtil.isNotEmpty(list)) {
// return R.builder().code(Constant.BYTE_YES).data(list).bizCode(Constant.INT_NO).build(); // return R.builder().code(Constant.BYTE_YES).data(list).bizCode(Constant.INT_NO).build();
......
...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil; ...@@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank;
import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService; import cn.sh.stc.sict.theme.hpgp.service.HpgpBusyIdlePredictionService;
import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService;
import cn.sh.stc.sict.theme.hphy.constant.DataConstant; import cn.sh.stc.sict.theme.hphy.constant.DataConstant;
...@@ -19,7 +18,6 @@ import cn.sh.stc.sict.theme.hphy.wd.DoctInfo; ...@@ -19,7 +18,6 @@ import cn.sh.stc.sict.theme.hphy.wd.DoctInfo;
import cn.sh.stc.sict.theme.hphy.wd.HosInfo; import cn.sh.stc.sict.theme.hphy.wd.HosInfo;
import cn.sh.stc.sict.theme.hphy.wd.WanDaHttpUtil; import cn.sh.stc.sict.theme.hphy.wd.WanDaHttpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -92,7 +90,7 @@ public class RefreshJob { ...@@ -92,7 +90,7 @@ public class RefreshJob {
/** /**
* 每周一 2点 更新医生信息 * 每周一 2点 更新医生信息
* * <p>
* 1、调用接口获取医生列表 * 1、调用接口获取医生列表
* 2、删除现有医生信息 * 2、删除现有医生信息
* 3、插入新的医生信息 * 3、插入新的医生信息
...@@ -115,11 +113,11 @@ public class RefreshJob { ...@@ -115,11 +113,11 @@ public class RefreshJob {
* 每天中午12点,晚上12点,统计号源信息 * 每天中午12点,晚上12点,统计号源信息
*/ */
// @Scheduled(cron = "0 50 12 * * ? ") // @Scheduled(cron = "0 50 12 * * ? ")
@Scheduled(cron = "0 0 0,12 * * ? ") @Scheduled(cron = "0 0 12,0 * * ? ")
public void statisticRankDeptResourceInfo() { public void statisticRankDeptResourceInfo() {
QueryWrapper<HpgpDepartmentRank> wrapper = Wrappers.emptyWrapper(); LambdaQueryWrapper<HpDeptInfo> wrapper = Wrappers.<HpDeptInfo>lambdaQuery();
LambdaQueryWrapper<HpgpDepartmentRank> lambda = wrapper.select("DISTINCT standard_dept,hospital_code,hospital_name,one_dept_code,dept_code,dept_name").lambda(); wrapper.eq(HpDeptInfo::getDeptLevel, 2);
List<HpgpDepartmentRank> deptList = hpgpDepartmentRankService.list(lambda); List<HpDeptInfo> deptList = deptInfoService.list(wrapper);
deptList.forEach(dept -> { deptList.forEach(dept -> {
if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) { if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) {
return; return;
...@@ -141,7 +139,7 @@ public class RefreshJob { ...@@ -141,7 +139,7 @@ public class RefreshJob {
List<HpDocInfo> docInfos = factory.getMapperFacade().mapAsList(doctInfos, HpDocInfo.class); List<HpDocInfo> docInfos = factory.getMapperFacade().mapAsList(doctInfos, HpDocInfo.class);
try { try {
docInfoService.saveDoctor(docInfos, hosOrgCode); docInfoService.saveDoctor(docInfos, hosOrgCode);
}catch (Exception e){ } catch (Exception e) {
log.error("医院 {} 医生信息保存出错", hosOrgCode); log.error("医院 {} 医生信息保存出错", hosOrgCode);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
......
...@@ -21,4 +21,6 @@ public interface HpDeptInfoService extends IService<HpDeptInfo> { ...@@ -21,4 +21,6 @@ public interface HpDeptInfoService extends IService<HpDeptInfo> {
DeptDoctorsVO getDeptDoctors(String hospitalCode, String deptCode); DeptDoctorsVO getDeptDoctors(String hospitalCode, String deptCode);
void asyncUpdate(HpDeptInfo dept); void asyncUpdate(HpDeptInfo dept);
} }
package cn.sh.stc.sict.theme.hphy.service; package cn.sh.stc.sict.theme.hphy.service;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo; import cn.sh.stc.sict.cloud.common.core.dto.*;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
import cn.sh.stc.sict.theme.hphy.model.HphyPatientBase; import cn.sh.stc.sict.theme.hphy.model.HphyPatientBase;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
...@@ -39,7 +36,16 @@ public interface HphyPatientBaseService extends IService<HphyPatientBase> { ...@@ -39,7 +36,16 @@ public interface HphyPatientBaseService extends IService<HphyPatientBase> {
* @param userInfo 公众号用户详情 * @param userInfo 公众号用户详情
* @return XSZYUserInfo {@link WOAZzUserInfo} * @return XSZYUserInfo {@link WOAZzUserInfo}
*/ */
HphyPatientBase saveWoaInfo(CurrentUser current, WOAZzUserInfo userInfo); HphyPatientBase saveWoaZzInfo(CurrentUser current, WOAZzUserInfo userInfo);
/**
* 保存万达公众号用户信息
*
* @param current 当前用户
* @param userInfo 公众号用户详情
* @return XSZYUserInfo {@link WOAWDUserInfo}
*/
HphyPatientBase saveWoaWdInfo(CurrentUser current, WOAWDUserInfo userInfo);
void savePatient(HphyPatientBase patient); void savePatient(HphyPatientBase patient);
......
...@@ -77,8 +77,8 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI ...@@ -77,8 +77,8 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI
info.setHosOrgCode(deptInfo.getHosOrgCode()); info.setHosOrgCode(deptInfo.getHosOrgCode());
info.setOneDeptCode(deptInfo.getOneDeptCode()); info.setOneDeptCode(deptInfo.getOneDeptCode());
info.setDeptCode(deptInfo.getDeptCode()); info.setDeptCode(deptInfo.getDeptCode());
List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(info); List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getOutPatInfo(info);
List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(info); List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getDoctInfo(info);
List<HpDocInfo> remainDoctors = this.getRemainDoctList(doctors, resourceDoctInfo); List<HpDocInfo> remainDoctors = this.getRemainDoctList(doctors, resourceDoctInfo);
return new DeptDoctorsVO(hosInfo, deptInfo, resourceOutPatInfo, remainDoctors); return new DeptDoctorsVO(hosInfo, deptInfo, resourceOutPatInfo, remainDoctors);
...@@ -91,8 +91,8 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI ...@@ -91,8 +91,8 @@ public class HpDeptInfoServiceImpl extends ServiceImpl<HpDeptInfoMapper, HpDeptI
deptInfo.setHosOrgCode(dept.getHosOrgCode()); deptInfo.setHosOrgCode(dept.getHosOrgCode());
deptInfo.setOneDeptCode(dept.getOneDeptCode()); deptInfo.setOneDeptCode(dept.getOneDeptCode());
deptInfo.setDeptCode(dept.getDeptCode()); deptInfo.setDeptCode(dept.getDeptCode());
List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); List<OutPatInfo> resourceOutPatInfo = WanDaHttpUtil.getOutPatInfo(deptInfo);
List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(deptInfo); List<DoctInfo> resourceDoctInfo = WanDaHttpUtil.getDoctInfo(deptInfo);
if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) { if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) {
return; return;
} }
......
...@@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollUtil; ...@@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdcardUtil; import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserCardInfo; import cn.sh.stc.sict.cloud.common.core.dto.*;
import cn.sh.stc.sict.cloud.common.core.dto.WDUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.WOAZzUserInfo;
import cn.sh.stc.sict.cloud.common.core.dto.XSZYUserInfo;
import cn.sh.stc.sict.cloud.common.core.util.NumberUtil; import cn.sh.stc.sict.cloud.common.core.util.NumberUtil;
import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils; import cn.sh.stc.sict.cloud.common.security.util.SecurityUtils;
import cn.sh.stc.sict.cloud.upms.dto.CurrentUser; import cn.sh.stc.sict.cloud.upms.dto.CurrentUser;
...@@ -112,7 +109,37 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe ...@@ -112,7 +109,37 @@ public class HphyPatientBaseServiceImpl extends ServiceImpl<HphyPatientBaseMappe
* @return XSZYUserInfo {@link WOAZzUserInfo} * @return XSZYUserInfo {@link WOAZzUserInfo}
*/ */
@Override @Override
public HphyPatientBase saveWoaInfo(CurrentUser current, WOAZzUserInfo userInfo) { public HphyPatientBase saveWoaZzInfo(CurrentUser current, WOAZzUserInfo userInfo) {
if (ObjectUtil.isNotNull(userInfo)) {
HphyPatientBase base = new HphyPatientBase();
base.setUserId(current.getId());
base.setOpenId(current.getOpenId());
base.setPhone(userInfo.getMobile());
base.setName(userInfo.getUsername());
base.setCertId(userInfo.getPersoncard());
base.setGender(Constant.BYTE_YES.equals(userInfo.getGender()) ? "男" : "女");
base.setVerifyStatus(Constant.STRING_NO);
// 身份证号合法,设置年龄、性别、实名认证标志
if (IdcardUtil.isValidCard(base.getCertId())) {
String certId = base.getCertId();
base.setAge(String.valueOf(IdcardUtil.getAgeByIdCard(certId)));
base.setVerifyStatus(Constant.STRING_YES);
}
this.save(base);
return base;
}
return null;
}
/**
* 保存万达公众号用户信息
*
* @param current 当前用户
* @param userInfo 公众号用户详情
* @return XSZYUserInfo {@link WOAWDUserInfo}
*/
@Override
public HphyPatientBase saveWoaWdInfo(CurrentUser current, WOAWDUserInfo userInfo) {
if (ObjectUtil.isNotNull(userInfo)) { if (ObjectUtil.isNotNull(userInfo)) {
HphyPatientBase base = new HphyPatientBase(); HphyPatientBase base = new HphyPatientBase();
base.setUserId(current.getId()); base.setUserId(current.getId());
......
package cn.sh.stc.sict.theme.hphy.wd; package cn.sh.stc.sict.theme.hphy.wd;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.XmlUtil; import cn.hutool.core.util.XmlUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
...@@ -8,15 +9,16 @@ import cn.hutool.json.JSONArray; ...@@ -8,15 +9,16 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.sh.stc.sict.cloud.common.core.constant.Constant; import cn.sh.stc.sict.cloud.common.core.constant.Constant;
import com.baomidou.mybatisplus.core.toolkit.StringPool;
import lombok.experimental.UtilityClass; import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.w3c.dom.Document; import org.w3c.dom.Document;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import javax.print.DocFlavor;
import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathConstants;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
@Slf4j @Slf4j
@UtilityClass @UtilityClass
...@@ -30,7 +32,7 @@ public class WanDaHttpUtil { ...@@ -30,7 +32,7 @@ public class WanDaHttpUtil {
/** /**
* 获取家庭医生签约信息 * 获取家庭医生签约信息
*/ */
public static String getContractInfo(String idNo){ public static String getContractInfo(String idNo) {
ContractParam param = new ContractParam(idNo); ContractParam param = new ContractParam(idNo);
String body = HttpRequest.post(CONTRACT_INFO_URL) String body = HttpRequest.post(CONTRACT_INFO_URL)
.body(JSONUtil.toJsonStr(param)) .body(JSONUtil.toJsonStr(param))
...@@ -39,7 +41,7 @@ public class WanDaHttpUtil { ...@@ -39,7 +41,7 @@ public class WanDaHttpUtil {
System.out.println(body); System.out.println(body);
JSON parse = JSONUtil.parse(body); JSON parse = JSONUtil.parse(body);
Object obj = parse.getByPath("data.pageInfo.totals"); Object obj = parse.getByPath("data.pageInfo.totals");
if(null!=obj&& Integer.valueOf(obj.toString())>0){ if (null != obj && Integer.valueOf(obj.toString()) > 0) {
JSONArray arr = parse.getByPath("data.data", JSONArray.class); JSONArray arr = parse.getByPath("data.data", JSONArray.class);
return ((JSONObject) arr.get(0)).get("SQJGMC").toString(); return ((JSONObject) arr.get(0)).get("SQJGMC").toString();
} }
...@@ -48,6 +50,7 @@ public class WanDaHttpUtil { ...@@ -48,6 +50,7 @@ public class WanDaHttpUtil {
/** /**
* 发送短信 * 发送短信
*
* @param phone * @param phone
* @param msg * @param msg
* @param appName * @param appName
...@@ -197,6 +200,7 @@ public class WanDaHttpUtil { ...@@ -197,6 +200,7 @@ public class WanDaHttpUtil {
*/ */
public List<NumSourceInfo> getOrderNumInfo(NumSourceInfo numSourceInfo) { public List<NumSourceInfo> getOrderNumInfo(NumSourceInfo numSourceInfo) {
String xml = WanDaUtil.GetOrderNumInfoServiceXML(numSourceInfo); String xml = WanDaUtil.GetOrderNumInfoServiceXML(numSourceInfo);
log.error("号源查询:xml = {}", xml);
String body = ""; String body = "";
try { try {
body = HttpRequest.post(URL) body = HttpRequest.post(URL)
...@@ -215,14 +219,22 @@ public class WanDaHttpUtil { ...@@ -215,14 +219,22 @@ public class WanDaHttpUtil {
List<NumSourceInfo> list = new ArrayList<>(); List<NumSourceInfo> list = new ArrayList<>();
if (null != nodeList && nodeList.getLength() > 0) { if (null != nodeList && nodeList.getLength() > 0) {
for (int i = 0; i < nodeList.getLength(); i++) { for (int i = 0; i < nodeList.getLength(); i++) {
list.add(XmlUtil.xmlToBean(nodeList.item(i), NumSourceInfo.class));
try {
// 外层异常只处理查询号源、解析xml的问题
// 号源数据出现异常,不再处理(大概率是医院数据质量低,造成号源数字解析问题)
list.add(XmlUtil.xmlToBean(nodeList.item(i), NumSourceInfo.class));
} catch (Exception e) {
// ignore exception
}
} }
} }
return list; return list;
} else { } else {
return null; return null;
} }
}catch (Exception e){ } catch (Exception e) {
log.error("号源查询失败,num = {}", JSONUtil.toJsonStr(numSourceInfo)); log.error("号源查询失败,num = {}", JSONUtil.toJsonStr(numSourceInfo));
log.error("号源查询失败,body = {}", body); log.error("号源查询失败,body = {}", body);
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
...@@ -423,7 +435,7 @@ public class WanDaHttpUtil { ...@@ -423,7 +435,7 @@ public class WanDaHttpUtil {
*/ */
public List<DoctInfo> getResourceDoctInfo(DeptInfo deptInfo) { public List<DoctInfo> getResourceDoctInfo(DeptInfo deptInfo) {
String xml = WanDaUtil.GetResourceDoctInfoServiceXML(deptInfo); String xml = WanDaUtil.GetResourceDoctInfoServiceXML(deptInfo);
//log.error("获取可预约医生信息 xml = {}", xml); log.error("获取可预约医生信息 xml = {}", xml);
String body = HttpRequest.post(URL) String body = HttpRequest.post(URL)
.body(xml) .body(xml)
.execute() .execute()
...@@ -433,7 +445,7 @@ public class WanDaHttpUtil { ...@@ -433,7 +445,7 @@ public class WanDaHttpUtil {
log.error("获取可预约医生信息 失败"); log.error("获取可预约医生信息 失败");
return null; return null;
} }
//log.info("获取可预约医生信息:body = {}", body); log.error("获取可预约医生信息:body = {}", body);
String returnXml = getReturn(body, "GetResourceDoctInfoService"); String returnXml = getReturn(body, "GetResourceDoctInfoService");
return serialDoctInfo(returnXml); return serialDoctInfo(returnXml);
} }
...@@ -446,7 +458,7 @@ public class WanDaHttpUtil { ...@@ -446,7 +458,7 @@ public class WanDaHttpUtil {
*/ */
public List<OutPatInfo> getResourceOutPatInfo(DeptInfo deptInfo) { public List<OutPatInfo> getResourceOutPatInfo(DeptInfo deptInfo) {
String xml = WanDaUtil.GetResourceOutPatInfoServiceXML(deptInfo); String xml = WanDaUtil.GetResourceOutPatInfoServiceXML(deptInfo);
//log.error("获取可预约门诊信息 xml = {}", xml); log.error("获取可预约门诊信息 xml = {}", xml);
String body = HttpRequest.post(URL) String body = HttpRequest.post(URL)
.body(xml) .body(xml)
.execute() .execute()
...@@ -456,7 +468,7 @@ public class WanDaHttpUtil { ...@@ -456,7 +468,7 @@ public class WanDaHttpUtil {
log.error("查询门诊信息失败"); log.error("查询门诊信息失败");
return null; return null;
} }
//log.info("查询门诊信息:body = {}", body); log.error("查询门诊信息:body = {}", body);
String returnXml = getReturn(body, "GetResourceOutPatInfoService"); String returnXml = getReturn(body, "GetResourceOutPatInfoService");
return serialOutPatInfo(returnXml); return serialOutPatInfo(returnXml);
} }
...@@ -487,7 +499,11 @@ public class WanDaHttpUtil { ...@@ -487,7 +499,11 @@ public class WanDaHttpUtil {
List<DoctInfo> list = new ArrayList<>(); List<DoctInfo> list = new ArrayList<>();
if (null != nodeList && nodeList.getLength() > 0) { if (null != nodeList && nodeList.getLength() > 0) {
for (int i = 0; i < nodeList.getLength(); i++) { for (int i = 0; i < nodeList.getLength(); i++) {
list.add(XmlUtil.xmlToBean(nodeList.item(i), DoctInfo.class)); try {
list.add(XmlUtil.xmlToBean(nodeList.item(i), DoctInfo.class));
}catch (Exception e){
// ignore exception
}
} }
} }
return list; return list;
...@@ -505,7 +521,11 @@ public class WanDaHttpUtil { ...@@ -505,7 +521,11 @@ public class WanDaHttpUtil {
List<OutPatInfo> list = new ArrayList<>(); List<OutPatInfo> list = new ArrayList<>();
if (null != nodeList && nodeList.getLength() > 0) { if (null != nodeList && nodeList.getLength() > 0) {
for (int i = 0; i < nodeList.getLength(); i++) { for (int i = 0; i < nodeList.getLength(); i++) {
list.add(XmlUtil.xmlToBean(nodeList.item(i), OutPatInfo.class)); try {
list.add(XmlUtil.xmlToBean(nodeList.item(i), OutPatInfo.class));
}catch (Exception e){
// ignore exception
}
} }
} }
return list; return list;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment