From bab490d2da009c1a23b352b3b964e0c2dd06a0b3 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期四, 12 六月 2025 17:32:42 +0800
Subject: [PATCH] 移动端功能优化

---
 eims/ruoyi-modules/lb-eims/src/main/java/org/dromara/eims/service/impl/EimsRepairResServiceImpl.java |   85 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 78 insertions(+), 7 deletions(-)

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 8afbba1..d37a7ba 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
@@ -7,6 +7,7 @@
 import org.dromara.common.core.constant.DictConstants;
 import org.dromara.common.core.domain.model.LoginUser;
 import org.dromara.common.core.service.RepairResService;
+import org.dromara.common.core.utils.DateUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.SpringUtils;
 import org.dromara.common.core.utils.StringUtils;
@@ -18,9 +19,10 @@
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.eims.domain.*;
-import org.dromara.eims.domain.vo.EimsRepairReqVo;
-import org.dromara.eims.mapper.EimsRepairRecordMapper;
-import org.dromara.eims.mapper.EimsRepairReqMapper;
+import org.dromara.eims.domain.bo.EimsSpareInoutBo;
+import org.dromara.eims.domain.vo.*;
+import org.dromara.eims.mapper.*;
+import org.dromara.eims.service.IEimsSpareInoutService;
 import org.dromara.eims.utils.DataFilterUtil;
 import org.dromara.system.domain.SysDept;
 import org.dromara.system.domain.vo.SysDeptVo;
@@ -28,8 +30,6 @@
 import org.redisson.misc.LogHelper;
 import org.springframework.stereotype.Service;
 import org.dromara.eims.domain.bo.EimsRepairResBo;
-import org.dromara.eims.domain.vo.EimsRepairResVo;
-import org.dromara.eims.mapper.EimsRepairResMapper;
 import org.dromara.eims.service.IEimsRepairResService;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -49,6 +49,9 @@
     private final EimsRepairReqMapper reqMapper;
     private final SysDeptMapper deptMapper;
     private final EimsRepairRecordMapper recordMapper;
+    private final EimsEquMapper equMapper;
+    private final EimsFixtureMapper fixtureMapper;
+    private final IEimsSpareInoutService spareInoutService;
 
     /**
      * 鏌ヨ缁翠慨宸ュ崟
@@ -58,7 +61,49 @@
      */
     @Override
     public EimsRepairResVo queryById(Long id) {
-        return baseMapper.selectVoById(id);
+        EimsRepairResVo resVo = baseMapper.selectVoById(id);
+        Long reqId = resVo.getReqId();
+        if(reqId!=null){
+            EimsRepairReqVo reqVo = reqMapper.selectVoById(reqId);
+            resVo.setReqType(reqVo.getReqType());
+            resVo.setReqCode(reqVo.getCode());
+            resVo.setReqDesc(reqVo.getReqDesc());
+
+            if(reqVo.getEquId()!=null){
+                EimsEquVo equVo = equMapper.selectVoById(reqVo.getEquId());
+                if(equVo!=null){
+                    resVo.setAssetNo(equVo.getAssetNo());
+                    resVo.setEquName(equVo.getEquName());
+                }
+
+            }
+            if(reqVo.getFixtureId()!=null){
+                EimsFixtureVo fixtureVo = fixtureMapper.selectVoById(reqVo.getFixtureId());
+                if(fixtureVo!=null){
+                    resVo.setFixtureName(fixtureVo.getFixtureName());
+                    resVo.setAssetNo(fixtureVo.getAssetNo());
+                }
+            }
+
+            resVo.setSpareParts(querySpareParts(resVo.getResCode()));
+
+        }
+        return resVo;
+    }
+
+
+    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();
     }
 
     /**
@@ -111,7 +156,7 @@
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public Boolean insertByBo(EimsRepairResBo bo) {
+    public synchronized Boolean insertByBo(EimsRepairResBo bo) {
         EimsRepairRes add = MapstructUtils.convert(bo, EimsRepairRes.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
@@ -234,6 +279,23 @@
             recordMapper.insert(record);
         }
         validEntityBeforeSave(update);
+        // 鍒ゆ柇澶囦欢鍒楄〃鏄惁涓虹┖锛屼笉涓虹┖鍒欐柊澧炰竴涓浠跺嚭搴撳崟锛屽悓鏃跺鍔犲嚭搴撴槑缁�
+        if (bo.getSpareParts() != null && bo.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(bo.getSpareParts());
+            spareInoutBo.setChargeUser(loginUser.getUserId());
+            spareInoutBo.setChargeDept(loginUser.getDeptId());
+            spareInoutBo.setAssociatedOrder(bo.getResCode());
+            // 淇濆瓨杩涙暟鎹簱
+            Boolean b = spareInoutService.insertByBo(spareInoutBo);
+
+
+        }
         return baseMapper.updateById(update) > 0;
     }
 
@@ -272,7 +334,13 @@
         qw.like(StringUtils.isNotBlank(bo.getResCode()), "res.res_code", bo.getResCode());
         qw.like(StringUtils.isNotBlank(bo.getReqCode()), "req.code", bo.getReqCode());
         qw.eq(bo.getResUser() != null, "res.res_user", bo.getResUser());
+        qw.eq(bo.getReqType() != null, "req.req_type", bo.getReqType());
         qw.eq(bo.getReqUser() != null, "res.req_user", bo.getReqUser());
+        qw.eq(bo.getAssetNo() != null, "equ.asset_no", bo.getAssetNo());
+        qw.eq(bo.getEquId() != null, "req.equ_id", bo.getEquId());
+
+        qw.between(params.get("beginReqTime") != null && params.get("endReqTime") != null,
+            "req.req_time", params.get("beginReqTime"), params.get("endReqTime"));
 
         List<Long> resDeptIds = getAllDescendantIds(bo.getResDept());
         qw.in(bo.getResDept() != null, "res.res_dept", resDeptIds);
@@ -282,6 +350,9 @@
 
 
         qw.eq(StringUtils.isNotBlank(bo.getStatus()), "res.status", bo.getStatus());
+        String s = params.get("status") == null ? "" : params.get("status").toString();
+        String[] status = s.split(",");
+        qw.in(params.get("status") != null, "res.status", status);
         qw.orderByDesc("res.create_time");
         return qw;
     }

--
Gitblit v1.9.3