From 4d4e6c810d99235e97beab7a8cbdbe8706a5e505 Mon Sep 17 00:00:00 2001
From: huangzhen <867217663@qq.com>
Date: Tue, 05 Sep 2023 13:57:25 +0800
Subject: [PATCH] 新增一些功能
---
src/main/resources/config/redisson-online-uat.yml | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogInfoReqDTO.java | 18 +
src/main/resources/template/dailyReportTemplate.docx | 0
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionReqDTO.java | 3
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java | 8
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/HandleGasWarnLogReqDTO.java | 20 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdRespDTO.java | 9
src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnLogRepository.java | 5
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/RegionServiceImpl.java | 41 +
src/main/resources/config/application-online-uat.yaml | 16
src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/exception/RepeatedClickException.java | 34 ++
src/main/java/com/gkhy/fourierSpecialGasMonitor/Application.java | 5
src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/entity/User.java | 8
src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java | 7
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionPageRespDTO.java | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnUserRepository.java | 3
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java | 84 ++++
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/DataReceiveController.java | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogCountByTimeReqDTO.java | 16
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasCategoryController.java | 5
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasThresholdController.java | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationExcWebsocketServer.java | 15
src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/enums/ResultCode.java | 1
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionLngLatReqDTO.java | 4
src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/converter/UserInfoDomainConverter.java | 14
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/GasWarnLog.java | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/GasWarnTimesCountEnum.java | 71 ++++
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnUserServiceImpl.java | 21
src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java | 13
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/HeartbeatExcWebsocketServer.java | 12
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogInfoByTimeRespDTO.java | 35 ++
pom.xml | 4
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnLogController.java | 21 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java | 10
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindGasWarnLogPageRespDTO.java | 6
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasThresholdServiceImpl.java | 10
src/main/java/com/gkhy/fourierSpecialGasMonitor/aspect/RepeatedClickAspect.java | 61 +++
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogCountByTimeRespDTO.java | 19 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/config/exception/GlobalExceptionHandler.java | 12
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java | 40 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationWebsocketServer.java | 14
src/main/resources/config/application-dev.yaml | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdLngLatRespDTO.java | 21 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasWarnLogService.java | 10
src/main/java/com/gkhy/fourierSpecialGasMonitor/config/authorization/TokenCheckWhiteListEnum.java | 1
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasThresholdListRespDTO.java | 2
src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/TestSchedule.java | 199 +++++++++++
/dev/null | 30 -
src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/query/GasWarnTimesCountTimeSlotQuery.java | 22 +
src/main/java/com/gkhy/fourierSpecialGasMonitor/annotation/RepeatedClick.java | 16
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnUserController.java | 3
src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/RegionController.java | 3
src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasDeviceExcWebsocketServer.java | 14
53 files changed, 833 insertions(+), 165 deletions(-)
diff --git a/pom.xml b/pom.xml
index 08f110f..2adaf2a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -132,10 +132,6 @@
<artifactId>hutool-all</artifactId>
<version>5.8.10</version>
</dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
<dependency>
<groupId>org.apache.poi</groupId>
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/Application.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/Application.java
index 0756f61..b5ea265 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/Application.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/Application.java
@@ -1,5 +1,7 @@
package com.gkhy.fourierSpecialGasMonitor;
+import com.gkhy.fourierSpecialGasMonitor.entity.query.GasWarnTimesCountTimeSlotQuery;
+import com.gkhy.fourierSpecialGasMonitor.enums.GasWarnTimesCountEnum;
import io.micrometer.core.instrument.util.StringUtils;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -7,6 +9,9 @@
import org.springframework.scheduling.annotation.EnableScheduling;
import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
@EnableJpaAuditing
@EnableScheduling
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/annotation/RepeatedClick.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/annotation/RepeatedClick.java
new file mode 100644
index 0000000..2ec81d8
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/annotation/RepeatedClick.java
@@ -0,0 +1,16 @@
+package com.gkhy.fourierSpecialGasMonitor.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface RepeatedClick {
+
+ //2秒内都属于重复提交
+ int clickTime() default 2;
+
+ String errorMessage() default "您点击太快了,请稍后尝试";
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/api/controller/account/UserIndentityController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/api/controller/account/UserIndentityController.java
deleted file mode 100644
index a7eeb30..0000000
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/api/controller/account/UserIndentityController.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.gkhy.fourierSpecialGasMonitor.api.controller.account;
-
-import com.gkhy.fourierSpecialGasMonitor.api.controller.account.converter.UserIdentityApiConverter;
-import com.gkhy.fourierSpecialGasMonitor.api.controller.account.dto.resp.UserIdentityApiDTO;
-import com.gkhy.fourierSpecialGasMonitor.application.account.dto.respDto.UserIndentityAppDTO;
-import com.gkhy.fourierSpecialGasMonitor.application.account.service.UserIdentityAppService;
-import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * @email 1603559716@qq.com
- * @author: zf
- * @date: 2023/5/4
- * @time: 13:40
- */
-@RestController
-@RequestMapping("/account/user/identity")
-public class UserIndentityController {
-
- @Autowired
- private UserIdentityApiConverter userIdentityApiConverter;
- @Autowired
- private UserIdentityAppService userIdentityAppService;
-
- @PostMapping("/list")
- public Result findUser(){
- Result<List<UserIdentityApiDTO>> result = new Result<>();
- result.setSuccess();
- List<UserIndentityAppDTO> list = userIdentityAppService.list();
- result.setData(userIdentityApiConverter.toApiDtoList(list));
- return result;
- }
-}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/UserIdentityAppService.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/UserIdentityAppService.java
deleted file mode 100644
index 9553e74..0000000
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/UserIdentityAppService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.gkhy.fourierSpecialGasMonitor.application.account.service;
-
-import com.gkhy.fourierSpecialGasMonitor.application.account.dto.respDto.UserIndentityAppDTO;
-
-import java.util.List;
-
-/**
- * @email 1603559716@qq.com
- * @author: zf
- * @date: 2023/5/4
- * @time: 13:49
- */
-public interface UserIdentityAppService {
- List<UserIndentityAppDTO> list();
-}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/impl/UserIdentityAppServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/impl/UserIdentityAppServiceImpl.java
deleted file mode 100644
index 4ba0140..0000000
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/application/account/service/impl/UserIdentityAppServiceImpl.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.gkhy.fourierSpecialGasMonitor.application.account.service.impl;
-
-import com.gkhy.fourierSpecialGasMonitor.application.account.converter.UserIndentityAppConverter;
-import com.gkhy.fourierSpecialGasMonitor.application.account.dto.respDto.UserIndentityAppDTO;
-import com.gkhy.fourierSpecialGasMonitor.application.account.service.UserIdentityAppService;
-import com.gkhy.fourierSpecialGasMonitor.domain.account.model.dto.UserIdentityDomainDTO;
-import com.gkhy.fourierSpecialGasMonitor.domain.account.service.UserIdentityDomainService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @email 1603559716@qq.com
- * @author: zf
- * @date: 2023/5/4
- * @time: 13:49
- */
-@Service
-public class UserIdentityAppServiceImpl implements UserIdentityAppService {
- @Autowired
- private UserIdentityDomainService userIdentityDomainService;
- @Autowired
- private UserIndentityAppConverter userIndentityAppConverter;
- @Override
- public List<UserIndentityAppDTO> list() {
- List<UserIdentityDomainDTO> list = userIdentityDomainService.getList();
- return userIndentityAppConverter.toUserIndentityAppDTO(list);
- }
-}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/aspect/RepeatedClickAspect.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/aspect/RepeatedClickAspect.java
new file mode 100644
index 0000000..d39d062
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/aspect/RepeatedClickAspect.java
@@ -0,0 +1,61 @@
+package com.gkhy.fourierSpecialGasMonitor.aspect;
+
+
+import com.gkhy.fourierSpecialGasMonitor.commons.enums.ResultCode;
+import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException;
+import com.gkhy.fourierSpecialGasMonitor.commons.exception.RepeatedClickException;
+import com.gkhy.fourierSpecialGasMonitor.config.authorization.TokenConfig;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.concurrent.TimeUnit;
+
+@Component
+@Aspect
+public class RepeatedClickAspect {
+
+ @Resource
+ protected TokenConfig tokenConfig;
+
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ @Before("@annotation(com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick)")
+ @ResponseBody
+ public void beforeRepeatedClick(JoinPoint joinPoint){
+ ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+ HttpServletRequest arg = requestAttributes.getRequest();
+ MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
+ RepeatedClick annotation = methodSignature.getMethod().getAnnotation(RepeatedClick.class);
+ if (annotation != null){
+ int clickTime = annotation.clickTime();
+ String errorMessage = annotation.errorMessage();
+ String userId = arg.getHeader(tokenConfig.getLoginUserHeader());
+ if (!StringUtils.isEmpty(userId)) {
+ try {
+ Long uid = Long.parseLong(userId);
+ String key = "uid:"+uid+"_"+ arg.getRequestURI() + "_" + arg.getMethod();
+ if (redisTemplate.hasKey(key)){
+ throw new RepeatedClickException(errorMessage);
+ }else {
+ redisTemplate.opsForValue().set(key,"",clickTime, TimeUnit.SECONDS);
+ }
+ } catch (NumberFormatException e) {
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR.getCode(),"数据参数异常");
+ }
+ }
+ }
+ }
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/enums/ResultCode.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/enums/ResultCode.java
index edfbc0a..3c826ba 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/enums/ResultCode.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/enums/ResultCode.java
@@ -38,6 +38,7 @@
SYSTEM_ERROR_API_OUT_OF_TIME(502,"接口超时"),
SYSTEM_ERROR_DATABASE_FAIL(503,"数据库错误"),
SYSTEM_ERROR_SERIALIZA_FAIL(504,"序列化错误"),
+ SYSTEM_ERROR_WEBSOCKET_SEND_INFO_FAIL(505,"websocket发送消息失败"),
//文件
FILE_NOT_EXISIST(600,"文件不存在"),
PATH_NOT_EXISIST(601,"文件路径不存在"),
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/exception/RepeatedClickException.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/exception/RepeatedClickException.java
new file mode 100644
index 0000000..69adfd9
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/commons/exception/RepeatedClickException.java
@@ -0,0 +1,34 @@
+package com.gkhy.fourierSpecialGasMonitor.commons.exception;
+
+public class RepeatedClickException extends RuntimeException{
+
+ private String code;
+ private String error;
+
+ public RepeatedClickException(String message) {
+ super(message);
+ }
+
+
+ public RepeatedClickException(String code, String error) {
+ super(error);
+ this.code = code;
+ this.error = error;
+ }
+
+ public String getCode() {
+ return code;
+ }
+
+ public void setCode(String code) {
+ this.code = code;
+ }
+
+ public String getError() {
+ return error;
+ }
+
+ public void setError(String error) {
+ this.error = error;
+ }
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/authorization/TokenCheckWhiteListEnum.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/authorization/TokenCheckWhiteListEnum.java
index de89ad3..f24c99c 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/authorization/TokenCheckWhiteListEnum.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/authorization/TokenCheckWhiteListEnum.java
@@ -11,6 +11,7 @@
PATH_FORGET_PASSWORD("/account/auth/pwd/forget/reset","忘记密码重置密码接口",true),
PATH_LICENSE("/sys/lic/**","授权证书查看",true),
PATH_ACCOUNT_AUTH("/account/auth/**","用户认证",true),
+ PATH_WEBSOCKET("/ws/**","websocket相关接口",true),
/*PATH_TEST_ACCOUNT("/account/user/**","账号测试接口",true),
//basic部分测试接口
PATH_TEST_BASIC("/basic/**","账号测试接口",true),
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/exception/GlobalExceptionHandler.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/exception/GlobalExceptionHandler.java
index cb55785..f6325f6 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/exception/GlobalExceptionHandler.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/config/exception/GlobalExceptionHandler.java
@@ -9,6 +9,7 @@
import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException;
import com.gkhy.fourierSpecialGasMonitor.commons.exception.DataReceiveException;
import com.gkhy.fourierSpecialGasMonitor.commons.exception.ExceptionInfo;
+import com.gkhy.fourierSpecialGasMonitor.commons.exception.RepeatedClickException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -83,6 +84,17 @@
return result;
}
+ /**
+ * 重复点击异常
+ */
+ @ResponseBody
+ @ExceptionHandler(value = RepeatedClickException.class)
+ public Result repeatedClickExceptionHandler(RepeatedClickException e) throws JsonProcessingException {
+ Result result = new Result();
+ result.setSuccess();
+ result.setMsg(e.getMessage());
+ return result;
+ }
/**
* @Description: AuthenticationException
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/DataReceiveController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/DataReceiveController.java
index ec65961..5bf0ae9 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/DataReceiveController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/DataReceiveController.java
@@ -1,5 +1,6 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.ForeignResult;
import com.gkhy.fourierSpecialGasMonitor.entity.req.DeviceMonitorReqDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.req.UploadGasConcentrationReqDTO;
@@ -33,6 +34,7 @@
}
@PostMapping("/list/gasCategory")
+ @RepeatedClick
public ForeignResult listGasCategory(){
ForeignResult result = dataReceiveService.listGasCategory();
return result;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasCategoryController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasCategoryController.java
index 7d8d93c..b0e0751 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasCategoryController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasCategoryController.java
@@ -1,5 +1,6 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.api.controller.common.BaseController;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
@@ -31,12 +32,14 @@
private RedissonClient redissonClient;
@PostMapping("/add")
+ @RepeatedClick
public Result createGasCategory(@RequestBody CreateGasCategoryReqDTO reqDto){
Result result = gasCategoryService.createGasCategory(reqDto);
return result;
}
@PostMapping("/update")
+ @RepeatedClick
public Result updateGasCategory(@RequestBody UpdateGasCategoryReqDTO reqDto){
Result result = gasCategoryService.updateGasCategory(reqDto);
return result;
@@ -69,7 +72,7 @@
bucket.delete();
}
this.gasCategoryList();
- logger.info("【气体对照表】已加入缓存");
+ logger.info("[GasCategoryList] cache complete");
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasThresholdController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasThresholdController.java
index 6182828..1846f4d 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasThresholdController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasThresholdController.java
@@ -1,5 +1,6 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
import com.gkhy.fourierSpecialGasMonitor.entity.req.UpdateGasThresholdReqDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.req.UpdateRegionReqDTO;
@@ -29,6 +30,7 @@
}
@PostMapping("/update")
+ @RepeatedClick
public Result updateGasThreshold(@RequestBody UpdateGasThresholdReqDTO reqDto){
Result result = gasThresholdService.updateGasThreshold(reqDto);
return result;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnLogController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnLogController.java
index 97a68b6..c426134 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnLogController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnLogController.java
@@ -1,9 +1,12 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
-import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasCategoryPageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnLogPageQuery;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogCountByTimeReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogInfoReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.HandleGasWarnLogReqDTO;
import com.gkhy.fourierSpecialGasMonitor.service.GasWarnLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -27,8 +30,20 @@
}
@PostMapping("/handleById")
- public Result handleGasWarnLog(@RequestParam Long id){
- Result result = gasWarnLogService.handleGasWarnLog(id);
+ @RepeatedClick
+ public Result handleGasWarnLog(@RequestBody HandleGasWarnLogReqDTO reqDto){
+ Result result = gasWarnLogService.handleGasWarnLog(reqDto);
+ return result;
+ }
+
+ @PostMapping("/gasWarnLogCountByTime")
+ public Result gasWarnLogCountByTime(@RequestBody GasWarnLogCountByTimeReqDTO gasWarnLogCountByTimeReqDTO){
+ Result result = gasWarnLogService.gasWarnLogCountByTime(gasWarnLogCountByTimeReqDTO);
+ return result;
+ }
+ @PostMapping("/gasWarnLogInfoByTime")
+ public Result gasWarnLogInfoByTime(@RequestBody GasWarnLogInfoReqDTO gasWarnLogInfoReqDTO){
+ Result result = gasWarnLogService.gasWarnLogInfoByTime(gasWarnLogInfoReqDTO);
return result;
}
}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnUserController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnUserController.java
index f9d4bef..15921bf 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnUserController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasWarnUserController.java
@@ -1,5 +1,6 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasCategoryPageQuery;
@@ -24,6 +25,7 @@
@PostMapping("/add")
+ @RepeatedClick
public Result createGasWarnUser(@RequestBody CreateGasWarnUserReqDTO reqDto){
Result result = gasWarnUserService.createGasWarnUser(reqDto);
return result;
@@ -36,6 +38,7 @@
}
@PostMapping("/update")
+ @RepeatedClick
public Result updateGasWarnUser(@RequestBody UpdateGasWarnUserReqDTO reqDto){
Result result = gasWarnUserService.updateGasWarnUser(reqDto);
return result;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/RegionController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/RegionController.java
index 043f01f..102b09b 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/RegionController.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/RegionController.java
@@ -1,5 +1,6 @@
package com.gkhy.fourierSpecialGasMonitor.controller;
+import com.gkhy.fourierSpecialGasMonitor.annotation.RepeatedClick;
import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result;
import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindRegionPageQuery;
@@ -21,6 +22,7 @@
private RegionService regionService;
@PostMapping("/add")
+ @RepeatedClick
public Result createRegion(@RequestBody CreateRegionReqDTO reqDto){
Result result = regionService.createRegion(reqDto);
return result;
@@ -33,6 +35,7 @@
}
@PostMapping("/update")
+ @RepeatedClick
public Result updateRegion(@RequestBody UpdateRegionReqDTO reqDto){
Result result = regionService.updateRegion(reqDto);
return result;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/converter/UserInfoDomainConverter.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/converter/UserInfoDomainConverter.java
index 2da0278..e2d4d22 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/converter/UserInfoDomainConverter.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/converter/UserInfoDomainConverter.java
@@ -43,13 +43,13 @@
userInfoDomainDTO.setRoles(roleBindDomainDTOList);
//身份
- List<SysUserIdentityBindDomainDTO> userIdentityBindDomainDTOS = new ArrayList<>();
- if(user.getSysUserIdentityBinds() != null){
- user.getSysUserIdentityBinds().forEach(userIdentity ->{
- userIdentityBindDomainDTOS.add(toUserIndentityDomainDTO(userIdentity));
- });
- }
- userInfoDomainDTO.setUserIdentities(userIdentityBindDomainDTOS);
+ //List<SysUserIdentityBindDomainDTO> userIdentityBindDomainDTOS = new ArrayList<>();
+ //if(user.getSysUserIdentityBinds() != null){
+ // user.getSysUserIdentityBinds().forEach(userIdentity ->{
+ // userIdentityBindDomainDTOS.add(toUserIndentityDomainDTO(userIdentity));
+ // });
+ //}
+ //userInfoDomainDTO.setUserIdentities(userIdentityBindDomainDTOS);
//资质附件
if(user.getQualificationAttachment() != null){
AttachmentDomainDTO attachmentDomainDTO = new AttachmentDomainDTO();
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/entity/User.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/entity/User.java
index 4d1bcfd..27a6c6e 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/entity/User.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/domain/account/entity/User.java
@@ -72,10 +72,10 @@
@JoinColumn(name = "userId",referencedColumnName = "id",insertable =false ,updatable = false)
private List<SysUserRoleBind> sysUserRoleBinds;
- @OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
- @Fetch(FetchMode.SUBSELECT)
- @JoinColumn(name = "userId",referencedColumnName = "id",insertable =false ,updatable = false)
- private List<SysUserIdentityBind> sysUserIdentityBinds;
+ //@OneToMany(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
+ //@Fetch(FetchMode.SUBSELECT)
+ //@JoinColumn(name = "userId",referencedColumnName = "id",insertable =false ,updatable = false)
+ //private List<SysUserIdentityBind> sysUserIdentityBinds;
@ManyToOne(fetch = FetchType.EAGER,cascade = {CascadeType.REFRESH})
@JoinColumn(name = "depId",referencedColumnName = "id",insertable =false ,updatable = false)
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/GasWarnLog.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/GasWarnLog.java
index 31cb94f..2d87446 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/GasWarnLog.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/GasWarnLog.java
@@ -48,6 +48,8 @@
private String handlerName;
+ private String handlerDesc;
+
private String handlerRealName;
private LocalDateTime handlerTime;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/query/GasWarnTimesCountTimeSlotQuery.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/query/GasWarnTimesCountTimeSlotQuery.java
new file mode 100644
index 0000000..1406613
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/query/GasWarnTimesCountTimeSlotQuery.java
@@ -0,0 +1,22 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.query;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/2 23:34
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class GasWarnTimesCountTimeSlotQuery {
+
+ private LocalDateTime startTime;
+
+ private LocalDateTime endTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionLngLatReqDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionLngLatReqDTO.java
index d9719cb..42ac056 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionLngLatReqDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionLngLatReqDTO.java
@@ -2,13 +2,15 @@
import lombok.Data;
+import java.io.Serializable;
+
/**
* @author Mr.huang
* @decription
* @date 2023/8/9 10:50
*/
@Data
-public class CreateRegionLngLatReqDTO {
+public class CreateRegionLngLatReqDTO implements Serializable {
private String lng;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionReqDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionReqDTO.java
index cd0b90d..16e6805 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionReqDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/CreateRegionReqDTO.java
@@ -3,6 +3,7 @@
import com.gkhy.fourierSpecialGasMonitor.entity.RegionLngLat;
import lombok.Data;
+import java.io.Serializable;
import java.util.List;
/**
@@ -11,7 +12,7 @@
* @date 2023/8/9 10:48
*/
@Data
-public class CreateRegionReqDTO {
+public class CreateRegionReqDTO implements Serializable {
private String name;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogCountByTimeReqDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogCountByTimeReqDTO.java
new file mode 100644
index 0000000..e5cf557
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogCountByTimeReqDTO.java
@@ -0,0 +1,16 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.req;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/1 9:36
+ */
+@Data
+public class GasWarnLogCountByTimeReqDTO {
+
+ private Integer countTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogInfoReqDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogInfoReqDTO.java
new file mode 100644
index 0000000..73f5124
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasWarnLogInfoReqDTO.java
@@ -0,0 +1,18 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.req;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/1 9:36
+ */
+@Data
+public class GasWarnLogInfoReqDTO {
+
+ private LocalDateTime startTime;
+
+ private LocalDateTime endTime;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/HandleGasWarnLogReqDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/HandleGasWarnLogReqDTO.java
new file mode 100644
index 0000000..8cac3ce
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/HandleGasWarnLogReqDTO.java
@@ -0,0 +1,20 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.req;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/8/31 13:58
+ */
+@Data
+public class HandleGasWarnLogReqDTO implements Serializable {
+
+ private Long id;
+
+ private Long userId;
+
+ private String handlerDesc;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindGasWarnLogPageRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindGasWarnLogPageRespDTO.java
index 98a0084..1bfc819 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindGasWarnLogPageRespDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindGasWarnLogPageRespDTO.java
@@ -39,9 +39,9 @@
private Double gasConcentration;
- private Long gasThresholdId;
+ private Integer gasThresholdId;
- private Long gasThresholdName;
+ private String gasThresholdName;
private Byte status;
@@ -51,6 +51,8 @@
private String handlerRealName;
+ private String handlerDesc;
+
private LocalDateTime handlerTime;
private List<FindGasWarnLogSmsUserPageRespDTO> gasWarnLogSmsUsers;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdLngLatRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdLngLatRespDTO.java
new file mode 100644
index 0000000..2b8ebf9
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdLngLatRespDTO.java
@@ -0,0 +1,21 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.resp;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/8/9 13:53
+ */
+@Data
+public class FindRegionByIdLngLatRespDTO implements Serializable {
+ private Long id;
+
+ private Integer regionId;
+
+ private String lng;
+
+ private String lat;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdRespDTO.java
index 87f6b63..d563406 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdRespDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionByIdRespDTO.java
@@ -3,6 +3,7 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.List;
/**
* @author Mr.huang
@@ -12,11 +13,11 @@
@Data
public class FindRegionByIdRespDTO implements Serializable {
- private Long id;
+ private Integer id;
- private Long regionId;
+ private String name;
- private String lng;
+ private String color;
- private String lat;
+ private List<FindRegionByIdLngLatRespDTO> lngLatRespDTOS;
}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionPageRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionPageRespDTO.java
index 6ba79be..b7048f0 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionPageRespDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/FindRegionPageRespDTO.java
@@ -14,7 +14,7 @@
@Data
public class FindRegionPageRespDTO implements Serializable {
- private Long id;
+ private Integer id;
private String name;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasThresholdListRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasThresholdListRespDTO.java
index 3f17955..47629e6 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasThresholdListRespDTO.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasThresholdListRespDTO.java
@@ -12,7 +12,7 @@
@Data
public class GasThresholdListRespDTO implements Serializable {
- private Long id;
+ private Integer id;
private String name;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogCountByTimeRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogCountByTimeRespDTO.java
new file mode 100644
index 0000000..a4b792a
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogCountByTimeRespDTO.java
@@ -0,0 +1,19 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.resp;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/1 10:01
+ */
+@Data
+public class GasWarnLogCountByTimeRespDTO implements Serializable {
+
+ private Long yellowWarnNum;
+
+ private Long redWarnNum;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogInfoByTimeRespDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogInfoByTimeRespDTO.java
new file mode 100644
index 0000000..164b018
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasWarnLogInfoByTimeRespDTO.java
@@ -0,0 +1,35 @@
+package com.gkhy.fourierSpecialGasMonitor.entity.resp;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/1 10:14
+ */
+@Data
+public class GasWarnLogInfoByTimeRespDTO implements Serializable {
+
+ private Long id;
+
+ private LocalDateTime warnTime;
+
+ private Integer gasCategoryId;
+
+ private String gasMolecularFormula;
+
+ private String gasName;
+
+ private String gasUnit;
+
+ private Double gasConcentrationThreshold;
+
+ private Double gasConcentration;
+
+ private Integer gasThresholdId;
+
+ private String gasThresholdName;
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/GasWarnTimesCountEnum.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/GasWarnTimesCountEnum.java
new file mode 100644
index 0000000..b719caa
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/enums/GasWarnTimesCountEnum.java
@@ -0,0 +1,71 @@
+package com.gkhy.fourierSpecialGasMonitor.enums;
+
+import com.gkhy.fourierSpecialGasMonitor.entity.query.GasWarnTimesCountTimeSlotQuery;
+import lombok.Getter;
+
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.temporal.TemporalAdjusters;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/9/2 23:31
+ */
+@Getter
+public enum GasWarnTimesCountEnum {
+
+ TODAY(1,"今天"){
+ @Override
+ public GasWarnTimesCountTimeSlotQuery getTimeSlotByStrategy() {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime startTime = now.with(LocalTime.MIN);
+ return new GasWarnTimesCountTimeSlotQuery(startTime,now);
+ }
+ },
+ IN_7_DAYS(2,"7天内"){
+ @Override
+ public GasWarnTimesCountTimeSlotQuery getTimeSlotByStrategy() {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime startTime = now.minusDays(6).with(LocalTime.MIN);
+ return new GasWarnTimesCountTimeSlotQuery(startTime,now);
+ }
+ },
+ IN_30_DAYS(3,"30天内"){
+ @Override
+ public GasWarnTimesCountTimeSlotQuery getTimeSlotByStrategy() {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime startTime = now.minusDays(29).with(LocalTime.MIN);
+ return new GasWarnTimesCountTimeSlotQuery(startTime,now);
+ }
+ },
+ THISYEAR(4,"今年"){
+ @Override
+ public GasWarnTimesCountTimeSlotQuery getTimeSlotByStrategy() {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime startTime = now.with(TemporalAdjusters.firstDayOfYear()).with(LocalTime.MIN);
+ return new GasWarnTimesCountTimeSlotQuery(startTime,now);
+ }
+ };
+
+ private Integer state;
+ private String description;
+
+ GasWarnTimesCountEnum(int state, String description) {
+ this.state = state;
+ this.description = description;
+ }
+
+
+ public static GasWarnTimesCountEnum getQueryObject(Integer key){
+ for (GasWarnTimesCountEnum value : GasWarnTimesCountEnum.values()) {
+ if (value.state.equals(key)){
+ return value;
+ }
+ }
+ return TODAY;
+ }
+
+ public abstract GasWarnTimesCountTimeSlotQuery getTimeSlotByStrategy();
+
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnLogRepository.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnLogRepository.java
index a8e73f9..3c1cd61 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnLogRepository.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnLogRepository.java
@@ -6,6 +6,9 @@
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.stereotype.Repository;
+import java.time.LocalDateTime;
+import java.util.List;
+
/**
* @author Mr.huang
* @decription
@@ -15,4 +18,6 @@
public interface GasWarnLogRepository extends JpaRepository<GasWarnLog,Long>, JpaSpecificationExecutor<GasWarnLog> {
GasWarnLog findByIdAndStatus(Long id,Byte status);
+
+ List<GasWarnLog> findAllByWarnTimeBetweenOrderByWarnTimeDesc(LocalDateTime startTime,LocalDateTime endTime);
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnUserRepository.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnUserRepository.java
index 11516d1..15b8858 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnUserRepository.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasWarnUserRepository.java
@@ -22,4 +22,7 @@
List<GasWarnUser> findAllByStatus(Byte status);
+
+
+
}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
index 722471f..28b8834 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/DailyReportSchedule.java
@@ -93,7 +93,7 @@
String startTime = now.format(execformatter);
RBucket<List<GasCategory>> bucket = redissonClient.getBucket("gas_category_cache_info");
List<GasCategory> gasCategories = bucket.get();
- //logger.info("【##】开始生成日报 ,时间:"+startTime);
+ logger.info("【##】开始生成日报 ,时间:"+startTime);
OPCPackage opcPackage = null;
//加载文档
XWPFDocument doc = null;
@@ -164,7 +164,8 @@
} catch (IOException e) {
e.printStackTrace();
}
- List<GasConcentration> gasConcentrations = gasConcentrationService.listDatabyTimeSlot(LocalDateTime.now().minusDays(2).with(LocalDate.MIN), LocalDateTime.now());
+ List<GasConcentration> gasConcentrations = gasConcentrationService.listDatabyTimeSlot(LocalDateTime.of(now.minusDays(1).toLocalDate(), LocalTime.MIN)
+ , LocalDateTime.of(now.minusDays(1).toLocalDate(), LocalTime.MAX));
if (!CollectionUtils.isEmpty(gasConcentrations)) {
for (int i = 0; i < 30; i++) {
String series = gasCategories.get(i).getMolecularFormula() + "浓度观测结果";
@@ -182,8 +183,8 @@
Map<Integer, String> regionMap = allRegion.stream()
.collect(Collectors.toMap(Region::getId, Region::getName));
if (!CollectionUtils.isEmpty(gasFluxes)) {
- for (int i = 1; i <= 1; i++) {
- for (int j = 0; j < 1; j++) {
+ for (int i = 1; i <= areaNum.size(); i++) {
+ for (int j = 0; j < 20; j++) {
drawBarChart(gasFluxes, fileurl, regionMap.get(i), "柱形图" + gasCategories.get(j).getMolecularFormula(), i, j + 1);
}
}
@@ -198,7 +199,7 @@
MonitorDailyReport save = monitorDailyReportService.save(report);
if (save == null)
throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_DATABASE_FAIL,"日常报表保存失败");
- //logger.info("【##】日报生成成功!!! ,时间:"+endTime+",所耗时间: "+execTime+"s");
+ logger.info("【##】日报生成成功!!! ,时间:"+endTime+",所耗时间: "+execTime+"s");
}
public void drawBarChart(List<GasFlux> gasFluxes,String fileurl,String series,String molecularFormula,Integer i,Integer j) {
@@ -432,7 +433,7 @@
private Map<String, Object> dataMap(List<GasCategory> gasCategories){
LocalDateTime now = LocalDateTime.now();
String today = now.format(formatter);
- String yesterday = LocalDateTime.now().plusDays(1).format(formatter);
+ String yesterday = LocalDateTime.now().minusDays(1).format(formatter);
//要替换的map,key为占位符,value为要被替换的值
Map<String, Object> map = new HashMap<>();
map.put("${today}", today);
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
index 6bb7087..57078f3 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/HeartbeatSchedule.java
@@ -42,11 +42,10 @@
private final Logger logger = LoggerFactory.getLogger(this.getClass());
- //@Scheduled(cron = "1 * * * * *") // 每分钟执行一次
+
@Scheduled(cron = "1 * * * * ?") // 每天凌晨执行
@Async(value = "SocketTaskExecutor")
public void gasConcentrationStatus() {
-
GasConcentration gasConcentration = gasConcentrationService.getLastData();
if (gasConcentration != null){
LocalDateTime lastReceiveTime = gasConcentration.getDataReceivingTime().plusMinutes(1);
@@ -61,7 +60,7 @@
if (save == null)
throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(),"设备异常日志保存失败");
} catch (IOException e) {
- e.printStackTrace();
+ throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_WEBSOCKET_SEND_INFO_FAIL.getCode(),"设备异常消息推送失败");
}
}
}
@@ -84,7 +83,7 @@
if (save == null)
throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(),"设备异常日志保存失败");
} catch (IOException e) {
- e.printStackTrace();
+ throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_WEBSOCKET_SEND_INFO_FAIL.getCode(),"设备异常消息推送失败");
}
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/TestSchedule.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/TestSchedule.java
new file mode 100644
index 0000000..2806d4e
--- /dev/null
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/schedule/TestSchedule.java
@@ -0,0 +1,199 @@
+package com.gkhy.fourierSpecialGasMonitor.schedule;
+
+import com.gkhy.fourierSpecialGasMonitor.entity.req.DeviceMonitorReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.UploadGasConcentrationReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.UploadGasFluxReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.service.DataReceiveService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.text.DecimalFormat;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author Mr.huang
+ * @decription
+ * @date 2023/8/22 13:49
+ */
+@Component
+public class TestSchedule {
+
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+ @Autowired
+ private DataReceiveService dataReceiveService;
+
+ private static final DateTimeFormatter execformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+
+ @Scheduled(cron = "1 * * * * ?")
+ @Async(value = "SocketTaskExecutor")
+ public void testDeviceMonitor() {
+ logger.info("【硬件设备一分钟一次推送测试】:" + LocalDateTime.now().format(execformatter));
+ DeviceMonitorReqDTO deviceMonitorReqDTO = new DeviceMonitorReqDTO();
+ deviceMonitorReqDTO.setTime(LocalDateTime.now());
+ deviceMonitorReqDTO.setConState(0);
+ deviceMonitorReqDTO.setFluxState(0);
+ List<Integer> list = new ArrayList<>();
+ list.add(0);
+ deviceMonitorReqDTO.setHardwareState(list);
+ dataReceiveService.deviceMonitor(deviceMonitorReqDTO);
+ }
+
+
+ @Scheduled(cron = "0/30 * * * * ?")
+ @Async(value = "SocketTaskExecutor")
+ public void testGasConcentration() {
+ logger.info("【气体实时浓度推送测试】:"+LocalDateTime.now().format(execformatter));
+ Random random = new Random();
+ double randomDouble = random.nextDouble() * 99.9 + 1; // 生成1到100之间的随机双精度数
+ DecimalFormat decimalFormat = new DecimalFormat("0.0");
+ String formattedDouble = decimalFormat.format(randomDouble);
+ double result = Double.parseDouble(formattedDouble);
+ UploadGasConcentrationReqDTO dto = new UploadGasConcentrationReqDTO();
+ dto.setEquipmentId("No-123456");
+ dto.setTime(LocalDateTime.now());
+ dto.setType(1);
+ dto.setLng("东经43");
+ dto.setLat("北纬53");
+ dto.setAngle("60");
+ dto.setTemp(26.9);
+ dto.setHumidity(63.3);
+ dto.setWindSpeed(12.3);
+ dto.setWindDirection(56);
+ dto.setPressure(200.0);
+ dto.setGasName01(1);
+ dto.setGasValue01(result);
+ dto.setGasName02(2);
+ dto.setGasValue02(result);
+ dto.setGasName03(3);
+ dto.setGasValue03(result);
+ dto.setGasName04(4);
+ dto.setGasValue04(result);
+ dto.setGasName05(5);
+ dto.setGasValue05(result);
+ dto.setGasName06(6);
+ dto.setGasValue06(result);
+ dto.setGasName07(7);
+ dto.setGasValue07(result);
+ dto.setGasName08(8);
+ dto.setGasValue08(result);
+ dto.setGasName09(9);
+ dto.setGasValue09(result);
+ dto.setGasName10(10);
+ dto.setGasValue10(result);
+ dto.setGasName11(11);
+ dto.setGasValue11(result);
+ dto.setGasName12(12);
+ dto.setGasValue12(result);
+ dto.setGasName13(13);
+ dto.setGasValue13(result);
+ dto.setGasName14(14);
+ dto.setGasValue14(result);
+ dto.setGasName15(15);
+ dto.setGasValue15(result);
+ dto.setGasName16(16);
+ dto.setGasValue16(result);
+ dto.setGasName17(17);
+ dto.setGasValue17(result);
+ dto.setGasName18(18);
+ dto.setGasValue18(result);
+ dto.setGasName19(19);
+ dto.setGasValue19(result);
+ dto.setGasName20(20);
+ dto.setGasValue20(result);
+ dto.setGasName21(21);
+ dto.setGasValue21(result);
+ dto.setGasName22(22);
+ dto.setGasValue22(result);
+ dto.setGasName23(23);
+ dto.setGasValue23(result);
+ dto.setGasName24(24);
+ dto.setGasValue24(result);
+ dto.setGasName25(25);
+ dto.setGasValue25(result);
+ dto.setGasName26(26);
+ dto.setGasValue26(result);
+ dto.setGasName27(27);
+ dto.setGasValue27(result);
+ dto.setGasName28(28);
+ dto.setGasValue28(result);
+ dto.setGasName29(29);
+ dto.setGasValue29(result);
+ dto.setGasName30(30);
+ dto.setGasValue30(result);
+ dataReceiveService.uploadGasConcentration(dto);
+ }
+
+ //@Scheduled(cron = "0 0/15 * * * ?")
+ @Scheduled(cron = "0/30 * * * * ?")
+ @Async(value = "SocketTaskExecutor")
+ public void testGasFlux() {
+ logger.info("【气体通量推送测试】:"+LocalDateTime.now().format(execformatter));
+ for (int i = 1; i <= 8 ; i++) {
+ Random random = new Random();
+ double randomDouble = random.nextDouble() * 99.9 + 1; // 生成1到100之间的随机双精度数
+ DecimalFormat decimalFormat = new DecimalFormat("0.0");
+ String formattedDouble = decimalFormat.format(randomDouble);
+ double result = Double.parseDouble(formattedDouble);
+ UploadGasFluxReqDTO dto = new UploadGasFluxReqDTO();
+ dto.setEquipmentId("No-123456");
+ dto.setTime(LocalDateTime.now());
+ dto.setAreaId(i);
+ dto.setType(1);
+ dto.setWindSpeed(12.3);
+ dto.setWindDirection(56);
+ dto.setGasName01(1);
+ dto.setGasValue01(result);
+ dto.setGasName02(2);
+ dto.setGasValue02(result);
+ dto.setGasName03(3);
+ dto.setGasValue03(result);
+ dto.setGasName04(4);
+ dto.setGasValue04(result);
+ dto.setGasName05(5);
+ dto.setGasValue05(result);
+ dto.setGasName06(6);
+ dto.setGasValue06(result);
+ dto.setGasName07(7);
+ dto.setGasValue07(result);
+ dto.setGasName08(8);
+ dto.setGasValue08(result);
+ dto.setGasName09(9);
+ dto.setGasValue09(result);
+ dto.setGasName10(10);
+ dto.setGasValue10(result);
+ dto.setGasName11(11);
+ dto.setGasValue11(result);
+ dto.setGasName12(12);
+ dto.setGasValue12(result);
+ dto.setGasName13(13);
+ dto.setGasValue13(result);
+ dto.setGasName14(14);
+ dto.setGasValue14(result);
+ dto.setGasName15(15);
+ dto.setGasValue15(result);
+ dto.setGasName16(16);
+ dto.setGasValue16(result);
+ dto.setGasName17(17);
+ dto.setGasValue17(result);
+ dto.setGasName18(18);
+ dto.setGasValue18(result);
+ dto.setGasName19(19);
+ dto.setGasValue19(result);
+ dto.setGasName20(20);
+ dto.setGasValue20(result);
+ dataReceiveService.uploadGasFlux(dto);
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasWarnLogService.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasWarnLogService.java
index 7595768..b2361c1 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasWarnLogService.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasWarnLogService.java
@@ -4,6 +4,9 @@
import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnLog;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnLogPageQuery;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogCountByTimeReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogInfoReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.HandleGasWarnLogReqDTO;
import java.util.List;
@@ -15,9 +18,14 @@
public interface GasWarnLogService {
Result findGasWarnLogPage(PageQuery<FindGasWarnLogPageQuery> pageQuery);
- Result handleGasWarnLog(Long id);
+ Result handleGasWarnLog(HandleGasWarnLogReqDTO reqDto);
GasWarnLog save(GasWarnLog gasWarnLog);
List<GasWarnLog> listYesterday();
+
+ Result gasWarnLogCountByTime(GasWarnLogCountByTimeReqDTO gasWarnLogCountByTimeReqDTO);
+
+ Result gasWarnLogInfoByTime(GasWarnLogInfoReqDTO gasWarnLogInfoReqDTO);
+
}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java
index e7b2837..2cc0b35 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DataReceiveServiceImpl.java
@@ -127,7 +127,7 @@
return gasCategory;
}).collect(Collectors.toList());
}
- logger.info("【气体异常map】init完成");
+ logger.info("[GasExcMap] init complete");
}
@PostConstruct
@@ -143,7 +143,7 @@
}
}
}
- logger.info("【预警阈值】init完成");
+ logger.info("[WarningThreshold] init complete");
}
@Override
@@ -164,6 +164,7 @@
GasFlux save = gasFluxService.save(gasFlux);
if (save == null)
throw new DataReceiveException(this.getClass(), ForeignResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(),"气体通量数据保存失败");
+ gasFluxDataCacheAndPush();
return ForeignResult.success();
}
@@ -193,13 +194,21 @@
push = true;
descs.add(GasFluxStateEnum.INVERSION_FAILED_10_MINUTES_NO_DATA.getDesc());
}
- if (push == true){
- String message = JSON.toJSONString(reqDTO);
- try {
- GasDeviceExcWebsocketServer.sendInfo(message,null);
- } catch (IOException e) {
- logger.info("【警告】设备异常提醒推送>>>>>>>>>>>>>>>>>>失败");
- }
+ String message = JSON.toJSONString(reqDTO);
+ //todo 暂时改为实时推送给前端
+ try {
+ GasDeviceExcWebsocketServer.sendInfo(message,null);
+ } catch (IOException e) {
+ logger.info("【警告】设备异常提醒推送>>>>>>>>>>>>>>>>>>失败");
+ }
+ if (push){
+ //todo 线上环境还是异常才向前端推送
+ //String message = JSON.toJSONString(reqDTO);
+ //try {
+ // GasDeviceExcWebsocketServer.sendInfo(message,null);
+ //} catch (IOException e) {
+ // logger.info("【警告】设备异常提醒推送>>>>>>>>>>>>>>>>>>失败");
+ //}
String execInfo = JSON.toJSONString(descs);
logger.info("【警告】设备异常,异常原因: "+ execInfo);
DeviceExceptionLog log = new DeviceExceptionLog();
@@ -212,7 +221,7 @@
return ForeignResult.success();
}
- private void gasFluxDataCacheAndPush(GasFlux save){
+ private void gasFluxDataCacheAndPush(){
LocalDateTime time = LocalDateTime.now();
LocalDateTime startTime = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
List<GasFlux> gasFluxes = gasFluxService.listTodayGasFluxData(startTime,time);
@@ -231,7 +240,7 @@
@Override
@Transactional
public ForeignResult uploadGasConcentration(UploadGasConcentrationReqDTO reqDto) {
- //gasConcentrationParameterVerification(reqDto);
+ gasConcentrationParameterVerification(reqDto);
GasConcentration gasConcentration = new GasConcentration();
BeanUtils.copyProperties(reqDto,gasConcentration);
gasConcentration.setDataReceivingTime(LocalDateTime.now());
@@ -279,7 +288,6 @@
Integer count= integer + 1;
gasExcCountMap.put(i,count);
if (yellowWarningThreshold.equals(count)) {
- System.out.println("超过次数: "+count);
warnLogGenerateAndExecPush(WarningThresholdEnum.YELLOW.getCode(), gasCategory.get(i),value);
}
if (redWarningThreshold.equals(count)) {
@@ -356,13 +364,19 @@
}
private void dataCacheAndPush(GasConcentration save){
+ LocalDateTime startTime = LocalDateTime.now().withHour(0).withMinute(0).withSecond(0).withNano(0);
LocalDateTime time = LocalDateTime.now();
String cacheName = time.format(formatter);
RBucket<String> bucket = redissonClient.getBucket(gasConcentrationCachePrefix+cacheName);
String cache = bucket.get();
List<GasConcentration> gasConcentrations = JSON.parseArray(cache,GasConcentration.class);
if (CollectionUtils.isEmpty(gasConcentrations)){
- gasConcentrations = new ArrayList<>();
+ List<GasConcentration> concentrations = gasConcentrationService.listDatabyTimeSlot(startTime, time);
+ if (CollectionUtils.isEmpty(concentrations)){
+ gasConcentrations = new ArrayList<>();
+ }else {
+ gasConcentrations = concentrations;
+ }
gasConcentrations.add(save);
}else {
gasConcentrations.add(save);
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
index 0898d67..f9aedeb 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasCategoryServiceImpl.java
@@ -24,6 +24,7 @@
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@@ -213,8 +214,11 @@
searchResult.setTotal(pageResult.getTotalElements());
searchResult.setPages(pageResult.getTotalPages());
if (!CollectionUtils.isEmpty(pageResult.getContent())){
- List<FindGasCategoryPageRespDTO> respDTOS = new ArrayList<>();
- BeanUtils.copyProperties(pageResult.getContent(),respDTOS);
+ List<FindGasCategoryPageRespDTO> respDTOS = pageResult.getContent().stream().map(gasCategory -> {
+ FindGasCategoryPageRespDTO dto = new FindGasCategoryPageRespDTO();
+ BeanUtils.copyProperties(gasCategory,dto);
+ return dto;
+ }).collect(Collectors.toList());
searchResult.setData(respDTOS);
}
return searchResult;
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasThresholdServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasThresholdServiceImpl.java
index 1df8a20..0fddf58 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasThresholdServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasThresholdServiceImpl.java
@@ -26,6 +26,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+import java.util.stream.Collectors;
/**
* @author Mr.huang
@@ -58,9 +59,12 @@
Result success = Result.success();
List<GasThreshold> gasThresholds = gasThresholdRepository.findAll();
if (!CollectionUtils.isEmpty(gasThresholds)){
- List<GasThresholdListRespDTO> respDTOS = new ArrayList<>();
- BeanUtils.copyProperties(gasThresholds,respDTOS);
- success.setData(respDTOS);
+ List<GasThresholdListRespDTO> collect = gasThresholds.stream().map(gasThreshold -> {
+ GasThresholdListRespDTO dto = new GasThresholdListRespDTO();
+ BeanUtils.copyProperties(gasThreshold, dto);
+ return dto;
+ }).collect(Collectors.toList());
+ success.setData(collect);
}
return success;
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
index 1846dd5..0f93767 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
@@ -9,16 +9,21 @@
import com.gkhy.fourierSpecialGasMonitor.domain.account.enums.UserStatusEnum;
import com.gkhy.fourierSpecialGasMonitor.domain.account.repository.jpa.UserRepository;
import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnLog;
-import com.gkhy.fourierSpecialGasMonitor.entity.MonitorDailyReport;
-import com.gkhy.fourierSpecialGasMonitor.entity.query.FindDailyReportPageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnLogPageQuery;
-import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindDailyReportPageRespDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.query.GasWarnTimesCountTimeSlotQuery;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogCountByTimeReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogInfoReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.HandleGasWarnLogReqDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindGasWarnLogPageRespDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindGasWarnLogSmsUserPageRespDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.resp.GasWarnLogCountByTimeRespDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.resp.GasWarnLogInfoByTimeRespDTO;
+import com.gkhy.fourierSpecialGasMonitor.enums.GasWarnTimesCountEnum;
import com.gkhy.fourierSpecialGasMonitor.enums.WarnHandleStatusEnum;
import com.gkhy.fourierSpecialGasMonitor.repository.GasWarnLogRepository;
import com.gkhy.fourierSpecialGasMonitor.service.GasWarnLogService;
import com.gkhy.fourierSpecialGasMonitor.utils.ThreadLocalUtil;
+import io.micrometer.core.instrument.util.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@@ -33,14 +38,9 @@
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
-import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
-import java.time.temporal.TemporalAdjusters;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
/**
@@ -77,7 +77,7 @@
Set<Predicate> predicateList = new HashSet<>();
FindGasWarnLogPageQuery searchParams = pageQuery.getSearchParams();
if (searchParams != null && searchParams.getStartTime() != null && searchParams.getEndTime() != null){
- predicateList.add(criteriaBuilder.between(root.get("gmtCreate").as(LocalDateTime.class),searchParams.getStartTime(),searchParams.getEndTime()));
+ predicateList.add(criteriaBuilder.between(root.get("warnTime").as(LocalDateTime.class),searchParams.getStartTime(),searchParams.getEndTime()));
}
if (searchParams != null && searchParams.getStatus() != null){
predicateList.add(criteriaBuilder.equal(root.get("status").as(Byte.class), searchParams.getStatus()));
@@ -115,18 +115,28 @@
}
@Override
- public Result handleGasWarnLog(Long id) {
+ public Result handleGasWarnLog(HandleGasWarnLogReqDTO reqDto) {
User currentUser = getCurrentUser();
- if (id == null){
+ if (reqDto == null){
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
}
- GasWarnLog gasWarnLog = gasWarnLogRepository.findByIdAndStatus(id, WarnHandleStatusEnum.HANDLE_NO.getStatus());
+ if (reqDto.getId() == null)
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
+ if (reqDto.getUserId() == null)
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
+ if (StringUtils.isBlank(reqDto.getHandlerDesc()))
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
+ GasWarnLog gasWarnLog = gasWarnLogRepository.findByIdAndStatus(reqDto.getId(), WarnHandleStatusEnum.HANDLE_NO.getStatus());
if (gasWarnLog == null)
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"预警信息不存在");
- gasWarnLog.setHandlerId(currentUser.getId());
- gasWarnLog.setHandlerName(currentUser.getName());
- gasWarnLog.setHandlerRealName(currentUser.getRealName());
+ User user = userRepository.findUserByIdAndStatus(reqDto.getUserId(), UserStatusEnum.STATUS_ACTIVE.getStatus());
+ if (user == null)
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"处理人不存在");
+ gasWarnLog.setHandlerId(user.getId());
+ gasWarnLog.setHandlerName(user.getName());
+ gasWarnLog.setHandlerRealName(user.getRealName());
gasWarnLog.setHandlerTime(LocalDateTime.now());
+ gasWarnLog.setHandlerDesc(reqDto.getHandlerDesc());
gasWarnLog.setStatus(WarnHandleStatusEnum.HANDLE_YES.getStatus());
GasWarnLog save = gasWarnLogRepository.save(gasWarnLog);
if (save == null)
@@ -160,4 +170,46 @@
List<GasWarnLog> warnLogs = gasWarnLogRepository.findAll(specification);
return warnLogs;
}
+
+ @Override
+ public Result gasWarnLogCountByTime(GasWarnLogCountByTimeReqDTO gasWarnLogCountByTimeReqDTO) {
+ if (gasWarnLogCountByTimeReqDTO == null && gasWarnLogCountByTimeReqDTO .getCountTime() == null)
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
+ Integer countTime = gasWarnLogCountByTimeReqDTO.getCountTime();
+ GasWarnTimesCountTimeSlotQuery query = GasWarnTimesCountEnum.getQueryObject(countTime).getTimeSlotByStrategy();
+ Result result = Result.success();
+ List<GasWarnLog> gasWarnLog = gasWarnLogRepository.findAllByWarnTimeBetweenOrderByWarnTimeDesc(query.getStartTime(), query.getEndTime());
+ if (CollectionUtils.isEmpty(gasWarnLog))
+ return result;
+ GasWarnLogCountByTimeRespDTO gasWarnLogCountByTimeRespDTO = new GasWarnLogCountByTimeRespDTO();
+ Map<Integer, Long> nameCountMap = gasWarnLog.stream()
+ .collect(Collectors.groupingBy(GasWarnLog::getGasThresholdId, Collectors.counting()));
+ gasWarnLogCountByTimeRespDTO.setYellowWarnNum(nameCountMap.get(1));
+ gasWarnLogCountByTimeRespDTO.setRedWarnNum(nameCountMap.get(2));
+ result.setData(gasWarnLogCountByTimeRespDTO);
+ return result;
+ }
+
+ @Override
+ public Result gasWarnLogInfoByTime(GasWarnLogInfoReqDTO gasWarnLogInfoReqDTO) {
+ LocalDateTime now = LocalDateTime.now();
+ LocalDateTime startTime = now.with(LocalTime.MIN);
+ if (gasWarnLogInfoReqDTO != null && gasWarnLogInfoReqDTO.getStartTime() != null) {
+ startTime = gasWarnLogInfoReqDTO.getStartTime();
+ }
+ if (gasWarnLogInfoReqDTO != null && gasWarnLogInfoReqDTO.getEndTime() != null) {
+ now = gasWarnLogInfoReqDTO.getEndTime();
+ }
+ Result result = Result.success();
+ List<GasWarnLog> gasWarnLogs = gasWarnLogRepository.findAllByWarnTimeBetweenOrderByWarnTimeDesc(startTime, now);
+ if (CollectionUtils.isEmpty(gasWarnLogs))
+ return result;
+ List<GasWarnLogInfoByTimeRespDTO> dtos = gasWarnLogs.stream().map(gasWarnLog -> {
+ GasWarnLogInfoByTimeRespDTO dto = new GasWarnLogInfoByTimeRespDTO();
+ BeanUtils.copyProperties(gasWarnLog, dto);
+ return dto;
+ }).collect(Collectors.toList());
+ result.setData(dtos);
+ return result;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnUserServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnUserServiceImpl.java
index bc219a2..2f7e254 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnUserServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnUserServiceImpl.java
@@ -30,6 +30,7 @@
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.persistence.criteria.CriteriaBuilder;
@@ -42,6 +43,7 @@
import java.util.List;
import java.util.Set;
import java.util.concurrent.locks.ReentrantLock;
+import java.util.stream.Collectors;
/**
* @author Mr.huang
@@ -116,6 +118,7 @@
}
@Override
+ @Transactional
public Result updateGasWarnUser(UpdateGasWarnUserReqDTO reqDto) {
if (reqDto == null || reqDto.getId() == null)
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"参数不能为空");
@@ -131,10 +134,11 @@
GasWarnUser gasWarnUser = gasWarnUserRepository.findByUserIdAndStatus(reqDto.getUserId(), DeleteStatusEnum.DELECT_NO.getStatus());
if (gasWarnUser != null && !reqDto.getUserId().equals(gasWarnUser.getUserId()))
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "预警通知人员已存在");
- BeanUtils.copyProperties(reqDto, gasWarnUser);
- gasWarnUser.setGmtModified(LocalDateTime.now());
- gasWarnUser.setLastmodifiedby(getCurrentUser().getRealName());
- GasWarnUser save = gasWarnUserRepository.save(gasWarnUser);
+ GasWarnUser gasWarnUserById = gasWarnUserRepository.findByIdAndStatus(reqDto.getId(), DeleteStatusEnum.DELECT_NO.getStatus());
+ BeanUtils.copyProperties(reqDto, gasWarnUserById);
+ gasWarnUserById.setGmtModified(LocalDateTime.now());
+ gasWarnUserById.setLastmodifiedby(getCurrentUser().getRealName());
+ GasWarnUser save = gasWarnUserRepository.save(gasWarnUserById);
if (save == null)
throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(), "预警通知人员更新失败");
}finally {
@@ -169,9 +173,12 @@
searchResult.setTotal(pageResult.getTotalElements());
searchResult.setPages(pageResult.getTotalPages());
if (!CollectionUtils.isEmpty(pageResult.getContent())){
- List<FindGasWarnUserPageRespDTO> respDTOS = new ArrayList<>();
- BeanUtils.copyProperties(pageResult.getContent(),respDTOS);
- searchResult.setData(respDTOS);
+ List<FindGasWarnUserPageRespDTO> collect = pageResult.getContent().stream().map(gasWarnUser -> {
+ FindGasWarnUserPageRespDTO dto = new FindGasWarnUserPageRespDTO();
+ BeanUtils.copyProperties(gasWarnUser, dto);
+ return dto;
+ }).collect(Collectors.toList());
+ searchResult.setData(collect);
}
return searchResult;
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/RegionServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/RegionServiceImpl.java
index 8678626..6eadae7 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/RegionServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/RegionServiceImpl.java
@@ -12,6 +12,7 @@
import com.gkhy.fourierSpecialGasMonitor.entity.RegionLngLat;
import com.gkhy.fourierSpecialGasMonitor.entity.query.FindRegionPageQuery;
import com.gkhy.fourierSpecialGasMonitor.entity.req.*;
+import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindRegionByIdLngLatRespDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindRegionByIdRespDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindRegionLngLatPageRespDTO;
import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindRegionPageRespDTO;
@@ -135,12 +136,18 @@
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"参数不能为空");
Region region = regionRepository.findByIdAndStatus(id, DeleteStatusEnum.DELECT_NO.getStatus());
if (region != null){
+ FindRegionByIdRespDTO findRegionByIdRespDTO = new FindRegionByIdRespDTO();
+ BeanUtils.copyProperties(region,findRegionByIdRespDTO);
List<RegionLngLat> regionLngLats = region.getRegionLngLats();
if (!CollectionUtils.isEmpty(regionLngLats)){
- List<FindRegionByIdRespDTO> respDTOS = new ArrayList<>();
- BeanUtils.copyProperties(regionLngLats,respDTOS);
- success.setData(respDTOS);
+ List<FindRegionByIdLngLatRespDTO> collect = regionLngLats.stream().map(regionLngLat -> {
+ FindRegionByIdLngLatRespDTO findRegionByIdLngLatRespDTO = new FindRegionByIdLngLatRespDTO();
+ BeanUtils.copyProperties(regionLngLat, findRegionByIdLngLatRespDTO);
+ return findRegionByIdLngLatRespDTO;
+ }).collect(Collectors.toList());
+ findRegionByIdRespDTO.setLngLatRespDTOS(collect);
}
+ success.setData(findRegionByIdRespDTO);
}
return success;
}
@@ -159,7 +166,7 @@
if (searchParams != null && !StringUtils.isBlank(searchParams.getName())){
predicateList.add(criteriaBuilder.like(root.get("name").as(String.class),"%"+searchParams.getName()+"%"));
}
- predicateList.add(criteriaBuilder.equal(root.get("deleteStatus").as(Byte.class), DeleteStatusEnum.DELECT_NO.getStatus()));
+ predicateList.add(criteriaBuilder.equal(root.get("status").as(Byte.class), DeleteStatusEnum.DELECT_NO.getStatus()));
return criteriaBuilder.and(predicateList.toArray(new Predicate[predicateList.size()]));
}
};
@@ -174,9 +181,14 @@
List<FindRegionPageRespDTO> dtos = pageResult.getContent().stream().map(region -> {
FindRegionPageRespDTO dto = new FindRegionPageRespDTO();
BeanUtils.copyProperties(region, dto);
- List<FindRegionLngLatPageRespDTO> regionLngLatPageRespDTOS = new ArrayList<>();
- BeanUtils.copyProperties(region.getRegionLngLats(), regionLngLatPageRespDTOS);
- dto.setRegionLngLats(regionLngLatPageRespDTOS);
+ if (!CollectionUtils.isEmpty(region.getRegionLngLats())) {
+ List<FindRegionLngLatPageRespDTO> collect = region.getRegionLngLats().stream().map(regionLngLat -> {
+ FindRegionLngLatPageRespDTO findRegionLngLatPageRespDTO = new FindRegionLngLatPageRespDTO();
+ BeanUtils.copyProperties(regionLngLat, findRegionLngLatPageRespDTO);
+ return findRegionLngLatPageRespDTO;
+ }).collect(Collectors.toList());
+ dto.setRegionLngLats(collect);
+ }
return dto;
}).collect(Collectors.toList());
searchResult.setData(dtos);
@@ -188,8 +200,11 @@
@Transactional
public Result updateRegion(UpdateRegionReqDTO reqDto) {
User currentUser = getCurrentUser();
- if (reqDto == null)
+ if (reqDto == null || reqDto.getId() == null)
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"参数不能为空");
+ Region region = regionRepository.findByIdAndStatus(reqDto.getId(), DeleteStatusEnum.DELECT_NO.getStatus());
+ if (region == null)
+ throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"区域不存在");
if (StringUtils.isBlank(reqDto.getName()))
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"区域名称为空");
if (StringUtils.isBlank(reqDto.getColor()))
@@ -201,10 +216,12 @@
Region regionold = findByNameAndStatus(reqDto.getName());
if (regionold != null && !regionold.getId().equals(reqDto.getId()))
throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(), "区域名称已存在");
- regionold.setName(reqDto.getName());
- regionold.setColor(reqDto.getColor());
- regionold.setLastmodifiedby(currentUser.getRealName());
- regionold.setGmtModified(LocalDateTime.now());
+ region.setName(reqDto.getName());
+ region.setColor(reqDto.getColor());
+ region.setLastmodifiedby(currentUser.getRealName());
+ region.setGmtModified(LocalDateTime.now());
+ if (regionRepository.save(region) == null)
+ throw new BusinessException(this.getClass(), ResultCode.SYSTEM_ERROR_DATABASE_FAIL.getCode(),"区域保存失败");
regionLngLatRepository.deleteAllByRegionId(reqDto.getId());
List<UpdateRegionLngLatReqDTO> regionLngLats = reqDto.getRegionLngLats();
List<RegionLngLat> collect = regionLngLats.stream().map(regionLngLat -> {
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationExcWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationExcWebsocketServer.java
index 6a52921..1ab64e0 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationExcWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationExcWebsocketServer.java
@@ -14,9 +14,10 @@
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.TimeUnit;
@Slf4j
-@ServerEndpoint("/gas/exc/{userId}")
+@ServerEndpoint("/ws/gas/exc/{userId}")
@Component
public class GasConcentrationExcWebsocketServer {
@@ -54,10 +55,10 @@
this.userId = userId;
webSocketMap.put(userId, this);
- log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
+ //log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
addOnlineCount(); // 在线数 +1
- log.info("【气体浓度异常】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
+ //log.info("【气体浓度异常】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
try {
sendMessage(JSON.toJSONString("【气体浓度异常】连接成功"));
@@ -77,7 +78,7 @@
if (webSocketMap.get(this.userId) != null) {
webSocketMap.remove(this.userId);
subOnlineCount(); // 人数 -1
- log.info("【气体浓度异常】有一连接关闭,当前在线人数为:" + getOnlineCount());
+ //log.info("【气体浓度异常】有一连接关闭,当前在线人数为:" + getOnlineCount());
}
}
@@ -89,7 +90,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) {
- log.info("收到来自窗口" + userId + "的信息:" + message);
+ //log.info("收到来自窗口" + userId + "的信息:" + message);
if (StringUtils.isNotBlank(message)) {
try {
@@ -147,10 +148,10 @@
if (userId == null) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体浓度异常】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体浓度异常】发送消息到:" + entry.getKey() + ",消息:" + message);
} else if (entry.getKey().equals(userId)) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体浓度异常】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体浓度异常】发送消息到:" + entry.getKey() + ",消息:" + message);
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationWebsocketServer.java
index cb7acd8..b6a6452 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasConcentrationWebsocketServer.java
@@ -15,7 +15,7 @@
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
-@ServerEndpoint("/gas/{userId}")
+@ServerEndpoint("/ws/gas/{userId}")
@Component
public class GasConcentrationWebsocketServer {
@@ -53,10 +53,10 @@
this.userId = userId;
webSocketMap.put(userId, this);
- log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
+ //log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
addOnlineCount(); // 在线数 +1
- log.info("【气体浓度实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
+ //log.info("【气体浓度实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
try {
sendMessage(JSON.toJSONString("【气体浓度实时推送】连接成功"));
@@ -76,7 +76,7 @@
if (webSocketMap.get(this.userId) != null) {
webSocketMap.remove(this.userId);
subOnlineCount(); // 人数 -1
- log.info("【气体浓度实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
+ //log.info("【气体浓度实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
}
}
@@ -88,7 +88,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) {
- log.info("收到来自窗口" + userId + "的信息:" + message);
+ //log.info("收到来自窗口" + userId + "的信息:" + message);
if (StringUtils.isNotBlank(message)) {
try {
@@ -146,10 +146,10 @@
if (userId == null) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体浓度实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体浓度实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
} else if (entry.getKey().equals(userId)) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体浓度实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体浓度实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasDeviceExcWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasDeviceExcWebsocketServer.java
index 9f0050c..cfa9820 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasDeviceExcWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasDeviceExcWebsocketServer.java
@@ -15,7 +15,7 @@
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
-@ServerEndpoint("/gas/device/exc/{userId}")
+@ServerEndpoint("/ws/gas/device/exc/{userId}")
@Component
public class GasDeviceExcWebsocketServer {
@@ -53,10 +53,10 @@
this.userId = userId;
webSocketMap.put(userId, this);
- log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
+ //log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
addOnlineCount(); // 在线数 +1
- log.info("【气体设备状态异常】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
+ //log.info("【气体设备状态异常】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
try {
sendMessage(JSON.toJSONString("【气体设备状态异常】连接成功"));
@@ -76,7 +76,7 @@
if (webSocketMap.get(this.userId) != null) {
webSocketMap.remove(this.userId);
subOnlineCount(); // 人数 -1
- log.info("【气体设备状态异常】有一连接关闭,当前在线人数为:" + getOnlineCount());
+ //log.info("【气体设备状态异常】有一连接关闭,当前在线人数为:" + getOnlineCount());
}
}
@@ -88,7 +88,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) {
- log.info("收到来自窗口" + userId + "的信息:" + message);
+ //log.info("收到来自窗口" + userId + "的信息:" + message);
if (StringUtils.isNotBlank(message)) {
try {
@@ -146,10 +146,10 @@
if (userId == null) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体设备状态异常】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体设备状态异常】发送消息到:" + entry.getKey() + ",消息:" + message);
} else if (entry.getKey().equals(userId)) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体设备状态异常】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体设备状态异常】发送消息到:" + entry.getKey() + ",消息:" + message);
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
index 0671a9f..c267667 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/GasFluxWebsocketServer.java
@@ -15,7 +15,7 @@
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
-@ServerEndpoint("/gas/flux/{userId}")
+@ServerEndpoint("/ws/gas/flux/{userId}")
@Component
public class GasFluxWebsocketServer {
@@ -56,7 +56,7 @@
log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
addOnlineCount(); // 在线数 +1
- log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
+ //log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
try {
sendMessage(JSON.toJSONString("【气体通量实时推送】连接成功"));
@@ -76,7 +76,7 @@
if (webSocketMap.get(this.userId) != null) {
webSocketMap.remove(this.userId);
subOnlineCount(); // 人数 -1
- log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
+ //log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
}
}
@@ -146,10 +146,10 @@
if (userId == null) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
} else if (entry.getKey().equals(userId)) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
}
}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/HeartbeatExcWebsocketServer.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/HeartbeatExcWebsocketServer.java
index abda9b4..5598fda 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/HeartbeatExcWebsocketServer.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/websocket/HeartbeatExcWebsocketServer.java
@@ -15,7 +15,7 @@
import java.util.concurrent.ConcurrentHashMap;
@Slf4j
-@ServerEndpoint("/gas/heartbeat/{userId}")
+@ServerEndpoint("/ws/gas/heartbeat/{userId}")
@Component
public class HeartbeatExcWebsocketServer {
@@ -56,7 +56,7 @@
log.info("webSocketMap -> " + JSON.toJSONString(webSocketMap));
addOnlineCount(); // 在线数 +1
- log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
+ //log.info("【气体通量实时推送】有新窗口开始监听:" + userId + ",当前在线人数为" + getOnlineCount());
try {
sendMessage(JSON.toJSONString("【气体通量实时推送】连接成功"));
@@ -76,7 +76,7 @@
if (webSocketMap.get(this.userId) != null) {
webSocketMap.remove(this.userId);
subOnlineCount(); // 人数 -1
- log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
+ //log.info("【气体通量实时推送】有一连接关闭,当前在线人数为:" + getOnlineCount());
}
}
@@ -88,7 +88,7 @@
*/
@OnMessage
public void onMessage(String message, Session session) {
- log.info("收到来自窗口" + userId + "的信息:" + message);
+ //log.info("收到来自窗口" + userId + "的信息:" + message);
if (StringUtils.isNotBlank(message)) {
try {
@@ -146,10 +146,10 @@
if (userId == null) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
} else if (entry.getKey().equals(userId)) {
webSocketMap.get(entry.getKey()).sendMessage(message);
- log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
+ //log.info("【气体通量实时推送】发送消息到:" + entry.getKey() + ",消息:" + message);
}
}
diff --git a/src/main/resources/config/application-dev.yaml b/src/main/resources/config/application-dev.yaml
index 1ae602b..338d7e9 100644
--- a/src/main/resources/config/application-dev.yaml
+++ b/src/main/resources/config/application-dev.yaml
@@ -1,5 +1,5 @@
server:
- port: 9091
+ port: 17080
spring:
# enable-logging: false
diff --git a/src/main/resources/config/application-online-uat.yaml b/src/main/resources/config/application-online-uat.yaml
index 865402b..c465132 100644
--- a/src/main/resources/config/application-online-uat.yaml
+++ b/src/main/resources/config/application-online-uat.yaml
@@ -1,17 +1,17 @@
-erver:
- port: 16070
+server:
+ port: 17080
spring:
# enable-logging: false
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://121.239.169.30:33306/laboratory_risk_manage.uat?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
+ url: jdbc:mysql://121.239.169.30:33306/fourier_specialgas_monitor.uat?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
username: root
password: e7be93ef5413e5ed
master:
driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://121.239.169.30:33306/laboratory_risk_manage.uat?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
+ url: jdbc:mysql://121.239.169.30:33306/fourier_specialgas_monitor.uat?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&useAffectedRows=true
username: root
password: e7be93ef5413e5ed
type: com.alibaba.druid.pool.DruidDataSource
@@ -19,7 +19,7 @@
hibernate:
ddl-auto: none
# ddl-auto: update #自动更新
- show-sql: true #日志中显示sql语句
+ show-sql: false #日志中显示sql语句
redis:
# host: 192.168.0.52
@@ -66,11 +66,11 @@
file:
path:
#基础路径
- dcPath: /home/upload/laboratoryRiskManage/
+ dcPath: /home/upload/fourierSpecialgasMonitor/
urlRootPath: /upload/
module:
#用户模块
- accountPath: /account/user/
+ accountPath: /fourierSpecialgasMonitor
#线程池配置
threadPool:
@@ -91,6 +91,6 @@
#测试环境 短信功能关闭,只在控制台上打印日志
sms:
send:
- enabled: true
+ enabled: false
diff --git a/src/main/resources/config/redisson-online-uat.yml b/src/main/resources/config/redisson-online-uat.yml
index c071833..3acfc59 100644
--- a/src/main/resources/config/redisson-online-uat.yml
+++ b/src/main/resources/config/redisson-online-uat.yml
@@ -10,7 +10,7 @@
# 命令重试发送时间间隔,单位:毫秒
retryInterval: 1500
# 密码
- password: akj78avauba789a
+ password: gkhy@202306
# 单个连接最大订阅数量
subscriptionsPerConnection: 5
# 客户端名称
diff --git a/src/main/resources/template/dailyReportTemplate.docx b/src/main/resources/template/dailyReportTemplate.docx
index bffd0c4..5645ae0 100644
--- a/src/main/resources/template/dailyReportTemplate.docx
+++ b/src/main/resources/template/dailyReportTemplate.docx
Binary files differ
--
Gitblit v1.9.2