From b6eabdc247a18e0204e6983a90f9519fd2fb1ae8 Mon Sep 17 00:00:00 2001 From: zhangheng <3226558941@qq.com> Date: Thu, 26 Dec 2024 18:06:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=97=AE=E5=8D=B7=E7=BB=9F=E8=AE=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/StatisticsServiceImpl.java | 14 ++++++- .../QuestionnaireTaskStatisticsVo.java | 14 +++++++ .../vo/statistics/QuestionnaireTaskVo.java | 37 +++++++++++++++++++ .../SignPatientManageRouteNodeMapper.xml | 6 +++ 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskVo.java diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/statistics/impl/StatisticsServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/statistics/impl/StatisticsServiceImpl.java index 739a2865..cc092c11 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/statistics/impl/StatisticsServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/statistics/impl/StatisticsServiceImpl.java @@ -306,8 +306,14 @@ public class StatisticsServiceImpl implements IStatisticsService { //查询问卷任务 List questionnaireTaskStatisticsVos = signPatientManageRouteNodeMapper.questionnaireTaskStatistics(questionnaireTaskStatisticsDto); //遍历计算比例 + List questionnaireTaskVos = new ArrayList<>(); if (CollectionUtils.isNotEmpty(questionnaireTaskStatisticsVos)){ for (QuestionnaireTaskStatisticsVo questionnaireTaskStatisticsVo : questionnaireTaskStatisticsVos) { + QuestionnaireTaskVo questionnaireTaskVo = new QuestionnaireTaskVo(); + questionnaireTaskVo.setQuestionInfoId(questionnaireTaskStatisticsVo.getQuestionInfoId()); + questionnaireTaskVo.setQuestionnaireName(questionnaireTaskStatisticsVo.getQuestionnaireName()); + questionnaireTaskVo.setCreateTime(questionnaireTaskStatisticsVo.getCreateTime()); + questionnaireTaskVos.add(questionnaireTaskVo); //除数不能为空或0 if (CollectionUtils.isNotEmpty(questionnaireTaskStatisticsVo.getQuestionnaireTaskOptionStatisticsVos()) && Objects.nonNull(questionnaireTaskStatisticsVo.getTotal()) && questionnaireTaskStatisticsVo.getTotal() != 0){ questionnaireTaskStatisticsVo.getQuestionnaireTaskOptionStatisticsVos() @@ -318,8 +324,14 @@ public class StatisticsServiceImpl implements IStatisticsService { questionnaireTaskStatisticsVo.getQuestionnaireTaskOptionStatisticsVos().forEach(item -> item.setChoiceProportion(BigDecimal.ZERO)); } } + //组装第一层数据 + questionnaireTaskVos = questionnaireTaskVos.stream().distinct().collect(Collectors.toList()); + for (QuestionnaireTaskVo questionnaireTaskVo : questionnaireTaskVos) { + List collect = questionnaireTaskStatisticsVos.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionInfoId()) && questionnaireTaskVo.getQuestionInfoId().equals(item.getQuestionInfoId())).collect(Collectors.toList()); + questionnaireTaskVo.setQuestionnaireTaskStatisticsVos(collect); + } } - return AjaxResult.success(questionnaireTaskStatisticsVos); + return AjaxResult.success(questionnaireTaskVos); } /** diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskStatisticsVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskStatisticsVo.java index 88b0b894..7c9a77af 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskStatisticsVo.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskStatisticsVo.java @@ -1,9 +1,11 @@ package com.xinelu.manage.vo.statistics; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; /** @@ -55,4 +57,16 @@ public class QuestionnaireTaskStatisticsVo { * 选项结合 */ private List questionnaireTaskOptionStatisticsVos; + + /** + * 问卷标题(上层数据使用) + */ + @ApiModelProperty(value = "问卷标题") + private String questionnaireName; + + /** + * 创建时间(上层数据使用) + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; } \ No newline at end of file diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskVo.java b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskVo.java new file mode 100644 index 00000000..3bda41db --- /dev/null +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/vo/statistics/QuestionnaireTaskVo.java @@ -0,0 +1,37 @@ +package com.xinelu.manage.vo.statistics; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * @description: 问卷任务统计返回值 + * @author: zh + * @create: 2024-12-22 + **/ +@Data +public class QuestionnaireTaskVo { + + /** + * 问卷表id + */ + @ApiModelProperty(value = "问卷表id") + private Long questionInfoId; + + /** + * 问卷标题 + */ + @ApiModelProperty(value = "问卷标题") + private String questionnaireName; + + /** + * 创建时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime createTime; + + List questionnaireTaskStatisticsVos; +} diff --git a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml index 8d7a51a8..58fd68f4 100644 --- a/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml +++ b/postdischarge-manage/src/main/resources/mapper/manage/signpatientmanageroutenode/SignPatientManageRouteNodeMapper.xml @@ -94,6 +94,8 @@ + + @@ -1225,6 +1227,8 @@ resultType="com.xinelu.manage.vo.statistics.QuestionnaireTaskStatisticsVo" resultMap="QuestionnaireTaskStatisticsVoResult"> select + qi.create_time, + qi.questionnaire_name, spmrn.question_info_id, pqsjr.question_subject_id, pqsjr.question_number, @@ -1256,6 +1260,7 @@ WHERE a.question_info_id = spmrn.question_info_id ) total from sign_patient_manage_route_node spmrn + left join question_info qi on spmrn.question_info_id = qi.id left join sign_patient_manage_route spmr on spmr.id = spmrn.manage_route_id left join patient_info p on spmr.patient_id = p.id left join patient_question_submit_result pqsbr on spmrn.id = pqsbr.manage_route_node_id @@ -1280,6 +1285,7 @@ or (date_format(p.discharge_time,'%y%m%d') >= date_format(#{visitStartTime}, '%y%m%d') and date_format(p.discharge_time,'%y%m%d') <= date_format(#{visitEndTime}, '%y%m%d'))) + order by qi.create_time DESC