diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java b/acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java index 0709dd24..40dfcb59 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java @@ -352,6 +352,14 @@ public class AdminStatisticsVo { } } + @Data + @ApiModel("") + public static class ZlfyResultVo { + private Long id; + private String answer; + + } + @Data @ApiModel("随访分布") public static class SffbVo { diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java b/acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java index 85eb828e..6ef7de2e 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java @@ -54,8 +54,8 @@ public interface AdminTongjiDao { @Param("tenantId") Long tenantId); AdminStatisticsVo.ZlTypeVo.ZlxgVo queryZlxgStatistics(@Param("dto") StatisticsDto.Query dto, @Param("tenantId") Long tenantId); - AdminStatisticsVo.ZlTypeVo.ZlfyVo queryZlfyStatistics(@Param("dto") StatisticsDto.Query dto, - @Param("tenantId") Long tenantId); + List queryZlfyStatistics(@Param("dto") StatisticsDto.Query dto, + @Param("tenantId") Long tenantId); List querySftjStatistics(@Param("dto") StatisticsDto.Query dto, @Param("tenantId") Long tenantId); List querySfStatistics(@Param("dto") StatisticsDto.Query dto, diff --git a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java index 2319faf4..1b60f642 100644 --- a/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java +++ b/acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java @@ -1,7 +1,9 @@ package com.acupuncture.system.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import com.acupuncture.common.constant.DiseaseMapping; +import com.acupuncture.common.utils.SecurityUtils; import com.acupuncture.system.domain.dto.StatisticsDto; import com.acupuncture.system.domain.vo.AdminStatisticsVo; import com.acupuncture.system.domain.vo.StatisticsVo; @@ -14,6 +16,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * @Author zzc @@ -134,7 +137,18 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService { //TODO zlTypeVo.setBzfffb(bzfffbVo); zlTypeVo.setZlxwfb(adminTongjiDao.queryZlxgStatistics(dto, dto.getTenantId())); - zlTypeVo.setZlfy(adminTongjiDao.queryZlfyStatistics(dto, dto.getTenantId())); +// zlTypeVo.setZlfy(adminTongjiDao.queryZlfyStatistics(dto, dto.getTenantId())); + List zlfyResultVoList = adminTongjiDao.queryZlfyStatistics(dto, SecurityUtils.getTenantId()); + AdminStatisticsVo.ZlTypeVo.ZlfyVo zlfyVo = new AdminStatisticsVo.ZlTypeVo.ZlfyVo(); + if (CollectionUtil.isNotEmpty(zlfyResultVoList)) { + Map map = zlfyResultVoList.stream().collect(Collectors.groupingBy(AdminStatisticsVo.ZlfyResultVo::getAnswer, Collectors.counting())); + zlfyVo.setScore1(map.getOrDefault("<300元", 0L).intValue()); + zlfyVo.setScore2(map.getOrDefault("300 ~ 900元", 0L).intValue()); + zlfyVo.setScore3(map.getOrDefault("900 ~ 2000元", 0L).intValue()); + zlfyVo.setScore4(map.getOrDefault("2000 ~ 5000元", 0L).intValue()); + zlfyVo.setScore5(map.getOrDefault(">5000元", 0L).intValue()); + } + zlTypeVo.setZlfy(zlfyVo); return zlTypeVo; } diff --git a/acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml b/acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml index f8e27163..137bfffd 100644 --- a/acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml +++ b/acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml @@ -229,7 +229,7 @@ question_code = 'ZLFA_ZLLX' and t.status = 2 AND t.del_flag = 0 - AND t.del_flag = 0 + AND r.del_flag = 0 AND tenant_id = #{tenantId} @@ -239,6 +239,7 @@ AND t.create_time <= #{dto.endTime} + - SELECT - SUM(CASE WHEN answer < 300 THEN 1 ELSE 0 END) AS score1, - SUM(CASE WHEN answer BETWEEN 300 AND 900 THEN 1 ELSE 0 END) AS score2, - SUM(CASE WHEN answer BETWEEN 901 AND 2000 THEN 1 ELSE 0 END) AS score3, - SUM(CASE WHEN answer BETWEEN 2001 AND 5000 THEN 1 ELSE 0 END) AS score4, - SUM(CASE WHEN answer > 5000 THEN 1 ELSE 0 END) AS score5 + t.id, + r.answer FROM v_pms_treatment t LEFT JOIN v_pms_treatment_record r ON t.id = r.treatment_id @@ -307,10 +305,9 @@ question_code = 'ZLFA_ZTFY' AND t.del_flag = 0 and r.del_flag = 0 - and t.status = 2 - AND answer REGEXP '^[0-9]+$'; + and t.status = 2 - AND t.tenant_id = #{tenantId} + AND tenant_id = #{tenantId} AND t.create_time >= #{dto.startTime} diff --git a/acupuncture-system/src/main/resources/mapper/dao/FmsFollowupDao.xml b/acupuncture-system/src/main/resources/mapper/dao/FmsFollowupDao.xml index 2f113010..cebe7711 100644 --- a/acupuncture-system/src/main/resources/mapper/dao/FmsFollowupDao.xml +++ b/acupuncture-system/src/main/resources/mapper/dao/FmsFollowupDao.xml @@ -50,7 +50,6 @@ dms_tenant t on q.tenant_id = t.id where q.del_flag = 0 - and t.del_flag = 0 and q.name like concat('%', #{name}, '%')