修改了调查问卷bug
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m52s

This commit is contained in:
yuyongle 2025-08-15 17:21:59 +08:00
parent e383f112d2
commit 5a9cc74405
6 changed files with 66 additions and 11 deletions

View File

@ -51,7 +51,7 @@ public class QuestionnaireController extends BaseController {
* *
* @param id 主键 * @param id 主键
*/ */
@SaCheckPermission("property:questionnaire:query") // @SaCheckPermission("property:questionnaire:query")
@GetMapping("/{id}") @GetMapping("/{id}")
public R<QuestionnaireVo> getInfo(@NotNull(message = "主键不能为空") public R<QuestionnaireVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) { @PathVariable("id") Long id) {

View File

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.io.Serial; import java.io.Serial;
@ -59,5 +58,4 @@ public class Questionnaire extends TenantEntity {
*/ */
private String status; private String status;
} }

View File

@ -11,8 +11,6 @@ import jakarta.validation.constraints.*;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
/** /**
* 调查问卷业务对象 questionnaire * 调查问卷业务对象 questionnaire
* *

View File

@ -7,11 +7,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.property.domain.QuestionnaireQuestionItem;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -70,5 +71,8 @@ public class QuestionnaireQuestionVo implements Serializable {
@ExcelProperty(value = "排序") @ExcelProperty(value = "排序")
private Long sort; private Long sort;
/**
* 问题列表
*/
private List<QuestionnaireQuestionItemVo> questionnaireQuestionItemVos;
} }

View File

@ -13,7 +13,7 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -72,5 +72,8 @@ public class QuestionnaireVo implements Serializable {
@ExcelProperty(value = "状态(1草稿2已发布3未发布)") @ExcelProperty(value = "状态(1草稿2已发布3未发布)")
private String status; private String status;
/**
* 问题列表
*/
private List<QuestionnaireQuestionVo> questionnaireQuestionVos;
} }

View File

@ -16,6 +16,8 @@ import org.dromara.property.domain.QuestionnaireQuestion;
import org.dromara.property.domain.QuestionnaireQuestionItem; import org.dromara.property.domain.QuestionnaireQuestionItem;
import org.dromara.property.domain.bo.QuestionnaireQuestionBo; import org.dromara.property.domain.bo.QuestionnaireQuestionBo;
import org.dromara.property.domain.bo.QuestionnaireQuestionItemBo; import org.dromara.property.domain.bo.QuestionnaireQuestionItemBo;
import org.dromara.property.domain.vo.QuestionnaireQuestionItemVo;
import org.dromara.property.domain.vo.QuestionnaireQuestionVo;
import org.dromara.property.mapper.QuestionnaireQuestionItemMapper; import org.dromara.property.mapper.QuestionnaireQuestionItemMapper;
import org.dromara.property.mapper.QuestionnaireQuestionMapper; import org.dromara.property.mapper.QuestionnaireQuestionMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -53,7 +55,9 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
*/ */
@Override @Override
public QuestionnaireVo queryById(Long id) { public QuestionnaireVo queryById(Long id) {
return baseMapper.selectVoById(id); QuestionnaireVo questionnaireVo = baseMapper.selectVoById(id);
processingData(questionnaireVo,null, null);
return questionnaireVo;
} }
/** /**
@ -67,6 +71,23 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
public TableDataInfo<QuestionnaireVo> queryPageList(QuestionnaireBo bo, PageQuery pageQuery) { public TableDataInfo<QuestionnaireVo> queryPageList(QuestionnaireBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<Questionnaire> lqw = buildQueryWrapper(bo); LambdaQueryWrapper<Questionnaire> lqw = buildQueryWrapper(bo);
Page<QuestionnaireVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw); Page<QuestionnaireVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (CollUtil.isNotEmpty(result.getRecords())) {
//收集所有的问卷id
List<Long> questionnaireIds = result.getRecords().stream().map(QuestionnaireVo::getId).toList();
// 一次性查询所有问题
LambdaQueryWrapper<QuestionnaireQuestion> questionQueryWrapper = Wrappers.lambdaQuery();
questionQueryWrapper.in(QuestionnaireQuestion::getQuestionnaireId, questionnaireIds);
List<QuestionnaireQuestionVo> questionnaireQuestionVos = questionnaireQuestionMapper.selectVoList(questionQueryWrapper);
//收集所有问题id
List<Long> idList = questionnaireQuestionVos.stream().map(QuestionnaireQuestionVo::getId).toList();
//查询所有问题选项
LambdaQueryWrapper<QuestionnaireQuestionItem> questionItemQueryWrapper = Wrappers.lambdaQuery();
questionItemQueryWrapper.in(QuestionnaireQuestionItem::getQuestionId, idList);
List<QuestionnaireQuestionItemVo> questionnaireQuestionItemVos = questionnaireQuestionItemMapper.selectVoList(questionItemQueryWrapper);
result.getRecords().stream().forEach(questionnaireVo -> {
processingData(questionnaireVo, questionnaireQuestionVos, questionnaireQuestionItemVos);
});
}
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@ -91,6 +112,37 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
return lqw; return lqw;
} }
/**
* 处理数据
*/
private void processingData(QuestionnaireVo questionnaireVo, List<QuestionnaireQuestionVo> questionnaireQuestionVos, List<QuestionnaireQuestionItemVo> questionnaireQuestionItemVos) {
// 在此处添加您选中的代码来获取问卷问题列表
if (CollUtil.isEmpty(questionnaireQuestionVos)) {
LambdaQueryWrapper<QuestionnaireQuestion> questionQueryWrapper = Wrappers.lambdaQuery();
questionQueryWrapper.eq(QuestionnaireQuestion::getQuestionnaireId, questionnaireVo.getId());
questionnaireQuestionVos = questionnaireQuestionMapper.selectVoList(questionQueryWrapper);
if (CollUtil.isEmpty(questionnaireQuestionItemVos)) {
//收集所有问题id
List<Long> idList = questionnaireQuestionVos.stream().map(QuestionnaireQuestionVo::getId).toList();
//查询所有问题选项
LambdaQueryWrapper<QuestionnaireQuestionItem> questionItemQueryWrapper = Wrappers.lambdaQuery();
questionItemQueryWrapper.in(QuestionnaireQuestionItem::getQuestionId, idList);
questionnaireQuestionItemVos = questionnaireQuestionItemMapper.selectVoList(questionItemQueryWrapper);
}
}
if (CollUtil.isNotEmpty(questionnaireQuestionVos)) {
List<QuestionnaireQuestionItemVo> finalQuestionnaireQuestionItemVos = questionnaireQuestionItemVos;
questionnaireQuestionVos.stream().forEach(questionnaireQuestionVo -> {
//筛选出属于当前问题的问题项返回list
List<QuestionnaireQuestionItemVo> list = finalQuestionnaireQuestionItemVos.stream().filter(questionnaireQuestionItemVo -> questionnaireQuestionItemVo.getQuestionId().equals(questionnaireQuestionVo.getId())).toList();
questionnaireQuestionVo.setQuestionnaireQuestionItemVos(list);
});
}
questionnaireVo.setQuestionnaireQuestionVos(questionnaireQuestionVos);
}
;
/** /**
* 新增调查问卷 * 新增调查问卷
* *
@ -191,7 +243,7 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
@Override @Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) { public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
boolean flag = baseMapper.deleteByIds(ids) > 0; boolean flag = baseMapper.deleteByIds(ids) > 0;
if(flag){ if (flag) {
ids.stream().forEach(id -> { ids.stream().forEach(id -> {
//查询问题 //查询问题
List<QuestionnaireQuestion> questionnaireQuestionList = questionnaireQuestionMapper.selectList(new LambdaUpdateWrapper<QuestionnaireQuestion>().eq(QuestionnaireQuestion::getQuestionnaireId, id)); List<QuestionnaireQuestion> questionnaireQuestionList = questionnaireQuestionMapper.selectList(new LambdaUpdateWrapper<QuestionnaireQuestion>().eq(QuestionnaireQuestion::getQuestionnaireId, id));