|
|
@@ -929,21 +929,36 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
.in(BizClinicRoomPO::getId, clinicIds));
|
|
|
//去除已删除数据
|
|
|
Set<String> existClinicIds = clinicRooms.stream().map(BizClinicRoomPO::getId).collect(Collectors.toSet());
|
|
|
- clinicIds.removeIf(clinicId -> !existClinicIds.contains(clinicId));
|
|
|
List<AppClinicBatchErrorVO> finishError = new ArrayList<>();
|
|
|
- clinicRooms.forEach(clinicRoom -> {
|
|
|
- if (ObjectUtil.isNull(clinicRoom)) {
|
|
|
+ if(CollectionUtil.isEmpty(existClinicIds)){
|
|
|
+ clinicIds.forEach(clinicId->{
|
|
|
finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
- .clinicId(clinicRoom.getId())
|
|
|
+ .clinicId(clinicId)
|
|
|
.errorMsg("手术信息不存在")
|
|
|
.build());
|
|
|
- return;
|
|
|
+ });
|
|
|
+ return finishError;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分离无效ID并生成错误信息
|
|
|
+ List<String> validClinicIds = new ArrayList<>();
|
|
|
+ for (String clinicId : clinicIds) {
|
|
|
+ if (!existClinicIds.contains(clinicId)) {
|
|
|
+ finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
+ .clinicId(clinicId)
|
|
|
+ .errorMsg("手术信息不存在")
|
|
|
+ .build());
|
|
|
+ } else {
|
|
|
+ validClinicIds.add(clinicId);
|
|
|
}
|
|
|
+ }
|
|
|
+ clinicRooms.forEach(clinicRoom -> {
|
|
|
if (ClinicPhaseEnums.AFTER.equals(clinicRoom.getClinicStatus())) {
|
|
|
finishError.add(AppClinicBatchErrorVO.builder()
|
|
|
.clinicId(clinicRoom.getId())
|
|
|
.errorMsg("手术已结束,无法结束手术")
|
|
|
.build());
|
|
|
+ validClinicIds.remove(clinicRoom.getId());
|
|
|
return;
|
|
|
}
|
|
|
if (ObjectUtil.compare(source.getClinicEndTime(), new Date()) > 0) {
|
|
|
@@ -953,6 +968,7 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
, DateUtil.formatDateTime(source.getClinicEndTime())
|
|
|
, DateUtil.formatDateTime(new Date())))
|
|
|
.build());
|
|
|
+ validClinicIds.remove(clinicRoom.getId());
|
|
|
return;
|
|
|
}
|
|
|
if (ObjectUtil.compare(clinicRoom.getClinicStartTime(), source.getClinicEndTime()) > 0) {
|
|
|
@@ -962,10 +978,10 @@ public class BizClinicRoomServiceImpl implements IBizClinicRoomService {
|
|
|
, DateUtil.formatDateTime(source.getClinicEndTime()),
|
|
|
DateUtil.formatDateTime(clinicRoom.getClinicStartTime())))
|
|
|
.build());
|
|
|
+ validClinicIds.remove(clinicRoom.getId());
|
|
|
}
|
|
|
});
|
|
|
- finishError.forEach(error->clinicIds.removeIf(id-> id.equals(error.getClinicId())));
|
|
|
- if(CollectionUtil.isNotEmpty(clinicIds)){
|
|
|
+ if(CollectionUtil.isNotEmpty(validClinicIds)){
|
|
|
baseRepository.update(null, new LambdaUpdateWrapper<BizClinicRoomPO>()
|
|
|
.set(BizClinicRoomPO::getClinicStatus, ClinicPhaseEnums.AFTER)
|
|
|
.set(BizClinicRoomPO::getClinicEndTime, source.getClinicEndTime())
|