包头bug修改

This commit is contained in:
guoshengxiong 2025-03-31 19:50:06 +08:00
parent a65c3927ca
commit 0bb5257904
6 changed files with 75 additions and 26 deletions

View File

@ -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<ConcreteMonitorCurrentData> addByManual(@RequestBody ConcreteMonitorCurrentDataVo concreteMonitorCurrentDataVo) {
concreteMonitorCurrentDataVo.setUploadType(2);
concreteMonitorCurrentDataService.saveConcreteMonitorCurrentData(concreteMonitorCurrentDataVo);
public Result addByManual(@RequestBody ConcreteMonitorCurrentDataVo vo) {
concreteMonitorCurrentDataService.remove(new LambdaQueryWrapper<ConcreteMonitorCurrentData>()
.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<String, Object> map) {
concreteMonitorCurrentDataService.remove(new LambdaQueryWrapper<ConcreteMonitorCurrentData>()
.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<ConcreteMonitorCurrentData>()
.eq(ConcreteMonitorCurrentData::getDevSn, vo.getDevSn())
.eq(ConcreteMonitorCurrentData::getReceiveTime, vo.getReceiveTime())
);
this.addByManual(vo);
return Result.ok();
}
}

View File

@ -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;
}

View File

@ -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<ConcreteMonitorCurrentData> dataList;
}

View File

@ -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<ConcreteMon
ConcreteMonitorCurrentData newestCurrentData(Map<String, Object> map);
IPage<BaotouConcreteMonitorCurrentDataVo> queryList(Page<BaotouConcreteMonitorCurrentDataVo> page, @Param(Constants.WRAPPER) QueryWrapper<BaotouConcreteMonitorCurrentDataVo> queryWrapper, @Param("param") HashMap<String, Object> param);
List<ConcreteMonitorCurrentData> queryDetailList(@Param("param") HashMap<String, Object> param);
}

View File

@ -72,11 +72,33 @@
<select id="queryList" resultType="com.zhgd.xmgl.modules.concrete.entity.vo.BaotouConcreteMonitorCurrentDataVo">
select * from (
select t.*
,cmdpp.point_name
,cmd.dev_name
,cmd.point_num
from concrete_monitor_current_data t
left join concrete_monitor_dev cmd on t.dev_sn=cmd.dev_sn
join concrete_monitor_dev_point_position cmdpp on t.point_no = cmdpp.point_no and cmdpp.dev_sn=t.dev_sn
join concrete_monitor_dev cmd on t.dev_sn=cmd.dev_sn
group by t.receive_time
)t
${ew.customSqlSegment}
</select>
<select id="queryDetailList" resultType="com.zhgd.xmgl.modules.concrete.entity.ConcreteMonitorCurrentData">
select t.*
,cmdpp.point_name
,cmd.dev_name
,cmd.point_num
from concrete_monitor_current_data t
join concrete_monitor_dev_point_position cmdpp on t.point_no = cmdpp.point_no and cmdpp.dev_sn=t.dev_sn
join concrete_monitor_dev cmd on t.dev_sn=cmd.dev_sn
where t.project_sn=#{param.projectSn}
and t.dev_sn in
<foreach collection="param.devSns" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and t.receive_time in
<foreach collection="param.times" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

View File

@ -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<ConcreteM
if (concreteMonitorCurrentDataVo.getUploadType() != null) {
currentData.setUploadType(concreteMonitorCurrentDataVo.getUploadType());
}
currentData.setId(null);
concreteMonitorCurrentDataMapper.insert(currentData);
QueryWrapper<ConcreteMonitorDevPointPosition> qu = new QueryWrapper<>();
qu.lambda().eq(ConcreteMonitorDevPointPosition::getProjectSn, projectSn)
@ -184,19 +186,24 @@ public class ConcreteMonitorCurrentDataServiceImpl extends ServiceImpl<ConcreteM
public IPage<BaotouConcreteMonitorCurrentDataVo> queryPageList(HashMap<String, Object> param) {
Page<BaotouConcreteMonitorCurrentDataVo> page = PageUtil.getPage(param);
QueryWrapper<BaotouConcreteMonitorCurrentDataVo> queryWrapper = QueryGenerator.initPageQueryWrapper(BaotouConcreteMonitorCurrentDataVo.class, param, true);
;
IPage<BaotouConcreteMonitorCurrentDataVo> pageList = baseMapper.queryList(page, queryWrapper, param);
List<BaotouConcreteMonitorCurrentDataVo> records = pageList.getRecords();
if (CollUtil.isNotEmpty(records)) {
List<String> times = records.stream().map(BaotouConcreteMonitorCurrentDataVo::getReceiveTime).collect(Collectors.toList());
List<String> devsns = records.stream().map(BaotouConcreteMonitorCurrentDataVo::getDevSn).collect(Collectors.toList());
Map<String, List<ConcreteMonitorCurrentData>> timeMap = this.list(new LambdaQueryWrapper<ConcreteMonitorCurrentData>()
.in(ConcreteMonitorCurrentData::getReceiveTime, times).in(ConcreteMonitorCurrentData::getDevSn, devsns)).stream().collect(Collectors.groupingBy(ConcreteMonitorCurrentData::getReceiveTime));
Map<String, List<ConcreteMonitorCurrentData>> timeMap = baseMapper.queryDetailList(new MapBuilder<String, Object>()
.put("projectSn", MapUtils.getString(param, "projectSn"))
.put("times", times)
.put("devSns", devsns)
.build()).stream().collect(Collectors.groupingBy(ConcreteMonitorCurrentData::getReceiveTime));
for (BaotouConcreteMonitorCurrentDataVo record : records) {
List<ConcreteMonitorCurrentData> concreteMonitorCurrentDatas = timeMap.get(record.getReceiveTime());
if (concreteMonitorCurrentDatas != null) {
concreteMonitorCurrentDatas.sort((o1, o2) -> o1.getPointNo().compareTo(o2.getPointNo()));
record.setDataList(concreteMonitorCurrentDatas);
}
}
}
pageList.setRecords(records);
return pageList;
}