From 8c65f898ed6e5b0c7a94c792c4562f6ec831dccd Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 07 十一月 2026 08:50:53 +0800
Subject: [PATCH] feat: 完善质检、生产、销售、财务与人事模块并接入审批流程

---
 yudao-module-hrm/src/main/java/cn/iocoder/yudao/module/hrm/service/approval/HrmResignationApplicationServiceImpl.java |   23 ++++++++++-------------
 1 files changed, 10 insertions(+), 13 deletions(-)

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 8b8fe32..7edc503 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
@@ -150,7 +150,7 @@
     @Override
     public void updateResignationApplication(HrmResignationApplicationSaveReqVO updateReqVO) {
         HrmResignationApplicationDO application = validateResignationApplicationExists(updateReqVO.getId());
-        if (!Objects.equals(application.getStatus(), HrmAuditStatusEnum.DRAFT.getStatus())) {
+        if (!isEditableResignationStatus(application.getStatus())) {
             throw exception(RESIGNATION_APPLICATION_UPDATE_FAIL_NOT_DRAFT);
         }
         HrmResignationApplicationDO updateObj = BeanUtils.toBean(updateReqVO, HrmResignationApplicationDO.class);
@@ -190,6 +190,11 @@
             throw exception(RESIGNATION_APPLICATION_NOT_EXISTS);
         }
         return application;
+    }
+
+    private boolean isEditableResignationStatus(Integer status) {
+        return Objects.equals(status, HrmAuditStatusEnum.DRAFT.getStatus())
+                || Objects.equals(status, HrmAuditStatusEnum.REJECT.getStatus());
     }
 
     @Override
@@ -323,16 +328,12 @@
     @Transactional(rollbackFor = Exception.class)
     public void submitResignationApplication(Long id, String processDefinitionKey, Long userId) {
         HrmResignationApplicationDO application = validateResignationApplicationExists(id);
-        if (ObjUtil.notEqual(application.getStatus(), HrmAuditStatusEnum.DRAFT.getStatus())) {
+        if (!isEditableResignationStatus(application.getStatus())) {
             throw exception(RESIGNATION_APPLICATION_SUBMIT_FAIL_NOT_DRAFT);
         }
         // 鍏ㄥ眬鍏嶅鎵癸細涓氬姟鏍¢獙閫氳繃鍚庣洿鎺ユ墽琛屽鎵归�氳繃閫昏緫锛屾棤闇�娴佺▼妯″瀷銆�
         if (bpmProcessInstanceApi.isGlobalAutoApprove()) {
-            resignationApplicationMapper.updateById(HrmResignationApplicationDO.builder()
-                    .id(id)
-                    .processInstanceId("")
-                    .status(HrmAuditStatusEnum.PROCESS.getStatus())
-                    .build());
+            resignationApplicationMapper.startApproval(id, "", HrmAuditStatusEnum.PROCESS.getStatus());
             updateResignationApplicationAuditStatus(id, HrmAuditStatusEnum.APPROVE.getStatus());
             return;
         }
@@ -340,11 +341,7 @@
         ProcessDefinition processDefinition = resolveActiveProcessDefinition(processDefinitionKey);
         String processInstanceId = bpmProcessInstanceApi.createProcessInstance(userId, new BpmProcessInstanceCreateReqDTO()
                 .setProcessDefinitionKey(processDefinition.getKey()).setBusinessKey(String.valueOf(id)));
-        resignationApplicationMapper.updateById(HrmResignationApplicationDO.builder()
-                .id(id)
-                .processInstanceId(processInstanceId)
-                .status(HrmAuditStatusEnum.PROCESS.getStatus())
-                .build());
+        resignationApplicationMapper.startApproval(id, processInstanceId, HrmAuditStatusEnum.PROCESS.getStatus());
     }
 
     private void validateApproveCategoryAndProcessDefinition() {
@@ -684,4 +681,4 @@
                 : String.format("ID=%s", employeeId);
     }
 
-}
\ No newline at end of file
+}

--
Gitblit v1.9.3