diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java index fe343753..e5cbe04d 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/patienttaskexecuterecord/impl/PatientTaskExecuteRecordServiceImpl.java @@ -6,7 +6,6 @@ import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecor import com.xinelu.manage.mapper.patientquestionsubmitresult.PatientQuestionSubmitResultMapper; import com.xinelu.manage.mapper.patienttaskexecuterecord.PatientTaskExecuteRecordMapper; import com.xinelu.manage.service.patienttaskexecuterecord.IPatientTaskExecuteRecordService; -import com.xinelu.manage.service.propagandainfo.IPropagandaInfoService; import com.xinelu.manage.vo.patienttaskexecuterecord.PatientTaskExecuteRecordVO; import org.springframework.stereotype.Service; @@ -26,8 +25,6 @@ public class PatientTaskExecuteRecordServiceImpl implements IPatientTaskExecuteR private PatientTaskExecuteRecordMapper patientTaskExecuteRecordMapper; @Resource private PatientQuestionSubmitResultMapper submitResultMapper; - @Resource - private IPropagandaInfoService iPropagandaInfoService; /** * 查询患者管理任务执行记录 diff --git a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java index 11b3aaf1..7570ba71 100644 --- a/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java +++ b/postdischarge-manage/src/main/java/com/xinelu/manage/service/questioninfo/impl/QuestionInfoServiceImpl.java @@ -61,7 +61,7 @@ public class QuestionInfoServiceImpl implements IQuestionInfoService { questionVO.setQuestionSubjectList(questionSubjects); return questionVO; } - // 查询选项表 + // 选项表 List questionSubjectOptions = questionSubjectOptionMapper.selectQuestionSubjectOptions(questionSubjectIds); for (QuestionSubjectVO questionSubject : questionSubjects) { List collect = questionSubjectOptions.stream().filter(Objects::nonNull).filter(item -> Objects.nonNull(item.getQuestionnaireSubjectId()) && questionSubject.getId().equals(item.getQuestionnaireSubjectId())).collect(Collectors.toList()); diff --git a/postdischarge-mobile/src/main/java/com/xinelu/mobile/controller/homepage/HomePageController.java b/postdischarge-mobile/src/main/java/com/xinelu/mobile/controller/homepage/HomePageController.java index b0482083..2d85b4df 100644 --- a/postdischarge-mobile/src/main/java/com/xinelu/mobile/controller/homepage/HomePageController.java +++ b/postdischarge-mobile/src/main/java/com/xinelu/mobile/controller/homepage/HomePageController.java @@ -7,13 +7,12 @@ import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecor import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.mobile.service.homepage.HomePageService; import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO; +import com.xinelu.mobile.vo.satisfactionquestionnaire.SatisfactionQuestionnaire; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; -import static com.xinelu.common.utils.PageUtils.startPage; - /** * 机构信息Controller * @@ -76,4 +75,24 @@ public class HomePageController extends BaseController { List list = homePageService.selectPatientTaskExecuteRecord(residentId); return getDataTable(list); } -} + + /** + * 已完成满意度问卷 + */ + @GetMapping("/completedSatisfaction") + private TableDataInfo completedSatisfactionQuestionnaire(Long residentId) { + startPage(); + List list = homePageService.completedSatisfactionQuestionnaire(residentId); + return getDataTable(list); + } + + /** + * 未执行满意度问卷 + */ + @GetMapping("/incompleteSatisfaction") + private TableDataInfo incompleteSatisfactionQuestionnaire(Long residentId, Integer pageNum, Integer pageSize) { + startPage(); + List list = homePageService.incompleteSatisfactionQuestionnaire(residentId,pageNum,pageSize); + return getDataTable(list); + } +} \ No newline at end of file diff --git a/postdischarge-mobile/src/main/java/com/xinelu/mobile/mapper/homepage/HomePageMapper.java b/postdischarge-mobile/src/main/java/com/xinelu/mobile/mapper/homepage/HomePageMapper.java index 380bd43b..0c69b0c5 100644 --- a/postdischarge-mobile/src/main/java/com/xinelu/mobile/mapper/homepage/HomePageMapper.java +++ b/postdischarge-mobile/src/main/java/com/xinelu/mobile/mapper/homepage/HomePageMapper.java @@ -2,6 +2,7 @@ package com.xinelu.mobile.mapper.homepage; import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecord; import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO; +import com.xinelu.mobile.vo.satisfactionquestionnaire.SatisfactionQuestionnaire; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -30,4 +31,25 @@ public interface HomePageMapper { * @return PatientTaskExecuteRecord */ List selectTaskExecuteRecordByResidentId(@Param("residentId") Long residentId, @Param("nodeExecuteStatus") String nodeExecuteStatus); + + /** + * 根据居民查询已完成满意度问卷 + * + * @param residentId 居民id + * @return SatisfactionQuestionnaire + */ + List satisfactionQuestionnaireByResidentId(@Param("residentId") Long residentId, @Param("taskContent") String taskContent, + @Param("questionType") String questionType, @Param("routeNodeName") String routeNodeName); + + + /** + * 根据居民查询已完成满意度问卷 + * + * @param residentId 居民id + * @return SatisfactionQuestionnaire + */ + List incompleteSatisfactionQuestionnaire(@Param("residentId") Long residentId, @Param("taskContent") String taskContent, + @Param("questionType") String questionType, @Param("routeNodeName") String routeNodeName, + @Param("nodeExecuteStatus") String nodeExecuteStatus, @Param("routeCheckStatus") String routeCheckStatus); + } \ No newline at end of file diff --git a/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/HomePageService.java b/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/HomePageService.java index 3e312a8a..0c14ff06 100644 --- a/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/HomePageService.java +++ b/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/HomePageService.java @@ -6,6 +6,7 @@ import com.xinelu.manage.domain.patienttaskexecuterecord.PatientTaskExecuteRecor import com.xinelu.manage.domain.scriptInfo.ScriptInfo; import com.xinelu.manage.dto.patientquestionsubmitresult.PatientQuestionSubmitResultDTO; import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO; +import com.xinelu.mobile.vo.satisfactionquestionnaire.SatisfactionQuestionnaire; import java.util.List; @@ -58,4 +59,21 @@ public interface HomePageService { * @return AjaxResult */ List selectPatientTaskExecuteRecord(Long residentId); + + /** + * 已完成满意度问卷 + * + * @param residentId 居民信息 + * @return SatisfactionQuestionnaire + */ + List completedSatisfactionQuestionnaire(Long residentId); + + /** + * 未执行满意度问卷 + * + * @param residentId 居民信息 + * @return SatisfactionQuestionnaire + */ + List incompleteSatisfactionQuestionnaire(Long residentId, Integer pageNum, Integer pageSize); + } \ No newline at end of file diff --git a/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/Impl/HomePageServiceImpl.java b/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/Impl/HomePageServiceImpl.java index f69eb4c7..1dd4fa0b 100644 --- a/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/Impl/HomePageServiceImpl.java +++ b/postdischarge-mobile/src/main/java/com/xinelu/mobile/service/homepage/Impl/HomePageServiceImpl.java @@ -3,8 +3,7 @@ package com.xinelu.mobile.service.homepage.Impl; import com.xinelu.common.constant.TaskCreateTypeConstant; import com.xinelu.common.core.domain.AjaxResult; import com.xinelu.common.core.page.TableDataInfo; -import com.xinelu.common.enums.NodeExecuteStatusEnum; -import com.xinelu.common.enums.RouteNodeNameEnum; +import com.xinelu.common.enums.*; import com.xinelu.common.exception.ServiceException; import com.xinelu.common.utils.PageServiceUtil; import com.xinelu.common.utils.bean.BeanUtils; @@ -34,6 +33,7 @@ import com.xinelu.manage.vo.questionsubjectoption.QuestionSubjectOptionVO; import com.xinelu.mobile.mapper.homepage.HomePageMapper; import com.xinelu.mobile.service.homepage.HomePageService; import com.xinelu.mobile.vo.myfollowup.MyFollowUpVO; +import com.xinelu.mobile.vo.satisfactionquestionnaire.SatisfactionQuestionnaire; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -239,6 +239,44 @@ public class HomePageServiceImpl implements HomePageService { return homePageMapper.selectTaskExecuteRecordByResidentId(residentId, NodeExecuteStatusEnum.EXECUTED.getInfo()); } + /** + * 已完成满意度问卷 + * + * @param residentId 居民信息 + * @return SatisfactionQuestionnaire + */ + @Override + public List completedSatisfactionQuestionnaire(Long residentId) { + return homePageMapper.satisfactionQuestionnaireByResidentId(residentId, TaskContentEnum.QUESTIONNAIRE_SCALE.getInfo(), QuestionTypeEnum.SATISFACTION_QUESTIONNAIRE.getInfo(), RouteNodeNameEnum.AFTER_DISCHARGE.getInfo()); + } + + /** + * 未执行满意度问卷 + * + * @param residentId 居民信息 + * @return SatisfactionQuestionnaire + */ + @Override + public List incompleteSatisfactionQuestionnaire(Long residentId, Integer pageNum, Integer pageSize) { + List incompleteSatisfaction = homePageMapper.incompleteSatisfactionQuestionnaire(residentId, TaskContentEnum.QUESTIONNAIRE_SCALE.getInfo(), QuestionTypeEnum.SATISFACTION_QUESTIONNAIRE.getInfo(), RouteNodeNameEnum.AFTER_DISCHARGE.getInfo(), NodeExecuteStatusEnum.UNEXECUTED.getInfo(), RouteCheckStatusEnum.AGREE.getInfo()); + if (CollectionUtils.isEmpty(incompleteSatisfaction)) { + return new ArrayList<>(); + } + int total = incompleteSatisfaction.size(); + for (SatisfactionQuestionnaire satisfactionQuestionnaire : incompleteSatisfaction) { + if (Objects.nonNull(satisfactionQuestionnaire) && Objects.nonNull(satisfactionQuestionnaire.getDischargeTime())) { + satisfactionQuestionnaire.setExecuteTime(satisfactionQuestionnaire.getDischargeTime().plusDays(satisfactionQuestionnaire.getRouteNodeDay())); + } + } + incompleteSatisfaction.sort(Comparator.comparing(SatisfactionQuestionnaire::getExecuteTime).reversed()); + if (Objects.nonNull(pageSize) || Objects.nonNull(pageNum)) { + incompleteSatisfaction = incompleteSatisfaction.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); + } + TableDataInfo dataTable = pageServiceUtil.getDataTable(incompleteSatisfaction); + dataTable.setTotal(total); + return incompleteSatisfaction; + } + /** * 更新节点任务表 */ diff --git a/postdischarge-mobile/src/main/java/com/xinelu/mobile/vo/satisfactionquestionnaire/SatisfactionQuestionnaire.java b/postdischarge-mobile/src/main/java/com/xinelu/mobile/vo/satisfactionquestionnaire/SatisfactionQuestionnaire.java new file mode 100644 index 00000000..0f8f17d5 --- /dev/null +++ b/postdischarge-mobile/src/main/java/com/xinelu/mobile/vo/satisfactionquestionnaire/SatisfactionQuestionnaire.java @@ -0,0 +1,41 @@ +package com.xinelu.mobile.vo.satisfactionquestionnaire; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class SatisfactionQuestionnaire { + + /** + * 路径名称 + */ + private String manageRouteName; + /** + * 执行时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime executeTime; + + /** + * 节点名称 + */ + private String routeNodeName; + + /** + * 节点天数 + */ + private Integer routeNodeDay; + + /** + * 问卷标题 + */ + private String questionnaireName; + + /** + * 出院时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime dischargeTime; +} \ No newline at end of file diff --git a/postdischarge-mobile/src/main/resources/mapper/homepage/HomePageMapper.xml b/postdischarge-mobile/src/main/resources/mapper/homepage/HomePageMapper.xml index 0ce739bf..2d51cdbe 100644 --- a/postdischarge-mobile/src/main/resources/mapper/homepage/HomePageMapper.xml +++ b/postdischarge-mobile/src/main/resources/mapper/homepage/HomePageMapper.xml @@ -64,4 +64,43 @@ ORDER BY pter.execute_time desc + + + + \ No newline at end of file