From 020206a10f0f51913247aa9167dbf928bff9f3fe Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Tue, 2 Jul 2024 18:59:47 +0800 Subject: [PATCH 1/2] =?UTF-8?q?bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhgd/mybatis/DataScopeInterceptor.java | 5 +- src/main/java/com/zhgd/xmgl/constant/Cts.java | 1 + ...iAnalyseHardWareAlarmRecordController.java | 17 ++-- .../AiAnalyseHardWareAlarmRecordMapper.java | 9 ++ .../AiAnalyseHardWareAlarmRecordMapper.xml | 14 +++ .../IAiAnalyseHardWareAlarmRecordService.java | 1 + ...AnalyseHardWareAlarmRecordServiceImpl.java | 4 + .../EnterpriseBadRecordController.java | 1 + .../XzAgjtLiveScreenController.java | 86 +++++++++++++++++++ .../impl/XzEmergencyRecordServiceImpl.java | 2 +- .../controller/CountApiController.java | 7 +- 11 files changed, 130 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/zhgd/xmgl/modules/xz/controller/XzAgjtLiveScreenController.java diff --git a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java index 05d7d04e1..bdd12be78 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeInterceptor.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.extension.parser.JsqlParserSupport; import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor; import com.zhgd.annotation.DataScope; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.security.util.SecurityUtils; import com.zhgd.xmgl.util.EnvironmentUtil; import com.zhgd.xmgl.util.LogMdcUtil; @@ -46,14 +47,14 @@ public class DataScopeInterceptor extends JsqlParserSupport implements InnerInte if (parameter instanceof Map) { for (Object val : ((Map) parameter).values()) { if (val instanceof String) { - if (val.equals("ignoreDataScope")) { + if (val.equals(Cts.IGNORE_DATA_SCOPE)) { return true; } } } } if (parameter instanceof String) { - return parameter.equals("ignoreDataScope"); + return parameter.equals(Cts.IGNORE_DATA_SCOPE); } return false; } diff --git a/src/main/java/com/zhgd/xmgl/constant/Cts.java b/src/main/java/com/zhgd/xmgl/constant/Cts.java index 67acdbe33..f15d60eb1 100644 --- a/src/main/java/com/zhgd/xmgl/constant/Cts.java +++ b/src/main/java/com/zhgd/xmgl/constant/Cts.java @@ -60,4 +60,5 @@ public interface Cts { String HK_SYNC_AUTH_SUCCESS_KEY = "hkSyncAuthSuccess:"; String TL_HK_SYNC_ID = "tl_hk_sync_id"; String TL_IS_NOMAL_INTERFACE = "isNormalInterface"; + String IGNORE_DATA_SCOPE = "ignoreDataScope"; } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/controller/AiAnalyseHardWareAlarmRecordController.java b/src/main/java/com/zhgd/xmgl/modules/video/controller/AiAnalyseHardWareAlarmRecordController.java index 00eb8422a..5430d7d3a 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/controller/AiAnalyseHardWareAlarmRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/controller/AiAnalyseHardWareAlarmRecordController.java @@ -23,10 +23,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; import java.util.*; @@ -45,11 +42,10 @@ import java.util.stream.Collectors; @Slf4j @Api(tags = "AI分析硬件设备报警记录") public class AiAnalyseHardWareAlarmRecordController { - @Autowired - private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService; - @Autowired ISystemUserService systemUserService; + @Autowired + private IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService; /** * 分页列表查询 @@ -131,7 +127,7 @@ public class AiAnalyseHardWareAlarmRecordController { } else { boolean ok = aiAnalyseHardWareAlarmRecordService.removeById(id); if (ok) { - result.success("删除成功!"); + Result.success("删除成功!"); } } @@ -308,11 +304,14 @@ public class AiAnalyseHardWareAlarmRecordController { } @OperLog(operModul = "AI分析硬件设备报警记录管理", operType = "查询", operDesc = "设置误报忽略或已处置") - @ApiOperation(value = "设置误报忽略不删除", notes = "设置误报忽略不删除", httpMethod = "POST") + @ApiOperation(value = "设置误报忽略或已处置", notes = "设置误报忽略或已处置", httpMethod = "POST") @PostMapping(value = "/setFalsePositive") public Result setFalsePositive(@RequestBody AiAnalyseHardWareAlarmRecord taskProgressMaterialRel) { aiAnalyseHardWareAlarmRecordService.setFalsePositive(taskProgressMaterialRel); return Result.ok(); } + + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareAlarmRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareAlarmRecordMapper.java index 89339b4e1..6282c41c7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareAlarmRecordMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/AiAnalyseHardWareAlarmRecordMapper.java @@ -13,6 +13,7 @@ import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -63,4 +64,12 @@ public interface AiAnalyseHardWareAlarmRecordMapper extends BaseMapper list); + /** + * 查询项目子账号的可查看企业的最新一条ai记录 + * + * @param map + * @return + * + */ + AiAnalyseHardWareAlarmRecord getAllocateNewestRecord(HashMap map); } diff --git a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareAlarmRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareAlarmRecordMapper.xml index af7e5ca0d..e339d2b85 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareAlarmRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/video/mapper/xml/AiAnalyseHardWareAlarmRecordMapper.xml @@ -577,4 +577,18 @@ #{item.handleDone,jdbcType=INTEGER}) + + diff --git a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java index d72a3bc81..5445d8d39 100644 --- a/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java +++ b/src/main/java/com/zhgd/xmgl/modules/video/service/IAiAnalyseHardWareAlarmRecordService.java @@ -65,4 +65,5 @@ public interface IAiAnalyseHardWareAlarmRecordService extends IService queryAiAnalyseHardWareAlarmPageList(Map map) { diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseBadRecordController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseBadRecordController.java index 499743547..86a14f480 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseBadRecordController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/EnterpriseBadRecordController.java @@ -47,6 +47,7 @@ public class EnterpriseBadRecordController { Result> result = new Result>(); QueryWrapper queryWrapper=new QueryWrapper<>(); queryWrapper.lambda().eq(EnterpriseBadRecord::getEnterpriseId, MapUtils.getString(map,"enterpriseId")); + queryWrapper.lambda().orderByDesc(EnterpriseBadRecord::getAriseTime); List pageList = enterpriseBadRecordService.list(queryWrapper); result.setSuccess(true); result.setResult(pageList); diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzAgjtLiveScreenController.java b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzAgjtLiveScreenController.java new file mode 100644 index 000000000..276be6633 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/xz/controller/XzAgjtLiveScreenController.java @@ -0,0 +1,86 @@ +package com.zhgd.xmgl.modules.xz.controller; + +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.constant.Cts; +import com.zhgd.xmgl.modules.video.entity.AiAnalyseHardWareAlarmRecord; +import com.zhgd.xmgl.modules.video.mapper.AiAnalyseHardWareAlarmRecordMapper; +import com.zhgd.xmgl.modules.video.service.IAiAnalyseHardWareAlarmRecordService; +import com.zhgd.xmgl.modules.worker.service.impl.UserEnterpriseServiceImpl; +import com.zhgd.xmgl.modules.xz.emergency.entity.XzEmergencyRecord; +import com.zhgd.xmgl.modules.xz.emergency.mapper.XzEmergencyRecordMapper; +import com.zhgd.xmgl.security.util.SecurityUtils; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +@RestController +@RequestMapping(value = {"/xmgl/agjtLiveScreen"}) +@Slf4j +@Api(tags = "星纵-现场大屏") +public class XzAgjtLiveScreenController { + @Autowired + IAiAnalyseHardWareAlarmRecordService aiAnalyseHardWareAlarmRecordService; + @Lazy + @Autowired + AiAnalyseHardWareAlarmRecordMapper aiAnalyseHardWareAlarmRecordMapper; + @Lazy + @Autowired + private UserEnterpriseServiceImpl userEnterpriseService; + @Autowired + private XzEmergencyRecordMapper xzEmergencyRecordMapper; + + @ApiOperation(value = "查询项目子账号的可查看企业的最新一条ai记录", notes = "查询项目子账号的可查看企业的最新一条ai记录", httpMethod = "GET") + @GetMapping(value = "/getAllocateNewestRecord") + public Result getAllocateNewestRecord() { + Integer accountType = SecurityUtils.getUser().getAccountType(); + if (!Objects.equals(accountType, 6)) { + return Result.ok(); + } + HashMap map = new HashMap<>(16); + List enterpriseIds = userEnterpriseService.getEnterpriseIdsIfSubProject(); + map.put("list", enterpriseIds); + map.put(Cts.IGNORE_DATA_SCOPE, Cts.IGNORE_DATA_SCOPE); + return Result.success(aiAnalyseHardWareAlarmRecordMapper.getAllocateNewestRecord(map)); + } + + @ApiOperation(value = "分页查询项目子账号的可查看企业的星纵-应急-处置台账信息记录", notes = "分页查询项目子账号的可查看企业的星纵-应急-处置台账信息记录", httpMethod = "GET") + @GetMapping(value = "/getXzEmergencyRecordPage") + public Result> getXzEmergencyRecordPage() { + HashMap paramMap = new HashMap<>(16); + String alias = "t."; + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzEmergencyRecord.class, paramMap, alias); + String enterpriseId = MapUtils.getString(paramMap, "enterpriseId"); + String alarmPersonName = MapUtils.getString(paramMap, "alarmPersonName"); + String inDispositionStatus = MapUtils.getString(paramMap, "inDispositionStatus"); + if (StrUtil.isNotBlank(enterpriseId)) { + queryWrapper.eq("ei.id", enterpriseId); + } + if (StrUtil.isNotBlank(alarmPersonName)) { + queryWrapper.like("wi.worker_name", alarmPersonName); + } + if (StrUtil.isNotBlank(inDispositionStatus)) { + queryWrapper.in(alias + "disposition_status", StrUtil.split(inDispositionStatus, ",")); + } + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(XzEmergencyRecord::getAlarmTime)); + Page page = PageUtil.getPage(paramMap); + IPage pageList = xzEmergencyRecordMapper.queryList(page, queryWrapper); + return Result.success(pageList); + } +} diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java index 9f0955d95..47c6a76bd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/emergency/service/impl/XzEmergencyRecordServiceImpl.java @@ -98,7 +98,7 @@ public class XzEmergencyRecordServiceImpl extends ServiceImpl Date: Wed, 3 Jul 2024 10:10:52 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=9B=A8=E9=87=8Fbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DustNoiseDataController.java | 2 +- .../controller/RainBigScreenController.java | 2 +- .../modules/environment/entity/RainDev.java | 15 ++-- .../environment/mapper/RainDevMapper.java | 2 + .../mapper/xml/DustNoiseDataMapper.xml | 1 + .../environment/mapper/xml/RainDevMapper.xml | 10 ++- .../impl/DustNoiseDataServiceImpl.java | 36 ++------ .../service/impl/RainDevServiceImpl.java | 2 +- .../service/impl/RainRecordServiceImpl.java | 7 +- .../java/com/zhgd/xmgl/task/RainDevTask.java | 46 ---------- .../java/com/zhgd/xmgl/task/RainTask.java | 83 +++++++++++++------ 11 files changed, 91 insertions(+), 115 deletions(-) delete mode 100644 src/main/java/com/zhgd/xmgl/task/RainDevTask.java diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/controller/DustNoiseDataController.java b/src/main/java/com/zhgd/xmgl/modules/environment/controller/DustNoiseDataController.java index 6663abab0..f76d5c7e1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/controller/DustNoiseDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/controller/DustNoiseDataController.java @@ -90,7 +90,7 @@ public class DustNoiseDataController { } - @ApiOperation(value = "查询环境设备最新一条实时数据", notes = "查询环境设备最新一条实时数据", httpMethod = "POST") + @ApiOperation(value = "查询今日环境设备最新一条实时数据", notes = "查询今日环境设备最新一条实时数据", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "deviceId", value = "设备编号", dataType = "String", paramType = "body", required = false) diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java b/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java index 64a572a60..00456da2f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/controller/RainBigScreenController.java @@ -86,7 +86,7 @@ public class RainBigScreenController { return Result.success(rainRecordService.queryTodayTrendGroupByHour(param)); } - @ApiOperation(value = "查询最新一条实时数据", notes = "查询最新一条实时数据", httpMethod = "POST") + @ApiOperation(value = "查询今日最新一条实时数据", notes = "查询今日最新一条实时数据", httpMethod = "POST") @ApiImplicitParams({ @ApiImplicitParam(name = "projectSn", value = "项目SN", paramType = "body", required = true, dataType = "String"), @ApiImplicitParam(name = "devSn", value = "设备sn", paramType = "body", required = true, dataType = "String"), diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainDev.java b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainDev.java index 8d572ed20..ce64c415b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainDev.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/entity/RainDev.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.environment.entity; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -64,12 +65,7 @@ public class RainDev implements Serializable { @Excel(name = "报警推送人,多个逗号分割", width = 15) @ApiModelProperty(value = "报警推送人,多个逗号分割") private java.lang.String alarmPushWorkerId; - /** - * 在线状态(0.离线 1.在线) - */ - @Excel(name = "在线状态(0.离线 1.在线)", width = 15) - @ApiModelProperty(value = "在线状态(0.离线 1.在线)") - private java.lang.Integer online; + /** * 上次上传数据时间 */ @@ -85,4 +81,11 @@ public class RainDev implements Serializable { */ @ApiModelProperty(value = "更新时间") private java.util.Date updateDate; + /** + * 在线状态(0.离线 1.在线) + */ + @Excel(name = "在线状态(0.离线 1.在线)", width = 15) + @ApiModelProperty(value = "在线状态(0.离线 1.在线)") + @TableField(exist = false) + private java.lang.Integer online; } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainDevMapper.java b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainDevMapper.java index b57fb53ff..f47676fd2 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainDevMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/RainDevMapper.java @@ -23,4 +23,6 @@ public interface RainDevMapper extends BaseMapper { IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); List queryList( @Param(Constants.WRAPPER)QueryWrapper queryWrapper); + + RainDev queryById(String id); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/DustNoiseDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/DustNoiseDataMapper.xml index 6890dca7c..0995886b3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/DustNoiseDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/DustNoiseDataMapper.xml @@ -75,6 +75,7 @@ and device_id = #{deviceId} + and upload_date >= CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'), ' 00:00:00') ORDER BY upload_date desc limit 1 diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainDevMapper.xml b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainDevMapper.xml index 4ab32eecf..e2fa79985 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainDevMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/environment/mapper/xml/RainDevMapper.xml @@ -3,8 +3,16 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java index e022b3e5c..53e12bf11 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java @@ -1,6 +1,5 @@ package com.zhgd.xmgl.modules.environment.service.impl; -import cn.hutool.core.util.NumberUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -16,7 +15,6 @@ import com.zhgd.xmgl.modules.environment.mapper.EnvironmentDevMapper; import com.zhgd.xmgl.modules.environment.mapper.EnvironmentWarningMapper; import com.zhgd.xmgl.modules.environment.service.IDustNoiseDataService; import com.zhgd.xmgl.modules.environment.service.IEnvironmentAlarmService; -import com.zhgd.xmgl.modules.sprayrt.service.ISprayRtDevService; import com.zhgd.xmgl.util.DateUtils; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.WindDirectionUtils; @@ -27,7 +25,10 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.*; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; import java.util.function.Function; import java.util.stream.Collectors; @@ -73,32 +74,9 @@ public class DustNoiseDataServiceImpl extends ServiceImpl map) { - DustNoiseData noiseData = null; - - if (map.get("deviceId") == null) { - DustNoiseData nd = dustNoiseDataMapper.getRealTimeDustNoiseData(map); - if (nd != null) { - List noiseDataList = Arrays.asList(nd); - for (DustNoiseData dustNoiseData : noiseDataList) { - DustNoiseData dataBuilder = dataBuilder(dustNoiseData); - if (noiseData == null) { - noiseData = dataBuilder; - continue; - } - noiseData.setPm25(NumberUtil.div(NumberUtil.add(noiseData.getPm25(), dataBuilder.getPm25()), 2)); - noiseData.setPm10(NumberUtil.div(NumberUtil.add(noiseData.getPm10(), dataBuilder.getPm10()), 2)); - noiseData.setNoise(NumberUtil.div(NumberUtil.add(noiseData.getNoise(), dataBuilder.getNoise()), 2)); - noiseData.setTemperature(NumberUtil.div(NumberUtil.add(noiseData.getTemperature(), dataBuilder.getTemperature()), 2)); - noiseData.setHumidity(NumberUtil.div(NumberUtil.add(noiseData.getHumidity(), dataBuilder.getHumidity()), 2)); - noiseData.setWindspeed(NumberUtil.div(NumberUtil.add(noiseData.getWindspeed(), dataBuilder.getWindspeed()), 2)); - noiseData.setPressure(NumberUtil.div(NumberUtil.add(noiseData.getPressure(), dataBuilder.getPressure()), 2)); - } - } - } else { - noiseData = dustNoiseDataMapper.getRealTimeDustNoiseData(map); - if (noiseData != null) { - return dataBuilder(noiseData); - } + DustNoiseData noiseData = dustNoiseDataMapper.getRealTimeDustNoiseData(map); + if (noiseData != null) { + return dataBuilder(noiseData); } return noiseData; } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainDevServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainDevServiceImpl.java index 8dcf9dcd3..3b073f820 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainDevServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainDevServiceImpl.java @@ -96,7 +96,7 @@ public class RainDevServiceImpl extends ServiceImpl impl @Override public RainDev queryById(String id) { - RainDev entity = getById(id); + RainDev entity = baseMapper.queryById(id); if (entity == null) { throw new OpenAlertException("未找到对应实体"); } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java index 78761429c..cf8e3ab92 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/RainRecordServiceImpl.java @@ -87,10 +87,8 @@ public class RainRecordServiceImpl extends ServiceImpl() - .set(RainDev::getOnline, 1) - .eq(RainDev::getDevSn, dev.getDevSn()) - ); + dev.setLastUploadTime(new Date()); + rainDevMapper.updateById(dev); } rainRecord.setId(null); rainRecord.setProjectSn(dev.getProjectSn()); @@ -138,6 +136,7 @@ public class RainRecordServiceImpl extends ServiceImpl() .eq(StrUtil.isNotBlank(devSn), RainRecord::getDevSn, devSn) .eq(StrUtil.isNotBlank(projectSn), RainRecord::getProjectSn, projectSn) + .ge(RainRecord::getRecordTime, DateUtil.formatDateTime(DateUtil.beginOfDay(new Date()))) .last("order by record_time desc limit 1") ); } diff --git a/src/main/java/com/zhgd/xmgl/task/RainDevTask.java b/src/main/java/com/zhgd/xmgl/task/RainDevTask.java deleted file mode 100644 index 7e5f1f165..000000000 --- a/src/main/java/com/zhgd/xmgl/task/RainDevTask.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.zhgd.xmgl.task; - -import cn.hutool.core.date.DateUtil; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.zhgd.xmgl.modules.environment.entity.RainDev; -import com.zhgd.xmgl.modules.environment.mapper.RainDevMapper; -import lombok.extern.slf4j.Slf4j; -import net.javacrumbs.shedlock.core.SchedulerLock; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Lazy; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import java.util.Date; -import java.util.List; - -@Slf4j -@RestController -@RequestMapping("/xmgl/task") -public class RainDevTask { - @Lazy - @Autowired - private RainDevMapper rainDevMapper; - - /** - * 定时更新设备离线 - */ - @Scheduled(cron = "0 0/1 * * * ?") - @SchedulerLock(name = "updateOffline") - public void updateOffline() { - List rainDevs = rainDevMapper.selectList(new LambdaQueryWrapper() - .le(RainDev::getLastUploadTime, DateUtil.formatDateTime(DateUtil.offsetMinute(new Date(), -30))) - .eq(RainDev::getOnline, 1) - ); - for (RainDev dev : rainDevs) { - rainDevMapper.selectOne(new LambdaUpdateWrapper() - .set(RainDev::getOnline, 0) - .eq(RainDev::getDevSn, dev.getDevSn()) - ); - } - } - - -} diff --git a/src/main/java/com/zhgd/xmgl/task/RainTask.java b/src/main/java/com/zhgd/xmgl/task/RainTask.java index 22e6cb9d8..cd3e0e8ef 100644 --- a/src/main/java/com/zhgd/xmgl/task/RainTask.java +++ b/src/main/java/com/zhgd/xmgl/task/RainTask.java @@ -11,6 +11,7 @@ import com.zhgd.xmgl.enums.ParamEnum; import com.zhgd.xmgl.modules.environment.entity.RainAlarm; import com.zhgd.xmgl.modules.environment.entity.RainDev; import com.zhgd.xmgl.modules.environment.entity.RainRecord; +import com.zhgd.xmgl.modules.environment.mapper.RainDevMapper; import com.zhgd.xmgl.modules.environment.service.IRainAlarmService; import com.zhgd.xmgl.modules.environment.service.IRainDevService; import com.zhgd.xmgl.modules.environment.service.IRainRecordService; @@ -53,6 +54,9 @@ public class RainTask { @Lazy @Autowired private RedisRepository redisRepository; + @Lazy + @Autowired + private RainDevMapper rainDevMapper; /** * 获取实时数据 @@ -90,35 +94,62 @@ public class RainTask { JSONObject dataJo = datas.getJSONObject(i); JSONArray dataItemJa = dataJo.getJSONArray("dataItem"); String deviceAddr = dataJo.getString("deviceAddr"); + //normal:正常 + //alarming:报警 + //preAlarming:预警 + //offline:离线 + String deviceStatus = dataJo.getString("deviceStatus"); RainRecord record = new RainRecord(); - for (int j = 0; j < dataItemJa.size(); j++) { - JSONObject itemJo = dataItemJa.getJSONObject(j); - Integer nodeId = itemJo.getInteger("nodeId"); - JSONArray registerItemJa = itemJo.getJSONArray("registerItem"); - if (nodeId == 1) { - //风力、风速 - record.setWindForce(getDouble(registerItemJa, 0)); - record.setWindSpeed(getDouble(registerItemJa, 1)); - } else if (nodeId == 2) { - record.setWindDirection(getString(registerItemJa, 0)); - } else if (nodeId == 20) { - record.setAccumulatedRainfall(getDouble(registerItemJa, 0)); - } else if (nodeId == 21) { - record.setInstantaneousRainfall(getDouble(registerItemJa, 0)); - record.setCurrentRainfall(getDouble(registerItemJa, 1)); - } else if (nodeId == 22) { - record.setDailyRainfall(getDouble(registerItemJa, 0)); - } else if (nodeId == 11) { - record.setAirTemperature(getDouble(registerItemJa, 0)); - record.setAirHumidity(getDouble(registerItemJa, 1)); - } else if (nodeId == 14) { - record.setAtmosphericPressure(getDouble(registerItemJa, 0)); + RainDev dev = devSnMap.get(deviceAddr); + if (CollUtil.isNotEmpty(dataItemJa)) { + for (int j = 0; j < dataItemJa.size(); j++) { + JSONObject itemJo = dataItemJa.getJSONObject(j); + Integer nodeId = itemJo.getInteger("nodeId"); + JSONArray registerItemJa = itemJo.getJSONArray("registerItem"); + if (nodeId == 1) { + //风力、风速 + record.setWindForce(getDouble(registerItemJa, 0)); + record.setWindSpeed(getDouble(registerItemJa, 1)); + } else if (nodeId == 2) { + record.setWindDirection(getString(registerItemJa, 0)); + } else if (nodeId == 20) { + record.setAccumulatedRainfall(getDouble(registerItemJa, 0)); + } else if (nodeId == 21) { + record.setInstantaneousRainfall(getDouble(registerItemJa, 0)); + record.setCurrentRainfall(getDouble(registerItemJa, 1)); + } else if (nodeId == 22) { + record.setDailyRainfall(getDouble(registerItemJa, 0)); + } else if (nodeId == 11) { + record.setAirTemperature(getDouble(registerItemJa, 0)); + record.setAirHumidity(getDouble(registerItemJa, 1)); + } else if (nodeId == 14) { + record.setAtmosphericPressure(getDouble(registerItemJa, 0)); + } + } + record.setRecordTime(new Date(dataJo.getLong("timeStamp"))); + record.setDevSn(deviceAddr); + record.setProjectSn(dev.getProjectSn()); + records.add(record); + dev.setLastUploadTime(new Date()); + } + + //更新在线离线 + String offline = "offline"; + if (offline.equals(deviceStatus)) { + if (dev != null) { + if (DateUtil.compare(dev.getLastUploadTime(), DateUtil.offsetMinute(new Date(), -30)) >= 0) { + dev.setLastUploadTime(DateUtil.offsetMinute(new Date(), -60)); + rainDevMapper.updateById(dev); + } + } + } else { + if (dev != null) { + if (DateUtil.compare(dev.getLastUploadTime(), DateUtil.offsetMinute(new Date(), -30)) < 0) { + dev.setLastUploadTime(new Date()); + rainDevMapper.updateById(dev); + } } } - record.setRecordTime(new Date(dataJo.getLong("timeStamp"))); - record.setDevSn(deviceAddr); - record.setProjectSn(devSnMap.get(deviceAddr).getProjectSn()); - records.add(record); } rainRecordService.saveBatch(records); }