Commit 476fc473 authored by duanruiming's avatar duanruiming

[add] 问题诊断提交

parent 0cb17e44
...@@ -13,6 +13,7 @@ import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO; ...@@ -13,6 +13,7 @@ import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO;
import net.wanji.opt.service.CrossIndexService; import net.wanji.opt.service.CrossIndexService;
import net.wanji.opt.vo.AIOptResultVO; import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult; import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -101,4 +102,20 @@ public class CrossIndexController { ...@@ -101,4 +102,20 @@ public class CrossIndexController {
return JsonViewObject.newInstance().success(results); return JsonViewObject.newInstance().success(results);
} }
@ApiOperation(value = "问题诊断", notes = "优化监测-问题诊断", response = JsonViewObject.class,
produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
@GetMapping(value = "/crossStatusCount")
@ApiResponses({
@ApiResponse(code = 200, message = "OK", response = AddOrUpdateSceneDTO.class),
})
public JsonViewObject crossStatusCount(String crossId) {
crossStatusCountVO result = new crossStatusCountVO();
try {
result = crossIndexService.crossStatusCount(crossId);
} catch (Exception e) {
JsonViewObject.newInstance().fail("优化监测-问题诊断");
}
return JsonViewObject.newInstance().success(result);
}
} }
...@@ -6,6 +6,7 @@ import net.wanji.databus.po.CrossDirDataRealtimePO; ...@@ -6,6 +6,7 @@ import net.wanji.databus.po.CrossDirDataRealtimePO;
import net.wanji.databus.po.TBaseCrossInfo; import net.wanji.databus.po.TBaseCrossInfo;
import net.wanji.opt.vo.AIOptResultVO; import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult; import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -24,4 +25,6 @@ public interface CrossIndexService { ...@@ -24,4 +25,6 @@ public interface CrossIndexService {
List<CrossOptResult> crossOptResultList(CrossIdBO crossIdBO) throws Exception; List<CrossOptResult> crossOptResultList(CrossIdBO crossIdBO) throws Exception;
List<AIOptResultVO> crossAIList(); List<AIOptResultVO> crossAIList();
crossStatusCountVO crossStatusCount(String crossId);
} }
...@@ -18,6 +18,7 @@ import net.wanji.opt.service.CrossIndexService; ...@@ -18,6 +18,7 @@ import net.wanji.opt.service.CrossIndexService;
import net.wanji.opt.synthesis.pojo.StrategyCrossResultEntity; import net.wanji.opt.synthesis.pojo.StrategyCrossResultEntity;
import net.wanji.opt.vo.AIOptResultVO; import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult; import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -138,4 +139,33 @@ public class CrossIndexServiceImpl implements CrossIndexService { ...@@ -138,4 +139,33 @@ public class CrossIndexServiceImpl implements CrossIndexService {
Collections.sort(results, Comparator.comparingInt(AIOptResultVO::getOptStatus)); Collections.sort(results, Comparator.comparingInt(AIOptResultVO::getOptStatus));
return results; return results;
} }
@Override
public crossStatusCountVO crossStatusCount(String crossId) {
LocalDate currentDate = LocalDate.now();
LocalTime startTime = LocalTime.MIDNIGHT;
LocalDateTime startOfDay = LocalDateTime.of(currentDate, startTime);
LambdaQueryWrapper<StrategyCrossResultEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(StrategyCrossResultEntity::getCrossId, crossId);
queryWrapper.ge(StrategyCrossResultEntity::getIssueTime, startOfDay);
List<StrategyCrossResultEntity> list = strategyCrossResultMapper.selectList(queryWrapper);
crossStatusCountVO crossStatusCountVO = new crossStatusCountVO();
if (!CollectionUtils.isEmpty(list)) {
Map<Integer, List<StrategyCrossResultEntity>> listMap = list.stream().collect(Collectors.groupingBy(StrategyCrossResultEntity::getCurrentAlgo));
for (Map.Entry<Integer, List<StrategyCrossResultEntity>> entry : listMap.entrySet()) {
Integer currentAlgo = entry.getKey();
List<StrategyCrossResultEntity> value = entry.getValue();
if (Objects.equals(currentAlgo, CrossOptStrategyEnum.ONE.getCode())) {
crossStatusCountVO.setPhaseEmptyCount(value.size());
}
if (Objects.equals(currentAlgo, CrossOptStrategyEnum.TWO.getCode())) {
crossStatusCountVO.setUnbalanceCount(value.size());
}
if (Objects.equals(currentAlgo, CrossOptStrategyEnum.THREE.getCode())) {
crossStatusCountVO.setOverFlowCount(value.size());
}
}
}
return crossStatusCountVO;
}
} }
package net.wanji.opt.vo;
import lombok.Data;
/**
* @author duanruiming
* @date 2024/12/11 22:50
*/
@Data
public class crossStatusCountVO {
private int overFlowCount;
private int unbalanceCount;
private int phaseEmptyCount;
private int congestionCount;
}
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