dev
luotaiqian 2026-07-23 11:24:10 +08:00
parent 0df09df186
commit bab37f01c2
15 changed files with 511 additions and 112 deletions

View File

@ -1,6 +1,5 @@
package org.qinan.safetyeval.app.executor.institution;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.qinan.safetyeval.app.executor.institution.support.EvalCmdCopy;
import org.qinan.safetyeval.app.executor.institution.support.EvalNodeCoConverter;
import org.qinan.safetyeval.app.executor.institution.support.EvalProjectNodeSupport;
@ -43,21 +42,14 @@ import org.qinan.safetyeval.domain.support.EvalNodeCodes;
import org.qinan.safetyeval.domain.waring.gateway.EvalProjectWaringGateway;
import org.qinan.safetyeval.domain.waring.model.EvalProjectWaringE;
import org.qinan.safetyeval.infrastructure.convertor.EvalProcessControlConvertor;
import org.qinan.safetyeval.infrastructure.dataobject.EvalContractDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalInternalReviewDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalProcessControlDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalReportDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalReportDraftDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalSurveyAttachDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalTechReviewDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalContractMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalInternalReviewMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalProcessControlMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalReportDraftMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalReportMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalSurveyAttachMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalTechReviewMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalContractQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalInternalReviewQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalProcessControlQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportDraftQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalSurveyAttachQueryService;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalTechReviewQueryService;
import org.qinan.safetyeval.infrastructure.support.NodeWriteAuthority;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -98,19 +90,19 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Resource
private EvalProjectWaringGateway evalProjectWaringGateway;
@Resource
private EvalContractMapper evalContractMapper;
private EvalContractQueryService evalContractQueryService;
@Resource
private EvalSurveyAttachMapper evalSurveyAttachMapper;
private EvalSurveyAttachQueryService evalSurveyAttachQueryService;
@Resource
private EvalReportDraftMapper evalReportDraftMapper;
private EvalReportDraftQueryService evalReportDraftQueryService;
@Resource
private EvalInternalReviewMapper evalInternalReviewMapper;
private EvalInternalReviewQueryService evalInternalReviewQueryService;
@Resource
private EvalTechReviewMapper evalTechReviewMapper;
private EvalTechReviewQueryService evalTechReviewQueryService;
@Resource
private EvalProcessControlMapper evalProcessControlMapper;
private EvalProcessControlQueryService evalProcessControlQueryService;
@Resource
private EvalReportMapper evalReportMapper;
private EvalReportQueryService evalReportQueryService;
@Override
public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) {
@ -274,105 +266,23 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
List<EvalProjectFileCO> files = new java.util.ArrayList<>();
// 业务合同-合同扫描件
EvalContractDO contract = evalContractMapper.selectOne(new LambdaQueryWrapper<EvalContractDO>()
.eq(EvalContractDO::getProjectId, projectId)
.eq(EvalContractDO::getOrgId, orgId)
.select(EvalContractDO::getId, EvalContractDO::getScanFileUrl));
if (contract != null && contract.getScanFileUrl() != null) {
files.add(buildFile(contract.getId(), ProjectStageEnum.BUSINESS_CONTRACT.getMsg(),
"合同扫描件", "合同扫描件", contract.getScanFileUrl()));
}
// 现场踏勘-附件直接按projectId查询附件避免先查踏勘记录再中转
List<EvalSurveyAttachDO> attaches = evalSurveyAttachMapper.selectList(new LambdaQueryWrapper<EvalSurveyAttachDO>()
.eq(EvalSurveyAttachDO::getProjectId, projectId)
.eq(EvalSurveyAttachDO::getOrgId, orgId)
.select(EvalSurveyAttachDO::getId, EvalSurveyAttachDO::getFileName,
EvalSurveyAttachDO::getAttachTypeName, EvalSurveyAttachDO::getFileUrl));
if (attaches != null) {
for (EvalSurveyAttachDO attach : attaches) {
if (attach.getFileUrl() != null) {
String itemName = attach.getAttachTypeName() != null ? attach.getAttachTypeName() : "踏勘附件";
String name = attach.getFileName() != null ? attach.getFileName() : itemName;
files.add(buildFile(attach.getId(), ProjectStageEnum.SITE_SURVEY.getMsg(),
itemName, name, attach.getFileUrl()));
}
}
}
files.addAll(evalContractQueryService.listProjectFiles(projectId, orgId));
// 现场踏勘-附件
files.addAll(evalSurveyAttachQueryService.listProjectFiles(projectId, orgId));
// 报告编制-报告草稿
List<EvalReportDraftDO> drafts = evalReportDraftMapper.selectList(new LambdaQueryWrapper<EvalReportDraftDO>()
.eq(EvalReportDraftDO::getProjectId, projectId)
.eq(EvalReportDraftDO::getOrgId, orgId)
.select(EvalReportDraftDO::getId, EvalReportDraftDO::getContentUrl,
EvalReportDraftDO::getTemplateName, EvalReportDraftDO::getDraftVersionNo));
if (drafts != null) {
for (EvalReportDraftDO draft : drafts) {
if (draft.getContentUrl() != null) {
String name = draft.getTemplateName() != null ? draft.getTemplateName() : "报告草稿";
String itemName = "V" + (draft.getDraftVersionNo() != null ? draft.getDraftVersionNo() : 0);
files.add(buildFile(draft.getId(), ProjectStageEnum.REPORT_PREPARATION.getMsg(),
itemName, name, draft.getContentUrl()));
}
}
}
files.addAll(evalReportDraftQueryService.listProjectFiles(projectId, orgId));
// 内部审核-内审签字
EvalInternalReviewDO internalReview = evalInternalReviewMapper.selectOne(new LambdaQueryWrapper<EvalInternalReviewDO>()
.eq(EvalInternalReviewDO::getProjectId, projectId)
.eq(EvalInternalReviewDO::getOrgId, orgId)
.select(EvalInternalReviewDO::getId, EvalInternalReviewDO::getReviewerSignatureUrl));
if (internalReview != null && internalReview.getReviewerSignatureUrl() != null) {
files.add(buildFile(internalReview.getId(), ProjectStageEnum.INTERNAL_REVIEW.getMsg(),
"内审签字", "内审签字", internalReview.getReviewerSignatureUrl()));
}
files.addAll(evalInternalReviewQueryService.listProjectFiles(projectId, orgId));
// 技术审核-技审签字
EvalTechReviewDO techReview = evalTechReviewMapper.selectOne(new LambdaQueryWrapper<EvalTechReviewDO>()
.eq(EvalTechReviewDO::getProjectId, projectId)
.eq(EvalTechReviewDO::getOrgId, orgId)
.select(EvalTechReviewDO::getId, EvalTechReviewDO::getReviewerSignatureUrl));
if (techReview != null && techReview.getReviewerSignatureUrl() != null) {
files.add(buildFile(techReview.getId(), ProjectStageEnum.TECHNICAL_REVIEW.getMsg(),
"技审签字", "技审签字", techReview.getReviewerSignatureUrl()));
}
files.addAll(evalTechReviewQueryService.listProjectFiles(projectId, orgId));
// 过程控制-归档交接单
EvalProcessControlDO processControl = evalProcessControlMapper.selectOne(new LambdaQueryWrapper<EvalProcessControlDO>()
.eq(EvalProcessControlDO::getProjectId, projectId)
.eq(EvalProcessControlDO::getOrgId, orgId)
.select(EvalProcessControlDO::getId, EvalProcessControlDO::getHandoverFormUrl));
if (processControl != null && processControl.getHandoverFormUrl() != null) {
files.add(buildFile(processControl.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(),
"归档交接单", "归档交接单", processControl.getHandoverFormUrl()));
}
files.addAll(evalProcessControlQueryService.listProjectFiles(projectId, orgId));
// 过程控制-归档报告
List<EvalReportDO> reports = evalReportMapper.selectList(new LambdaQueryWrapper<EvalReportDO>()
.eq(EvalReportDO::getProjectId, projectId)
.eq(EvalReportDO::getOrgId, orgId)
.select(EvalReportDO::getId, EvalReportDO::getFileUrl, EvalReportDO::getFileName));
if (reports != null) {
for (EvalReportDO report : reports) {
if (report.getFileUrl() != null) {
String name = report.getFileName() != null ? report.getFileName() : "归档报告";
files.add(buildFile(report.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(),
"归档报告", name, report.getFileUrl()));
}
}
}
files.addAll(evalReportQueryService.listProjectFiles(projectId, orgId));
return SingleResponse.success(files);
}
private EvalProjectFileCO buildFile(Long id, String processName, String itemName, String name, String url) {
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(processName);
co.setItemName(itemName);
co.setProjectDocUrl(url);
return co;
}
private EvalReportEntity buildReport(EvalProjectEntity project) {
EvalReportEntity report = new EvalReportEntity();
report.setOrgId(project.getOrgId());

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalContractQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalInternalReviewQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalProcessControlQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
* 稿
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalReportDraftQueryService {
/**
* 稿
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalReportQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalSurveyAttachQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,23 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import org.qinan.safetyeval.client.co.institution.EvalProjectFileCO;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
public interface EvalTechReviewQueryService {
/**
*
*
* @param projectId ID
* @param orgId ID
* @return CO
*/
List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId);
}

View File

@ -0,0 +1,45 @@
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.EvalContractDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalContractMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalContractQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalContractQueryServiceImpl implements EvalContractQueryService {
private final EvalContractMapper evalContractMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
EvalContractDO contract = evalContractMapper.selectOne(new LambdaQueryWrapper<EvalContractDO>()
.eq(EvalContractDO::getProjectId, projectId)
.eq(EvalContractDO::getOrgId, orgId)
.select(EvalContractDO::getId, EvalContractDO::getScanFileUrl));
if (contract == null || contract.getScanFileUrl() == null) {
return Collections.emptyList();
}
List<EvalProjectFileCO> files = new ArrayList<>();
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.BUSINESS_CONTRACT.getMsg());
co.setItemName("合同扫描件");
co.setProjectDocUrl(contract.getScanFileUrl());
files.add(co);
return files;
}
}

View File

@ -0,0 +1,45 @@
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.EvalInternalReviewDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalInternalReviewMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalInternalReviewQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalInternalReviewQueryServiceImpl implements EvalInternalReviewQueryService {
private final EvalInternalReviewMapper evalInternalReviewMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
EvalInternalReviewDO internalReview = evalInternalReviewMapper.selectOne(new LambdaQueryWrapper<EvalInternalReviewDO>()
.eq(EvalInternalReviewDO::getProjectId, projectId)
.eq(EvalInternalReviewDO::getOrgId, orgId)
.select(EvalInternalReviewDO::getId, EvalInternalReviewDO::getReviewerSignatureUrl));
if (internalReview == null || internalReview.getReviewerSignatureUrl() == null) {
return Collections.emptyList();
}
List<EvalProjectFileCO> files = new ArrayList<>();
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.INTERNAL_REVIEW.getMsg());
co.setItemName("内审签字");
co.setProjectDocUrl(internalReview.getReviewerSignatureUrl());
files.add(co);
return files;
}
}

View File

@ -0,0 +1,45 @@
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.EvalProcessControlDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalProcessControlMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalProcessControlQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalProcessControlQueryServiceImpl implements EvalProcessControlQueryService {
private final EvalProcessControlMapper evalProcessControlMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
EvalProcessControlDO processControl = evalProcessControlMapper.selectOne(new LambdaQueryWrapper<EvalProcessControlDO>()
.eq(EvalProcessControlDO::getProjectId, projectId)
.eq(EvalProcessControlDO::getOrgId, orgId)
.select(EvalProcessControlDO::getId, EvalProcessControlDO::getHandoverFormUrl));
if (processControl == null || processControl.getHandoverFormUrl() == null) {
return Collections.emptyList();
}
List<EvalProjectFileCO> files = new ArrayList<>();
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.PROCESS_CONTROL.getMsg());
co.setItemName("归档交接单");
co.setProjectDocUrl(processControl.getHandoverFormUrl());
files.add(co);
return files;
}
}

View File

@ -0,0 +1,50 @@
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.EvalReportDraftDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalReportDraftMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportDraftQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* 稿
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalReportDraftQueryServiceImpl implements EvalReportDraftQueryService {
private final EvalReportDraftMapper evalReportDraftMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
List<EvalReportDraftDO> drafts = evalReportDraftMapper.selectList(new LambdaQueryWrapper<EvalReportDraftDO>()
.eq(EvalReportDraftDO::getProjectId, projectId)
.eq(EvalReportDraftDO::getOrgId, orgId)
.select(EvalReportDraftDO::getId, EvalReportDraftDO::getContentUrl,
EvalReportDraftDO::getTemplateName, EvalReportDraftDO::getDraftVersionNo));
List<EvalProjectFileCO> files = new ArrayList<>();
if (drafts == null) {
return files;
}
for (EvalReportDraftDO draft : drafts) {
if (draft.getContentUrl() != null) {
String itemName = "V" + (draft.getDraftVersionNo() != null ? draft.getDraftVersionNo() : 0);
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.REPORT_PREPARATION.getMsg());
co.setItemName(itemName);
co.setProjectDocUrl(draft.getContentUrl());
files.add(co);
}
}
return files;
}
}

View File

@ -0,0 +1,48 @@
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.EvalReportDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalReportMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReportQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalReportQueryServiceImpl implements EvalReportQueryService {
private final EvalReportMapper evalReportMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
List<EvalReportDO> reports = evalReportMapper.selectList(new LambdaQueryWrapper<EvalReportDO>()
.eq(EvalReportDO::getProjectId, projectId)
.eq(EvalReportDO::getOrgId, orgId)
.select(EvalReportDO::getId, EvalReportDO::getFileUrl, EvalReportDO::getFileName));
List<EvalProjectFileCO> files = new ArrayList<>();
if (reports == null) {
return files;
}
for (EvalReportDO report : reports) {
if (report.getFileUrl() != null) {
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.PROCESS_CONTROL.getMsg());
co.setItemName("归档报告");
co.setProjectDocUrl(report.getFileUrl());
files.add(co);
}
}
return files;
}
}

View File

@ -0,0 +1,50 @@
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.EvalSurveyAttachDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalSurveyAttachMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalSurveyAttachQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalSurveyAttachQueryServiceImpl implements EvalSurveyAttachQueryService {
private final EvalSurveyAttachMapper evalSurveyAttachMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
List<EvalSurveyAttachDO> attaches = evalSurveyAttachMapper.selectList(new LambdaQueryWrapper<EvalSurveyAttachDO>()
.eq(EvalSurveyAttachDO::getProjectId, projectId)
.eq(EvalSurveyAttachDO::getOrgId, orgId)
.select(EvalSurveyAttachDO::getId, EvalSurveyAttachDO::getFileName,
EvalSurveyAttachDO::getAttachTypeName, EvalSurveyAttachDO::getFileUrl));
List<EvalProjectFileCO> files = new ArrayList<>();
if (attaches == null) {
return files;
}
for (EvalSurveyAttachDO attach : attaches) {
if (attach.getFileUrl() != null) {
String itemName = attach.getAttachTypeName() != null ? attach.getAttachTypeName() : "踏勘附件";
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.SITE_SURVEY.getMsg());
co.setItemName(itemName);
co.setProjectDocUrl(attach.getFileUrl());
files.add(co);
}
}
return files;
}
}

View File

@ -0,0 +1,45 @@
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.EvalTechReviewDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalTechReviewMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalTechReviewQueryService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
*
* @Author: trae
* @date 2026-07-23
*/
@Service
@AllArgsConstructor
public class EvalTechReviewQueryServiceImpl implements EvalTechReviewQueryService {
private final EvalTechReviewMapper evalTechReviewMapper;
@Override
public List<EvalProjectFileCO> listProjectFiles(Long projectId, Long orgId) {
EvalTechReviewDO techReview = evalTechReviewMapper.selectOne(new LambdaQueryWrapper<EvalTechReviewDO>()
.eq(EvalTechReviewDO::getProjectId, projectId)
.eq(EvalTechReviewDO::getOrgId, orgId)
.select(EvalTechReviewDO::getId, EvalTechReviewDO::getReviewerSignatureUrl));
if (techReview == null || techReview.getReviewerSignatureUrl() == null) {
return Collections.emptyList();
}
List<EvalProjectFileCO> files = new ArrayList<>();
EvalProjectFileCO co = new EvalProjectFileCO();
co.setProcessName(ProjectStageEnum.TECHNICAL_REVIEW.getMsg());
co.setItemName("技审签字");
co.setProjectDocUrl(techReview.getReviewerSignatureUrl());
files.add(co);
return files;
}
}