package com.energy.manage.analyse.controller.anomaly; import com.energy.manage.analyse.common.IPUtils; import com.energy.manage.analyse.common.NetUtils; import com.energy.manage.analyse.common.reponse.ResultResp; import com.energy.manage.analyse.controller.base.BaseServiceController; import com.energy.manage.analyse.domain.dto.AnomalyDTO; import com.energy.manage.analyse.domain.dto.AnomalyModelDTO; import com.energy.manage.analyse.domain.vo.anomaly.*; import com.energy.manage.analyse.domain.vo.healthscores.HealthscoresRegionVO; import com.energy.manage.analyse.po.anomaly.AnomalyModelPO; import com.energy.manage.analyse.service.anomaly.AnomalyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.mapping.ResultMap; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.List; /** * @author sy * @desc */ @Slf4j @Api(value = "AnomalyController", tags = "风机异常检测查询接口") @RestController @RequestMapping("/anomaly") public class AnomalyController extends BaseServiceController { @Autowired private AnomalyService anomalyService; @ApiOperation("查询数据完整度") @PostMapping("/getDataCompleteness") public ResultResp> getDataCompleteness(@RequestParam(value = "fieldCode", required = false) String fieldCode, @RequestParam(value = "dataType", required = false) String dataType, @RequestParam(value = "datatime", required = false) String datatime) { List list = anomalyService.getDataCompleteness(fieldCode, dataType, datatime); log.info("查询数据完整度 - datatime: {}, 结果数量: {}", datatime, list != null ? list.size() : 0); return success(list); } @ApiOperation("所有区域异常情况信息查询") @PostMapping("/getAnomalyRegionList") public ResultResp> getAnomalyRegionList( @ApiParam(value = "companyCode参数为平台内部公司编号", required = false) @RequestParam(value = "companyCode", required = false) String companyCode, @ApiParam(value = "datatime参数为查询日期,当参数为空时,默认查昨天日期的数据", required = false) @RequestParam(value = "datatime", required = false) String datatime) { List list = anomalyService.getAnomalyRegionList(companyCode, datatime); return success(list); } @ApiOperation("查询异常风机概览") @PostMapping("/getAnomalyOverview") public ResultResp> getAnomalyOverview(@RequestBody List anomalyDTOList, HttpServletRequest request) { // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); List anomalyOverview = anomalyService.getAnomalyOverview(anomalyDTOList, isIntranet); return success(anomalyOverview); } @ApiOperation("查询柱状图") @PostMapping("/getBarChartStats") public ResultResp getBarChartStats(@RequestBody AnomalyDTO anomalyDTO) { BarChartVO barChartStats = anomalyService.getBarChartStats(anomalyDTO); return success(barChartStats); } @ApiOperation("查询热力图") @PostMapping("/getAnomalyModelMap") public ResultResp getAnomalyModelMap(@RequestBody AnomalyDTO anomalyDTO) { AnomalyChartVO anomalyChartVO = anomalyService.getAnomalyModelMap(anomalyDTO); return success(anomalyChartVO); } @ApiOperation("风机卡片") @PostMapping("/getAnomalyModel") public ResultResp> getAnomalyModel(@RequestBody AnomalyDTO anomalyDTO) { List anomalyModelVOS = anomalyService.getAnomalyModel(anomalyDTO); return success(anomalyModelVOS); } @ApiOperation("风速功率模块模块") @PostMapping("/getAnomalyWindpwr") public ResultResp getAnomalyWindpwr(@RequestBody AnomalyModelDTO anomalyModelDTO, HttpServletRequest request) { // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); AnomalyWindpwrVO anomalyWindpwrVO = anomalyService.getAnomalyWindpwr(anomalyModelDTO, isIntranet); return success(anomalyWindpwrVO); } @ApiOperation("偏航模块模块") @PostMapping("/geAnomalyYaw") public ResultResp geAnomalyYaw(@RequestBody AnomalyModelDTO anomalyModelDTO, HttpServletRequest request) { log.warn("ip" + "=====>" + IPUtils.getIpAddr(request)); // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); AnomalyYawVO anomalyYawVO = anomalyService.geAnomalyYaw(anomalyModelDTO, isIntranet); return success(anomalyYawVO); } @ApiOperation("变桨模块模块") @PostMapping("/getAnomalyPitch") public ResultResp getAnomalyPitch(@RequestBody AnomalyModelDTO anomalyModelDTO, HttpServletRequest request) { // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); AnomalyPitchVO anomalyPitchVO = anomalyService.getAnomalyPitch(anomalyModelDTO, isIntranet); return success(anomalyPitchVO); } @ApiOperation("气动性能") @PostMapping("/getAerodynamics") public ResultResp getAerodynamics(@RequestBody AnomalyModelDTO anomalyModelDTO, HttpServletRequest request) { // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); AnomalyAerodynamicsVO anomalyAerodynamicsVO = anomalyService.getAerodynamics(anomalyModelDTO, isIntranet); return success(anomalyAerodynamicsVO); } @ApiOperation("运行状态模块模块") @PostMapping("/getAnomalyCtrlParam") public ResultResp getAnomalyCtrlParam(@RequestBody AnomalyModelDTO anomalyModelDTO, HttpServletRequest request) { // 判断是否是内网 boolean isIntranet = NetUtils.isIntranet(IPUtils.getIpAddr(request)); AnomalyCtrlParamVO anomalyCtrlParamVO = anomalyService.getAnomalyCtrlParam(anomalyModelDTO, isIntranet); return success(anomalyCtrlParamVO); } @ApiOperation("获取模块异常趋势曲线图(支持年度分表+跨年跨表)") @PostMapping("/getPitchAnomalyTrend") public ResultResp> getPitchAnomalyTrend(@RequestBody AnomalyModelDTO anomalyModelDTO) { List anomalyDailyDTOS = anomalyService.getPitchAnomalyTrend(anomalyModelDTO); return success(anomalyDailyDTOS); } @ApiOperation("查询传感器异常台数 -- 雷达图") @PostMapping("/getAnomalySensorCount") public ResultResp getAnomalySensorCount(@RequestBody AnomalyDTO anomalyDTO) { AnomalySensorCountVO anomalySensorCountVO = anomalyService.getAnomalySensorCount(anomalyDTO); return success(anomalySensorCountVO); } @ApiOperation("查询模块异常台数 -- 雷达图") @PostMapping("/getAnomalyModelCount") public ResultResp getAnomalyModelCount(@RequestBody AnomalyDTO anomalyDTO) { AnomalyCount anomalyModelCount = anomalyService.getAnomalyModelCount(anomalyDTO); return success(anomalyModelCount); } }