From 9c76b7efccd70395231b032a193a89f7638b657e Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 22 十月 2025 17:41:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java |   84 +++++++++++++++++++----------------------
 1 files changed, 39 insertions(+), 45 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 192d1eb..bd7634d 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
@@ -12,7 +12,6 @@
 import com.ruoyi.system.dto.AuditDTO;
 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.service.*;
 
@@ -23,35 +22,12 @@
 import com.ruoyi.system.service.OaApprovalService;
 import com.ruoyi.system.service.OaApprovalTodoService;
 import com.ruoyi.system.service.TDeptService;
-import com.ruoyi.system.vo.AdvertisementDetailVO;
-import com.ruoyi.system.vo.ApprovalFlowNodeListVO;
 import com.ruoyi.system.vo.ApprovalTodoVO;
-import com.ruoyi.system.vo.BackDetailVO;
-import com.ruoyi.system.vo.BorrowDetailVO;
-import com.ruoyi.system.vo.BusinessTripDetailVO;
-import com.ruoyi.system.vo.ChangeDetailVO;
-import com.ruoyi.system.vo.ContactDetailVO;
-import com.ruoyi.system.vo.ContractDetailVO;
-import com.ruoyi.system.vo.DisposeDetailVO;
-import com.ruoyi.system.vo.GrabDetailVO;
-import com.ruoyi.system.vo.GrabListVO;
-import com.ruoyi.system.vo.LeaveDestroyDetailVO;
-import com.ruoyi.system.vo.LeaveDetailVO;
-import com.ruoyi.system.vo.MoneyDetailVO;
-import com.ruoyi.system.vo.OutDetailVO;
-import com.ruoyi.system.vo.PaymentDetailVO;
-import com.ruoyi.system.vo.PurchaseDetailVO;
-import com.ruoyi.system.vo.PurchaseListVO;
-import com.ruoyi.system.vo.ReimbursementDetailVO;
-import com.ruoyi.system.vo.StorageDetailVO;
-import com.ruoyi.system.vo.StorageListVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -97,7 +73,7 @@
     @Resource
     private OaApprovalApplicationsService approvalApplicationsService;
     @Resource
-    private OaApprovalApplicationAdvertisementService approvalApplicationAdvertisementService;
+    private OaApprovalApplicationAdService approvalApplicationAdvertisementService;
     @Resource
     private OaApprovalApplicationContactService approvalApplicationContactService;
     @Resource
@@ -182,9 +158,9 @@
         Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery()
                 .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId));
-        Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery()
-                .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list()
-                .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery()
+                .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e));
         Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
                 .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
@@ -193,10 +169,20 @@
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
-        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
+        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds)
+                .orderByDesc(OaApprovalApplications::getCreateTime).list();
+        Map<Integer, OaApprovalFlowAudit> auditMap = approvalFlowAuditService.lambdaQuery().in(OaApprovalFlowAudit::getApprovalApplicationId, applicationIds)
+                .eq(OaApprovalFlowAudit::getUserId, userId)
+                .list().stream().collect(Collectors.toMap(OaApprovalFlowAudit::getApprovalApplicationId, e -> e));
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
-            approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus());
+            approvalTodoVO.setReason(approvalApplication.getReason());
+            OaApprovalFlowAudit approvalFlowAudit = auditMap.get(approvalApplication.getId());
+            if(approvalFlowAudit.getApprovalStatus()!=null){
+                approvalTodoVO.setApprovalStatus(approvalFlowAudit.getApprovalStatus()?2:3);
+            }else{
+                approvalTodoVO.setApprovalStatus(1);
+            }
             approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason());
             approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
             switch (approvalTodoVO.getApprovalCategory()){
@@ -327,11 +313,11 @@
                     }
                     break;
                 case 17:
-                    OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId());
-                    if (oaApprovalApplicationAdvertisement!=null){
-                        approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle());
-                        approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent());
-                        approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount());
+                    OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAd !=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle());
+                        approvalTodoVO.setContent(oaApprovalApplicationAd.getContent());
+                        approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount());
                     }
                     break;
             }
@@ -383,9 +369,9 @@
         Map<Integer, List<OaApprovalApplicationAssetItem>> approvalApplicationAssetItemMap = approvalApplicationAssetItemService.lambdaQuery()
                 .in(OaApprovalApplicationAssetItem::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.groupingBy(OaApprovalApplicationAssetItem::getApprovalApplicationId));
-        Map<Integer, OaApprovalApplicationAdvertisement> approvalApplicationAdvertisementMap = approvalApplicationAdvertisementService.lambdaQuery()
-                .in(OaApprovalApplicationAdvertisement::getApprovalApplicationId, applicationIds).list()
-                .stream().collect(Collectors.toMap(OaApprovalApplicationAdvertisement::getApprovalApplicationId, e -> e));
+        Map<Integer, OaApprovalApplicationAd> approvalApplicationAdMap = approvalApplicationAdvertisementService.lambdaQuery()
+                .in(OaApprovalApplicationAd::getApprovalApplicationId, applicationIds).list()
+                .stream().collect(Collectors.toMap(OaApprovalApplicationAd::getApprovalApplicationId, e -> e));
         Map<Integer, OaApprovalApplicationAttendance> applicationAttendanceMap = approvalApplicationAttendanceService.lambdaQuery()
                 .in(OaApprovalApplicationAttendance::getApprovalApplicationId, applicationIds).list()
                 .stream().collect(Collectors.toMap(OaApprovalApplicationAttendance::getApprovalApplicationId, e -> e));
@@ -394,9 +380,11 @@
         Map<Long, SysUser> userMap = sysUserService.selectAllList().stream().collect(Collectors.toMap(SysUser::getUserId, e -> e));
         Map<Integer, TDept> deptMap = deptService.list().stream().collect(Collectors.toMap(TDept::getId, e -> e));
         Map<Integer, OaApproval> approvalMap = approvalService.list().stream().collect(Collectors.toMap(OaApproval::getId, e -> e));
-        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery().in(OaApprovalApplications::getId, applicationIds).list();
+        List<OaApprovalApplications> approvalApplications = approvalApplicationsService.lambdaQuery()
+                .orderByDesc(OaApprovalApplications::getCreateTime).in(OaApprovalApplications::getId, applicationIds).list();
         for (OaApprovalApplications approvalApplication : approvalApplications) {
             ApprovalTodoVO approvalTodoVO = new ApprovalTodoVO();
+            approvalTodoVO.setReason(approvalApplication.getReason());
             approvalTodoVO.setApprovalStatus(approvalApplication.getApprovalStatus());
             approvalTodoVO.setApplicationReason(approvalApplication.getApplicationReason());
             approvalTodoVO.setApprovalCategory(approvalMap.get(approvalApplication.getApprovalId()).getApprovalCategory());
@@ -528,11 +516,11 @@
                     }
                     break;
                 case 17:
-                    OaApprovalApplicationAdvertisement oaApprovalApplicationAdvertisement = approvalApplicationAdvertisementMap.get(approvalApplication.getId());
-                    if (oaApprovalApplicationAdvertisement!=null){
-                        approvalTodoVO.setTitle(oaApprovalApplicationAdvertisement.getTitle());
-                        approvalTodoVO.setContent(oaApprovalApplicationAdvertisement.getContent());
-                        approvalTodoVO.setAmount(oaApprovalApplicationAdvertisement.getTotalAmount());
+                    OaApprovalApplicationAd oaApprovalApplicationAd = approvalApplicationAdMap.get(approvalApplication.getId());
+                    if (oaApprovalApplicationAd !=null){
+                        approvalTodoVO.setTitle(oaApprovalApplicationAd.getTitle());
+                        approvalTodoVO.setContent(oaApprovalApplicationAd.getContent());
+                        approvalTodoVO.setAmount(oaApprovalApplicationAd.getTotalAmount());
                     }
                     break;
             }
@@ -568,6 +556,7 @@
         if (dto.getApprovalStatus() == 0) {
             // 中断审批流程
             approvalApplications.setApprovalStatus(3);
+            approvalApplications.setReason(dto.getReason());
             approvalApplicationsService.updateById(approvalApplications);
             // 删除除当前审批人该申请单的未处理的所有待办
             approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
@@ -590,6 +579,11 @@
                 .eq(OaApprovalFlowNode::getStatus,1)
                 .orderByAsc(OaApprovalFlowNode::getSortOrder).list();
         if (dto.getApprovalStatus() == 1) {
+            // 删除同节点待办事项
+            approvalTodoService.remove(new LambdaQueryWrapper<OaApprovalTodo>()
+                    .ne(OaApprovalTodo::getUserId,userId)
+                    .eq(OaApprovalTodo::getApplicationId, approvalApplications.getId())
+                    .eq(OaApprovalTodo::getFlowNodeId, currentFlowNodeId));
             // 判断当前是否处于最后一个节点
             if (approvalApplications.getCurrentFlowNodeId().equals(approvalFlowNodes.get(approvalFlowNodes.size() - 1).getId())) {
                 // 审批通过 审批流程结束
@@ -683,7 +677,7 @@
 
     private  void saveAssetRecord(Integer type, String approvalType,List<Integer> assetMainIds) {
         List<AssetInventoryRecord> res = new ArrayList<>();
-        Map<Integer, Integer> warehouseMap = assetMainService.list().stream().collect(Collectors.toMap(AssetMain::getId, AssetMain::getWarehouseId));
+        Map<Integer, Integer> warehouseMap = assetMainService.lambdaQuery().isNotNull(AssetMain::getWarehouseId).list().stream().collect(Collectors.toMap(AssetMain::getId, AssetMain::getWarehouseId));
         for (Integer assetMainId : assetMainIds) {
             AssetInventoryRecord assetInventoryRecord = new AssetInventoryRecord();
             assetInventoryRecord.setAssetMainId(assetMainId);

--
Gitblit v1.7.1