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; 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.EvalCmdCopy;
import org.qinan.safetyeval.app.executor.institution.support.EvalNodeCoConverter; import org.qinan.safetyeval.app.executor.institution.support.EvalNodeCoConverter;
import org.qinan.safetyeval.app.executor.institution.support.EvalProjectNodeSupport; 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.EvalTypeEnum;
import org.qinan.safetyeval.domain.constant.ProjectStageEnum; import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum; 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.EvalProjectEntity;
import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity; import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity;
import org.qinan.safetyeval.domain.entity.EvalProcessControlEntity; import org.qinan.safetyeval.domain.entity.EvalProcessControlEntity;
import org.qinan.safetyeval.domain.entity.EvalReportDraftEntity; import org.qinan.safetyeval.domain.entity.EvalReportDraftEntity;
import org.qinan.safetyeval.domain.entity.EvalReportEntity; import org.qinan.safetyeval.domain.entity.EvalReportEntity;
import org.qinan.safetyeval.domain.entity.EvalSignTaskEntity; 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.BizException;
import org.qinan.safetyeval.domain.exception.ErrorCode; 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.EvalProcessControlGateway;
import org.qinan.safetyeval.domain.gateway.EvalProjectMemberGateway; import org.qinan.safetyeval.domain.gateway.EvalProjectMemberGateway;
import org.qinan.safetyeval.domain.gateway.EvalReportDraftGateway; import org.qinan.safetyeval.domain.gateway.EvalReportDraftGateway;
import org.qinan.safetyeval.domain.gateway.EvalReportGateway; import org.qinan.safetyeval.domain.gateway.EvalReportGateway;
import org.qinan.safetyeval.domain.gateway.EvalSignTaskGateway; 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.gateway.EvalReviewItemGateway;
import org.qinan.safetyeval.domain.item.model.EvalReviewItemE; import org.qinan.safetyeval.domain.item.model.EvalReviewItemE;
import org.qinan.safetyeval.domain.query.EvalReportDraftQuery; 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.EvalSignTaskQuery;
import org.qinan.safetyeval.domain.query.PageResult; import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.service.EvalArchivePrecheckService; 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.gateway.EvalProjectWaringGateway;
import org.qinan.safetyeval.domain.waring.model.EvalProjectWaringE; import org.qinan.safetyeval.domain.waring.model.EvalProjectWaringE;
import org.qinan.safetyeval.infrastructure.convertor.EvalProcessControlConvertor; 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.persistence.queryservice.EvalReviewItemQueryService;
import org.qinan.safetyeval.infrastructure.support.NodeWriteAuthority; import org.qinan.safetyeval.infrastructure.support.NodeWriteAuthority;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -94,15 +98,19 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Resource @Resource
private EvalProjectWaringGateway evalProjectWaringGateway; private EvalProjectWaringGateway evalProjectWaringGateway;
@Resource @Resource
private EvalContractGateway evalContractGateway; private EvalContractMapper evalContractMapper;
@Resource @Resource
private EvalSurveyGateway evalSurveyGateway; private EvalSurveyAttachMapper evalSurveyAttachMapper;
@Resource @Resource
private EvalSurveyAttachGateway evalSurveyAttachGateway; private EvalReportDraftMapper evalReportDraftMapper;
@Resource @Resource
private EvalInternalReviewGateway evalInternalReviewGateway; private EvalInternalReviewMapper evalInternalReviewMapper;
@Resource @Resource
private EvalTechReviewGateway evalTechReviewGateway; private EvalTechReviewMapper evalTechReviewMapper;
@Resource
private EvalProcessControlMapper evalProcessControlMapper;
@Resource
private EvalReportMapper evalReportMapper;
@Override @Override
public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) { public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) {
@ -266,18 +274,23 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
List<EvalProjectFileCO> files = new java.util.ArrayList<>(); 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) { if (contract != null && contract.getScanFileUrl() != null) {
files.add(buildFile(contract.getId(), ProjectStageEnum.BUSINESS_CONTRACT.getMsg(), files.add(buildFile(contract.getId(), ProjectStageEnum.BUSINESS_CONTRACT.getMsg(),
"合同扫描件", "合同扫描件", contract.getScanFileUrl())); "合同扫描件", "合同扫描件", contract.getScanFileUrl()));
} }
// 现场踏勘-附件 // 现场踏勘-附件直接按projectId查询附件避免先查踏勘记录再中转
EvalSurveyEntity survey = evalSurveyGateway.getByProjectId(projectId, orgId); List<EvalSurveyAttachDO> attaches = evalSurveyAttachMapper.selectList(new LambdaQueryWrapper<EvalSurveyAttachDO>()
if (survey != null) { .eq(EvalSurveyAttachDO::getProjectId, projectId)
List<EvalSurveyAttachEntity> attaches = evalSurveyAttachGateway.listBySurveyId(survey.getId(), orgId); .eq(EvalSurveyAttachDO::getOrgId, orgId)
.select(EvalSurveyAttachDO::getId, EvalSurveyAttachDO::getFileName,
EvalSurveyAttachDO::getAttachTypeName, EvalSurveyAttachDO::getFileUrl));
if (attaches != null) { if (attaches != null) {
for (EvalSurveyAttachEntity attach : attaches) { for (EvalSurveyAttachDO attach : attaches) {
if (attach.getFileUrl() != null) { if (attach.getFileUrl() != null) {
String itemName = attach.getAttachTypeName() != null ? attach.getAttachTypeName() : "踏勘附件"; String itemName = attach.getAttachTypeName() != null ? attach.getAttachTypeName() : "踏勘附件";
String name = attach.getFileName() != null ? attach.getFileName() : itemName; String name = attach.getFileName() != null ? attach.getFileName() : itemName;
@ -286,17 +299,15 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
} }
} }
} }
}
// 报告编制-报告草稿 // 报告编制-报告草稿
EvalReportDraftQuery draftQuery = new EvalReportDraftQuery(); List<EvalReportDraftDO> drafts = evalReportDraftMapper.selectList(new LambdaQueryWrapper<EvalReportDraftDO>()
draftQuery.setProjectId(projectId); .eq(EvalReportDraftDO::getProjectId, projectId)
draftQuery.setOrgId(orgId); .eq(EvalReportDraftDO::getOrgId, orgId)
draftQuery.setPageNum(1L); .select(EvalReportDraftDO::getId, EvalReportDraftDO::getContentUrl,
draftQuery.setPageSize(100L); EvalReportDraftDO::getTemplateName, EvalReportDraftDO::getDraftVersionNo));
PageResult<EvalReportDraftEntity> drafts = evalReportDraftGateway.page(draftQuery); if (drafts != null) {
if (drafts != null && !CollectionUtils.isEmpty(drafts.getRecords())) { for (EvalReportDraftDO draft : drafts) {
for (EvalReportDraftEntity draft : drafts.getRecords()) {
if (draft.getContentUrl() != null) { if (draft.getContentUrl() != null) {
String name = draft.getTemplateName() != null ? draft.getTemplateName() : "报告草稿"; String name = draft.getTemplateName() != null ? draft.getTemplateName() : "报告草稿";
String itemName = "V" + (draft.getDraftVersionNo() != null ? draft.getDraftVersionNo() : 0); 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) { if (internalReview != null && internalReview.getReviewerSignatureUrl() != null) {
files.add(buildFile(internalReview.getId(), ProjectStageEnum.INTERNAL_REVIEW.getMsg(), files.add(buildFile(internalReview.getId(), ProjectStageEnum.INTERNAL_REVIEW.getMsg(),
"内审签字", "内审签字", internalReview.getReviewerSignatureUrl())); "内审签字", "内审签字", 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) { if (techReview != null && techReview.getReviewerSignatureUrl() != null) {
files.add(buildFile(techReview.getId(), ProjectStageEnum.TECHNICAL_REVIEW.getMsg(), files.add(buildFile(techReview.getId(), ProjectStageEnum.TECHNICAL_REVIEW.getMsg(),
"技审签字", "技审签字", techReview.getReviewerSignatureUrl())); "技审签字", "技审签字", 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) { if (processControl != null && processControl.getHandoverFormUrl() != null) {
files.add(buildFile(processControl.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(), files.add(buildFile(processControl.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(),
"归档交接单", "归档交接单", processControl.getHandoverFormUrl())); "归档交接单", "归档交接单", processControl.getHandoverFormUrl()));
} }
// 过程控制-归档报告 // 过程控制-归档报告
EvalReportQuery reportQuery = new EvalReportQuery(); List<EvalReportDO> reports = evalReportMapper.selectList(new LambdaQueryWrapper<EvalReportDO>()
reportQuery.setProjectId(projectId); .eq(EvalReportDO::getProjectId, projectId)
reportQuery.setOrgId(orgId); .eq(EvalReportDO::getOrgId, orgId)
reportQuery.setPageNum(1L); .select(EvalReportDO::getId, EvalReportDO::getFileUrl, EvalReportDO::getFileName));
reportQuery.setPageSize(100L); if (reports != null) {
PageResult<EvalReportEntity> reports = evalReportGateway.page(reportQuery); for (EvalReportDO report : reports) {
if (reports != null && !CollectionUtils.isEmpty(reports.getRecords())) {
for (EvalReportEntity report : reports.getRecords()) {
if (report.getFileUrl() != null) { if (report.getFileUrl() != null) {
String name = report.getFileName() != null ? report.getFileName() : "归档报告"; String name = report.getFileName() != null ? report.getFileName() : "归档报告";
files.add(buildFile(report.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(), files.add(buildFile(report.getId(), ProjectStageEnum.PROCESS_CONTROL.getMsg(),