dev-tmp1
zhanglei 2026-08-20 15:07:31 +08:00
parent f684e884c9
commit 24729c06ee
8 changed files with 79 additions and 15 deletions

View File

@ -48,13 +48,13 @@ public class EvalProjectMemberController {
@ApiOperation("保存项目经理签字人")
@PostMapping("/participant/save")
public SingleResponse<Boolean> saveParticipant(@Validated @RequestBody List<EvalRiskParticipantSaveCmd> cmd) {
return evalRiskAnalysisApi.saveParticipant(cmd);
return evalRiskAnalysisApi.saveParticipantMember(cmd);
}
@ApiOperation("参与人列表")
@GetMapping("/participant/list")
public SingleResponse<List<EvalRiskParticipantCO>> listParticipants(
@ApiParam("项目组id") @RequestParam String projectTeamId) {
return evalRiskAnalysisApi.listParticipants(projectTeamId);
@ApiParam("projectId") @RequestParam String projectId) {
return evalRiskAnalysisApi.listParticipantsMember(projectId);
}
}

View File

@ -48,10 +48,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -282,7 +279,8 @@ public class EvalProjectExecutor implements EvalProjectApi {
.map(EvalProjectCO::getCustomerId).collect(Collectors.toList()))
.stream().collect(Collectors.toMap(EvalCustomerDO::getId, EvalCustomerDO::getCustomerName));
Map<Long, String> projectRole = getProjectRole(co.stream().map(EvalProjectCO::getId).map(Long::new).collect(Collectors.toList()));
co.stream().sorted((o1, o2) -> o2.getSurveyType() - o1.getSurveyType()).forEach(item -> {
co = co.stream().sorted(Comparator.comparingInt(EvalProjectCO::getSurveyType)).collect(Collectors.toList());
co.forEach(item -> {
item.setCustomerName(customerNameMap.get(Long.valueOf(item.getCustomerId())));
item.setRole(projectRole.get(Long.valueOf(item.getId())));
});

View File

@ -132,6 +132,38 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
return SingleResponse.success(true);
}
@Override
public SingleResponse<Boolean> saveParticipantMember(List<EvalRiskParticipantSaveCmd> cmdList) {
List<Long> dbIds = evalRiskParticipantMapper.selectList(new LambdaQueryWrapper<EvalRiskParticipantDO>()
.isNull(EvalRiskParticipantDO::getRiskId)
.eq(EvalRiskParticipantDO::getProjectId, cmdList.get(0).getProjectId()))
.stream().map(EvalRiskParticipantDO::getId).collect(Collectors.toList());
List<Long> cmdIds = cmdList.stream().map(EvalRiskParticipantSaveCmd::getId).filter(Objects::nonNull).map(Long::new).collect(Collectors.toList());
List<Long> delIds = new ArrayList<>();
for (Long id : dbIds) {
if (!cmdIds.contains(id)) {
delIds.add(id);
}
}
if (!CollectionUtils.isEmpty(delIds)) {
evalRiskParticipantMapper.deleteBatchIds(delIds);
}
for (EvalRiskParticipantSaveCmd cmd : cmdList) {
EvalRiskParticipantEntity entity = evalRiskAnalysisCmdConvertor.convertParticipantCmdToE(cmd);
entity.setProjectId(cmdList.get(0).getProjectId());
if (entity.getId() == null) {
if (entity.getSortOrder() == null) {
entity.setSortOrder(0);
}
entity.setSignStatusCode(null);
evalRiskParticipantGateway.save(entity);
} else {
evalRiskParticipantGateway.modify(entity);
}
}
return SingleResponse.success(true);
}
@Override
public SingleResponse<Void> deleteParticipant(Long id) {
EvalRiskParticipantEntity existing = requireParticipant(id);
@ -149,6 +181,12 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
evalRiskParticipantGateway.listByRiskId(risk.getId())));
}
@Override
public SingleResponse<List<EvalRiskParticipantCO>> listParticipantsMember(String projectId) {
return SingleResponse.success(evalRiskAnalysisCmdConvertor.convertParticipantListToCOList(
evalRiskParticipantGateway.listByRiskIdMember(projectId)));
}
private EvalRiskAnalysisCO toDetailCO(EvalRiskAnalysisEntity entity) {
EvalRiskAnalysisCO co = evalRiskAnalysisCmdConvertor.convertEToCO(entity);
co.setParticipants(evalRiskAnalysisCmdConvertor.convertParticipantListToCOList(

View File

@ -84,9 +84,16 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi {
}
private void support(String projectId, String signerPersonnelId, String nodeCode) {
if (ProjectStageEnum.RISK_ANALYSIS.getVal().equals(nodeCode)
|| ProjectStageEnum.PROJECT_GROUP.getVal().equals(nodeCode)) {
if (ProjectStageEnum.RISK_ANALYSIS.getVal().equals(nodeCode)) {
evalRiskParticipantMapper.update(new LambdaUpdateWrapper<EvalRiskParticipantDO>()
.isNotNull(EvalRiskParticipantDO::getRiskId)
.eq(EvalRiskParticipantDO::getProjectId, projectId)
.eq(EvalRiskParticipantDO::getPersonnelId, signerPersonnelId)
.set(EvalRiskParticipantDO::getSignStatusCode, SignTaskStatusEnum.PENDING.getCode()));
}
if (ProjectStageEnum.PROJECT_GROUP.getVal().equals(nodeCode)) {
evalRiskParticipantMapper.update(new LambdaUpdateWrapper<EvalRiskParticipantDO>()
.isNull(EvalRiskParticipantDO::getRiskId)
.eq(EvalRiskParticipantDO::getProjectId, projectId)
.eq(EvalRiskParticipantDO::getPersonnelId, signerPersonnelId)
.set(EvalRiskParticipantDO::getSignStatusCode, SignTaskStatusEnum.PENDING.getCode()));
@ -144,9 +151,17 @@ public class EvalSignTaskExecutor implements EvalSignTaskApi {
.set(EvalSignTaskDO::getTaskStatusCode, SignTaskStatusEnum.SIGNED.getCode())
.set(EvalSignTaskDO::getSignerUrl, cmd.getSignerUrl()));
if (ProjectStageEnum.RISK_ANALYSIS.getVal().equals(evalSignTaskDO.getNodeCode())
|| ProjectStageEnum.PROJECT_GROUP.getVal().equals(evalSignTaskDO.getNodeCode())) {
if (ProjectStageEnum.RISK_ANALYSIS.getVal().equals(evalSignTaskDO.getNodeCode())) {
evalRiskParticipantMapper.update(new LambdaUpdateWrapper<EvalRiskParticipantDO>()
.isNotNull(EvalRiskParticipantDO::getRiskId)
.eq(EvalRiskParticipantDO::getPersonnelId, evalSignTaskDO.getSignerPersonnelId())
.eq(EvalRiskParticipantDO::getProjectId, evalSignTaskDO.getProjectId())
.set(EvalRiskParticipantDO::getSignFileUrl, cmd.getSignerUrl())
.set(EvalRiskParticipantDO::getSignStatusCode, SignTaskStatusEnum.SIGNED.getCode()));
}
if (ProjectStageEnum.PROJECT_GROUP.getVal().equals(evalSignTaskDO.getNodeCode())) {
evalRiskParticipantMapper.update(new LambdaUpdateWrapper<EvalRiskParticipantDO>()
.isNull(EvalRiskParticipantDO::getRiskId)
.eq(EvalRiskParticipantDO::getPersonnelId, evalSignTaskDO.getSignerPersonnelId())
.eq(EvalRiskParticipantDO::getProjectId, evalSignTaskDO.getProjectId())
.set(EvalRiskParticipantDO::getSignFileUrl, cmd.getSignerUrl())

View File

@ -18,8 +18,11 @@ public interface EvalRiskAnalysisApi {
SingleResponse<EvalRiskAnalysisEnumsCO> enums();
SingleResponse<Boolean> saveParticipant(List<EvalRiskParticipantSaveCmd> cmd);
SingleResponse<Boolean> saveParticipantMember(List<EvalRiskParticipantSaveCmd> cmd);
SingleResponse<Void> deleteParticipant(Long id);
SingleResponse<List<EvalRiskParticipantCO>> listParticipants(String riskId);
SingleResponse<List<EvalRiskParticipantCO>> listParticipantsMember(String projectId);
}

View File

@ -3,15 +3,12 @@ package org.qinan.safetyeval.client.dto.institution;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class EvalRiskParticipantSaveCmd {
@ApiModelProperty("主键ID(修改时传)")
private String id;
@NotBlank(message = "风险分析or项目组经理ID不能为空")
@ApiModelProperty(value = "风险分析or项目组经理ID", required = true)
private String riskId;

View File

@ -15,4 +15,6 @@ public interface EvalRiskParticipantGateway {
void delete(Long id);
List<EvalRiskParticipantEntity> listByRiskId(Long riskId);
List<EvalRiskParticipantEntity> listByRiskIdMember(String projectId);
}

View File

@ -55,4 +55,15 @@ public class EvalRiskParticipantGatewayImpl implements EvalRiskParticipantGatewa
.map(evalRiskParticipantDoConvertor::convertDoToE)
.collect(Collectors.toList());
}
@Override
public List<EvalRiskParticipantEntity> listByRiskIdMember(String projectId) {
LambdaQueryWrapper<EvalRiskParticipantDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EvalRiskParticipantDO::getProjectId, projectId);
wrapper.isNull(EvalRiskParticipantDO::getRiskId);
wrapper.orderByAsc(EvalRiskParticipantDO::getSortOrder).orderByAsc(EvalRiskParticipantDO::getId);
return evalRiskParticipantMapper.selectList(wrapper).stream()
.map(evalRiskParticipantDoConvertor::convertDoToE)
.collect(Collectors.toList());
}
}