diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/HyThemeApplication.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/HyThemeApplication.java index ec88bab7935932a8863cbce8709a26764051bacd..da17bf0b71e72d3054e29ae149774d5b79f7ea1b 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/HyThemeApplication.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/HyThemeApplication.java @@ -6,12 +6,14 @@ import cn.sh.stc.sict.cloud.common.swagger.annotation.EnableSictSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.client.SpringCloudApplication; +import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.transaction.annotation.EnableTransactionManagement; /** * @author F_xh */ +@EnableAsync @EnableCaching @EnableScheduling @EnableSictSwagger2 diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/controller/mobile/HpgpDiagnosticExperienceController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/controller/mobile/HpgpDiagnosticExperienceController.java index e7ce66de9e9fe6e0e98ed43d98a18734b2691062..30f90484d77a0bb3dd8bf50c96c69aa7cc9ed837 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/controller/mobile/HpgpDiagnosticExperienceController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/controller/mobile/HpgpDiagnosticExperienceController.java @@ -32,13 +32,13 @@ public class HpgpDiagnosticExperienceController extends ApiController { * 分页查询 * * @param page 分页对象 - * @param hpgpDiagnosticExperience 黄浦全科导诊——诊断经验云词 + * @param experience 黄浦全科导诊——诊断经验云词 * @return */ @ApiOperation("分页查询") @GetMapping("/page") - public R getHpgpDiagnosticExperiencePage(Page page, HpgpDiagnosticExperience hpgpDiagnosticExperience) { - page = hpgpDiagnosticExperienceService.page(page, Wrappers.query(hpgpDiagnosticExperience)); + public R getHpgpDiagnosticExperiencePage(Page page, HpgpDiagnosticExperience experience) { + page = hpgpDiagnosticExperienceService.page(page, Wrappers.query(experience)); return new R<>(page); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDepartmentRank.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDepartmentRank.java index 73f075570ba9f528ab413589ab10a23287786295..61a7f292ae0ade3790dd72dadc55cb3892e0c86b 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDepartmentRank.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDepartmentRank.java @@ -16,6 +16,7 @@ import java.io.Serializable; @Data @EqualsAndHashCode(callSuper = true) public class HpgpDepartmentRank extends Model { + private Integer id; //标准科室 @ApiModelProperty(hidden = false, value = "标准科室") private String standardDept; @@ -25,6 +26,9 @@ public class HpgpDepartmentRank extends Model { //医院名称 @ApiModelProperty(hidden = false, value = "医院名称") private String hospitalName; + + @ApiModelProperty(hidden = false, value = "一级科室代码") + private String oneDeptCode; //科室代码 @ApiModelProperty(hidden = false, value = "科室代码") private String deptCode; @@ -35,5 +39,19 @@ public class HpgpDepartmentRank extends Model { @ApiModelProperty(hidden = false, value = "科室排名") private Integer rankScore; - private String tag; + private String resourceOutPatInfo; + + private String resourceDoctInfo; + + + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.id; + } } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDiagnosticExperience.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDiagnosticExperience.java index a55b2a82f36bc1176a31c03ceb92e52f969f69e1..1003515241368a2a4b81b9ba65866ac76a6f5cf4 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDiagnosticExperience.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpDiagnosticExperience.java @@ -22,6 +22,9 @@ public class HpgpDiagnosticExperience extends Model { //医院名称 @ApiModelProperty(hidden = false, value = "医院名称") private String hospitalName; + + @ApiModelProperty(hidden = false, value = "一级科室代码") + private String oneDeptCode; //科室代码 @ApiModelProperty(hidden = false, value = "科室代码") private String deptCode; diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpInspectionCheck.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpInspectionCheck.java index 7211486abdd507694045970fb2241d49924a8221..f4c47c29ec5412752c5b57201ad4fe9f016dcdf9 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpInspectionCheck.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpInspectionCheck.java @@ -22,6 +22,9 @@ public class HpgpInspectionCheck extends Model { //医院名称 @ApiModelProperty(hidden = false, value = "医院名称") private String hospitalName; + + @ApiModelProperty(hidden = false, value = "一级科室代码") + private String oneDeptCode; //科室代码 @ApiModelProperty(hidden = false, value = "科室代码") private String deptCode; diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpLabExperience.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpLabExperience.java index 4376e86042b139bb02dee5d48845bff7bb73aea1..2f3818109f9abd1a8cb282ae2b310ce79edccb47 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpLabExperience.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/model/HpgpLabExperience.java @@ -19,6 +19,7 @@ public class HpgpLabExperience extends Model { private Integer id; private String hospCode; private String hospName; + private String oneDeptCode; private String deptCode; private String deptName; private String itemName; diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/HpgpDepartmentRankService.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/HpgpDepartmentRankService.java index 05b51a8547a59b1557554e7da6c615d41dff302a..a886294834dc72e8c182442e940024029fb39a37 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/HpgpDepartmentRankService.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/HpgpDepartmentRankService.java @@ -11,4 +11,5 @@ import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; */ public interface HpgpDepartmentRankService extends IService { + void updateResource(); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/impl/HpgpDepartmentRankServiceImpl.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/impl/HpgpDepartmentRankServiceImpl.java index 1b20e69c87807117b213358753042b78a4e9aa83..22217a0e5617d72cc33b5e167be5d2ddb740be56 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/impl/HpgpDepartmentRankServiceImpl.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hpgp/service/impl/HpgpDepartmentRankServiceImpl.java @@ -1,18 +1,55 @@ package cn.sh.stc.sict.theme.hpgp.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.json.JSONUtil; +import cn.sh.stc.sict.theme.hphy.wd.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.sh.stc.sict.theme.hpgp.dao.HpgpDepartmentRankMapper; import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import java.util.List; + /** * 黄浦全科导诊——科室排名(HpgpDepartmentRank)表服务实现类 * * @author zhangly * @since 2022-01-14 09:56:47 */ +@Slf4j @Service("hpgpDepartmentRankService") public class HpgpDepartmentRankServiceImpl extends ServiceImpl implements HpgpDepartmentRankService { + @Override + public void updateResource() { + List deptList = this.list(); + deptList.forEach(dept -> { + if (dept.getOneDeptCode().equals(dept.getDeptCode())) { + return; + } + this.asyncUpdateRank(dept); + }); + } + + @Async + void asyncUpdateRank(HpgpDepartmentRank dept) { + DeptInfo deptInfo = new DeptInfo(); + deptInfo.setHosOrgCode(dept.getHospitalCode()); + deptInfo.setOneDeptCode(dept.getOneDeptCode()); + deptInfo.setDeptCode(dept.getDeptCode()); + List resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); + List resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(deptInfo); + if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) { + return; + } + HpgpDepartmentRank update = new HpgpDepartmentRank(); + update.setId(dept.getId()); + update.setResourceDoctInfo(JSONUtil.toJsonStr(resourceDoctInfo)); + update.setResourceOutPatInfo(JSONUtil.toJsonStr(resourceOutPatInfo)); + this.updateById(update); + } + } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HpDeptInfoController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HpDeptInfoController.java index ee3f9e97f4458a070a403da4faa0a94a7d884de2..4f6d31c5339bf5d05442c36440956abffff12f63 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HpDeptInfoController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/HpDeptInfoController.java @@ -1,17 +1,20 @@ package cn.sh.stc.sict.theme.hphy.controller.mp; +import cn.hutool.core.util.StrUtil; import cn.sh.stc.sict.cloud.common.core.util.R; +import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; +import cn.sh.stc.sict.theme.hpgp.service.HpgpDepartmentRankService; +import cn.sh.stc.sict.theme.hphy.model.HpDeptInfo; import cn.sh.stc.sict.theme.hphy.service.HpDeptInfoService; import com.baomidou.mybatisplus.extension.api.ApiController; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * (HpDeptInfo)维护接口 @@ -28,6 +31,7 @@ public class HpDeptInfoController extends ApiController { * 服务对象 */ private final HpDeptInfoService hpDeptInfoService; + private final HpgpDepartmentRankService hpgpDepartmentRankService; @ApiOperation("科室医生查询接口") @GetMapping @@ -35,4 +39,25 @@ public class HpDeptInfoController extends ApiController { @ApiParam("科室代码") @RequestParam("deptCode") String deptCode){ return new R<>(hpDeptInfoService.getDeptDoctors(hospitalCode, deptCode)); } + + + @ApiOperation("更新科室号源信息") + @PostMapping("/wd/resource") + public R updateDeptResource(){ + List deptList = hpDeptInfoService.list(); + deptList.forEach(dept -> { + if (StrUtil.isEmpty(dept.getOneDeptCode())||StrUtil.isEmpty(dept.getDeptCode())) { + return; + } + hpDeptInfoService.asyncUpdate(dept); + }); + return new R(); + } + + @ApiOperation("更新科室排行表号源信息") + @PostMapping("/rank/wd/resource") + public R updateRankDeptResource(){ + hpgpDepartmentRankService.updateResource(); + return new R(); + } } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java index 593ff3ae1ad84e6bcfd038305927129e20738e8b..32137ff90f1fbfbf05179ad37180a2d13755b81b 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/controller/mp/WDController.java @@ -80,6 +80,9 @@ public class WDController { numSourceInfo.setOrderNumType(null); } List list = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); + if(CollUtil.isEmpty(list)){ + return new R(); + } if(WanDaConstant.ORDER_TYPE_OUTP.equals(numSourceInfo.getOrderType())){ List result = list.stream().filter(i -> orderNumType.equals(i.getOrderNumType())).collect(Collectors.toList()); return new R(result); diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/model/HpDeptInfo.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/model/HpDeptInfo.java index 8990e66b3cabe2925f247e0b4a77048f62b8426e..a488e6a359820d03b0bad4958c3f3d86dde5ac23 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/model/HpDeptInfo.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/model/HpDeptInfo.java @@ -43,6 +43,10 @@ public class HpDeptInfo extends Model { @ApiModelProperty(hidden = false, value = "显示次序") private String indexNo; + private String resourceOutPatInfo; + + private String resourceDoctInfo; + /** * 获取主键值 diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/HpDeptInfoService.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/HpDeptInfoService.java index 4cd0a849e1c7d5c8c2c55087f12faf0e5b79cfef..2371ab30dcfe3d675bc9ffa13aa41be1c457a40f 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/HpDeptInfoService.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/HpDeptInfoService.java @@ -19,4 +19,6 @@ public interface HpDeptInfoService extends IService { * @return */ DeptDoctorsVO getDeptDoctors(String hospitalCode, String deptCode); + + void asyncUpdate(HpDeptInfo dept); } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java index 0dfe947354f1cec098795e3a6bcbe0266e689233..f974b018b78df0105770335df46c5ad7d24910e3 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/service/impl/HpDeptInfoServiceImpl.java @@ -1,9 +1,11 @@ package cn.sh.stc.sict.theme.hphy.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONUtil; +import cn.sh.stc.sict.theme.hpgp.model.HpgpDepartmentRank; import cn.sh.stc.sict.theme.hphy.constant.DataConstant; import cn.sh.stc.sict.theme.hphy.dao.HpDeptInfoMapper; import cn.sh.stc.sict.theme.hphy.dao.HpDocInfoMapper; @@ -20,6 +22,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -81,6 +84,25 @@ public class HpDeptInfoServiceImpl extends ServiceImpl resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); + List resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(deptInfo); + if (CollUtil.isEmpty(resourceDoctInfo) && CollUtil.isEmpty(resourceOutPatInfo)) { + return; + } + HpDeptInfo update = new HpDeptInfo(); + update.setId(dept.getId()); + update.setResourceDoctInfo(JSONUtil.toJsonStr(resourceDoctInfo)); + update.setResourceOutPatInfo(JSONUtil.toJsonStr(resourceOutPatInfo)); + this.updateById(update); + } + private List getRemainDoctList(List doctors, List resourceDoctInfo) { Map doctorMap = doctors.stream().collect(Collectors.groupingBy(HpDocInfo::getResourceCode, Collectors.collectingAndThen(Collectors.toList(), x -> x.get(0)))); List remainDoctors = new ArrayList<>(); @@ -97,12 +119,18 @@ public class HpDeptInfoServiceImpl extends ServiceImpl resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(info); // List resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(info); // log.error("OutPatInfo = {}", JSONUtil.toJsonStr(resourceOutPatInfo)); @@ -117,9 +145,8 @@ public class HpDeptInfoServiceImpl extends ServiceImpl orderNumInfo = WanDaHttpUtil.getOrderNumInfo(numSourceInfo); // log.error("========================="); @@ -129,9 +156,9 @@ public class HpDeptInfoServiceImpl extends ServiceImpl oneDeptInfo = WanDaHttpUtil.getDeptInfoTop(hosInfo); +// log.error("oneDeptInfo = {}", JSONUtil.toJsonStr(oneDeptInfo)); +// DeptInfo deptInfo = new DeptInfo(); +// deptInfo.setHosOrgCode(orgCode); +// deptInfo.setOneDeptCode(oneDeptCode); +// List deptInfoTwo = WanDaHttpUtil.getDeptInfoTwo(deptInfo); +// log.error("deptInfoTwo = {}", JSONUtil.toJsonStr(deptInfoTwo)); +// deptInfo.setDeptCode(deptCode); +// List resourceOutPatInfo = WanDaHttpUtil.getResourceOutPatInfo(deptInfo); +// log.error("resourceOutPatInfo = {}", JSONUtil.toJsonStr(resourceOutPatInfo)); +// List resourceDoctInfo = WanDaHttpUtil.getResourceDoctInfo(deptInfo); +// log.error("resourceDoctInfo = {}", JSONUtil.toJsonStr(resourceDoctInfo)); +// } } diff --git a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaHttpUtil.java b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaHttpUtil.java index f9e701f322b348d88b0689c285f9aaf5be219c20..d48911d6a6d153ff4b3b318ae99aefb626c4609c 100644 --- a/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaHttpUtil.java +++ b/smart-health-modules/theme-schema/src/main/java/cn/sh/stc/sict/theme/hphy/wd/WanDaHttpUtil.java @@ -116,7 +116,7 @@ public class WanDaHttpUtil { log.error("获取一级科室信息失败"); return null; } - log.info("获取一级科室信息:body = {}", body); + // log.info("获取一级科室信息:body = {}", body); String returnXml = getReturn(body, "GetDeptInfoTopService"); return serialDeptInfos(returnXml); } @@ -139,7 +139,7 @@ public class WanDaHttpUtil { log.error("获取二级科室信息失败"); return null; } - log.info("获取二级科室信息:body = {}", body); + // log.info("获取二级科室信息:body = {}", body); String returnXml = getReturn(body, "GetDeptInfoTwoService"); return serialDeptInfos(returnXml); } @@ -426,7 +426,7 @@ public class WanDaHttpUtil { log.error("获取可预约医生信息 失败"); return null; } - log.info("获取可预约医生信息:body = {}", body); + // log.info("获取可预约医生信息:body = {}", body); String returnXml = getReturn(body, "GetResourceDoctInfoService"); return serialDoctInfo(returnXml); } @@ -439,7 +439,7 @@ public class WanDaHttpUtil { */ public List getResourceOutPatInfo(DeptInfo deptInfo) { String xml = WanDaUtil.GetResourceOutPatInfoServiceXML(deptInfo); - + // log.error("xml = {}", xml); String body = HttpRequest.post(URL) .body(xml) .execute() diff --git a/smart-health-modules/theme-schema/src/main/resources/mapper/hpgp/HpgpDepartmentRankMapper.xml b/smart-health-modules/theme-schema/src/main/resources/mapper/hpgp/HpgpDepartmentRankMapper.xml index d1fe064a018dc5821d0c4e4639946af893daf6ea..4f1a48f94b81c7c8fbb056fcd812988f3114e3bb 100644 --- a/smart-health-modules/theme-schema/src/main/resources/mapper/hpgp/HpgpDepartmentRankMapper.xml +++ b/smart-health-modules/theme-schema/src/main/resources/mapper/hpgp/HpgpDepartmentRankMapper.xml @@ -23,7 +23,7 @@ d.one_dept_code oneDeptCode, d.dept_code subDeptCode from hpgp_department_rank dr - left join hp_dept_info d on (dr.hospital_code = d.hos_org_code and dr.dept_code = d.dept_code) + join hp_dept_info d on (dr.hospital_code = d.hos_org_code and dr.one_dept_code = d.one_dept_code and dr.dept_code = d.dept_code) where dr.standard_dept = #{deptName} order by dr.rank_score asc limit #{size}