按照恒沁功能界面重新完善因子范围
This commit is contained in:
parent
0676cf3e27
commit
200944f5f4
|
@ -86,6 +86,11 @@ public class SysScale extends BaseEntity {
|
||||||
*/
|
*/
|
||||||
private Integer evalNums;
|
private Integer evalNums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布次数
|
||||||
|
*/
|
||||||
|
private Integer publishNums;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 量表类型:对应字典项scale_type
|
* 量表类型:对应字典项scale_type
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -9,6 +9,7 @@ import org.dromara.common.core.validate.AddGroup;
|
||||||
import org.dromara.common.core.validate.EditGroup;
|
import org.dromara.common.core.validate.EditGroup;
|
||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
import org.dromara.scale.domain.SysScaleFactor;
|
import org.dromara.scale.domain.SysScaleFactor;
|
||||||
|
import org.dromara.scale.domain.SysScaleFactorRange;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -53,8 +54,8 @@ public class SysScaleFactorBo extends BaseEntity {
|
||||||
@NotNull(message = "因子分计算公式不能为空", groups = { AddGroup.class, EditGroup.class })
|
@NotNull(message = "因子分计算公式不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||||
private Long formulaId;
|
private Long formulaId;
|
||||||
|
|
||||||
|
|
||||||
private List<Long> questionIds;
|
private List<Long> questionIds;
|
||||||
|
|
||||||
|
private List<SysScaleFactorRange> factorRangeList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ 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.scale.domain.SysScaleFactorRange;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -73,4 +74,6 @@ public class SysScaleFactorVo implements Serializable {
|
||||||
* 问题id列表
|
* 问题id列表
|
||||||
*/
|
*/
|
||||||
private List<Long> questionIds;
|
private List<Long> questionIds;
|
||||||
|
|
||||||
|
private List<SysScaleFactorRange> factorRangeList;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,6 +95,11 @@ public class SysScaleVo implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Integer evalNums;
|
private Integer evalNums;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发布次数
|
||||||
|
*/
|
||||||
|
private Integer publishNums;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 量表类型:对应字典项scale_type
|
* 量表类型:对应字典项scale_type
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package org.dromara.scale.mapper;
|
package org.dromara.scale.mapper;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.dromara.scale.domain.SysScaleFactorRange;
|
import org.dromara.scale.domain.SysScaleFactorRange;
|
||||||
import org.dromara.scale.domain.vo.SysScaleFactorRangeVo;
|
import org.dromara.scale.domain.vo.SysScaleFactorRangeVo;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
* @author jiangzhe
|
* @author jiangzhe
|
||||||
* @date 2024-04-07
|
* @date 2024-04-07
|
||||||
*/
|
*/
|
||||||
|
@Mapper
|
||||||
public interface SysScaleFactorRangeMapper extends BaseMapperPlus<SysScaleFactorRange, SysScaleFactorRangeVo> {
|
public interface SysScaleFactorRangeMapper extends BaseMapperPlus<SysScaleFactorRange, SysScaleFactorRangeVo> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,25 +9,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.scale.domain.SysScale;
|
import org.dromara.scale.domain.*;
|
||||||
import org.dromara.scale.domain.SysScaleFormula;
|
|
||||||
import org.dromara.scale.domain.SysScaleQuestion;
|
|
||||||
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
|
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
|
||||||
|
import org.dromara.scale.domain.vo.SysScaleFactorRangeVo;
|
||||||
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
||||||
import org.dromara.scale.mapper.SysScaleFormulaMapper;
|
import org.dromara.scale.mapper.*;
|
||||||
import org.dromara.scale.mapper.SysScaleMapper;
|
|
||||||
import org.dromara.scale.mapper.SysScaleQuestionMapper;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.dromara.scale.domain.bo.SysScaleFactorBo;
|
import org.dromara.scale.domain.bo.SysScaleFactorBo;
|
||||||
import org.dromara.scale.domain.vo.SysScaleFactorVo;
|
import org.dromara.scale.domain.vo.SysScaleFactorVo;
|
||||||
import org.dromara.scale.domain.SysScaleFactor;
|
|
||||||
import org.dromara.scale.mapper.SysScaleFactorMapper;
|
|
||||||
import org.dromara.scale.service.ISysScaleFactorService;
|
import org.dromara.scale.service.ISysScaleFactorService;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -44,6 +37,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
private final SysScaleMapper scaleMapper;
|
private final SysScaleMapper scaleMapper;
|
||||||
private final SysScaleFormulaMapper scaleFormulaMapper;
|
private final SysScaleFormulaMapper scaleFormulaMapper;
|
||||||
private final SysScaleQuestionMapper scaleQuestionMapper;
|
private final SysScaleQuestionMapper scaleQuestionMapper;
|
||||||
|
private final SysScaleFactorRangeMapper sysScaleFactorRangeMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询测评因子
|
* 查询测评因子
|
||||||
|
@ -55,6 +49,15 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
List<Long> questionIds = list.stream().map(SysScaleQuestionVo::getQuestionId).collect(Collectors.toList());
|
List<Long> questionIds = list.stream().map(SysScaleQuestionVo::getQuestionId).collect(Collectors.toList());
|
||||||
sysScaleFactorVo.setQuestionIds(questionIds);
|
sysScaleFactorVo.setQuestionIds(questionIds);
|
||||||
|
} else {
|
||||||
|
sysScaleFactorVo.setQuestionIds(Collections.emptyList());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SysScaleFactorRange> rangeList = sysScaleFactorRangeMapper.selectList(Wrappers.<SysScaleFactorRange>lambdaQuery().eq(SysScaleFactorRange::getFactorId, factorId));
|
||||||
|
if (CollUtil.isNotEmpty(rangeList)) {
|
||||||
|
sysScaleFactorVo.setFactorRangeList(rangeList);
|
||||||
|
} else {
|
||||||
|
sysScaleFactorVo.setFactorRangeList(Collections.emptyList());
|
||||||
}
|
}
|
||||||
return sysScaleFactorVo;
|
return sysScaleFactorVo;
|
||||||
}
|
}
|
||||||
|
@ -98,6 +101,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
/**
|
/**
|
||||||
* 新增测评因子
|
* 新增测评因子
|
||||||
*/
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertByBo(SysScaleFactorBo bo) {
|
public Boolean insertByBo(SysScaleFactorBo bo) {
|
||||||
SysScaleFactor add = MapstructUtils.convert(bo, SysScaleFactor.class);
|
SysScaleFactor add = MapstructUtils.convert(bo, SysScaleFactor.class);
|
||||||
|
@ -108,27 +112,55 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
||||||
List<SysScaleQuestion> list = new ArrayList<>(bo.getQuestionIds().size());
|
updateQuestionFactor(bo);
|
||||||
for (Long questionId : bo.getQuestionIds()) {
|
}
|
||||||
SysScaleQuestion question = new SysScaleQuestion();
|
|
||||||
question.setQuestionId(questionId);
|
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
||||||
question.setFactorId(bo.getFactorId());
|
insertFactorRange(bo);
|
||||||
question.setFactorName(bo.getFactorName());
|
|
||||||
list.add(question);
|
|
||||||
}
|
|
||||||
scaleQuestionMapper.updateBatchById(list, 100);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return flag;
|
return flag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void insertFactorRange(SysScaleFactorBo bo) {
|
||||||
|
List<SysScaleFactorRange> list = new ArrayList<>(bo.getFactorRangeList().size());
|
||||||
|
for (SysScaleFactorRange range : bo.getFactorRangeList()) {
|
||||||
|
range.setFactorId(bo.getFactorId());
|
||||||
|
list.add(range);
|
||||||
|
}
|
||||||
|
sysScaleFactorRangeMapper.insertBatch(list, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateQuestionFactor(SysScaleFactorBo bo) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改测评因子
|
* 修改测评因子
|
||||||
*/
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public Boolean updateByBo(SysScaleFactorBo bo) {
|
public Boolean updateByBo(SysScaleFactorBo bo) {
|
||||||
SysScaleFactor update = MapstructUtils.convert(bo, SysScaleFactor.class);
|
SysScaleFactor update = MapstructUtils.convert(bo, SysScaleFactor.class);
|
||||||
validEntityBeforeSave(update);
|
validEntityBeforeSave(update);
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
||||||
|
updateQuestionFactor(bo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
||||||
|
sysScaleFactorRangeMapper.delete(Wrappers.lambdaQuery(SysScaleFactorRange.class).eq(SysScaleFactorRange::getFactorId, bo.getFactorId()));
|
||||||
|
insertFactorRange(bo);
|
||||||
|
}
|
||||||
|
|
||||||
return baseMapper.updateById(update) > 0;
|
return baseMapper.updateById(update) > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,7 +103,6 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
|
||||||
for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) {
|
for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) {
|
||||||
sysScaleAnswer.setScaleId(bo.getScaleId());
|
sysScaleAnswer.setScaleId(bo.getScaleId());
|
||||||
sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId());
|
sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId());
|
||||||
//sysScaleAnswer.setQuestionContent(sysScaleQuestion.getQuestionContent());
|
|
||||||
}
|
}
|
||||||
scaleAnswerMapper.batchInsert(scaleAnswerList);
|
scaleAnswerMapper.batchInsert(scaleAnswerList);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,12 +4,10 @@
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.scale.mapper.SysScaleAnswerMapper">
|
<mapper namespace="org.dromara.scale.mapper.SysScaleAnswerMapper">
|
||||||
<insert id="batchInsert">
|
<insert id="batchInsert">
|
||||||
insert into sys_scale_answer(answer_id, question_id, question_content, scale_id, answer_option, score,
|
insert into sys_scale_answer(answer_id, question_id, scale_id, answer_option, score, type) values
|
||||||
create_dept, create_time, create_by, update_time, update_by, factor_id) values
|
|
||||||
<foreach item="item" index="index" collection="list" separator=",">
|
<foreach item="item" index="index" collection="list" separator=",">
|
||||||
(#{item.answerId}, #{item.questionId}, #{item.questionContent}, #{item.scaleId}, #{item.answerOption},
|
(#{item.answerId}, #{item.questionId}, #{item.scaleId}, #{item.answerOption},
|
||||||
#{item.score}, #{item.createDept}, #{item.createTime}, #{item.createBy}, #{item.updateTime},
|
#{item.score}, #{item.type})
|
||||||
#{item.updateBy}, #{item.factorId})
|
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue