dev
luotaiqian 2026-07-23 11:13:34 +08:00
parent 77b0114526
commit 0df09df186
1 changed files with 66 additions and 48 deletions

View File

@ -1,5 +1,6 @@
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;
@ -18,33 +19,22 @@ import org.qinan.safetyeval.client.item.response.EvalReviewItemCo;
import org.qinan.safetyeval.domain.constant.EvalTypeEnum;
import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum;
import org.qinan.safetyeval.domain.entity.EvalContractEntity;
import org.qinan.safetyeval.domain.entity.EvalInternalReviewEntity;
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity;
import org.qinan.safetyeval.domain.entity.EvalProcessControlEntity;
import org.qinan.safetyeval.domain.entity.EvalReportDraftEntity;
import org.qinan.safetyeval.domain.entity.EvalReportEntity;
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity;
import org.qinan.safetyeval.domain.entity.EvalSurveyAttachEntity;
import org.qinan.safetyeval.domain.entity.EvalSurveyEntity;
import org.qinan.safetyeval.domain.entity.EvalTechReviewEntity;
import org.qinan.safetyeval.domain.exception.BizException;
import org.qinan.safetyeval.domain.exception.ErrorCode;
import org.qinan.safetyeval.domain.gateway.EvalContractGateway;
import org.qinan.safetyeval.domain.gateway.EvalInternalReviewGateway;
import org.qinan.safetyeval.domain.gateway.EvalProcessControlGateway;
import org.qinan.safetyeval.domain.gateway.EvalProjectMemberGateway;
import org.qinan.safetyeval.domain.gateway.EvalReportDraftGateway;
import org.qinan.safetyeval.domain.gateway.EvalReportGateway;
import org.qinan.safetyeval.domain.gateway.EvalSignTaskGateway;
import org.qinan.safetyeval.domain.gateway.EvalSurveyAttachGateway;
import org.qinan.safetyeval.domain.gateway.EvalSurveyGateway;
import org.qinan.safetyeval.domain.gateway.EvalTechReviewGateway;
import org.qinan.safetyeval.domain.item.gateway.EvalReviewItemGateway;
import org.qinan.safetyeval.domain.item.model.EvalReviewItemE;
import org.qinan.safetyeval.domain.query.EvalReportDraftQuery;
import org.qinan.safetyeval.domain.query.EvalReportQuery;
import org.qinan.safetyeval.domain.query.EvalSignTaskQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.service.EvalArchivePrecheckService;
@ -53,6 +43,20 @@ 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.EvalReviewItemQueryService;
import org.qinan.safetyeval.infrastructure.support.NodeWriteAuthority;
import org.springframework.stereotype.Service;
@ -94,15 +98,19 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Resource
private EvalProjectWaringGateway evalProjectWaringGateway;
@Resource
private EvalContractGateway evalContractGateway;
private EvalContractMapper evalContractMapper;
@Resource
private EvalSurveyGateway evalSurveyGateway;
private EvalSurveyAttachMapper evalSurveyAttachMapper;
@Resource
private EvalSurveyAttachGateway evalSurveyAttachGateway;
private EvalReportDraftMapper evalReportDraftMapper;
@Resource
private EvalInternalReviewGateway evalInternalReviewGateway;
private EvalInternalReviewMapper evalInternalReviewMapper;
@Resource
private EvalTechReviewGateway evalTechReviewGateway;
private EvalTechReviewMapper evalTechReviewMapper;
@Resource
private EvalProcessControlMapper evalProcessControlMapper;
@Resource
private EvalReportMapper evalReportMapper;
@Override
public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) {
@ -266,18 +274,23 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
List<EvalProjectFileCO> files = new java.util.ArrayList<>();
// 业务合同-合同扫描件
EvalContractEntity contract = evalContractGateway.getByProjectId(projectId, 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) {
files.add(buildFile(contract.getId(), ProjectStageEnum.BUSINESS_CONTRACT.getMsg(),
"合同扫描件", "合同扫描件", contract.getScanFileUrl()));
}
// 现场踏勘-附件
EvalSurveyEntity survey = evalSurveyGateway.getByProjectId(projectId, orgId);
if (survey != null) {
List<EvalSurveyAttachEntity> attaches = evalSurveyAttachGateway.listBySurveyId(survey.getId(), orgId);
// 现场踏勘-附件直接按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 (EvalSurveyAttachEntity attach : attaches) {
for (EvalSurveyAttachDO attach : attaches) {
if (attach.getFileUrl() != null) {
String itemName = attach.getAttachTypeName() != null ? attach.getAttachTypeName() : "踏勘附件";
String name = attach.getFileName() != null ? attach.getFileName() : itemName;
@ -286,17 +299,15 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
}
}
}
}
// 报告编制-报告草稿
EvalReportDraftQuery draftQuery = new EvalReportDraftQuery();
draftQuery.setProjectId(projectId);
draftQuery.setOrgId(orgId);
draftQuery.setPageNum(1L);
draftQuery.setPageSize(100L);
PageResult<EvalReportDraftEntity> drafts = evalReportDraftGateway.page(draftQuery);
if (drafts != null && !CollectionUtils.isEmpty(drafts.getRecords())) {
for (EvalReportDraftEntity draft : drafts.getRecords()) {
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);
@ -307,35 +318,42 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
}
// 内部审核-内审签字
EvalInternalReviewEntity internalReview = evalInternalReviewGateway.getByProjectId(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()));
}
// 技术审核-技审签字
EvalTechReviewEntity techReview = evalTechReviewGateway.getByProjectId(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()));
}
// 过程控制-归档交接单
EvalProcessControlEntity processControl = evalProcessControlGateway.getByProjectId(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()));
}
// 过程控制-归档报告
EvalReportQuery reportQuery = new EvalReportQuery();
reportQuery.setProjectId(projectId);
reportQuery.setOrgId(orgId);
reportQuery.setPageNum(1L);
reportQuery.setPageSize(100L);
PageResult<EvalReportEntity> reports = evalReportGateway.page(reportQuery);
if (reports != null && !CollectionUtils.isEmpty(reports.getRecords())) {
for (EvalReportEntity report : reports.getRecords()) {
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(),