Compare commits
4 Commits
ab1d958e49
...
2f07f6d4bb
Author | SHA1 | Date |
---|---|---|
|
2f07f6d4bb | |
|
5f64389f6e | |
|
53f055c155 | |
|
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.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
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 BigDecimal weight;
|
private BigDecimal weight;
|
||||||
|
|
||||||
|
|
||||||
private List<Long> questionIds;
|
private List<Long> questionIds;
|
||||||
|
|
||||||
|
private List<SysScaleFactorRange> factorRangeList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.dromara.scale.domain.SysScaleFactor;
|
import org.dromara.scale.domain.SysScaleFactor;
|
||||||
|
import org.dromara.scale.domain.SysScaleFactorRange;
|
||||||
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
@ -64,4 +66,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> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,21 +11,17 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.scale.domain.SysScale;
|
import org.dromara.scale.domain.SysScale;
|
||||||
import org.dromara.scale.domain.SysScaleFactor;
|
import org.dromara.scale.domain.SysScaleFactor;
|
||||||
|
import org.dromara.scale.domain.SysScaleFactorRange;
|
||||||
import org.dromara.scale.domain.SysScaleQuestion;
|
import org.dromara.scale.domain.SysScaleQuestion;
|
||||||
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.vo.SysScaleQuestionVo;
|
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
|
||||||
import org.dromara.scale.mapper.SysScaleFactorMapper;
|
import org.dromara.scale.mapper.*;
|
||||||
import org.dromara.scale.mapper.SysScaleFormulaMapper;
|
|
||||||
import org.dromara.scale.mapper.SysScaleMapper;
|
|
||||||
import org.dromara.scale.mapper.SysScaleQuestionMapper;
|
|
||||||
import org.dromara.scale.service.ISysScaleFactorService;
|
import org.dromara.scale.service.ISysScaleFactorService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -42,6 +38,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;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询测评因子
|
* 查询测评因子
|
||||||
|
@ -53,6 +50,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;
|
||||||
}
|
}
|
||||||
|
@ -94,6 +100,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);
|
||||||
|
@ -104,27 +111,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