factors;
private String propose;
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/word/WordRadar.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/word/WordRadar.java
new file mode 100644
index 0000000..514bb33
--- /dev/null
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/domain/word/WordRadar.java
@@ -0,0 +1,16 @@
+package org.dromara.scale.domain.word;
+
+import com.deepoove.poi.data.ChartMultiSeriesRenderData;
+import lombok.Data;
+
+/**
+ * TODO
+ *
+ * @author cjw
+ * @version V1.0.0
+ * @date 2024/5/29 9:20
+ */
+@Data
+public class WordRadar {
+ private ChartMultiSeriesRenderData radarChart;
+}
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java
index 3652759..29bfca4 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/mapper/SysScalePublishMapper.java
@@ -23,9 +23,10 @@ public interface SysScalePublishMapper extends BaseMapperPlus selectEvaluationVoList(@Param("page") Page page, @Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId);
List selectDeptIdsInUse();
+
List selectUserIdsInUse();
- List selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo);
+ List selectUndoneEvaluationVoList(@Param("batchNo") Long batchNo, @Param("scaleId") Long scaleId, @Param("deptId") Long deptId);
SysScalePublish selectPublishById(@Param("batchNo") Long batchNo);
@@ -38,4 +39,7 @@ public interface SysScalePublishMapper extends BaseMapperPlus keys = collect.keySet();
List data = new ArrayList<>();
for (String key : keys) {
+ if ("absent".equals(key)) {
+ continue;
+ }
StatisticFactorVo one = new StatisticFactorVo();
one.setFactorName(key);
List factorList = collect.get(key);
@@ -139,6 +142,9 @@ public class StatisticServiceImpl implements IStatisticService {
Set keys = collect.keySet();
List data = new ArrayList<>();
for (String key : keys) {
+ if ("absent".equals(key)) {
+ continue;
+ }
StatisticFactorVo one = new StatisticFactorVo();
one.setFactorName(key);
List factorList = collect.get(key);
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java
index 5e142e0..19ccf9d 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationConclusionServiceImpl.java
@@ -39,8 +39,6 @@ public class SysEvaluationConclusionServiceImpl implements ISysEvaluationConclus
LambdaQueryWrapper lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getRecordId() != null, SysEvaluationConclusion::getRecordId, bo.getRecordId());
lqw.eq(bo.getFactorId() != null, SysEvaluationConclusion::getFactorId, bo.getFactorId());
- lqw.eq(bo.getScore() != null, SysEvaluationConclusion::getScore, bo.getScore());
- lqw.eq(bo.getScoreRate() != null, SysEvaluationConclusion::getScoreRate, bo.getScoreRate());
lqw.eq(bo.getFactorRangeId() != null, SysEvaluationConclusion::getFactorRangeId, bo.getFactorRangeId());
lqw.eq(bo.getStatus() != null, SysEvaluationConclusion::getStatus, bo.getStatus());
return lqw;
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java
index cb1f298..2448435 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysEvaluationRecordServiceImpl.java
@@ -23,6 +23,7 @@ import org.dromara.scale.domain.vo.SysScaleVo;
import org.dromara.scale.domain.word.EvaluationRecordWordData;
import org.dromara.scale.domain.word.WordEvaluationFactor;
import org.dromara.scale.domain.word.WordFactor;
+import org.dromara.scale.domain.word.WordRadar;
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.service.ISysEvaluationRecordService;
@@ -146,10 +147,12 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < size; i++) {
WordEvaluationFactor answerVo = answerVos.get(i);
+ String factorName = answerVo.getFactorName();
double score = answerVo.getScore().doubleValue();
StringBuilder range = new StringBuilder();
BigDecimal minValue = answerVo.getMinValue();
BigDecimal maxValue = answerVo.getMaxValue();
+ String answerScore = answerVo.getScore().toString();
boolean minFlag = false;
boolean maxFlag = false;
if (minValue != null) {
@@ -164,41 +167,49 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
range.append("-");
range.append(maxValue.doubleValue());
} else {
- range.append(">=").append(minValue.doubleValue());
+ answerScore = answerScore + "↑";
+ range.append(minValue.doubleValue());
}
} else {
- range.append(maxValue.doubleValue()).append("<=");
+ range.append(maxValue.doubleValue());
+ answerScore = answerScore + "↓";
}
//处理因子得分表格
- RowRenderData one = Rows.of(answerVo.getFactorName(), answerVo.getQuestionNum().toString(),
- answerVo.getTotalScore().toString(), answerVo.getScore().toString(), range.toString(), answerVo.getRangeName())
+ RowRenderData one = Rows.of(factorName, answerVo.getQuestionNum().toString(),
+ answerVo.getTotalScore().toString(), answerScore, range.toString(), answerVo.getRangeName())
.textFontFamily("宋体").textFontSize(9).center().create();
factorTable.addRow(one);
//处理测评结果
WordFactor wordFactor = new WordFactor();
- wordFactor.setFactorName(answerVo.getFactorName());
+ wordFactor.setFactorName(factorName);
wordFactor.setScore(score);
wordFactor.setEvalDesc(answerVo.getEvalDesc());
//判断激活,放到首位并添加建议
if (answerVo.getStatus() == 1) {
factors.addFirst(wordFactor);
- stringBuilder.append(HtmlUtil.cleanHtmlTag(answerVo.getEvalPropose())).append("\n").append("\n").append("\r");
+ stringBuilder.append("\t").append(factorName).append("——").append(HtmlUtil.cleanHtmlTag(answerVo.getEvalPropose())).append("\n").append("\n").append("\r");
} else {
factors.add(wordFactor);
}
- //雷达图使用
- strings[i] = answerVo.getFactorName();
- doubles[i] = score;
+ if (!"总分".equals(answerVo.getFactorName())) {
+ //雷达图使用
+ strings[i] = answerVo.getFactorName();
+ doubles[i] = score;
+ }
}
wordData.setFactor(factorTable);
wordData.setFactors(factors);
//处理雷达图
- ChartMultiSeriesRenderData chart = Charts
- .ofMultiSeries(scale.getScaleName(), strings)
- .addSeries("因子项", doubles)
- .create();
- wordData.setRadarChart(chart);
+ if (strings.length >1) {
+ ChartMultiSeriesRenderData chart = Charts
+ .ofMultiSeries(scale.getScaleName(), strings)
+ .addSeries("因子项", doubles)
+ .create();
+ WordRadar radar = new WordRadar();
+ radar.setRadarChart(chart);
+ wordData.setRadar(radar);
+ }
wordData.setPropose(stringBuilder.toString());
ClassPathResource classPathResource = new ClassPathResource("word/personalTemplate.docx");
Configure config = Configure.builder()
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java
index 62ea0be..c135837 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysInterveneRecordServiceImpl.java
@@ -5,6 +5,7 @@ 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;
@@ -87,6 +88,10 @@ public class SysInterveneRecordServiceImpl implements ISysInterveneRecordService
@Override
public Boolean insertByBo(SysInterveneRecordBo bo) {
LoginUser loginUser = getLoginUser();
+ SysUser sysUser = userMapper.selectById(loginUser.getUserId());
+ if (sysUser.getInterveneStatus() == 0) {
+ throw new ServiceException("此用户状态为无需干预,无法提交干预记录");
+ }
SysInterveneRecord add = MapstructUtils.convert(bo, SysInterveneRecord.class);
add.setCreateTime(new Date());
add.setCounselorId(loginUser.getUserId());
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 096fff4..d12ecd2 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
@@ -33,7 +33,6 @@ import org.dromara.scale.domain.word.WordWarn;
import org.dromara.scale.mapper.SysEvaluationRecordMapper;
import org.dromara.scale.mapper.SysScaleMapper;
import org.dromara.scale.mapper.SysScalePublishMapper;
-import org.dromara.scale.mapper.SysWarnRecordMapper;
import org.dromara.scale.service.ISysScalePublishService;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.vo.SysDeptVo;
@@ -74,8 +73,6 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
private final SysUserMapper userMapper;
- private final SysWarnRecordMapper warnMapper;
-
private final ISysConfigService configService;
/**
@@ -84,7 +81,13 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
@Override
public SysScalePublishVo queryById(Long batchNo) {
SysScalePublish publish = baseMapper.selectPublishById(batchNo);
- return MapstructUtils.convert(publish, SysScalePublishVo.class);
+ SysScalePublishVo sysScalePublishVo = MapstructUtils.convert(publish, SysScalePublishVo.class);
+ if (ObjectUtil.isEmpty(publish.getDeptNames())) {
+ String userIds = publish.getUserIds();
+ List deptNames = deptMapper.findDeptNameByUserIds(userIds);
+ sysScalePublishVo.setDeptNames(deptNames);
+ }
+ return sysScalePublishVo;
}
/**
@@ -281,7 +284,7 @@ public class SysScalePublishServiceImpl implements ISysScalePublishService {
@Override
public List queryUndoneExportList(BaseQueryBo query) {
- return baseMapper.selectUndoneEvaluationVoList(query.getBatchNo());
+ return baseMapper.selectUndoneEvaluationVoList(query.getBatchNo(), query.getScaleId(), query.getDeptId());
}
@Override
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java
index 563a544..909b622 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/service/impl/SysScaleQuestionServiceImpl.java
@@ -20,6 +20,7 @@ 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.SysScaleMapper;
+import org.dromara.scale.mapper.SysScalePublishMapper;
import org.dromara.scale.mapper.SysScaleQuestionMapper;
import org.dromara.scale.service.ISysScaleQuestionService;
import org.springframework.cache.annotation.CacheEvict;
@@ -46,6 +47,8 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
private final SysScaleMapper scaleMapper;
+ private final SysScalePublishMapper publishMapper;
+
/**
* 查询量问题内容
*/
@@ -86,6 +89,7 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
lqw.eq(StringUtils.isNotBlank(bo.getQuestionContent()), SysScaleQuestion::getQuestionContent, bo.getQuestionContent());
// lqw.eq(bo.getFactorId() != null, SysScaleQuestion::getFactorId, bo.getFactorId());
// lqw.like(StringUtils.isNotBlank(bo.getFactorName()), SysScaleQuestion::getFactorName, bo.getFactorName());
+ lqw.orderByAsc(SysScaleQuestion::getQuestionOrder);
return lqw;
}
@@ -111,13 +115,17 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean insertByBo(SysScaleQuestionBo bo) {
+ Long scaleId = bo.getScaleId();
+ int i = publishMapper.selectCountScalePublishByScaleId(scaleId);
+ if (i > 0) {
+ throw new ServiceException("此量表已有发布,无法新增问题");
+ }
SysScaleQuestion add = MapstructUtils.convert(bo, SysScaleQuestion.class);
//validEntityBeforeSave(add);
- Long scaleId = bo.getScaleId();
SysScale sysScale = scaleMapper.selectById(scaleId);
Integer questionsNum = sysScale.getQuestionsNum();
int count = baseMapper.countQuestionNumByScaleId(scaleId);
- if (count >= questionsNum - 1) {
+ if (count > questionsNum - 1) {
throw new ServiceException("问题数量超过量表的限定数量,请确认后提交");
}
boolean flag = baseMapper.insert(add) > 0;
@@ -148,6 +156,11 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean updateByBo(SysScaleQuestionBo bo) {
+ Long scaleId = bo.getScaleId();
+ int i = publishMapper.selectCountScalePublishByScaleId(scaleId);
+ if (i > 0) {
+ throw new ServiceException("此量表已有发布,无法修改问题");
+ }
SysScaleQuestion update = MapstructUtils.convert(bo, SysScaleQuestion.class);
//validEntityBeforeSave(update);
scaleAnswerMapper.deleteScaleAnswerByQuestionId(update.getQuestionId());
@@ -173,6 +186,11 @@ public class SysScaleQuestionServiceImpl implements ISysScaleQuestionService {
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean deleteByBo(SysScaleQuestionBo bo) {
+ Long scaleId = bo.getScaleId();
+ int i = publishMapper.selectCountScalePublishByScaleId(scaleId);
+ if (i > 0) {
+ throw new ServiceException("此量表已有发布,无法删除问题");
+ }
Long questionId = bo.getQuestionId();
int flag = baseMapper.deleteById(questionId);
scaleAnswerMapper.deleteScaleAnswerByQuestionId(questionId);
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 b435945..04353aa 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
@@ -4,6 +4,7 @@ package org.dromara.scale.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.common.core.enums.UserType;
import org.dromara.common.core.exception.ServiceException;
@@ -41,6 +42,7 @@ import static org.dromara.common.satoken.utils.LoginHelper.getLoginUser;
* @version V1.0.0
* @date 2024/4/15 9:18
*/
+@Slf4j
@RequiredArgsConstructor
@Service
public class WebServiceImpl implements IWebService {
@@ -296,26 +298,24 @@ public class WebServiceImpl implements IWebService {
evalConclusion.setSituationName(SituationEnum.getNameByCode(range.getSituation()));
break;
}
- } //else {
-// logger.error("量表scaleId = {},配置项={} 配置的范围超过1条,但是存在配置范围最大最小值都为null",
-// evalSubmitAnswerDto.getScaleId(), scaleEvalItem.getId());
-// throw new EdfRuntimeException("量表配置项有问题,请联系管理员检查!");
-// }
+ }
}
}
}
+ //假如未对应上说明这个量表配置有问题联系管理员
+ if(Objects.isNull(evalConclusion.getFactorRangeId())){
+ throw new ServiceException("量表配置项有问题,请联系管理员检查!");
+ }
if (used.contains(evalConclusion.getSituation())) {
evalConclusion.setWarnStatus(1);
- }else {
+ } else {
evalConclusion.setWarnStatus(0);
}
list.add(evalConclusion);
}
//处理维度问题及status
- //量表
SysScale scaleInfo = scaleMapper.selectById(scaleId);
scaleDimension(list, scaleInfo);
- //保存结果
return list;
}
diff --git a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/utils/AsposeUtil.java b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/utils/AsposeUtil.java
index 7ac1a62..2c0905d 100644
--- a/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/utils/AsposeUtil.java
+++ b/ruoyi-modules/rouyi-scale/src/main/java/org/dromara/scale/utils/AsposeUtil.java
@@ -1,13 +1,11 @@
package org.dromara.scale.utils;
import com.aspose.words.Document;
-import com.aspose.words.License;
import com.aspose.words.SaveFormat;
import lombok.SneakyThrows;
import java.io.File;
import java.io.FileOutputStream;
-import java.io.InputStream;
/**
* TODO
@@ -17,16 +15,6 @@ import java.io.InputStream;
* @date 2024/5/20 15:03
*/
public class AsposeUtil {
- /**
- * 加载license 用于破解 不生成水印
- */
- @SneakyThrows
- private static void getLicense() {
- try (InputStream is = AsposeUtil.class.getClassLoader().getResourceAsStream("License.xml")) {
- License license = new License();
- license.setLicense(is);
- }
- }
/**
* word转pdf
@@ -36,7 +24,6 @@ public class AsposeUtil {
*/
@SneakyThrows
public static void wordToPdf(String wordPath, File pdfFile) {
- getLicense();
try (FileOutputStream os = new FileOutputStream(pdfFile)) {
Document doc = new Document(wordPath);
doc.save(os, SaveFormat.PDF);
diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/License.xml b/ruoyi-modules/rouyi-scale/src/main/resources/License.xml
deleted file mode 100644
index 2cbce45..0000000
--- a/ruoyi-modules/rouyi-scale/src/main/resources/License.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
- Aspose.Total for Java
- Aspose.Words for Java
-
- Enterprise
- 20991231
- 20991231
- 8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7
-
-
- sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=
-
-
diff --git a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml
index 068cd17..984731d 100644
--- a/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml
+++ b/ruoyi-modules/rouyi-scale/src/main/resources/mapper/scale/StatisticMapper.xml
@@ -38,18 +38,16 @@
@@ -93,9 +99,15 @@
from sys_scale_publish
-
+
+
+ select d.dept_name
+ from sys_user u
+ left join sys_dept d on d.dept_id = u.dept_id
+ where find_in_set(user_id, #{userIds})
+ group by d.dept_id
+