From f83950d292a8933390b3b4b516f90f21a9946c68 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 27 八月 2026 11:41:47 +0800
Subject: [PATCH] fix  修复逻辑缺陷

---
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseInvoiceController.java |    2 +-
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java   |    2 +-
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java     |   12 +++++++-----
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java |    2 +-
 yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java                           |    2 ++
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java  |   12 ++++++++----
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceExceptionServiceImpl.java   |   10 ++++++++--
 yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java    |    2 +-
 8 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseInvoiceController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseInvoiceController.java
index 0a2c755..589abc7 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseInvoiceController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseInvoiceController.java
@@ -51,7 +51,7 @@
 
 @Tag(name = "绠$悊鍚庡彴 - ERP 閲囪喘鏉ョエ")
 @RestController
-@RequestMapping({"/erp/purchase-invoice", "/purchase/invoice"})
+@RequestMapping({"/purchase/invoice", "/erp/purchase-invoice"})
 @Validated
 public class ErpPurchaseInvoiceController {
 
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
index 8837685..82ea65b 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseOrderController.java
@@ -47,7 +47,7 @@
 
 @Tag(name = "绠$悊鍚庡彴 - ERP 閲囪喘璁㈠崟")
 @RestController
-@RequestMapping({"/erp/purchase-order", "/purchase/order"})
+@RequestMapping({"/purchase/order", "/erp/purchase-order"})
 @Validated
 public class ErpPurchaseOrderController {
 
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
index 858b26a..6f85bef 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchasePlanController.java
@@ -48,7 +48,7 @@
 
 @Tag(name = "绠$悊鍚庡彴 - ERP 閲囪喘璁″垝")
 @RestController
-@RequestMapping({"/erp/purchase-plan", "/purchase/plan"})
+@RequestMapping({"/purchase/plan", "/erp/purchase-plan"})
 @Validated
 public class ErpPurchasePlanController {
 
diff --git a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
index e915b0e..ed0bed4 100644
--- a/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
+++ b/yudao-module-erp/src/main/java/cn/iocoder/yudao/module/erp/controller/admin/purchase/ErpPurchaseRequestController.java
@@ -47,7 +47,7 @@
 
 @Tag(name = "绠$悊鍚庡彴 - ERP 閲囪喘鐢宠")
 @RestController
-@RequestMapping({"/erp/purchase-request", "/purchase/request"})
+@RequestMapping({"/purchase/request", "/erp/purchase-request"})
 @Validated
 public class ErpPurchaseRequestController {
 
diff --git a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
index c377dd6..4946dc4 100644
--- a/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
+++ b/yudao-module-hrm-api/src/main/java/cn/iocoder/yudao/module/hrm/enums/ErrorCodeConstants.java
@@ -69,6 +69,8 @@
     ErrorCode ATTENDANCE_RECORD_EXISTS = new ErrorCode(1_030_004_002, "璇ュ憳宸ュ綋鏃ヨ�冨嫟璁板綍宸插瓨鍦�");
     ErrorCode ATTENDANCE_EXCEPTION_NOT_EXISTS = new ErrorCode(1_030_004_003, "鑰冨嫟寮傚父鐢宠涓嶅瓨鍦�");
     ErrorCode ATTENDANCE_EXCEPTION_SUBMIT_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_004, "鑰冨嫟寮傚父鐢宠鎻愪氦澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+    ErrorCode ATTENDANCE_EXCEPTION_UPDATE_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_017, "鑰冨嫟寮傚父鐢宠鏇存柊澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
+    ErrorCode ATTENDANCE_EXCEPTION_DELETE_FAIL_NOT_DRAFT = new ErrorCode(1_030_004_018, "鑰冨嫟寮傚父鐢宠鍒犻櫎澶辫触锛屽師鍥狅細涓嶆槸鑽夌鐘舵��");
     ErrorCode ATTENDANCE_RULE_NOT_EXISTS = new ErrorCode(1_030_004_005, "鑰冨嫟瑙勫垯涓嶅瓨鍦�");
     ErrorCode ATTENDANCE_RULE_NAME_EXISTS = new ErrorCode(1_030_004_006, "鑰冨嫟瑙勫垯鍚嶇О宸插瓨鍦�");
     ErrorCode ATTENDANCE_RULE_DEPT_EXISTS = new ErrorCode(1_030_004_007, "璇ラ儴闂ㄥ凡閰嶇疆鑰冨嫟瑙勫垯");
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java
index 54dfc6d..8d97391 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java
@@ -41,6 +41,8 @@
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.*;
@@ -94,11 +96,13 @@
         AdminUserRespDTO user = adminUserApi.getUser(userId);
         if (user == null) {
             userId = getCurrentUserId();
+            user = adminUserApi.getUser(userId);
         }
         HrmResignationApplicationDO application = BeanUtils.toBean(createReqVO, HrmResignationApplicationDO.class);
         application.setNo(no);
         application.setUserId(userId);
-        application.setDeptId(createReqVO.getDeptId() != null ? createReqVO.getDeptId() : user.getDeptId());
+        application.setDeptId(createReqVO.getDeptId() != null ? createReqVO.getDeptId()
+                : (user != null ? user.getDeptId() : null));
         application.setStatus(HrmAuditStatusEnum.DRAFT.getStatus());
         application.setHandoverStatus(HANDOVER_STATUS_NOT_STARTED);
         resignationApplicationMapper.insert(application);
@@ -108,7 +112,7 @@
     }
 
     private Long getCurrentUserId() {
-        return 1L;
+        return SecurityFrameworkUtils.getLoginUserId();
     }
 
     private String generateUniqueNo() {
@@ -175,8 +179,8 @@
     }
 
     private void fillUserNames(HrmResignationApplicationRespVO respVO, HrmResignationApplicationDO application) {
-        Set<Long> userIds = Set.of(application.getUserId(), application.getHandoverUserId())
-                .stream().filter(Objects::nonNull).collect(Collectors.toSet());
+        Set<Long> userIds = Stream.of(application.getUserId(), application.getHandoverUserId())
+                .filter(Objects::nonNull).collect(Collectors.toSet());
         Map<Long, AdminUserRespDTO> userMap = adminUserApi.getUserMap(userIds);
         if (application.getUserId() != null && userMap.containsKey(application.getUserId())) {
             respVO.setUserName(userMap.get(application.getUserId()).getNickname());
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java
index c3272ee..7505b7b 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmTransferApplicationServiceImpl.java
@@ -41,6 +41,8 @@
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.iocoder.yudao.module.hrm.enums.ErrorCodeConstants.*;
@@ -108,7 +110,7 @@
     }
 
     private Long getCurrentUserId() {
-        return 1L;
+        return SecurityFrameworkUtils.getLoginUserId();
     }
 
     private String generateUniqueNo() {
@@ -182,8 +184,8 @@
     }
 
     private void fillDeptNames(HrmTransferApplicationRespVO respVO, HrmTransferApplicationDO application) {
-        Set<Long> deptIds = Set.of(application.getCurrentDeptId(), application.getTargetDeptId())
-                .stream().filter(Objects::nonNull).collect(Collectors.toSet());
+        Set<Long> deptIds = Stream.of(application.getCurrentDeptId(), application.getTargetDeptId())
+                .filter(Objects::nonNull).collect(Collectors.toSet());
         Map<Long, DeptRespDTO> deptMap = deptApi.getDeptMap(deptIds);
         if (application.getCurrentDeptId() != null && deptMap.containsKey(application.getCurrentDeptId())) {
             respVO.setCurrentDeptName(deptMap.get(application.getCurrentDeptId()).getName());
@@ -194,8 +196,8 @@
     }
 
     private void fillPostNames(HrmTransferApplicationRespVO respVO, HrmTransferApplicationDO application) {
-        Set<Long> postIds = Set.of(application.getCurrentPostId(), application.getTargetPostId())
-                .stream().filter(Objects::nonNull).collect(Collectors.toSet());
+        Set<Long> postIds = Stream.of(application.getCurrentPostId(), application.getTargetPostId())
+                .filter(Objects::nonNull).collect(Collectors.toSet());
         Map<Long, PostRespDTO> postMap = postApi.getPostMap(postIds);
         if (application.getCurrentPostId() != null && postMap.containsKey(application.getCurrentPostId())) {
             respVO.setCurrentPostName(postMap.get(application.getCurrentPostId()).getName());
diff --git a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceExceptionServiceImpl.java b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceExceptionServiceImpl.java
index 4cf1dc6..54eb8ab 100644
--- a/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceExceptionServiceImpl.java
+++ b/yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/attendance/HrmAttendanceExceptionServiceImpl.java
@@ -71,7 +71,10 @@
 
     @Override
     public void updateAttendanceException(HrmAttendanceExceptionSaveReqVO updateReqVO) {
-        validateAttendanceExceptionExists(updateReqVO.getId());
+        HrmAttendanceExceptionDO attendanceException = validateAttendanceExceptionExists(updateReqVO.getId());
+        if (!HrmAuditStatusEnum.DRAFT.getStatus().equals(attendanceException.getStatus())) {
+            throw exception(ATTENDANCE_EXCEPTION_UPDATE_FAIL_NOT_DRAFT);
+        }
         HrmAttendanceExceptionDO updateObj = BeanUtils.toBean(updateReqVO, HrmAttendanceExceptionDO.class);
         attendanceExceptionMapper.updateById(updateObj);
         storageAttachmentApi.updateAttachments("file", "hrm_attendance_exception", updateReqVO.getId(), updateReqVO.getBlobIds());
@@ -79,7 +82,10 @@
 
     @Override
     public void deleteAttendanceException(Long id) {
-        validateAttendanceExceptionExists(id);
+        HrmAttendanceExceptionDO attendanceException = validateAttendanceExceptionExists(id);
+        if (!HrmAuditStatusEnum.DRAFT.getStatus().equals(attendanceException.getStatus())) {
+            throw exception(ATTENDANCE_EXCEPTION_DELETE_FAIL_NOT_DRAFT);
+        }
         storageAttachmentApi.deleteAttachmentsByRecord("hrm_attendance_exception", id);
         attendanceExceptionMapper.deleteById(id);
     }

--
Gitblit v1.9.3