From a154caee2a549da644002e3046e37ed2aac5ede2 Mon Sep 17 00:00:00 2001 From: cjw Date: Mon, 15 Apr 2024 14:02:20 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8F=E8=A1=A8=E5=8F=91=E5=B8=83=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=EF=BC=9B=E6=A0=B9=E6=8D=AE=E5=88=86=E7=BB=84=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E5=8F=91=E5=B8=83=E4=BC=98=E5=8C=96=EF=BC=9B=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8F=90=E4=BA=A4=E6=B5=8B=E8=AF=84=E7=AD=94=E6=A1=88?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scale/controller/web/WebController.java | 12 +- .../scale/domain/SysEvaluationRecord.java | 5 + .../scale/domain/bo/SubmitAnswerBo.java | 21 ++++ .../domain/vo/SysEvaluationRecordVo.java | 5 + .../dromara/scale/mapper/SysScaleMapper.java | 5 +- .../service/ISysScalePublishService.java | 2 +- .../dromara/scale/service/IWebService.java | 4 +- .../impl/SysScalePublishServiceImpl.java | 75 +++---------- .../scale/service/impl/WebServiceImpl.java | 106 ++++++++++++++---- .../resources/mapper/scale/SysScaleMapper.xml | 18 ++- 10 files changed, 160 insertions(+), 93 deletions(-) create mode 100644 ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SubmitAnswerBo.java diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java index 1506912..8531bb3 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/controller/web/WebController.java @@ -1,6 +1,5 @@ package org.dromara.scale.controller.web; -import cn.hutool.core.util.ArrayUtil; import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; @@ -9,11 +8,11 @@ import org.dromara.common.idempotent.annotation.RepeatSubmit; import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; -import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; +import org.dromara.scale.domain.bo.SubmitAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationRecordBo; import org.dromara.scale.domain.vo.QuestionAnswerVo; import org.dromara.scale.domain.vo.SysScalePublishVo; -import org.dromara.scale.service.*; +import org.dromara.scale.service.IWebService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -69,10 +68,7 @@ public class WebController extends BaseController { @Log(title = "量测记录", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping("/record/answer") - public R> add(@Validated(AddGroup.class) @RequestBody List answerList) { - if (ArrayUtil.isEmpty(answerList)) { - R.fail("请先填写,再提交"); - } - return R.ok(webService.submitAnswer(answerList)); + public R> add(@Validated(AddGroup.class) @RequestBody SubmitAnswerBo bo) { + return R.ok(webService.submitAnswer(bo)); } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java index 6d7e2e2..60443c0 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/SysEvaluationRecord.java @@ -38,6 +38,11 @@ public class SysEvaluationRecord { */ private Long userId; + /** + * 部门id + */ + private Long deptId; + /** * td_scale_publish表主键 */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SubmitAnswerBo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SubmitAnswerBo.java new file mode 100644 index 0000000..4239388 --- /dev/null +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/bo/SubmitAnswerBo.java @@ -0,0 +1,21 @@ +package org.dromara.scale.domain.bo; + +import lombok.Data; + +import java.util.List; + +/** + *

TODO

+ * + * @author cjw + * @version V1.0.0 + * @date 2024/4/15 11:09 + */ +@Data +public class SubmitAnswerBo { + + private Long scaleId; + + + private List answerList; +} diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysEvaluationRecordVo.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysEvaluationRecordVo.java index 83dd73e..96454ab 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysEvaluationRecordVo.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/vo/SysEvaluationRecordVo.java @@ -43,6 +43,11 @@ public class SysEvaluationRecordVo implements Serializable { @ExcelProperty(value = "测评人id") private Long userId; + /** + * 部门id + */ + @ExcelProperty(value = "部门id") + private Long deptId; /** * td_scale_publish表主键 */ diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java index 02dc998..a5fa7f4 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScaleMapper.java @@ -7,8 +7,6 @@ import org.dromara.scale.domain.vo.SysScaleVo; import java.util.List; -import java.util.List; - /** * 心理测评量Mapper接口 * @@ -20,4 +18,7 @@ public interface SysScaleMapper extends BaseMapperPlus { List findSysScaleByIds(String scaleIds); + void updateEvalNums(Long scaleId); + void updatePublishNums(Long scaleId); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java index db333b2..5f07b07 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/ISysScalePublishService.java @@ -46,5 +46,5 @@ public interface ISysScalePublishService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - SysScalePublishVo queryPublishScale(); + } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java index 0e0a9a1..0a231b5 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/IWebService.java @@ -1,6 +1,6 @@ package org.dromara.scale.service; -import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; +import org.dromara.scale.domain.bo.SubmitAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationRecordBo; import org.dromara.scale.domain.vo.QuestionAnswerVo; import org.dromara.scale.domain.vo.SysScalePublishVo; @@ -16,5 +16,5 @@ public interface IWebService { Long newRecord(SysEvaluationRecordBo bo); - Map submitAnswer(List answerList); + Map submitAnswer(SubmitAnswerBo bo); } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java index 93c5e03..e587afd 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScalePublishServiceImpl.java @@ -1,31 +1,28 @@ package org.dromara.scale.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.exception.ServiceException; 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.SysScale; +import org.dromara.scale.constant.StatusEnum; import org.dromara.scale.domain.SysScalePublish; import org.dromara.scale.domain.bo.SysScalePublishBo; -import org.dromara.scale.domain.vo.SysEvaluationRecordVo; import org.dromara.scale.domain.vo.SysScalePublishVo; import org.dromara.scale.domain.vo.SysScaleVo; -import org.dromara.scale.mapper.SysEvaluationRecordMapper; import org.dromara.scale.mapper.SysScaleMapper; import org.dromara.scale.mapper.SysScalePublishMapper; import org.dromara.scale.service.ISysScalePublishService; -import org.dromara.system.domain.SysOss; -import org.dromara.system.mapper.SysOssMapper; import org.springframework.stereotype.Service; -import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.List; @@ -47,10 +44,6 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { private final SysScaleMapper sysScaleMapper; - private final SysEvaluationRecordMapper recordMapper; - - private final SysOssMapper sysOssMapper; - /** * 查询量发布 */ @@ -82,7 +75,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { //Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); // lqw.eq(StringUtils.isNotBlank(bo.getScaleIds()), SysScalePublish::getScaleIds, bo.getScaleIds()); - lqw.eq(StringUtils.isNotBlank(bo.getScaleNames()), SysScalePublish::getScaleNames, bo.getScaleNames()); +// lqw.eq(StringUtils.isNotBlank(bo.getScaleNames()), SysScalePublish::getScaleNames, bo.getScaleNames()); lqw.like(StringUtils.isNotBlank(bo.getSessionName()), SysScalePublish::getSessionName, bo.getSessionName()); lqw.eq(bo.getDeptId() != null, SysScalePublish::getDeptId, bo.getDeptId()); lqw.eq(bo.getPartNum() != null, SysScalePublish::getPartNum, bo.getPartNum()); @@ -107,15 +100,15 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { List list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds())); add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA))); - List scaleList = new ArrayList<>(bo.getScaleIds().size()); + //List scaleList = new ArrayList<>(bo.getScaleIds().size()); for (String scaleId : bo.getScaleIds()) { - SysScale sysScale = sysScaleMapper.selectById(scaleId); - sysScale.setPublishNums(sysScale.getPublishNums() + 1); - scaleList.add(sysScale); + sysScaleMapper.updatePublishNums(Long.parseLong(scaleId)); +// SysScale sysScale = sysScaleMapper.selectById(scaleId); +// sysScale.setPublishNums(sysScale.getPublishNums() + 1); +// scaleList.add(sysScale); } - sysScaleMapper.updateBatchById(scaleList, 100); + //sysScaleMapper.updateBatchById(scaleList, 100); } - boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setBatchNo(add.getBatchNo()); @@ -139,6 +132,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { */ private void validEntityBeforeSave(SysScalePublish entity) { //TODO 做一些数据校验,如唯一约束 + Long deptId = entity.getDeptId(); + List sysScalePublishVos = baseMapper.selectVoList(new LambdaQueryWrapper() + .eq(SysScalePublish::getDeptId, deptId) + .eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue())); + if(!ArrayUtil.isEmpty(sysScalePublishVos)){ + throw new ServiceException("此年级下已有发布"); + } } /** @@ -152,45 +152,4 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService { return baseMapper.deleteBatchIds(ids) > 0; } - @Override - public SysScalePublishVo queryPublishScale() { - LoginUser loginUser = getLoginUser(); - Long userId = loginUser.getUserId(); - Long deptId = loginUser.getDeptId(); - SysScalePublishVo sysScalePublishVo = null; - //先查询有用户组的发布 - if (deptId != null) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(SysScalePublish::getDeptId, deptId); - lqw.eq(SysScalePublish::getStatus, 1); - lqw.last("limit 1"); - sysScalePublishVo = baseMapper.selectVoOne(lqw); - } - //如果没用户组或者有用户组的发布为空,则查针对全部的发布 - if (sysScalePublishVo == null) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(SysScalePublish::getDeptId, null); - lqw.eq(SysScalePublish::getStatus, 1); - sysScalePublishVo = baseMapper.selectVoOne(lqw); - } - if (sysScalePublishVo == null) { - return new SysScalePublishVo(); - } - Long batchNo = sysScalePublishVo.getBatchNo(); - String scaleIds = sysScalePublishVo.getScaleIds(); - List publishScaleVos = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, scaleIds)); - List recordVos = recordMapper.selectSclaeRecordListByUserAndBatch(userId, batchNo); - for (SysScaleVo publishScaleVo : publishScaleVos) { - SysOss sysOss = sysOssMapper.selectById(publishScaleVo.getCover()); - publishScaleVo.setCoverUrl(sysOss.getUrl()); - //已做过量表 - for (SysEvaluationRecordVo recordVo : recordVos) { - if( publishScaleVo.getScaleId().equals(recordVo.getScaleId())){ - publishScaleVo.setUsed(true); - } - } - } - sysScalePublishVo.setScaleList(publishScaleVos); - return sysScalePublishVo; - } } diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java index 227f865..f5cdfc9 100644 --- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java +++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/WebServiceImpl.java @@ -1,26 +1,33 @@ package org.dromara.scale.service.impl; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.model.LoginUser; +import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.MapstructUtils; import org.dromara.scale.constant.ScaleDimensionEnum; import org.dromara.scale.constant.ScoreRuleTypeEnum; import org.dromara.scale.constant.SituationEnum; import org.dromara.scale.constant.StatusEnum; -import org.dromara.scale.domain.SysEvaluationAnswer; -import org.dromara.scale.domain.SysEvaluationConclusion; -import org.dromara.scale.domain.SysEvaluationRecord; -import org.dromara.scale.domain.SysScale; +import org.dromara.scale.domain.*; +import org.dromara.scale.domain.bo.SubmitAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationAnswerBo; import org.dromara.scale.domain.bo.SysEvaluationRecordBo; import org.dromara.scale.domain.vo.*; -import org.dromara.scale.mapper.SysEvaluationAnswerMapper; -import org.dromara.scale.mapper.SysEvaluationConclusionMapper; -import org.dromara.scale.mapper.SysEvaluationRecordMapper; -import org.dromara.scale.mapper.SysScaleMapper; -import org.dromara.scale.service.*; +import org.dromara.scale.mapper.*; +import org.dromara.scale.service.ISysScaleAnswerService; +import org.dromara.scale.service.ISysScaleFactorService; +import org.dromara.scale.service.ISysScaleQuestionService; +import org.dromara.scale.service.IWebService; +import org.dromara.system.domain.SysOss; +import org.dromara.system.domain.vo.SysDeptVo; +import org.dromara.system.mapper.SysDeptMapper; +import org.dromara.system.mapper.SysOssMapper; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.math.MathContext; @@ -42,7 +49,6 @@ import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser; @Service public class WebServiceImpl implements IWebService { - private final ISysScalePublishService scalePublishService; private final ISysScaleFactorService scaleFactorService; @@ -52,17 +58,67 @@ public class WebServiceImpl implements IWebService { private final SysScaleMapper scaleMapper; + private final SysScalePublishMapper publishMapper; + private final SysEvaluationRecordMapper recordMapper; private final SysEvaluationConclusionMapper evaluationConclusionMapper; private final SysEvaluationAnswerMapper evaluationAnswerMapper; + + private final SysOssMapper ossMapper; + + private final SysDeptMapper deptMapper; private final MathContext mathContext = new MathContext(2); @Override public SysScalePublishVo queryPublishScale() { - return scalePublishService.queryPublishScale(); + LoginUser loginUser = getLoginUser(); + Long userId = loginUser.getUserId(); + Long deptId = loginUser.getDeptId(); + SysScalePublishVo sysScalePublishVo = null; + if (deptId != null) { + //先查询直接用户组的发布 + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SysScalePublish::getDeptId, deptId); + lqw.eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue()); + sysScalePublishVo = publishMapper.selectVoOne(lqw); + //没有则查询上级用户组的发布 + if (sysScalePublishVo == null) { + SysDeptVo sysDept = deptMapper.selectDeptById(deptId); + LambdaQueryWrapper parentLqw = Wrappers.lambdaQuery(); + parentLqw.eq(SysScalePublish::getDeptId, sysDept.getParentId()); + parentLqw.eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue()); + sysScalePublishVo = publishMapper.selectVoOne(lqw); + } + } + //都没有则查针对全部的发布 + if (sysScalePublishVo == null) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SysScalePublish::getDeptId, null); + lqw.eq(SysScalePublish::getStatus, StatusEnum.IN_USE.getValue()); + sysScalePublishVo = publishMapper.selectVoOne(lqw); + } + if (sysScalePublishVo == null) { + return new SysScalePublishVo(); + } + Long batchNo = sysScalePublishVo.getBatchNo(); + String scaleIds = sysScalePublishVo.getScaleIds(); + List publishScaleVos = scaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, scaleIds)); + List recordVos = recordMapper.selectSclaeRecordListByUserAndBatch(userId, batchNo); + for (SysScaleVo publishScaleVo : publishScaleVos) { + SysOss sysOss = ossMapper.selectById(publishScaleVo.getCover()); + publishScaleVo.setCoverUrl(sysOss.getUrl()); + //已做过量表 + for (SysEvaluationRecordVo recordVo : recordVos) { + if (publishScaleVo.getScaleId().equals(recordVo.getScaleId())) { + publishScaleVo.setUsed(true); + } + } + } + sysScalePublishVo.setScaleList(publishScaleVos); + return sysScalePublishVo; } @Override @@ -75,6 +131,7 @@ public class WebServiceImpl implements IWebService { LoginUser loginUser = getLoginUser(); SysEvaluationRecord add = MapstructUtils.convert(bo, SysEvaluationRecord.class); add.setUserId(loginUser.getUserId()); + add.setDeptId(loginUser.getDeptId()); add.setCreateTime(new Date()); //validEntityBeforeSave(add); boolean flag = recordMapper.insert(add) > 0; @@ -84,9 +141,22 @@ public class WebServiceImpl implements IWebService { return add.getRecordId(); } + @Transactional(rollbackFor = Exception.class) @Override - public Map submitAnswer(List answerList) { + public Map submitAnswer(SubmitAnswerBo bo) { boolean allowQueryResult = true; + Long scaleId = bo.getScaleId(); + + Map> answerMapByQuestion = scaleAnswerService.getScaleAnswerMap(scaleId); + int keySize = answerMapByQuestion.keySet().size(); + List answerList = bo.getAnswerList(); + if (ArrayUtil.isEmpty(answerList)) { + throw new ServiceException("请先填写,再提交"); + } + int answerSize = answerList.size(); + if (keySize != answerSize) { + throw new ServiceException("有题目未作选择,请检查后提交"); + } Long recordId = answerList.get(0).getRecordId(); SysScalePublishVo scalePublishVo = recordMapper.selectPublishByUseRecord(recordId); //查询考核结果 @@ -96,7 +166,7 @@ public class WebServiceImpl implements IWebService { List answerAdd = MapstructUtils.convert(answerList, SysEvaluationAnswer.class); evaluationAnswerMapper.insertBatch(answerAdd); - List list = calculateEvaluationResult(answerList); + List list = calculateEvaluationResult(scaleId, answerList); List conclusionAdd = MapstructUtils.convert(list, SysEvaluationConclusion.class); evaluationConclusionMapper.insertBatch(conclusionAdd); @@ -129,7 +199,7 @@ public class WebServiceImpl implements IWebService { .map(SysEvaluationConclusionVo::getScore) // 使用reduce()聚合函数,得到金额总和 .reduce(BigDecimal.ZERO, BigDecimal::add); - return new HashMap() {{ + return new HashMap<>() {{ //put("evalRecordId",evalRecord.getId()); //put("scaleName",scaleInfo.getName()); put("totalScore", totalScore.doubleValue()); @@ -138,11 +208,8 @@ public class WebServiceImpl implements IWebService { }}; } - private List calculateEvaluationResult(List answerList) { + private List calculateEvaluationResult(Long scaleId, List answerList) { Long recordId = answerList.get(0).getRecordId(); - SysEvaluationRecordVo recordVo = recordMapper.selectVoById(recordId); - Long scaleId = recordVo.getScaleId(); - Map> questionMapByFactor = scaleQuestionService.getScaleQuestionMap(scaleId); Map> answerMapByQuestion = scaleAnswerService.getScaleAnswerMap(scaleId); @@ -181,10 +248,9 @@ public class WebServiceImpl implements IWebService { }); scaleFactor.setQuestionIds(questionIds); //计算得分率 - if (totalSocre.get().compareTo(BigDecimal.ZERO) > 0) { evalConclusion.setScoreRate(evalConclusion.getScore() - .multiply(new BigDecimal(100)).divide(totalSocre.get()).setScale(2, RoundingMode.HALF_UP)); + .multiply(new BigDecimal(100)).divide(totalSocre.get(), 2, RoundingMode.HALF_UP)); } //计算量表加强后得分 calcScoreByRuleType(evalConclusion, scaleFactor); diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml index e7e6217..9ffce8f 100644 --- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml +++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/SysScaleMapper.xml @@ -3,8 +3,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + + + + update sys_scale + set eval_nums = eval_nums + 1 + where scale_id = #{scaleId} + + + + update sys_scale + set publish_nums = publish_nums + 1 + where scale_id = #{scaleId} +