diff --git a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/H5OpenController.java b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/H5OpenController.java index b587f26..97b300b 100644 --- a/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/H5OpenController.java +++ b/safety-eval-adapter/src/main/java/org/qinan/safetyeval/adapter/web/H5OpenController.java @@ -123,16 +123,17 @@ public class H5OpenController { @ApiOperation("打开页:当前用户有文档返回最近一份,没有则创建空白docx") @GetMapping(value = "/doc/my-or-create", produces = MediaType.APPLICATION_JSON_VALUE) - public SingleResponse myOrCreate(@RequestParam("docxUrl") String docxUrl) { + public SingleResponse myOrCreate(@RequestParam("docxUrl") String docxUrl, @RequestParam("projectId") Long projectId) { log.info("wps my-or-create"); - return SingleResponse.of(wpsApi.myOrCreate(docxUrl)); + return SingleResponse.of(wpsApi.myOrCreate(docxUrl, projectId)); } @ApiOperation("始终新建一份空白docx") @PostMapping(value = "/doc/create", produces = MediaType.APPLICATION_JSON_VALUE) - public SingleResponse createBlank(@RequestBody Req req) { + public SingleResponse createBlank(@RequestBody Req> req) { log.info("wps create blank"); - return SingleResponse.of(wpsApi.createBlank(req.getData())); + Map data = req.getData(); + return SingleResponse.of(wpsApi.createBlank(data.getOrDefault("docxUrl", ""), Long.parseLong(data.getOrDefault("projectId", "0")))); } @ApiOperation("模版文档(固定)") diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/WpsExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/WpsExecutor.java index 7edd25d..57b2584 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/WpsExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/WpsExecutor.java @@ -31,12 +31,7 @@ import org.springframework.web.context.request.ServletRequestAttributes; import javax.annotation.Resource; import java.io.InputStream; import java.net.URL; -import java.util.ArrayList; -import java.util.Collections; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.stream.Collectors; /** @@ -315,7 +310,7 @@ public class WpsExecutor implements WpsApi { } @Override - public WpsDocOpenCO myOrCreate(String docxUrl) { + public WpsDocOpenCO myOrCreate(String docxUrl, Long projectId) { try { Long userId = requireUserId(); String creatorId = String.valueOf(userId); @@ -323,7 +318,7 @@ public class WpsExecutor implements WpsApi { if (existing != null) { return toOpenCO(existing, false); } - WpsDocEntity created = doCreateBlankDoc(userId, docxUrl); + WpsDocEntity created = doCreateBlankDoc(userId, docxUrl, projectId); return toOpenCO(created, true); } catch (Exception e) { log.error("wps myOrCreate failed", e); @@ -332,10 +327,10 @@ public class WpsExecutor implements WpsApi { } @Override - public WpsDocOpenCO createBlank(String docxUrl) { + public WpsDocOpenCO createBlank(String docxUrl, Long projectId) { try { Long userId = requireUserId(); - WpsDocEntity created = doCreateBlankDoc(userId, docxUrl); + WpsDocEntity created = doCreateBlankDoc(userId, docxUrl, projectId); return toOpenCO(created, true); } catch (Exception e) { log.error("wps createBlank failed", e); @@ -343,7 +338,10 @@ public class WpsExecutor implements WpsApi { } } - protected WpsDocEntity doCreateBlankDoc(Long userId, String docxUrl) { + protected WpsDocEntity doCreateBlankDoc(Long userId, String docxUrl, Long projectId) { + if(Objects.nonNull(projectId)) { + throw new BizException(ErrorCode.EVAL_PROJECT_ERROR); + } String resDocxUrl = !StringUtils.hasText(docxUrl) ? defDocxUrl : docxUrl; if (!StringUtils.hasText(resDocxUrl)) { throw new BizException(ErrorCode.WPS_BLANK_DOCX_URL_EMPTY); @@ -379,6 +377,7 @@ public class WpsExecutor implements WpsApi { doc.setCreateTimeEpoch(nowEpoch); doc.setModifyTimeEpoch(nowEpoch); doc.setTenantId(AuthUserContextAdapter.getCurrentTenantId()); + doc.setProjectId(projectId); WpsDocVersionEntity versionEntity = new WpsDocVersionEntity(); versionEntity.setOrgId(orgId); @@ -392,6 +391,7 @@ public class WpsExecutor implements WpsApi { versionEntity.setManualFlag(1); versionEntity.setCreateTimeEpoch(nowEpoch); versionEntity.setTenantId(doc.getTenantId()); + versionEntity.setProjectId(doc.getProjectId()); return wpsDocDomainService.createInitial(doc, versionEntity); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/WpsApi.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/WpsApi.java index 6f32c49..c471dac 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/WpsApi.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/api/WpsApi.java @@ -40,10 +40,10 @@ public interface WpsApi { /** * 打开页:当前用户有文档则返回最近一份,没有则创建空白 docx */ - WpsDocOpenCO myOrCreate(String docxUrl); + WpsDocOpenCO myOrCreate(String docxUrl, Long projectId); /** * 始终新建一份空白 docx(即使用户已有文档) */ - WpsDocOpenCO createBlank(String docxUrl); + WpsDocOpenCO createBlank(String docxUrl, Long projectId); } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocEntity.java index 98478d9..341e10d 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocEntity.java @@ -30,4 +30,8 @@ public class WpsDocEntity { private String pendingDownloadUrl; /** 三阶段上传待确认大小 */ private Long pendingSize; + /** + * 项目id + */ + private Long projectId; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocVersionEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocVersionEntity.java index 361d8a8..9ebdd27 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocVersionEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/WpsDocVersionEntity.java @@ -24,4 +24,8 @@ public class WpsDocVersionEntity { private Integer manualFlag; private Long createTimeEpoch; private Long tenantId; + /** + * 项目id + */ + private Long projectId; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java index 29f9ebb..8da3260 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/exception/ErrorCode.java @@ -159,6 +159,7 @@ public enum ErrorCode { EVAL_ARCHIVE_ALREADY_DONE("06-05-016", "项目已归档,请勿重复归档"), EVAL_ARCHIVE_SIGN_INCOMPLETE("06-05-017", "签字未完成,无法归档"), EVAL_HANDOVER_FORM_NOT_CREATED("06-05-018", "归档交接单未生成,无法归档"), + EVAL_PROJECT_ERROR("06-05-019", "项目不存在"), // ---- 监督检查告知(phase2 P3) ---- INSP_NOTICE_NOT_FOUND("06-06-001", "监督检查告知不存在"),