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/service/impl/EimsMaintStServiceImpl.java |   38 +++++++++++++++++++++++++++++++++++++-
 1 files changed, 37 insertions(+), 1 deletions(-)

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 78f55ad..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
@@ -57,7 +57,37 @@
      */
     @Override
     public EimsMaintStVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
+        EimsMaintStVo stVo = baseMapper.selectVoById(id);
+        if(stVo!=null){
+            fillStDataSingle(stVo);
+        }
+        return stVo;
+    }
+    private void fillStDataSingle(EimsMaintStVo stVo) {
+
+            //1.濉厖璁惧
+            EimsEqu eimsEqu = equMapper.selectById(stVo.getEquId());
+            stVo.setAssetNo(eimsEqu.getAssetNo());
+            //2.缁熻鏁版嵁
+            LambdaQueryWrapper<EimsMaintOrder> orderLqw = Wrappers.lambdaQuery();
+            orderLqw.eq(EimsMaintOrder::getEquId, stVo.getEquId());
+            LocalDate planTime = stVo.getPlanTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+            LocalDate startOfMonth = planTime.with(TemporalAdjusters.firstDayOfMonth());
+            LocalDate endOfMonth = planTime.with(TemporalAdjusters.lastDayOfMonth());
+            orderLqw.between(EimsMaintOrder::getPlanTime, startOfMonth, endOfMonth);
+            // 鎵ц鏌ヨ
+            List<EimsMaintOrderVo> orderList = orderMapper.selectVoList(orderLqw);
+            // TODO 鏍规嵁瀛楀吀maint_order_status
+            Map<String, Long> cMap = orderList.stream()
+                .filter(order -> List.of("0", "1", "2", "3").contains(order.getStatus()))
+                .collect(Collectors.groupingBy(EimsMaintOrderVo::getStatus, Collectors.counting()));
+            stVo.setOrderCount(orderList.size());
+            stVo.setDbyCount(cMap.getOrDefault("0", 0L).intValue());
+            stVo.setByCount(cMap.getOrDefault("1", 0L).intValue());
+            stVo.setDyzCount(cMap.getOrDefault("2", 0L).intValue());
+            stVo.setWcCount(cMap.getOrDefault("3", 0L).intValue());
+
+
     }
 
     /**
@@ -136,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());

--
Gitblit v1.9.3