Compare commits
2 Commits
daa31dd9b3
...
a4278fbcf2
Author | SHA1 | Date |
---|---|---|
|
a4278fbcf2 | |
|
24b2a131b8 |
|
@ -40,7 +40,7 @@ public class SysScaleQuestionBo extends BaseEntity {
|
|||
/**
|
||||
* 测评量表标题
|
||||
*/
|
||||
@NotBlank(message = "测评量表标题不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
// @NotBlank(message = "测评量表标题不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String scaleTitle;
|
||||
|
||||
/**
|
||||
|
@ -55,17 +55,17 @@ public class SysScaleQuestionBo extends BaseEntity {
|
|||
@NotBlank(message = "问题内容不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
private String questionContent;
|
||||
|
||||
// /**
|
||||
// * 所属因子维度
|
||||
// */
|
||||
/**
|
||||
* 所属因子维度
|
||||
*/
|
||||
// @NotNull(message = "所属因子维度不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// private Long factorId;
|
||||
//
|
||||
// /**
|
||||
// * 因子名称
|
||||
// */
|
||||
private Long factorId;
|
||||
|
||||
/**
|
||||
* 因子名称
|
||||
*/
|
||||
// @NotBlank(message = "因子名称不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
// private String factorName;
|
||||
private String factorName;
|
||||
|
||||
/**
|
||||
* 问题答案列表
|
||||
|
|
|
@ -11,6 +11,7 @@ import lombok.Data;
|
|||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -67,4 +68,9 @@ public class SysScaleFactorVo implements Serializable {
|
|||
* 因子公式名称
|
||||
*/
|
||||
private String formulaName;
|
||||
|
||||
/**
|
||||
* 问题id列表
|
||||
*/
|
||||
private List<Long> questionIds;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.domain.vo;
|
||||
|
||||
import org.dromara.scale.domain.SysScaleAnswer;
|
||||
import org.dromara.scale.domain.SysScaleQuestion;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
|
@ -11,7 +12,7 @@ import lombok.Data;
|
|||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -70,5 +71,8 @@ public class SysScaleQuestionVo implements Serializable {
|
|||
@ExcelProperty(value = "因子名称")
|
||||
private String factorName;
|
||||
|
||||
|
||||
/**
|
||||
* 问题答案列表
|
||||
*/
|
||||
private List<SysScaleAnswer> scaleAnswerList;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.dromara.scale.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.dromara.scale.domain.SysScale;
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
|
@ -15,7 +16,6 @@ import java.io.Serializable;
|
|||
import java.util.Date;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 心理测评量视图对象 sys_scale
|
||||
*
|
||||
|
@ -61,12 +61,22 @@ public class SysScaleVo implements Serializable {
|
|||
@ExcelProperty(value = "量表的总分计分公式")
|
||||
private Long formulaId;
|
||||
|
||||
/**
|
||||
* 计分公式
|
||||
*/
|
||||
private String formulaName;
|
||||
|
||||
/**
|
||||
* 类型
|
||||
*/
|
||||
@ExcelProperty(value = "类型")
|
||||
private String scaleType;
|
||||
|
||||
/**
|
||||
* 量表类型名称
|
||||
*/
|
||||
private String scaleTypeName;
|
||||
|
||||
/**
|
||||
* 预警分数
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.scale.domain.SysScaleAnswer;
|
||||
import org.dromara.scale.domain.vo.SysScaleAnswerVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
@ -12,6 +13,7 @@ import java.util.List;
|
|||
* @author jiangzhe
|
||||
* @date 2024-03-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysScaleAnswerMapper extends BaseMapperPlus<SysScaleAnswer, SysScaleAnswerVo> {
|
||||
int batchInsert(List<SysScaleAnswer> scaleAnswerList);
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.scale.domain.SysScaleFactor;
|
||||
import org.dromara.scale.domain.vo.SysScaleFactorVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||
* @author jiangzhe
|
||||
* @date 2024-03-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysScaleFactorMapper extends BaseMapperPlus<SysScaleFactor, SysScaleFactorVo> {
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.scale.domain.SysScaleFormula;
|
||||
import org.dromara.scale.domain.vo.SysScaleFormulaVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||
* @author jiangzhe
|
||||
* @date 2024-03-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysScaleFormulaMapper extends BaseMapperPlus<SysScaleFormula, SysScaleFormulaVo> {
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.scale.domain.SysScale;
|
||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
|
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
|||
* @author jiangzhe
|
||||
* @date 2024-03-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> {
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.dromara.scale.domain.SysScaleQuestion;
|
||||
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
||||
|
@ -13,6 +14,7 @@ import java.util.List;
|
|||
* @author jiangzhe
|
||||
* @date 2024-03-29
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysScaleQuestionMapper extends BaseMapperPlus<SysScaleQuestion, SysScaleQuestionVo> {
|
||||
|
||||
int cleanFactorIdByFactorId(Long factorId);
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
|
@ -10,6 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.scale.domain.SysScale;
|
||||
import org.dromara.scale.domain.SysScaleFormula;
|
||||
import org.dromara.scale.domain.SysScaleQuestion;
|
||||
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
|
||||
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
||||
import org.dromara.scale.mapper.SysScaleFormulaMapper;
|
||||
import org.dromara.scale.mapper.SysScaleMapper;
|
||||
import org.dromara.scale.mapper.SysScaleQuestionMapper;
|
||||
|
@ -20,9 +24,11 @@ import org.dromara.scale.domain.SysScaleFactor;
|
|||
import org.dromara.scale.mapper.SysScaleFactorMapper;
|
||||
import org.dromara.scale.service.ISysScaleFactorService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 测评因子Service业务层处理
|
||||
|
@ -44,7 +50,13 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
|||
*/
|
||||
@Override
|
||||
public SysScaleFactorVo queryById(Long factorId) {
|
||||
return baseMapper.selectVoById(factorId);
|
||||
SysScaleFactorVo sysScaleFactorVo = baseMapper.selectVoById(factorId);
|
||||
List<SysScaleQuestionVo> list = scaleQuestionMapper.selectVoList(Wrappers.<SysScaleQuestion>lambdaQuery().eq(SysScaleQuestion::getFactorId, factorId));
|
||||
if (CollUtil.isNotEmpty(list)) {
|
||||
List<Long> questionIds = list.stream().map(SysScaleQuestionVo::getQuestionId).collect(Collectors.toList());
|
||||
sysScaleFactorVo.setQuestionIds(questionIds);
|
||||
}
|
||||
return sysScaleFactorVo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,6 +106,19 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
|||
if (flag) {
|
||||
bo.setFactorId(add.getFactorId());
|
||||
}
|
||||
|
||||
if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
||||
List<SysScaleQuestion> list = new ArrayList<>(bo.getQuestionIds().size());
|
||||
for (Long questionId : bo.getQuestionIds()) {
|
||||
SysScaleQuestion question = new SysScaleQuestion();
|
||||
question.setQuestionId(questionId);
|
||||
question.setFactorId(bo.getFactorId());
|
||||
question.setFactorName(bo.getFactorName());
|
||||
list.add(question);
|
||||
}
|
||||
scaleQuestionMapper.updateBatchById(list, 100);
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.dromara.scale.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
|
@ -8,6 +9,7 @@ import org.dromara.common.core.utils.MapstructUtils;
|
|||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.SysScaleAnswer;
|
||||
import org.dromara.scale.domain.SysScaleQuestion;
|
||||
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
|
||||
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
||||
|
@ -15,6 +17,7 @@ import org.dromara.scale.mapper.SysScaleAnswerMapper;
|
|||
import org.dromara.scale.mapper.SysScaleQuestionMapper;
|
||||
import org.dromara.scale.service.ISysScaleQuestionService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
@ -39,7 +42,12 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
|
|||
*/
|
||||
@Override
|
||||
public SysScaleQuestionVo queryById(Long questionId) {
|
||||
return baseMapper.selectVoById(questionId);
|
||||
SysScaleQuestionVo sysScaleQuestionVo = baseMapper.selectVoById(questionId);
|
||||
List<SysScaleAnswer> sysScaleAnswers = scaleAnswerMapper.selectList(Wrappers.lambdaQuery(SysScaleAnswer.class).eq(SysScaleAnswer::getQuestionId, questionId));
|
||||
if (CollUtil.isNotEmpty(sysScaleAnswers)) {
|
||||
sysScaleQuestionVo.setScaleAnswerList(sysScaleAnswers);
|
||||
}
|
||||
return sysScaleQuestionVo;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -76,6 +84,7 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
|
|||
/**
|
||||
* 新增量问题内容
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean insertByBo(SysScaleQuestionBo bo) {
|
||||
SysScaleQuestion add = MapstructUtils.convert(bo, SysScaleQuestion.class);
|
||||
|
@ -85,19 +94,31 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
|
|||
if (flag) {
|
||||
bo.setQuestionId(add.getQuestionId());
|
||||
}
|
||||
scaleAnswerMapper.batchInsert(bo.getScaleAnswerList());
|
||||
batchInsertAnswer(bo, add);
|
||||
return flag;
|
||||
}
|
||||
|
||||
private void batchInsertAnswer(SysScaleQuestionBo bo, SysScaleQuestion sysScaleQuestion) {
|
||||
List<SysScaleAnswer> scaleAnswerList = bo.getScaleAnswerList();
|
||||
for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) {
|
||||
sysScaleAnswer.setScaleId(bo.getScaleId());
|
||||
sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId());
|
||||
sysScaleAnswer.setQuestionContent(sysScaleQuestion.getQuestionContent());
|
||||
}
|
||||
scaleAnswerMapper.batchInsert(scaleAnswerList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改量问题内容
|
||||
*/
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public Boolean updateByBo(SysScaleQuestionBo bo) {
|
||||
SysScaleQuestion update = MapstructUtils.convert(bo, SysScaleQuestion.class);
|
||||
validEntityBeforeSave(update);
|
||||
|
||||
scaleAnswerMapper.deleteScaleAnswerByQuestionId(update.getQuestionId());
|
||||
scaleAnswerMapper.batchInsert(bo.getScaleAnswerList());
|
||||
batchInsertAnswer(bo, update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -8,6 +8,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.scale.domain.SysScaleFormula;
|
||||
import org.dromara.scale.mapper.SysScaleFormulaMapper;
|
||||
import org.dromara.system.domain.SysDictData;
|
||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
import org.dromara.system.mapper.SysDictDataMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.scale.domain.bo.SysScaleBo;
|
||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||
|
@ -30,12 +35,14 @@ import java.util.Collection;
|
|||
public class SysScaleServiceImpl implements ISysScaleService {
|
||||
|
||||
private final SysScaleMapper baseMapper;
|
||||
private final SysScaleFormulaMapper sysScaleFormulaMapper;
|
||||
private final SysDictDataMapper sysDictDataMapper;
|
||||
|
||||
/**
|
||||
* 查询心理测评量
|
||||
*/
|
||||
@Override
|
||||
public SysScaleVo queryById(Long scaleId){
|
||||
public SysScaleVo queryById(Long scaleId) {
|
||||
return baseMapper.selectVoById(scaleId);
|
||||
}
|
||||
|
||||
|
@ -46,6 +53,13 @@ public class SysScaleServiceImpl implements ISysScaleService {
|
|||
public TableDataInfo<SysScaleVo> queryPageList(SysScaleBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<SysScale> lqw = buildQueryWrapper(bo);
|
||||
Page<SysScaleVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
for (SysScaleVo record : result.getRecords()) {
|
||||
SysScaleFormula sysScaleFormula = sysScaleFormulaMapper.selectById(record.getFormulaId());
|
||||
record.setFormulaName(sysScaleFormula.getFormulaName());
|
||||
|
||||
SysDictDataVo sysScaleType = sysDictDataMapper.selectDictDataByTypeAndDictValue("sys_scale_type", record.getScaleType());
|
||||
record.setScaleTypeName(sysScaleType.getDictLabel());
|
||||
}
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
|
@ -100,7 +114,7 @@ public class SysScaleServiceImpl implements ISysScaleService {
|
|||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(SysScale entity){
|
||||
private void validEntityBeforeSave(SysScale entity) {
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
|
@ -109,7 +123,7 @@ public class SysScaleServiceImpl implements ISysScaleService {
|
|||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.dromara.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.system.domain.SysDictData;
|
||||
import org.dromara.system.domain.vo.SysDictDataVo;
|
||||
|
@ -12,6 +13,7 @@ import java.util.List;
|
|||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Mapper
|
||||
public interface SysDictDataMapper extends BaseMapperPlus<SysDictData, SysDictDataVo> {
|
||||
|
||||
default List<SysDictDataVo> selectDictDataByType(String dictType) {
|
||||
|
@ -20,4 +22,12 @@ public interface SysDictDataMapper extends BaseMapperPlus<SysDictData, SysDictDa
|
|||
.eq(SysDictData::getDictType, dictType)
|
||||
.orderByAsc(SysDictData::getDictSort));
|
||||
}
|
||||
|
||||
default SysDictDataVo selectDictDataByTypeAndDictValue(String dictType, String dictValue) {
|
||||
return selectVoOne(
|
||||
new LambdaQueryWrapper<SysDictData>()
|
||||
.eq(SysDictData::getDictType, dictType)
|
||||
.eq(SysDictData::getDictValue, dictValue)
|
||||
.last("limit 1"));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue