diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java index 918bbe1c1f..c3c1092536 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/PrisonQuestionnaireRecordController.java @@ -39,6 +39,9 @@ public class PrisonQuestionnaireRecordController { @Resource private QuestionnaireRecordService questionnaireRecordService; + @Resource + private cn.iocoder.yudao.module.prison.dal.mysql.questionnaire_task.QuestionnaireTaskMapper questionnaireTaskMapper; + // ==================== 基础 CRUD ==================== @PostMapping("/create") @@ -87,7 +90,42 @@ public class PrisonQuestionnaireRecordController { @PreAuthorize("@ss.hasPermission('prison:questionnaire-record:query')") public CommonResult> getQuestionnaireRecordPage(@Valid QuestionnaireRecordPageReqVO pageReqVO) { PageResult pageResult = questionnaireRecordService.getQuestionnaireRecordPage(pageReqVO); - return success(QuestionnaireRecordConvert.INSTANCE.convertPage(pageResult)); + PageResult voPageResult = QuestionnaireRecordConvert.INSTANCE.convertPage(pageResult); + // 填充任务备注 + fillTaskRemark(voPageResult.getList()); + return success(voPageResult); + } + + /** + * 填充任务备注 + */ + private void fillTaskRemark(List records) { + if (cn.hutool.core.collection.CollUtil.isEmpty(records)) { + return; + } + // 收集所有 taskId + Set taskIds = records.stream() + .map(QuestionnaireRecordRespVO::getTaskId) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if (cn.hutool.core.collection.CollUtil.isEmpty(taskIds)) { + return; + } + // 批量查询任务备注 + List tasks = questionnaireTaskMapper.selectList( + new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper() + .in(cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO::getId, taskIds)); + // 构建 taskId -> remark 映射 + Map taskRemarkMap = tasks.stream() + .collect(Collectors.toMap( + cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO::getId, + cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO::getRemark, + (v1, v2) -> v1)); + // 填充备注到 VO + for (QuestionnaireRecordRespVO record : records) { + String remark = taskRemarkMap.get(record.getTaskId()); + record.setTaskRemark(remark); + } } @GetMapping("/export-excel") diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java index c8cd61e747..87ec5014a3 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/controller/admin/questionnairerecord/vo/QuestionnaireRecordRespVO.java @@ -132,6 +132,10 @@ public class QuestionnaireRecordRespVO { @Schema(description = "备注") private String remark; + @Schema(description = "任务备注", example = "一月度常规心理测评") + @ExcelProperty("任务备注") + private String taskRemark; + // ==================== 通用字段 ==================== @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java index 22068f45d5..6db5266d82 100644 --- a/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java +++ b/yudao-module-prison/src/main/java/cn/iocoder/yudao/module/prison/service/questionnairerecord/QuestionnaireRecordServiceImpl.java @@ -49,6 +49,9 @@ public class QuestionnaireRecordServiceImpl implements QuestionnaireRecordServic @Resource private AnswerService answerService; + @Resource + private cn.iocoder.yudao.module.prison.dal.mysql.questionnaire_task.QuestionnaireTaskMapper questionnaireTaskMapper; + @Override public Long createQuestionnaireRecord(QuestionnaireRecordSaveReqVO createReqVO) { // 插入