diff --git a/docs/db/phase2/init-phase2.sql b/docs/db/phase2/init-phase2.sql index fe0b7d5..8679dd3 100644 --- a/docs/db/phase2/init-phase2.sql +++ b/docs/db/phase2/init-phase2.sql @@ -256,6 +256,9 @@ create table `eval_project` ( `project_leader_name` varchar(50) default null comment '项目负责人(手填)', `clock_in_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT 'NOT_CLOCKED_IN' COMMENT '人员打卡状态 : 未打卡 → NOT_CLOCKED_IN,人员未到齐 → NOT_ALL_PRESENT,正常 → NORMAL', `archive_flag` int not null default 0 comment '项目归档(1归档0未归档)', + `archive_transferor_name` varchar(255) DEFAULT NULL COMMENT '项目归档移交人', + `archive_archivist_name` varchar(255) DEFAULT NULL COMMENT '项目归档档案管理员', + `archive_date` datetime DEFAULT NULL COMMENT '项目归档时间', `is_statutory` tinyint not null default 0 comment '是否法定项目 1是 0否', `delete_enum` varchar(32) default null comment '删除标识true false', `remarks` varchar(255) default null comment '备注', diff --git a/docs/db/todo.sql b/docs/db/todo.sql index 48b4ba3..609dc97 100644 --- a/docs/db/todo.sql +++ b/docs/db/todo.sql @@ -83,4 +83,16 @@ ALTER TABLE `qual_filing_personnel_cert_change` -- eval_project 表添加是否法定项目字段 -- ============================================= ALTER TABLE `eval_project` - ADD COLUMN `is_statutory` tinyint NOT NULL DEFAULT 0 COMMENT '是否法定项目 1是 0否' AFTER `archive_flag`; \ No newline at end of file + ADD COLUMN `is_statutory` tinyint NOT NULL DEFAULT 0 COMMENT '是否法定项目 1是 0否' AFTER `archive_flag`; + +-- ============================================= +-- eval_project 表添加归档移交人/档案管理员字段 +-- ============================================= +ALTER TABLE `eval_project` + ADD COLUMN `archive_transferor_name` varchar(255) DEFAULT NULL COMMENT '项目归档移交人' AFTER `archive_flag`; + +ALTER TABLE `eval_project` + ADD COLUMN `archive_archivist_name` varchar(255) DEFAULT NULL COMMENT '项目归档档案管理员' AFTER `archive_transferor_name`; + +ALTER TABLE `eval_project` + ADD COLUMN `archive_date` datetime DEFAULT NULL COMMENT '项目归档时间' AFTER `archive_archivist_name`; \ No newline at end of file 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 2987c89..67f4837 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 @@ -266,6 +266,13 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, null); EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO(); detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members)); + + // 查询项目归档信息 + EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId); + detailCO.setArchiveTransferorName(project.getArchiveTransferorName()); + detailCO.setArchiveArchivistName(project.getArchiveArchivistName()); + detailCO.setArchiveDate(project.getArchiveDate()); + if (entity != null) { detailCO.setProcessControl(evalProcessControlConvertor.toProcessCO(entity)); // 3. 通过过程控制记录id查询审核项列表 @@ -337,7 +344,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi { EvalReportEntity report = buildReport(project); evalReportGateway.saveInternal(report); - projectStageSyncService.onArchived(projectId); + projectStageSyncService.onArchived(projectId, cmd.getArchiveTransferorName(), cmd.getArchiveArchivistName()); // 写入项目预警记录(存在则更新,不存在则新增) upsertProjectWaring(project); // 归档项目资料:将所有项目文件以 ARCHIVED 资料类型存入 eval_project_doc diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java index b1ed748..3a23b38 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProcessControlDetailCO.java @@ -1,9 +1,11 @@ package org.qinan.safetyeval.client.co.institution; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.qinan.safetyeval.client.item.response.EvalReviewItemCo; +import java.time.LocalDateTime; import java.util.List; /** @@ -23,4 +25,14 @@ public class EvalProcessControlDetailCO { @ApiModelProperty("签字任务人员") private SignTaskPersonCo signTaskPersonCo; + + @ApiModelProperty("项目归档移交人") + private String archiveTransferorName; + + @ApiModelProperty("项目归档档案管理员") + private String archiveArchivistName; + + @ApiModelProperty("项目归档时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime archiveDate; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java index 732dfbe..9a36bea 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/co/institution/EvalProjectCO.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @Data @@ -78,6 +79,16 @@ public class EvalProjectCO { @ApiModelProperty(value = "项目归档:1归档 0未归档", example = "0") private Integer archiveFlag; + @ApiModelProperty("项目归档移交人") + private String archiveTransferorName; + + @ApiModelProperty("项目归档档案管理员") + private String archiveArchivistName; + + @ApiModelProperty("项目归档时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private LocalDateTime archiveDate; + @ApiModelProperty(value = "是否法定项目 1是 0否", example = "0") private Boolean isStatutory; diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessArchiveCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessArchiveCmd.java index d1918b2..d862157 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessArchiveCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProcessArchiveCmd.java @@ -1,5 +1,6 @@ package org.qinan.safetyeval.client.dto.institution; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -8,4 +9,10 @@ import javax.validation.constraints.NotBlank; public class EvalProcessArchiveCmd { @NotBlank private String projectId; + + @ApiModelProperty("项目归档移交人") + private String archiveTransferorName; + + @ApiModelProperty("项目归档档案管理员") + private String archiveArchivistName; } diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java index f696fd4..c6c0e7f 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/dto/institution/EvalProjectAddCmd.java @@ -8,6 +8,7 @@ import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.List; @Data @@ -66,6 +67,15 @@ public class EvalProjectAddCmd { @ApiModelProperty(value = "项目归档:1归档 0未归档", example = "0") private Integer archiveFlag; + @ApiModelProperty("项目归档移交人") + private String archiveTransferorName; + + @ApiModelProperty("项目归档档案管理员") + private String archiveArchivistName; + + @ApiModelProperty("项目归档时间") + private LocalDateTime archiveDate; + @ApiModelProperty(value = "是否法定项目 1是 0否", example = "0") private Boolean isStatutory; } diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java index 7e95a4b..6e5d27b 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/entity/EvalProjectEntity.java @@ -3,6 +3,7 @@ package org.qinan.safetyeval.domain.entity; import lombok.Data; import java.time.LocalDate; +import java.time.LocalDateTime; @Data public class EvalProjectEntity { @@ -32,6 +33,12 @@ public class EvalProjectEntity { private String clockInStatus; /** 1归档 0未归档 */ private Integer archiveFlag; + /** 项目归档移交人 */ + private String archiveTransferorName; + /** 项目归档档案管理员 */ + private String archiveArchivistName; + /** 项目归档时间 */ + private LocalDateTime archiveDate; /** 是否法定项目 1是 0否 */ private Boolean isStatutory; private Long tenantId; diff --git a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/ProjectStageSyncService.java b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/ProjectStageSyncService.java index b5f4e80..94d0145 100644 --- a/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/ProjectStageSyncService.java +++ b/safety-eval-domain/src/main/java/org/qinan/safetyeval/domain/service/ProjectStageSyncService.java @@ -6,6 +6,7 @@ import org.qinan.safetyeval.domain.gateway.EvalProjectGateway; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.time.LocalDateTime; /** * 节点完成后的项目侧同步。主表已去掉阶段/状态字段后,仅归档写 archive_flag。 @@ -25,12 +26,15 @@ public class ProjectStageSyncService { evalProjectGateway.editProjectNode(projectId, projectStageEnum.getVal()); } - public void onArchived(Long projectId) { + public void onArchived(Long projectId, String archiveTransferorName, String archiveArchivistName) { EvalProjectEntity project = evalProjectGateway.get(projectId); if (project == null) { return; } project.setArchiveFlag(1); + project.setArchiveTransferorName(archiveTransferorName); + project.setArchiveArchivistName(archiveArchivistName); + project.setArchiveDate(LocalDateTime.now()); evalProjectGateway.modify(project); } } diff --git a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java index 1248d78..422b4b2 100644 --- a/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java +++ b/safety-eval-infrastructure/src/main/java/org/qinan/safetyeval/infrastructure/dataobject/EvalProjectDO.java @@ -32,6 +32,12 @@ public class EvalProjectDO { /** 人员打卡状态:NOT_CLOCKED_IN未打卡 NOT_ALL_PRESENT人员未到齐 NORMAL正常 */ private String clockInStatus; private Integer archiveFlag; + /** 项目归档移交人 */ + private String archiveTransferorName; + /** 项目归档档案管理员 */ + private String archiveArchivistName; + /** 项目归档时间 */ + private LocalDateTime archiveDate; /** 是否法定项目 1是 0否 */ private Boolean isStatutory; private String deleteEnum;