水泥搅拌桩/旋挖设备bug修复
This commit is contained in:
parent
c08b92471f
commit
c5043a90a6
@ -270,16 +270,20 @@ public class CementMixPileDevServiceImpl extends ServiceImpl<CementMixPileDevMap
|
|||||||
Set<String> processedAlarms = new HashSet<>();
|
Set<String> processedAlarms = new HashSet<>();
|
||||||
for (CementMixPileAlarm alarm : alarms) {
|
for (CementMixPileAlarm alarm : alarms) {
|
||||||
CementMixPileDev dev = devMap.get(alarm.getDevSn());
|
CementMixPileDev dev = devMap.get(alarm.getDevSn());
|
||||||
if (dev == null || StrUtil.isBlank(dev.getAlarmPushWorkerId())) {
|
if (dev == null) {
|
||||||
continue;
|
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 title = "水泥搅拌桩报警通知";
|
||||||
String msg = StrUtil.format("{}实时桩深数据异常!报警时间:{},设计桩深{}米,当前显示{}米。", alarm.getPilePointName(), DateUtil.formatDateTime(alarm.getAlarmTime()), alarm.getDesignPileDepth(), alarm.getRealPileDepth());
|
String msg = StrUtil.format("{}实时桩深数据异常!报警时间:{},设计桩深{}米,当前显示{}米。", alarm.getPilePointName(), DateUtil.formatDateTime(alarm.getAlarmTime()), alarm.getDesignPileDepth(), alarm.getRealPileDepth());
|
||||||
noticeService.addProjectLevelNotice(alarm.getProjectSn(), title, msg, "35", null);
|
noticeService.addProjectLevelNotice(alarm.getProjectSn(), title, msg, "35", null);
|
||||||
if (CollectionUtils.isNotEmpty(systemUserList)) {
|
if (CollectionUtils.isNotEmpty(userIdList)) {
|
||||||
for (SystemUser systemUser : systemUserList) {
|
for (Long userId : userIdList) {
|
||||||
noticeService.addUserNotice(systemUser.getUserId(),
|
noticeService.addUserNotice(userId,
|
||||||
title,
|
title,
|
||||||
msg,
|
msg,
|
||||||
"35");
|
"35");
|
||||||
|
|||||||
@ -1,41 +1,57 @@
|
|||||||
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
package com.zhgd.xmgl.modules.bigdevice.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
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.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
import com.zhgd.jeecg.common.execption.OpenAlertException;
|
||||||
import com.zhgd.jeecg.common.system.query.QueryGenerator;
|
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.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.dto.CementMixPileRealtimeDto;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.entity.vo.CementMixPileRealtimeVo;
|
import com.zhgd.xmgl.modules.bigdevice.entity.vo.CementMixPileRealtimeVo;
|
||||||
import com.zhgd.xmgl.modules.bigdevice.mapper.CementMixPileRealtimeMapper;
|
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.modules.bigdevice.service.ICementMixPileRealtimeService;
|
||||||
import com.zhgd.xmgl.util.MapBuilder;
|
import com.zhgd.xmgl.util.MapBuilder;
|
||||||
import com.zhgd.xmgl.util.PageUtil;
|
import com.zhgd.xmgl.util.PageUtil;
|
||||||
import com.zhgd.xmgl.util.RefUtil;
|
import com.zhgd.xmgl.util.RefUtil;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: 水泥搅拌桩/旋挖沉桩实时数据
|
* @Description: 水泥搅拌桩/旋挖沉桩实时数据
|
||||||
* @author: pds
|
* @author: pds
|
||||||
* @date: 2025-12-12
|
* @date: 2025-12-12
|
||||||
* @version: V1.0
|
* @version: V1.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileRealtimeMapper, CementMixPileRealtime> implements ICementMixPileRealtimeService {
|
public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileRealtimeMapper, CementMixPileRealtime> implements ICementMixPileRealtimeService {
|
||||||
@Autowired
|
@Autowired
|
||||||
private CementMixPileRealtimeMapper cementMixPileRealtimeMapper;
|
private CementMixPileRealtimeMapper cementMixPileRealtimeMapper;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private ICementMixPilePointService cementMixPilePointService;
|
||||||
|
@Lazy
|
||||||
|
@Autowired
|
||||||
|
private ICementMixPileAlarmService cementMixPileAlarmService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<CementMixPileRealtimeVo> queryPageList(HashMap<String, Object> param) {
|
public IPage<CementMixPileRealtimeVo> queryPageList(HashMap<String, Object> param) {
|
||||||
QueryWrapper<CementMixPileRealtimeVo> queryWrapper = this.getQueryWrapper(param);
|
QueryWrapper<CementMixPileRealtimeVo> queryWrapper = this.getQueryWrapper(param);
|
||||||
Page<CementMixPileRealtimeVo> page = PageUtil.getPage(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()));
|
pageList.setRecords(this.dealList(pageList.getRecords()));
|
||||||
return pageList;
|
return pageList;
|
||||||
}
|
}
|
||||||
@ -43,7 +59,7 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
|
|||||||
@Override
|
@Override
|
||||||
public List<CementMixPileRealtimeVo> queryList(HashMap<String, Object> param) {
|
public List<CementMixPileRealtimeVo> queryList(HashMap<String, Object> param) {
|
||||||
QueryWrapper<CementMixPileRealtimeVo> queryWrapper = getQueryWrapper(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) {
|
private QueryWrapper<CementMixPileRealtimeVo> getQueryWrapper(HashMap<String, Object> param) {
|
||||||
@ -57,24 +73,56 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void add(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
|
public void add(CementMixPileRealtimeDto dto) {
|
||||||
cementMixPileRealtimeDto.setId(null);
|
dto.setId(null);
|
||||||
baseMapper.insert(cementMixPileRealtimeDto);
|
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
|
@Override
|
||||||
public void edit(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
|
public void edit(CementMixPileRealtimeDto cementMixPileRealtimeDto) {
|
||||||
CementMixPileRealtime oldCementMixPileRealtime = baseMapper.selectById(cementMixPileRealtimeDto.getId());
|
CementMixPileRealtime oldCementMixPileRealtime = baseMapper.selectById(cementMixPileRealtimeDto.getId());
|
||||||
if(oldCementMixPileRealtime==null) {
|
if (oldCementMixPileRealtime == null) {
|
||||||
throw new OpenAlertException("未找到对应实体");
|
throw new OpenAlertException("未找到对应实体");
|
||||||
}
|
}
|
||||||
|
setPilePointName(cementMixPileRealtimeDto);
|
||||||
baseMapper.updateById(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
|
@Override
|
||||||
public void delete(String id) {
|
public void delete(String id) {
|
||||||
CementMixPileRealtime cementMixPileRealtime = baseMapper.selectById(id);
|
CementMixPileRealtime cementMixPileRealtime = baseMapper.selectById(id);
|
||||||
if(cementMixPileRealtime==null) {
|
if (cementMixPileRealtime == null) {
|
||||||
throw new OpenAlertException("未找到对应实体");
|
throw new OpenAlertException("未找到对应实体");
|
||||||
}
|
}
|
||||||
baseMapper.deleteById(id);
|
baseMapper.deleteById(id);
|
||||||
@ -83,8 +131,8 @@ public class CementMixPileRealtimeServiceImpl extends ServiceImpl<CementMixPileR
|
|||||||
@Override
|
@Override
|
||||||
public CementMixPileRealtimeVo queryById(String id) {
|
public CementMixPileRealtimeVo queryById(String id) {
|
||||||
List<CementMixPileRealtimeVo> list = this.queryList(new MapBuilder<String, Object>()
|
List<CementMixPileRealtimeVo> list = this.queryList(new MapBuilder<String, Object>()
|
||||||
.put("id", id)
|
.put("id", id)
|
||||||
.build());
|
.build());
|
||||||
CementMixPileRealtimeVo entity = CollUtil.getFirst(list);
|
CementMixPileRealtimeVo entity = CollUtil.getFirst(list);
|
||||||
if (entity == null) {
|
if (entity == null) {
|
||||||
throw new OpenAlertException("未找到对应实体");
|
throw new OpenAlertException("未找到对应实体");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user