From 2b82b1e1d31671b8581d2e463ad762bdf63dad30 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 17 十月 2025 16:43:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java |  198 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 120 insertions(+), 78 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
index cd68061..6f23f78 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
@@ -11,47 +11,10 @@
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.dto.AuditDTO;
 import com.ruoyi.system.emums.ApprovalTypeEnum;
-import com.ruoyi.system.model.AssetMain;
-import com.ruoyi.system.model.AssetType;
-import com.ruoyi.system.model.OaApproval;
-import com.ruoyi.system.model.OaApprovalApplicationAdvertisement;
-import com.ruoyi.system.model.OaApprovalApplicationAsset;
-import com.ruoyi.system.model.OaApprovalApplicationAssetItem;
-import com.ruoyi.system.model.OaApprovalApplicationAttendance;
-import com.ruoyi.system.model.OaApprovalApplicationChange;
-import com.ruoyi.system.model.OaApprovalApplicationContract;
-import com.ruoyi.system.model.OaApprovalApplicationDispose;
-import com.ruoyi.system.model.OaApprovalApplicationMoney;
-import com.ruoyi.system.model.OaApprovalApplicationPayment;
-import com.ruoyi.system.model.OaApprovalApplicationPurchase;
-import com.ruoyi.system.model.OaApprovalApplicationReimbursement;
-import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem;
-import com.ruoyi.system.model.OaApprovalApplicationStorage;
-import com.ruoyi.system.model.OaApprovalApplications;
-import com.ruoyi.system.model.OaApprovalFlowAudit;
-import com.ruoyi.system.model.OaApprovalFlowNode;
-import com.ruoyi.system.model.OaApprovalTodo;
-import com.ruoyi.system.query.ApprovalDetailQuery;
+import com.ruoyi.system.model.*;
 import com.ruoyi.system.query.ApprovalTodoListQuery;
-import com.ruoyi.system.service.AssetMainService;
-import com.ruoyi.system.service.AssetTypeService;
-import com.ruoyi.system.service.ISysUserService;
-import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService;
-import com.ruoyi.system.service.OaApprovalApplicationAssetItemService;
-import com.ruoyi.system.service.OaApprovalApplicationAssetService;
-import com.ruoyi.system.service.OaApprovalApplicationAttendanceService;
-import com.ruoyi.system.service.OaApprovalApplicationChangeService;
-import com.ruoyi.system.service.OaApprovalApplicationContactService;
-import com.ruoyi.system.service.OaApprovalApplicationContractService;
-import com.ruoyi.system.service.OaApprovalApplicationDisposeService;
-import com.ruoyi.system.service.OaApprovalApplicationMoneyService;
-import com.ruoyi.system.service.OaApprovalApplicationPaymentService;
-import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService;
-import com.ruoyi.system.service.OaApprovalApplicationPurchaseService;
-import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService;
-import com.ruoyi.system.service.OaApprovalApplicationReimbursementService;
-import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService;
-import com.ruoyi.system.service.OaApprovalApplicationStorageService;
+import com.ruoyi.system.service.*;
+
 import com.ruoyi.system.service.OaApprovalApplicationsService;
 import com.ruoyi.system.service.OaApprovalFlowAuditService;
 import com.ruoyi.system.service.OaApprovalFlowNodeService;
@@ -59,35 +22,12 @@
 import com.ruoyi.system.service.OaApprovalService;
 import com.ruoyi.system.service.OaApprovalTodoService;
 import com.ruoyi.system.service.TDeptService;
-import com.ruoyi.system.vo.AdvertisementDetailVO;
-import com.ruoyi.system.vo.ApprovalFlowNodeListVO;
 import com.ruoyi.system.vo.ApprovalTodoVO;
-import com.ruoyi.system.vo.BackDetailVO;
-import com.ruoyi.system.vo.BorrowDetailVO;
-import com.ruoyi.system.vo.BusinessTripDetailVO;
-import com.ruoyi.system.vo.ChangeDetailVO;
-import com.ruoyi.system.vo.ContactDetailVO;
-import com.ruoyi.system.vo.ContractDetailVO;
-import com.ruoyi.system.vo.DisposeDetailVO;
-import com.ruoyi.system.vo.GrabDetailVO;
-import com.ruoyi.system.vo.GrabListVO;
-import com.ruoyi.system.vo.LeaveDestroyDetailVO;
-import com.ruoyi.system.vo.LeaveDetailVO;
-import com.ruoyi.system.vo.MoneyDetailVO;
-import com.ruoyi.system.vo.OutDetailVO;
-import com.ruoyi.system.vo.PaymentDetailVO;
-import com.ruoyi.system.vo.PurchaseDetailVO;
-import com.ruoyi.system.vo.PurchaseListVO;
-import com.ruoyi.system.vo.ReimbursementDetailVO;
-import com.ruoyi.system.vo.StorageDetailVO;
-import com.ruoyi.system.vo.StorageListVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -133,7 +73,7 @@
     @Resource
     private OaApprovalApplicationsService approvalApplicationsService;
     @Resource
-    private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService;
+    private OaApprovalApplicationAdService approvalApplicationAdvertisementService;
     @Resource
     private OaApprovalApplicationContactService approvalApplicationContactService;
     @Resource
@@ -144,6 +84,9 @@
     private OaApprovalApplicationMoneyService approvalApplicationMoneyService;
     @Resource
     private AssetMainService assetMainService;
+    @Resource
+
+    private AssetInventoryRecordService assetInventoryRecordService;
     @Resource
     private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService;
     @Resource
@@ -215,9 +158,9 @@
         Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery()
                 .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId));
-        Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery()
-                .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list()
-                .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery()
+                .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e));
         Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
                 .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
@@ -229,6 +172,9 @@
         List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
+            approvalTodoVO.setReason(approvalApplication.getReason());
+            approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus());
+            approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason());
             approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
             switch (approvalTodoVO.getApprovalCategory()){
                 case 1:
@@ -260,17 +206,25 @@
                 case 5:
                     OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationPurchase!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle());
+
                         approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount());
                     }
                     break;
                 case 6:
                     OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationStorage!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle());
+
                         approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType());
                     }
                     break;
                 case 7:
                     StringBuilder temp = new StringBuilder();
+                    OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAsset!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle());
+                    }
                     List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetItems!=null){
                         for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) {
@@ -290,24 +244,32 @@
                 case 8:
                     OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetOut!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle());
+
                         approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime());
                     }
                     break;
                 case 9:
                     OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetBack!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
+
                         approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
                     }
                     break;
                 case 10:
                     OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationDispose!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle());
+
                         approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType());
                     }
                     break;
                 case 11:
                     OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationChange!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle());
+
                         Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId();
                         TDept tDept = deptMap.get(ownershipDeptId);
                         if (tDept!=null){
@@ -318,12 +280,14 @@
                 case 12:
                     OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationReimbursement!=null){
+                        approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType());
                         approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount());
                     }
                     break;
                 case 13:
                     OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationMoney!=null){
+                        approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName());
                         approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount());
                         approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription());
 
@@ -332,16 +296,19 @@
                 case 15:
                     OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationPayment!=null){
+                        // todo 当前阶段没有项目id 后续完善
+                        approvalTodoVO.setProjectName("项目名称");
                         approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount());
                         approvalTodoVO.setDescription(approvalApplication.getApplicationReason());
 
                     }
                     break;
                 case 17:
-                    OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId());
-                    if (oaApprovalApplicationAdvertisement!=null){
-                        approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent());
-                        approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount());
+                    OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAd !=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle());
+                        approvalTodoVO.setContent(oaApprovalApplicationAd.getContent());
+                        approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount());
                     }
                     break;
             }
@@ -393,9 +360,9 @@
         Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery()
                 .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId));
-        Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery()
-                .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list()
-                .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery()
+                .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e));
         Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
                 .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
@@ -407,6 +374,9 @@
         List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
+            approvalTodoVO.setReason(approvalApplication.getReason());
+            approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus());
+            approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason());
             approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
             switch (approvalTodoVO.getApprovalCategory()){
                 case 1:
@@ -438,17 +408,25 @@
                 case 5:
                     OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationPurchase!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationPurchase.getTitle());
+
                         approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount());
                     }
                     break;
                 case 6:
                     OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationStorage!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationStorage.getTitle());
+
                         approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType());
                     }
                     break;
                 case 7:
                     StringBuilder temp = new StringBuilder();
+                    OaApprovalApplicationAsset oaApprovalApplicationAsset = approvalApplicationAssetMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAsset!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAsset.getTitle());
+                    }
                     List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetItems!=null){
                         for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) {
@@ -468,24 +446,32 @@
                 case 8:
                     OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetOut!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAssetOut.getTitle());
+
                         approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime());
                     }
                     break;
                 case 9:
                     OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationAssetBack!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
+
                         approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
                     }
                     break;
                 case 10:
                     OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationDispose!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationDispose.getTitle());
+
                         approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType());
                     }
                     break;
                 case 11:
                     OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationChange!=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationChange.getTitle());
+
                         Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId();
                         TDept tDept = deptMap.get(ownershipDeptId);
                         if (tDept!=null){
@@ -496,12 +482,14 @@
                 case 12:
                     OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationReimbursement!=null){
+                        approvalTodoVO.setType(oaApprovalApplicationReimbursement.getType());
                         approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount());
                     }
                     break;
                 case 13:
                     OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationMoney!=null){
+                        approvalTodoVO.setProjectName(oaApprovalApplicationMoney.getProjectName());
                         approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount());
                         approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription());
 
@@ -510,16 +498,19 @@
                 case 15:
                     OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId());
                     if (oaApprovalApplicationPayment!=null){
+                        // todo 当前阶段没有项目id 后续完善
+                        approvalTodoVO.setProjectName("项目名称");
                         approvalTodoVO.setAmount(oaApprovalApplicationPayment.getApplyAmount());
                         approvalTodoVO.setDescription(approvalApplication.getApplicationReason());
 
                     }
                     break;
                 case 17:
-                    OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId());
-                    if (oaApprovalApplicationAdvertisement!=null){
-                        approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent());
-                        approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount());
+                    OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAd !=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle());
+                        approvalTodoVO.setContent(oaApprovalApplicationAd.getContent());
+                        approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount());
                     }
                     break;
             }
@@ -555,6 +546,7 @@
         if (dto.getApprovalStatus() == 0) {
             // 中断审批流程
             approvalApplications.setApprovalStatus(3);
+            approvalApplications.setReason(dto.getReason());
             approvalApplicationsService.updateById(approvalApplications);
             // 删除除当前审批人该申请单的未处理的所有待办
             approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
@@ -589,20 +581,49 @@
                     List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList());
                     List<AssetMain> assetMains = assetMainService.lambdaQuery().in(AssetMain::getId, AssetMainIds).list();
                     switch (approval.getApprovalCategory()) {
+                        case 9:
+                            // 借用归还资产条数
+                            List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemService.lambdaQuery()
+                                    .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId())
+                                    .list();
+                           // 借用资产条数
+                            OaApprovalApplicationAsset borrowApplications = approvalApplicationAssetService.lambdaQuery()
+                                    .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
+                                    .last("limit 1").one();
+                            List<OaApprovalApplicationAssetItem> borrow = approvalApplicationAssetItemService.lambdaQuery()
+                                    .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, borrowApplications.getId())
+                                    .list();
+                            if (back.size()==borrow.size()){
+                                borrowApplications.setReturnStatus(2);
+                            }else if (!back.isEmpty()){
+                                borrowApplications.setReturnStatus(1);
+                            }else{
+                                borrowApplications.setReturnStatus(0);
+                            }
+                            approvalApplicationAssetService.updateById(borrowApplications);
+                            saveAssetRecord(0,ApprovalTypeEnum.RETURN.getDesc(),back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+                                    .collect(Collectors.toList()));
+
                         case 10:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setDisposed(1);
                             });
+                            saveAssetRecord(null,ApprovalTypeEnum.ASSET_DISPOSE.getDesc(),assetMains
+                                    .stream().map(AssetMain::getId).collect(Collectors.toList()));
                             break;
                         case 7:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setInUse(1);
                             });
+                            saveAssetRecord(1,ApprovalTypeEnum.GRAB.getDesc(),assetMains
+                                    .stream().map(AssetMain::getId).collect(Collectors.toList()));
                             break;
                         default:
                             assetMains.forEach(assetMain -> {
                                 assetMain.setBorrowed(1);
                             });
+                            saveAssetRecord(1,ApprovalTypeEnum.BORROW.getDesc(),assetMains
+                                    .stream().map(AssetMain::getId).collect(Collectors.toList()));
                             break;
                     }
                     assetMainService.updateBatchById(assetMains);
@@ -611,6 +632,14 @@
                 if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) {
                     assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId());
                 }
+                // 资产变更
+                if (approval.getApprovalCategory().equals(ApprovalTypeEnum.ASSET_CHANGE.getCode())) {
+                    List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery()
+                            .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list();
+                    List<Integer> AssetMainIds = approvalApplicationAssetItems.stream().map(OaApprovalApplicationAssetItem::getAssetMainId).collect(Collectors.toList());
+                    saveAssetRecord(1,ApprovalTypeEnum.ASSET_CHANGE.getDesc(),AssetMainIds);
+                }
+
             } else {
                 log.info("不为最后一个审批节点");
                 // 生成下一个节点的待办事项
@@ -629,6 +658,19 @@
             }
         }
         return R.ok();
+    }
 
+    private  void saveAssetRecord(Integer type, String approvalType,List<Integer> assetMainIds) {
+        List<AssetInventoryRecord> res = new ArrayList<>();
+        Map<Integer, Integer> warehouseMap = assetMainService.lambdaQuery().isNotNull(AssetMain::getWarehouseId).list().stream().collect(Collectors.toMap(AssetMain::getId, AssetMain::getWarehouseId));
+        for (Integer assetMainId : assetMainIds) {
+            AssetInventoryRecord assetInventoryRecord = new AssetInventoryRecord();
+            assetInventoryRecord.setAssetMainId(assetMainId);
+            assetInventoryRecord.setWarehouseId(warehouseMap.get(assetMainId));
+            assetInventoryRecord.setType(type);
+            assetInventoryRecord.setRemarks(approvalType);
+            res.add(assetInventoryRecord);
+        }
+        assetInventoryRecordService.saveBatch(res);
     }
 }

--
Gitblit v1.7.1