luotaiqian 2026-08-05 20:23:11 +08:00
parent 0c003d02c2
commit 50ee791408
2 changed files with 44 additions and 8 deletions

View File

@ -107,6 +107,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
private WpsDocQueryService wpsDocQueryService;
@Resource
private SafetyMessageGateway safetyMessageGateway;
@Resource
private OrgPersonnelMapper orgPersonnelMapper;
@Override
public SingleResponse<EvalProcessControlCO> getOrSave(EvalProcessControlSaveCmd cmd) {
@ -147,6 +149,8 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
throw new BizException(ErrorCode.EVAL_INTERNAL_REVIEW_NOT_FOUND);
}
entity.setControllerPersonnelId(cmd.getSignTaskPersonCmd().getSignerPersonnelId());
entity.setControllerName(cmd.getSignTaskPersonCmd().getSignerName());
if (evalProcessControlDO != null) {
entity.setId(evalProcessControlDO.getId());
entity = evalProcessControlGateway.modify(entity);
@ -194,6 +198,7 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
throw new BizException(ErrorCode.UNKNOWN_ERROR.getCode(), "请先完成过程控制人签字");
}
entity.setOrgHeadPersonnelId(cmd.getSignTaskPersonCmd().getSignerPersonnelId());
entity.setOrgHeadSignatureTaskStatus(SignatureTaskStatusEnum.DISPATCHED.getCode());
entity.setOpinionContent(cmd.getOpinionContent());
evalProcessControlGateway.modify(entity);
@ -222,6 +227,23 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
evalSignTaskMapper.insert(task);
}
/**
* id org_personnel id userName
*/
private SignTaskPersonCo buildSignTaskPerson(Long personnelId) {
SignTaskPersonCo co = new SignTaskPersonCo();
co.setSignerPersonnelId(personnelId);
if (personnelId != null) {
OrgPersonnelDO personnel = orgPersonnelMapper.selectOne(new LambdaQueryWrapper<OrgPersonnelDO>()
.select(OrgPersonnelDO::getId, OrgPersonnelDO::getUserName)
.eq(OrgPersonnelDO::getId, personnelId));
if (personnel != null) {
co.setSignerName(personnel.getUserName());
}
}
return co;
}
@Override
public SingleResponse<EvalProcessControlCO> getByProject(String projectId) {
Long pid = Long.parseLong(projectId);
@ -236,21 +258,29 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
@Override
public SingleResponse<EvalProcessControlDetailCO> getDetailByProject(Long projectId) {
// 1. 查询项目成员中的过程控制负责人信息role包含EVALUATION_AGENCY_HEAD或PROCESS_CONTROL_LEAD
// 1. 查询项目成员中的过程控制负责人和机构负责人信息role包含PROCESS_CONTROL_LEAD或EVALUATION_AGENCY_HEAD
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())))
.and(w -> w.like(EvalProjectMemberDO::getRole, ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal())
.or().like(EvalProjectMemberDO::getRole, ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal())))
.stream()
.map(evalProjectMemberDoConvertor::convertDoToE)
.collect(Collectors.toList());
// 按角色分别过滤
List<EvalProjectMemberEntity> controllers = members.stream()
.filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.PROCESS_CONTROL_LEAD.getVal()))
.collect(Collectors.toList());
List<EvalProjectMemberEntity> orgHeads = members.stream()
.filter(m -> m.getRole() != null && m.getRole().contains(ProjectRoleEnum.EVALUATION_AGENCY_HEAD.getVal()))
.collect(Collectors.toList());
// 2. 查询过程控制记录,未查询到则过程控制记录字段为空
EvalProcessControlEntity entity = evalProcessControlGateway.getByProjectId(projectId, null);
EvalProcessControlDetailCO detailCO = new EvalProcessControlDetailCO();
detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(members));
detailCO.setControllers(evalProcessControlConvertor.toMemberCOs(controllers));
detailCO.setOrgHeads(evalProcessControlConvertor.toMemberCOs(orgHeads));
// 查询项目归档信息
EvalProjectEntity project = evalProjectNodeSupport.requireProject(projectId);
@ -263,9 +293,9 @@ public class EvalProcessControlExecutor implements EvalProcessControlApi {
// 3. 通过过程控制记录id查询审核项列表
detailCO.setReviewItems(evalReviewItemQueryService.listByBizIdAndBizType(
entity.getId(), ReviewDimensionEnum.TypeEnum.EVAL_PROCESS_CONTROL.getCode()));
// 4. 查询签字任务人员
SignTaskPersonCo personCo = evalSignTaskMapper.selectSignerPerson(entity.getId(), projectId);
detailCO.setSignTaskPersonCo(personCo);
// 4. 设置过程控制负责人与机构负责人签字任务人员
detailCO.setSignTaskPersonCo(buildSignTaskPerson(entity.getControllerPersonnelId()));
detailCO.setOrgHeadSignTaskPersonCo(buildSignTaskPerson(entity.getOrgHeadPersonnelId()));
} else {
// 未查询到过程控制记录,按审核维度枚举构建默认审核项
detailCO.setReviewItems(ReviewDimensionEnum.getListByType(ReviewDimensionEnum.TypeEnum.EVAL_PROCESS_CONTROL)

View File

@ -20,12 +20,18 @@ public class EvalProcessControlDetailCO {
@ApiModelProperty("过程控制负责人成员信息")
private List<EvalProjectMemberCO> controllers;
@ApiModelProperty("机构负责人成员信息")
private List<EvalProjectMemberCO> orgHeads;
@ApiModelProperty("审核项列表")
private List<EvalReviewItemCo> reviewItems;
@ApiModelProperty("机构负责人签字任务人员")
@ApiModelProperty("过程控制负责人签字任务人员")
private SignTaskPersonCo signTaskPersonCo;
@ApiModelProperty("机构负责人签字任务人员")
private SignTaskPersonCo orgHeadSignTaskPersonCo;
@ApiModelProperty("项目归档移交人")
private String archiveTransferorName;