package jnpf.dmsController; import cn.dev33.satoken.annotation.SaCheckLogin; import jakarta.validation.Valid; import jnpf.base.ActionResult; import jnpf.base.UserInfo; import jnpf.dmsEntity.storage.form.DmsDisableFlowEventForm; import jnpf.dmsPermission.DmsCurrentIdentity; import jnpf.dmsService.DmsApprovedDisableFlowService; import jnpf.dmsService.DmsDisableOccupancyService; import jnpf.dmsEntity.storage.form.DmsDisableSubmitValidationForm; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @RestController @SaCheckLogin @RequiredArgsConstructor @RequestMapping("/biz/wenjian/disable") public class DmsApprovedDisableController { private final DmsCurrentIdentity identity; private final DmsApprovedDisableFlowService service; private final DmsDisableOccupancyService occupancy; @PostMapping("/chexiao/validate-submit") public ActionResult validateRevoke(@RequestBody @Valid DmsDisableSubmitValidationForm form) { return validate(form,"yichexiao"); } @PostMapping("/shixiao/validate-submit") public ActionResult validateInvalidate(@RequestBody @Valid DmsDisableSubmitValidationForm form) { return validate(form,"yishixiao"); } private ActionResult validate(DmsDisableSubmitValidationForm form, String operation) { UserInfo user = identity.requireUser(); occupancy.validateSubmission(identity.tenantId(user), user.getUserId(), operation, form); return ActionResult.success("文件占用校验通过"); } @PostMapping("/chexiao/flow-event") public ActionResult revoke(@RequestBody @Valid DmsDisableFlowEventForm form) {return sync(form,"yichexiao");} @PostMapping("/shixiao/flow-event") public ActionResult invalidate(@RequestBody @Valid DmsDisableFlowEventForm form) {return sync(form,"yishixiao");} private ActionResult sync(DmsDisableFlowEventForm form,String operation) { UserInfo user=identity.requireUser();String tenant=identity.tenantId(user); service.onEvent(tenant,form.getFlowId().trim(),form.getTaskId().trim(),operation,form.getEventType()); return ActionResult.success("已处理文件撤销或失效流程事件"); } @ExceptionHandler(org.springframework.web.client.HttpServerErrorException.class) public org.springframework.http.ResponseEntity> fileUnavailable( org.springframework.web.client.HttpServerErrorException failure) { ActionResult result = new ActionResult<>(); result.setCode(failure.getStatusCode().value()); result.setMsg(failure.getStatusText()); return org.springframework.http.ResponseEntity.status(failure.getStatusCode()).body(result); } }