增加每人最多病例限制111

This commit is contained in:
wucongxing8150 2025-07-08 18:00:46 +08:00
parent 042990d6a5
commit 71db0a5ca3

View File

@ -35,6 +35,7 @@ import java.time.chrono.ChronoLocalDate;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import static net.lab1024.sa.common.common.code.UserErrorCode.NO_PERMISSION_EDIT; import static net.lab1024.sa.common.common.code.UserErrorCode.NO_PERMISSION_EDIT;
import static net.lab1024.sa.common.common.code.UserErrorCode.PROJECT_CLOSE; import static net.lab1024.sa.common.common.code.UserErrorCode.PROJECT_CLOSE;
@ -287,15 +288,6 @@ public class MedicalRecordService {
return ResponseDTO.userErrorParam("请先签署项目协议!"); return ResponseDTO.userErrorParam("请先签署项目协议!");
} }
// 获取已提交病例数量
LambdaQueryWrapper<MedicalRecordEntity> caseCountQueryWrapper = new LambdaQueryWrapper<>();
caseCountQueryWrapper.eq(MedicalRecordEntity::getExpertId,expertId);
caseCountQueryWrapper.in(MedicalRecordEntity::getStatus, Arrays.asList(0, 1));
Long caseCount = medicalRecorDao.selectCount(caseCountQueryWrapper);
if (caseCount > 5 ){
return ResponseDTO.userErrorParam("每人最多可提交5份病例");
}
/*************************前置 检查*****************************/ /*************************前置 检查*****************************/
ResponseDTO check = check(updateForm, expertId); ResponseDTO check = check(updateForm, expertId);
@ -460,9 +452,19 @@ public class MedicalRecordService {
//患者id //患者id
String uid = form.getUid(); String uid = form.getUid();
// 获取全部患者数据
LambdaQueryWrapper<MedicalRecordUserEntity> userQueryWrapper = new LambdaQueryWrapper<>();
userQueryWrapper.eq(MedicalRecordUserEntity::getUid, uid);
List<MedicalRecordUserEntity> medicalRecordUsers = medicalRecorUserDao.selectList(userQueryWrapper);
if (!medicalRecordUsers.isEmpty()) {
List<Long> userIds = medicalRecordUsers.stream()
.map(MedicalRecordUserEntity::getId)
.distinct() // 可选去重
.collect(Collectors.toList());
// 获取该患者的全部病例 // 获取该患者的全部病例
LambdaQueryWrapper<MedicalRecordEntity> medicalRecordQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MedicalRecordEntity> medicalRecordQueryWrapper = new LambdaQueryWrapper<>();
medicalRecordQueryWrapper.eq(MedicalRecordEntity::getUserId, uid); medicalRecordQueryWrapper.in(MedicalRecordEntity::getUserId, userIds);
List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper); List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
for (MedicalRecordEntity medicalRecord: medicalRecords) { for (MedicalRecordEntity medicalRecord: medicalRecords) {
// 判断是否是今天 // 判断是否是今天
@ -472,11 +474,12 @@ public class MedicalRecordService {
return ResponseDTO.userErrorParam("患者入院时间和其他病例出现重复"); return ResponseDTO.userErrorParam("患者入院时间和其他病例出现重复");
} }
} }
}
medicalRecordQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<MedicalRecordEntity> medicalRecordQueryWrapper = new LambdaQueryWrapper<>();
medicalRecordQueryWrapper.eq(MedicalRecordEntity::getExpertId, expertId); medicalRecordQueryWrapper.eq(MedicalRecordEntity::getExpertId, expertId);
medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper); List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
if (medicalRecords.size() >= 20){ if (medicalRecords.size() >= 4){
return ResponseDTO.userErrorParam("每人参与病例征集不得超过20例"); return ResponseDTO.userErrorParam("每人参与病例征集不得超过20例");
} }