xiaoyi
22 小时以前 8782476e9cb4480be5da588888d08022b7942d0c
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/dv/statistics/MesDvStatisticsController.java
@@ -2,6 +2,7 @@
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.iocoder.yudao.module.mes.controller.admin.collect.vo.MesCollectDowntimeDetailRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.dv.statistics.vo.MesDvOeeRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.dv.statistics.vo.MesDvStatisticsRespVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.dv.machinery.MesDvMachineryDO;
@@ -14,6 +15,7 @@
import cn.iocoder.yudao.module.mes.dal.mysql.dv.maintenrecord.MesDvMaintenRecordMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.dv.repair.MesDvRepairMapper;
import cn.iocoder.yudao.module.mes.dal.mysql.pro.task.MesProTaskMapper;
import cn.iocoder.yudao.module.mes.service.collect.MesCollectQueryService;
import cn.iocoder.yudao.module.mes.enums.dv.MesDvMachineryStatusEnum;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -53,6 +55,8 @@
    private MesDvMaintenRecordMapper maintenRecordMapper;
    @Resource
    private MesProTaskMapper taskMapper;
    @Resource
    private MesCollectQueryService collectQueryService;
    @GetMapping("/summary")
    @Operation(summary = "设备统计汇总(台账/维修/保养/类型分布)")
@@ -112,6 +116,19 @@
        return success(vo);
    }
    @GetMapping("/downtime")
    @Operation(summary = "设备停机明细报表",
            description = "按采集间隔推算停机区间与合计;通信中断同样计入停机,但不标记为机械故障")
    public CommonResult<MesCollectDowntimeDetailRespVO> getDowntimeDetail(
            @RequestParam(value = "startTime", required = false)
            @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime,
            @RequestParam(value = "endTime", required = false)
            @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime) {
        LocalDateTime start = startTime != null ? startTime : LocalDateTime.now().minusDays(7);
        LocalDateTime end = endTime != null ? endTime : LocalDateTime.now();
        return success(collectQueryService.getDowntimeDetail(start, end));
    }
    @GetMapping("/oee")
    @Operation(summary = "设备 OEE 统计(稼动率×性能开动率×良品率)")
    public CommonResult<MesDvOeeRespVO> getOee(