水泥搅拌桩/旋挖设备bug修复

This commit is contained in:
guoshengxiong 2025-12-24 17:24:20 +08:00
parent c08b92471f
commit c5043a90a6
2 changed files with 67 additions and 15 deletions

View File

@ -270,16 +270,20 @@ public class CementMixPileDevServiceImpl extends ServiceImpl<CementMixPileDevMap
Set<String> processedAlarms = new HashSet<>();
for (CementMixPileAlarm alarm : alarms) {
CementMixPileDev dev = devMap.get(alarm.getDevSn());
if (dev == null || StrUtil.isBlank(dev.getAlarmPushWorkerId())) {
if (dev == null) {
continue;
}
List<SystemUser> systemUserList = systemUserService.list(Wrappers.<SystemUser>lambdaQuery().in(SystemUser::getUserId, StrUtil.split(dev.getAlarmPushWorkerId(), ",")).last(Cts.IGNORE_DATA_SCOPE_CONDITION));
List<Long> userIdList = new ArrayList<>();
if (StrUtil.isNotBlank(dev.getAlarmPushWorkerId())) {
userIdList = systemUserService.list(Wrappers.<SystemUser>lambdaQuery().in(SystemUser::getUserId, StrUtil.split(dev.getAlarmPushWorkerId(), ",")).last(Cts.IGNORE_DATA_SCOPE_CONDITION))
.stream().map(SystemUser::getUserId).collect(Collectors.toList());
}
String title = "水泥搅拌桩报警通知";
String msg = StrUtil.format("{}实时桩深数据异常!报警时间:{},设计桩深{}米,当前显示{}米。", alarm.getPilePointName(), DateUtil.formatDateTime(alarm.getAlarmTime()), alarm.getDesignPileDepth(), alarm.getRealPileDepth());
noticeService.addProjectLevelNotice(alarm.getProjectSn(), title, msg, "35", null);
if (CollectionUtils.isNotEmpty(systemUserList)) {
for (SystemUser systemUser : systemUserList) {
noticeService.addUserNotice(systemUser.getUserId(),
if (CollectionUtils.isNotEmpty(userIdList)) {
for (Long userId : userIdList) {
noticeService.addUserNotice(userId,
title,
msg,
"35");

View File

@ -1,41 +1,57 @@
package com.zhgd.xmgl.modules.bigdevice.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.execption.OpenAlertException;
import com.zhgd.jeecg.common.system.query.QueryGenerator;
import com.zhgd.xmgl.modules.bigdevice.entity.CementMixPilePoint;
import com.zhgd.xmgl.modules.bigdevice.entity.CementMixPileRealtime;
import com.zhgd.xmgl.modules.bigdevice.entity.dto.CementMixPileAlarmDto;
import com.zhgd.xmgl.modules.bigdevice.entity.dto.CementMixPileRealtimeDto;
import com.zhgd.xmgl.modules.bigdevice.entity.vo.CementMixPileRealtimeVo;
import com.zhgd.xmgl.modules.bigdevice.mapper.CementMixPileRealtimeMapper;
import com.zhgd.xmgl.modules.bigdevice.service.ICementMixPileAlarmService;
import com.zhgd.xmgl.modules.bigdevice.service.ICementMixPilePointService;
import com.zhgd.xmgl.modules.bigdevice.service.ICementMixPileRealtimeService;
import com.zhgd.xmgl.util.MapBuilder;
import com.zhgd.xmgl.util.PageUtil;
import com.zhgd.xmgl.util.RefUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Objects;
/**
* @Description: 水泥搅拌桩/旋挖沉桩实时数据
* @author pds
* @date 2025-12-12
* @date 2025-12-12
* @version V1.0
*/
@Service
public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileRealtimeMapper, CementMixPileRealtime> implements ICementMixPileRealtimeService {
@Autowired
private CementMixPileRealtimeMapper cementMixPileRealtimeMapper;
@Lazy
@Autowired
private ICementMixPilePointService cementMixPilePointService;
@Lazy
@Autowired
private ICementMixPileAlarmService cementMixPileAlarmService;
@Override
public IPage<CementMixPileRealtimeVo> queryPageList(HashMap<String, Object> param) {
QueryWrapper<CementMixPileRealtimeVo> queryWrapper = this.getQueryWrapper(param);
Page<CementMixPileRealtimeVo> page = PageUtil.getPage(param);
IPage<CementMixPileRealtimeVo> pageList = baseMapper.queryList(page, queryWrapper,param);
IPage<CementMixPileRealtimeVo> pageList = baseMapper.queryList(page, queryWrapper, param);
pageList.setRecords(this.dealList(pageList.getRecords()));
return pageList;
}
@ -43,7 +59,7 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
@Override
public List<CementMixPileRealtimeVo> queryList(HashMap<String, Object> param) {
QueryWrapper<CementMixPileRealtimeVo> queryWrapper = getQueryWrapper(param);
return dealList(baseMapper.queryList(queryWrapper,param));
return dealList(baseMapper.queryList(queryWrapper, param));
}
private QueryWrapper<CementMixPileRealtimeVo> getQueryWrapper(HashMap<String, Object> param) {
@ -57,24 +73,56 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
}
@Override
public void add(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
cementMixPileRealtimeDto.setId(null);
baseMapper.insert(cementMixPileRealtimeDto);
public void add(CementMixPileRealtimeDto dto) {
dto.setId(null);
setPilePointName(dto);
baseMapper.insert(dto);
addAlarmIf(dto);
}
private void addAlarmIf(CementMixPileRealtimeDto dto) {
CementMixPilePoint point = cementMixPilePointService.getOne(new LambdaQueryWrapper<CementMixPilePoint>()
.eq(CementMixPilePoint::getId, dto.getPointId()));
if (point == null) {
return;
}
if (Objects.nonNull(dto.getRealtimeDepth()) && Objects.nonNull(point.getDesignPileDepth())
&& NumberUtil.isGreater(dto.getRealtimeDepth(), point.getDesignPileDepth())) {
CementMixPileAlarmDto alarmDto = new CementMixPileAlarmDto();
alarmDto.setProjectSn(dto.getProjectSn());
alarmDto.setAlarmTime(dto.getPositioningTime() != null ? dto.getPositioningTime() : new DateTime());
alarmDto.setPointId(point.getId());
alarmDto.setPilePointName(point.getPilePointName());
alarmDto.setDesignPileDepth(point.getDesignPileDepth());
alarmDto.setRealPileDepth(dto.getRealtimeDepth());
alarmDto.setDevSn(dto.getDevSn());
alarmDto.setDevType(dto.getDevType());
cementMixPileAlarmService.add(alarmDto);
}
}
@Override
public void edit(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
CementMixPileRealtime oldCementMixPileRealtime = baseMapper.selectById(cementMixPileRealtimeDto.getId());
if(oldCementMixPileRealtime==null) {
if (oldCementMixPileRealtime == null) {
throw new OpenAlertException("未找到对应实体");
}
setPilePointName(cementMixPileRealtimeDto);
baseMapper.updateById(cementMixPileRealtimeDto);
}
private void setPilePointName(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
CementMixPilePoint point = cementMixPilePointService.getOne(new LambdaQueryWrapper<CementMixPilePoint>()
.eq(CementMixPilePoint::getId, cementMixPileRealtimeDto.getPointId()));
if (point != null) {
cementMixPileRealtimeDto.setPilePointName(point.getPilePointName());
}
}
@Override
public void delete(String id) {
CementMixPileRealtime cementMixPileRealtime = baseMapper.selectById(id);
if(cementMixPileRealtime==null) {
if (cementMixPileRealtime == null) {
throw new OpenAlertException("未找到对应实体");
}
baseMapper.deleteById(id);
@ -83,8 +131,8 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
@Override
public CementMixPileRealtimeVo queryById(String id) {
List<CementMixPileRealtimeVo> list = this.queryList(new MapBuilder<String, Object>()
.put("id", id)
.build());
.put("id", id)
.build());
CementMixPileRealtimeVo entity = CollUtil.getFirst(list);
if (entity == null) {
throw new OpenAlertException("未找到对应实体");