优化个人模板展示;优化量表详情接口

This commit is contained in:
cjw 2024-05-09 10:42:49 +08:00
parent 67976e017a
commit 2d43fcb8da
10 changed files with 60 additions and 28 deletions

View File

@ -16,6 +16,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.web.core.BaseController;
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import org.dromara.scale.service.ISysScaleQuestionService;
import org.springframework.validation.annotation.Validated;
@ -60,12 +61,12 @@ public class ScaleQuestionController extends BaseController {
/**
* 查询量表所有问题
*
* @param bo
* @param scaleId
* @return
*/
@GetMapping("/findByScaleId")
public R<List<SysScaleQuestionVo>> findByScaleId(SysScaleQuestionBo bo) {
return R.ok(sysScaleQuestionService.queryList(bo));
public R<List<SysScaleFactorVo>> findByScaleId(Long scaleId) {
return R.ok(sysScaleQuestionService.queryFactorList(scaleId));
}
/**

View File

@ -62,6 +62,7 @@ public class SysScaleFactorVo implements Serializable {
*/
private List<String> questionIds;
private List<SysScaleQuestionVo> questionList;
private List<SysScaleFactorRangeVo> factorRangeList;
}

View File

@ -24,7 +24,7 @@ public class EvaluationEecordWordData {
private String scaleName;
private String scaleDetails;
private TableRenderData factor;
private ChartMultiSeriesRenderData barChart;
private ChartMultiSeriesRenderData radarChart;
private List<WordFactor> factors;
private String propose;

View File

@ -1,10 +1,10 @@
package org.dromara.scale.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.scale.domain.SysScaleQuestion;
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.scale.domain.SysScaleQuestion;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import java.util.List;
@ -17,6 +17,5 @@ import java.util.List;
@Mapper
public interface SysScaleQuestionMapper extends BaseMapperPlus<SysScaleQuestion, SysScaleQuestionVo> {
int cleanFactorIdByFactorId(Long factorId);
int updateFactorIdByIds(@Param("factorId") Long factorId, @Param("ids") List<Long> ids);
List<SysScaleFactorVo> selectFactorListById(Long scaleId);
}

View File

@ -3,6 +3,7 @@ package org.dromara.scale.service;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import java.util.Collection;
@ -31,6 +32,14 @@ public interface ISysScaleQuestionService {
*/
List<SysScaleQuestionVo> queryList(SysScaleQuestionBo bo);
/**
* 查询量表的因子列表包含因子对应的题目
*
* @param scaleId
* @return
*/
List<SysScaleFactorVo> queryFactorList(Long scaleId);
/**
* 新增量问题内容
*/

View File

@ -1,5 +1,6 @@
package org.dromara.scale.service.impl;
import cn.hutool.http.HtmlUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -20,7 +21,6 @@ import org.dromara.scale.domain.word.EvaluationEecordWordData;
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.SysInterveneRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.service.ISysEvaluationRecordService;
import org.dromara.system.domain.vo.SysUserVo;
@ -50,8 +50,6 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
private final SysScaleMapper scaleMapper;
private final SysInterveneRecordMapper interveneMapper;
private final String resource = "word/personalTemplate.docx";
/**
@ -129,7 +127,8 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
borderStyle.setType(XWPFTable.XWPFBorderType.SINGLE);
RowRenderData factorHeader = Rows.of("名称", "包含题目", "原始分", "得分").bgColor("F2F2F2").center()
.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)
.width(14.63d,null).center().create();
//一并处理数据
int size = answerVos.size();
LinkedList<WordFactor> factors = new LinkedList<>();
@ -151,7 +150,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
//判断激活放到首位并添加建议
if (answerVo.getStatus() == 1) {
factors.addFirst(wordFactor);
stringBuilder.append(answerVo.getEvalPropose()).append("\n");
stringBuilder.append(HtmlUtil.cleanHtmlTag(answerVo.getEvalPropose())).append("\n");
} else {
factors.add(wordFactor);
}
@ -167,7 +166,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
.ofMultiSeries(scale.getScaleName(), strings)
.addSeries("因子项", doubles)
.create();
wordData.setBarChart(chart);
wordData.setRadarChart(chart);
wordData.setPropose(stringBuilder.toString());
ClassPathResource classPathResource = new ClassPathResource(resource);
return XWPFTemplate.compile(classPathResource.getInputStream()).render(wordData);

View File

@ -14,6 +14,7 @@ import org.dromara.scale.domain.SysScaleAnswer;
import org.dromara.scale.domain.SysScaleQuestion;
import org.dromara.scale.domain.bo.SysScaleQuestionBo;
import org.dromara.scale.domain.vo.SysScaleAnswerVo;
import org.dromara.scale.domain.vo.SysScaleFactorVo;
import org.dromara.scale.domain.vo.SysScaleQuestionVo;
import org.dromara.scale.mapper.SysScaleAnswerMapper;
import org.dromara.scale.mapper.SysScaleQuestionMapper;
@ -83,6 +84,16 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
// lqw.like(StringUtils.isNotBlank(bo.getFactorName()), SysScaleQuestion::getFactorName, bo.getFactorName());
return lqw;
}
/**
* 查询量表的因子列表包含因子对应的题目
*
* @param scaleId
* @return
*/
@Override
public List<SysScaleFactorVo> queryFactorList(Long scaleId) {
return baseMapper.selectFactorListById(scaleId);
}
/**
* 新增量问题内容

View File

@ -99,6 +99,7 @@
left join sys_scale_publish sp on FIND_IN_SET(d.dept_id, sp.dept_ids)
where parent.parent_id = 100
group by parent.dept_id
order by `name`
</select>
<select id="selectEvaluationNumByGrade" resultType="org.dromara.scale.domain.vo.StatisticNumVo">
@ -108,5 +109,6 @@
left join sys_evaluation_record er on er.dept_id = d.dept_id
where parent.parent_id = 100
group by parent.dept_id
order by `name`
</select>
</mapper>

View File

@ -3,18 +3,28 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.scale.mapper.SysScaleQuestionMapper">
<select id="cleanFactorIdByFactorId" resultType="int">
update sys_scale_question
set factor_id = null
where factor_id = #{factorId}
</select>
<update id="updateFactorIdByIds">
update sys_scale_question
set factor_id = #{factorId} where question_id in
<foreach item="id" collection="ids" open="(" separator="," close=")">
#{id}
</foreach>
</update>
<resultMap type="org.dromara.scale.domain.vo.SysScaleFactorVo" id="SysFactorResult">
<id property="factorId" column="factor_id"/>
<result property="scaleId" column="scale_id"/>
<collection property="questionList" javaType="java.util.List" resultMap="QuestionResult"/>
</resultMap>
<resultMap id="QuestionResult" type="org.dromara.scale.domain.vo.SysScaleQuestionVo">
<id property="questionId" column="question_id"/>
</resultMap>
<select id="selectFactorListById" resultMap="SysFactorResult">
select sf.factor_id,
sf.scale_id,
sf.factor_name,
sq.question_id,
sq.question_content,
sq.question_order
from sys_scale_factor sf
left join sys_scale_question sq on find_in_set(sq.question_id, sf.question_ids)
where sf.scale_id = #{scaleId}
order by sq.question_order
</select>
</mapper>