From 200944f5f4c378a2ec216190a11e2769542d2c85 Mon Sep 17 00:00:00 2001 From: jiangzhe <244140623@qq.com> Date: Tue, 9 Apr 2024 11:01:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=89=E7=85=A7=E6=81=92=E6=B2=81=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=95=8C=E9=9D=A2=E9=87=8D=E6=96=B0=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E5=9B=A0=E5=AD=90=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/scale/domain/SysScale.java | 5 ++ .../scale/domain/bo/SysScaleFactorBo.java | 3 +- .../scale/domain/vo/SysScaleFactorVo.java | 3 + .../dromara/scale/domain/vo/SysScaleVo.java | 5 ++ .../mapper/SysScaleFactorRangeMapper.java | 2 + .../impl/SysScaleFactorServiceImpl.java | 74 +++++++++++++------ .../impl/SysScaleQuestionServiceImpl.java | 1 - .../mapper/scale/SysScaleAnswerMapper.xml | 8 +- 8 files changed, 73 insertions(+), 28 deletions(-) diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java index caa0350..d53f63e 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysScale.java @@ -86,6 +86,11 @@ public class SysScale extends BaseEntity { */ private Integer evalNums; + /** + * 发布次数 + */ + private Integer publishNums; + /** * 量表类型:对应字典项scale_type */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleFactorBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleFactorBo.java index 0a0e158..70c62ab 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleFactorBo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SysScaleFactorBo.java @@ -9,6 +9,7 @@ import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.scale.domain.SysScaleFactor; +import org.dromara.scale.domain.SysScaleFactorRange; import java.util.List; @@ -53,8 +54,8 @@ public class SysScaleFactorBo extends BaseEntity { @NotNull(message = "因子分计算公式不能为空", groups = { AddGroup.class, EditGroup.class }) private Long formulaId; - private List questionIds; + private List factorRangeList; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleFactorVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleFactorVo.java index 102b9d7..d42fa40 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleFactorVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleFactorVo.java @@ -7,6 +7,7 @@ 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.scale.domain.SysScaleFactorRange; import java.io.Serial; import java.io.Serializable; @@ -73,4 +74,6 @@ public class SysScaleFactorVo implements Serializable { * 问题id列表 */ private List questionIds; + + private List factorRangeList; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java index 711452e..be2719f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysScaleVo.java @@ -95,6 +95,11 @@ public class SysScaleVo implements Serializable { */ private Integer evalNums; + /** + * 发布次数 + */ + private Integer publishNums; + /** * 量表类型:对应字典项scale_type */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleFactorRangeMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleFactorRangeMapper.java index 853eb42..7fe8f37 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleFactorRangeMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleFactorRangeMapper.java @@ -1,5 +1,6 @@ package org.dromara.scale.mapper; +import org.apache.ibatis.annotations.Mapper; import org.dromara.scale.domain.SysScaleFactorRange; import org.dromara.scale.domain.vo.SysScaleFactorRangeVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -10,6 +11,7 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; * @author jiangzhe * @date 2024-04-07 */ +@Mapper public interface SysScaleFactorRangeMapper extends BaseMapperPlus { } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleFactorServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleFactorServiceImpl.java index 520703f..57332a3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleFactorServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleFactorServiceImpl.java @@ -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.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.*; 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.mapper.SysScaleFormulaMapper; -import org.dromara.scale.mapper.SysScaleMapper; -import org.dromara.scale.mapper.SysScaleQuestionMapper; +import org.dromara.scale.mapper.*; import org.springframework.stereotype.Service; import org.dromara.scale.domain.bo.SysScaleFactorBo; 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.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; import java.util.stream.Collectors; /** @@ -44,6 +37,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService { private final SysScaleMapper scaleMapper; private final SysScaleFormulaMapper scaleFormulaMapper; private final SysScaleQuestionMapper scaleQuestionMapper; + private final SysScaleFactorRangeMapper sysScaleFactorRangeMapper; /** * 查询测评因子 @@ -55,6 +49,15 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService { if (CollUtil.isNotEmpty(list)) { List questionIds = list.stream().map(SysScaleQuestionVo::getQuestionId).collect(Collectors.toList()); sysScaleFactorVo.setQuestionIds(questionIds); + } else { + sysScaleFactorVo.setQuestionIds(Collections.emptyList()); + } + + List rangeList = sysScaleFactorRangeMapper.selectList(Wrappers.lambdaQuery().eq(SysScaleFactorRange::getFactorId, factorId)); + if (CollUtil.isNotEmpty(rangeList)) { + sysScaleFactorVo.setFactorRangeList(rangeList); + } else { + sysScaleFactorVo.setFactorRangeList(Collections.emptyList()); } return sysScaleFactorVo; } @@ -98,6 +101,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService { /** * 新增测评因子 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean insertByBo(SysScaleFactorBo bo) { SysScaleFactor add = MapstructUtils.convert(bo, SysScaleFactor.class); @@ -108,27 +112,55 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService { } if (CollUtil.isNotEmpty(bo.getQuestionIds())) { - List 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); + updateQuestionFactor(bo); + } + + if (CollUtil.isNotEmpty(bo.getFactorRangeList())) { + insertFactorRange(bo); } return flag; } + private void insertFactorRange(SysScaleFactorBo bo) { + List 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 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 public Boolean updateByBo(SysScaleFactorBo bo) { SysScaleFactor update = MapstructUtils.convert(bo, SysScaleFactor.class); 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; } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java index 0a2070c..603adc7 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java @@ -103,7 +103,6 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService { for (SysScaleAnswer sysScaleAnswer : scaleAnswerList) { sysScaleAnswer.setScaleId(bo.getScaleId()); sysScaleAnswer.setQuestionId(sysScaleQuestion.getQuestionId()); - //sysScaleAnswer.setQuestionContent(sysScaleQuestion.getQuestionContent()); } scaleAnswerMapper.batchInsert(scaleAnswerList); } diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleAnswerMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleAnswerMapper.xml index b43d635..31fbcde 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleAnswerMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleAnswerMapper.xml @@ -4,12 +4,10 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - insert into sys_scale_answer(answer_id, question_id, question_content, scale_id, answer_option, score, - create_dept, create_time, create_by, update_time, update_by, factor_id) values + insert into sys_scale_answer(answer_id, question_id, scale_id, answer_option, score, type) values - (#{item.answerId}, #{item.questionId}, #{item.questionContent}, #{item.scaleId}, #{item.answerOption}, - #{item.score}, #{item.createDept}, #{item.createTime}, #{item.createBy}, #{item.updateTime}, - #{item.updateBy}, #{item.factorId}) + (#{item.answerId}, #{item.questionId}, #{item.scaleId}, #{item.answerOption}, + #{item.score}, #{item.type})