Commit 58fa61f7 authored by duanruiming's avatar duanruiming

[update] 设备故障逻辑优化

parent b6538caf
......@@ -167,6 +167,9 @@ public class SituationDetectionController extends BaseController {
for (CrossDeviceStatusInfoOutVO item : list) {
int fualType = item.getFaultType();
int status = item.getStatus();
if (status == 1 && fualType == 0) {
status = 1;
}
if (status == 1 && fualType != 0) {
status = 3;
}
......
......@@ -571,7 +571,9 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
@Override
public List<SignalFaultInfoVO> listSignalFaultInfos(String dealStatus) throws Exception {
List<TDeviceStatusInfo> tDeviceStatusInfos = allDeviceStatusMapper.selectByEntity(new TDeviceStatusInfo());
TDeviceStatusInfo tDeviceStatusInfo = new TDeviceStatusInfo();
tDeviceStatusInfo.setType(1);
List<TDeviceStatusInfo> tDeviceStatusInfos = allDeviceStatusMapper.selectByEntity(tDeviceStatusInfo);
List<CrossInfoOutVo> crossInfoOutVoList = getCrossInfoOutVoList(new CrossInfoPageVO());
List<SignalFaultInfoVO> signalFaultInfoVOS = new ArrayList<>(tDeviceStatusInfos.size());
......@@ -584,7 +586,7 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
for (CrossInfoOutVo crossInfoOutVo : crossInfoOutVoList) {
if (StringUtils.equals(crossInfoOutVo.getId(), tDeviceStatus.getCode())) {
signalFaultInfoVO.setIp(crossInfoOutVo.getIp());
if (tDeviceStatus.getFaultType() == 0) {
if (tDeviceStatus.getFaultType() == 0 && tDeviceStatus.getStatus() == 1) {
signalFaultInfoVO.setDealStatus("2");
}
}
......@@ -604,28 +606,29 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
@Override
public DeviceFaultCountVO countSignalFaultInfos() {
LambdaQueryWrapper<TDeviceStatusLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.ne(TDeviceStatusLog::getFaultType, 0);
List<TDeviceStatusLog> tDeviceStatusInfos = tDeviceStatusLogMapper.selectList(queryWrapper);
TDeviceStatusInfo queryEntity = new TDeviceStatusInfo();
queryEntity.setType(1);
List<TDeviceStatusInfo> tDeviceStatusInfos = allDeviceStatusMapper.selectByEntity(queryEntity);
List<TDeviceStatusInfo> dealList = tDeviceStatusInfos.stream().filter(tDeviceStatusInfo -> isDealStatus(tDeviceStatusInfo)).collect(Collectors.toList());
int dealCount = dealList.size();
int faultCount = tDeviceStatusInfos.size() - dealCount;
int dealCount = 0;
int faultCount = 0;
DeviceFaultCountVO countVO = new DeviceFaultCountVO();
for (TDeviceStatusLog tDeviceStatusLog : tDeviceStatusInfos) {
int faultType = tDeviceStatusLog.getFaultType();
if (100 == faultType) {
dealCount++;
}
if (faultType > 0 && faultType < 100) {
faultCount++;
}
}
countVO.setDealCount(dealCount);
countVO.setFaultCount(faultCount);
countVO.setAllCount(tDeviceStatusInfos.size());
return countVO;
}
/**
* 在线并且无故障为已处理
* @param tDeviceStatusInfo
* @return
*/
private static boolean isDealStatus(TDeviceStatusInfo tDeviceStatusInfo) {
return tDeviceStatusInfo.getStatus() == 1 && tDeviceStatusInfo.getFaultType() == 0;
}
@Override
public List<SignalOperationModeVO> listSignalControlList(Integer operationMode) {
List<SignalOperationModeVO> signalOperationModeVOS = new ArrayList<>();
......
......@@ -38,6 +38,9 @@
<if test="entity.status != null and entity.status != ''">
status = #{entity.status}
</if>
<if test="entity.type != null and entity.type != ''">
type = #{entity.type}
</if>
</where>
</select>
......
......@@ -245,8 +245,7 @@
select c.id, c.name, c.location, d.status, d.fault_type
from t_base_cross_info c
left join t_device_status d on c.id = d.code
where c.is_signal = 1
and d.type = 1
where d.type = 1
</select>
<select id="selectByCrossIds" resultType="net.wanji.databus.po.CrossInfoPO">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment