量表代码提交

This commit is contained in:
jiangzhe 2024-04-03 11:25:53 +08:00
parent 24b2a131b8
commit a4278fbcf2
12 changed files with 86 additions and 12 deletions

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
/**
* 预警分数
*/

View File

@ -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);

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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> {
}

View File

@ -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);

View File

@ -13,6 +13,7 @@ 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;
@ -27,6 +28,7 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.stream.Collectors;
/**
* 测评因子Service业务层处理
@ -48,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;
}
/**

View File

@ -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;
@ -41,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;
}
/**
@ -88,25 +94,31 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
if (flag) {
bo.setQuestionId(add.getQuestionId());
}
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(add.getQuestionId());
sysScaleAnswer.setQuestionContent(add.getQuestionContent());
sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId());
sysScaleAnswer.setQuestionContent(sysScaleQuestion.getQuestionContent());
}
scaleAnswerMapper.batchInsert(scaleAnswerList);
return flag;
}
/**
* 修改量问题内容
*/
@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;
}

View File

@ -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;

View File

@ -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"));
}
}