From 688abc5703d7e996d2d7cce04af79f913da95274 Mon Sep 17 00:00:00 2001 From: lianlonggang Date: Wed, 24 Sep 2025 17:40:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=81=A5=E5=BA=B7=E5=92=A8=E8=AF=A2=E5=A4=A7?= =?UTF-8?q?=E5=B1=8F=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../consultation/api/RequestPrefix.java | 2 + .../controller/ConScreenApiController.java | 109 ++++++++++++++++++ .../consultation/mapper/ConDoctorMapper.java | 82 +++++++++++++ .../service/IConDoctorService.java | 9 ++ .../service/impl/ConDoctorServiceImpl.java | 20 ++++ 5 files changed, 222 insertions(+) create mode 100644 health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConScreenApiController.java diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/RequestPrefix.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/RequestPrefix.java index def3dfc..53c0993 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/RequestPrefix.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/RequestPrefix.java @@ -58,5 +58,7 @@ public interface RequestPrefix { String sessionReservationDate = BASE + "/sessionReservationDate"; + String screen = BASE + "/screen"; + } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConScreenApiController.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConScreenApiController.java new file mode 100644 index 0000000..ae3ec60 --- /dev/null +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/api/controller/ConScreenApiController.java @@ -0,0 +1,109 @@ +package com.renkang.consultation.api.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.renkang.consultation.api.RequestPrefix; +import com.renkang.consultation.api.service.ConHelperApiService; +import com.renkang.consultation.dto.ConDoctorDTO; +import com.renkang.consultation.entity.ConDoctor; +import com.renkang.consultation.entity.ConSession; +import com.renkang.consultation.service.IConDoctorService; +import com.renkang.consultation.service.IConSessionService; +import com.renkang.consultation.vo.ConDoctorVO; +import com.renkang.consultation.vo.ConHelperCustomUserVO; +import com.renkang.emergency.entity.EmergencyCenterResource; +import io.swagger.v3.oas.annotations.Operation; +import org.apache.commons.collections4.CollectionUtils; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.constant.CommonConstant; +import org.jeecg.modules.manager.SysCacheImpl; +import org.jeecg.modules.system.entity.SysDepart; +import org.springframework.beans.factory.annotation.Autowired; +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 java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping(RequestPrefix.screen) +public class ConScreenApiController { + + + @Autowired + private IConDoctorService conDoctorService; + @Autowired + private IConSessionService conSessionService; + @Autowired + private SysCacheImpl sysCache; + + @Operation(summary = "查询统计数", description = "查询统计数") + @GetMapping("/queryStaticCount") + public Result queryStaticCount() { + Map map = new HashMap<>(); + + //入驻医生数 + LambdaQueryWrapper dockerWrapper = new LambdaQueryWrapper<>(); + dockerWrapper.eq(ConDoctor::getDoctorStatus, "1");//只查有效的 + Long docCount = conDoctorService.count(dockerWrapper); + map.put("docCount",docCount); + //累计咨询 + Long consultCount = conSessionService.count(); + map.put("consultCount",consultCount); + //累计咨询人数 + LambdaQueryWrapper sessionWrapper = new LambdaQueryWrapper<>(); + sessionWrapper.in(ConSession::getSessionType, "1", "2"); + sessionWrapper.groupBy(ConSession::getFromAccount); + sessionWrapper.select(ConSession::getFromAccount); + List fromAccountList = conSessionService.list(sessionWrapper); + map.put("consultPersonCount", (long) fromAccountList.size()); + return Result.OK(map); + } + + @Operation(summary = "分页查询入驻专家", description = "分页查询入驻专家") + @GetMapping("/queryPageList") + public Result> queryPageList(ConDoctorDTO dto) { + Page page = new Page<>(dto.getPageNo(), dto.getPageSize()); + dto.setDoctorTitle("2");//主任医师 + dto.setDoctorStatus("1");//有效 + IPage pageList = conDoctorService.queryPageList(page, dto); + return Result.OK(pageList); + } + + @Operation(summary = "医院专家数量统计", description = "医院专家数量统计") + @GetMapping("/queryDocCountStat") + public Result queryDocCountStat() { + List> mapList = conDoctorService.getDocCountStatList(); + return Result.OK(mapList); + } + @Operation(summary = "单位咨询数量统计", description = "单位咨询数量统计") + @GetMapping("/queryDeptCountStat") + public Result queryDeptCountStat() { + List> mapList = conDoctorService.getDeptCountStatList(); + if(!CollectionUtils.isEmpty(mapList)){ + for (Map map : mapList) { + SysDepart depart = sysCache.getDepartByOrgCode(map.get("orgCode").toString()); + if(depart != null){ + map.put("departName", depart.getDepartName()); + } + } + } + return Result.OK(mapList); + } + @Operation(summary = "科室咨询数量统计", description = "科室咨询数量统计") + @GetMapping("/queryDepartmentCountStat") + public Result queryDepartmentCountStat() { + List> mapList = conDoctorService.getDepartmentCountStatList(); + return Result.OK(mapList); + } + @Operation(summary = "医院咨询数量统计", description = "医院咨询数量统计") + @GetMapping("/queryHospitalCountStat") + public Result queryHospitalCountStat() { + List> mapList = conDoctorService.getHospitalCountStatList(); + return Result.OK(mapList); + } +} diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java index 5c2a123..8f5aec2 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/mapper/ConDoctorMapper.java @@ -214,4 +214,86 @@ public interface ConDoctorMapper extends BaseMapper , MPJBaseMapper> getDocCountStatList(); + + @Select("SELECT\n" + + " * \n" + + "FROM\n" + + " (\n" + + " SELECT\n" + + " LEFT(org_code, 6) orgCode,\n" + + " count(c.id) consultCount \n" + + " FROM\n" + + " con_session c \n" + + " WHERE\n" + + " c.del_flag = 0 \n" + + " AND c.STATUS = '1' \n" + + " AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" + + " AND c.session_type IN ('1', '2') \n" + + " AND length(c.org_code) >= 6 \n" + + " GROUP BY\n" + + " LEFT(org_code, 6)) a \n" + + "ORDER BY\n" + + " consultCount DESC") + List> getDeptCountStatList(); + + @Select("SELECT\n" + + " * \n" + + "FROM\n" + + " (\n" + + " SELECT\n" + + " cre.department_name departmentName,\n" + + " count(cre.id) consultCount \n" + + " FROM\n" + + " con_session c\n" + + " LEFT JOIN con_doctor d ON c.to_account = d.id\n" + + " LEFT JOIN con_department cre ON d.department_id = cre.id \n" + + " WHERE\n" + + " c.del_flag = 0 \n" + + " AND c.STATUS = '1' \n" + + " AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" + + " AND c.session_type = '1' \n" + + " AND cre.id IS NOT NULL \n" + + " GROUP BY\n" + + " cre.id) a \n" + + "ORDER BY\n" + + " consultCount DESC") + List> getDepartmentCountStatList(); + + @Select("SELECT\n" + + " * \n" + + "FROM\n" + + " (\n" + + " SELECT\n" + + " cre.resource_name hospitalName,\n" + + " count(cre.id) consultCount \n" + + " FROM\n" + + " con_session c\n" + + " LEFT JOIN con_doctor d ON c.to_account = d.id\n" + + " LEFT JOIN con_resource cre ON d.resource_id = cre.id \n" + + " WHERE\n" + + " c.del_flag = 0 \n" + + " AND c.STATUS = '1' \n" + + " AND (c.tf_reply = 1 OR c.user_tf_reply = 1) \n" + + " AND c.session_type = '1' \n" + + " AND cre.id IS NOT NULL \n" + + " GROUP BY\n" + + " cre.id) a \n" + + "ORDER BY\n" + + " consultCount DESC") + List> getHospitalCountStatList(); } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/IConDoctorService.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/IConDoctorService.java index 674fa5d..2bd869a 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/IConDoctorService.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/IConDoctorService.java @@ -16,6 +16,7 @@ import org.springframework.web.multipart.MultipartFile; import java.math.BigDecimal; import java.util.List; +import java.util.Map; /** * @Description: con_doctor @@ -154,4 +155,12 @@ public interface IConDoctorService extends IService { void updateDoctorByLog(ConDoctorChangeLog changeLog); void recommendDoctor(String id, Integer type); + + List> getDocCountStatList(); + + List> getDeptCountStatList(); + + List> getDepartmentCountStatList(); + + List> getHospitalCountStatList(); } diff --git a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/impl/ConDoctorServiceImpl.java b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/impl/ConDoctorServiceImpl.java index 7e87ce2..2b3e9f2 100644 --- a/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/impl/ConDoctorServiceImpl.java +++ b/health-consultation/health-consultation-biz/src/main/java/com/renkang/consultation/service/impl/ConDoctorServiceImpl.java @@ -1089,4 +1089,24 @@ public class ConDoctorServiceImpl extends ServiceImpl> getDocCountStatList() { + return conDoctorMapper.getDocCountStatList(); + } + + @Override + public List> getDeptCountStatList() { + return conDoctorMapper.getDeptCountStatList(); + } + + @Override + public List> getDepartmentCountStatList() { + return conDoctorMapper.getDepartmentCountStatList(); + } + + @Override + public List> getHospitalCountStatList() { + return conDoctorMapper.getHospitalCountStatList(); + } }