量表发布校验;根据分组查看发布优化;用户提交测评答案校验
This commit is contained in:
parent
0aef5e4362
commit
a154caee2a
|
@ -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<Map<String,Object>> add(@Validated(AddGroup.class) @RequestBody List<SysEvaluationAnswerBo> answerList) {
|
||||
if (ArrayUtil.isEmpty(answerList)) {
|
||||
R.fail("请先填写,再提交");
|
||||
}
|
||||
return R.ok(webService.submitAnswer(answerList));
|
||||
public R<Map<String,Object>> add(@Validated(AddGroup.class) @RequestBody SubmitAnswerBo bo) {
|
||||
return R.ok(webService.submitAnswer(bo));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,11 @@ public class SysEvaluationRecord {
|
|||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 部门id
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* td_scale_publish表主键
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
package org.dromara.scale.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>TODO<p>
|
||||
*
|
||||
* @author cjw
|
||||
* @version V1.0.0
|
||||
* @date 2024/4/15 11:09
|
||||
*/
|
||||
@Data
|
||||
public class SubmitAnswerBo {
|
||||
|
||||
private Long scaleId;
|
||||
|
||||
|
||||
private List<SysEvaluationAnswerBo> answerList;
|
||||
}
|
|
@ -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表主键
|
||||
*/
|
||||
|
|
|
@ -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<SysScale, SysScaleVo> {
|
|||
|
||||
List<SysScaleVo> findSysScaleByIds(String scaleIds);
|
||||
|
||||
void updateEvalNums(Long scaleId);
|
||||
void updatePublishNums(Long scaleId);
|
||||
|
||||
}
|
||||
|
|
|
@ -46,5 +46,5 @@ public interface ISysScalePublishService {
|
|||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
|
||||
SysScalePublishVo queryPublishScale();
|
||||
|
||||
}
|
||||
|
|
|
@ -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<String,Object> submitAnswer(List<SysEvaluationAnswerBo> answerList);
|
||||
Map<String,Object> submitAnswer(SubmitAnswerBo bo);
|
||||
}
|
||||
|
|
|
@ -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<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<SysScalePublish> 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<SysScaleVo> list = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, bo.getScaleIds()));
|
||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||
|
||||
List<SysScale> scaleList = new ArrayList<>(bo.getScaleIds().size());
|
||||
//List<SysScale> 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<SysScalePublishVo> sysScalePublishVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysScalePublish>()
|
||||
.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<SysScalePublish> 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<SysScalePublish> 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<SysScaleVo> publishScaleVos = sysScaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, scaleIds));
|
||||
List<SysEvaluationRecordVo> 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<SysScalePublish> 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<SysScalePublish> 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<SysScalePublish> 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<SysScaleVo> publishScaleVos = scaleMapper.findSysScaleByIds(StrUtil.join(StrUtil.COMMA, scaleIds));
|
||||
List<SysEvaluationRecordVo> 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<String, Object> submitAnswer(List<SysEvaluationAnswerBo> answerList) {
|
||||
public Map<String, Object> submitAnswer(SubmitAnswerBo bo) {
|
||||
boolean allowQueryResult = true;
|
||||
Long scaleId = bo.getScaleId();
|
||||
|
||||
Map<Long, List<SysScaleAnswerVo>> answerMapByQuestion = scaleAnswerService.getScaleAnswerMap(scaleId);
|
||||
int keySize = answerMapByQuestion.keySet().size();
|
||||
List<SysEvaluationAnswerBo> 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<SysEvaluationAnswer> answerAdd = MapstructUtils.convert(answerList, SysEvaluationAnswer.class);
|
||||
evaluationAnswerMapper.insertBatch(answerAdd);
|
||||
|
||||
List<SysEvaluationConclusionVo> list = calculateEvaluationResult(answerList);
|
||||
List<SysEvaluationConclusionVo> list = calculateEvaluationResult(scaleId, answerList);
|
||||
List<SysEvaluationConclusion> 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<String, Object>() {{
|
||||
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<SysEvaluationConclusionVo> calculateEvaluationResult(List<SysEvaluationAnswerBo> answerList) {
|
||||
private List<SysEvaluationConclusionVo> calculateEvaluationResult(Long scaleId, List<SysEvaluationAnswerBo> answerList) {
|
||||
Long recordId = answerList.get(0).getRecordId();
|
||||
SysEvaluationRecordVo recordVo = recordMapper.selectVoById(recordId);
|
||||
Long scaleId = recordVo.getScaleId();
|
||||
|
||||
Map<Long, List<SysScaleQuestionVo>> questionMapByFactor = scaleQuestionService.getScaleQuestionMap(scaleId);
|
||||
Map<Long, List<SysScaleAnswerVo>> 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);
|
||||
|
|
|
@ -3,8 +3,22 @@
|
|||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.scale.mapper.SysScaleMapper">
|
||||
|
||||
<select id="findSysScaleByIds" resultType="org.dromara.scale.domain.vo.SysScaleVo">
|
||||
SELECT * FROM sys_scale t WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
|
||||
SELECT *
|
||||
FROM sys_scale t
|
||||
WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
|
||||
</select>
|
||||
|
||||
|
||||
<update id="updateEvalNums">
|
||||
update sys_scale
|
||||
set eval_nums = eval_nums + 1
|
||||
where scale_id = #{scaleId}
|
||||
</update>
|
||||
|
||||
<update id="updatePublishNums">
|
||||
update sys_scale
|
||||
set publish_nums = publish_nums + 1
|
||||
where scale_id = #{scaleId}
|
||||
</update>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue