1747191978@qq.com 3 months ago
parent
commit
362c0bb654
  1. 8
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java
  2. 4
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java
  3. 16
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java
  4. 17
      acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml
  5. 1
      acupuncture-system/src/main/resources/mapper/dao/FmsFollowupDao.xml

8
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 {

4
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<AdminStatisticsVo.ZlfyResultVo> queryZlfyStatistics(@Param("dto") StatisticsDto.Query dto,
@Param("tenantId") Long tenantId);
List<AdminStatisticsVo.SftjVo> querySftjStatistics(@Param("dto") StatisticsDto.Query dto,
@Param("tenantId") Long tenantId);
List<AdminStatisticsVo.SffbVo.DlVo> querySfStatistics(@Param("dto") StatisticsDto.Query dto,

16
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<AdminStatisticsVo.ZlfyResultVo> zlfyResultVoList = adminTongjiDao.queryZlfyStatistics(dto, SecurityUtils.getTenantId());
AdminStatisticsVo.ZlTypeVo.ZlfyVo zlfyVo = new AdminStatisticsVo.ZlTypeVo.ZlfyVo();
if (CollectionUtil.isNotEmpty(zlfyResultVoList)) {
Map<String, Long> 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;
}

17
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
<if test="tenantId != null">
AND tenant_id = #{tenantId}
</if>
@ -239,6 +239,7 @@
<if test="dto.endTime != null">
AND t.create_time &lt;= #{dto.endTime}
</if>
</select>
<select id="queryFpzStatistics" resultType="com.acupuncture.system.domain.vo.AdminStatisticsVo$ZlTypeVo$BzfffbVo$Fpz">
@ -293,13 +294,10 @@
</if>
</select>
<select id="queryZlfyStatistics" resultType="com.acupuncture.system.domain.vo.AdminStatisticsVo$ZlTypeVo$ZlfyVo">
<select id="queryZlfyStatistics" resultType="com.acupuncture.system.domain.vo.AdminStatisticsVo$ZlfyResultVo">
SELECT
SUM(CASE WHEN answer &lt; 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
<if test="tenantId != null">
AND t.tenant_id = #{tenantId}
AND tenant_id = #{tenantId}
</if>
<if test="dto.startTime != null">
AND t.create_time &gt;= #{dto.startTime}

1
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
<if test="name != null and name != ''">
and q.name like concat('%', #{name}, '%')
</if>

Loading…
Cancel
Save