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