From 55a50eb3d5bbb1dc5ec0b169dd05d7975683099b Mon Sep 17 00:00:00 2001
From: dk <1260500659@qq.com>
Date: Wed, 3 Jun 2026 21:00:11 +0800
Subject: [PATCH] =?UTF-8?q?fix(=E5=8A=A0=E7=8F=AD=E7=94=B3=E8=AF=B7):=20?=
=?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8A=A0=E7=8F=AD=E7=94=B3=E8=AF=B7=E7=9A=84?=
=?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9C=BA=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?=
=?UTF-8?q?=E7=9A=84=E4=B8=8D=E5=90=88=E7=90=86=E7=9A=84=E5=9C=B0=E6=96=B9?=
=?UTF-8?q?=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../project/constant/OvertimeApplicationConstants.java | 5 +++++
.../admin/overtime/OvertimeApplicationController.java | 8 ++++----
.../overtime/vo/OvertimeApplicationStatusActionReqVO.java | 5 +++--
.../service/overtime/OvertimeApplicationService.java | 2 +-
.../service/overtime/OvertimeApplicationServiceImpl.java | 5 +++--
5 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/constant/OvertimeApplicationConstants.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/constant/OvertimeApplicationConstants.java
index b9a5cc5..04b4371 100644
--- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/constant/OvertimeApplicationConstants.java
+++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/constant/OvertimeApplicationConstants.java
@@ -16,6 +16,11 @@ public final class OvertimeApplicationConstants {
public static final String STATUS_REJECTED = "rejected";
public static final String STATUS_CANCELLED = "cancelled";
+ /**
+ * 新建即提交的业务日志动作。
+ *
+ * 该动作仅用于状态日志、审计日志留痕,不要求在 rdms_object_status_transition 中存在显式流转配置。
+ */
public static final String ACTION_SUBMIT = "submit";
public static final String ACTION_RESUBMIT = "resubmit";
public static final String ACTION_APPROVE = "approve";
diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/OvertimeApplicationController.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/OvertimeApplicationController.java
index 99488a4..ad95174 100644
--- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/OvertimeApplicationController.java
+++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/OvertimeApplicationController.java
@@ -52,11 +52,11 @@ public class OvertimeApplicationController {
}
@PutMapping("/{id}")
- @Operation(summary = "退回后修改并重新提交加班申请")
+ @Operation(summary = "退回或撤销后修改并重新提交加班申请")
@PreAuthorize("@ss.hasPermission('" + OvertimeApplicationConstants.PERMISSION_UPDATE + "')")
- public CommonResult updateRejected(@PathVariable("id") Long id,
- @Valid @RequestBody OvertimeApplicationSaveReqVO reqVO) {
- overtimeApplicationService.updateRejectedApplication(id, reqVO);
+ public CommonResult resubmit(@PathVariable("id") Long id,
+ @Valid @RequestBody OvertimeApplicationSaveReqVO reqVO) {
+ overtimeApplicationService.resubmitApplication(id, reqVO);
return success(true);
}
diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/vo/OvertimeApplicationStatusActionReqVO.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/vo/OvertimeApplicationStatusActionReqVO.java
index 70e8ecd..f81b2e1 100644
--- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/vo/OvertimeApplicationStatusActionReqVO.java
+++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/overtime/vo/OvertimeApplicationStatusActionReqVO.java
@@ -8,7 +8,8 @@ import lombok.Data;
@Data
public class OvertimeApplicationStatusActionReqVO {
- @Schema(description = "动作原因或审核意见。退回、撤销必填", example = "请补充加班内容")
- @Size(max = 1000, message = "动作原因长度不能超过1000个字符")
+ @Schema(description = "动作原因或审核意见。是否必填以状态机配置为准;当前退回必填,撤销选填",
+ example = "请补充加班内容")
+ @Size(max = 1000, message = "动作原因长度不能超过 1000 个字符")
private String reason;
}
diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationService.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationService.java
index d9c1aad..5fceb8e 100644
--- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationService.java
+++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationService.java
@@ -14,7 +14,7 @@ public interface OvertimeApplicationService {
Long createApplication(OvertimeApplicationSaveReqVO reqVO);
- void updateRejectedApplication(Long id, OvertimeApplicationSaveReqVO reqVO);
+ void resubmitApplication(Long id, OvertimeApplicationSaveReqVO reqVO);
void approve(Long id, OvertimeApplicationStatusActionReqVO reqVO);
diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationServiceImpl.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationServiceImpl.java
index e8046e4..d6a57ad 100644
--- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationServiceImpl.java
+++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/overtime/OvertimeApplicationServiceImpl.java
@@ -75,6 +75,7 @@ public class OvertimeApplicationServiceImpl implements OvertimeApplicationServic
application.setApprovalTime(null);
overtimeApplicationMapper.insert(application);
+ // 创建即进入初始状态 pending,这里保留 submit 作为业务留痕动作,不依赖状态机流转表存在 submit 配置。
writeStatusLog(application, OvertimeApplicationConstants.ACTION_SUBMIT, null, initialStatus, null);
writeAuditLog(application, OvertimeApplicationConstants.ACTION_SUBMIT, null, initialStatus, null, null, null);
return application.getId();
@@ -82,7 +83,7 @@ public class OvertimeApplicationServiceImpl implements OvertimeApplicationServic
@Override
@Transactional(rollbackFor = Exception.class)
- public void updateRejectedApplication(Long id, OvertimeApplicationSaveReqVO reqVO) {
+ public void resubmitApplication(Long id, OvertimeApplicationSaveReqVO reqVO) {
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
OvertimeApplicationDO current = validateApplicationExists(id);
if (!Objects.equals(current.getApplicantId(), loginUserId)) {
@@ -102,7 +103,7 @@ public class OvertimeApplicationServiceImpl implements OvertimeApplicationServic
update.setApprovalTime(null);
int updateCount = overtimeApplicationMapper.updateByIdAndStatusesAndApplicantId(update, id,
- List.of(OvertimeApplicationConstants.STATUS_PENDING, OvertimeApplicationConstants.STATUS_REJECTED),
+ List.of(OvertimeApplicationConstants.STATUS_REJECTED, OvertimeApplicationConstants.STATUS_CANCELLED),
loginUserId);
if (updateCount != 1) {
throw exception(ErrorCodeConstants.OVERTIME_APPLICATION_STATUS_CONCURRENT_MODIFIED);