|
@@ -2,6 +2,7 @@ package vip.xiaonuo.coldchain.core.alarm.service;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.date.StopWatch;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
@@ -24,10 +25,14 @@ import vip.xiaonuo.coldchain.modular.monitorsearchhistory.dto.TopWarningDto;
|
|
|
import vip.xiaonuo.common.enums.CommonDeleteFlagEnum;
|
|
|
import vip.xiaonuo.common.page.CommonPageRequest;
|
|
|
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static jakarta.xml.bind.DatatypeConverter.parseTime;
|
|
|
+
|
|
|
/**
|
|
|
* @author jackzhou
|
|
|
* @version 1.0
|
|
@@ -101,6 +106,13 @@ public class SensorAlarmServiceImpl extends ServiceImpl<SensorAlarmMapper, Senso
|
|
|
LambdaQueryWrapper<SensorAlarm> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(SensorAlarm::getCreateOrg, loginUser.getOrgId())
|
|
|
.eq(SensorAlarm::getDeleteFlag, CommonDeleteFlagEnum.NOT_DELETE);
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.add(Calendar.MONTH, -2);
|
|
|
+ queryWrapper.ge(SensorAlarm::getCreateTime,sdf.format(calendar.getTime()));
|
|
|
+
|
|
|
if (type.equals("system")) {
|
|
|
queryWrapper.and(q -> q.eq(SensorAlarm::getType, SensorAlarmType.SENSOR_OFF_LINE.getDeviceCode())
|
|
|
.or().eq(SensorAlarm::getType, SensorAlarmType.SENSOR_ON_LINE.getDeviceCode()));
|
|
@@ -119,20 +131,39 @@ public class SensorAlarmServiceImpl extends ServiceImpl<SensorAlarmMapper, Senso
|
|
|
}
|
|
|
|
|
|
public Page<SensorAlarm> getSensorAlarmPage(MessagePageParam messagePageParam) {
|
|
|
+
|
|
|
+ StopWatch stopWatch = new StopWatch();
|
|
|
+ stopWatch.start("page查询");
|
|
|
// 创建查询条件
|
|
|
QueryWrapper<SensorAlarm> queryWrapper = new QueryWrapper<SensorAlarm>().checkSqlInjection();
|
|
|
// 获取当前登录用户ID
|
|
|
String orgId = StpLoginUserUtil.getLoginUser().getOrgId();
|
|
|
// 查询创建用户为当前用户的记录
|
|
|
queryWrapper.lambda().eq(SensorAlarm::getCreateOrg, orgId);
|
|
|
- final String type = messagePageParam.getType();
|
|
|
- if(StrUtil.isNotBlank(type) && type.trim().equalsIgnoreCase("system")){
|
|
|
+
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(new Date());
|
|
|
+ calendar.add(Calendar.MONTH, -2);
|
|
|
+ queryWrapper.lambda().ge(SensorAlarm::getCreateTime,sdf.format(calendar.getTime()));
|
|
|
+
|
|
|
+ String type;
|
|
|
+ if (StrUtil.isNotBlank(messagePageParam.getType())) {
|
|
|
+ type = messagePageParam.getType();
|
|
|
+ } else {
|
|
|
+ type = "alert";
|
|
|
+ }
|
|
|
+ List<String> typeCodes = type.equalsIgnoreCase("system")
|
|
|
+ ? Arrays.asList(SensorAlarmType.SENSOR_OFF_LINE.getDeviceCode(), SensorAlarmType.SENSOR_ON_LINE.getDeviceCode())
|
|
|
+ : Arrays.asList(SensorAlarmType.DATA_ALARM.getDeviceCode(), SensorAlarmType.DATA_RESTORE_ALARM.getDeviceCode());
|
|
|
+ queryWrapper.lambda().in(SensorAlarm::getType, typeCodes);
|
|
|
+/* if(StrUtil.isNotBlank(type) && type.trim().equalsIgnoreCase("system")){
|
|
|
queryWrapper.lambda().and(q -> q.eq(SensorAlarm::getType, SensorAlarmType.SENSOR_OFF_LINE.getDeviceCode())
|
|
|
.or().eq(SensorAlarm::getType, SensorAlarmType.SENSOR_ON_LINE.getDeviceCode()));
|
|
|
}else{
|
|
|
queryWrapper.lambda().and(q -> q.eq(SensorAlarm::getType, SensorAlarmType.DATA_ALARM.getDeviceCode())
|
|
|
.or().eq(SensorAlarm::getType, SensorAlarmType.DATA_RESTORE_ALARM.getDeviceCode()));
|
|
|
- }
|
|
|
+ }*/
|
|
|
if(StrUtil.isNotBlank(messagePageParam.getSensorCode())){
|
|
|
queryWrapper.lambda().eq(SensorAlarm::getSensorCode, messagePageParam.getSensorCode());
|
|
|
}
|
|
@@ -147,7 +178,7 @@ public class SensorAlarmServiceImpl extends ServiceImpl<SensorAlarmMapper, Senso
|
|
|
if (StrUtil.isNotBlank(messagePageParam.getStartTime())) {
|
|
|
queryWrapper.lambda().ge(SensorAlarm::getCreateTime, DateUtil.parse(messagePageParam.getStartTime(), "yyyy-MM-dd HH:mm:ss")); // greater than or equal to start time
|
|
|
}
|
|
|
- if (StrUtil.isNotBlank(messagePageParam.getStartTime())) {
|
|
|
+ if (StrUtil.isNotBlank(messagePageParam.getEndTime())) {
|
|
|
queryWrapper.lambda().le(SensorAlarm::getCreateTime, DateUtil.parse(messagePageParam.getEndTime(), "yyyy-MM-dd HH:mm:ss")); // greater than or equal to start time
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(messagePageParam.getAlarmType())) {
|
|
@@ -156,7 +187,9 @@ public class SensorAlarmServiceImpl extends ServiceImpl<SensorAlarmMapper, Senso
|
|
|
// 按创建时间降序排序
|
|
|
queryWrapper.lambda().orderByDesc(SensorAlarm::getCreateTime);
|
|
|
// 执行查询,传入分页对象
|
|
|
- Page<SensorAlarm> sensorAlarmPage = this.page(CommonPageRequest.defaultPage(), queryWrapper);
|
|
|
+ Page<SensorAlarm> sensorAlarmPage = this.page(CommonPageRequest.defaultPage(), queryWrapper).setOptimizeCountSql(false);
|
|
|
+ stopWatch.stop();
|
|
|
+ log.info(stopWatch.prettyPrint(TimeUnit.MILLISECONDS));
|
|
|
return sensorAlarmPage;
|
|
|
}
|
|
|
|