|
|
@@ -26,9 +26,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Collection;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 告警配置Service业务层处理
|
|
|
@@ -76,11 +75,40 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
|
|
|
@Override
|
|
|
public List<IotWarnconfigResVo> selectIotWarnconfigResVoList(IotWarnconfig iotWarnconfig) {
|
|
|
List<IotWarnconfigResVo> iotWarnconfigResVoList = iotWarnconfigMapper.selectIotWarnconfigResVoList(iotWarnconfig);
|
|
|
+ List<String> wcBids = new ArrayList<>();
|
|
|
+ Map<String,IotWarnconfigResVo> map = new HashMap<>();
|
|
|
for(IotWarnconfigResVo iotWarnconfigResVo : iotWarnconfigResVoList){
|
|
|
iotWarnconfigResVo.setDevtypeName(IotDeviceDictEnum.getNameByCode(iotWarnconfigResVo.getDevtypeBid()));
|
|
|
iotWarnconfigResVo.setWcTouchtypeName(IotWarnTouchTypeEnum.findByCode(iotWarnconfigResVo.getWcTouchtype()).getContent());
|
|
|
iotWarnconfigResVo.setWcLevelName(IotWarnlevelEnum.findByCode(iotWarnconfigResVo.getWcLevel()).getContent());
|
|
|
+ iotWarnconfigResVo.setIotDeviceList(new ArrayList<>());
|
|
|
+ iotWarnconfigResVo.setSysUserList(new ArrayList<>());
|
|
|
+ wcBids.add(iotWarnconfigResVo.getWcBid());
|
|
|
+ map.put(iotWarnconfigResVo.getWcBid(),iotWarnconfigResVo);
|
|
|
}
|
|
|
+ if(!wcBids.isEmpty()){
|
|
|
+ // 填充设备信息
|
|
|
+ List<IotWarnobject> iotWarnobjectList = iotWarnobjectMapper.selectIotWarnobjectListByWcBids(wcBids,SecurityUtils.getTid());
|
|
|
+ Map<String,List<IotWarnobject>> iotWarnobjectMap = iotWarnobjectList.stream().collect(Collectors.groupingBy(IotWarnobject::getDevBid));
|
|
|
+ if(!iotWarnobjectMap.isEmpty()){
|
|
|
+ List<IotDevice> iotDeviceList = iotDeviceMapper.selectIotDeviceByDevBids(new ArrayList<>(iotWarnobjectMap.keySet()),SecurityUtils.getTid());
|
|
|
+ for(IotDevice iotDevice : iotDeviceList){
|
|
|
+ List<IotWarnobject> devWarnObjectList = iotWarnobjectMap.get(iotDevice.getDevBid());
|
|
|
+ if(null == devWarnObjectList){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ for(IotWarnobject iotWarnobject : devWarnObjectList){
|
|
|
+ IotWarnconfigResVo iotWarnconfigResVo = map.get(iotWarnobject.getWcBid());
|
|
|
+ if(null != iotWarnconfigResVo){
|
|
|
+ iotWarnconfigResVo.getIotDeviceList().add(iotDevice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 填充通知人信息,暂不实现
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
return iotWarnconfigResVoList;
|
|
|
}
|
|
|
|
|
|
@@ -229,8 +257,8 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public IotWarnconfig copy(String wcBid) {
|
|
|
// 查询告警规则
|
|
|
IotWarnconfig iotWarnconfig = iotWarnconfigMapper.selectIotWarnconfigByWcBid(wcBid,SecurityUtils.getTid());
|