优化测评记录,添加完成时间;添加一些统计接口;完善个人模板接口
This commit is contained in:
parent
2b7c28ad67
commit
31fec7c53d
|
@ -138,13 +138,13 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
/**
|
/**
|
||||||
* 计算两个时间差
|
* 计算两个时间差
|
||||||
*/
|
*/
|
||||||
public static String getDatePoor(Date endDate, Date nowDate) {
|
public static String getDatePoor(Date startDate, Date endDate) {
|
||||||
long nd = 1000 * 24 * 60 * 60;
|
long nd = 1000 * 24 * 60 * 60;
|
||||||
long nh = 1000 * 60 * 60;
|
long nh = 1000 * 60 * 60;
|
||||||
long nm = 1000 * 60;
|
long nm = 1000 * 60;
|
||||||
// long ns = 1000;
|
long ns = 1000;
|
||||||
// 获得两个时间的毫秒时间差异
|
// 获得两个时间的毫秒时间差异
|
||||||
long diff = endDate.getTime() - nowDate.getTime();
|
long diff = endDate.getTime() - startDate.getTime();
|
||||||
// 计算差多少天
|
// 计算差多少天
|
||||||
long day = diff / nd;
|
long day = diff / nd;
|
||||||
// 计算差多少小时
|
// 计算差多少小时
|
||||||
|
@ -152,8 +152,9 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
||||||
// 计算差多少分钟
|
// 计算差多少分钟
|
||||||
long min = diff % nd % nh / nm;
|
long min = diff % nd % nh / nm;
|
||||||
// 计算差多少秒//输出结果
|
// 计算差多少秒//输出结果
|
||||||
// long sec = diff % nd % nh % nm / ns;
|
long sec = diff % nd % nh % nm / ns;
|
||||||
return day + "天" + hour + "小时" + min + "分钟";
|
//return day + "天" + hour + "小时" + min + "分钟" + sec + "秒";
|
||||||
|
return hour + "小时" + min + "分钟" + sec + "秒";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -23,17 +23,18 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/scale/statistic")
|
@RequestMapping("/statistic")
|
||||||
public class StatisticController extends BaseController {
|
public class StatisticController extends BaseController {
|
||||||
|
|
||||||
private final IStatisticService statisticService;
|
private final IStatisticService statisticService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取完成情况统计-整体
|
* 获取完成情况统计-年级
|
||||||
*/
|
*/
|
||||||
@GetMapping("/complete/all")
|
@GetMapping("/complete/grade")
|
||||||
public R<List<StatisticNumVo>> getComplete(BaseQueryBo query) {
|
public R<List<StatisticNumVo>> getComplete(BaseQueryBo query) {
|
||||||
return R.ok(statisticService.getComplete4All(query));
|
return R.ok(statisticService.getComplete4Grade(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,8 +49,16 @@ public class StatisticController extends BaseController {
|
||||||
* 获取预警情况统计-整体
|
* 获取预警情况统计-整体
|
||||||
*/
|
*/
|
||||||
@GetMapping("/warn/all")
|
@GetMapping("/warn/all")
|
||||||
|
public R<StatisticWarnVo> getWarn4All() {
|
||||||
|
return R.ok(statisticService.getWarn4All());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取预警情况统计-年级
|
||||||
|
*/
|
||||||
|
@GetMapping("/warn/grade")
|
||||||
public R<List<StatisticWarnVo>> getWarn(BaseQueryBo query) {
|
public R<List<StatisticWarnVo>> getWarn(BaseQueryBo query) {
|
||||||
return R.ok(statisticService.getWarn4All(query));
|
return R.ok(statisticService.getWarn4Grade(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -61,18 +70,44 @@ public class StatisticController extends BaseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取预警情况统计-整体
|
* 获取因子统计-年级
|
||||||
*/
|
*/
|
||||||
@GetMapping("/factor/all")
|
@GetMapping("/factor/grade")
|
||||||
public R<List<StatisticFactorVo>> getFactor(BaseQueryBo query) {
|
public R<List<StatisticFactorVo>> getFactor(BaseQueryBo query) {
|
||||||
return R.ok(statisticService.getFactor4All(query));
|
return R.ok(statisticService.getFactor4Grade(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取预警情况统计-班级
|
* 获取因子统计-班级
|
||||||
*/
|
*/
|
||||||
@GetMapping("/factor/class")
|
@GetMapping("/factor/class")
|
||||||
public R<List<StatisticFactorVo>> getFactor4Class(BaseQueryBo query) {
|
public R<List<StatisticFactorVo>> getFactor4Class(BaseQueryBo query) {
|
||||||
return R.ok(statisticService.getFactor4Class(query));
|
return R.ok(statisticService.getFactor4Class(query));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取总用户数
|
||||||
|
*/
|
||||||
|
@GetMapping("/user/num")
|
||||||
|
public R<Integer> getUserNum() {
|
||||||
|
return R.ok(statisticService.getUserNum());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取总干预数
|
||||||
|
*/
|
||||||
|
@GetMapping("/intervene/num")
|
||||||
|
public R<Integer> getInterveneNum() {
|
||||||
|
return R.ok(statisticService.getUserNum());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取量表发布次数
|
||||||
|
*/
|
||||||
|
@GetMapping("/scale/publish/num")
|
||||||
|
public R<List<StatisticNumVo>> getPublishNum() {
|
||||||
|
return R.ok(statisticService.getScalePublishNum());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ public class SysEvaluationRecord {
|
||||||
private Long batchNo;
|
private Long batchNo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 记录状态0初始化,1开始测试
|
* 记录状态-1初始化,0准备测试,1完成测试
|
||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
@ -57,5 +57,7 @@ public class SysEvaluationRecord {
|
||||||
//@TableField(fill = FieldFill.INSERT)
|
//@TableField(fill = FieldFill.INSERT)
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
private Date updateTime;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,6 +49,16 @@ public class SysScaleFactor extends BaseEntity {
|
||||||
@AutoMapping(target = "questionIds", expression = "java(cn.hutool.core.util.StrUtil.split(source.getQuestionIds(), \",\"))")
|
@AutoMapping(target = "questionIds", expression = "java(cn.hutool.core.util.StrUtil.split(source.getQuestionIds(), \",\"))")
|
||||||
private String questionIds;
|
private String questionIds;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题数量
|
||||||
|
*/
|
||||||
|
private Integer questionNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 问题总分
|
||||||
|
*/
|
||||||
|
private BigDecimal questionScore;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算类型
|
* 计算类型
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -130,4 +130,5 @@ public class SysScaleVo implements Serializable {
|
||||||
private boolean used;
|
private boolean used;
|
||||||
|
|
||||||
private Long recordId;
|
private Long recordId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,21 +0,0 @@
|
||||||
package org.dromara.scale.domain.vo;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* <p>TODO<p>
|
|
||||||
*
|
|
||||||
* @author cjw
|
|
||||||
* @version V1.0.0
|
|
||||||
* @date 2024/4/29 13:41
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class WordEvaluationAnswerVo {
|
|
||||||
|
|
||||||
private String factorName;
|
|
||||||
private String questionContent;
|
|
||||||
private String answerOption;
|
|
||||||
private BigDecimal score;
|
|
||||||
}
|
|
|
@ -1,8 +1,11 @@
|
||||||
package org.dromara.scale.domain;
|
package org.dromara.scale.domain.word;
|
||||||
|
|
||||||
|
import com.deepoove.poi.data.ChartMultiSeriesRenderData;
|
||||||
import com.deepoove.poi.data.TableRenderData;
|
import com.deepoove.poi.data.TableRenderData;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>TODO<p>
|
* <p>TODO<p>
|
||||||
*
|
*
|
||||||
|
@ -13,12 +16,16 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class EvaluationEecordWordData {
|
public class EvaluationEecordWordData {
|
||||||
|
|
||||||
|
private String createTime;
|
||||||
|
private String useTime;
|
||||||
private String nickName;
|
private String nickName;
|
||||||
private String deptName;
|
private String deptName;
|
||||||
private String sex;
|
private String sex;
|
||||||
private String scaleName;
|
private String scaleName;
|
||||||
private String scaleDetails;
|
private String scaleDetails;
|
||||||
private TableRenderData factor;
|
private TableRenderData factor;
|
||||||
private TableRenderData intervene;
|
private ChartMultiSeriesRenderData barChart;
|
||||||
|
private List<WordFactor> factors;
|
||||||
|
private String propose;
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package org.dromara.scale.domain.word;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>TODO<p>
|
||||||
|
*
|
||||||
|
* @author cjw
|
||||||
|
* @version V1.0.0
|
||||||
|
* @date 2024/4/29 13:41
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WordEvaluationFactor {
|
||||||
|
|
||||||
|
private String factorName;
|
||||||
|
private Integer questionNum;
|
||||||
|
private BigDecimal totalScore;
|
||||||
|
private BigDecimal score;
|
||||||
|
private Integer status;
|
||||||
|
private String evalDesc;
|
||||||
|
private String evalPropose;
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package org.dromara.scale.domain.word;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>TODO<p>
|
||||||
|
*
|
||||||
|
* @author cjw
|
||||||
|
* @version V1.0.0
|
||||||
|
* @date 2024/5/7 14:33
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class WordFactor {
|
||||||
|
/**
|
||||||
|
* 因子名称
|
||||||
|
*/
|
||||||
|
private String factorName;
|
||||||
|
/**
|
||||||
|
* 问题描述
|
||||||
|
*/
|
||||||
|
private String evalDesc;
|
||||||
|
|
||||||
|
private double score;
|
||||||
|
}
|
|
@ -23,4 +23,11 @@ public interface StatisticMapper {
|
||||||
List<StatisticWarnVo> selectStatisticWarn(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
List<StatisticWarnVo> selectStatisticWarn(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
||||||
|
|
||||||
List<StatisticFactorVo> selectStatisticFactor(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
List<StatisticFactorVo> selectStatisticFactor(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId);
|
||||||
|
|
||||||
|
StatisticWarnVo selectStatisticWarn4All();
|
||||||
|
|
||||||
|
int selectUserNum();
|
||||||
|
int selectInterveneNum();
|
||||||
|
|
||||||
|
List<StatisticNumVo> selectScalePublishNum();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param;
|
||||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
import org.dromara.scale.domain.SysEvaluationRecord;
|
import org.dromara.scale.domain.SysEvaluationRecord;
|
||||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||||
import org.dromara.scale.domain.vo.WordEvaluationAnswerVo;
|
import org.dromara.scale.domain.word.WordEvaluationFactor;
|
||||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||||
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
import org.dromara.scale.domain.vo.SysScalePublishVo;
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public interface SysEvaluationRecordMapper extends BaseMapperPlus<SysEvaluationR
|
||||||
|
|
||||||
Page<SysEvaluationRecordVo> selectRecordVoPage(@Param("page") Page<SysEvaluationRecord> page, @Param(Constants.WRAPPER) Wrapper<SysEvaluationRecord> queryWrapper);
|
Page<SysEvaluationRecordVo> selectRecordVoPage(@Param("page") Page<SysEvaluationRecord> page, @Param(Constants.WRAPPER) Wrapper<SysEvaluationRecord> queryWrapper);
|
||||||
|
|
||||||
List<WordEvaluationAnswerVo> selectAnswer4Word(Long recordId);
|
List<WordEvaluationFactor> selectEvaluationFactor4Word(Long recordId);
|
||||||
|
|
||||||
List<SysEvaluationRecordVo> selectUseByBatchNo(Long batchNo);
|
List<SysEvaluationRecordVo> selectUseByBatchNo(Long batchNo);
|
||||||
|
|
||||||
|
|
|
@ -13,5 +13,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
*/
|
*/
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface SysScaleFactorMapper extends BaseMapperPlus<SysScaleFactor, SysScaleFactorVo> {
|
public interface SysScaleFactorMapper extends BaseMapperPlus<SysScaleFactor, SysScaleFactorVo> {
|
||||||
|
double sumQusetionMaxScore(String questionIds);
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,8 +17,7 @@ import java.util.List;
|
||||||
public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> {
|
public interface SysScaleMapper extends BaseMapperPlus<SysScale, SysScaleVo> {
|
||||||
|
|
||||||
List<SysScaleVo> findSysScaleByIds(String scaleIds);
|
List<SysScaleVo> findSysScaleByIds(String scaleIds);
|
||||||
|
void addPublishNums(Long scaleId);
|
||||||
void updateEvalNums(Long scaleId);
|
void subPublishNums(Long scaleId);
|
||||||
void updatePublishNums(Long scaleId);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,16 +10,26 @@ import java.util.List;
|
||||||
public interface IStatisticService {
|
public interface IStatisticService {
|
||||||
|
|
||||||
|
|
||||||
List<StatisticNumVo> getComplete4All(BaseQueryBo query);
|
List<StatisticNumVo> getComplete4Grade(BaseQueryBo query);
|
||||||
|
|
||||||
List<StatisticNumVo> getComplete4Class(BaseQueryBo query);
|
List<StatisticNumVo> getComplete4Class(BaseQueryBo query);
|
||||||
|
|
||||||
|
|
||||||
List<StatisticWarnVo> getWarn4All(BaseQueryBo query);
|
List<StatisticWarnVo> getWarn4Grade(BaseQueryBo query);
|
||||||
|
|
||||||
List<StatisticWarnVo> getWarn4Class(BaseQueryBo query);
|
List<StatisticWarnVo> getWarn4Class(BaseQueryBo query);
|
||||||
|
|
||||||
List<StatisticFactorVo> getFactor4All(BaseQueryBo query);
|
List<StatisticFactorVo> getFactor4Grade(BaseQueryBo query);
|
||||||
|
|
||||||
List<StatisticFactorVo> getFactor4Class(BaseQueryBo query);
|
List<StatisticFactorVo> getFactor4Class(BaseQueryBo query);
|
||||||
|
|
||||||
|
StatisticWarnVo getWarn4All();
|
||||||
|
|
||||||
|
int getUserNum();
|
||||||
|
|
||||||
|
int getInterveneNum();
|
||||||
|
|
||||||
|
List<StatisticNumVo> getByMonth(BaseQueryBo query);
|
||||||
|
|
||||||
|
List<StatisticNumVo> getScalePublishNum();
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ public class StatisticServiceImpl implements IStatisticService {
|
||||||
private final StatisticMapper statisticMapper;
|
private final StatisticMapper statisticMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StatisticNumVo> getComplete4All(BaseQueryBo query) {
|
public List<StatisticNumVo> getComplete4Grade(BaseQueryBo query) {
|
||||||
Long batchNo = query.getBatchNo();
|
Long batchNo = query.getBatchNo();
|
||||||
Long scaleId = query.getScaleId();
|
Long scaleId = query.getScaleId();
|
||||||
List<StatisticNumVo> statisticNumVos = statisticMapper.selectCompleteAvaluation(batchNo, scaleId);
|
List<StatisticNumVo> statisticNumVos = statisticMapper.selectCompleteAvaluation(batchNo, scaleId);
|
||||||
|
@ -66,7 +66,7 @@ public class StatisticServiceImpl implements IStatisticService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StatisticWarnVo> getWarn4All(BaseQueryBo query) {
|
public List<StatisticWarnVo> getWarn4Grade(BaseQueryBo query) {
|
||||||
Long batchNo = query.getBatchNo();
|
Long batchNo = query.getBatchNo();
|
||||||
Long scaleId = query.getScaleId();
|
Long scaleId = query.getScaleId();
|
||||||
List<StatisticWarnVo> statisticWarnVos = statisticMapper.selectStatisticWarn(batchNo, scaleId);
|
List<StatisticWarnVo> statisticWarnVos = statisticMapper.selectStatisticWarn(batchNo, scaleId);
|
||||||
|
@ -108,7 +108,7 @@ public class StatisticServiceImpl implements IStatisticService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<StatisticFactorVo> getFactor4All(BaseQueryBo query) {
|
public List<StatisticFactorVo> getFactor4Grade(BaseQueryBo query) {
|
||||||
Map<String, List<StatisticFactorVo>> collect = processFactorData(query);
|
Map<String, List<StatisticFactorVo>> collect = processFactorData(query);
|
||||||
Set<String> keys = collect.keySet();
|
Set<String> keys = collect.keySet();
|
||||||
List<StatisticFactorVo> data = new ArrayList<>();
|
List<StatisticFactorVo> data = new ArrayList<>();
|
||||||
|
@ -159,4 +159,30 @@ public class StatisticServiceImpl implements IStatisticService {
|
||||||
List<StatisticFactorVo> data = statisticMapper.selectStatisticFactor(query.getBatchNo(), query.getScaleId());
|
List<StatisticFactorVo> data = statisticMapper.selectStatisticFactor(query.getBatchNo(), query.getScaleId());
|
||||||
return data.stream().collect(Collectors.groupingBy(StatisticFactorVo::getFactorName));
|
return data.stream().collect(Collectors.groupingBy(StatisticFactorVo::getFactorName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public StatisticWarnVo getWarn4All() {
|
||||||
|
return statisticMapper.selectStatisticWarn4All();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUserNum() {
|
||||||
|
return statisticMapper.selectUserNum();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInterveneNum() {
|
||||||
|
return statisticMapper.selectInterveneNum();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StatisticNumVo> getByMonth(BaseQueryBo query) {
|
||||||
|
//todo
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<StatisticNumVo> getScalePublishNum() {
|
||||||
|
return statisticMapper.selectScalePublishNum();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,23 +4,21 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.deepoove.poi.XWPFTemplate;
|
import com.deepoove.poi.XWPFTemplate;
|
||||||
import com.deepoove.poi.data.RowRenderData;
|
import com.deepoove.poi.data.*;
|
||||||
import com.deepoove.poi.data.Rows;
|
|
||||||
import com.deepoove.poi.data.TableRenderData;
|
|
||||||
import com.deepoove.poi.data.Tables;
|
|
||||||
import com.deepoove.poi.data.style.BorderStyle;
|
import com.deepoove.poi.data.style.BorderStyle;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
||||||
|
import org.dromara.common.core.utils.DateUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
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.EvaluationEecordWordData;
|
|
||||||
import org.dromara.scale.domain.SysEvaluationRecord;
|
import org.dromara.scale.domain.SysEvaluationRecord;
|
||||||
import org.dromara.scale.domain.bo.BaseQueryBo;
|
import org.dromara.scale.domain.bo.BaseQueryBo;
|
||||||
import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
|
import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
|
||||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||||
import org.dromara.scale.domain.vo.SysScaleVo;
|
import org.dromara.scale.domain.vo.SysScaleVo;
|
||||||
import org.dromara.scale.domain.vo.TimeAxisVo;
|
import org.dromara.scale.domain.word.EvaluationEecordWordData;
|
||||||
import org.dromara.scale.domain.vo.WordEvaluationAnswerVo;
|
import org.dromara.scale.domain.word.WordEvaluationFactor;
|
||||||
|
import org.dromara.scale.domain.word.WordFactor;
|
||||||
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
|
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
|
||||||
import org.dromara.scale.mapper.SysInterveneRecordMapper;
|
import org.dromara.scale.mapper.SysInterveneRecordMapper;
|
||||||
import org.dromara.scale.mapper.SysScaleMapper;
|
import org.dromara.scale.mapper.SysScaleMapper;
|
||||||
|
@ -32,6 +30,8 @@ import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.rmi.ServerException;
|
import java.rmi.ServerException;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -106,37 +106,69 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
||||||
throw new ServerException("量表ID不能为空");
|
throw new ServerException("量表ID不能为空");
|
||||||
}
|
}
|
||||||
EvaluationEecordWordData wordData = new EvaluationEecordWordData();
|
EvaluationEecordWordData wordData = new EvaluationEecordWordData();
|
||||||
|
|
||||||
|
SysEvaluationRecord sysEvaluationRecord = baseMapper.selectById(recordId);
|
||||||
|
Date createTime = sysEvaluationRecord.getCreateTime();
|
||||||
|
Date updateTime = sysEvaluationRecord.getUpdateTime();
|
||||||
|
wordData.setCreateTime(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD_HH_MM_SS, createTime));
|
||||||
|
wordData.setUseTime(DateUtils.getDatePoor(createTime,updateTime));
|
||||||
|
|
||||||
SysUserVo user = userMapper.selectUserById(userId);
|
SysUserVo user = userMapper.selectUserById(userId);
|
||||||
wordData.setNickName(user.getNickName());
|
wordData.setNickName(user.getNickName());
|
||||||
wordData.setDeptName(user.getDept().getDeptName());
|
wordData.setDeptName(user.getDept().getDeptName());
|
||||||
wordData.setSex("0".equals(user.getSex()) ? "男" : "女");
|
wordData.setSex("0".equals(user.getSex()) ? "男" : "女");
|
||||||
|
|
||||||
SysScaleVo scale = scaleMapper.selectVoById(scaleId);
|
SysScaleVo scale = scaleMapper.selectVoById(scaleId);
|
||||||
wordData.setScaleName(scale.getScaleName());
|
wordData.setScaleName(scale.getScaleName());
|
||||||
wordData.setScaleDetails(scale.getScaleDetails());
|
wordData.setScaleDetails(scale.getScaleDetails());
|
||||||
List<WordEvaluationAnswerVo> answerVos = baseMapper.selectAnswer4Word(recordId);
|
|
||||||
|
List<WordEvaluationFactor> answerVos = baseMapper.selectEvaluationFactor4Word(recordId);
|
||||||
BorderStyle borderStyle = new BorderStyle();
|
BorderStyle borderStyle = new BorderStyle();
|
||||||
borderStyle.setColor("A6A6A6");
|
borderStyle.setColor("A6A6A6");
|
||||||
borderStyle.setSize(4);
|
borderStyle.setSize(4);
|
||||||
borderStyle.setType(XWPFTable.XWPFBorderType.SINGLE);
|
borderStyle.setType(XWPFTable.XWPFBorderType.SINGLE);
|
||||||
RowRenderData factorHeader = Rows.of("因子项", "题目", "选项", "得分").bgColor("F2F2F2").center()
|
RowRenderData factorHeader = Rows.of("名称", "包含题目", "原始分", "得分").bgColor("F2F2F2").center()
|
||||||
.textColor("7F7f7F").textFontFamily("Hei").textFontSize(9).create();
|
.textColor("7F7f7F").textFontFamily("Hei").textFontSize(9).create();
|
||||||
TableRenderData factorTable = Tables.ofA4MediumWidth().addRow(factorHeader).border(borderStyle).center().create();
|
TableRenderData factorTable = Tables.ofA4MediumWidth().addRow(factorHeader).border(borderStyle).center().create();
|
||||||
for (WordEvaluationAnswerVo answerVo : answerVos) {
|
//一并处理数据
|
||||||
RowRenderData one = Rows.of(answerVo.getFactorName(), answerVo.getQuestionContent(),
|
int size = answerVos.size();
|
||||||
answerVo.getAnswerOption(), answerVo.getScore().toString()).center().create();
|
LinkedList<WordFactor> factors = new LinkedList<>();
|
||||||
|
String[] strings = new String[size];
|
||||||
|
Double[] doubles = new Double[size];
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
WordEvaluationFactor answerVo = answerVos.get(i);
|
||||||
|
double score = answerVo.getScore().doubleValue();
|
||||||
|
//处理因子得分表格
|
||||||
|
RowRenderData one = Rows.of(answerVo.getFactorName(), answerVo.getQuestionNum().toString(),
|
||||||
|
answerVo.getTotalScore().toString(), answerVo.getScore().toString()).center().create();
|
||||||
factorTable.addRow(one);
|
factorTable.addRow(one);
|
||||||
|
//处理测评结果
|
||||||
|
WordFactor wordFactor = new WordFactor();
|
||||||
|
wordFactor.setFactorName(answerVo.getFactorName());
|
||||||
|
wordFactor.setScore(score);
|
||||||
|
wordFactor.setEvalDesc(answerVo.getEvalDesc());
|
||||||
|
//判断激活,放到首位并添加建议
|
||||||
|
if (answerVo.getStatus() == 1) {
|
||||||
|
factors.addFirst(wordFactor);
|
||||||
|
stringBuilder.append(answerVo.getEvalPropose()).append("\n");
|
||||||
|
} else {
|
||||||
|
factors.add(wordFactor);
|
||||||
}
|
}
|
||||||
|
//雷达图使用
|
||||||
|
strings[i] = answerVo.getFactorName();
|
||||||
|
doubles[i] = score;
|
||||||
|
}
|
||||||
|
|
||||||
wordData.setFactor(factorTable);
|
wordData.setFactor(factorTable);
|
||||||
List<TimeAxisVo> timeAxisVos = interveneMapper.selectTimeList(userId);
|
wordData.setFactors(factors);
|
||||||
RowRenderData interveneHeader = Rows.of("干预标题", "干预时间", "诊断详情").bgColor("F2F2F2").center()
|
//处理雷达图
|
||||||
.textColor("7F7f7F").textFontFamily("Hei").textFontSize(9).create();
|
ChartMultiSeriesRenderData chart = Charts
|
||||||
TableRenderData interveneTable = Tables.ofA4MediumWidth().addRow(interveneHeader).border(borderStyle).center().create();
|
.ofMultiSeries(scale.getScaleName(), strings)
|
||||||
for (TimeAxisVo timeAxisVo : timeAxisVos) {
|
.addSeries("因子项", doubles)
|
||||||
RowRenderData one = Rows.of(timeAxisVo.getName(), timeAxisVo.getTime(),
|
.create();
|
||||||
timeAxisVo.getNote()).center().create();
|
wordData.setBarChart(chart);
|
||||||
interveneTable.addRow(one);
|
wordData.setPropose(stringBuilder.toString());
|
||||||
}
|
|
||||||
wordData.setIntervene(interveneTable);
|
|
||||||
ClassPathResource classPathResource = new ClassPathResource(resource);
|
ClassPathResource classPathResource = new ClassPathResource(resource);
|
||||||
return XWPFTemplate.compile(classPathResource.getInputStream()).render(wordData);
|
return XWPFTemplate.compile(classPathResource.getInputStream()).render(wordData);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,6 +27,7 @@ import org.springframework.cache.annotation.Caching;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@ -104,12 +105,12 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
@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);
|
||||||
|
List<String> questionIds = bo.getQuestionIds();
|
||||||
|
int questionNum = questionIds.size();
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
// if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
double maxScore = baseMapper.sumQusetionMaxScore(add.getQuestionIds());
|
||||||
// String questionIds = bo.getQuestionIds().stream().map(Object::toString)
|
add.setQuestionNum(questionNum);
|
||||||
// .collect(Collectors.joining(StringUtils.SEPARATOR));
|
add.setQuestionScore(BigDecimal.valueOf(maxScore));
|
||||||
//
|
|
||||||
// }
|
|
||||||
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
||||||
insertFactorRange(bo);
|
insertFactorRange(bo);
|
||||||
}
|
}
|
||||||
|
@ -130,17 +131,6 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
scaleFactorRangeMapper.insertBatch(list, 100);
|
scaleFactorRangeMapper.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);
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改测评因子
|
* 修改测评因子
|
||||||
|
@ -153,12 +143,12 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
@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);
|
||||||
|
List<String> questionIds = bo.getQuestionIds();
|
||||||
|
int questionNum = questionIds.size();
|
||||||
validEntityBeforeSave(update);
|
validEntityBeforeSave(update);
|
||||||
|
double maxScore = baseMapper.sumQusetionMaxScore(update.getQuestionIds());
|
||||||
// if (CollUtil.isNotEmpty(bo.getQuestionIds())) {
|
update.setQuestionNum(questionNum);
|
||||||
// updateQuestionFactor(bo);
|
update.setQuestionScore(BigDecimal.valueOf(maxScore));
|
||||||
// }
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
if (CollUtil.isNotEmpty(bo.getFactorRangeList())) {
|
||||||
scaleFactorRangeMapper.delete(Wrappers.lambdaQuery(SysScaleFactorRange.class).eq(SysScaleFactorRange::getFactorId, bo.getFactorId()));
|
scaleFactorRangeMapper.delete(Wrappers.lambdaQuery(SysScaleFactorRange.class).eq(SysScaleFactorRange::getFactorId, bo.getFactorId()));
|
||||||
insertFactorRange(bo);
|
insertFactorRange(bo);
|
||||||
|
@ -200,6 +190,7 @@ public class SysScaleFactorServiceImpl implements ISysScaleFactorService {
|
||||||
}
|
}
|
||||||
return scaleFactorVos;
|
return scaleFactorVos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Cacheable(cacheNames = CacheNames.MAP_SCALE_QUESTION, key = "#scaleId")
|
@Cacheable(cacheNames = CacheNames.MAP_SCALE_QUESTION, key = "#scaleId")
|
||||||
public Map<String, List<String>> getQuestionMapByFactor(Long scaleId) {
|
public Map<String, List<String>> getQuestionMapByFactor(Long scaleId) {
|
||||||
List<SysScaleFactorVo> factorVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysScaleFactor>()
|
List<SysScaleFactorVo> factorVos = baseMapper.selectVoList(new LambdaQueryWrapper<SysScaleFactor>()
|
||||||
|
|
|
@ -110,6 +110,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
add.setCreateBy(loginUser.getUserId());
|
add.setCreateBy(loginUser.getUserId());
|
||||||
add.setCreateTime(new Date());
|
add.setCreateTime(new Date());
|
||||||
validEntityBeforeSave(add);
|
validEntityBeforeSave(add);
|
||||||
|
boolean flag = baseMapper.insert(add) > 0;
|
||||||
Integer publishType = add.getPublishType();
|
Integer publishType = add.getPublishType();
|
||||||
Long batchNo = add.getBatchNo();
|
Long batchNo = add.getBatchNo();
|
||||||
String scaleIds = add.getScaleIds();
|
String scaleIds = add.getScaleIds();
|
||||||
|
@ -125,7 +126,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
List<SysScaleVo> list = scaleMapper.findSysScaleByIds(scaleIds);
|
||||||
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
add.setScaleNames(list.stream().map(SysScaleVo::getScaleName).collect(Collectors.joining(StrUtil.COMMA)));
|
||||||
for (String scaleId : bo.getScaleIds()) {
|
for (String scaleId : bo.getScaleIds()) {
|
||||||
scaleMapper.updatePublishNums(Long.parseLong(scaleId));
|
scaleMapper.addPublishNums(Long.parseLong(scaleId));
|
||||||
}
|
}
|
||||||
//处理用户
|
//处理用户
|
||||||
List<SysUser> userList;
|
List<SysUser> userList;
|
||||||
|
@ -151,7 +152,6 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
//预处理量测记录,方便后续统计与查询
|
//预处理量测记录,方便后续统计与查询
|
||||||
List<String> scaleList = bo.getScaleIds();
|
List<String> scaleList = bo.getScaleIds();
|
||||||
insertRecordBatch(batchNo, scaleList, userList);
|
insertRecordBatch(batchNo, scaleList, userList);
|
||||||
boolean flag = baseMapper.insert(add) > 0;
|
|
||||||
if (flag) {
|
if (flag) {
|
||||||
bo.setBatchNo(add.getBatchNo());
|
bo.setBatchNo(add.getBatchNo());
|
||||||
}
|
}
|
||||||
|
@ -169,7 +169,8 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
record.setDeptId(user.getDeptId());
|
record.setDeptId(user.getDeptId());
|
||||||
record.setBatchNo(batchNo);
|
record.setBatchNo(batchNo);
|
||||||
record.setScaleId(Long.parseLong(scaleId));
|
record.setScaleId(Long.parseLong(scaleId));
|
||||||
record.setStatus(StatusEnum.DISABLED.getValue());
|
//初始化字段
|
||||||
|
record.setStatus(-1);
|
||||||
recordList.add(record);
|
recordList.add(record);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -236,6 +237,10 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
|
||||||
if (ObjectUtil.isNotEmpty(sysEvaluationRecordVos)) {
|
if (ObjectUtil.isNotEmpty(sysEvaluationRecordVos)) {
|
||||||
throw new ServiceException("此发布下已有测评,无法删除");
|
throw new ServiceException("此发布下已有测评,无法删除");
|
||||||
}
|
}
|
||||||
|
SysScalePublishVo sysScalePublishVo = baseMapper.selectVoById(batchNo);
|
||||||
|
for (String scaleId : sysScalePublishVo.getScaleIds()) {
|
||||||
|
scaleMapper.subPublishNums(Long.parseLong(scaleId));
|
||||||
|
}
|
||||||
recordMapper.deleteByBatchNo(batchNo);
|
recordMapper.deleteByBatchNo(batchNo);
|
||||||
return baseMapper.deleteById(batchNo) > 0;
|
return baseMapper.deleteById(batchNo) > 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,7 +116,7 @@ public class WebServiceImpl implements IWebService {
|
||||||
}
|
}
|
||||||
SysEvaluationRecord update = new SysEvaluationRecord();
|
SysEvaluationRecord update = new SysEvaluationRecord();
|
||||||
update.setRecordId(recordId);
|
update.setRecordId(recordId);
|
||||||
//以开始时间判断记录是否开始答题
|
update.setStatus(StatusEnum.DISABLED.getValue());
|
||||||
update.setCreateTime(new Date());
|
update.setCreateTime(new Date());
|
||||||
return recordMapper.updateById(update) > 0;
|
return recordMapper.updateById(update) > 0;
|
||||||
}
|
}
|
||||||
|
@ -167,6 +167,7 @@ public class WebServiceImpl implements IWebService {
|
||||||
SysEvaluationRecord update = new SysEvaluationRecord();
|
SysEvaluationRecord update = new SysEvaluationRecord();
|
||||||
update.setRecordId(recordId);
|
update.setRecordId(recordId);
|
||||||
update.setStatus(StatusEnum.IN_USE.getValue());
|
update.setStatus(StatusEnum.IN_USE.getValue());
|
||||||
|
update.setUpdateTime(new Date());
|
||||||
recordMapper.updateById(update);
|
recordMapper.updateById(update);
|
||||||
|
|
||||||
Integer riskLevel = -1;
|
Integer riskLevel = -1;
|
||||||
|
|
|
@ -51,4 +51,34 @@
|
||||||
and er.status = 1
|
and er.status = 1
|
||||||
and ec.status = 1
|
and ec.status = 1
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectStatisticWarn4All" resultType="org.dromara.scale.domain.vo.StatisticWarnVo">
|
||||||
|
select count(if(sfr.situation = 1, 1, null)) as `noneNum`,
|
||||||
|
count(if(sfr.situation = 2, 1, null)) as `lowNum`,
|
||||||
|
count(if(sfr.situation = 3, 1, null)) as `middleNum`,
|
||||||
|
count(if(sfr.situation = 4, 1, null)) as `highNum`,
|
||||||
|
count(if(sfr.situation = 5, 1, null)) as `majorNum`
|
||||||
|
from sys_evaluation_conclusion ec
|
||||||
|
left join sys_scale_factor_range sfr on sfr.range_id = ec.factor_range_id
|
||||||
|
where ec.status = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectUserNum" resultType="int">
|
||||||
|
select count(*) from sys_user where status = 1
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectInterveneNum" resultType="int">
|
||||||
|
select count(*)
|
||||||
|
from sys_intervene_record
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectScalePublishNum" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
|
||||||
|
select scale_name as `name`,
|
||||||
|
publish_nums as `value`
|
||||||
|
from sys_scale
|
||||||
|
where status = 1
|
||||||
|
order by publish_nums desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -32,17 +32,18 @@
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectAnswer4Word" resultType="org.dromara.scale.domain.vo.WordEvaluationAnswerVo">
|
<select id="selectEvaluationFactor4Word" resultType="org.dromara.scale.domain.word.WordEvaluationFactor">
|
||||||
select sf.factor_name,
|
select sf.factor_name as `factorName`,
|
||||||
sq.question_content,
|
sf.question_num as `questionNum`,
|
||||||
sa.answer_option,
|
sf.question_score as `totalScore`,
|
||||||
sa.score
|
ec.score as `score`,
|
||||||
from sys_evaluation_answer ea
|
ec.status as `status`,
|
||||||
left join sys_scale_question sq on sq.question_id = ea.question_id
|
sfr.eval_desc as `evalDesc`,
|
||||||
left join sys_scale_answer sa on sa.answer_id = ea.answer_id
|
sfr.eval_propose as `evalPropose`
|
||||||
left join sys_scale_factor sf on find_in_set(ea.question_id, sf.question_ids)
|
from sys_evaluation_conclusion ec
|
||||||
where ea.record_id = #{recordId}
|
left join sys_scale_factor sf ON sf.factor_id = ec.factor_id
|
||||||
order by sf.factor_name
|
left join sys_scale_factor_range sfr on sfr.range_id = ec.factor_range_id
|
||||||
|
where ec.record_id = #{recordId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectUseByBatchNo" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
<select id="selectUseByBatchNo" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
||||||
|
|
|
@ -3,5 +3,11 @@
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.dromara.scale.mapper.SysScaleFactorMapper">
|
<mapper namespace="org.dromara.scale.mapper.SysScaleFactorMapper">
|
||||||
|
<select id="sumQusetionMaxScore" resultType="double">
|
||||||
|
SELECT sum(t.score)
|
||||||
|
FROM (SELECT MAX(score) AS score
|
||||||
|
FROM sys_scale_answer
|
||||||
|
WHERE FIND_IN_SET(question_id, #{questionIds})
|
||||||
|
GROUP BY question_id) as t
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -9,16 +9,15 @@
|
||||||
WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
|
WHERE FIND_IN_SET(t.scale_id, #{scaleIds})
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<update id="addPublishNums">
|
||||||
<update id="updateEvalNums">
|
|
||||||
update sys_scale
|
|
||||||
set eval_nums = eval_nums + 1
|
|
||||||
where scale_id = #{scaleId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<update id="updatePublishNums">
|
|
||||||
update sys_scale
|
update sys_scale
|
||||||
set publish_nums = publish_nums + 1
|
set publish_nums = publish_nums + 1
|
||||||
where scale_id = #{scaleId}
|
where scale_id = #{scaleId}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<select id="subPublishNums" >
|
||||||
|
update sys_scale
|
||||||
|
set publish_nums = publish_nums - 1
|
||||||
|
where scale_id = #{scaleId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue