From 0e6da184ed0a6d511a17e1ed86a470cda71c0f3b Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 22 九月 2025 16:51:13 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalTodoController.java |  708 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 658 insertions(+), 50 deletions(-)

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 f6309e8..24058d2 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
@@ -10,12 +10,11 @@
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.system.emums.ApprovalTypeEnum;
 import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.ApprovalDetailQuery;
 import com.ruoyi.system.query.ApprovalTodoListQuery;
 import com.ruoyi.system.query.NotificationListQuery;
 import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.ApprovalFlowNodeListVO;
-import com.ruoyi.system.vo.ApprovalTodoVO;
-import com.ruoyi.system.vo.ContractDetailVO;
+import com.ruoyi.system.vo.*;
 import com.ruoyi.system.vo.system.NotificationVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
@@ -50,6 +49,8 @@
     private OaApprovalApplicationStorageService approvalApplicationStorageService;
     @Resource
     private OaApprovalApplicationPurchaseService approvalApplicationPurchaseService;
+    @Resource
+    private OaApprovalApplicationPurchaseItemService approvalApplicationPurchaseItemService;
     @Resource
     private OaApprovalApplicationAssetItemService approvalApplicationAssetItemService;
     @Resource
@@ -90,32 +91,12 @@
     @Resource
     private TDeptService deptService;
     @Resource
+    private AssetTypeService assetTypeService;
+    @Resource
     private OaApprovalTodoService oaApprovalTodoService;
     @Resource
     private OaApprovalFlowService  approvalFlowService;
-    @ApiOperation("测试接口")
-    @PostMapping("/test")
-    public void test() {
-        List<OaApproval> approvals = approvalService.list();
-        List<OaApprovalFlow> list = approvalFlowService.list();
-        List<OaApprovalFlowNode> oaApprovalFlowNodes = new ArrayList<>();
-        for (OaApproval approval : approvals) {
-            int i = 1;
-            for (OaApprovalFlow oaApprovalFlow : list) {
-                OaApprovalFlowNode oaApprovalFlowNode = new OaApprovalFlowNode();
-                oaApprovalFlowNode.setApprovalId(approval.getId());
-                oaApprovalFlowNode.setApprovalFlowId(oaApprovalFlow.getId());
-                oaApprovalFlowNode.setFlowName(oaApprovalFlow.getFlowName());
-                oaApprovalFlowNode.setSortOrder(i);
-                oaApprovalFlowNode.setApprovalType(0);
-                oaApprovalFlowNode.setStatus(true);
-                oaApprovalFlowNode.setSignFlag(true);
-                i++;
-                oaApprovalFlowNodes.add(oaApprovalFlowNode);
-            }
-        }
-        approvalFlowNodeService.saveBatch(oaApprovalFlowNodes);
-    }
+
 
 
     @ApiOperation("待办事项列表")
@@ -304,7 +285,7 @@
 
     @ApiOperation(value = "合同文件审批详情")
     @GetMapping(value = "/detailContract")
-    public R<ContractDetailVO> detailContract(@ApiParam("待办列表id") Integer id) {
+    public R<ContractDetailVO> detailContract(@ApiParam("待办事项id")Integer id) {
         OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
         OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
@@ -318,7 +299,15 @@
                 .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.CONTRACT.getCode())
                 .orderByAsc(OaApprovalFlowNode::getSortOrder)
                 .eq(OaApprovalFlowNode::getStatus, 1).list();
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(approvalApplications, res, approvalFlowAudits,approvalFlowNodes);
+        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());
@@ -328,43 +317,671 @@
     }
     @ApiOperation(value = "进度款支付审批详情")
     @GetMapping(value = "/detailPayment")
-    public R<ContractDetailVO> detailPayment(@ApiParam("待办列表id") Integer id) {
+    public R<PaymentDetailVO> detailPayment(@ApiParam("待办事项id")Integer id) {
         OaApprovalTodo approvalTodo = approvalTodoService.getById(id);
         OaApprovalApplications approvalApplications = approvalApplicationsService.getById(approvalTodo.getApplicationId());
-        OaApprovalApplicationContract approvalApplicationContract = approvalApplicationContractService.lambdaQuery()
-                .eq(OaApprovalApplicationContract::getApprovalApplicationId, approvalApplications.getId())
+        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();
-        ContractDetailVO res = new ContractDetailVO();
+        PaymentDetailVO res = new PaymentDetailVO();
         List<OaApprovalFlowNode> approvalFlowNodes = approvalFlowNodeService.lambdaQuery()
                 .eq(OaApprovalFlowNode::getApprovalId, ApprovalTypeEnum.PAYMENT.getCode())
                 .orderByAsc(OaApprovalFlowNode::getSortOrder)
                 .eq(OaApprovalFlowNode::getStatus, 1).list();
-        List<ApprovalFlowNodeListVO> flowNodeList = getFlowNodeList(approvalApplications, res, approvalFlowAudits,approvalFlowNodes);
+        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());
+        // todo 三阶段设计项目表之后完善
+        res.setProjectName("本期还未涉及到项目");
+        res.setApplyAmount(approvalApplicationPayment.getApplyAmount());
         return R.ok(res);
     }
-    private List<ApprovalFlowNodeListVO> getFlowNodeList(OaApprovalApplications approvalApplications, ContractDetailVO res, List<OaApprovalFlowAudit> approvalFlowAudits
+    @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("发起");
-        SysUser sysUser = sysUserService.selectUserById(approvalApplications.getApplicantUserId().longValue());
         if (sysUser!=null){
             approvalFlowNodeListVO.setUserName(sysUser.getUserName());
-            res.setUserName(sysUser.getUserName());
-            TDept dept = deptService.getById(sysUser.getDeptId());
-            if (dept!=null){
-                res.setDeptName(dept.getDeptName());
-            }
         }
         approvalFlowNodeListVOS.add(approvalFlowNodeListVO);
         for (OaApprovalFlowNode approvalFlowNode : approvalFlowNodes) {
@@ -379,15 +996,6 @@
             }else{
                 approvalFlowNodeVO.setFlowName(approvalFlowNode.getFlowName());
             }
-            approvalFlowNodeListVOS.add(approvalFlowNodeVO);
-
-        }
-        for (OaApprovalFlowAudit approvalFlowAudit : approvalFlowAudits) {
-            ApprovalFlowNodeListVO approvalFlowNodeVO = new ApprovalFlowNodeListVO();
-            approvalFlowNodeVO.setFlowName(approvalFlowAudit.getFlowName());
-            approvalFlowNodeVO.setUserName(approvalFlowAudit.getUserName());
-            approvalFlowNodeVO.setSignPicUrl(approvalFlowAudit.getSignPicUrl());
-            approvalFlowNodeVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus());
             approvalFlowNodeListVOS.add(approvalFlowNodeVO);
         }
         return approvalFlowNodeListVOS;

--
Gitblit v1.7.1