From 10f6e465c9753ff99099a22aabe72ede4e25eab7 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 23 九月 2025 13:59:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java |  997 ++++++++++-----------------------------------------------
 1 files changed, 182 insertions(+), 815 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java
index 9f60e44..c973ef5 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
@@ -7,22 +7,89 @@
 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.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.framework.web.service.TokenService;
-import com.ruoyi.system.dto.AddLeaveDTO;
 import com.ruoyi.system.dto.AuditDTO;
 import com.ruoyi.system.emums.ApprovalTypeEnum;
-import com.ruoyi.system.model.*;
+import com.ruoyi.system.model.AssetMain;
+import com.ruoyi.system.model.AssetType;
+import com.ruoyi.system.model.OaApproval;
+import com.ruoyi.system.model.OaApprovalApplicationAdvertisement;
+import com.ruoyi.system.model.OaApprovalApplicationAsset;
+import com.ruoyi.system.model.OaApprovalApplicationAssetItem;
+import com.ruoyi.system.model.OaApprovalApplicationAttendance;
+import com.ruoyi.system.model.OaApprovalApplicationChange;
+import com.ruoyi.system.model.OaApprovalApplicationContract;
+import com.ruoyi.system.model.OaApprovalApplicationDispose;
+import com.ruoyi.system.model.OaApprovalApplicationMoney;
+import com.ruoyi.system.model.OaApprovalApplicationPayment;
+import com.ruoyi.system.model.OaApprovalApplicationPurchase;
+import com.ruoyi.system.model.OaApprovalApplicationReimbursement;
+import com.ruoyi.system.model.OaApprovalApplicationReimbursementItem;
+import com.ruoyi.system.model.OaApprovalApplicationStorage;
+import com.ruoyi.system.model.OaApprovalApplications;
+import com.ruoyi.system.model.OaApprovalFlowAudit;
+import com.ruoyi.system.model.OaApprovalFlowNode;
+import com.ruoyi.system.model.OaApprovalTodo;
 import com.ruoyi.system.query.ApprovalDetailQuery;
 import com.ruoyi.system.query.ApprovalTodoListQuery;
-import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.*;
+import com.ruoyi.system.service.AssetMainService;
+import com.ruoyi.system.service.AssetTypeService;
+import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.system.service.OaApprovalApplicationAdvertisementService;
+import com.ruoyi.system.service.OaApprovalApplicationAssetItemService;
+import com.ruoyi.system.service.OaApprovalApplicationAssetService;
+import com.ruoyi.system.service.OaApprovalApplicationAttendanceService;
+import com.ruoyi.system.service.OaApprovalApplicationChangeService;
+import com.ruoyi.system.service.OaApprovalApplicationContactService;
+import com.ruoyi.system.service.OaApprovalApplicationContractService;
+import com.ruoyi.system.service.OaApprovalApplicationDisposeService;
+import com.ruoyi.system.service.OaApprovalApplicationMoneyService;
+import com.ruoyi.system.service.OaApprovalApplicationPaymentService;
+import com.ruoyi.system.service.OaApprovalApplicationPurchaseItemService;
+import com.ruoyi.system.service.OaApprovalApplicationPurchaseService;
+import com.ruoyi.system.service.OaApprovalApplicationReimbursementItemService;
+import com.ruoyi.system.service.OaApprovalApplicationReimbursementService;
+import com.ruoyi.system.service.OaApprovalApplicationStorageAssetService;
+import com.ruoyi.system.service.OaApprovalApplicationStorageService;
+import com.ruoyi.system.service.OaApprovalApplicationsService;
+import com.ruoyi.system.service.OaApprovalFlowAuditService;
+import com.ruoyi.system.service.OaApprovalFlowNodeService;
+import com.ruoyi.system.service.OaApprovalFlowService;
+import com.ruoyi.system.service.OaApprovalService;
+import com.ruoyi.system.service.OaApprovalTodoService;
+import com.ruoyi.system.service.TDeptService;
+import com.ruoyi.system.vo.AdvertisementDetailVO;
+import com.ruoyi.system.vo.ApprovalFlowNodeListVO;
+import com.ruoyi.system.vo.ApprovalTodoVO;
+import com.ruoyi.system.vo.BackDetailVO;
+import com.ruoyi.system.vo.BorrowDetailVO;
+import com.ruoyi.system.vo.BusinessTripDetailVO;
+import com.ruoyi.system.vo.ChangeDetailVO;
+import com.ruoyi.system.vo.ContactDetailVO;
+import com.ruoyi.system.vo.ContractDetailVO;
+import com.ruoyi.system.vo.DisposeDetailVO;
+import com.ruoyi.system.vo.GrabDetailVO;
+import com.ruoyi.system.vo.GrabListVO;
+import com.ruoyi.system.vo.LeaveDestroyDetailVO;
+import com.ruoyi.system.vo.LeaveDetailVO;
+import com.ruoyi.system.vo.MoneyDetailVO;
+import com.ruoyi.system.vo.OutDetailVO;
+import com.ruoyi.system.vo.PaymentDetailVO;
+import com.ruoyi.system.vo.PurchaseDetailVO;
+import com.ruoyi.system.vo.PurchaseListVO;
+import com.ruoyi.system.vo.ReimbursementDetailVO;
+import com.ruoyi.system.vo.StorageDetailVO;
+import com.ruoyi.system.vo.StorageListVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
@@ -74,6 +141,8 @@
     private OaApprovalApplicationMoneyService approvalApplicationMoneyService;
     @Resource
     private AssetMainService assetMainService;
+    @Resource
+    private OaApprovalApplicationStorageAssetService oaApprovalApplicationStorageAssetService;
     @Resource
     private OaApprovalApplicationReimbursementService approvalApplicationReimbursementService;
     @Resource
@@ -457,816 +526,114 @@
         res.setRecords(resList);
         return R.ok(res);
     }
+            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;
+    }
 
 
-//    @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();
-//    }
+
+    @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);
+                }
+                //如果为资产入库审批,处理审批通过逻辑,创建该审批的资产信息
+                if (approval.getApprovalCategory().equals(ApprovalTypeEnum.IN_STOCK.getCode())) {
+                    assetMainService.saveAssetByApprovalApplicationId(approvalApplications.getId());
+                }
+            }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();
+    }
 }
 

--
Gitblit v1.7.1