diff --git a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java index 242c45c..eab2064 100644 --- a/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java +++ b/safety-eval-app/src/main/java/org/qinan/safetyeval/app/executor/institution/EvalProcessControlExecutor.java @@ -105,6 +105,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { @Resource private EvalCustomerMapper evalCustomerMapper; @Resource + private WpsDocQueryService wpsDocQueryService; + @Resource private SafetyMessageGateway safetyMessageGateway; @Override @@ -364,8 +366,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { files.addAll(evalContractQueryService.listProjectFiles(projectId, orgId)); // 现场踏勘-附件 files.addAll(evalSurveyAttachQueryService.listProjectFiles(projectId, orgId)); - // 报告编制-报告草稿 - files.addAll(evalReportDraftQueryService.listProjectFiles(projectId, orgId)); + // 报告编制-报告草稿(查询wps_doc表中项目id最大的一条记录) + files.addAll(wpsDocQueryService.listProjectFiles(projectId, orgId)); // 内部审核-内审签字 files.addAll(evalInternalReviewQueryService.listProjectFiles(projectId, orgId)); // 技术审核-技审签字 diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/WpsDocQueryService.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/WpsDocQueryService.java new file mode 100644 index 0000000..4b02768 --- /dev/null +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/WpsDocQueryService.java @@ -0,0 +1,22 @@ +package org.qinan.safetyeval.infrastructure.persistence.queryservice; + +import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO; + +import java.util.List; + +/** + * WPS文档查询服务 + * + * @author safety-eval + */ +public interface WpsDocQueryService { + + /** + * 查询项目报告编制相关文件(wps_doc 表中按项目id查询id最大的一条记录) + * + * @param projectId 项目ID + * @param orgId 机构ID + * @return 项目文件CO列表 + */ + List listProjectFiles(Long projectId, Long orgId); +} diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/WpsDocQueryServiceImpl.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/WpsDocQueryServiceImpl.java new file mode 100644 index 0000000..a4ff073 --- /dev/null +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/persistence/queryservice/impl/WpsDocQueryServiceImpl.java @@ -0,0 +1,43 @@ +package org.qinan.safetyeval.infrastructure.persistence.queryservice.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.AllArgsConstructor; +import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO; +import org.qinan.safetyeval.domain.constant.ProjectStageEnum; +import org.qinan.safetyeval.infrastructure.dataobject.WpsDocDO; +import org.qinan.safetyeval.infrastructure.mapper.WpsDocMapper; +import org.qinan.safetyeval.infrastructure.persistence.queryservice.WpsDocQueryService; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; + +/** + * WPS文档查询服务 + * + * @author safety-eval + */ +@Service +@AllArgsConstructor +public class WpsDocQueryServiceImpl implements WpsDocQueryService { + + private final WpsDocMapper wpsDocMapper; + + @Override + public List listProjectFiles(Long projectId, Long orgId) { + WpsDocDO latestDoc = wpsDocMapper.selectOne(new LambdaQueryWrapper() + .eq(WpsDocDO::getProjectId, projectId) + .orderByDesc(WpsDocDO::getId) + .last("LIMIT 1")); + List files = new ArrayList<>(); + if (latestDoc != null && latestDoc.getDownloadUrl() != null) { + EvalProjectFileCO co = new EvalProjectFileCO(); + co.setProcessName(ProjectStageEnum.REPORT_PREPARATION.getMsg()); + co.setItemName(ProjectStageEnum.REPORT_PREPARATION.getMsg()); + co.setProjectDocUrl(latestDoc.getDownloadUrl()); + co.setMaterialName(latestDoc.getName()); + files.add(co); + } + return files; + } +}