1、修改培训申请通过后新增培训人员逻辑

dev
shenzhidan 2026-02-03 10:43:39 +08:00
parent 944d980bf8
commit 8b79e9e36b
4 changed files with 34 additions and 9 deletions

View File

@ -21,4 +21,7 @@ public class TrainingApplyProcessNodeE {
@ApiModelProperty(value = "时间")
private String time;
@ApiModelProperty(value = "审批时间")
private String approvalTime;
}

View File

@ -136,12 +136,12 @@ public class TrainingApplyRecordE extends BaseE {
public void addTrainingUser() {
if (this.applyUsers == null) return;
applyUsers.forEach(user -> {
TrainingUserE trainingUser = new TrainingUserE();
trainingUser.setTrainingUserId(IdUtil.simpleUUID());
trainingUser.setPhone(user.getPhone());
trainingUser.setApplyStatus(user.getApplyStatus());
trainingUser.setExamineStatus(ExamineStatusEnum.PENDING.getCode());
this.trainingUsers.add(trainingUser);
if (user != null && user.getApplyStatus().equals(ApplyStatusEnum.APPROVED.getCode())) {
TrainingUserE trainingUser = new TrainingUserE();
trainingUser.setTrainingUserId(IdUtil.simpleUUID());
trainingUser.setPhone(user.getPhone());
this.trainingUsers.add(trainingUser);
}
});
}
/**

View File

@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
@ -35,8 +36,25 @@ public class TrainingUserGatewayImpl implements TrainingUserGateway {
@Override
public Boolean addBatch(List<TrainingUserE> trainingUserEList) {
// 使用 Stream 流进行转换
if (trainingUserEList == null || trainingUserEList.isEmpty()) {
return true;
}
List<String> phones = trainingUserEList.stream()
.map(TrainingUserE::getPhone)
.filter(StrUtil::isNotBlank)
.distinct()
.collect(Collectors.toList());
List<TrainingUserDO> existingUsers = trainingUserRepository.lambdaQuery()
.select(TrainingUserDO::getPhone)
.in(TrainingUserDO::getPhone, phones)
.list();
Set<String> existingPhones = existingUsers.stream()
.map(TrainingUserDO::getPhone)
.collect(Collectors.toSet());
List<TrainingUserDO> doList = trainingUserEList.stream()
.filter(e -> StrUtil.isNotBlank(e.getPhone())
&& !existingPhones.contains(e.getPhone()))
.map(e -> {
TrainingUserDO d = new TrainingUserDO(Tools.get32UUID());
BeanUtils.copyProperties(e, d, "trainingUserId");
@ -44,7 +62,10 @@ public class TrainingUserGatewayImpl implements TrainingUserGateway {
})
.collect(Collectors.toList());
trainingUserRepository.saveBatch(doList);
if (!doList.isEmpty()) {
trainingUserRepository.saveBatch(doList);
}
return true;
}

View File

@ -16,7 +16,8 @@
tar.approval_status AS approvalStatus,
u.username AS username,
tap.apply_type AS applyType,
DATE_FORMAT(tap.create_time, '%Y-%m-%d %H:%i:%s') AS time
DATE_FORMAT(tap.create_time, '%Y-%m-%d %H:%i:%s') AS time,
DATE_FORMAT(tap.update_time, '%Y-%m-%d %H:%i:%s') as approvalTime
FROM
training_apply_process tap
LEFT JOIN