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

View File

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

View File

@ -132,6 +132,38 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
return SingleResponse.success(true); 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 @Override
public SingleResponse<Void> deleteParticipant(Long id) { public SingleResponse<Void> deleteParticipant(Long id) {
EvalRiskParticipantEntity existing = requireParticipant(id); EvalRiskParticipantEntity existing = requireParticipant(id);
@ -149,6 +181,12 @@ public class EvalRiskAnalysisExecutor implements EvalRiskAnalysisApi {
evalRiskParticipantGateway.listByRiskId(risk.getId()))); 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) { private EvalRiskAnalysisCO toDetailCO(EvalRiskAnalysisEntity entity) {
EvalRiskAnalysisCO co = evalRiskAnalysisCmdConvertor.convertEToCO(entity); EvalRiskAnalysisCO co = evalRiskAnalysisCmdConvertor.convertEToCO(entity);
co.setParticipants(evalRiskAnalysisCmdConvertor.convertParticipantListToCOList( co.setParticipants(evalRiskAnalysisCmdConvertor.convertParticipantListToCOList(

View File

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

View File

@ -18,8 +18,11 @@ public interface EvalRiskAnalysisApi {
SingleResponse<EvalRiskAnalysisEnumsCO> enums(); SingleResponse<EvalRiskAnalysisEnumsCO> enums();
SingleResponse<Boolean> saveParticipant(List<EvalRiskParticipantSaveCmd> cmd); SingleResponse<Boolean> saveParticipant(List<EvalRiskParticipantSaveCmd> cmd);
SingleResponse<Boolean> saveParticipantMember(List<EvalRiskParticipantSaveCmd> cmd);
SingleResponse<Void> deleteParticipant(Long id); SingleResponse<Void> deleteParticipant(Long id);
SingleResponse<List<EvalRiskParticipantCO>> listParticipants(String riskId); 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 io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data @Data
public class EvalRiskParticipantSaveCmd { public class EvalRiskParticipantSaveCmd {
@ApiModelProperty("主键ID(修改时传)") @ApiModelProperty("主键ID(修改时传)")
private String id; private String id;
@NotBlank(message = "风险分析or项目组经理ID不能为空")
@ApiModelProperty(value = "风险分析or项目组经理ID", required = true) @ApiModelProperty(value = "风险分析or项目组经理ID", required = true)
private String riskId; private String riskId;

View File

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

View File

@ -55,4 +55,15 @@ public class EvalRiskParticipantGatewayImpl implements EvalRiskParticipantGatewa
.map(evalRiskParticipantDoConvertor::convertDoToE) .map(evalRiskParticipantDoConvertor::convertDoToE)
.collect(Collectors.toList()); .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());
}
} }