From 60036a5f518e5317608e23703081fc17bf2554ed Mon Sep 17 00:00:00 2001 From: gaozhaochen Date: Wed, 30 Nov 2022 09:49:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20->=20=E7=BA=B3=E9=87=8C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=B3=BB=E7=BB=9F=E5=8C=BB=E9=99=A2=E5=85=AC?= =?UTF-8?q?=E4=BC=97=E5=8F=B7=20=E9=A6=99=E5=B1=B1=E4=B8=AD=E5=8C=BB=20?= =?UTF-8?q?=E4=B8=8A=E6=B5=B7=E5=B8=82=E9=BB=84=E6=B5=A6=E5=8C=BA=E7=B2=BE?= =?UTF-8?q?=E7=A5=9E=E5=8D=AB=E7=94=9F=E4=B8=AD=E5=BF=83=20=E4=B8=8A?= =?UTF-8?q?=E6=B5=B7=E5=B8=82=E9=BB=84=E6=B5=A6=E5=8C=BA=E5=A6=87=E5=B9=BC?= =?UTF-8?q?=E4=BF=9D=E5=81=A5=E6=89=80=20=E4=B8=8A=E6=B5=B7=E5=B8=82?= =?UTF-8?q?=E9=BB=84=E6=B5=A6=E5=8C=BA=E9=A1=BA=E6=98=8C=E5=8C=BB=E9=99=A2?= =?UTF-8?q?=20=E4=B8=8A=E6=B5=B7=E5=B8=82=E9=BB=84=E6=B5=A6=E5=8C=BA?= =?UTF-8?q?=E5=8D=8A=E6=B7=9E=E5=9B=AD=E8=B7=AF=E8=A1=97=E9=81=93=E7=A4=BE?= =?UTF-8?q?=E5=8C=BA=E5=8D=AB=E7=94=9F=E6=9C=8D=E5=8A=A1=E4=B8=AD=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG | 8 ++++++++ .../common/core/constant/SecurityConstants.java | 4 ++++ .../common/core/constant/enums/LoginTypeEnum.java | 9 +++++++-- .../sh/stc/sict/cloud/common/core/util/WoaUtil.java | 6 ------ .../component/SictUserAuthenticationConverter.java | 3 ++- .../sict/cloud/common/security/service/SictUser.java | 8 +++++++- .../security/service/SictUserDetailsServiceImpl.java | 2 +- .../cloud/common/security/util/SecurityUtils.java | 1 + .../cn/sh/stc/sict/cloud/upms/dto/CurrentUser.java | 4 ++++ .../java/cn/sh/stc/sict/cloud/upms/dto/UserInfo.java | 5 +++++ .../upms/service/impl/SysUserBaseServiceImpl.java | 11 +++++++---- .../hphy/controller/mp/HpDeptInfoController.java | 12 +++++++++--- .../controller/mp/HphyPatientBaseController.java | 6 +++--- .../sh/stc/sict/theme/hphy/schedule/RefreshJob.java | 8 ++++++-- 14 files changed, 64 insertions(+), 23 deletions(-) create mode 100644 CHANGELOG diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..1fc476f --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,8 @@ +[V1.2.0] 2022.11.14 +数据库: +1.新增hpgp_ks_hot表 +2.hpgp_department_rank表新增rank_score = 0的全部医院数据 +功能: +1.从公众号进入时,在李处理的一年内历史就诊记录的表中查询“公众号医院”的三个历史科室展示; +2.从“hpgp_ks_hot”表中查询展示“公众号医院”的科室(热门科室由医院提供,目前暂时用门诊量最大的三个科室代替)为了区分全区和公众号,新增了“gzh”字段;全区的“gzh”字段为“ALL”,公众号的“gzh”字段为“公众号医院编码” +3.在科室排名表(hpgp_department_rank_1028)中新增了全部医院/科室信息,其rank_score标为“0”,与全区排名科室做区分;按照standard_dept(=选择/机器人推荐的科室)、hospital_code(=公众号医院)、rank_score(=0)查询科室,选择有号的进行展示(一个医院中有多个同名科室,如果有号的超过3个那也只展示3个) \ No newline at end of file diff --git a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/SecurityConstants.java b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/SecurityConstants.java index ff18d8b..7e20491 100644 --- a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/SecurityConstants.java +++ b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/SecurityConstants.java @@ -140,6 +140,10 @@ public interface SecurityConstants { * 医院代码 */ String HOSPITAL_CODE = "hospitalCode"; + /** + * 香山中医用户信息 + */ + String XSZY_USER_INFO = "xszyUserInfo"; /** * 租户ID 字段 */ diff --git a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/enums/LoginTypeEnum.java b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/enums/LoginTypeEnum.java index 7b32898..2a07903 100644 --- a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/enums/LoginTypeEnum.java +++ b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/constant/enums/LoginTypeEnum.java @@ -28,9 +28,14 @@ public enum LoginTypeEnum { SSB("ssb", "随申办token"), /** - * 公众号香山中医医院 + * 纳里用户系统公众号 + * 香山中医医院公众号 + * 上海市黄浦区精神卫生中心 + * 上海市黄浦区妇幼保健所 + * 上海市黄浦区顺昌医院 + * 上海市黄浦区半淞园路街道社区卫生服务中心 */ - WOA_XSZY("woa_xszy", "香山中医医院公众号"), + WOA_NL("woa_nl", "纳里用户系统公众号登录"), /** * H5登录 diff --git a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/util/WoaUtil.java b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/util/WoaUtil.java index 71432e2..5a6e808 100644 --- a/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/util/WoaUtil.java +++ b/cloud-common/cloud-common-core/src/main/java/cn/sh/stc/sict/cloud/common/core/util/WoaUtil.java @@ -54,10 +54,6 @@ public class WoaUtil { * 响应头请求唯一ID */ private final static String RESPONSE_HEADER_REQUEST_ID = "X-Ca-RequestId"; - /** - * 香山中医医院编码 - */ - private final static String XSZY_HOSPITAL_CODE = "42502905200"; /** * 获取用户信息 @@ -78,8 +74,6 @@ public class WoaUtil { if (response.isSuccess()) { JSONResponseBean result = response.getJsonResponseBean(); XSZYUserInfo xszyUserInfo = Convert.convert(XSZYUserInfo.class, result.getBody()); - // 设置医院编码 - xszyUserInfo.setHospitalCode(XSZY_HOSPITAL_CODE); return xszyUserInfo; } else { log.error("香山中医医院公众号token获取用户信息异常-1,requestId = [{}],caError = [{}],error = [{}]", response.getHeader(RESPONSE_HEADER_REQUEST_ID), response.getCaErrorMsg(), response.getErrorMessage()); diff --git a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/component/SictUserAuthenticationConverter.java b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/component/SictUserAuthenticationConverter.java index c773919..592a0b4 100644 --- a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/component/SictUserAuthenticationConverter.java +++ b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/component/SictUserAuthenticationConverter.java @@ -54,8 +54,9 @@ public class SictUserAuthenticationConverter implements UserAuthenticationConver String openid = (String) map.get(SecurityConstants.DETAILS_OPENID); String appid = (String) map.get(SecurityConstants.DETAILS_APPID); String hospitalCode = (String) map.get(SecurityConstants.HOSPITAL_CODE); + String xszyUserInfo = (String) map.get(SecurityConstants.XSZY_USER_INFO); SictUser user = new SictUser(id, "", openid, appid, hospitalCode, username, N_A, true - , true, true, true, authorities); + , true, true, true, authorities, xszyUserInfo); return new UsernamePasswordAuthenticationToken(user, N_A, authorities); } return null; diff --git a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUser.java b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUser.java index e0f1dd0..b3356e1 100644 --- a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUser.java +++ b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUser.java @@ -42,6 +42,10 @@ public class SictUser extends User { @Setter private String hospitalCode; + @Getter + @Setter + private String xszyUserInfo; + @Getter @Setter private transient String token; @@ -77,12 +81,14 @@ public class SictUser extends User { boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, - Collection authorities) { + Collection authorities, + String xszyUserInfo) { super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities); this.id = id; this.phone = phone; this.openId = openId; this.appId = appId; this.hospitalCode = hospitalCode; + this.xszyUserInfo = xszyUserInfo; } } diff --git a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUserDetailsServiceImpl.java b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUserDetailsServiceImpl.java index 1bf5b4c..def5613 100644 --- a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUserDetailsServiceImpl.java +++ b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/service/SictUserDetailsServiceImpl.java @@ -134,7 +134,7 @@ public class SictUserDetailsServiceImpl implements SictUserDetailsService { // 登录失败5次锁定半小时 boolean nonLockd = !Constant.BYTE_YES.equals(user.getStatus()); return new SictUser(user.getId(), user.getPhone(), info.getOpenId(), info.getAppId(), info.getHospitalCode(), userName, password, enabled, - true, true, nonLockd, authorities); + true, true, nonLockd, authorities, info.getXszyUserInfo()); } diff --git a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/util/SecurityUtils.java b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/util/SecurityUtils.java index fcc3f5c..a8d7c86 100644 --- a/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/util/SecurityUtils.java +++ b/cloud-common/cloud-common-security/src/main/java/cn/sh/stc/sict/cloud/common/security/util/SecurityUtils.java @@ -180,6 +180,7 @@ public class SecurityUtils { current.setAppId(user.getAppId()); current.setPhone(user.getPhone()); current.setHospitalCode(user.getHospitalCode()); + current.setXszyUserInfo(user.getXszyUserInfo()); } current.setToken(token); return current; diff --git a/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/CurrentUser.java b/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/CurrentUser.java index 27ccefc..16ff745 100644 --- a/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/CurrentUser.java +++ b/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/CurrentUser.java @@ -30,5 +30,9 @@ public class CurrentUser implements Serializable { * sict_admin */ private String adminStr; + /** + * 香山中医公众号用户信息 + */ + private String xszyUserInfo; } diff --git a/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/UserInfo.java b/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/UserInfo.java index 64834bc..73728e2 100644 --- a/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/UserInfo.java +++ b/smart-health-modules/cloud-upms/cloud-upms-api/src/main/java/cn/sh/stc/sict/cloud/upms/dto/UserInfo.java @@ -19,6 +19,11 @@ public class UserInfo { */ private String hospitalCode; + /** + * 香山中医公众号用户信息 + */ + private String xszyUserInfo; + /** * 用户基本信息 */ diff --git a/smart-health-modules/cloud-upms/cloud-upms-biz/src/main/java/cn/sh/stc/sict/cloud/upms/service/impl/SysUserBaseServiceImpl.java b/smart-health-modules/cloud-upms/cloud-upms-biz/src/main/java/cn/sh/stc/sict/cloud/upms/service/impl/SysUserBaseServiceImpl.java index ca00fe8..e7c8ddf 100644 --- a/smart-health-modules/cloud-upms/cloud-upms-biz/src/main/java/cn/sh/stc/sict/cloud/upms/service/impl/SysUserBaseServiceImpl.java +++ b/smart-health-modules/cloud-upms/cloud-upms-biz/src/main/java/cn/sh/stc/sict/cloud/upms/service/impl/SysUserBaseServiceImpl.java @@ -90,7 +90,7 @@ public class SysUserBaseServiceImpl extends ServiceImpl wrapper = Wrappers.lambdaQuery(); - wrapper.eq(StrUtil.isNotEmpty(hospCode), HpgpDepartmentRank::getHospitalCode, hospCode) + QueryWrapper wrapper = Wrappers.emptyWrapper(); + LambdaQueryWrapper queryWrapper = wrapper.select("DISTINCT standard_dept,hospital_code,hospital_name,one_dept_code,dept_code,dept_name").lambda(); + queryWrapper.eq(StrUtil.isNotEmpty(hospCode), HpgpDepartmentRank::getHospitalCode, hospCode) .eq(StrUtil.isNotEmpty(oneDeptCode), HpgpDepartmentRank::getOneDeptCode, oneDeptCode) .eq(StrUtil.isNotEmpty(deptCode), HpgpDepartmentRank::getDeptCode, deptCode); - List deptList = hpgpDepartmentRankService.list(wrapper); + + List deptList = hpgpDepartmentRankService.list(queryWrapper); + log.error("医院科室查询结果deptList = {}", deptList); deptList.forEach(dept -> { if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) { return; diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HphyPatientBaseController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HphyPatientBaseController.java index e8ca6ae..bc2dbad 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HphyPatientBaseController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HphyPatientBaseController.java @@ -161,9 +161,9 @@ public class HphyPatientBaseController { base = hphyPatientBaseService.saveSSbInfo(current, userInfo, cardList); hpPatientCardService.save(base, cardList); } - // 香山中医医院公众号 - if (LoginTypeEnum.WOA_XSZY.getType().equals(source)) { - XSZYUserInfo xszyUserInfo = WoaUtil.getXszyUserInfo(token); + // 纳里用户系统公众号 + if (LoginTypeEnum.WOA_NL.getType().equals(source)) { + XSZYUserInfo xszyUserInfo = JSONUtil.toBean(current.getXszyUserInfo(), XSZYUserInfo.class); log.error("woaXszyUser = {}", xszyUserInfo); base = hphyPatientBaseService.saveWoaXszyInfo(current, xszyUserInfo); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/schedule/RefreshJob.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/schedule/RefreshJob.java index 7ca4c31..0132f3c 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/schedule/RefreshJob.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/schedule/RefreshJob.java @@ -19,6 +19,8 @@ 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.WanDaHttpUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import ma.glasnost.orika.MapperFactory; @@ -113,9 +115,11 @@ public class RefreshJob { * 每天中午12点,晚上12点,统计号源信息 */ // @Scheduled(cron = "0 50 12 * * ? ") - @Scheduled(cron = "0 0 0,12 * * ? ") + @Scheduled(cron = "0 37 9 * * ? ") public void statisticRankDeptResourceInfo() { - List deptList = hpgpDepartmentRankService.list(); + QueryWrapper wrapper = Wrappers.emptyWrapper(); + LambdaQueryWrapper lambda = wrapper.select("DISTINCT standard_dept,hospital_code,hospital_name,one_dept_code,dept_code,dept_name").lambda(); + List deptList = hpgpDepartmentRankService.list(lambda); deptList.forEach(dept -> { if (StrUtil.isEmpty(dept.getOneDeptCode()) || StrUtil.isEmpty(dept.getDeptCode())) { return; -- 2.22.0