From d6f7fbff14d05cdc668fee5bdc1e55bbba46e99d Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 15 Aug 2024 10:06:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=AB=AF=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../homepage/SystemHomePageController.java | 15 ++++++- .../mapper/patientinfo/PatientInfoMapper.java | 23 +++++++++-- .../SignPatientManageRouteNodeMapper.java | 20 +++++++++ .../SignPatientRecordMapper.java | 7 ++++ .../homepage/SystemHomePageService.java | 21 +++++++++- .../impl/SystemHomePageServiceImpl.java | 41 ++++++++++++++++++- .../manage/vo/homepage/PatientAndNode.java | 6 +++ .../vo/homepage/ServiceModeStatistics.java | 6 +++ .../manage/vo/homepage/SignPatientCount.java | 6 +++ .../manage/vo/homepage/TaskSituation.java | 6 +++ .../manage/vo/homepage/TopStatisticsVO.java | 6 +++ 11 files changed, 150 insertions(+), 7 deletions(-) diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/homepage/SystemHomePageController.java b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/homepage/SystemHomePageController.java index 034c3efe..62e70f5b 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/controller/homepage/SystemHomePageController.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/controller/homepage/SystemHomePageController.java @@ -22,24 +22,35 @@ public class SystemHomePageController extends BaseController { @Resource private SystemHomePageService systemHomePageService; - + /** + * 顶部统计 + */ @GetMapping("topStatistics") public AjaxResult topStatistics() { return AjaxResult.success(systemHomePageService.topStatistics()); } + /** + * 患者签约情况 + */ @GetMapping("signPatientCount") public AjaxResult signPatientCount() { return AjaxResult.success(systemHomePageService.signPatientCount()); } + /** + * 服务方式 + */ @GetMapping("serviceModeStatistics") public AjaxResult serviceModeStatistics() { return AjaxResult.success(systemHomePageService.serviceModeStatistics()); } + /** + * 代办任务 + */ @GetMapping("taskSituation") - public AjaxResult taskSituation(){ + public AjaxResult taskSituation() { return AjaxResult.success(systemHomePageService.taskSituation()); } } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java index 7857678b..3dcb0fc5 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/patientinfo/PatientInfoMapper.java @@ -117,9 +117,26 @@ public interface PatientInfoMapper { */ int getPatientInfoCountByCreateTime(@Param("firstDay") LocalDate firstDay, @Param("now") LocalDate now); - int selectPatientInfoCountBySignTime(@Param("firstDay") LocalDate firstDay, @Param("now") LocalDate now); + /** + * 根据签约时间查询患者数量 + * + * @param firstDay 本月第一天 + * @param now 当前时间 + * @return int + */ + int selectPatientInfoCountBySignTime(@Param("firstDay") LocalDate firstDay, @Param("now") LocalDate now); - int selectPatientSignTotalCount(); + /** + * 已签约总数 + * + * @return int + */ + int selectPatientSignTotalCount(); - int selectPatientSignServiceCount(); + /** + * 服务中患者总数 + * + * @return int + */ + int selectPatientSignServiceCount(); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java index b57980ac..339a8bd7 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.java @@ -153,9 +153,29 @@ public interface SignPatientManageRouteNodeMapper { */ int updateNodeExecuteStatusByIds(@Param("manageRouteNodeIds") List manageRouteNodeIds, @Param("nodeExecuteStatus") String nodeExecuteStatus, @Param("appletStatus") String appletStatus, @Param("messageStatus") String messageStatus, @Param("officialStatus") String officialStatus); + /** + * 根据创建时间查询任务数量 + * + * @param firstDay 本月第一天 + * @param now 当前时间 + * @return int + */ int selectNodeCountByCreateTime(@Param("firstDay") LocalDate firstDay, @Param("now") LocalDate now); + /** + * 推送方式 + * + * @param phoneDialMethod 人工或ai + * @param messagePushSign 短信标识 + * @param appletPushSign 微信标识 + * @return BigDecimal + */ BigDecimal selectNodeCount(@Param("phoneDialMethod") String phoneDialMethod, @Param("messagePushSign") Long messagePushSign, @Param("appletPushSign") Long appletPushSign); + /** + * 节点信息 + * + * @return PatientAndNode + */ List selectNodeExecuteStatus(); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientrecord/SignPatientRecordMapper.java b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientrecord/SignPatientRecordMapper.java index 214093ac..f8e0d858 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientrecord/SignPatientRecordMapper.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/mapper/signpatientrecord/SignPatientRecordMapper.java @@ -45,5 +45,12 @@ public interface SignPatientRecordMapper { */ IntentionalSignVo getIntentionalSign(Long id); + /** + * 未审核 + * + * @param routeCheckStatus 审核状态 + * @param serviceStatus 患者庄国泰 + * @return int + */ int selectCheckStatus(@Param("routeCheckStatus") String routeCheckStatus, @Param("serviceStatus") String serviceStatus); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/SystemHomePageService.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/SystemHomePageService.java index 7771f0e1..2172e205 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/SystemHomePageService.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/SystemHomePageService.java @@ -1,6 +1,5 @@ package com.xinelu.manage.service.homepage; -import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.manage.vo.homepage.ServiceModeStatistics; import com.xinelu.manage.vo.homepage.SignPatientCount; import com.xinelu.manage.vo.homepage.TaskSituation; @@ -16,11 +15,31 @@ import java.util.List; */ public interface SystemHomePageService { + /** + * 顶部统计 + * + * @return TopStatisticsVO + */ TopStatisticsVO topStatistics(); + /** + * 患者签约情况 + * + * @return SignPatientCount + */ List signPatientCount(); + /** + * 服务方式 + * + * @return ServiceModeStatistics + */ List serviceModeStatistics(); + /** + * 代办任务 + * + * @return TaskSituation + */ List taskSituation(); } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java index d14309fd..32df6799 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/homepage/impl/SystemHomePageServiceImpl.java @@ -37,23 +37,42 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { @Resource private SignPatientRecordMapper signPatientRecordMapper; + /** + * 顶部统计 + * + * @return TopStatisticsVO + */ @Override public TopStatisticsVO topStatistics() { LocalDate now = LocalDate.now(); TopStatisticsVO topStatisticsVO = new TopStatisticsVO(); + //本月第一天 LocalDate firstDay = now.with(TemporalAdjusters.firstDayOfMonth()); + //本月患者数量 int createPatientCount = patientInfoMapper.getPatientInfoCountByCreateTime(firstDay, now); + //本月预住院数量 int patientPreHospitalizationCount = patientPreHospitalizationMapper.getPatientPreHospitalizationCountByCreateTime(firstDay, now); + //本月患者数 topStatisticsVO.setThisMonthPatient(createPatientCount + patientPreHospitalizationCount); + //本月签约数 topStatisticsVO.setSignPatientCount(patientInfoMapper.selectPatientInfoCountBySignTime(firstDay, now)); + //本月任务数 topStatisticsVO.setNodeCount(signPatientManageRouteNodeMapper.selectNodeCountByCreateTime(firstDay, now)); + //已签约总数 topStatisticsVO.setPatientSignCount(patientInfoMapper.selectPatientSignTotalCount()); + //服务中患者数 topStatisticsVO.setPatientSignServiceCount(patientInfoMapper.selectPatientSignServiceCount()); return topStatisticsVO; } + /** + * 患者签约情况 + * + * @return SignPatientCount + */ @Override public List signPatientCount() { + //时间集合 List localDates = new ArrayList<>(); List signPatientCounts = new ArrayList<>(); LocalDate now = LocalDate.now(); @@ -61,10 +80,12 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { LocalDate localDate = now.minusMonths(i); localDates.add(localDate); } + //数据 for (LocalDate localDate : localDates) { SignPatientCount signPatientCount = new SignPatientCount(); LocalDate firstDay = localDate.with(TemporalAdjusters.firstDayOfMonth()); LocalDate lastDay = localDate.with(TemporalAdjusters.lastDayOfMonth()); + //患者数量 int createPatientCount = patientInfoMapper.getPatientInfoCountByCreateTime(firstDay, lastDay); int i = patientInfoMapper.selectPatientInfoCountBySignTime(firstDay, lastDay); signPatientCount.setTime(localDate); @@ -75,13 +96,23 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { return signPatientCounts; } + /** + * 服务方式 + * + * @return ServiceModeStatistics + */ @Override public List serviceModeStatistics() { ArrayList serviceModeStatisticsList = new ArrayList<>(); + //人工随访 BigDecimal common = signPatientManageRouteNodeMapper.selectNodeCount(PhoneDialMethodEnum.COMMON.getInfo(), null, null); + //ai BigDecimal AI = signPatientManageRouteNodeMapper.selectNodeCount(PhoneDialMethodEnum.AI.getInfo(), null, null); + //短信 BigDecimal messagePushSign = signPatientManageRouteNodeMapper.selectNodeCount(null, 0L, null); + //微信 BigDecimal appletPushSign = signPatientManageRouteNodeMapper.selectNodeCount(null, null, 0L); + //全部 BigDecimal all = common.add(AI).add(messagePushSign).add(appletPushSign); serviceModeStatisticsList.add(new ServiceModeStatistics("AI", AI.divide(all, 2, RoundingMode.HALF_UP), AI)); serviceModeStatisticsList.add(new ServiceModeStatistics("短信", messagePushSign.divide(all, 2, RoundingMode.HALF_UP), messagePushSign)); @@ -90,6 +121,11 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { return serviceModeStatisticsList; } + /** + * 代办任务 + * + * @return TaskSituation + */ @Override public List taskSituation() { LocalDate now = LocalDate.now(); @@ -100,10 +136,12 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { int signTimeCount = signPatientRecordMapper.selectCheckStatus(null, "SERVICE_CENTER"); //任务 List patientAndNodes = signPatientManageRouteNodeMapper.selectNodeExecuteStatus(); + //未审核 int unExecutedCount = 0; + //全部 int allCount = 0; if (CollectionUtils.isNotEmpty(patientAndNodes)) { - allCount = patientAndNodes.size(); + allCount = patientAndNodes.size(); for (PatientAndNode patientAndNode : patientAndNodes) { LocalDate localDate = null; if (Objects.nonNull(patientAndNode.getDischargeTime())) { @@ -117,6 +155,7 @@ public class SystemHomePageServiceImpl implements SystemHomePageService { } boolean before = localDate.isBefore(LocalDate.now()) || localDate.isEqual(LocalDate.now()); if (before) { + //未执行 if (!NodeExecuteStatusEnum.EXECUTED.getInfo().equals(patientAndNode.getNodeExecuteStatus())) { unExecutedCount++; } diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java index 47bb8997..a20fa1ce 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/PatientAndNode.java @@ -6,6 +6,12 @@ import lombok.Data; import java.time.LocalDate; +/** + * 患者节点任务参数对象 + * + * @author zh + * @date 2024-08-14 + */ @Data public class PatientAndNode { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/ServiceModeStatistics.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/ServiceModeStatistics.java index 6fb68cdc..4d9ca2a3 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/ServiceModeStatistics.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/ServiceModeStatistics.java @@ -4,6 +4,12 @@ import lombok.Data; import java.math.BigDecimal; +/** + * 服务方式 + * + * @author zh + * @date 2024-08-14 + */ @Data public class ServiceModeStatistics { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/SignPatientCount.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/SignPatientCount.java index 96905307..5b62f3a0 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/SignPatientCount.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/SignPatientCount.java @@ -5,6 +5,12 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; +/** + * 患者、签约率 + * + * @author zh + * @date 2024-08-14 + */ @Data public class SignPatientCount { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TaskSituation.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TaskSituation.java index 51ba1249..5cbbd1e3 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TaskSituation.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TaskSituation.java @@ -2,6 +2,12 @@ package com.xinelu.manage.vo.homepage; import lombok.Data; +/** + * 任务代办 + * + * @author zh + * @date 2024-08-14 + */ @Data public class TaskSituation { diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TopStatisticsVO.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TopStatisticsVO.java index a6843384..80423708 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TopStatisticsVO.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/homepage/TopStatisticsVO.java @@ -2,6 +2,12 @@ package com.xinelu.manage.vo.homepage; import lombok.Data; +/** + * 顶部统计 + * + * @author zh + * @date 2024-08-14 + */ @Data public class TopStatisticsVO {