feat(backend): 问卷调查记录功能优化
- 优化问卷记录控制器,添加分页查询和状态筛选 - 扩展问卷记录响应VO,增加完成时间字段 - 完善问卷记录服务实现,添加状态更新逻辑
This commit is contained in:
parent
483b95633b
commit
9ceed8408a
@ -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<PageResult<QuestionnaireRecordRespVO>> getQuestionnaireRecordPage(@Valid QuestionnaireRecordPageReqVO pageReqVO) {
|
||||
PageResult<QuestionnaireRecordDO> pageResult = questionnaireRecordService.getQuestionnaireRecordPage(pageReqVO);
|
||||
return success(QuestionnaireRecordConvert.INSTANCE.convertPage(pageResult));
|
||||
PageResult<QuestionnaireRecordRespVO> voPageResult = QuestionnaireRecordConvert.INSTANCE.convertPage(pageResult);
|
||||
// 填充任务备注
|
||||
fillTaskRemark(voPageResult.getList());
|
||||
return success(voPageResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* 填充任务备注
|
||||
*/
|
||||
private void fillTaskRemark(List<QuestionnaireRecordRespVO> records) {
|
||||
if (cn.hutool.core.collection.CollUtil.isEmpty(records)) {
|
||||
return;
|
||||
}
|
||||
// 收集所有 taskId
|
||||
Set<Long> taskIds = records.stream()
|
||||
.map(QuestionnaireRecordRespVO::getTaskId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet());
|
||||
if (cn.hutool.core.collection.CollUtil.isEmpty(taskIds)) {
|
||||
return;
|
||||
}
|
||||
// 批量查询任务备注
|
||||
List<cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO> tasks = questionnaireTaskMapper.selectList(
|
||||
new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO>()
|
||||
.in(cn.iocoder.yudao.module.prison.dal.dataobject.questionnaire_task.QuestionnaireTaskDO::getId, taskIds));
|
||||
// 构建 taskId -> remark 映射
|
||||
Map<Long, String> 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")
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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) {
|
||||
// 插入
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user