From d9a63819279a0b17070d4af08d24f567ba8904e4 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期日, 28 九月 2025 22:40:53 +0800
Subject: [PATCH] 资产处置

---
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java |   47 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 42 insertions(+), 5 deletions(-)

diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java
index 8fcf871..36986e6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationAssetServiceImpl.java
@@ -131,9 +131,9 @@
     }
 
     private OaApprovalApplicationAsset buildOaApprovalApplicationAsset(OaApprovalApplicationAssetReceiveDTO dto, Integer applicationId) {
-        OaApprovalApplicationAsset asset = new OaApprovalApplicationAsset();
+        OaApprovalApplicationAsset asset = BeanUtil.copyProperties(dto, OaApprovalApplicationAsset.class);
         asset.setApprovalApplicationId(applicationId);
-        asset.setType(AssetOperateTypeEnum.RECEIVE.getCode());
+        asset.setType(dto.getType());
         return asset;
     }
 
@@ -170,7 +170,7 @@
         if (detail == null) {
             throw new ServiceException("记录不存在");
         }
-
+        oaApprovalApplicationsService.assembleApplicationDetail(app);
         List<Integer> assetMainIds = oaApprovalApplicationAssetItemService.lambdaQuery()
                 .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId())
                 .list().stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
@@ -202,7 +202,7 @@
         if (detail == null) {
             throw new ServiceException("记录不存在");
         }
-
+        oaApprovalApplicationsService.assembleApplicationDetail(app);
         List<Integer> assetMainIds = oaApprovalApplicationAssetItemService.lambdaQuery()
                 .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId())
                 .list().stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
@@ -227,6 +227,7 @@
         vo.setTitle(detail.getTitle());
         vo.setAssetTypeId(detail.getAssetTypeId());
         vo.setOperateTime(detail.getOperateTime());
+        vo.setExpectReturnDate(detail.getExpectReturnDate());
         vo.setItems(assetMainVOS);
         return vo;
     }
@@ -277,8 +278,12 @@
         // 4. 保存归还明细
         OaApprovalApplicationAsset detail = BeanUtil.copyProperties(dto, OaApprovalApplicationAsset.class);
         detail.setApprovalApplicationId(applications.getId());
+        detail.setBorrowApplicationId(dto.getApprovalApplicationId());
         detail.setType(AssetOperateTypeEnum.RETURN.getCode());
-
+        OaApprovalApplicationAsset asset = lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, dto.getApprovalApplicationId()).one();
+        if (Objects.nonNull(asset)) {
+            detail.setAssetTypeId(asset.getAssetTypeId());
+        }
         this.save(detail);
 
         // 5. 保存关联的资产项
@@ -311,4 +316,36 @@
         });
         return pageByType;
     }
+
+    @Override
+    public OaApprovalApplicationAssetDetailVO getReturnDetail(Integer id) {
+        OaApprovalApplications app = oaApprovalApplicationsService.getById(id);
+        if (app == null) {
+            throw new ServiceException("审批主记录不存在");
+        }
+        OaApprovalApplicationAsset detail = this.lambdaQuery().eq(OaApprovalApplicationAsset::getApprovalApplicationId, app.getId()).one();
+        if (detail == null) {
+            throw new ServiceException("记录不存在");
+        }
+        oaApprovalApplicationsService.assembleApplicationDetail(app);
+        List<Integer> assetMainIds = oaApprovalApplicationAssetItemService.lambdaQuery()
+                .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, app.getId())
+                .list().stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+                .distinct().collect(Collectors.toList());
+
+        List<AssetMainVO> assetMainVOS = assetMainIds.isEmpty() ? Collections.emptyList() : assetMainService.getListByIds(assetMainIds);
+        OaApprovalApplicationAssetDetailVO vo = BeanUtil.copyProperties(app, OaApprovalApplicationAssetDetailVO.class);
+        vo.setTitle(detail.getTitle());
+        vo.setAssetTypeId(detail.getAssetTypeId());
+        vo.setOperateTime(detail.getOperateTime());
+        vo.setItems(assetMainVOS);
+        return vo;
+    }
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void deleteByApplicationId(Integer applicationId) {
+        this.lambdaUpdate().eq(OaApprovalApplicationAsset::getApprovalApplicationId, applicationId).remove();
+        oaApprovalApplicationAssetItemService.lambdaUpdate().eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationId).remove();
+        oaApprovalApplicationsService.removeById(applicationId);
+    }
 }

--
Gitblit v1.7.1