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/service/impl/EimsRepairReqServiceImpl.java |   59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 49 insertions(+), 10 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
index 55d1561..7f109ea 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java
@@ -1,7 +1,12 @@
 package org.dromara.eims.service.impl;
 
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import org.dromara.common.core.constant.DictConstants;
+import org.dromara.common.core.service.RepairReqService;
 import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
@@ -11,7 +16,10 @@
 import lombok.RequiredArgsConstructor;
 import org.dromara.eims.domain.EimsEqu;
 import org.dromara.eims.domain.EimsFixtureBorrow;
+import org.dromara.eims.domain.EimsRepairRecord;
+import org.dromara.eims.domain.vo.EimsFixtureVo;
 import org.dromara.eims.domain.vo.EimsInventoryDetailVo;
+import org.dromara.eims.mapper.EimsRepairRecordMapper;
 import org.dromara.eims.utils.DataFilterUtil;
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.vo.SysDeptVo;
@@ -22,11 +30,9 @@
 import org.dromara.eims.domain.EimsRepairReq;
 import org.dromara.eims.mapper.EimsRepairReqMapper;
 import org.dromara.eims.service.IEimsRepairReqService;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
+import java.util.*;
 
 /**
  * 鏁呴殰鎶ヤ慨Service涓氬姟灞傚鐞�
@@ -36,9 +42,10 @@
  */
 @RequiredArgsConstructor
 @Service
-public class EimsRepairReqServiceImpl implements IEimsRepairReqService {
+public class EimsRepairReqServiceImpl implements IEimsRepairReqService, RepairReqService {
 
     private final EimsRepairReqMapper baseMapper;
+    private final EimsRepairRecordMapper recordMapper;
     private final SysDeptMapper sysDeptMapper;
 
     /**
@@ -68,7 +75,8 @@
 
     @Override
     public TableDataInfo<EimsRepairReqVo> queryPageListCustom(EimsRepairReqBo bo, PageQuery pageQuery) {
-        DataFilterUtil.getInstance().filterRepairReq(bo);
+         //TODO
+        //DataFilterUtil.getInstance().filterRepairReq(bo);
         Page<EimsRepairReqVo> page = baseMapper.selectRepairReqList(pageQuery.build(), buildWrapper(bo));
         return TableDataInfo.build(page);
     }
@@ -86,12 +94,18 @@
         qw.eq(bo.getRepairDept() != null, "a.repair_dept", bo.getRepairDept());
         qw.eq(bo.getRepairUser() != null, "a.repair_user", bo.getRepairUser());
         qw.eq(StringUtils.isNotBlank(bo.getFaultType()), "a,fault_type", bo.getFaultType());
-        qw.eq(params.containsKey("createBy"), "a.create_by", params.get("createBy"));
-        qw.eq(params.containsKey("status"), "a.status", params.get("status"));
+        qw.in(params.containsKey("createBy"), "a.create_by",  (List<Long>) params.get("createBy"));
+        Object status = params.get("status") == null ? "" : params.get("status");
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and( wq ->wq.like("b.equ_name", params.get("searchValue"))
+                .or().like("b.asset_no", params.get("searchValue"))
+            );
+        }
+        String[] split = status.toString().split(",");
+        qw.in(params.containsKey("status"), "a.status", split);
         qw.between(params.get("beginReqTime") != null && params.get("endReqTime") != null,
             "a.req_time", params.get("beginReqTime"), params.get("endReqTime"));
-
-
+        qw.ne(StringUtils.isNotBlank(bo.getStatusLt()), "a.status", bo.getStatusLt());
         qw.eq(bo.getCreateBy()!=null, "a.create_by", bo.getCreateBy());
         qw.eq(StringUtils.isNotEmpty(bo.getStatus()), "a.status", bo.getStatus());
         qw.orderByDesc("a.create_time");
@@ -160,6 +174,8 @@
         lqw.eq(bo.getRepairDept() != null, EimsRepairReq::getRepairDept, bo.getRepairDept());
         lqw.eq(bo.getRepairUser() != null, EimsRepairReq::getRepairUser, bo.getRepairUser());
         lqw.eq(StringUtils.isNotBlank(bo.getFaultType()), EimsRepairReq::getFaultType, bo.getFaultType());
+        // 鎸夊垱寤烘椂闂村�掑簭
+        lqw.orderByDesc(EimsRepairReq::getCreateTime);
         return lqw;
     }
 
@@ -169,6 +185,7 @@
      * @param bo 鏁呴殰鎶ヤ慨
      * @return 鏄惁鏂板鎴愬姛
      */
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public Boolean insertByBo(EimsRepairReqBo bo) {
         EimsRepairReq add = MapstructUtils.convert(bo, EimsRepairReq.class);
@@ -176,6 +193,16 @@
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
             bo.setId(add.getId());
+            //鏂板鎶ヤ慨鍗曟椂鐢熸垚缁翠慨璁板綍
+            EimsRepairRecord record = new EimsRepairRecord();
+            record.setReqId(add.getId());
+            record.setHandleTime(new Date());
+            //鏂板鐘舵��
+            record.setOpera(DictConstants.REPAIR_RECORD_HANDLE_DETAIL.XINZENG);
+            record.setOperaUser(add.getCreateBy());
+            record.setOperaResult("鐢熸垚鎶ヤ慨鍗�");
+            //鏂板鏃剁敓鎴愯褰�
+            recordMapper.insert(record);
         }
         return flag;
     }
@@ -216,4 +243,16 @@
     }
 
 
+    @Override
+    public String selectRepairReqCodeByIds(String reqIds) {
+        List<String> list = new ArrayList<>();
+        for (Long id : StringUtils.splitTo(reqIds, Convert::toLong)) {
+            EimsRepairReqVo vo = SpringUtils.getAopProxy(this).queryById(id);
+            if (ObjectUtil.isNotNull(vo)) {
+                list.add(vo.getCode());
+            }
+        }
+        return String.join(StringUtils.SEPARATOR, list);
+    }
+
 }

--
Gitblit v1.9.3