From a1a2757654cd4fe80c385b3c373a6a1f63a5f1b4 Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Fri, 24 Jul 2026 09:56:12 +0800 Subject: [PATCH] waring --- .../EvalProcessControlExecutor.java | 25 ++- .../co/institution/EvalProcessControlCO.java | 195 ++---------------- .../EvalProcessControlConfirmCmd.java | 6 - .../domain/constant/MaterialCategory.java | 1 + 4 files changed, 36 insertions(+), 191 deletions(-) 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 6a85ba4..3ee6c0b 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 @@ -39,7 +39,10 @@ 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.convertor.EvalProjectMemberDoConvertor; +import org.qinan.safetyeval.infrastructure.dataobject.EvalInternalReviewDO; +import org.qinan.safetyeval.infrastructure.dataobject.EvalProcessControlDO; import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO; +import org.qinan.safetyeval.infrastructure.mapper.EvalProcessControlMapper; import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper; import org.qinan.safetyeval.infrastructure.persistence.queryservice.*; import org.springframework.stereotype.Service; @@ -97,6 +100,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { private EvalProcessControlQueryService evalProcessControlQueryService; @Resource private EvalReportQueryService evalReportQueryService; + @Resource + private EvalProcessControlMapper evalProcessControlMapper; @Override public SingleResponse getOrSave(EvalProcessControlSaveCmd cmd) { @@ -132,13 +137,15 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { } EvalProcessControlEntity entity = evalProcessControlConvertor.applyConfirmCmd(cmd); - - // 过程控制结论为通过时推进项目阶段 - if (cmd.getResultCode().equals(EvalReviewEnum.PASSED.getCode())) { - projectStageSyncService.onNodeCompleted(projectId, ProjectStageEnum.PROCESS_CONTROL.getNode()); + EvalProcessControlDO evalProcessControlDO = evalProcessControlMapper.selectOne(new LambdaQueryWrapper() + .select(EvalProcessControlDO::getId, EvalProcessControlDO::getReviewerSignatureTaskStatus) + .eq(EvalProcessControlDO::getProjectId, cmd.getProjectId())); + if (cmd.getId() != null && evalProcessControlDO == null) { + throw new BizException(ErrorCode.EVAL_INTERNAL_REVIEW_NOT_FOUND); } - if (cmd.getId() != null) { + if (evalProcessControlDO != null) { + entity.setId(evalProcessControlDO.getId()); entity = evalProcessControlGateway.modify(entity); } else { // id为空,新增数据 @@ -153,6 +160,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { EvalReviewItemE itemE = evalReviewItemCmdConvertor.convertCmdToE(itemCmd); itemE.setBizId(entity.getId()); itemE.setBizType(bizType); + itemE.setDeleteEnum(BooleanQAEnum.FALSE.getValue()); + itemE.setOrgId(project.getOrgId()); evalReviewItemGateway.add(itemE); } return SingleResponse.success(); @@ -258,14 +267,13 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { if (project.getArchiveFlag() != null && project.getArchiveFlag() == 1) { throw new BizException(ErrorCode.EVAL_ARCHIVE_ALREADY_DONE); } - evalProjectNodeSupport.assertWrite(projectId, EvalNodeCodes.NODE_08); - evalArchivePrecheckService.assertPrecheckPassed(projectId, project.getOrgId()); + // 校验前置节点是否全部完成(过程控制节点除外) + assertPreNodesCompleted(project); EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, project.getOrgId()); if (entity != null && entity.getArchiveFlag() != null && entity.getArchiveFlag() == 1) { throw new BizException(ErrorCode.EVAL_ARCHIVE_ALREADY_DONE); } - // 验证签字是否完成 assertSignTaskCompleted(projectId, project.getOrgId()); @@ -295,6 +303,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { projectStageSyncService.onArchived(projectId); // 写入项目预警记录(存在则更新,不存在则新增) upsertProjectWaring(project); + return SingleResponse.success(EvalNodeCoConverter.toProcessCO(entity)); } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlCO.java index 370228d..e117525 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlCO.java @@ -3,197 +3,38 @@ package org.qinan.safetyeval.client.co.institution; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.time.LocalDate; import java.time.LocalDateTime; @Data public class EvalProcessControlCO { - private String id; - private String orgId; - private String projectId; - private String riskId; - private String surveyId; - private String signTaskId; - private LocalDate analysisDate; - @ApiModelProperty(value = "评价类型编码:PRE安全预评价 ACCEPT安全验收评价 STATUS安全现状评价", example = "PRE") - private String evalTypeCode; - @ApiModelProperty(value = "评价类型名称:安全预评价/安全验收评价/安全现状评价", example = "安全预评价") - private String evalTypeName; - private String industryCode; - private String industryName; - private String evalScope; - @ApiModelProperty(value = "是否在资质业务范围内:1是 2否", example = "1") - private Integer inBizScopeFlag; - private String unitOverview; - private String industryRiskDesc; - @ApiModelProperty(value = "人员专业构成是否满足:1满足 2不满足", example = "1") - private Integer staffMatchCode; - @ApiModelProperty(value = "是否需要聘请专家:1需要 2不需要", example = "2") - private Integer needExpertCode; - @ApiModelProperty(value = "是否有能力承担评价风险:1是 2否", example = "1") - private Integer capabilityCode; - @ApiModelProperty(value = "项目可行性:1可行 2不可行", example = "1") - private Integer feasibleCode; - @ApiModelProperty(value = "经济性:1有经济效益 2无经济效益", example = "1") - private Integer economicCode; - @ApiModelProperty(value = "风险程度编码:1低度 2中度 3高度", example = "1") - private Integer riskLevelCode; - @ApiModelProperty(value = "风险程度名称:低度/中度/高度", example = "低度") - private String riskLevelName; - @ApiModelProperty(value = "合同签订结论:1签合同 2不签合同", example = "1") - private Integer signContractCode; - private String conclusionContent; - private String approverName; - @ApiModelProperty(value = "批准意见编码:1同意 2退回补充 3不同意承接", example = "1") - private Integer approvalOpinionCode; - @ApiModelProperty(value = "批准意见名称:同意/退回补充/不同意承接", example = "同意") - private String approvalOpinionName; - private LocalDate approvalDate; - @ApiModelProperty(value = "节点状态编码:1未开始 2进行中 3已完成 4退回", example = "2") - private Integer statusCode; - @ApiModelProperty(value = "节点状态名称:未开始/进行中/已完成/退回", example = "进行中") - private String statusName; - private String personnelId; - private String personnelName; - private String deptName; - @ApiModelProperty(value = "签字状态编码:1待签 2已签", example = "1") - private Integer signStatusCode; - @ApiModelProperty(value = "签字状态名称:待签/已签", example = "待签") - private String signStatusName; - private String signFileUrl; - private Integer sortOrder; - private String orgName; - private String contractNo; - private String projectName; - private String projectIntro; - private Long amountFen; - private String projectTypeCode; - private String projectTypeName; - private String riskSummary; - private String projectRegion; - private String projectAddress; - private LocalDate contractStartDate; - private LocalDate contractEndDate; - @ApiModelProperty(value = "是否生产剧毒化学品:1是 2否", example = "2") - private Integer toxicFlag; - @ApiModelProperty(value = "是否生产易制毒化学品:1是 2否", example = "2") - private Integer precursorFlag; - @ApiModelProperty(value = "是否跨省建设项目:1是 2否", example = "2") - private Integer crossProvinceFlag; - private String businessScope; - private String enterpriseName; - private String industryCategory; - private String officeAddress; - private String creditCode; - private String postCode; - private String enterprisePhone; - private String fax; - private String legalPerson; - private String contactName; - private Integer staffCount; - private String scanFileUrl; - private String leaderPersonnelId; - private String leaderName; - private String controlPersonnelId; - private String controlName; - private Integer memberCount; - private LocalDateTime finishTime; - private LocalDate planSurveyDate; - private String surveyPlace; - @ApiModelProperty(value = "从业告知是否完成:1是 2否", example = "2") - private Integer noticeDoneFlag; - @ApiModelProperty(value = "现场勘查是否完成:1是 2否", example = "2") - private Integer inspectDoneFlag; - @ApiModelProperty(value = "整改通知是否完成:1是 2否", example = "2") - private Integer rectifyDoneFlag; - @ApiModelProperty(value = "企业整改报告是否完成:1是 2否", example = "2") - private Integer enterpriseDoneFlag; - @ApiModelProperty(value = "整改复查是否完成:1是 2否", example = "2") - private Integer reviewDoneFlag; - private String noticeContent; - private String memberSnapshot; - private String stampFileUrl; - @ApiModelProperty(value = "任务状态编码:1待签 2已签 3已作废", example = "1") - private Integer taskStatusCode; - @ApiModelProperty(value = "任务状态名称:待签/已签/已作废", example = "待签") - private String taskStatusName; - private LocalDateTime planTime; - @ApiModelProperty(value = "打卡类型编码:1签到 2签退", example = "1") - private Integer checkinTypeCode; - @ApiModelProperty(value = "打卡类型名称:签到/签退", example = "签到") - private String checkinTypeName; - private LocalDateTime checkinTime; - private java.math.BigDecimal longitude; - private java.math.BigDecimal latitude; - private String address; - @ApiModelProperty(value = "人脸校验是否通过:1是 2否", example = "2") - private Integer facePassFlag; - private String photoUrls; - private String signImageUrl; - @ApiModelProperty(value = "附件类型编码:CHECKLIST检查表 RECTIFY整改通知 ENTERPRISE企业整改报告 REVIEW复查单 OTHER其他", example = "CHECKLIST") - private String attachTypeCode; - @ApiModelProperty(value = "附件类型名称:检查表/整改通知/企业整改报告/复查单/其他", example = "检查表") - private String attachTypeName; - private String fileName; - private String fileUrl; - @ApiModelProperty(value = "复查结论编码:1整改合格 2整改不合格 3继续整改", example = "1") - private Integer reviewResultCode; - @ApiModelProperty(value = "复查结论名称:整改合格/整改不合格/继续整改", example = "整改合格") - private String reviewResultName; - private String reviewContent; - private Integer draftVersionNo; - private String templateCode; - private String templateName; - private String contentUrl; - private String hintContent; - private String draftId; - private String reviewerPersonnelId; - private String reviewerName; + @ApiModelProperty(value = "主键ID") + private Long id; + @ApiModelProperty(value = "机构ID") + private Long orgId; + @ApiModelProperty(value = "项目ID") + private Long projectId; + @ApiModelProperty(value = "过程控制人员ID") + private Long controllerPersonnelId; + @ApiModelProperty(value = "过程控制人员名称") + private String controllerName; @ApiModelProperty(value = "内审人独立签字") private String reviewerSignatureUrl; @ApiModelProperty(value = "审核签字任务状态 dispatched 下发,non_dispatched 未下发 , completed 已完成", example = "non_dispatched") private String reviewerSignatureTaskStatus; - @ApiModelProperty(value = "过程控制结论编码:1通过 2退回", example = "1") + + @ApiModelProperty(value = "审核结果 passed 通过,not_passed 未通过", example = "passed") private String resultCode; @ApiModelProperty(value = "过程控制结论名称:通过/退回", example = "通过") private String resultName; + @ApiModelProperty(value = "意见内容") private String opinionContent; - private LocalDateTime reviewTime; - private String controllerPersonnelId; - private String controllerName; - @ApiModelProperty(value = "前7节点是否全部完成:1是 2否", example = "2") - private Integer precheckPassFlag; @ApiModelProperty(value = "是否归档:1是 2否", example = "2") private Integer archiveFlag; + @ApiModelProperty(value = "归档交接单URL") + private String handoverFormUrl; + @ApiModelProperty(value = "归档交接单状态:not_create未生成,created已生成", example = "not_create") + private String handoverFormStatus; + @ApiModelProperty(value = "过程控制时间") private LocalDateTime controlTime; - @ApiModelProperty(value = "所属节点编码:NODE_01风险分析 NODE_02业务合同 NODE_03项目组成立 NODE_04现场踏勘 NODE_05报告编制 NODE_06内部审核 NODE_07技术审核 NODE_08过程控制", example = "NODE_01") - private String nodeCode; - @ApiModelProperty(value = "所属节点名称:风险分析/业务合同/项目组成立/现场踏勘/报告编制/内部审核/技术审核/过程控制", example = "风险分析") - private String nodeName; - private String bizTypeCode; - private String bizTypeName; - private String bizRefId; - private String signerPersonnelId; - private String signerName; - private String taskTitle; - private LocalDateTime expireTime; - private LocalDateTime signTime; - @ApiModelProperty(value = "客户端类型编码:1PC 2APP", example = "1") - private Integer clientTypeCode; - @ApiModelProperty(value = "客户端类型名称:PC/APP", example = "PC") - private String clientTypeName; - private String customerId; - private String reportNo; - private String reportName; - private Integer reportYear; - @ApiModelProperty(value = "是否公开:1是 2否", example = "2") - private Integer publicFlag; - @ApiModelProperty(value = "资料是否完整:1是 2否", example = "2") - private Integer completeFlag; - @ApiModelProperty(value = "报告状态编码:1已入库 2抽查中 3待整改 4已复核", example = "1") - private Integer reportStatusCode; - @ApiModelProperty(value = "报告状态名称:已入库/抽查中/待整改/已复核", example = "已入库") - private String reportStatusName; - private LocalDateTime archiveTime; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessControlConfirmCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessControlConfirmCmd.java index 3e8a5ac..1816cc6 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessControlConfirmCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessControlConfirmCmd.java @@ -19,12 +19,6 @@ public class EvalProcessControlConfirmCmd { @ApiModelProperty("项目id") private Long projectId; - @ApiModelProperty(value = "过程控制负责人人员id") - private Long controllerPersonnelId; - - @ApiModelProperty(value = "过程控制负责人姓名") - private String controllerName; - @ApiModelProperty(value = "审核结果 passed 通过,not_passed 未通过", example = "passed") private String resultCode; diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/MaterialCategory.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/MaterialCategory.java index a503f99..58353a7 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/MaterialCategory.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/constant/MaterialCategory.java @@ -12,6 +12,7 @@ public enum MaterialCategory { SITE_SURVEY("SITE_SURVEY", "现场踏勘资料"), REPORT("REPORT", "报告资料"), RECTIFICATION("RECTIFICATION", "整改资料"), + ARCHIVED("ARCHIVED", "归档"), OTHER("OTHER", "其他项目资料"); private final String val; // 编码/值