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);