From 2f0009c750de4d47a18cce4a5a403fa83ba0c209 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期三, 02 七月 2025 08:58:27 +0800
Subject: [PATCH] feat(report): 新增设备稼动率统计功能

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 54 insertions(+), 1 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java
index 5610c22..fe4f775 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsMaintOrderController.java
@@ -1,11 +1,21 @@
 package org.dromara.eims.controller;
 
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.time.temporal.TemporalAdjusters;
 import java.util.List;
+import java.util.Map;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.core.constant.DictConstants;
+import org.dromara.common.core.utils.DateUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.eims.domain.bo.MaintOrderBo;
+import org.dromara.eims.domain.vo.MaintOrdeGroupVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -46,6 +56,41 @@
         return eimsMaintOrderService.queryPageListCustom(bo, pageQuery);
     }
 
+
+    @SaCheckPermission("eims:maintOrder:list")
+    @GetMapping("/groupList")
+    public TableDataInfo<MaintOrdeGroupVo> group(EimsMaintOrderBo bo, PageQuery pageQuery) {
+        return eimsMaintOrderService.queryPageGroupList(bo, pageQuery);
+    }
+
+    @SaCheckPermission("eims:maintOrder:list")
+    @GetMapping("/detailList")
+    public TableDataInfo<EimsMaintOrderVo> groupDetail(EimsMaintOrderBo bo, PageQuery pageQuery) {
+        // 杩欓噷浣跨敤mintCode浼犻�掍簡 equid + plantime
+        String maintCode = bo.getMaintCode();
+        if (StringUtils.isEmpty(maintCode) || !maintCode.contains("_")) {
+            return TableDataInfo.build(new Page<>(0,0));
+        }
+        String[] split = maintCode.split("_");
+        bo.setEquId(Long.valueOf(split[0]));
+        bo.setMaintCode(null);
+        LocalDate planTime = DateUtils.parseDate(split[1]).toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
+        LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
+        Map<String, Object> params = bo.getParams();
+        params.put("beginPlanTime",startOfMonth);
+        params.put("endPlanTime",endOfMonth);
+
+        TableDataInfo<EimsMaintOrderVo> tableDataInfo = eimsMaintOrderService.queryPageListCustom(bo, pageQuery);
+        tableDataInfo.getRows().forEach(e -> {
+            // 濡傛灉淇濆吇鏂规硶鏄淮淇紝鏌ヨ鍏宠仈鐨勫浠�
+            if (DictConstants.MAINT_METHOD_DETAIL.REPAIR.equals(e.getMaintFun())) {
+                e.setSpareParts(eimsMaintOrderService.querySpareParts(e.getMaintCode()));
+            }
+        });
+        return tableDataInfo;
+    }
+
     /**
      * 瀵煎嚭淇濆吇宸ュ崟鍒楄〃
      */
@@ -65,7 +110,7 @@
     @SaCheckPermission("eims:maintOrder:query")
     @GetMapping("/{id}")
     public R<EimsMaintOrderVo> getInfo(@NotNull(message = "涓婚敭涓嶈兘涓虹┖")
-                                     @PathVariable Long id) {
+                                       @PathVariable Long id) {
         return R.ok(eimsMaintOrderService.queryById(id));
     }
 
@@ -91,6 +136,14 @@
         return toAjax(eimsMaintOrderService.updateByBo(bo));
     }
 
+    @SaCheckPermission("eims:maintOrder:edit")
+    @Log(title = "淇濆吇宸ュ崟-鎵归噺淇敼", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PutMapping("editBatch")
+    public R<Void> editBatch(@Validated(EditGroup.class) @RequestBody MaintOrderBo bo) {
+        return toAjax(eimsMaintOrderService.updateBatchByBo(bo));
+    }
+
     /**
      * 鍒犻櫎淇濆吇宸ュ崟
      *

--
Gitblit v1.9.3