档案统计
This commit is contained in:
parent
7d50fa7103
commit
d91f1eeaa4
|
@ -20,35 +20,35 @@ spring:
|
|||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
url: jdbc:mysql://172.25.23.150:16338/mental_health_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: root
|
||||
password: Mz!@#123
|
||||
# 从库数据源
|
||||
slave:
|
||||
lazy: true
|
||||
type: ${spring.datasource.type}
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
url: jdbc:mysql://172.25.23.150:16338/mental_health_vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username:
|
||||
password:
|
||||
# oracle:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: oracle.jdbc.OracleDriver
|
||||
# url: jdbc:oracle:thin:@//localhost:1521/XE
|
||||
# username: ROOT
|
||||
# password: root
|
||||
# postgres:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: org.postgresql.Driver
|
||||
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
|
||||
# username: root
|
||||
# password: root
|
||||
# sqlserver:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
|
||||
# username: SA
|
||||
# password: root
|
||||
# oracle:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: oracle.jdbc.OracleDriver
|
||||
# url: jdbc:oracle:thin:@//localhost:1521/XE
|
||||
# username: ROOT
|
||||
# password: root
|
||||
# postgres:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: org.postgresql.Driver
|
||||
# url: jdbc:postgresql://localhost:5432/postgres?useUnicode=true&characterEncoding=utf8&useSSL=true&autoReconnect=true&reWriteBatchedInserts=true
|
||||
# username: root
|
||||
# password: root
|
||||
# sqlserver:
|
||||
# type: ${spring.datasource.type}
|
||||
# driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
|
||||
# url: jdbc:sqlserver://localhost:1433;DatabaseName=tempdb;SelectMethod=cursor;encrypt=false;rewriteBatchedStatements=true
|
||||
# username: SA
|
||||
# password: root
|
||||
hikari:
|
||||
# 最大连接池数量
|
||||
maxPoolSize: 20
|
||||
|
@ -69,16 +69,16 @@ spring:
|
|||
spring.data:
|
||||
redis:
|
||||
# 地址
|
||||
host: localhost
|
||||
host: 172.25.23.150
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
port: 16237
|
||||
# 数据库索引
|
||||
database: 0
|
||||
database: 1
|
||||
# 密码(如没有密码请注释掉)
|
||||
# password:
|
||||
# 连接超时时间
|
||||
timeout: 10s
|
||||
# 是否开启ssl
|
||||
# 是否开启sslkeys
|
||||
ssl.enabled: false
|
||||
|
||||
redisson:
|
||||
|
|
|
@ -22,7 +22,7 @@ captcha:
|
|||
# 开发环境配置
|
||||
server:
|
||||
# 服务器的HTTP端口,默认为8080
|
||||
port: 8080
|
||||
port: 8070
|
||||
servlet:
|
||||
# 应用的访问路径
|
||||
context-path: /
|
||||
|
|
|
@ -1,45 +0,0 @@
|
|||
package org.dromara.test;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
/**
|
||||
* 断言单元测试案例
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@DisplayName("断言单元测试案例")
|
||||
public class AssertUnitTest {
|
||||
|
||||
@DisplayName("测试 assertEquals 方法")
|
||||
@Test
|
||||
public void testAssertEquals() {
|
||||
Assertions.assertEquals("666", new String("666"));
|
||||
Assertions.assertNotEquals("666", new String("666"));
|
||||
}
|
||||
|
||||
@DisplayName("测试 assertSame 方法")
|
||||
@Test
|
||||
public void testAssertSame() {
|
||||
Object obj = new Object();
|
||||
Object obj1 = obj;
|
||||
Assertions.assertSame(obj, obj1);
|
||||
Assertions.assertNotSame(obj, obj1);
|
||||
}
|
||||
|
||||
@DisplayName("测试 assertTrue 方法")
|
||||
@Test
|
||||
public void testAssertTrue() {
|
||||
Assertions.assertTrue(true);
|
||||
Assertions.assertFalse(true);
|
||||
}
|
||||
|
||||
@DisplayName("测试 assertNull 方法")
|
||||
@Test
|
||||
public void testAssertNull() {
|
||||
Assertions.assertNull(null);
|
||||
Assertions.assertNotNull(null);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,70 +0,0 @@
|
|||
package org.dromara.test;
|
||||
|
||||
import org.dromara.common.core.config.RuoYiConfig;
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* 单元测试案例
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SpringBootTest // 此注解只能在 springboot 主包下使用 需包含 main 方法与 yml 配置文件
|
||||
@DisplayName("单元测试案例")
|
||||
public class DemoUnitTest {
|
||||
|
||||
@Autowired
|
||||
private RuoYiConfig ruoYiConfig;
|
||||
|
||||
@DisplayName("测试 @SpringBootTest @Test @DisplayName 注解")
|
||||
@Test
|
||||
public void testTest() {
|
||||
System.out.println(ruoYiConfig);
|
||||
}
|
||||
|
||||
@Disabled
|
||||
@DisplayName("测试 @Disabled 注解")
|
||||
@Test
|
||||
public void testDisabled() {
|
||||
System.out.println(ruoYiConfig);
|
||||
}
|
||||
|
||||
@Timeout(value = 2L, unit = TimeUnit.SECONDS)
|
||||
@DisplayName("测试 @Timeout 注解")
|
||||
@Test
|
||||
public void testTimeout() throws InterruptedException {
|
||||
Thread.sleep(3000);
|
||||
System.out.println(ruoYiConfig);
|
||||
}
|
||||
|
||||
|
||||
@DisplayName("测试 @RepeatedTest 注解")
|
||||
@RepeatedTest(3)
|
||||
public void testRepeatedTest() {
|
||||
System.out.println(666);
|
||||
}
|
||||
|
||||
@BeforeAll
|
||||
public static void testBeforeAll() {
|
||||
System.out.println("@BeforeAll ==================");
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void testBeforeEach() {
|
||||
System.out.println("@BeforeEach ==================");
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void testAfterEach() {
|
||||
System.out.println("@AfterEach ==================");
|
||||
}
|
||||
|
||||
@AfterAll
|
||||
public static void testAfterAll() {
|
||||
System.out.println("@AfterAll ==================");
|
||||
}
|
||||
|
||||
}
|
|
@ -1,72 +0,0 @@
|
|||
package org.dromara.test;
|
||||
|
||||
import org.dromara.common.core.enums.UserType;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.EnumSource;
|
||||
import org.junit.jupiter.params.provider.MethodSource;
|
||||
import org.junit.jupiter.params.provider.NullSource;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* 带参数单元测试案例
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@DisplayName("带参数单元测试案例")
|
||||
public class ParamUnitTest {
|
||||
|
||||
@DisplayName("测试 @ValueSource 注解")
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = {"t1", "t2", "t3"})
|
||||
public void testValueSource(String str) {
|
||||
System.out.println(str);
|
||||
}
|
||||
|
||||
@DisplayName("测试 @NullSource 注解")
|
||||
@ParameterizedTest
|
||||
@NullSource
|
||||
public void testNullSource(String str) {
|
||||
System.out.println(str);
|
||||
}
|
||||
|
||||
@DisplayName("测试 @EnumSource 注解")
|
||||
@ParameterizedTest
|
||||
@EnumSource(UserType.class)
|
||||
public void testEnumSource(UserType type) {
|
||||
System.out.println(type.getUserType());
|
||||
}
|
||||
|
||||
@DisplayName("测试 @MethodSource 注解")
|
||||
@ParameterizedTest
|
||||
@MethodSource("getParam")
|
||||
public void testMethodSource(String str) {
|
||||
System.out.println(str);
|
||||
}
|
||||
|
||||
public static Stream<String> getParam() {
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("t1");
|
||||
list.add("t2");
|
||||
list.add("t3");
|
||||
return list.stream();
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void testBeforeEach() {
|
||||
System.out.println("@BeforeEach ==================");
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void testAfterEach() {
|
||||
System.out.println("@AfterEach ==================");
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
package org.dromara.test;
|
||||
|
||||
import org.junit.jupiter.api.*;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
|
||||
/**
|
||||
* 标签单元测试案例
|
||||
*
|
||||
* @author Lion Li
|
||||
*/
|
||||
@SpringBootTest
|
||||
@DisplayName("标签单元测试案例")
|
||||
public class TagUnitTest {
|
||||
|
||||
@Tag("dev")
|
||||
@DisplayName("测试 @Tag dev")
|
||||
@Test
|
||||
public void testTagDev() {
|
||||
System.out.println("dev");
|
||||
}
|
||||
|
||||
@Tag("prod")
|
||||
@DisplayName("测试 @Tag prod")
|
||||
@Test
|
||||
public void testTagProd() {
|
||||
System.out.println("prod");
|
||||
}
|
||||
|
||||
@Tag("local")
|
||||
@DisplayName("测试 @Tag local")
|
||||
@Test
|
||||
public void testTagLocal() {
|
||||
System.out.println("local");
|
||||
}
|
||||
|
||||
@Tag("exclude")
|
||||
@DisplayName("测试 @Tag exclude")
|
||||
@Test
|
||||
public void testTagExclude() {
|
||||
System.out.println("exclude");
|
||||
}
|
||||
|
||||
@BeforeEach
|
||||
public void testBeforeEach() {
|
||||
System.out.println("@BeforeEach ==================");
|
||||
}
|
||||
|
||||
@AfterEach
|
||||
public void testAfterEach() {
|
||||
System.out.println("@AfterEach ==================");
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -182,6 +182,7 @@ public class OssClient {
|
|||
return header + domain + "/" + properties.getBucketName();
|
||||
}
|
||||
return header + endpoint + "/" + properties.getBucketName();
|
||||
//return "https://wx.ysmental.com/oss/" + properties.getBucketName();
|
||||
}
|
||||
|
||||
public String getPath(String prefix, String suffix) {
|
||||
|
@ -249,8 +250,10 @@ public class OssClient {
|
|||
}
|
||||
builder.append("{\n\"Action\": ");
|
||||
builder.append(switch (policyType) {
|
||||
case WRITE -> "[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
|
||||
case READ_WRITE -> "[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:GetObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
|
||||
case WRITE ->
|
||||
"[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
|
||||
case READ_WRITE ->
|
||||
"[\n\"s3:AbortMultipartUpload\",\n\"s3:DeleteObject\",\n\"s3:GetObject\",\n\"s3:ListMultipartUploadParts\",\n\"s3:PutObject\"\n],\n";
|
||||
default -> "\"s3:GetObject\",\n";
|
||||
});
|
||||
builder.append("\"Effect\": \"Allow\",\n\"Principal\": \"*\",\n\"Resource\": \"arn:aws:s3:::");
|
||||
|
|
|
@ -2,15 +2,20 @@ package org.dromara.scale.controller;
|
|||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.vo.ArchiveStatisticVo;
|
||||
import org.dromara.scale.domain.vo.ArchiveVo;
|
||||
import org.dromara.scale.domain.vo.StatisticScaleVo;
|
||||
import org.dromara.scale.domain.vo.StatisticWarnVo;
|
||||
import org.dromara.scale.service.IArchiveService;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>TODO<p>
|
||||
*
|
||||
|
@ -34,6 +39,7 @@ public class ArchiveController {
|
|||
public TableDataInfo<ArchiveVo> pageList(ArchiveVo vo, PageQuery pageQuery) {
|
||||
return archiveService.queryPageList(vo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取档案静态列表
|
||||
*/
|
||||
|
@ -43,4 +49,22 @@ public class ArchiveController {
|
|||
return archiveService.queryStatisticPageList(userId, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取档案静态列表
|
||||
*/
|
||||
@SaCheckPermission("scale:archive:statistic")
|
||||
@GetMapping("/statistic/scale")
|
||||
public R<List<StatisticScaleVo>> statisticScale() {
|
||||
return R.ok(archiveService.queryStatisticScale());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取档案静态列表
|
||||
*/
|
||||
@SaCheckPermission("scale:archive:statistic")
|
||||
@GetMapping("/statistic/warn")
|
||||
public R<StatisticWarnVo> statisticWarn() {
|
||||
return R.ok(archiveService.queryStatisticWarn());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,7 @@ import io.github.linpeilie.annotations.AutoMapping;
|
|||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
|
@ -41,6 +42,7 @@ public class SysScaleBo extends BaseEntity {
|
|||
* 量表编码
|
||||
*/
|
||||
@NotBlank(message = "量表编码不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
@Size()
|
||||
private String scaleCode;
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
package org.dromara.scale.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* <p>量表统计<p>
|
||||
*
|
||||
* @author cjw
|
||||
* @version V1.0.0
|
||||
* @date 2024/8/7 17:06
|
||||
*/
|
||||
@Data
|
||||
public class StatisticScaleVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String name;
|
||||
|
||||
private String times;
|
||||
|
||||
private int value;
|
||||
}
|
|
@ -8,7 +8,7 @@ import org.dromara.scale.domain.SysEvaluationRecord;
|
|||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -61,6 +61,9 @@ public class SysEvaluationRecordVo implements Serializable {
|
|||
*/
|
||||
private Integer status;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -7,6 +7,10 @@ import org.dromara.common.mybatis.annotation.DataColumn;
|
|||
import org.dromara.common.mybatis.annotation.DataPermission;
|
||||
import org.dromara.scale.domain.vo.ArchiveStatisticVo;
|
||||
import org.dromara.scale.domain.vo.ArchiveVo;
|
||||
import org.dromara.scale.domain.vo.StatisticWarnVo;
|
||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ArchiveMapper {
|
||||
|
@ -18,5 +22,8 @@ public interface ArchiveMapper {
|
|||
|
||||
Page<ArchiveStatisticVo> selectStatisticVoPage(@Param("page") Page<ArchiveStatisticVo> page, @Param("userId") Long userId);
|
||||
|
||||
List<SysEvaluationRecordVo> selectScaleRecordByUserId(@Param("userId") Long userId);
|
||||
StatisticWarnVo selectWarnByUserId(@Param("userId") Long userId);
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -4,9 +4,18 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.vo.ArchiveStatisticVo;
|
||||
import org.dromara.scale.domain.vo.ArchiveVo;
|
||||
import org.dromara.scale.domain.vo.StatisticScaleVo;
|
||||
import org.dromara.scale.domain.vo.StatisticWarnVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface IArchiveService {
|
||||
|
||||
TableDataInfo<ArchiveVo> queryPageList(ArchiveVo vo, PageQuery pageQuery);
|
||||
|
||||
TableDataInfo<ArchiveStatisticVo> queryStatisticPageList(Long usetId, PageQuery pageQuery);
|
||||
|
||||
List<StatisticScaleVo> queryStatisticScale();
|
||||
|
||||
StatisticWarnVo queryStatisticWarn();
|
||||
}
|
||||
|
|
|
@ -1,15 +1,21 @@
|
|||
package org.dromara.scale.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.vo.ArchiveStatisticVo;
|
||||
import org.dromara.scale.domain.vo.ArchiveVo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.scale.domain.vo.*;
|
||||
import org.dromara.scale.mapper.ArchiveMapper;
|
||||
import org.dromara.scale.service.IArchiveService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>TODO<p>
|
||||
*
|
||||
|
@ -38,4 +44,45 @@ public class ArchiveServiceImpl implements IArchiveService {
|
|||
Page<ArchiveStatisticVo> result = archiveMapper.selectStatisticVoPage(pageQuery.build(), userId);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StatisticScaleVo> queryStatisticScale() {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
List<SysEvaluationRecordVo> list = archiveMapper.selectScaleRecordByUserId(userId);
|
||||
Map<String, List<Instant>> groupedTimes = list.stream()
|
||||
.sorted(Comparator.comparing(e -> e.getCreateTime().toInstant())) // 先排序
|
||||
.collect(Collectors.groupingBy(
|
||||
SysEvaluationRecordVo::getScaleName,
|
||||
Collectors.mapping(e -> e.getCreateTime().toInstant(), Collectors.toList())
|
||||
));
|
||||
Map<String, String> result = groupedTimes.entrySet().stream()
|
||||
.collect(Collectors.toMap(
|
||||
Map.Entry::getKey,
|
||||
entry -> formatTimes(entry.getValue())
|
||||
));
|
||||
List<StatisticScaleVo> data = new ArrayList<>(result.keySet().size());
|
||||
result.forEach((name, times) ->
|
||||
{
|
||||
StatisticScaleVo one = new StatisticScaleVo();
|
||||
one.setName(name);
|
||||
one.setTimes(times);
|
||||
List<String> split = StrUtil.split(times, ",");
|
||||
one.setValue(split.size());
|
||||
data.add(one);
|
||||
});
|
||||
return data;
|
||||
}
|
||||
|
||||
private String formatTimes(List<Instant> instants) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
return instants.stream()
|
||||
.map(instant -> sdf.format(Date.from(instant)))
|
||||
.collect(Collectors.joining(", "));
|
||||
}
|
||||
|
||||
@Override
|
||||
public StatisticWarnVo queryStatisticWarn() {
|
||||
Long userId = LoginHelper.getUserId();
|
||||
return archiveMapper.selectWarnByUserId(userId);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ import org.dromara.common.core.utils.DateUtils;
|
|||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.SysEvaluationRecord;
|
||||
import org.dromara.scale.domain.SysScale;
|
||||
import org.dromara.scale.domain.bo.BaseQueryBo;
|
||||
import org.dromara.scale.domain.bo.SysEvaluationRecordBo;
|
||||
import org.dromara.scale.domain.vo.SysEvaluationRecordVo;
|
||||
|
@ -113,6 +114,11 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
|||
if (scaleId == null) {
|
||||
throw new ServerException("量表ID不能为空");
|
||||
}
|
||||
SysScale sysScale = scaleMapper.selectById(scaleId);
|
||||
boolean mbtiFlag = false;
|
||||
if (sysScale.getScaleName().contains("MBTI")) {
|
||||
mbtiFlag = true;
|
||||
}
|
||||
EvaluationRecordWordData wordData = new EvaluationRecordWordData();
|
||||
|
||||
String name = configService.selectConfigByKey("sys.school.name");
|
||||
|
@ -217,8 +223,12 @@ public class SysEvaluationRecordServiceImpl implements ISysEvaluationRecordServi
|
|||
wordData.setRadar(radar);
|
||||
}
|
||||
wordData.setPropose(stringBuilder.toString());
|
||||
File path = new File("/usr/local/mental/word/personalTemplate.docx");
|
||||
|
||||
File path = null;
|
||||
if(mbtiFlag){
|
||||
path = new File("/usr/local/mental/word/MBTITemplate.docx");
|
||||
}else{
|
||||
path = new File("/usr/local/mental/word/personalTemplate.docx");
|
||||
}
|
||||
File docx = FileUtil.createTempFile(".docx", true);
|
||||
String wordPath = docx.getPath();
|
||||
try (FileInputStream fileInputStream = new FileInputStream(path)) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.dromara.scale.starter;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.redis.utils.QueueUtils;
|
||||
import org.dromara.scale.constant.StatusEnum;
|
||||
import org.dromara.scale.domain.SysScalePublish;
|
||||
|
@ -16,6 +17,7 @@ import org.springframework.stereotype.Component;
|
|||
* @version V1.0.0
|
||||
* @date 2024/4/15 15:08
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
@RequiredArgsConstructor
|
||||
@Order(value = 99)
|
||||
|
@ -29,14 +31,17 @@ public class ApplicationStarter implements CommandLineRunner {
|
|||
}
|
||||
|
||||
private void subscribeRedisDelayedQueue(){
|
||||
log.info("=======================延迟队列回调开始===============");
|
||||
// 项目初始化设置一次即可
|
||||
QueueUtils.subscribeBlockingQueue("endPublish-delay-queue", (Long batchNo) -> {
|
||||
log.info("=======================结束发布回调开始 批次号:{}===============",batchNo);
|
||||
SysScalePublish publish = new SysScalePublish();
|
||||
publish.setBatchNo(batchNo);
|
||||
publish.setStatus(StatusEnum.DISABLED.getValue());
|
||||
publishMapper.updateById(publish);
|
||||
}, true);
|
||||
QueueUtils.subscribeBlockingQueue("startPublish-delay-queue", (Long batchNo) -> {
|
||||
log.info("=======================预约发布回调开始 批次号:{}===============",batchNo);
|
||||
//SysScalePublish scalePublish = publishMapper.selectById(batchNo);
|
||||
SysScalePublish publish = new SysScalePublish();
|
||||
publish.setBatchNo(batchNo);
|
||||
|
|
|
@ -40,5 +40,28 @@
|
|||
where er.user_id = #{userId}
|
||||
and er.status = 1
|
||||
group by er.record_id
|
||||
order by er.create_time desc
|
||||
</select>
|
||||
|
||||
<select id="selectScaleRecordByUserId" resultType="org.dromara.scale.domain.vo.SysEvaluationRecordVo">
|
||||
select er.create_time, s.scale_name
|
||||
from sys_evaluation_record er
|
||||
left join sys_scale s on s.scale_id = er.scale_id
|
||||
where er.status = 1
|
||||
and er.user_id = #{userId}
|
||||
</select>
|
||||
|
||||
<select id="selectWarnByUserId" resultType="org.dromara.scale.domain.vo.StatisticWarnVo">
|
||||
select count(if(ec.situation = 1, 1, null)) as `noneNum`,
|
||||
count(if(ec.situation = 2, 1, null)) as `lowNum`,
|
||||
count(if(ec.situation = 3, 1, null)) as `middleNum`,
|
||||
count(if(ec.situation = 4, 1, null)) as `highNum`,
|
||||
count(if(ec.situation = 5, 1, null)) as `majorNum`
|
||||
from sys_evaluation_record er
|
||||
left join sys_evaluation_conclusion ec
|
||||
on ec.record_id = er.record_id
|
||||
where er.status = 1
|
||||
and ec.status = 1
|
||||
and er.user_id = #{userId}
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue