dev
luotaiqian 2026-07-23 14:44:57 +08:00
parent ae140a7c6e
commit 0811bff14b
4 changed files with 69 additions and 36 deletions

View File

@ -15,11 +15,10 @@ import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewConfirmCmd;
import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewSaveCmd;
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
import org.qinan.safetyeval.client.item.response.EvalReviewItemCo;
import org.qinan.safetyeval.domain.constant.EvalReviewEnum;
import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum;
import org.qinan.safetyeval.domain.constant.*;
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.exception.BizException;
import org.qinan.safetyeval.domain.exception.ErrorCode;
import org.qinan.safetyeval.domain.gateway.EvalInternalReviewGateway;
@ -28,8 +27,11 @@ import org.qinan.safetyeval.domain.item.model.EvalReviewItemE;
import org.qinan.safetyeval.domain.service.ProjectStageSyncService;
import org.qinan.safetyeval.domain.support.EvalNodeCodes;
import org.qinan.safetyeval.infrastructure.convertor.EvalInternalReviewConvertor;
import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor;
import org.qinan.safetyeval.infrastructure.dataobject.EvalInternalReviewDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalInternalReviewMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -60,6 +62,10 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi {
private ProjectStageSyncService projectStageSyncService;
@Resource
private EvalInternalReviewMapper evalInternalReviewMapper;
@Resource
private EvalProjectMemberMapper evalProjectMemberMapper;
@Resource
private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor;
@Override
public SingleResponse<EvalInternalReviewCO> getOrSave(EvalInternalReviewSaveCmd cmd) {
@ -152,10 +158,20 @@ public class EvalInternalReviewExecutor implements EvalInternalReviewApi {
@Override
public SingleResponse<EvalInternalReviewDetailCO> getDetailByProject(Long projectId) {
// 查询内审记录,未查询到则内审记录字段为空(成员角色模型已变更,不再按旧角色筛选内审人)
// 1. 查询项目成员中的内审人信息role包含INTERNAL_AUDITOR
List<EvalProjectMemberEntity> reviewers = evalProjectMemberMapper.selectList(
new LambdaQueryWrapper<EvalProjectMemberDO>()
.eq(EvalProjectMemberDO::getProjectId, projectId)
.eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.INTERNAL_AUDITOR.getVal()))
.stream()
.map(evalProjectMemberDoConvertor::convertDoToE)
.collect(Collectors.toList());
// 2. 查询内审记录,未查询到则内审记录字段为空
EvalInternalReviewEntity entity = evalInternalReviewGateway.getByProjectId(projectId, null);
EvalInternalReviewDetailCO detailCO = new EvalInternalReviewDetailCO();
detailCO.setReviewers(java.util.Collections.emptyList());
detailCO.setReviewers(evalInternalReviewConvertor.toMemberCOs(reviewers));
if (entity != null) {
detailCO.setInternalReview(evalInternalReviewConvertor.toInternalCO(entity));
// 3. 通过内审记录id查询审核项列表

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;
@ -15,24 +16,14 @@ import org.qinan.safetyeval.client.dto.institution.EvalProcessControlSaveCmd;
import org.qinan.safetyeval.client.dto.institution.EvalProcessHandoverFormCmd;
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
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.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.constant.*;
import org.qinan.safetyeval.domain.entity.*;
import org.qinan.safetyeval.domain.exception.BizException;
import org.qinan.safetyeval.domain.exception.ErrorCode;
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.*;
import org.qinan.safetyeval.domain.item.gateway.EvalReviewItemGateway;
import org.qinan.safetyeval.domain.item.model.EvalReviewItemE;
import org.qinan.safetyeval.domain.query.EvalReportDraftQuery;
@ -44,15 +35,10 @@ 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.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.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor;
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.*;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@ -82,7 +68,9 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Resource
private EvalProcessControlConvertor evalProcessControlConvertor;
@Resource
private EvalProjectMemberGateway evalProjectMemberGateway;
private EvalProjectMemberMapper evalProjectMemberMapper;
@Resource
private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor;
@Resource
private EvalReviewItemQueryService evalReviewItemQueryService;
@Resource
@ -178,14 +166,21 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Override
public SingleResponse<EvalProcessControlDetailCO> getDetailByProject(Long projectId) {
// 1. 查询项目成员中的过程控制负责人信息
// List<EvalProjectMemberEntity> members = evalProjectMemberGateway
// .listByProjectIdAndRoleCode(projectId, NodeWriteAuthority.ROLE_PROCESS_OWNER);
// 1. 查询项目成员中的过程控制负责人信息role包含EVALUATION_AGENCY_HEAD或PROCESS_CONTROL_LEAD
List<EvalProjectMemberEntity> members = evalProjectMemberMapper.selectList(
new LambdaQueryWrapper<EvalProjectMemberDO>()
.eq(EvalProjectMemberDO::getProjectId, projectId)
.eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
.and(w -> w.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal())
.or().like(EvalProjectMemberDO::getRole, ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal())))
.stream()
.map(evalProjectMemberDoConvertor::convertDoToE)
.collect(Collectors.toList());
// 2. 查询过程控制记录,未查询到则过程控制记录字段为空
EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, null);
EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO();
// detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members));
detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members));
if (entity != null) {
detailCO.setProcessControl(EvalNodeCoConverter.toProcessCO(entity));
// 3. 通过过程控制记录id查询审核项列表

View File

@ -14,26 +14,32 @@ import org.qinan.safetyeval.client.dto.institution.EvalTechReviewConfirmCmd;
import org.qinan.safetyeval.client.dto.institution.EvalTechReviewSaveCmd;
import org.qinan.safetyeval.client.item.request.EvalReviewItemAddCmd;
import org.qinan.safetyeval.client.item.response.EvalReviewItemCo;
import org.qinan.safetyeval.domain.constant.BooleanQAEnum;
import org.qinan.safetyeval.domain.constant.ProjectRoleEnum;
import org.qinan.safetyeval.domain.constant.ProjectStageEnum;
import org.qinan.safetyeval.domain.constant.ReviewDimensionEnum;
import org.qinan.safetyeval.domain.entity.EvalProjectEntity;
import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity;
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.EvalProjectMemberGateway;
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.service.ProjectStageSyncService;
import org.qinan.safetyeval.domain.support.EvalNodeCodes;
import org.qinan.safetyeval.infrastructure.convertor.EvalProjectMemberDoConvertor;
import org.qinan.safetyeval.infrastructure.convertor.EvalTechReviewConvertor;
import org.qinan.safetyeval.infrastructure.dataobject.EvalProjectMemberDO;
import org.qinan.safetyeval.infrastructure.dataobject.EvalTechReviewDO;
import org.qinan.safetyeval.infrastructure.mapper.EvalProjectMemberMapper;
import org.qinan.safetyeval.infrastructure.mapper.EvalTechReviewMapper;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.EvalReviewItemQueryService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
import static org.qinan.safetyeval.domain.exception.ErrorCode.ASSIGN_SIGN_TASK;
@ -47,7 +53,9 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
@Resource
private EvalProjectNodeSupport evalProjectNodeSupport;
@Resource
private EvalProjectMemberGateway evalProjectMemberGateway;
private EvalProjectMemberMapper evalProjectMemberMapper;
@Resource
private EvalProjectMemberDoConvertor evalProjectMemberDoConvertor;
@Resource
private EvalReviewItemQueryService evalReviewItemQueryService;
@Resource
@ -148,14 +156,20 @@ public class EvalTechReviewExecutor implements EvalTechReviewApi {
@Override
public SingleResponse<EvalTechReviewDetailCO> getDetailByProject(Long projectId) {
// 1. 查询项目成员中的技审人信息
// List<EvalProjectMemberEntity> members = evalProjectMemberGateway
// .listByProjectIdAndRoleCode(projectId, NodeWriteAuthority.ROLE_TECH_REVIEWER);
// 1. 查询项目成员中的技审人信息role包含TECHNICAL_LEAD
List<EvalProjectMemberEntity> members = evalProjectMemberMapper.selectList(
new LambdaQueryWrapper<EvalProjectMemberDO>()
.eq(EvalProjectMemberDO::getProjectId, projectId)
.eq(EvalProjectMemberDO::getDeleteEnum, BooleanQAEnum.FALSE.getValue())
.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.TECHNICAL_LEAD.getVal()))
.stream()
.map(evalProjectMemberDoConvertor::convertDoToE)
.collect(Collectors.toList());
// 2. 查询技审记录,未查询到则技审记录字段为空
EvalTechReviewEntity entity = evalTechReviewGateway.getByProjectId(projectId, null);
EvalTechReviewDetailCO detailCO = new EvalTechReviewDetailCO();
// detailCO.setReviewers(evalTechReviewConvertor.toMemberCOs(members));
detailCO.setReviewers(evalTechReviewConvertor.toMemberCOs(members));
if (entity != null) {
detailCO.setTechReview(evalTechReviewConvertor.toTechCO(entity));
// 3. 通过技审记录id查询审核项列表

View File

@ -2,8 +2,12 @@ package org.qinan.safetyeval.infrastructure.convertor;
import org.mapstruct.Mapper;
import org.qinan.safetyeval.client.co.institution.EvalInternalReviewCO;
import org.qinan.safetyeval.client.co.institution.EvalProjectMemberCO;
import org.qinan.safetyeval.client.dto.institution.EvalInternalReviewConfirmCmd;
import org.qinan.safetyeval.domain.entity.EvalInternalReviewEntity;
import org.qinan.safetyeval.domain.entity.EvalProjectMemberEntity;
import java.util.List;
/**
*
@ -13,6 +17,10 @@ public interface EvalInternalReviewConvertor {
EvalInternalReviewCO toInternalCO(EvalInternalReviewEntity entity);
EvalProjectMemberCO toMemberCO(EvalProjectMemberEntity entity);
List<EvalProjectMemberCO> toMemberCOs(List<EvalProjectMemberEntity> entities);
/**
* ConfirmCmd entityprojectIdreviewerPersonnelId String Long
*/