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

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

View File

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

View File

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

View File

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

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.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.scale.domain.bo.SysScaleQuestionBo; 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.domain.vo.SysScaleQuestionVo;
import java.util.Collection; import java.util.Collection;
@ -31,6 +32,14 @@ public interface ISysScaleQuestionService {
*/ */
List<SysScaleQuestionVo> queryList(SysScaleQuestionBo bo); 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; package org.dromara.scale.service.impl;
import cn.hutool.http.HtmlUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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;
@ -20,7 +21,6 @@ import org.dromara.scale.domain.word.EvaluationEecordWordData;
import org.dromara.scale.domain.word.WordEvaluationFactor; import org.dromara.scale.domain.word.WordEvaluationFactor;
import org.dromara.scale.domain.word.WordFactor; 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.SysScaleMapper; import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.service.ISysEvaluationRecordService; import org.dromara.scale.service.ISysEvaluationRecordService;
import org.dromara.system.domain.vo.SysUserVo; import org.dromara.system.domain.vo.SysUserVo;
@ -50,8 +50,6 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
private final SysScaleMapper scaleMapper; private final SysScaleMapper scaleMapper;
private final SysInterveneRecordMapper interveneMapper;
private final String resource = "word/personalTemplate.docx"; private final String resource = "word/personalTemplate.docx";
/** /**
@ -129,7 +127,8 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
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)
.width(14.63d,null).center().create();
//一并处理数据 //一并处理数据
int size = answerVos.size(); int size = answerVos.size();
LinkedList<WordFactor> factors = new LinkedList<>(); LinkedList<WordFactor> factors = new LinkedList<>();
@ -151,7 +150,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
//判断激活放到首位并添加建议 //判断激活放到首位并添加建议
if (answerVo.getStatus() == 1) { if (answerVo.getStatus() == 1) {
factors.addFirst(wordFactor); factors.addFirst(wordFactor);
stringBuilder.append(answerVo.getEvalPropose()).append("\n"); stringBuilder.append(HtmlUtil.cleanHtmlTag(answerVo.getEvalPropose())).append("\n");
} else { } else {
factors.add(wordFactor); factors.add(wordFactor);
} }
@ -167,7 +166,7 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
.ofMultiSeries(scale.getScaleName(), strings) .ofMultiSeries(scale.getScaleName(), strings)
.addSeries("因子项", doubles) .addSeries("因子项", doubles)
.create(); .create();
wordData.setBarChart(chart); wordData.setRadarChart(chart);
wordData.setPropose(stringBuilder.toString()); wordData.setPropose(stringBuilder.toString());
ClassPathResource classPathResource = new ClassPathResource(resource); ClassPathResource classPathResource = new ClassPathResource(resource);
return XWPFTemplate.compile(classPathResource.getInputStream()).render(wordData); 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.SysScaleQuestion;
import org.dromara.scale.domain.bo.SysScaleQuestionBo; import org.dromara.scale.domain.bo.SysScaleQuestionBo;
import org.dromara.scale.domain.vo.SysScaleAnswerVo; 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.domain.vo.SysScaleQuestionVo;
import org.dromara.scale.mapper.SysScaleAnswerMapper; import org.dromara.scale.mapper.SysScaleAnswerMapper;
import org.dromara.scale.mapper.SysScaleQuestionMapper; 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()); // lqw.like(StringUtils.isNotBlank(bo.getFactorName()), SysScaleQuestion::getFactorName, bo.getFactorName());
return lqw; 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) left join sys_scale_publish sp on FIND_IN_SET(d.dept_id, sp.dept_ids)
where parent.parent_id = 100 where parent.parent_id = 100
group by parent.dept_id group by parent.dept_id
order by `name`
</select> </select>
<select id="selectEvaluationNumByGrade" resultType="org.dromara.scale.domain.vo.StatisticNumVo"> <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 left join sys_evaluation_record er on er.dept_id = d.dept_id
where parent.parent_id = 100 where parent.parent_id = 100
group by parent.dept_id group by parent.dept_id
order by `name`
</select> </select>
</mapper> </mapper>

View File

@ -3,18 +3,28 @@
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.SysScaleQuestionMapper"> <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"> <resultMap type="org.dromara.scale.domain.vo.SysScaleFactorVo" id="SysFactorResult">
update sys_scale_question <id property="factorId" column="factor_id"/>
set factor_id = #{factorId} where question_id in <result property="scaleId" column="scale_id"/>
<foreach item="id" collection="ids" open="(" separator="," close=")"> <collection property="questionList" javaType="java.util.List" resultMap="QuestionResult"/>
#{id} </resultMap>
</foreach>
</update> <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> </mapper>