This commit is contained in:
15683799673
2025-08-17 07:03:22 +08:00
15 changed files with 91 additions and 43 deletions

View File

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

View File

@@ -41,10 +41,10 @@ public class AttendanceArrangement extends TenantEntity {
*/
private Long groupId;
/**
* 区域id
*/
private Long areaId;
// /**
// * 区域id
// */
// private Long areaId;
/**
* 排班类型1-固定班制2-排班制

View File

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

View File

@@ -45,10 +45,10 @@ public class AttendanceArrangementBo extends BaseEntity {
*/
private Long groupId;
/**
* 区域id
*/
private Long areaId;
// /**
// * 区域id
// */
// private Long areaId;
/**
* 排班类型1-固定班制2-排班制

View File

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

View File

@@ -45,11 +45,11 @@ public class AttendanceArrangementVo implements Serializable {
@ExcelProperty(value = "考勤组ID")
private Long groupId;
@ExcelProperty(value = "区域Id")
/**
* 区域id
*/
private Long areaId;
// @ExcelProperty(value = "区域Id")
// /**
// * 区域id
// */
// private Long areaId;
/**
* 排班类型1-固定班制2-排班制

View File

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

View File

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

View File

@@ -146,10 +146,10 @@ public class AttendanceArrangementServiceImpl implements IAttendanceArrangementS
vo.setAttendanceGroup(attendanceGroup);
//3.根据id查询区域信息
Long areaId = vo.getAreaId();
// Long areaId = vo.getAreaId();
//根据区域id查询出区域的详细信息
AttendanceArea attendanceArea = attendanceAreaMapper.selectById(areaId);
vo.setAttendanceArea(attendanceArea);
// AttendanceArea attendanceArea = attendanceAreaMapper.selectById(areaId);
// vo.setAttendanceArea(attendanceArea);
//4.查询班制信息
//判断当前考勤组的班制是固定班制还是排班制

View File

@@ -216,11 +216,11 @@ public class AttendanceUserGroupServiceImpl implements IAttendanceUserGroupServi
vo.setAttendanceGroup(attendanceGroup);
//3.根据id查询区域信息
Long areaId = arrangement.getAreaId();
//根据区域id查询出区域的详细信息
AttendanceArea attendanceArea = attendanceAreaMapper.selectById(areaId);
vo.setAttendanceArea(attendanceArea);
// //3.根据id查询区域信息
// Long areaId = arrangement.getAreaId();
// //根据区域id查询出区域的详细信息
// AttendanceArea attendanceArea = attendanceAreaMapper.selectById(areaId);
// vo.setAttendanceArea(attendanceArea);
// 判断当前考勤组的班制是固定班制还是排班制
if (Objects.equals(attendanceGroup.getAttendanceType(), StatusConstant.FIXEDSCHEDULE)) {

View File

@@ -16,6 +16,8 @@ import org.dromara.property.domain.QuestionnaireQuestion;
import org.dromara.property.domain.QuestionnaireQuestionItem;
import org.dromara.property.domain.bo.QuestionnaireQuestionBo;
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.QuestionnaireQuestionMapper;
import org.springframework.stereotype.Service;
@@ -53,7 +55,9 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
*/
@Override
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) {
LambdaQueryWrapper<Questionnaire> lqw = buildQueryWrapper(bo);
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);
}
@@ -91,6 +112,37 @@ public class QuestionnaireServiceImpl implements IQuestionnaireService {
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
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
boolean flag = baseMapper.deleteByIds(ids) > 0;
if(flag){
if (flag) {
ids.stream().forEach(id -> {
//查询问题
List<QuestionnaireQuestion> questionnaireQuestionList = questionnaireQuestionMapper.selectList(new LambdaUpdateWrapper<QuestionnaireQuestion>().eq(QuestionnaireQuestion::getQuestionnaireId, id));