From 245cfffbbc8d96333eccf40885e6fdeeb0ed636e Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 20 六月 2025 14:18:54 +0800
Subject: [PATCH] feat(eims): 添加未完成维修工单数量查询功能,优化搜索设备、保养、点检、维修查询,增加关键字模糊查询

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsRepairResMapper.java                |    3 +
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java |   11 ++++-
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java     |   17 +++++++-
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java     |   22 +++++++----
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java       |    6 +++
 eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsRepairResMapper.xml                        |    8 ++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsRepairResService.java             |    4 +-
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java           |   10 ++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsRepairResController.java        |   11 +++++
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairReqServiceImpl.java     |    6 ++
 10 files changed, 81 insertions(+), 17 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsRepairResController.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsRepairResController.java
index ff1be67..0719df3 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsRepairResController.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/controller/EimsRepairResController.java
@@ -46,6 +46,17 @@
         return eimsRepairResService.queryPageListCustom(bo, pageQuery);
     }
 
+
+    /**
+     * 鏌ヨ鏈畬鎴愮殑缁翠慨宸ュ崟鏁伴噺
+     *
+     */
+    @SaCheckPermission("eims:repairRes:list")
+    @GetMapping("/list/unfinished")
+    public R<Integer> listUnfinished(String status) {
+        Integer num = eimsRepairResService.listUnfinished(status);
+        return R.ok("鎿嶄綔鎴愬姛", num);
+    }
     /**
      * 瀵煎嚭缁翠慨宸ュ崟鍒楄〃
      */
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsRepairResMapper.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsRepairResMapper.java
index 96f6469..bd597bb 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsRepairResMapper.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/mapper/EimsRepairResMapper.java
@@ -8,6 +8,8 @@
 import org.dromara.eims.domain.EimsRepairRes;
 import org.dromara.eims.domain.vo.EimsRepairResVo;
 
+import java.util.List;
+
 /**
  * 缁翠慨宸ュ崟Mapper鎺ュ彛
  *
@@ -17,4 +19,5 @@
 public interface EimsRepairResMapper extends BaseMapperPlus<EimsRepairRes, EimsRepairResVo> {
     Page<EimsRepairResVo> selectRepairResList(@Param("page") Page<EimsRepairResVo> page, @Param(Constants.WRAPPER) Wrapper<EimsRepairRes> queryWrapper);
 
+    Integer listUnfinished(List<String> list);
 }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsRepairResService.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsRepairResService.java
index 3f0da6e..06bffaa 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsRepairResService.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/IEimsRepairResService.java
@@ -1,7 +1,5 @@
 package org.dromara.eims.service;
 
-import org.dromara.eims.domain.bo.EimsRepairReqBo;
-import org.dromara.eims.domain.vo.EimsRepairReqVo;
 import org.dromara.eims.domain.vo.EimsRepairResVo;
 import org.dromara.eims.domain.bo.EimsRepairResBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -77,6 +75,8 @@
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
 
+    Integer listUnfinished(String status);
+
     /**
      * 鍒嗛〉鏌ヨ缁翠慨宸ュ崟鍒楄〃-澶氳〃鏌ヨ
      *
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java
index c7cf26e..1e7eb28 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsEquServiceImpl.java
@@ -53,7 +53,7 @@
     @Override
     public EimsEquVo queryByAssetNo(String assetNo) {
         LambdaQueryWrapper<EimsEqu> lqw = new LambdaQueryWrapper<>();
-        lqw.eq(EimsEqu::getAssetNo, assetNo);
+        lqw.eq(EimsEqu::getAssetNo, assetNo.trim());
         EimsEquVo eimsEquVo = baseMapper.selectVoOne(lqw);
         return eimsEquVo;
     }
@@ -97,6 +97,14 @@
             List<Long> allDescendantIds = getAllDescendantIds(equTypeId);
             lqw.in(EimsEqu::getEquTypeId, allDescendantIds);
         }
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            // 濡傛灉鎼滅储鍊间笉涓虹┖锛屽垯鎸夎澶囧悕绉般�佽祫浜х紪鍙疯繘琛屾ā绯婃煡璇�
+            lqw.and(wrapper -> {
+                wrapper.like(EimsEqu::getEquName, params.get("searchValue"))
+                    .or()
+                    .like(EimsEqu::getAssetNo, params.get("searchValue"));
+            });
+        }
 
         lqw.like(StringUtils.isNotBlank(bo.getEquName()), EimsEqu::getEquName, bo.getEquName());
         lqw.eq(StringUtils.isNotBlank(bo.getModelNo()), EimsEqu::getModelNo, bo.getModelNo());
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
index 07503f7..a9b17a7 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectRecordServiceImpl.java
@@ -116,6 +116,11 @@
         qw.like(StringUtils.isNotBlank(bo.getInspName()),"ir.insp_name", bo.getInspName());
         qw.like(bo.getEquName() != null, "equ.equ_name", bo.getEquName());
         qw.like(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo());
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and(wq -> wq.like("equ.equ_name", params.get("searchValue"))
+                .or().like("equ.asset_no", params.get("searchValue"))
+            );
+        }
         qw.like(bo.getEquId() != null, "equ.equ_id", bo.getEquId());
         qw.eq(StringUtils.isNotBlank(bo.getInspType()), "ir.insp_type", bo.getInspType());
         qw.eq(bo.getInspUser() != null, "ir.insp_user", bo.getInspUser());
@@ -244,13 +249,13 @@
 
     @Override
     public Boolean updateBatchByBo(InspectRecordBo bo) {
-        LoginUser loginUser = LoginHelper.getLoginUser();
+//        LoginUser loginUser = LoginHelper.getLoginUser();
         List<EimsInspectRecord> inspRecordList = MapstructUtils.convert(bo.getInspRecordList(), EimsInspectRecord.class);
         inspRecordList.forEach(item->{
             // 鏇存柊涓哄凡鐐规
             item.setStatus(DictConstants.EIMS_INSPECT_STATUS_DETAIL.Y);
-            item.setInspTime(new Date());
-            item.setInspUser(loginUser.getUserId());
+//            item.setInspTime(new Date());
+//            item.setInspUser(loginUser.getUserId());
         });
         return baseMapper.updateBatchById(inspRecordList);
     }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
index 4578011..00410e6 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsInspectStServiceImpl.java
@@ -253,6 +253,12 @@
         qw.eq( "st.type", bo.getType());
         qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
             "st.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and(wq -> wq.like("st.title", params.get("searchValue"))
+                .or().like("equ.equ_name", params.get("searchValue"))
+                .or().like("equ.asset_no", params.get("searchValue"))
+            );
+        }
         qw.eq(bo.getInspUser() != null, "st.maint_user", bo.getInspUser());
         qw.eq(bo.getVerifyUser() != null, "st.verify_user", bo.getVerifyUser());
         qw.eq(bo.getStatus() != null, "st.status", bo.getStatus());
@@ -288,14 +294,14 @@
     public Boolean updateByBo(EimsInspectStBo bo) {
         EimsInspectSt update = MapstructUtils.convert(bo, EimsInspectSt.class);
 
-        if(bo.getVerifyUser()!=null){
-            EimsInspectSt st = baseMapper.selectById(bo.getId());
-            String status = st.getStatus();
-            if(status==null  || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){
-                if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y);
-                if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
-            }
-        }
+//        if(bo.getVerifyUser()!=null){
+//            EimsInspectSt st = baseMapper.selectById(bo.getId());
+//            String status = st.getStatus();
+//            if(status==null  || status.equals(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.N)){
+//                if(update.getVerifyTime()==null) update.setStatus(DictConstants.MAINT_ORDER_ST_STATUS_DETAIL.Y);
+//                if(update.getVerifyTime()==null) update.setVerifyTime(new Date());
+//            }
+//        }
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
index 2d78c60..3ba819c 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintStServiceImpl.java
@@ -166,6 +166,12 @@
         qw.like(StringUtils.isNotBlank(bo.getAssetNo()), "equ.asset_no", bo.getAssetNo());
         qw.between(params.get("beginPlanTime") != null && params.get("endPlanTime") != null,
             "st.plan_time", params.get("beginPlanTime"), params.get("endPlanTime"));
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and( wq ->wq.like("st.title", params.get("searchValue"))
+                .or().like("equ.equ_name", params.get("searchValue"))
+                .or().like("equ.asset_no", params.get("searchValue"))
+            );
+        }
         qw.eq(bo.getMaintUser() != null, "st.maint_user", bo.getMaintUser());
         qw.eq(bo.getVerifyUser() != null, "st.verify_user", bo.getVerifyUser());
         qw.eq(bo.getStatus() != null, "st.status", bo.getStatus());
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 7f17f4c..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
@@ -96,7 +96,11 @@
         qw.eq(StringUtils.isNotBlank(bo.getFaultType()), "a,fault_type", bo.getFaultType());
         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,
diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
index d37a7ba..2c1ec00 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java
@@ -27,7 +27,6 @@
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.vo.SysDeptVo;
 import org.dromara.system.mapper.SysDeptMapper;
-import org.redisson.misc.LogHelper;
 import org.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsRepairResBo;
 import org.dromara.eims.service.IEimsRepairResService;
@@ -328,6 +327,16 @@
         return TableDataInfo.build(page);
     }
 
+    @Override
+    public Integer listUnfinished(String status) {
+        // 鏍规嵁宸ュ崟鐘舵�佹煡璇㈡�绘暟
+        if (!status.isEmpty()) {
+            List<String> statusList = Arrays.asList(status.split(","));
+            return baseMapper.listUnfinished(statusList);
+        }
+        return 0;
+    }
+
     private QueryWrapper<EimsRepairRes> buildWrapper(EimsRepairResBo bo) {
         Map<String, Object> params = bo.getParams();
         QueryWrapper<EimsRepairRes> qw = Wrappers.query();
@@ -347,7 +356,11 @@
 
         List<Long> reqDeptIds = getAllDescendantIds(bo.getReqDept());
         qw.in(bo.getReqDept() != null, "res.req_dept", reqDeptIds);
-
+        if (params.get("searchValue") != null && StringUtils.isNotBlank(params.get("searchValue").toString())) {
+            qw.and( wq ->wq.like("equ.equ_name", params.get("searchValue"))
+                .or().like("equ.asset_no", params.get("searchValue"))
+            );
+        }
 
         qw.eq(StringUtils.isNotBlank(bo.getStatus()), "res.status", bo.getStatus());
         String s = params.get("status") == null ? "" : params.get("status").toString();
diff --git a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsRepairResMapper.xml b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsRepairResMapper.xml
index 80e8d78..859e9b8 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsRepairResMapper.xml
+++ b/eims/ruoyi-modules/lb-eims/src/main/resources/mapper/eims/EimsRepairResMapper.xml
@@ -17,5 +17,13 @@
                  LEFT JOIN sys_user usr ON req.req_user = usr.user_id
             ${ew.getCustomSqlSegment}
     </select>
+    <select id="listUnfinished" resultType="java.lang.Integer">
+        SELECT COUNT(1)
+        FROM eims_repair_res
+        WHERE status in
+        <foreach item="item" collection="list" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </select>
 
 </mapper>

--
Gitblit v1.9.3