From 995293880f5ca5c05ca94e53f5dac213b0155e3a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 23 九月 2025 13:57:09 +0800
Subject: [PATCH] 审批模块接口代码

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java            |  127 +-
 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalListQuery.java                        |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationsService.java          |    3 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java                |   11 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalMapper.java                        |    3 
 ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml                                 |    4 
 ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalService.java                      |    1 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowNodeController.java        |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java                      |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java |   12 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalFlowNodeServiceImpl.java     |   26 
 ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalFlowNodeService.java              |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalFlowNodeMapper.java                |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalServiceImpl.java             |   15 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java            |    6 
 ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java                              |    3 
 ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationsMapper.xml                  |    7 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java       | 1803 ++++++++++++++++++++++++++++-----------------------
 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalTodoListQuery.java                    |    2 
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationsMapper.java            |    7 
 ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalNodeListQuery.java                    |   14 
 21 files changed, 1,132 insertions(+), 943 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
index e6339f8..16acef2 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalController.java
@@ -1,28 +1,19 @@
 package com.ruoyi.web.controller.api;
 
 
-import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.entity.TDept;
-import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.system.dto.AddDeptDTO;
 import com.ruoyi.system.dto.SetDeptDTO;
-import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.query.ApprovalListQuery;
-import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.service.OaApprovalService;
-import com.ruoyi.system.service.TDeptService;
 import com.ruoyi.system.vo.system.ApprovalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * <p>
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 098995e..9f60e44 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
@@ -41,7 +41,7 @@
  */
 @RestController
 @RequestMapping("/oa-approval-flow-audit")
-@Api(tags = "通用审批接口")
+@Api(tags = "我审批的/我发起的/通用审批接口")
 public class OaApprovalFlowAuditController {
     @Resource
     private OaApprovalTodoService approvalTodoService;
@@ -102,7 +102,7 @@
 
 
     @ApiOperation("我审批的")
-    @PostMapping("/pageList")
+    @PostMapping("/pageListAudit")
     public R<PageInfo<ApprovalTodoVO>> pageList(@RequestBody ApprovalTodoListQuery query) {
         List<ApprovalTodoVO> resList = new ArrayList<>();
         Long userId = tokenService.getLoginUser().getUserId();
@@ -151,7 +151,6 @@
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
 
         Map<Integer, AssetMain> assetMainMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, e -> e));
-        Map<Integer, OaApprovalTodo> approvalTodoMap = list.stream().collect(Collectors.toMap(OaApprovalTodo::getApplicationId, e -> e));
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
@@ -183,8 +182,184 @@
             }
             approvalTodoVO.setApplicationCode(approvalApplication.getApplicationCode());
             approvalTodoVO.setCreateTime(approvalApplication.getCreateTime());
-            OaApprovalTodo oaApprovalTodo = approvalTodoMap.get(approvalApplication.getId());
-            approvalTodoVO.setId(oaApprovalTodo.getId());
+            approvalTodoVO.setApplicationId(approvalApplication.getId());
+
+            switch (approvalTodoVO.getApprovalCategory()){
+                case 5:
+                    OaApprovalApplicationPurchase oaApprovalApplicationPurchase = approvalApplicationPurchaseMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationPurchase!=null){
+                        approvalTodoVO.setAmount(oaApprovalApplicationPurchase.getTotalAmount());
+                    }
+                    break;
+                case 6:
+                    OaApprovalApplicationStorage oaApprovalApplicationStorage = applicationStorageMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationStorage!=null){
+                        approvalTodoVO.setStorageType(oaApprovalApplicationStorage.getStorageType());
+                    }
+                    break;
+                case 7:
+                    StringBuilder temp = new StringBuilder();
+                    List<OaApprovalApplicationAssetItem> oaApprovalApplicationAssetItems = approvalApplicationAssetItemMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAssetItems!=null){
+                        for (OaApprovalApplicationAssetItem oaApprovalApplicationAssetItem : oaApprovalApplicationAssetItems) {
+                            AssetMain assetMain = assetMainMap.get(oaApprovalApplicationAssetItem.getAssetMainId());
+                            if (assetMain!=null){
+                                temp.append(assetMain.getAssetName()).append(",");
+                            }
+                        }
+                        // 去除最后一位字符
+                        if (StringUtils.hasLength(temp.toString())){
+                            approvalTodoVO.setAssetName(temp.substring(0, temp.length() - 1));
+                        }else{
+                            approvalTodoVO.setAssetName("");
+                        }
+                    }
+                    break;
+                case 8:
+                    OaApprovalApplicationAsset oaApprovalApplicationAssetOut = approvalApplicationAssetMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAssetOut!=null){
+                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetOut.getOperateTime());
+                    }
+                    break;
+                case 9:
+                    OaApprovalApplicationAsset oaApprovalApplicationAssetBack = approvalApplicationAssetMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAssetBack!=null){
+                        approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
+                    }
+                    break;
+                case 10:
+                    OaApprovalApplicationDispose oaApprovalApplicationDispose = approvalApplicationDisposeMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationDispose!=null){
+                        approvalTodoVO.setDisposeType(oaApprovalApplicationDispose.getDisposeType());
+                    }
+                    break;
+                case 11:
+                    OaApprovalApplicationChange oaApprovalApplicationChange = approvalApplicationChangeMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationChange!=null){
+                        Integer ownershipDeptId = oaApprovalApplicationChange.getOwnershipDeptId();
+                        TDept tDept = deptMap.get(ownershipDeptId);
+                        if (tDept!=null){
+                            approvalTodoVO.setOwnershipDeptName(tDept.getDeptName());
+                        }
+                    }
+                    break;
+                case 12:
+                    OaApprovalApplicationReimbursement oaApprovalApplicationReimbursement = approvalApplicationReimbursementMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationReimbursement!=null){
+                        approvalTodoVO.setAmount(oaApprovalApplicationReimbursement.getReimbursementAmount());
+                    }
+                    break;
+                case 13:
+                    OaApprovalApplicationMoney oaApprovalApplicationMoney = oaApprovalApplicationMoneyMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationMoney!=null){
+                        approvalTodoVO.setAmount(oaApprovalApplicationMoney.getApplyAmount());
+                        approvalTodoVO.setDescription(oaApprovalApplicationMoney.getDescription());
+
+                    }
+                    break;
+                case 15:
+                    OaApprovalApplicationPayment oaApprovalApplicationPayment = approvalApplicationPaymentMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationPayment!=null){
+                        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());
+                    }
+                    break;
+            }
+
+            resList.add(approvalTodoVO);
+        }
+        res.setRecords(resList);
+        return R.ok(res);
+    }
+    @ApiOperation("我发起的")
+    @PostMapping("/pageListApply")
+    public R<PageInfo<ApprovalTodoVO>> pageListApply(@RequestBody ApprovalTodoListQuery query) {
+        List<ApprovalTodoVO> resList = new ArrayList<>();
+        Long userId = tokenService.getLoginUser().getUserId();
+        query.setUserId(userId);
+        PageInfo<ApprovalTodoVO> res = new PageInfo<>(query.getPageNum(), query.getPageSize());
+
+        PageInfo<OaApprovalApplications> pageInfo = approvalApplicationsService.pageListAudit(query);
+        List<OaApprovalApplications> list = pageInfo.getRecords();
+        if (list.isEmpty()){
+            return R.ok(new PageInfo<>());
+        }
+        res.setTotal(pageInfo.getTotal());
+        List<Integer> applicationIds = list.stream().map(OaApprovalApplications::getId).collect(Collectors.toList());
+        Map<Integer, OaApprovalApplicationReimbursement> approvalApplicationReimbursementMap = approvalApplicationReimbursementService.lambdaQuery()
+                .in(OaApprovalApplicationReimbursement::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationReimbursement::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationMoney> oaApprovalApplicationMoneyMap = approvalApplicationMoneyService.lambdaQuery()
+                .in(OaApprovalApplicationMoney::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationMoney::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationPayment> approvalApplicationPaymentMap = approvalApplicationPaymentService.lambdaQuery()
+                .in(OaApprovalApplicationPayment::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationPayment::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationStorage> applicationStorageMap = approvalApplicationStorageService.lambdaQuery()
+                .in(OaApprovalApplicationStorage::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationStorage::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationAsset> approvalApplicationAssetMap = approvalApplicationAssetService.lambdaQuery()
+                .in(OaApprovalApplicationAsset::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAsset::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationDispose> approvalApplicationDisposeMap = approvalApplicationDisposeService.lambdaQuery()
+                .in(OaApprovalApplicationDispose::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationDispose::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationChange> approvalApplicationChangeMap = approvalApplicationChangeService.lambdaQuery()
+                .in(OaApprovalApplicationChange::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationChange::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationPurchase> approvalApplicationPurchaseMap = approvalApplicationPurchaseService.lambdaQuery()
+                .in(OaApprovalApplicationPurchase::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationPurchase::getApprovalApplicationId, e -> e));
+        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, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
+                .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
+
+        Map<Integer, AssetMain> assetMainMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, e -> e));
+        Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
+        Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
+        Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
+        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
+        for (OaApprovalApplications approvalApplication : approvalApplications) {
+            ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
+            approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
+            switch (approvalTodoVO.getApprovalCategory()){
+                case 1:
+                case 2:
+                case 3:
+                case 4:
+                default:
+                    OaApprovalApplicationAttendance oaApprovalApplicationAttendance = applicationAttendanceMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAttendance!=null){
+                        approvalTodoVO.setStartTime(oaApprovalApplicationAttendance.getStartTime());
+                        approvalTodoVO.setEndTime(oaApprovalApplicationAttendance.getEndTime());
+                        approvalTodoVO.setDuration(oaApprovalApplicationAttendance.getDuration());
+                    }
+                    break;
+            }
+            SysUser sysUser = userMap.get(approvalApplication.getApplicantUserId().longValue());
+            if (sysUser!=null){
+                approvalTodoVO.setApplyUserName(sysUser.getUserName());
+                TDept tDept = deptMap.get(Integer.parseInt(sysUser.getDeptId()));
+                if (tDept!=null){
+                    approvalTodoVO.setApplyDeptName(tDept.getDeptName());
+                }
+            }
+            approvalTodoVO.setApplicationCode(approvalApplication.getApplicationCode());
+            approvalTodoVO.setCreateTime(approvalApplication.getCreateTime());
             approvalTodoVO.setApplicationId(approvalApplication.getId());
 
             switch (approvalTodoVO.getApprovalCategory()){
@@ -284,814 +459,814 @@
     }
 
 
-    @ApiOperation(value = "合同文件审批详情")
-    @GetMapping(value = "/detailContract")
-    public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
-                .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        ContractDetailVO res = new ContractDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList( sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setContractUrl(approvalApplicationContract.getContractUrl());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "进度款支付审批详情")
-    @GetMapping(value = "/detailPayment")
-    public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery()
-                .eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        PaymentDetailVO res = new PaymentDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        // todo 三阶段设计项目表之后完善
-        res.setProjectName("本期还未涉及到项目");
-        res.setApplyAmount(approvalApplicationPayment.getApplyAmount());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "请假申请审批详情")
-    @GetMapping(value = "/detailLeave")
-    public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
-                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        LeaveDetailVO res = new LeaveDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setStartTime(approvalApplicationAttendance.getStartTime());
-        res.setEndTime(approvalApplicationAttendance.getEndTime());
-        res.setDuration(approvalApplicationAttendance.getDuration());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "销假审批详情")
-    @GetMapping(value = "/detailLeaveDestroy")
-    public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
-                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        OaApprovalApplicationAttendance leaveApplication = approvalApplicationAttendanceService.getById(approvalApplicationAttendance.getLeaveApprovalApplicationId());
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        LeaveDestroyDetailVO res = new LeaveDestroyDetailVO();
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE_DESTROY.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setStartTime(approvalApplicationAttendance.getStartTime());
-        res.setEndTime(approvalApplicationAttendance.getEndTime());
-        res.setStartTimeLeave(leaveApplication.getStartTime());
-        res.setEndTimeLeave(leaveApplication.getEndTime());
-        res.setDurationLeave(leaveApplication.getDuration());
-        res.setDuration(approvalApplicationAttendance.getDuration());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "外出申请审批详情")
-    @GetMapping(value = "/detailOut")
-    public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
-                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        OutDetailVO res = new OutDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.OUT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setStartTime(approvalApplicationAttendance.getStartTime());
-        res.setEndTime(approvalApplicationAttendance.getEndTime());
-        res.setDuration(approvalApplicationAttendance.getDuration());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "出差审批详情")
-    @GetMapping(value = "/detailBusinessTrip")
-    public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
-                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        BusinessTripDetailVO res = new BusinessTripDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BUSINESS_TRIP.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setStartTime(approvalApplicationAttendance.getStartTime());
-        res.setEndTime(approvalApplicationAttendance.getEndTime());
-        res.setDuration(approvalApplicationAttendance.getDuration());
-        res.setAddress(approvalApplicationAttendance.getAddress());
-        res.setProjectName(approvalApplicationAttendance.getProjectName());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "采购审批详情-采购物品清单")
-    @PostMapping(value = "/detailPurchaseList")
-    public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "采购审批详情")
-    @GetMapping(value = "/detailPurchase")
-    public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery()
-                .eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        PurchaseDetailVO res = new PurchaseDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PURCHASE.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setCreateTime(approvalApplications.getCreateTime());
-        res.setTotalAmount(approvalApplicationPurchase.getTotalAmount());
-        res.setTitle(approvalApplicationPurchase.getTitle());
-        AssetType assetType = assetTypeService.getById(approvalApplicationPurchase.getAssetTypeId());
-        if (assetType!=null){
-            res.setAssetTypeName(assetType.getTypeName());
-        }
-        return R.ok(res);
-    }
-    @ApiOperation(value = "物品领用-领用资产列表")
-    @PostMapping(value = "/detailGrabList")
-    public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "物品领用审批详情")
-    @GetMapping(value = "/detailGrab")
-    public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
-                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        GrabDetailVO res = new GrabDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.GRAB.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setOperateTime(approvalApplicationAsset.getOperateTime());
-        res.setTitle(approvalApplicationAsset.getTitle());
-        AssetType assetType = assetTypeService.getById(approvalApplicationAsset.getAssetTypeId());
-        if (assetType!=null){
-            res.setAssetTypeName(assetType.getTypeName());
-        }
-        return R.ok(res);
-    }
-    @ApiOperation(value = "资产入库-入库资产列表")
-    @PostMapping(value = "/detailInStockList")
-    public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "资产入库审批详情")
-    @GetMapping(value = "/detailInStock")
-    public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery()
-                .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        StorageDetailVO res = new StorageDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.IN_STOCK.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setTitle(approvalApplicationStorage.getTitle());
-        res.setStorageType(approvalApplicationStorage.getStorageType());
-        res.setStorageTime(approvalApplicationStorage.getStorageTime());
-        res.setRemarks(approvalApplicationStorage.getTitle());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "物品借用-借用资产列表")
-    @PostMapping(value = "/detailBurrowList")
-    public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "物品借用审批详情")
-    @GetMapping(value = "/detailBurrow")
-    public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
-                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        BorrowDetailVO res = new BorrowDetailVO();
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BURROW.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setOperateTime(approvalApplicationAsset.getOperateTime());
-        res.setExpectReturnDate(approvalApplicationAsset.getExpectReturnDate());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "物品借用归还-归还资产列表")
-    @PostMapping(value = "/detailBackList")
-    public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "物品借用归还审批详情")
-    @GetMapping(value = "/detailBack")
-    public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery()
-                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId())
-                .last("limit 1").one();
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalApplicationAssetBack.getBorrowApplicationId());
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplicationsBack.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        BackDetailVO res = new BackDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.RETURN.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplicationsBack.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplicationsBack.getId());
-        res.setApplicationReason(approvalApplicationsBack.getApplicationReason());
-        res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl());
-        res.setOperateTime(approvalApplicationAssetBack.getOperateTime());
-        res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate());
-        res.setTitle(approvalApplicationAssetBack.getTitle());
-        res.setApplicationCode(approvalApplications.getApplicationCode());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "资产处置-处置资产列表")
-    @PostMapping(value = "/detailDisposeList")
-    public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "资产处置审批详情")
-    @GetMapping(value = "/detailDispose")
-    public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
-                .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        DisposeDetailVO res = new DisposeDetailVO();
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_DISPOSE.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-
-        res.setDisposeTime(approvalApplicationDispose.getDisposeTime());
-        res.setTitle(approvalApplicationDispose.getTitle());
-        AssetType assetType = assetTypeService.getById(approvalApplicationDispose.getAssetTypeId());
-        if (assetType!=null){
-            res.setAssetTypeName(assetType.getTypeName());
-        }
-        res.setDisposeType(approvalApplicationDispose.getDisposeType());
-        res.setDisposeTotalAmount(approvalApplicationDispose.getDisposeTotalAmount());
-        return R.ok(res);
-    }
-
-    @ApiOperation(value = "资产变更-变更资产列表")
-    @PostMapping(value = "/detailChangeList")
-    public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        query.setId(approvalApplications.getId());
-        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
-        return R.ok(items);
-    }
-    @ApiOperation(value = "资产变更审批详情")
-    @GetMapping(value = "/detailChange")
-    public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery()
-                .eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        ChangeDetailVO res = new ChangeDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_CHANGE.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        AssetType assetType = assetTypeService.getById(approvalApplicationChange.getAssetTypeId());
-        if (assetType!=null){
-            res.setAssetTypeName(assetType.getTypeName());
-        }
-        res.setChangeTime(approvalApplicationChange.getChangeTime());
-        res.setTitle(approvalApplicationChange.getTitle());
-        TDept dept = deptService.getById(approvalApplicationChange.getOwnershipDeptId());
-        if (dept!=null){
-            res.setOwnershipDeptName(dept.getDeptName());
-        }
-        // todo 三阶段完善 仓库名称
-        res.setWarehouseName("三阶段完善");
-        res.setAddress(approvalApplicationChange.getAddress());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "报销申请审批详情")
-    @GetMapping(value = "/detailReimbursement")
-    public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery()
-                .eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalApplicationReimbursementItem> oaApprovalApplicationReimbursementItems = approvalApplicationReimbursementItemService.lambdaQuery()
-                .eq(OaApprovalApplicationReimbursementItem::getApprovalApplicationId, approvalApplications.getId())
-                .list();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        ReimbursementDetailVO res = new ReimbursementDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.REIMBURSEMENT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-
-        res.setType(approvalApplicationReimbursement.getType());
-        res.setApprovalApplicationReimbursementItems(oaApprovalApplicationReimbursementItems);
-        return R.ok(res);
-    }
-    @ApiOperation(value = "款项申请审批详情")
-    @GetMapping(value = "/detailMoney")
-    public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
-                .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        MoneyDetailVO res = new MoneyDetailVO();
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.MONEY.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setProjectName(approvalApplicationMoney.getProjectName());
-        res.setApplyAmount(approvalApplicationMoney.getApplyAmount());
-        res.setDescription(approvalApplicationMoney.getDescription());
-        res.setPayer(approvalApplicationMoney.getPayer());
-        res.setPayee(approvalApplicationMoney.getPayee());
-        res.setPayeeContact(approvalApplicationMoney.getPayeeContact());
-        res.setPayeeAccount(approvalApplicationMoney.getPayeeAccount());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "内部联系单审批详情")
-    @GetMapping(value = "/detailContact")
-    public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
-                .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        ContactDetailVO res = new ContactDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTACT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setDescription(approvalApplicationMoney.getDescription());
-        return R.ok(res);
-    }
-    @ApiOperation(value = "广告制作审批详情")
-    @GetMapping(value = "/detailAdvertisement")
-    public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery()
-                .eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-
-        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
-                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
-                .list();
-        AdvertisementDetailVO res = new AdvertisementDetailVO();
-
-
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
-                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ADVERTISEMENT.getCode())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder)
-                .eq(OaApprovalFlowNode::getStatus, 1).list();
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
-        if (sysUser!=null){
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
-        }
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
-        res.setApprovalFlowNodeListVOS(flowNodeList);
-        res.setApprovalApplicationId(approvalApplications.getId());
-        res.setApplicationReason(approvalApplications.getApplicationReason());
-        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
-        res.setTitle(applicationAdvertisement.getTitle());
-        res.setCreateTime(approvalApplications.getCreateTime());
-        res.setContent(applicationAdvertisement.getContent());
-        res.setNumber(applicationAdvertisement.getNumber());
-        res.setTotalAmount(applicationAdvertisement.getTotalAmount());
-        res.setSpec(applicationAdvertisement.getSpec());
-        return R.ok(res);
-    }
-    private List<ApprovalFlowNodeListVO> getFlowNodeList(SysUser sysUser, List<OaApprovalFlowAudit> approvalFlowAudits
-            ,List<OaApprovalFlowNode> approvalFlowNodes) {
-        List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS = new ArrayList<>();
-        Map<Integer, OaApprovalFlowAudit> approvalFlowAuditMap = approvalFlowAudits.stream().collect(Collectors.toMap(OaApprovalFlowAudit::getFlowNodeId, e -> e));
-
-        ApprovalFlowNodeListVO approvalFlowNodeListVO = new ApprovalFlowNodeListVO();
-        approvalFlowNodeListVO.setFlowName("发起");
-        if (sysUser!=null){
-            approvalFlowNodeListVO.setUserName(sysUser.getUserName());
-        }
-        approvalFlowNodeListVOS.add(approvalFlowNodeListVO);
-        for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
-            ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO();
-
-            OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId());
-            if (approvalFlowAudit!=null){
-                approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName());
-                approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName());
-                approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl());
-                approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus());
-            }else{
-                approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
-            }
-            approvalFlowNodeListVOS.add(approvalFlowNodeVO);
-        }
-        return approvalFlowNodeListVOS;
-    }
-
-
-
-    @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT)
-    @ApiOperation(value = "通用审批接口")
-    @PostMapping(value = "/audit")
-    public R addLeave(@RequestBody AuditDTO dto) {
-
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId());
-        Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId();
-        Long userId = tokenService.getLoginUser().getUserId();
-        SysUser sysUser = sysUserService.selectUserById(userId);
-
-        OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId)
-                .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId)
-                .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
-                .last("limit 1").one();
-        approvalTodo.setStatus(1);
-        approvalTodo.setHandleTime(LocalDateTime.now());
-        approvalTodoService.updateById(approvalTodo);
-
-        OaApproval approval = approvalService.getById(approvalApplications.getApprovalId());
-        if (dto.getApprovalStatus()==0){
-            // 中断审批流程
-            approvalApplications.setApprovalStatus(3);
-            approvalApplicationsService.updateById(approvalApplications);
-            // 删除除当前审批人该申请单的未处理的所有待办
-            approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
-                    .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
-                    .eq(OaApprovalTodo::getStatus,0));
-        }
-        OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId);
-        OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit();
-        approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId());
-        approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId());
-        approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName());
-        approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder());
-        approvalFlowAudit.setUserId(userId.intValue());
-        approvalFlowAudit.setUserName(sysUser.getUserName());
-        approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0);
-        approvalFlowAudit.setApprovalTime(LocalDateTime.now());
-        approvalFlowAudit.setReason(dto.getReason());
-        approvalFlowAuditService.save(approvalFlowAudit);
-        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId())
-                .orderByAsc(OaApprovalFlowNode::getSortOrder).list();
-        if (dto.getApprovalStatus()==1){
-            // 判断当前是否处于最后一个节点
-            if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){
-                // 审批通过 审批流程结束
-                approvalApplications.setApprovalStatus(2);
-                approvalApplicationsService.updateById(approvalApplications);
-                if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7
-                        ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){
-                    List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery()
-                            .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list();
-                    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 10:
-                            assetMains.forEach(assetMain -> {
-                                assetMain.setDisposed(1);
-                            });
-                            break;
-                        case 7:
-                            assetMains.forEach(assetMain -> {
-                                assetMain.setInUse(1);
-                            });
-                            break;
-                        default:
-                            assetMains.forEach(assetMain -> {
-                                assetMain.setBorrowed(1);
-                            });
-                            break;
-                    }
-                    assetMainService.updateBatchById(assetMains);
-                }
-            }else{
-                // 生成下一个节点的待办事项
-                for (int i = 0; i < approvalFlowNodes.size(); i++) {
-                    if(approvalApplications.getCurrentFlowNodeId()
-                            .equals(approvalFlowNodes.get(i).getId())){
-                        approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId());
-                        OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId());
-                        approvalTodoService.createApprovalTodos(approvalApplications.getId(),
-                                approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId());
-                    }
-                }
-            }
-
-        }
-
-        return R.ok();
-    }
+//    @ApiOperation(value = "合同文件审批详情")
+//    @GetMapping(value = "/detailContract")
+//    public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
+//                .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        ContractDetailVO res = new ContractDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList( sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setContractUrl(approvalApplicationContract.getContractUrl());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "进度款支付审批详情")
+//    @GetMapping(value = "/detailPayment")
+//    public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery()
+//                .eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        PaymentDetailVO res = new PaymentDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        // todo 三阶段设计项目表之后完善
+//        res.setProjectName("本期还未涉及到项目");
+//        res.setApplyAmount(approvalApplicationPayment.getApplyAmount());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "请假申请审批详情")
+//    @GetMapping(value = "/detailLeave")
+//    public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
+//                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        LeaveDetailVO res = new LeaveDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setStartTime(approvalApplicationAttendance.getStartTime());
+//        res.setEndTime(approvalApplicationAttendance.getEndTime());
+//        res.setDuration(approvalApplicationAttendance.getDuration());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "销假审批详情")
+//    @GetMapping(value = "/detailLeaveDestroy")
+//    public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
+//                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        OaApprovalApplicationAttendance leaveApplication = approvalApplicationAttendanceService.getById(approvalApplicationAttendance.getLeaveApprovalApplicationId());
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        LeaveDestroyDetailVO res = new LeaveDestroyDetailVO();
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.LEAVE_DESTROY.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setStartTime(approvalApplicationAttendance.getStartTime());
+//        res.setEndTime(approvalApplicationAttendance.getEndTime());
+//        res.setStartTimeLeave(leaveApplication.getStartTime());
+//        res.setEndTimeLeave(leaveApplication.getEndTime());
+//        res.setDurationLeave(leaveApplication.getDuration());
+//        res.setDuration(approvalApplicationAttendance.getDuration());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "外出申请审批详情")
+//    @GetMapping(value = "/detailOut")
+//    public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
+//                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        OutDetailVO res = new OutDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.OUT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setStartTime(approvalApplicationAttendance.getStartTime());
+//        res.setEndTime(approvalApplicationAttendance.getEndTime());
+//        res.setDuration(approvalApplicationAttendance.getDuration());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "出差审批详情")
+//    @GetMapping(value = "/detailBusinessTrip")
+//    public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
+//                .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        BusinessTripDetailVO res = new BusinessTripDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BUSINESS_TRIP.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setStartTime(approvalApplicationAttendance.getStartTime());
+//        res.setEndTime(approvalApplicationAttendance.getEndTime());
+//        res.setDuration(approvalApplicationAttendance.getDuration());
+//        res.setAddress(approvalApplicationAttendance.getAddress());
+//        res.setProjectName(approvalApplicationAttendance.getProjectName());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "采购审批详情-采购物品清单")
+//    @PostMapping(value = "/detailPurchaseList")
+//    public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "采购审批详情")
+//    @GetMapping(value = "/detailPurchase")
+//    public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery()
+//                .eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        PurchaseDetailVO res = new PurchaseDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PURCHASE.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setCreateTime(approvalApplications.getCreateTime());
+//        res.setTotalAmount(approvalApplicationPurchase.getTotalAmount());
+//        res.setTitle(approvalApplicationPurchase.getTitle());
+//        AssetType assetType = assetTypeService.getById(approvalApplicationPurchase.getAssetTypeId());
+//        if (assetType!=null){
+//            res.setAssetTypeName(assetType.getTypeName());
+//        }
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "物品领用-领用资产列表")
+//    @PostMapping(value = "/detailGrabList")
+//    public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "物品领用审批详情")
+//    @GetMapping(value = "/detailGrab")
+//    public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
+//                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        GrabDetailVO res = new GrabDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.GRAB.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setOperateTime(approvalApplicationAsset.getOperateTime());
+//        res.setTitle(approvalApplicationAsset.getTitle());
+//        AssetType assetType = assetTypeService.getById(approvalApplicationAsset.getAssetTypeId());
+//        if (assetType!=null){
+//            res.setAssetTypeName(assetType.getTypeName());
+//        }
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "资产入库-入库资产列表")
+//    @PostMapping(value = "/detailInStockList")
+//    public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "资产入库审批详情")
+//    @GetMapping(value = "/detailInStock")
+//    public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery()
+//                .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        StorageDetailVO res = new StorageDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.IN_STOCK.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setTitle(approvalApplicationStorage.getTitle());
+//        res.setStorageType(approvalApplicationStorage.getStorageType());
+//        res.setStorageTime(approvalApplicationStorage.getStorageTime());
+//        res.setRemarks(approvalApplicationStorage.getTitle());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "物品借用-借用资产列表")
+//    @PostMapping(value = "/detailBurrowList")
+//    public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "物品借用审批详情")
+//    @GetMapping(value = "/detailBurrow")
+//    public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
+//                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        BorrowDetailVO res = new BorrowDetailVO();
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.BURROW.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setOperateTime(approvalApplicationAsset.getOperateTime());
+//        res.setExpectReturnDate(approvalApplicationAsset.getExpectReturnDate());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "物品借用归还-归还资产列表")
+//    @PostMapping(value = "/detailBackList")
+//    public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "物品借用归还审批详情")
+//    @GetMapping(value = "/detailBack")
+//    public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery()
+//                .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId())
+//                .last("limit 1").one();
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalApplicationAssetBack.getBorrowApplicationId());
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplicationsBack.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        BackDetailVO res = new BackDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.RETURN.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplicationsBack.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplicationsBack.getId());
+//        res.setApplicationReason(approvalApplicationsBack.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplicationsBack.getAttachmentUrl());
+//        res.setOperateTime(approvalApplicationAssetBack.getOperateTime());
+//        res.setExpectReturnDate(approvalApplicationAssetBack.getExpectReturnDate());
+//        res.setTitle(approvalApplicationAssetBack.getTitle());
+//        res.setApplicationCode(approvalApplications.getApplicationCode());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "资产处置-处置资产列表")
+//    @PostMapping(value = "/detailDisposeList")
+//    public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "资产处置审批详情")
+//    @GetMapping(value = "/detailDispose")
+//    public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
+//                .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        DisposeDetailVO res = new DisposeDetailVO();
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_DISPOSE.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//
+//        res.setDisposeTime(approvalApplicationDispose.getDisposeTime());
+//        res.setTitle(approvalApplicationDispose.getTitle());
+//        AssetType assetType = assetTypeService.getById(approvalApplicationDispose.getAssetTypeId());
+//        if (assetType!=null){
+//            res.setAssetTypeName(assetType.getTypeName());
+//        }
+//        res.setDisposeType(approvalApplicationDispose.getDisposeType());
+//        res.setDisposeTotalAmount(approvalApplicationDispose.getDisposeTotalAmount());
+//        return R.ok(res);
+//    }
+//
+//    @ApiOperation(value = "资产变更-变更资产列表")
+//    @PostMapping(value = "/detailChangeList")
+//    public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        query.setId(approvalApplications.getId());
+//        PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
+//        return R.ok(items);
+//    }
+//    @ApiOperation(value = "资产变更审批详情")
+//    @GetMapping(value = "/detailChange")
+//    public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery()
+//                .eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        ChangeDetailVO res = new ChangeDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ASSET_CHANGE.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        AssetType assetType = assetTypeService.getById(approvalApplicationChange.getAssetTypeId());
+//        if (assetType!=null){
+//            res.setAssetTypeName(assetType.getTypeName());
+//        }
+//        res.setChangeTime(approvalApplicationChange.getChangeTime());
+//        res.setTitle(approvalApplicationChange.getTitle());
+//        TDept dept = deptService.getById(approvalApplicationChange.getOwnershipDeptId());
+//        if (dept!=null){
+//            res.setOwnershipDeptName(dept.getDeptName());
+//        }
+//        // todo 三阶段完善 仓库名称
+//        res.setWarehouseName("三阶段完善");
+//        res.setAddress(approvalApplicationChange.getAddress());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "报销申请审批详情")
+//    @GetMapping(value = "/detailReimbursement")
+//    public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery()
+//                .eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalApplicationReimbursementItem> oaApprovalApplicationReimbursementItems = approvalApplicationReimbursementItemService.lambdaQuery()
+//                .eq(OaApprovalApplicationReimbursementItem::getApprovalApplicationId, approvalApplications.getId())
+//                .list();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        ReimbursementDetailVO res = new ReimbursementDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.REIMBURSEMENT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//
+//        res.setType(approvalApplicationReimbursement.getType());
+//        res.setApprovalApplicationReimbursementItems(oaApprovalApplicationReimbursementItems);
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "款项申请审批详情")
+//    @GetMapping(value = "/detailMoney")
+//    public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
+//                .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        MoneyDetailVO res = new MoneyDetailVO();
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.MONEY.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setProjectName(approvalApplicationMoney.getProjectName());
+//        res.setApplyAmount(approvalApplicationMoney.getApplyAmount());
+//        res.setDescription(approvalApplicationMoney.getDescription());
+//        res.setPayer(approvalApplicationMoney.getPayer());
+//        res.setPayee(approvalApplicationMoney.getPayee());
+//        res.setPayeeContact(approvalApplicationMoney.getPayeeContact());
+//        res.setPayeeAccount(approvalApplicationMoney.getPayeeAccount());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "内部联系单审批详情")
+//    @GetMapping(value = "/detailContact")
+//    public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
+//                .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        ContactDetailVO res = new ContactDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTACT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setDescription(approvalApplicationMoney.getDescription());
+//        return R.ok(res);
+//    }
+//    @ApiOperation(value = "广告制作审批详情")
+//    @GetMapping(value = "/detailAdvertisement")
+//    public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) {
+//        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+//        OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery()
+//                .eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//
+//        List<OaApprovalFlowAudit> approvalFlowAudits = approvalFlowAuditService.lambdaQuery().eq(OaApprovalFlowAudit::getApprovalApplicationId, approvalApplications.getId())
+//                .orderByAsc(OaApprovalFlowAudit::getSortOrder)
+//                .list();
+//        AdvertisementDetailVO res = new AdvertisementDetailVO();
+//
+//
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
+//                .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.ADVERTISEMENT.getCode())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder)
+//                .eq(OaApprovalFlowNode::getStatus, 1).list();
+//        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
+//        if (sysUser!=null){
+//            res.setUserName(sysUser.getUserName());
+//            TDept dept = deptService.getById(sysUser.getDeptId());
+//            if (dept!=null){
+//                res.setDeptName(dept.getDeptName());
+//            }
+//        }
+//        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(sysUser, approvalFlowAudits,approvalFlowNodes);
+//        res.setApprovalFlowNodeListVOS(flowNodeList);
+//        res.setApprovalApplicationId(approvalApplications.getId());
+//        res.setApplicationReason(approvalApplications.getApplicationReason());
+//        res.setAttachmentUrl(approvalApplications.getAttachmentUrl());
+//        res.setTitle(applicationAdvertisement.getTitle());
+//        res.setCreateTime(approvalApplications.getCreateTime());
+//        res.setContent(applicationAdvertisement.getContent());
+//        res.setNumber(applicationAdvertisement.getNumber());
+//        res.setTotalAmount(applicationAdvertisement.getTotalAmount());
+//        res.setSpec(applicationAdvertisement.getSpec());
+//        return R.ok(res);
+//    }
+//    private List<ApprovalFlowNodeListVO> getFlowNodeList(SysUser sysUser, List<OaApprovalFlowAudit> approvalFlowAudits
+//            ,List<OaApprovalFlowNode> approvalFlowNodes) {
+//        List<ApprovalFlowNodeListVO> approvalFlowNodeListVOS = new ArrayList<>();
+//        Map<Integer, OaApprovalFlowAudit> approvalFlowAuditMap = approvalFlowAudits.stream().collect(Collectors.toMap(OaApprovalFlowAudit::getFlowNodeId, e -> e));
+//
+//        ApprovalFlowNodeListVO approvalFlowNodeListVO = new ApprovalFlowNodeListVO();
+//        approvalFlowNodeListVO.setFlowName("发起");
+//        if (sysUser!=null){
+//            approvalFlowNodeListVO.setUserName(sysUser.getUserName());
+//        }
+//        approvalFlowNodeListVOS.add(approvalFlowNodeListVO);
+//        for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
+//            ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO();
+//
+//            OaApprovalFlowAudit approvalFlowAudit = approvalFlowAuditMap.get(approvalFlowNode.getId());
+//            if (approvalFlowAudit!=null){
+//                approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName());
+//                approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName());
+//                approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl());
+//                approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus());
+//            }else{
+//                approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
+//            }
+//            approvalFlowNodeListVOS.add(approvalFlowNodeVO);
+//        }
+//        return approvalFlowNodeListVOS;
+//    }
+//
+//
+//
+//    @Log(title = "审批-通用审批接口", businessType = BusinessType.INSERT)
+//    @ApiOperation(value = "通用审批接口")
+//    @PostMapping(value = "/audit")
+//    public R addLeave(@RequestBody AuditDTO dto) {
+//
+//        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(dto.getApprovalApplicationId());
+//        Integer currentFlowNodeId = approvalApplications.getCurrentFlowNodeId();
+//        Long userId = tokenService.getLoginUser().getUserId();
+//        SysUser sysUser = sysUserService.selectUserById(userId);
+//
+//        OaApprovalTodo approvalTodo = approvalTodoService.lambdaQuery().eq(OaApprovalTodo::getUserId, userId)
+//                .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId)
+//                .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+//                .last("limit 1").one();
+//        approvalTodo.setStatus(1);
+//        approvalTodo.setHandleTime(LocalDateTime.now());
+//        approvalTodoService.updateById(approvalTodo);
+//
+//        OaApproval approval = approvalService.getById(approvalApplications.getApprovalId());
+//        if (dto.getApprovalStatus()==0){
+//            // 中断审批流程
+//            approvalApplications.setApprovalStatus(3);
+//            approvalApplicationsService.updateById(approvalApplications);
+//            // 删除除当前审批人该申请单的未处理的所有待办
+//            approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
+//                    .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+//                    .eq(OaApprovalTodo::getStatus,0));
+//        }
+//        OaApprovalFlowNode oaApprovalFlowNode = approvalFlowNodeService.getById(currentFlowNodeId);
+//        OaApprovalFlowAudit approvalFlowAudit = new OaApprovalFlowAudit();
+//        approvalFlowAudit.setApprovalApplicationId(approvalApplications.getId());
+//        approvalFlowAudit.setFlowNodeId(approvalApplications.getCurrentFlowNodeId());
+//        approvalFlowAudit.setFlowName(oaApprovalFlowNode.getFlowName());
+//        approvalFlowAudit.setSortOrder(oaApprovalFlowNode.getSortOrder());
+//        approvalFlowAudit.setUserId(userId.intValue());
+//        approvalFlowAudit.setUserName(sysUser.getUserName());
+//        approvalFlowAudit.setApprovalStatus(dto.getApprovalStatus() != 0);
+//        approvalFlowAudit.setApprovalTime(LocalDateTime.now());
+//        approvalFlowAudit.setReason(dto.getReason());
+//        approvalFlowAuditService.save(approvalFlowAudit);
+//        List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery().eq(OaApprovalFlowNode::getApprovalId, approval.getId())
+//                .orderByAsc(OaApprovalFlowNode::getSortOrder).list();
+//        if (dto.getApprovalStatus()==1){
+//            // 判断当前是否处于最后一个节点
+//            if(approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size()-1).getId())){
+//                // 审批通过 审批流程结束
+//                approvalApplications.setApprovalStatus(2);
+//                approvalApplicationsService.updateById(approvalApplications);
+//                if (approval.getApprovalCategory()==10||approval.getApprovalCategory()==7
+//                        ||approval.getApprovalCategory()==8||approval.getApprovalCategory()==9){
+//                    List<OaApprovalApplicationAssetItem> approvalApplicationAssetItems = approvalApplicationAssetItemService.lambdaQuery()
+//                            .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId()).list();
+//                    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 10:
+//                            assetMains.forEach(assetMain -> {
+//                                assetMain.setDisposed(1);
+//                            });
+//                            break;
+//                        case 7:
+//                            assetMains.forEach(assetMain -> {
+//                                assetMain.setInUse(1);
+//                            });
+//                            break;
+//                        default:
+//                            assetMains.forEach(assetMain -> {
+//                                assetMain.setBorrowed(1);
+//                            });
+//                            break;
+//                    }
+//                    assetMainService.updateBatchById(assetMains);
+//                }
+//            }else{
+//                // 生成下一个节点的待办事项
+//                for (int i = 0; i < approvalFlowNodes.size(); i++) {
+//                    if(approvalApplications.getCurrentFlowNodeId()
+//                            .equals(approvalFlowNodes.get(i).getId())){
+//                        approvalApplications.setCurrentFlowNodeId(approvalFlowNodes.get(i+1).getId());
+//                        OaApprovalFlowNode oaApprovalFlowNode1 = approvalFlowNodeService.getById(approvalFlowNodes.get(i + 1).getId());
+//                        approvalTodoService.createApprovalTodos(approvalApplications.getId(),
+//                                approvalApplications.getApplicationCode(), oaApprovalFlowNode1, approvalApplications.getDeptId());
+//                    }
+//                }
+//            }
+//
+//        }
+//
+//        return R.ok();
+//    }
 }
 
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowNodeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowNodeController.java
index 0135e65..5e6fedc 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowNodeController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowNodeController.java
@@ -3,20 +3,14 @@
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.ruoyi.common.annotation.Log;
-import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.system.dto.SetApprovalDTO;
-import com.ruoyi.system.dto.SetDeptDTO;
-import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.model.OaApprovalFlowNode;
-import com.ruoyi.system.query.ApprovalListQuery;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.service.ISysUserService;
 import com.ruoyi.system.service.OaApprovalFlowNodeService;
-import com.ruoyi.system.service.OaApprovalService;
-import com.ruoyi.system.vo.system.ApprovalFlowNodeVO;
-import com.ruoyi.system.vo.system.ApprovalVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.*;
@@ -47,7 +41,7 @@
      */
     @ApiOperation("审批流程设计列表")
     @PostMapping("list")
-    public R<List<OaApprovalFlowNode>> list(@RequestBody ApprovalListQuery query) {
+    public R<List<OaApprovalFlowNode>> list(@RequestBody ApprovalNodeListQuery query) {
         return R.ok( oaApprovalFlowNodeService.pageList(query));
     }
     @ApiOperation(value = "启用禁用")
@@ -81,7 +75,7 @@
         LambdaUpdateWrapper<OaApprovalFlowNode> oaApprovalFlowNodeLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
         oaApprovalFlowNodeLambdaUpdateWrapper.eq(OaApprovalFlowNode::getId,dto.getId());
         oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalType,dto.getApprovalType());
-        if (dto.getApprovalType() == 1){
+        if (dto.getApprovalType() == 0){
             oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalIds,null);
         }else{
             oaApprovalFlowNodeLambdaUpdateWrapper.set(OaApprovalFlowNode::getApprovalIds,dto.getApprovalIds());
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
index 24058d2..b7f2b0c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java
@@ -150,7 +150,6 @@
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
 
         Map<Integer, AssetMain> assetMainMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, e -> e));
-        Map<Integer, OaApprovalTodo> approvalTodoMap = list.stream().collect(Collectors.toMap(OaApprovalTodo::getApplicationId, e -> e));
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
@@ -182,8 +181,6 @@
             }
             approvalTodoVO.setApplicationCode(approvalApplication.getApplicationCode());
             approvalTodoVO.setCreateTime(approvalApplication.getCreateTime());
-            OaApprovalTodo oaApprovalTodo = approvalTodoMap.get(approvalApplication.getId());
-            approvalTodoVO.setId(oaApprovalTodo.getId());
             approvalTodoVO.setApplicationId(approvalApplication.getId());
 
             switch (approvalTodoVO.getApprovalCategory()){
@@ -285,9 +282,9 @@
 
     @ApiOperation(value = "合同文件审批详情")
     @GetMapping(value = "/detailContract")
-    public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<ContractDetailVO> detailContract(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
                 .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -317,9 +314,9 @@
     }
     @ApiOperation(value = "进度款支付审批详情")
     @GetMapping(value = "/detailPayment")
-    public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<PaymentDetailVO> detailPayment(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationPayment approvalApplicationPayment = approvalApplicationPaymentService.lambdaQuery()
                 .eq(OaApprovalApplicationPayment::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -351,9 +348,9 @@
     }
     @ApiOperation(value = "请假申请审批详情")
     @GetMapping(value = "/detailLeave")
-    public R<LeaveDetailVO> detailLeave(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<LeaveDetailVO> detailLeave(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
                 .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -387,9 +384,9 @@
     }
     @ApiOperation(value = "销假审批详情")
     @GetMapping(value = "/detailLeaveDestroy")
-    public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<LeaveDestroyDetailVO> detailLeaveDestroy(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
                 .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -426,9 +423,9 @@
     }
     @ApiOperation(value = "外出申请审批详情")
     @GetMapping(value = "/detailOut")
-    public R<OutDetailVO> detailOut(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<OutDetailVO> detailOut(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
                 .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -460,9 +457,9 @@
     }
     @ApiOperation(value = "出差审批详情")
     @GetMapping(value = "/detailBusinessTrip")
-    public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<BusinessTripDetailVO> detailBusinessTrip(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAttendance approvalApplicationAttendance = approvalApplicationAttendanceService.lambdaQuery()
                 .eq(OaApprovalApplicationAttendance::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -499,17 +496,16 @@
     @ApiOperation(value = "采购审批详情-采购物品清单")
     @PostMapping(value = "/detailPurchaseList")
     public R<PageInfo<PurchaseListVO>> detailPurchaseList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<PurchaseListVO> items = approvalApplicationPurchaseItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "采购审批详情")
     @GetMapping(value = "/detailPurchase")
-    public R<PurchaseDetailVO> detailPurchase(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<PurchaseDetailVO> detailPurchase(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationPurchase approvalApplicationPurchase = approvalApplicationPurchaseService.lambdaQuery()
                 .eq(OaApprovalApplicationPurchase::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -546,17 +542,16 @@
     @ApiOperation(value = "物品领用-领用资产列表")
     @PostMapping(value = "/detailGrabList")
     public R<PageInfo<GrabListVO>> detailGrabList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "物品领用审批详情")
     @GetMapping(value = "/detailGrab")
-    public R<GrabDetailVO> detailGrab(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<GrabDetailVO> detailGrab(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
                 .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -594,17 +589,16 @@
     @ApiOperation(value = "资产入库-入库资产列表")
     @PostMapping(value = "/detailInStockList")
     public R<PageInfo<StorageListVO>> detailInStockList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<StorageListVO> items = approvalApplicationStorageService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "资产入库审批详情")
     @GetMapping(value = "/detailInStock")
-    public R<StorageDetailVO> detailInStock(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<StorageDetailVO> detailInStock(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationStorage approvalApplicationStorage = approvalApplicationStorageService.lambdaQuery()
                 .eq(OaApprovalApplicationStorage::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -631,17 +625,16 @@
     @ApiOperation(value = "物品借用-借用资产列表")
     @PostMapping(value = "/detailBurrowList")
     public R<PageInfo<GrabListVO>> detailBurrowList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "物品借用审批详情")
     @GetMapping(value = "/detailBurrow")
-    public R<BorrowDetailVO> detailBurrow(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<BorrowDetailVO> detailBurrow(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAsset approvalApplicationAsset = approvalApplicationAssetService.lambdaQuery()
                 .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -674,17 +667,16 @@
     @ApiOperation(value = "物品借用归还-归还资产列表")
     @PostMapping(value = "/detailBackList")
     public R<PageInfo<GrabListVO>> detailBackList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "物品借用归还审批详情")
     @GetMapping(value = "/detailBack")
-    public R<BackDetailVO> detailBack(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<BackDetailVO> detailBack(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplicationsBack = approvalApplicationsService.getById(id);
         OaApprovalApplicationAsset approvalApplicationAssetBack = approvalApplicationAssetService.lambdaQuery()
                 .eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplicationsBack.getId())
                 .last("limit 1").one();
@@ -719,17 +711,17 @@
     @ApiOperation(value = "资产处置-处置资产列表")
     @PostMapping(value = "/detailDisposeList")
     public R<PageInfo<GrabListVO>> detailDisposeList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "资产处置审批详情")
     @GetMapping(value = "/detailDispose")
-    public R<DisposeDetailVO> detailDispose(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<DisposeDetailVO> detailDispose(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
                 .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -770,17 +762,16 @@
     @ApiOperation(value = "资产变更-变更资产列表")
     @PostMapping(value = "/detailChangeList")
     public R<PageInfo<GrabListVO>> detailChangeList(@RequestBody ApprovalDetailQuery query) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(query.getId());
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(query.getId());
         query.setId(approvalApplications.getId());
         PageInfo<GrabListVO> items = approvalApplicationAssetItemService.pageList(query);
         return R.ok(items);
     }
     @ApiOperation(value = "资产变更审批详情")
     @GetMapping(value = "/detailChange")
-    public R<ChangeDetailVO> detailChange(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<ChangeDetailVO> detailChange(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationChange approvalApplicationChange = approvalApplicationChangeService.lambdaQuery()
                 .eq(OaApprovalApplicationChange::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -822,9 +813,9 @@
     }
     @ApiOperation(value = "报销申请审批详情")
     @GetMapping(value = "/detailReimbursement")
-    public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<ReimbursementDetailVO> detailReimbursement(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationReimbursement approvalApplicationReimbursement = approvalApplicationReimbursementService.lambdaQuery()
                 .eq(OaApprovalApplicationReimbursement::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -861,9 +852,9 @@
     }
     @ApiOperation(value = "款项申请审批详情")
     @GetMapping(value = "/detailMoney")
-    public R<MoneyDetailVO> detailMoney(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<MoneyDetailVO> detailMoney(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
                 .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -899,9 +890,9 @@
     }
     @ApiOperation(value = "内部联系单审批详情")
     @GetMapping(value = "/detailContact")
-    public R<ContactDetailVO> detailContact(@ApiParam("待办事项id")Integer id) {
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+    public R<ContactDetailVO> detailContact(@ApiParam("申请单d")Integer id) {
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationMoney approvalApplicationMoney = approvalApplicationMoneyService.lambdaQuery()
                 .eq(OaApprovalApplicationMoney::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
@@ -934,10 +925,10 @@
     }
     @ApiOperation(value = "广告制作审批详情")
     @GetMapping(value = "/detailAdvertisement")
-    public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("待办事项id")Integer id) {
+    public R<AdvertisementDetailVO> detailAdvertisement(@ApiParam("申请单d")Integer id) {
 
-        OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
-        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
+        
+        OaApprovalApplications approvalApplications = approvalApplicationsService.getById(id);
         OaApprovalApplicationAdvertisement applicationAdvertisement = approvalApplicationAdvertisementService.lambdaQuery()
                 .eq(OaApprovalApplicationAdvertisement::getApprovalApplicationId, approvalApplications.getId())
                 .last("limit 1").one();
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
index ed3d44e..38b549b 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaNotificationController.java
@@ -8,23 +8,17 @@
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.TDept;
 import com.ruoyi.common.enums.BusinessType;
-import com.ruoyi.system.dto.SetDeptDTO;
-import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.model.OaNotifationUser;
 import com.ruoyi.system.model.OaNotification;
-import com.ruoyi.system.query.ApprovalListQuery;
 import com.ruoyi.system.query.NotificationListQuery;
 import com.ruoyi.system.service.*;
 import com.ruoyi.system.vo.system.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.sql.Array;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationsMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationsMapper.java
index 0c34f80..1e04dbe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationsMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalApplicationsMapper.java
@@ -1,7 +1,12 @@
 package com.ruoyi.system.mapper;
 
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.OaApprovalApplications;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.system.query.ApprovalTodoListQuery;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +18,6 @@
  */
 public interface OaApprovalApplicationsMapper extends BaseMapper<OaApprovalApplications> {
 
+    List<OaApprovalApplications> pageListAudit(@Param("query")ApprovalTodoListQuery query, @Param("pageInfo")PageInfo<OaApprovalApplications> pageInfo);
+
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalFlowNodeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalFlowNodeMapper.java
index 837dd72..0ba3f7b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalFlowNodeMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalFlowNodeMapper.java
@@ -1,13 +1,7 @@
 package com.ruoyi.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.OaApprovalFlowNode;
-import com.ruoyi.system.query.ApprovalListQuery;
-import com.ruoyi.system.vo.system.ApprovalFlowNodeVO;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
 
 /**
  * <p>
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalMapper.java
index 893db30..387089a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/OaApprovalMapper.java
@@ -4,6 +4,7 @@
 import com.ruoyi.system.model.OaApproval;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.system.query.ApprovalListQuery;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.vo.system.ApprovalVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,6 +20,6 @@
  */
 public interface OaApprovalMapper extends BaseMapper<OaApproval> {
 
-    List<ApprovalVO> pageList(@Param("query")ApprovalListQuery query, @Param("pageInfo")PageInfo<ApprovalVO> pageInfo);
+    List<ApprovalVO> pageList(@Param("query") ApprovalListQuery query, @Param("pageInfo")PageInfo<ApprovalVO> pageInfo);
 
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java
index 0e7fcf3..7d86617 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalDetailQuery.java
@@ -9,7 +9,7 @@
 @ApiModel(value = "审批详情通用query")
 public class ApprovalDetailQuery extends BasePage {
 
-    @ApiModelProperty(value = "待办id")
+    @ApiModelProperty(value = "申请单id")
     private Integer id;
 
     @ApiModelProperty(value = "申请单id 前端忽略")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalListQuery.java
index ffb32df..3fc263f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalListQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalListQuery.java
@@ -9,6 +9,6 @@
 @ApiModel(value = "审批流程分页列表query")
 public class ApprovalListQuery extends BasePage {
 
-    @ApiModelProperty(value = "审批设计id")
-    private Integer id;
+    @ApiModelProperty(value = "审批名称")
+    private String approvalName;
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalNodeListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalNodeListQuery.java
new file mode 100644
index 0000000..393de7c
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalNodeListQuery.java
@@ -0,0 +1,14 @@
+package com.ruoyi.system.query;
+
+import com.ruoyi.common.core.domain.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "审批流程分页列表query")
+public class ApprovalNodeListQuery extends BasePage {
+
+    @ApiModelProperty(value = "审批设计id")
+    private Integer id;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalTodoListQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalTodoListQuery.java
index caa4340..1c74eba 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalTodoListQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/ApprovalTodoListQuery.java
@@ -7,7 +7,7 @@
 import lombok.Data;
 
 @Data
-@ApiModel(value = "代办事项分页列表query")
+@ApiModel(value = "代办事项/我审批的/我发起的分页列表query")
 public class ApprovalTodoListQuery extends BasePage {
 
     @ApiModelProperty("用户id 前端忽略")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationsService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationsService.java
index fab787a..d559afe 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationsService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalApplicationsService.java
@@ -1,7 +1,9 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.OaApprovalApplications;
+import com.ruoyi.system.query.ApprovalTodoListQuery;
 
 /**
  * <p>
@@ -13,4 +15,5 @@
  */
 public interface OaApprovalApplicationsService extends IService<OaApprovalApplications> {
 
+    PageInfo<OaApprovalApplications> pageListAudit(ApprovalTodoListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalFlowNodeService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalFlowNodeService.java
index 107f21d..1bc3f15 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalFlowNodeService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalFlowNodeService.java
@@ -1,11 +1,8 @@
 package com.ruoyi.system.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.OaApprovalFlowNode;
-import com.ruoyi.system.query.ApprovalListQuery;
-import com.ruoyi.system.vo.system.ApprovalFlowNodeVO;
-import com.ruoyi.system.vo.system.ApprovalVO;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 
 import java.util.List;
 
@@ -19,5 +16,5 @@
  */
 public interface OaApprovalFlowNodeService extends IService<OaApprovalFlowNode> {
 
-    List<OaApprovalFlowNode> pageList(ApprovalListQuery query);
+    List<OaApprovalFlowNode> pageList(ApprovalNodeListQuery query);
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalService.java
index be21bc1..55802d4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/OaApprovalService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.query.ApprovalListQuery;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.vo.system.ApprovalVO;
 
 /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
index 2b8cccf..72641db 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalApplicationsServiceImpl.java
@@ -1,10 +1,15 @@
 package com.ruoyi.system.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.system.mapper.OaApprovalApplicationsMapper;
 import com.ruoyi.system.model.OaApprovalApplications;
+import com.ruoyi.system.model.OaApprovalTodo;
+import com.ruoyi.system.query.ApprovalTodoListQuery;
 import com.ruoyi.system.service.OaApprovalApplicationsService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +22,11 @@
 @Service
 public class OaApprovalApplicationsServiceImpl extends ServiceImpl<OaApprovalApplicationsMapper, OaApprovalApplications> implements OaApprovalApplicationsService {
 
+    @Override
+    public PageInfo<OaApprovalApplications> pageListAudit(ApprovalTodoListQuery query) {
+        PageInfo<OaApprovalApplications> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
+        List<OaApprovalApplications> list = this.baseMapper.pageListAudit(query,pageInfo);
+        pageInfo.setRecords( list);
+        return pageInfo;
+    }
 }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalFlowNodeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalFlowNodeServiceImpl.java
index 137e619..b6f4181 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalFlowNodeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalFlowNodeServiceImpl.java
@@ -2,18 +2,15 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ruoyi.common.basic.PageInfo;
 import com.ruoyi.common.core.domain.entity.SysUser;
-import com.ruoyi.common.core.domain.entity.TDept;
 import com.ruoyi.system.mapper.OaApprovalFlowNodeMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
 import com.ruoyi.system.model.OaApprovalFlowNode;
-import com.ruoyi.system.query.ApprovalListQuery;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.service.OaApprovalFlowNodeService;
-import com.ruoyi.system.vo.system.ApprovalFlowNodeVO;
-import com.ruoyi.system.vo.system.ApprovalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
 
 import java.util.List;
 import java.util.Map;
@@ -33,18 +30,27 @@
     @Autowired
     private SysUserMapper sysUserMapper;
     @Override
-    public List<OaApprovalFlowNode> pageList(ApprovalListQuery query) {
+    public List<OaApprovalFlowNode> pageList(ApprovalNodeListQuery query) {
         List<SysUser> sysUsers = sysUserMapper.selectList();
         Map<Long, String> deptMaps = sysUsers.stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
         List<OaApprovalFlowNode> oaApprovalFlowNodes = this.baseMapper.selectList(new LambdaQueryWrapper<OaApprovalFlowNode>()
                 .eq(OaApprovalFlowNode::getApprovalId, query.getId()));
         for (OaApprovalFlowNode approvalVO : oaApprovalFlowNodes) {
             StringBuilder approvalName = new StringBuilder();
-            for (String approvalId : approvalVO.getApprovalIds().split(",")) {
-                String orDefault = deptMaps.getOrDefault(Long.valueOf(approvalId), "");
-                approvalName.append(orDefault).append(",");
+            if (approvalVO.getApprovalType() != 0){
+                for (String approvalId : approvalVO.getApprovalIds().split(",")) {
+                    String orDefault = deptMaps.getOrDefault(Long.valueOf(approvalId), "");
+                    approvalName.append(orDefault).append(",");
+                }
+                if (StringUtils.hasLength(approvalName)){
+                    approvalVO.setApprovalName(approvalName.substring(0,approvalName.length()-1));
+                }else{
+                    approvalVO.setApprovalName("");
+                }
+            }else{
+                approvalVO.setApprovalName("上级部门");
             }
-            approvalVO.setApprovalName(approvalName.substring(0,approvalName.length()-1));
+
         }
         return oaApprovalFlowNodes;
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalServiceImpl.java
index 2d70894..f1d9a1a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OaApprovalServiceImpl.java
@@ -2,13 +2,12 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.basic.PageInfo;
-import com.ruoyi.common.constant.DictConstants;
 import com.ruoyi.common.core.domain.entity.TDept;
-import com.ruoyi.common.utils.DictUtils;
 import com.ruoyi.system.mapper.OaApprovalMapper;
 import com.ruoyi.system.mapper.TDeptMapper;
 import com.ruoyi.system.model.OaApproval;
 import com.ruoyi.system.query.ApprovalListQuery;
+import com.ruoyi.system.query.ApprovalNodeListQuery;
 import com.ruoyi.system.service.OaApprovalService;
 import com.ruoyi.system.vo.system.ApprovalVO;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,11 +39,15 @@
         List<ApprovalVO> list = this.baseMapper.pageList(query,pageInfo);
         for (ApprovalVO approvalVO : list) {
             StringBuilder deptName = new StringBuilder();
-            for (String deptId : approvalVO.getDeptIds().split(",")) {
-                String orDefault = deptMaps.getOrDefault(Integer.parseInt(deptId), "");
-                deptName.append(orDefault).append(",");
+            if(StringUtils.hasLength(approvalVO.getDeptIds())&&approvalVO.getDeptIds().equals("-1")){
+                approvalVO.setDeptName("所有部门");
+            }else{
+                for (String deptId : approvalVO.getDeptIds().split(",")) {
+                    String orDefault = deptMaps.getOrDefault(Integer.parseInt(deptId), "");
+                    deptName.append(orDefault).append(",");
+                }
+                approvalVO.setDeptName(deptName.substring(0,deptName.length()-1));
             }
-            approvalVO.setDeptName(deptName.substring(0,deptName.length()-1));
         }
         pageInfo.setRecords(list);
         return pageInfo;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java
index eae6603..ed24be4 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ApprovalTodoVO.java
@@ -42,8 +42,7 @@
 
     private LocalDateTime createTime;
 
-    @ApiModelProperty(value = "代办id")
-    private Integer id;
+
     @ApiModelProperty(value = "审批申请ID")
     private Integer applicationId;
     @ApiModelProperty(value = "报销金额/申请金额/合计金额/总金额(报销申请/款项申请/款项支付审批/广告制作)")
diff --git a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationsMapper.xml
index 48c25e7..768b50d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/OaApprovalApplicationsMapper.xml
@@ -27,5 +27,12 @@
     <sql id="Base_Column_List">
         id, application_code, approval_id, applicant_user_id, applicant_name, dept_id, dept_name, application_date, application_reason, approval_status, attachment_url, current_flow_node_id, create_time, create_by, update_time, update_by, disabled
     </sql>
+    <select id="pageListAudit" resultType="com.ruoyi.system.model.OaApprovalApplications">
+        select * from oa_approval_applications
+        where 1=1
+        <if test="query.userId != null ">
+            and applicant_user_id like concat('%',#{query.userId},'%')
+        </if>
+    </select>
 
 </mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index d960d8d..8100356 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -171,7 +171,7 @@
     <select id="selectList" resultType="com.ruoyi.common.core.domain.entity.SysUser">
 		select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
 			   u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,u.code,
-			   u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack, u.districtId AS districtId
+			   u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack
 		from sys_user u
 		WHERE u.del_flag = 0
 	</select>
@@ -187,7 +187,7 @@
 	<select id="selectListByNamePhone" resultType="com.ruoyi.common.core.domain.entity.SysUser">
 		select u.user_id AS userId, u.dept_id AS deptId, u.user_name AS userName, u.nick_name AS nickName, u.email AS email, u.avatar AS avatar,
 		u.phonenumber AS phonenumber, u.sex AS sex, u.status AS status, u.del_flag AS delFlag, u.login_ip AS loginIp,u.code,
-		u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack, u.districtId AS districtId
+		u.login_date AS loginDate, u.create_by AS createBy, u.create_time AS createTime, u.remark AS remark,u.ifBlack AS ifBlack
 		from sys_user u
 		WHERE u.del_flag = 0
 		<if test="name != null and name != ''">

--
Gitblit v1.7.1