|
|
|
@ -5,11 +5,15 @@ import java.util.Iterator;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
import com.os.common.exception.ServiceException;
|
|
|
|
|
import com.os.common.utils.DateUtils;
|
|
|
|
|
import com.os.common.utils.StringUtils;
|
|
|
|
|
import com.os.ems.base.domain.TreeSelects;
|
|
|
|
|
import com.os.ems.record.service.IEmsRecordAlarmRuleService;
|
|
|
|
|
import com.os.ems.record.domain.EmsRecordAlarmRule;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import com.os.ems.base.mapper.EmsBaseMonitorInfoMapper;
|
|
|
|
|
import com.os.ems.base.domain.EmsBaseMonitorInfo;
|
|
|
|
|
import com.os.ems.base.service.IEmsBaseMonitorInfoService;
|
|
|
|
@ -26,6 +30,9 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
@Autowired
|
|
|
|
|
private EmsBaseMonitorInfoMapper emsBaseMonitorInfoMapper;
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private IEmsRecordAlarmRuleService emsRecordAlarmRuleService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询计量设备信息
|
|
|
|
|
*
|
|
|
|
@ -93,21 +100,60 @@ public class EmsBaseMonitorInfoServiceImpl implements IEmsBaseMonitorInfoService
|
|
|
|
|
* @return 结果
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public int deleteEmsBaseMonitorInfoByObjIds(Long[] objIds)
|
|
|
|
|
{
|
|
|
|
|
for (Long objId : objIds){
|
|
|
|
|
// 3. 检查子设备(如果存在,则抛出异常)
|
|
|
|
|
EmsBaseMonitorInfo childQuery = new EmsBaseMonitorInfo();
|
|
|
|
|
childQuery.setParentId(objId);
|
|
|
|
|
List<EmsBaseMonitorInfo> childDevices = emsBaseMonitorInfoMapper.selectEmsBaseMonitorInfoList(childQuery);
|
|
|
|
|
if (childDevices != null && !childDevices.isEmpty()) {
|
|
|
|
|
throw new ServiceException("存在子节点,无法删除设备信息 ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return emsBaseMonitorInfoMapper.deleteEmsBaseMonitorInfoByObjIds(objIds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 删除计量设备信息信息
|
|
|
|
|
* 删除计量设备信息信息(级联删除关联的异常规则和措施步骤)
|
|
|
|
|
*
|
|
|
|
|
* @param objId 计量设备信息主键
|
|
|
|
|
* @return 结果
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public int deleteEmsBaseMonitorInfoByObjId(Long objId)
|
|
|
|
|
{
|
|
|
|
|
return emsBaseMonitorInfoMapper.deleteEmsBaseMonitorInfoByObjId(objId);
|
|
|
|
|
// 1. 查询要删除的设备信息
|
|
|
|
|
EmsBaseMonitorInfo monitorInfo = emsBaseMonitorInfoMapper.selectEmsBaseMonitorInfoByObjId(objId);
|
|
|
|
|
if (monitorInfo == null) {
|
|
|
|
|
throw new RuntimeException("设备信息不存在 " );
|
|
|
|
|
}
|
|
|
|
|
// 3. 检查子设备(如果存在,则抛出异常)
|
|
|
|
|
EmsBaseMonitorInfo childQuery = new EmsBaseMonitorInfo();
|
|
|
|
|
childQuery.setParentId(objId);
|
|
|
|
|
List<EmsBaseMonitorInfo> childDevices = emsBaseMonitorInfoMapper.selectEmsBaseMonitorInfoList(childQuery);
|
|
|
|
|
if (childDevices != null && !childDevices.isEmpty()) {
|
|
|
|
|
throw new ServiceException("存在子节点,无法删除设备信息 ");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 4. 删除该设备关联的所有异常规则(会级联删除措施步骤和图片)
|
|
|
|
|
EmsRecordAlarmRule alarmRuleQuery = new EmsRecordAlarmRule();
|
|
|
|
|
alarmRuleQuery.setMonitorId(monitorInfo.getMonitorCode());
|
|
|
|
|
List<EmsRecordAlarmRule> alarmRules = emsRecordAlarmRuleService.selectEmsRecordAlarmRuleList(alarmRuleQuery);
|
|
|
|
|
|
|
|
|
|
if (alarmRules != null && !alarmRules.isEmpty()) {
|
|
|
|
|
Long[] ruleIds = alarmRules.stream()
|
|
|
|
|
.map(EmsRecordAlarmRule::getObjId)
|
|
|
|
|
.toArray(Long[]::new);
|
|
|
|
|
// 级联删除异常规则(会自动删除关联的措施步骤和图片)
|
|
|
|
|
emsRecordAlarmRuleService.deleteEmsRecordAlarmRuleByObjIds(ruleIds);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// 5. 最后删除设备本身
|
|
|
|
|
int result = emsBaseMonitorInfoMapper.deleteEmsBaseMonitorInfoByObjId(objId);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|