Commit 476fc473 authored by duanruiming's avatar duanruiming

[add] 问题诊断提交

parent 0cb17e44
......@@ -13,6 +13,7 @@ import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO;
import net.wanji.opt.service.CrossIndexService;
import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......@@ -101,4 +102,20 @@ public class CrossIndexController {
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;
import net.wanji.databus.po.TBaseCrossInfo;
import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import java.util.List;
import java.util.Map;
......@@ -24,4 +25,6 @@ public interface CrossIndexService {
List<CrossOptResult> crossOptResultList(CrossIdBO crossIdBO) throws Exception;
List<AIOptResultVO> crossAIList();
crossStatusCountVO crossStatusCount(String crossId);
}
......@@ -18,6 +18,7 @@ import net.wanji.opt.service.CrossIndexService;
import net.wanji.opt.synthesis.pojo.StrategyCrossResultEntity;
import net.wanji.opt.vo.AIOptResultVO;
import net.wanji.opt.vo.CrossOptResult;
import net.wanji.opt.vo.crossStatusCountVO;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
......@@ -138,4 +139,33 @@ public class CrossIndexServiceImpl implements CrossIndexService {
Collections.sort(results, Comparator.comparingInt(AIOptResultVO::getOptStatus));
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