From df64c34d92cbe8501bbbfe837bc491a47452c0b6 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 09 六月 2025 10:58:19 +0800
Subject: [PATCH] feat(eims): 新增保养工单批量修改功能并优化相关领域对象

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java |   66 +++++++++++++++++++++++++++++++--
 1 files changed, 62 insertions(+), 4 deletions(-)

diff --git a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
index b01acb4..c85145d 100644
--- a/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
+++ b/eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsMaintOrderServiceImpl.java
@@ -20,17 +20,19 @@
 
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.eims.domain.EimsMaintPlan;
-import org.dromara.eims.domain.bo.EimsMaintPlanBo;
-import org.dromara.eims.domain.vo.EimsEquVo;
-import org.dromara.eims.domain.vo.MaintOrdeGroupVo;
+import org.dromara.eims.domain.EimsSpareInout;
+import org.dromara.eims.domain.bo.EimsSpareBo;
+import org.dromara.eims.domain.bo.EimsSpareInoutBo;
+import org.dromara.eims.domain.bo.MaintOrderBo;
+import org.dromara.eims.domain.vo.*;
 import org.dromara.eims.mapper.EimsEquMapper;
 import org.dromara.eims.mapper.EimsMaintPlanMapper;
+import org.dromara.eims.service.IEimsSpareInoutService;
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.vo.SysDeptVo;
 import org.dromara.system.mapper.SysDeptMapper;
 import org.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsMaintOrderBo;
-import org.dromara.eims.domain.vo.EimsMaintOrderVo;
 import org.dromara.eims.domain.EimsMaintOrder;
 import org.dromara.eims.mapper.EimsMaintOrderMapper;
 import org.dromara.eims.service.IEimsMaintOrderService;
@@ -52,6 +54,7 @@
     private final EimsMaintPlanMapper planMapper;
     private final SysDeptMapper sysDeptMapper;
     private final EimsEquMapper equMapper;
+    private final IEimsSpareInoutService spareInoutService;
 
     /**
      * 鏌ヨ淇濆吇宸ュ崟
@@ -293,6 +296,45 @@
     }
 
     /**
+     * 鎵归噺淇敼淇濆吇宸ュ崟
+     *
+     * @param bo 淇濆吇宸ュ崟
+     * @return 鏄惁淇敼鎴愬姛
+     */
+    @Override
+    public boolean updateBatchByBo(MaintOrderBo bo) {
+        LoginUser loginUser = LoginHelper.getLoginUser();
+        List<EimsMaintOrder> list = MapstructUtils.convert(bo.getMaintOrderList(),  EimsMaintOrder.class);
+        list.forEach(e -> {
+            e.setStatus(DictConstants.MAINT_ORDER_STATUS_DETAIL.DAIYANZHENG);
+            e.setEndTime(new Date());
+            e.setMaintUser(loginUser.getUserId());
+            e.setUpdateTime(new Date());
+        });
+        bo.getMaintOrderList().forEach(item -> {
+            // 鍒ゆ柇澶囦欢鍒楄〃鏄惁涓虹┖锛屼笉涓虹┖鍒欐柊澧炰竴涓浠跺嚭搴撳崟锛屽悓鏃跺鍔犲嚭搴撴槑缁�
+            if (item.getSpareParts() != null && item.getSpareParts().size() > 0) {
+                EimsSpareInoutBo spareInoutBo = new EimsSpareInoutBo();
+                // 鏍规嵁鏃ユ湡鐢熸垚鍗曞彿锛屾牸寮忎负CK+鏃ユ湡+娴佹按鍙�
+                spareInoutBo.setOrderCode("CK"+DateUtils.dateTimeNow("yyyyMMddHHmmss"));
+                spareInoutBo.setOrderTime(new Date());
+                spareInoutBo.setType(DictConstants.SPARE_INOUT_TYPE_DETAIL.CK);
+                spareInoutBo.setPartnerName(loginUser.getNickname());
+                spareInoutBo.setSpareList(item.getSpareParts());
+                spareInoutBo.setChargeUser(loginUser.getUserId());
+                spareInoutBo.setChargeDept(loginUser.getDeptId());
+                spareInoutBo.setAssociatedOrder(item.getMaintCode());
+                // 淇濆瓨杩涙暟鎹簱
+                Boolean b = spareInoutService.insertByBo(spareInoutBo);
+
+
+            }
+        });
+
+        return baseMapper.updateBatchById(list);
+    }
+
+    /**
      * 淇濆瓨鍓嶇殑鏁版嵁鏍¢獙
      */
     private void validEntityBeforeSave(EimsMaintOrder entity){
@@ -326,4 +368,20 @@
         }
         return String.join(StringUtils.SEPARATOR, list);
     }
+
+
+    @Override
+    public List<EimsSpareVo> querySpareParts(String code) {
+        // 鏌ヨ鍏宠仈鐨勫浠讹紝鍏崇郴濡備笅锛氬浠跺嚭鍏ュ簱鍗曠殑associatedOrder 鍏宠仈浼犲叆鐨刢ode,澶囦欢鍑哄叆搴撴槑缁嗛�氳繃鍑哄叆搴撳崟鐨刬d鍏宠仈锛屽浠跺悕绉伴�氳繃鍑哄叆搴撴槑缁嗕腑鐨剆pareId鍏宠仈
+
+        EimsSpareInoutBo bo = new EimsSpareInoutBo();
+        bo.setAssociatedOrder(code);
+        List<EimsSpareInoutVo> list = spareInoutService.queryList(bo);
+        if (!list.isEmpty()) {
+            // 鏌ヨ澶囦欢鏄庣粏鍜屽悕绉�
+            EimsSpareInoutVo eimsSpareInoutVo = spareInoutService.queryById(list.get(0).getId());
+            return eimsSpareInoutVo.getSpareList();
+        }
+        return List.of();
+    }
 }

--
Gitblit v1.9.3