package jnpf.dmsController.permission;
|
|
import cn.dev33.satoken.same.SaSameUtil;
|
import jakarta.validation.Valid;
|
import jnpf.base.ActionResult;
|
import jnpf.base.UserInfo;
|
import jnpf.dmsEntity.permission.form.DocumentCreateForm;
|
import jnpf.dmsEntity.download.form.DmsWorkflowDownloadAuthorizeForm;
|
import jnpf.dmsEntity.download.vo.DmsWorkflowDownloadAuthorizationVO;
|
import jnpf.dmsEntity.print.form.DmsWorkflowPrintAuthorizeForm;
|
import jnpf.dmsEntity.print.form.DmsWorkflowPrintFilesGrantForm;
|
import jnpf.dmsEntity.print.vo.DmsWorkflowPrintAuthorizationVO;
|
import jnpf.dmsEntity.print.vo.DmsWorkflowPrintFilesGrantResultVO;
|
import jnpf.dmsEntity.permission.form.FileVersionCreateForm;
|
import jnpf.dmsEntity.permission.form.FolderCreateForm;
|
import jnpf.dmsEntity.permission.form.DmsPersonalFolderBorrowForm;
|
import jnpf.dmsEntity.permission.form.DmsPersonalFolderDownloadForm;
|
import jnpf.dmsEntity.permission.vo.DmsPersonalFolderAddResultVO;
|
import jnpf.dmsEntity.permission.vo.DmsPermissionResourceVO;
|
import jnpf.dmsEntity.storage.form.DmsFileLifecycleUpdateForm;
|
import jnpf.dmsEntity.storage.form.DmsFileRevisionRegisterForm;
|
import jnpf.dmsEntity.storage.form.DmsFileUploadRegisterForm;
|
import jnpf.dmsEntity.storage.form.DmsWorkflowFilePrepareForm;
|
import jnpf.dmsEntity.storage.vo.DmsWorkflowFilePrepareVO;
|
import jnpf.dmsEntity.storage.form.DmsApprovedRegistrationCallback;
|
import jnpf.dmsEntity.storage.approval.DmsApprovedBatch;
|
import jnpf.dmsEntity.storage.form.DmsWorkflowFileActivateForm;
|
import jnpf.dmsEntity.storage.form.DmsWorkflowRevisionRegisterForm;
|
import jnpf.dmsEntity.storage.vo.DmsFileLifecycleUpdateVO;
|
import jnpf.dmsEntity.storage.vo.DmsFileUploadVO;
|
import jnpf.dmsPermission.DmsCurrentIdentity;
|
import jnpf.dmsPermission.DmsTrustedServiceGuard;
|
import jnpf.dmsService.DmsFileLifecycleService;
|
import jnpf.dmsService.DmsFileRevisionService;
|
import jnpf.dmsService.DmsFileUploadService;
|
import jnpf.dmsService.DmsPersonalFolderService;
|
import jnpf.dmsService.DmsResourceService;
|
import jnpf.dmsService.DmsWorkflowFilePrepareService;
|
import jnpf.dmsService.DmsApprovedFlowService;
|
import jnpf.dmsService.DmsWorkflowFileRegistrationService;
|
import jnpf.dmsService.DmsWorkflowFileActivationService;
|
import jnpf.dmsService.DmsWorkflowDownloadAuthorizationService;
|
import jnpf.dmsService.DmsWorkflowPrintAuthorizationService;
|
import lombok.RequiredArgsConstructor;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RestController;
|
|
@RestController
|
@RequestMapping("/Internal/dms")
|
@RequiredArgsConstructor
|
public class DmsInternalResourceController {
|
private final DmsTrustedServiceGuard trustedServiceGuard;
|
private final DmsResourceService resourceService;
|
private final DmsFileUploadService fileUploadService;
|
private final DmsFileRevisionService fileRevisionService;
|
private final DmsFileLifecycleService fileLifecycleService;
|
private final DmsWorkflowFilePrepareService workflowFilePrepareService;
|
private final DmsApprovedFlowService approvedFlowService;
|
private final DmsWorkflowFileRegistrationService workflowFileRegistrationService;
|
private final DmsWorkflowFileActivationService workflowFileActivationService;
|
private final DmsWorkflowDownloadAuthorizationService workflowDownloadAuthorizationService;
|
private final DmsWorkflowPrintAuthorizationService workflowPrintAuthorizationService;
|
private final DmsPersonalFolderService personalFolderService;
|
private final DmsCurrentIdentity currentIdentity;
|
|
@PostMapping("/file-versions/lifecycle")
|
public ActionResult<DmsFileLifecycleUpdateVO> updateFileLifecycle(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsFileLifecycleUpdateForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(fileLifecycleService.updateExpired(form, trustedServiceId));
|
}
|
|
@PostMapping("/personal-folders/borrow/files")
|
public ActionResult<DmsPersonalFolderAddResultVO> addBorrowedFilesToPersonalFolder(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsPersonalFolderBorrowForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(personalFolderService.addBorrowSnapshots(form, trustedServiceId));
|
}
|
|
@PostMapping("/personal-folders/download/files")
|
public ActionResult<DmsPersonalFolderAddResultVO> addDownloadedFilesToPersonalFolder(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsPersonalFolderDownloadForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(personalFolderService.addDownloadSnapshots(form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-prints/authorize")
|
public ActionResult<DmsWorkflowPrintAuthorizationVO> authorizeWorkflowPrint(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsWorkflowPrintAuthorizeForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
UserInfo user = currentIdentity.requireUser();
|
if (auditBizSign != null && !auditBizSign.trim().isEmpty()) {
|
form.setBizSign(auditBizSign.trim());
|
}
|
return ActionResult.success(workflowPrintAuthorizationService.authorize(
|
currentIdentity.tenantId(user), form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-prints/files")
|
public ActionResult<DmsWorkflowPrintFilesGrantResultVO> grantWorkflowPrintFiles(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsWorkflowPrintFilesGrantForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(personalFolderService.grantPrintPermissions(form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-downloads/authorize")
|
public ActionResult<DmsWorkflowDownloadAuthorizationVO> authorizeWorkflowDownload(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsWorkflowDownloadAuthorizeForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
UserInfo user = currentIdentity.requireUser();
|
if (auditBizSign != null && !auditBizSign.trim().isEmpty()) {
|
form.setBizSign(auditBizSign.trim());
|
}
|
return ActionResult.success(workflowDownloadAuthorizationService.authorize(
|
currentIdentity.tenantId(user), form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-files/uploads")
|
public ActionResult<DmsApprovedBatch> registerWorkflowUpload(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsApprovedRegistrationCallback form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(approvedFlowService.completeRegistration(form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-files/revisions")
|
public ActionResult<DmsFileUploadVO> registerWorkflowRevision(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsWorkflowRevisionRegisterForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(workflowFileRegistrationService.revise(form, trustedServiceId));
|
}
|
|
@PostMapping("/folders")
|
public ActionResult<DmsPermissionResourceVO> createFolder(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid FolderCreateForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(resourceService.createFolder(form, trustedServiceId));
|
}
|
|
@PostMapping("/documents")
|
public ActionResult<DmsPermissionResourceVO> createDocument(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DocumentCreateForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(resourceService.createDocument(form, trustedServiceId));
|
}
|
|
@PostMapping("/file-versions")
|
public ActionResult<DmsPermissionResourceVO> createFileVersion(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid FileVersionCreateForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(resourceService.createFileVersion(form, trustedServiceId));
|
}
|
|
@PostMapping("/uploads")
|
public ActionResult<DmsFileUploadVO> registerUpload(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsFileUploadRegisterForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(fileUploadService.register(form, trustedServiceId));
|
}
|
|
@PostMapping("/revisions")
|
public ActionResult<DmsFileUploadVO> registerRevision(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestHeader(value = "X-Audit-Biz-Sign", required = false) String auditBizSign,
|
@RequestBody @Valid DmsFileRevisionRegisterForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(fileRevisionService.register(form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-files/prepare")
|
public ActionResult<DmsWorkflowFilePrepareVO> prepareWorkflowFile(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsWorkflowFilePrepareForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
String trustedServiceId = trustedServiceGuard.requireAllowed(serviceId);
|
return ActionResult.success(workflowFilePrepareService.prepare(form, trustedServiceId));
|
}
|
|
@PostMapping("/workflow-files/activate")
|
public ActionResult<DmsFileUploadVO> activateWorkflowFile(
|
@RequestHeader(value = "X-DMS-Service-Id", required = false) String serviceId,
|
@RequestBody @Valid DmsWorkflowFileActivateForm form) {
|
SaSameUtil.checkCurrentRequestToken();
|
trustedServiceGuard.requireAllowed(serviceId);
|
UserInfo user = currentIdentity.requireUser();
|
return ActionResult.success(workflowFileActivationService.activate(
|
currentIdentity.tenantId(user), form.getSourceId().trim(), form.getTaskId().trim(),
|
form.getFileType(), user.getUserId()));
|
}
|
}
|