增加每人最多病例限制111
This commit is contained in:
parent
042990d6a5
commit
71db0a5ca3
@ -35,6 +35,7 @@ import java.time.chrono.ChronoLocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
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.PROJECT_CLOSE;
|
||||
@ -287,15 +288,6 @@ public class MedicalRecordService {
|
||||
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);
|
||||
@ -460,23 +452,34 @@ public class MedicalRecordService {
|
||||
//患者id
|
||||
String uid = form.getUid();
|
||||
|
||||
// 获取该患者的全部病例
|
||||
LambdaQueryWrapper<MedicalRecordEntity> medicalRecordQueryWrapper = new LambdaQueryWrapper<>();
|
||||
medicalRecordQueryWrapper.eq(MedicalRecordEntity::getUserId, uid);
|
||||
List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
|
||||
for (MedicalRecordEntity medicalRecord: medicalRecords) {
|
||||
// 判断是否是今天
|
||||
// 同一个患者ID可以提交多份病例(入院时间不同),所有病例对比
|
||||
boolean isSameDate = medicalRecord.getAdmissionTime().toLocalDate().isEqual(admissionTime.toLocalDate());
|
||||
if (isSameDate){
|
||||
return ResponseDTO.userErrorParam("患者入院时间和其他病例出现重复");
|
||||
// 获取全部患者数据
|
||||
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<>();
|
||||
medicalRecordQueryWrapper.in(MedicalRecordEntity::getUserId, userIds);
|
||||
List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
|
||||
for (MedicalRecordEntity medicalRecord: medicalRecords) {
|
||||
// 判断是否是今天
|
||||
// 同一个患者ID可以提交多份病例(入院时间不同),所有病例对比
|
||||
boolean isSameDate = medicalRecord.getAdmissionTime().toLocalDate().isEqual(admissionTime.toLocalDate());
|
||||
if (isSameDate){
|
||||
return ResponseDTO.userErrorParam("患者入院时间和其他病例出现重复");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
medicalRecordQueryWrapper = new LambdaQueryWrapper<>();
|
||||
LambdaQueryWrapper<MedicalRecordEntity> medicalRecordQueryWrapper = new LambdaQueryWrapper<>();
|
||||
medicalRecordQueryWrapper.eq(MedicalRecordEntity::getExpertId, expertId);
|
||||
medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
|
||||
if (medicalRecords.size() >= 20){
|
||||
List<MedicalRecordEntity> medicalRecords = medicalRecorDao.selectList(medicalRecordQueryWrapper);
|
||||
if (medicalRecords.size() >= 4){
|
||||
return ResponseDTO.userErrorParam("每人参与病例征集不得超过20例");
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user