|
@@ -11,6 +11,7 @@ import com.usky.iot.domain.*;
|
|
|
import com.usky.iot.mapper.BaseAlarmMapper;
|
|
|
import com.usky.iot.service.BaseAlarmService;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
+import com.usky.iot.service.BaseFacilityDeviceService;
|
|
|
import com.usky.iot.service.DmpDeviceInfoService;
|
|
|
import com.usky.iot.service.DmpProductInfoService;
|
|
|
import com.usky.iot.service.config.websocket.WebSocket;
|
|
@@ -20,7 +21,6 @@ import com.usky.iot.service.vo.BaseAlarmResponeVO;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import javax.annotation.Resource;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -42,6 +42,9 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
|
|
|
@Autowired
|
|
|
private DmpDeviceInfoService dmpDeviceInfoService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private BaseFacilityDeviceService baseFacilityDeviceService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private WebSocket webSocket;
|
|
|
|
|
@@ -219,27 +222,38 @@ public class BaseAlarmServiceImpl extends AbstractCrudService<BaseAlarmMapper, B
|
|
|
@Override
|
|
|
public boolean add(BaseAlarm baseAlarm) {
|
|
|
baseAlarm.setHandleStatus(0);
|
|
|
-
|
|
|
- LambdaQueryWrapper<DmpProductInfo> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
- lambdaQuery.eq(StringUtils.isNotBlank(baseAlarm.getProductCode()),DmpProductInfo::getProductCode,baseAlarm.getProductCode())
|
|
|
- .eq(DmpProductInfo::getDeleteFlag,0);
|
|
|
- List<DmpProductInfo> records = dmpProductInfoService.list(lambdaQuery);
|
|
|
- if(records.size()>0){
|
|
|
- baseAlarm.setTenantId(records.get(0).getTenantId());
|
|
|
- if (StringUtils.isNotBlank(baseAlarm.getHandleBy()) || StringUtils.isNotBlank(baseAlarm.getHandlePhone())){
|
|
|
- baseAlarm.setHandleStatus(1);
|
|
|
- LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
|
|
|
- queryWrapper.eq(BaseAlarm::getDeviceId,baseAlarm.getDeviceId())
|
|
|
- .eq(BaseAlarm::getAlarmType,baseAlarm.getAlarmType())
|
|
|
- .eq(BaseAlarm::getAlarmAddress,baseAlarm.getAlarmAddress())
|
|
|
- .eq(BaseAlarm::getAlarmGrade,baseAlarm.getAlarmGrade());
|
|
|
- return this.update(baseAlarm,queryWrapper);
|
|
|
+ if (StringUtils.isNotBlank(baseAlarm.getProductCode()) && StringUtils.isNotBlank(baseAlarm.getDeviceId())){
|
|
|
+ LambdaQueryWrapper<DmpProductInfo> lambdaQuery = Wrappers.lambdaQuery();
|
|
|
+ lambdaQuery.eq(StringUtils.isNotBlank(baseAlarm.getProductCode()),DmpProductInfo::getProductCode,baseAlarm.getProductCode())
|
|
|
+ .eq(DmpProductInfo::getDeleteFlag,0);
|
|
|
+ List<DmpProductInfo> records = dmpProductInfoService.list(lambdaQuery);
|
|
|
+ LambdaQueryWrapper<BaseFacilityDevice> lambdaQuery1 = Wrappers.lambdaQuery();
|
|
|
+ lambdaQuery1.eq(StringUtils.isNotBlank(baseAlarm.getDeviceId()),BaseFacilityDevice::getDeviceId,
|
|
|
+ baseAlarm.getDeviceId());
|
|
|
+ List<BaseFacilityDevice> records1 = baseFacilityDeviceService.list(lambdaQuery1);
|
|
|
+ if(records.size()>0){
|
|
|
+ baseAlarm.setTenantId(records.get(0).getTenantId());
|
|
|
+ if (StringUtils.isNotBlank(baseAlarm.getHandleBy()) || StringUtils.isNotBlank(baseAlarm.getHandlePhone())){
|
|
|
+ baseAlarm.setHandleStatus(1);
|
|
|
+ LambdaQueryWrapper<BaseAlarm> queryWrapper = Wrappers.lambdaQuery();
|
|
|
+ queryWrapper.eq(BaseAlarm::getDeviceId,baseAlarm.getDeviceId())
|
|
|
+ .eq(BaseAlarm::getAlarmType,baseAlarm.getAlarmType())
|
|
|
+ .eq(BaseAlarm::getAlarmAddress,baseAlarm.getAlarmAddress())
|
|
|
+ .eq(BaseAlarm::getAlarmGrade,baseAlarm.getAlarmGrade());
|
|
|
+ return this.update(baseAlarm,queryWrapper);
|
|
|
+ }else {
|
|
|
+ boolean saveResult = this.save(baseAlarm);
|
|
|
+ if(records1.size()>0){
|
|
|
+ baseAlarm.setFacilityId(records1.get(0).getFacilityId());
|
|
|
+ }
|
|
|
+ webSocket.sendMessage(baseAlarm,records.get(0).getTenantId().toString());
|
|
|
+ return saveResult;
|
|
|
+ }
|
|
|
}else {
|
|
|
- webSocket.sendMessage(baseAlarm,records.get(0).getTenantId().toString());
|
|
|
- return this.save(baseAlarm);
|
|
|
+ throw new BusinessException("告警数据投递失败,产品编码有误");
|
|
|
}
|
|
|
}else {
|
|
|
- throw new BusinessException("告警数据投递失败,产品编码有误");
|
|
|
+ throw new BusinessException("告警数据投递失败,产品编码或设备编号不能为空");
|
|
|
}
|
|
|
}
|
|
|
}
|