Browse Source

修改后台统计

new-ays
zzc 3 months ago
parent
commit
92bcd95712
  1. 8
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/AdminStatisticsVo.java
  2. 2
      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. 15
      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 @Data
@ApiModel("随访分布") @ApiModel("随访分布")
public static class SffbVo { public static class SffbVo {

2
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/AdminTongjiDao.java

@ -54,7 +54,7 @@ public interface AdminTongjiDao {
@Param("tenantId") Long tenantId); @Param("tenantId") Long tenantId);
AdminStatisticsVo.ZlTypeVo.ZlxgVo queryZlxgStatistics(@Param("dto") StatisticsDto.Query dto, AdminStatisticsVo.ZlTypeVo.ZlxgVo queryZlxgStatistics(@Param("dto") StatisticsDto.Query dto,
@Param("tenantId") Long tenantId); @Param("tenantId") Long tenantId);
AdminStatisticsVo.ZlTypeVo.ZlfyVo queryZlfyStatistics(@Param("dto") StatisticsDto.Query dto, List<AdminStatisticsVo.ZlfyResultVo> queryZlfyStatistics(@Param("dto") StatisticsDto.Query dto,
@Param("tenantId") Long tenantId); @Param("tenantId") Long tenantId);
List<AdminStatisticsVo.SftjVo> querySftjStatistics(@Param("dto") StatisticsDto.Query dto, List<AdminStatisticsVo.SftjVo> querySftjStatistics(@Param("dto") StatisticsDto.Query dto,
@Param("tenantId") Long tenantId); @Param("tenantId") Long tenantId);

16
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/AdminStatisticsServiceImpl.java

@ -1,7 +1,9 @@
package com.acupuncture.system.service.impl; package com.acupuncture.system.service.impl;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.acupuncture.common.constant.DiseaseMapping; import com.acupuncture.common.constant.DiseaseMapping;
import com.acupuncture.common.utils.SecurityUtils;
import com.acupuncture.system.domain.dto.StatisticsDto; import com.acupuncture.system.domain.dto.StatisticsDto;
import com.acupuncture.system.domain.vo.AdminStatisticsVo; import com.acupuncture.system.domain.vo.AdminStatisticsVo;
import com.acupuncture.system.domain.vo.StatisticsVo; import com.acupuncture.system.domain.vo.StatisticsVo;
@ -14,6 +16,7 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* @Author zzc * @Author zzc
@ -134,7 +137,18 @@ public class AdminStatisticsServiceImpl implements AdminStatisticsService {
//TODO //TODO
zlTypeVo.setBzfffb(bzfffbVo); zlTypeVo.setBzfffb(bzfffbVo);
zlTypeVo.setZlxwfb(adminTongjiDao.queryZlxgStatistics(dto, dto.getTenantId())); 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; return zlTypeVo;
} }

15
acupuncture-system/src/main/resources/mapper/dao/AdminTongjiDao.xml

@ -229,7 +229,7 @@
question_code = 'ZLFA_ZLLX' question_code = 'ZLFA_ZLLX'
and t.status = 2 and t.status = 2
AND t.del_flag = 0 AND t.del_flag = 0
AND t.del_flag = 0 AND r.del_flag = 0
<if test="tenantId != null"> <if test="tenantId != null">
AND tenant_id = #{tenantId} AND tenant_id = #{tenantId}
</if> </if>
@ -239,6 +239,7 @@
<if test="dto.endTime != null"> <if test="dto.endTime != null">
AND t.create_time &lt;= #{dto.endTime} AND t.create_time &lt;= #{dto.endTime}
</if> </if>
</select> </select>
<select id="queryFpzStatistics" resultType="com.acupuncture.system.domain.vo.AdminStatisticsVo$ZlTypeVo$BzfffbVo$Fpz"> <select id="queryFpzStatistics" resultType="com.acupuncture.system.domain.vo.AdminStatisticsVo$ZlTypeVo$BzfffbVo$Fpz">
@ -293,13 +294,10 @@
</if> </if>
</select> </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 SELECT
SUM(CASE WHEN answer &lt; 300 THEN 1 ELSE 0 END) AS score1, t.id,
SUM(CASE WHEN answer BETWEEN 300 AND 900 THEN 1 ELSE 0 END) AS score2, r.answer
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
FROM FROM
v_pms_treatment t v_pms_treatment t
LEFT JOIN v_pms_treatment_record r ON t.id = r.treatment_id LEFT JOIN v_pms_treatment_record r ON t.id = r.treatment_id
@ -308,9 +306,8 @@
AND t.del_flag = 0 AND t.del_flag = 0
and r.del_flag = 0 and r.del_flag = 0
and t.status = 2 and t.status = 2
AND answer REGEXP '^[0-9]+$';
<if test="tenantId != null"> <if test="tenantId != null">
AND t.tenant_id = #{tenantId} AND tenant_id = #{tenantId}
</if> </if>
<if test="dto.startTime != null"> <if test="dto.startTime != null">
AND t.create_time &gt;= #{dto.startTime} 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 dms_tenant t on q.tenant_id = t.id
where where
q.del_flag = 0 q.del_flag = 0
and t.del_flag = 0
<if test="name != null and name != ''"> <if test="name != null and name != ''">
and q.name like concat('%', #{name}, '%') and q.name like concat('%', #{name}, '%')
</if> </if>

Loading…
Cancel
Save