From 9cd4074a456fd5c422506279191b6015836347e5 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 30 十月 2026 10:08:35 +0800
Subject: [PATCH] feat: 设备台账启用状态、审批签核展示与导入健壮性
---
src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java | 37 ++++++++++++++++++++++++++++++++++---
1 files changed, 34 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
index 8d7477b..0da8831 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApprovalInstanceServiceImpl.java
@@ -111,7 +111,6 @@
if (TypeEnums.PURCHASE_APPROVAL.getCode().equals(vo.getBusinessType())) {
// 閲囪喘瀹℃壒 - 鏌ヨ閲囪喘鍗曞彿
PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(vo.getBusinessId());
- System.out.println("涓氬姟绫诲瀷锛�" + purchaseLedger.getPurchaseContractNumber());
if (purchaseLedger != null) {
vo.setPurchaseContractNumber(purchaseLedger.getPurchaseContractNumber());
}
@@ -150,10 +149,23 @@
.eq(ApprovalTask::getDeleted, 0)
).stream().collect(Collectors.groupingBy(ApprovalTask::getInstanceId));
+ // 浠诲姟琛ㄦ湰韬笉瀛樺鎵规柟寮忥紝鎸夎妭鐐瑰疄渚嬪洖濉細绛�/鎴栫锛岄伩鍏嶅墠绔粺涓�鏄剧ず涓轰細绛�
+ Map<Long, String> nodeApproveTypeMap = approvalInstanceNodeService.list(
+ Wrappers.<ApprovalInstanceNode>lambdaQuery()
+ .in(ApprovalInstanceNode::getInstanceId, instanceIds)
+ .eq(ApprovalInstanceNode::getDeleted, 0)
+ ).stream().collect(Collectors.toMap(
+ ApprovalInstanceNode::getId,
+ node -> node.getApproveType() == null ? "" : node.getApproveType(),
+ (existing, replacement) -> existing
+ ));
+
for (ApprovalInstanceVo vo : records) {
vo.setIsApprove(approveProcessConfigNodeUtils.isCurrentApprover(vo.getId(), currentUserId));
vo.setRecords(recordMap.getOrDefault(vo.getId(), new ArrayList<>()));
- vo.setTasks(taskMap.getOrDefault(vo.getId(), new ArrayList<>()));
+ List<ApprovalTask> instanceTasks = taskMap.getOrDefault(vo.getId(), new ArrayList<>());
+ instanceTasks.forEach(task -> task.setApproveType(nodeApproveTypeMap.get(task.getNodeId())));
+ vo.setTasks(instanceTasks);
vo.setStorageBlobVOList(fileUtil.getStorageBlobVOsByRecordTypeAndRecordId(RecordTypeEnum.APPROVAL_INSTANCE, vo.getId()));
}
@@ -745,10 +757,29 @@
String title = StringUtils.hasText(instance.getTemplateName()) ? instance.getTemplateName() : "瀹℃壒鎻愰啋";
String message = "瀹℃壒鍗曞彿 " + instance.getInstanceNo() + " 闇�瑕佹偍瀹℃壒";
- String jumpPath = "/officeProcessAutomation/ApproveManage/approve-list?id=" + instance.getId();
+ String jumpPath = getJumpPathByBusinessType(instance.getBusinessType(), instance.getId());
sysNoticeService.simpleNoticeByUser(title, message, approverIds, jumpPath);
}
+ private String getJumpPathByBusinessType(Long businessType, Long instanceId) {
+ if (businessType == null) {
+ return "/collaborativeApproval/approve-list?id=" + instanceId;
+ }
+ if (TypeEnums.LEAVE_APPROVAL.getCode().equals(businessType)) {
+ return "/collaborativeApproval/AttendManage/leave-apply?id=" + instanceId;
+ }
+ if (TypeEnums.OVERTIME_APPROVAL.getCode().equals(businessType)) {
+ return "/collaborativeApproval/AttendManage/overtime-apply?id=" + instanceId;
+ }
+ if (TypeEnums.TRAVEL_REIMBURSEMENT_APPROVAL.getCode().equals(businessType)) {
+ return "/collaborativeApproval/ReimburseManage/travel-reimburse?id=" + instanceId;
+ }
+ if (TypeEnums.EXPENSE_APPROVAL.getCode().equals(businessType)) {
+ return "/collaborativeApproval/ReimburseManage/cost-reimburse?id=" + instanceId;
+ }
+ return "/collaborativeApproval/approve-list?id=" + instanceId;
+ }
+
private void sendEnterpriseNewsNotice(Long newsId) {
EnterpriseNews enterpriseNews = enterpriseNewsMapper.selectById(newsId);
if (enterpriseNews == null) {
--
Gitblit v1.9.3