From f769d817f8ba2522147c73fa93ccacdc3aab0cb6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 24 十月 2025 18:15:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/OaApprovalFlowAuditController.java | 151 ++++++++++++++++++++++++++++++++------------------
1 files changed, 97 insertions(+), 54 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..3ebd6e8 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()){
@@ -277,7 +263,7 @@
if (oaApprovalApplicationAssetBack!=null){
approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
- approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
+ approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getOperateTime());
}
break;
case 10:
@@ -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());
@@ -478,7 +466,7 @@
if (oaApprovalApplicationAssetBack!=null){
approvalTodoVO.setTitle(oaApprovalApplicationAssetBack.getTitle());
- approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getExpectReturnDate());
+ approvalTodoVO.setOperateTime(oaApprovalApplicationAssetBack.getOperateTime());
}
break;
case 10:
@@ -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())) {
// 审批通过 审批流程结束
@@ -607,27 +601,72 @@
List<OaApprovalApplicationAssetItem> back = approvalApplicationAssetItemService.lambdaQuery()
.eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, approvalApplications.getId())
.list();
- // 借用资产条数
- OaApprovalApplicationAsset borrowApplications = approvalApplicationAssetService.lambdaQuery()
+ OaApprovalApplicationAsset backAsset = approvalApplicationAssetService.lambdaQuery()
.eq(OaApprovalApplicationAsset::getApprovalApplicationId, approvalApplications.getId())
.last("limit 1").one();
+ // 借用资产条数
List<OaApprovalApplicationAssetItem> borrow = approvalApplicationAssetItemService.lambdaQuery()
- .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, borrowApplications.getId())
+ .eq(OaApprovalApplicationAssetItem::getApprovalApplicationId, backAsset.getBorrowApplicationId())
.list();
+ List<AssetMain> list = assetMainService.lambdaQuery().in(AssetMain::getId, back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+ .collect(Collectors.toList()))
+ .list();
+ List<AssetMain> listBorrow = assetMainService.lambdaQuery().in(AssetMain::getId, borrow.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
+ .collect(Collectors.toList()))
+ .list();
+ OaApprovalApplicationAsset borrowApplicationAsset = approvalApplicationAssetService.lambdaQuery()
+ .eq(OaApprovalApplicationAsset::getApprovalApplicationId, backAsset.getBorrowApplicationId())
+ .last("limit 1").one();
if (back.size()==borrow.size()){
- borrowApplications.setReturnStatus(2);
+ for (AssetMain assetMain : list) {
+ assetMain.setBorrowed(0);
+ assetMain.setAssetStatus("闲置");
+ }
+
+ backAsset.setReturnStatus(2);
+ borrowApplicationAsset.setReturnStatus(2);
}else if (!back.isEmpty()){
- borrowApplications.setReturnStatus(1);
+ for (AssetMain assetMain : list) {
+ assetMain.setBorrowed(1);
+
+ }
+ backAsset.setReturnStatus(1);
+ borrowApplicationAsset.setReturnStatus(1);
+
}else{
- borrowApplications.setReturnStatus(0);
+ for (AssetMain assetMain : list) {
+ assetMain.setBorrowed(1);
+
+ }
+ backAsset.setReturnStatus(0);
+ borrowApplicationAsset.setReturnStatus(0);
+
}
- approvalApplicationAssetService.updateById(borrowApplications);
+ assetMainService.updateBatchById(list);
+
+
+ approvalApplicationAssetService.updateById(backAsset);
+ approvalApplicationAssetService.updateById(borrowApplicationAsset);
saveAssetRecord(0,ApprovalTypeEnum.RETURN.getDesc(),back.stream().map(OaApprovalApplicationAssetItem::getAssetMainId)
.collect(Collectors.toList()));
case 10:
+ OaApprovalApplicationDispose approvalApplicationDispose = approvalApplicationDisposeService.lambdaQuery()
+ .eq(OaApprovalApplicationDispose::getApprovalApplicationId, approvalApplications.getId())
+ .last("limit 1").one();
assetMains.forEach(assetMain -> {
assetMain.setDisposed(1);
+ switch (approvalApplicationDispose.getDisposeType()){
+ case 0:
+ assetMain.setAssetStatus("报废");
+ break;
+ case 1:
+ assetMain.setAssetStatus("报损");
+ break;
+ case 2:
+ assetMain.setAssetStatus("捐赠");
+ break;
+ }
});
saveAssetRecord(null,ApprovalTypeEnum.ASSET_DISPOSE.getDesc(),assetMains
.stream().map(AssetMain::getId).collect(Collectors.toList()));
@@ -635,13 +674,17 @@
case 7:
assetMains.forEach(assetMain -> {
assetMain.setInUse(1);
+ assetMain.setAssetStatus("使用中");
});
saveAssetRecord(1,ApprovalTypeEnum.GRAB.getDesc(),assetMains
.stream().map(AssetMain::getId).collect(Collectors.toList()));
break;
+
+
default:
assetMains.forEach(assetMain -> {
assetMain.setBorrowed(1);
+ assetMain.setAssetStatus("使用中");
});
saveAssetRecord(1,ApprovalTypeEnum.BORROW.getDesc(),assetMains
.stream().map(AssetMain::getId).collect(Collectors.toList()));
@@ -683,7 +726,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