package com.qianwen.smartman.modules.visual.controller; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.common.constant.ChartNameConstant; import com.qianwen.smartman.common.constant.MdcConstant; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.scanner.modular.annotation.PostResource; import com.qianwen.core.scanner.modular.stereotype.ApiResource; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.modules.mdc.enums.ProductivityTypeEnum; import com.qianwen.smartman.modules.system.vo.ChartDataTableVO; import com.qianwen.smartman.modules.system.vo.ChartGanttStatusDataVO; import com.qianwen.smartman.modules.system.vo.ChartNameValueDataVO; import com.qianwen.smartman.modules.system.vo.ChartSeriesDataVO; import com.qianwen.smartman.modules.visual.service.IVisualStatusService; import com.qianwen.smartman.modules.visual.vo.TimeStatusVO; import com.qianwen.smartman.modules.visual.vo.VisualBaseVO; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; @Api(value = "可视化状态接口", tags = {"可视化状态接口"}) @ApiResource({"blade-visual/status"}) @RestController public class VisualStatusController extends BladeController { private final IVisualStatusService visualStatusService; public VisualStatusController(final IVisualStatusService visualStatusService) { this.visualStatusService = visualStatusService; } @ApiOperationSupport(order = 1) @PostResource({"/record"}) @ApiOperation(value = "状态记录甘特图", notes = "传入visualBaseVO") public R getStatusRecordByDate(@Validated @RequestBody VisualBaseVO visualBaseVO) { return R.data(this.visualStatusService.getVisualStatusRecord(visualBaseVO)); } /** * 首页卡片运行时长排名 * @param timeStatusVO * @return */ @ApiOperationSupport(order = 2) @PostResource({"/running-top"}) @ApiOperation(value = "设备运行时长TOP", notes = "传入timeStatusVO") public R getRunningStatusRecord(@Validated @RequestBody TimeStatusVO timeStatusVO) { return R.data(this.visualStatusService.getDeviceStatusDuration(timeStatusVO, ChartNameConstant.DEVICE_RUN_STATUS)); } @ApiOperationSupport(order = 3) @PostResource({"/waiting-top"}) @ApiOperation(value = "设备待机时长TOP", notes = "传入timeStatusVO") public R getWaitingStatusRecord(@Validated @RequestBody TimeStatusVO timeStatusVO) { return R.data(this.visualStatusService.getDeviceStatusDuration(timeStatusVO, ChartNameConstant.DEVICE_WAIT_STATUS)); } @ApiOperationSupport(order = 4) @PostResource({"/distribution"}) @ApiOperation(value = "状态分布饼图", notes = "传入visualBaseVO") public R getStatusDistribution(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getStatusDistribution(vo)); } @ApiOperationSupport(order = RegionCache.VILLAGE_LEVEL) @PostResource({"/oee"}) @ApiOperation(value = MdcConstant.OEE_NAME, notes = "传入visualBaseVO") public R getOeeAnalysis(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getOeeAnalysis(vo)); } /* @ApiOperationSupport(order = 6) @PostResource({"/workstation-status"}) @ApiOperation(value = "工位实时数据(工位id)", notes = "传入visualBaseVO") public R workstationRealTimeStatus(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationRealStatus(vo)); } */ @ApiOperationSupport(order = 6) @PostResource({"/workstation-status-chart"}) @ApiOperation(value = "工位状态统计", notes = "工位列表") public R workstationStatusChart(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationRealStatusChart(vo)); } /* @ApiOperationSupport(order = 7) @PostResource({"/workstation-alarm"}) @ApiOperation(value = "工位实时报警数据", notes = "传入visualBaseVO") public R workstationAlarmData(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationAlarm(vo)); } */ @ApiOperationSupport(order = 8) @PostResource({"/oee-top"}) @ApiOperation(value = "设备近N时稼动率TOP", notes = "传入visualBaseVO") public R getOeeAnalysisTop(@Validated @RequestBody TimeStatusVO timeStatusVO) { return R.data(this.visualStatusService.getEfficiencyAnalysisTop(timeStatusVO, ProductivityTypeEnum.OEE)); } @ApiOperationSupport(order = 9) @PostResource({"/oee-shift-top"}) @ApiOperation(value = "当前班次稼动率TOP", notes = "传入visualBaseVO") public R getOeeAnalysisShiftTop(@Validated @RequestBody TimeStatusVO timeStatusVO) { return R.data(this.visualStatusService.getEfficiencyAnalysisShiftTop(timeStatusVO, ProductivityTypeEnum.OEE)); } @ApiOperationSupport(order = 10) @PostResource({"/oee-average"}) @ApiOperation(value = "班次-设备平均稼动率", notes = "传入visualBaseVO") public R getOeeAverageAnalysis(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getAverageEfficiencyAnalysis(vo, ProductivityTypeEnum.OEE)); } @ApiOperationSupport(order = 11) @PostResource({"/group-running"}) @ApiOperation(value = "班次-设备平均运行时长", notes = "传入visualBaseVO") public R getGroupRunning(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getGroupRunning(vo, ProductivityTypeEnum.RUNNING)); } @ApiOperationSupport(order = 12) @PostResource({"/nature-record"}) @ApiOperation(value = "当日设备状态记录", notes = "传入visualBaseVO") public R getNatureStatusRecord(@Validated @RequestBody VisualBaseVO visualBaseVO) { return R.data(this.visualStatusService.getNatureStatusRecord(visualBaseVO)); } @ApiOperationSupport(order = 13) @PostResource({"/today-distribution"}) @ApiOperation(value = "当日状态分布饼图", notes = "传入visualBaseVO") public R getStatusToDayDistribution(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getStatusToDayDistribution(vo)); } @ApiOperationSupport(order = 14) @PostResource({"/shift-distribution"}) @ApiOperation(value = "当前班次状态分布饼图", notes = "传入visualBaseVO") public R getStatusShiftDistribution(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getStatusShiftDistribution(vo)); } @ApiOperationSupport(order = 15) @PostResource({"/today-oee"}) @ApiOperation(value = "当日设备稼动率", notes = "传入visualBaseVO") public R getTodayOee(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getTodayStatusStatistics(vo, ProductivityTypeEnum.OEE)); } @ApiOperationSupport(order = 16) @PostResource({"/shift-status-record"}) @ApiOperation(value = "当前班次设备状态记录甘特图", notes = "传入visualBaseVO") public R getEquipmentStatusRecord(@Validated @RequestBody VisualBaseVO visualBaseVO) { return R.data(this.visualStatusService.getEquipmentStatusRecord(visualBaseVO)); } @ApiOperationSupport(order = 17) @PostResource({"/today-average-oee"}) @ApiOperation(value = "当日设备平均稼动率", notes = "传入visualBaseVO") public R getTodayAverageOee(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getTodayAverageStatusStatistics(vo, ProductivityTypeEnum.OEE)); } @ApiOperationSupport(order = 18) @PostResource({"/oee-month"}) @ApiOperation(value = "当月设备平均稼动率", notes = "传入visualBaseVO") public R getCurrMonthOee(@RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getCurrMonthOee(vo)); } @ApiOperationSupport(order = 19) @PostResource({"/running-month"}) @ApiOperation(value = "当月设备平均运行率", notes = "传入visualBaseVO") public R getCurrMonthRunning(@RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getCurrMonthRunning(vo)); } @ApiOperationSupport(order = 20) @PostResource({"/alarm-month"}) @ApiOperation(value = "月设备报警时长排名", notes = "传入visualBaseVO") public R getCurrMonthAlarm(@RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getCurrMonthAlarm(vo)); } @ApiOperationSupport(order = 21) @PostResource({"/alarm-week"}) @ApiOperation(value = "周设备报警时长排名", notes = "传入visualBaseVO") public R getCurrWeekAlarm(@RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getCurrWeekAlarm(vo)); } }