From 0bb52579041d2ca3bce7880f5b7634c7156c403a Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Mon, 31 Mar 2025 19:50:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConcreteMonitorCurrentDataController.java | 35 ++++++++++++++++--- .../entity/ConcreteMonitorCurrentData.java | 4 ++- .../BaotouConcreteMonitorCurrentDataVo.java | 15 +++----- .../ConcreteMonitorCurrentDataMapper.java | 8 ++--- .../xml/ConcreteMonitorCurrentDataMapper.xml | 24 ++++++++++++- ...ConcreteMonitorCurrentDataServiceImpl.java | 15 +++++--- 6 files changed, 75 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/controller/ConcreteMonitorCurrentDataController.java b/src/main/java/com/zhgd/xmgl/modules/concrete/controller/ConcreteMonitorCurrentDataController.java index 1a63989cf..290cb02d9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/controller/ConcreteMonitorCurrentDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/controller/ConcreteMonitorCurrentDataController.java @@ -1,12 +1,11 @@ package com.zhgd.xmgl.modules.concrete.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gexin.fastjson.JSON; -import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.entity.vo.ConcreteMonitorCurrentDataVo; -import com.zhgd.xmgl.modules.baotou.entity.ConstructionPlanLedgerSet; import com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorCurrentData; import com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorDevPointPosition; import com.zhgd.xmgl.modules.concrete.entity.vo.BaotouConcreteMonitorCurrentDataVo; @@ -140,11 +139,37 @@ public class ConcreteMonitorCurrentDataController { @ApiOperation(value = "手动采集添加混凝土监测-实时数据信息", notes = "手动采集添加混凝土监测-实时数据信息", httpMethod = "POST") @PostMapping(value = "/manual/add") - public Result addByManual(@RequestBody ConcreteMonitorCurrentDataVo concreteMonitorCurrentDataVo) { - concreteMonitorCurrentDataVo.setUploadType(2); - concreteMonitorCurrentDataService.saveConcreteMonitorCurrentData(concreteMonitorCurrentDataVo); + public Result addByManual(@RequestBody ConcreteMonitorCurrentDataVo vo) { + concreteMonitorCurrentDataService.remove(new LambdaQueryWrapper() + .eq(ConcreteMonitorCurrentData::getDevSn, vo.getDevSn()) + .eq(ConcreteMonitorCurrentData::getReceiveTime, vo.getReceiveTime()) + ); + vo.setUploadType(2); + concreteMonitorCurrentDataService.saveConcreteMonitorCurrentData(vo); return Result.ok(); } + @ApiOperation(value = "包头删除混凝土监测-实时数据", notes = "包头删除混凝土监测-实时数据", httpMethod = "POST") + @ApiImplicitParams({ + @ApiImplicitParam(name = "devSn", value = "设备编号", paramType = "body", required = true, dataType = "String"), + @ApiImplicitParam(name = "receiveTime", value = "接收时间", paramType = "body", required = true, dataType = "String"), + }) + @PostMapping(value = "/deleteByBaotou") + public Result deleteByBaotou(@ApiIgnore @RequestBody HashMap map) { + concreteMonitorCurrentDataService.remove(new LambdaQueryWrapper() + .eq(ConcreteMonitorCurrentData::getDevSn, MapUtils.getString(map, "devSn")) + .eq(ConcreteMonitorCurrentData::getReceiveTime, MapUtils.getString(map, "receiveTime"))); + return Result.ok(); + } + @ApiOperation(value = "编辑混凝土监测-实时数据", notes = "编辑混凝土监测-实时数据", httpMethod = "POST") + @PostMapping(value = "/manual/edit") + public Result editByManual(@RequestBody ConcreteMonitorCurrentDataVo vo) { + concreteMonitorCurrentDataService.remove(new LambdaQueryWrapper() + .eq(ConcreteMonitorCurrentData::getDevSn, vo.getDevSn()) + .eq(ConcreteMonitorCurrentData::getReceiveTime, vo.getReceiveTime()) + ); + this.addByManual(vo); + return Result.ok(); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/entity/ConcreteMonitorCurrentData.java b/src/main/java/com/zhgd/xmgl/modules/concrete/entity/ConcreteMonitorCurrentData.java index caa42328a..3b92738e3 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/entity/ConcreteMonitorCurrentData.java +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/entity/ConcreteMonitorCurrentData.java @@ -65,5 +65,7 @@ public class ConcreteMonitorCurrentData implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "报警等级,1 紧急告警,2 重要告警,3 次要告警,4 提示告警,5 正常") private Integer alarmLevel; - + @TableField(exist = false) + @ApiModelProperty(value = "监测点点位名称") + private String pointName; } diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/entity/vo/BaotouConcreteMonitorCurrentDataVo.java b/src/main/java/com/zhgd/xmgl/modules/concrete/entity/vo/BaotouConcreteMonitorCurrentDataVo.java index 72d66031f..c3f4dccd8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/entity/vo/BaotouConcreteMonitorCurrentDataVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/entity/vo/BaotouConcreteMonitorCurrentDataVo.java @@ -1,23 +1,18 @@ package com.zhgd.xmgl.modules.concrete.entity.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorCurrentData; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; import java.util.List; @Data -public class BaotouConcreteMonitorCurrentDataVo { - /** - * 混凝土监测设备唯一标识 - */ - @ApiModelProperty(value = "混凝土监测设备唯一标识") - private String devSn; +public class BaotouConcreteMonitorCurrentDataVo extends ConcreteMonitorCurrentData { @ApiModelProperty(value = "设备名称") private String devName; - @ApiModelProperty(value = "1自动采集2手动采集") - private Integer uploadType; - @ApiModelProperty(value = "接收时间") - private String receiveTime; + @ApiModelProperty(value = "监控点数量") + private Integer pointNum; private List dataList; } diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/ConcreteMonitorCurrentDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/ConcreteMonitorCurrentDataMapper.java index bf1e11a27..39445f4d0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/ConcreteMonitorCurrentDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/ConcreteMonitorCurrentDataMapper.java @@ -6,16 +6,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; -import com.zhgd.xmgl.entity.vo.ConcreteMonitorCurrentDataVo; import com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorCurrentData; import com.zhgd.xmgl.modules.concrete.entity.vo.BaotouConcreteMonitorCurrentDataVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @Description: 混凝土监测-实时数据 @@ -35,4 +31,6 @@ public interface ConcreteMonitorCurrentDataMapper extends BaseMapper map); IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + List queryDetailList(@Param("param") HashMap param); } diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/xml/ConcreteMonitorCurrentDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/xml/ConcreteMonitorCurrentDataMapper.xml index 157b39795..f9ede5330 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/xml/ConcreteMonitorCurrentDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/mapper/xml/ConcreteMonitorCurrentDataMapper.xml @@ -72,11 +72,33 @@ + + diff --git a/src/main/java/com/zhgd/xmgl/modules/concrete/service/impl/ConcreteMonitorCurrentDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/concrete/service/impl/ConcreteMonitorCurrentDataServiceImpl.java index 049da84f6..f68d2df12 100644 --- a/src/main/java/com/zhgd/xmgl/modules/concrete/service/impl/ConcreteMonitorCurrentDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/concrete/service/impl/ConcreteMonitorCurrentDataServiceImpl.java @@ -27,6 +27,7 @@ import com.zhgd.xmgl.modules.concrete.mapper.ConcreteMonitorDevPointPositionMapp import com.zhgd.xmgl.modules.concrete.service.IConcreteMonitorAlarmService; import com.zhgd.xmgl.modules.concrete.service.IConcreteMonitorCurrentDataService; import com.zhgd.xmgl.util.DateUtils; +import com.zhgd.xmgl.util.MapBuilder; import com.zhgd.xmgl.util.MessageUtil; import com.zhgd.xmgl.util.PageUtil; import lombok.extern.slf4j.Slf4j; @@ -77,6 +78,7 @@ public class ConcreteMonitorCurrentDataServiceImpl extends ServiceImpl qu = new QueryWrapper<>(); qu.lambda().eq(ConcreteMonitorDevPointPosition::getProjectSn, projectSn) @@ -184,17 +186,22 @@ public class ConcreteMonitorCurrentDataServiceImpl extends ServiceImpl queryPageList(HashMap param) { Page page = PageUtil.getPage(param); QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(BaotouConcreteMonitorCurrentDataVo.class, param, true); - ; IPage pageList = baseMapper.queryList(page, queryWrapper, param); List records = pageList.getRecords(); if (CollUtil.isNotEmpty(records)) { List times = records.stream().map(BaotouConcreteMonitorCurrentDataVo::getReceiveTime).collect(Collectors.toList()); List devsns = records.stream().map(BaotouConcreteMonitorCurrentDataVo::getDevSn).collect(Collectors.toList()); - Map> timeMap = this.list(new LambdaQueryWrapper() - .in(ConcreteMonitorCurrentData::getReceiveTime, times).in(ConcreteMonitorCurrentData::getDevSn, devsns)).stream().collect(Collectors.groupingBy(ConcreteMonitorCurrentData::getReceiveTime)); + Map> timeMap = baseMapper.queryDetailList(new MapBuilder() + .put("projectSn", MapUtils.getString(param, "projectSn")) + .put("times", times) + .put("devSns", devsns) + .build()).stream().collect(Collectors.groupingBy(ConcreteMonitorCurrentData::getReceiveTime)); for (BaotouConcreteMonitorCurrentDataVo record : records) { List concreteMonitorCurrentDatas = timeMap.get(record.getReceiveTime()); - record.setDataList(concreteMonitorCurrentDatas); + if (concreteMonitorCurrentDatas != null) { + concreteMonitorCurrentDatas.sort((o1, o2) -> o1.getPointNo().compareTo(o2.getPointNo())); + record.setDataList(concreteMonitorCurrentDatas); + } } } pageList.setRecords(records);