修改试验新增和编辑的校验,加偏设备可以在一个里面选多个样品。
This commit is contained in:
@@ -150,7 +150,14 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
||||
if (!StringUtils.startsWith(experimentNo, "KC")) {
|
||||
return Result.error("实验编号格式不正确!");
|
||||
}
|
||||
List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
||||
//校验试验的基本信息
|
||||
String result = validateSampleInfos(experiment);
|
||||
if (StringUtils.isNotBlank(result)) {
|
||||
return Result.error(result);
|
||||
}
|
||||
|
||||
//TODO: 0518 暂时注释掉
|
||||
/* List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
||||
List<ExperimentIrradiationBoard> irradiationBoardList = experiment.getIrradiationBoardList();
|
||||
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
||||
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
||||
@@ -166,7 +173,7 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
||||
}
|
||||
if (!sampleList.equals(equipmentList)) {
|
||||
return Result.error("加偏设备信息不匹配!");
|
||||
}
|
||||
}*/
|
||||
experiment.setStatus(ExperimentStatus.PRE_TEST);
|
||||
experimentService.saveWithDetail(experiment);
|
||||
|
||||
@@ -181,6 +188,58 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
||||
return Result.OK("添加成功!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增和修改试验时 需要校验样例信息和辐照板信息、偏置条件信息、加偏设备信息是否一致。
|
||||
* 检查方法是: 样品信息的ids = 辐照板信息、偏置条件信息、加偏设备信息的样品信息IDs
|
||||
* @param experiment 试验信息
|
||||
* @return 错误信息, 如果返回为空,则校验通过。
|
||||
*/
|
||||
private String validateSampleInfos(Experiment experiment) {
|
||||
List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
||||
List<ExperimentIrradiationBoard> irradiationBoardList = experiment.getIrradiationBoardList();
|
||||
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
||||
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
||||
|
||||
Set<String> sampleModelSet = sampleInfoList.stream()
|
||||
.map(ExperimentSampleInfo::getSampleModel)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
Set<String> irradiationBoardModels = irradiationBoardList.stream()
|
||||
.map(ExperimentIrradiationBoard::getSampleModel)
|
||||
.filter(sampleModel -> sampleModel != null && !sampleModel.isEmpty())
|
||||
.flatMap(sampleModel -> Arrays.stream(sampleModel.split(",")))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (!sampleModelSet.equals(irradiationBoardModels)) {
|
||||
return "辐照板信息不匹配!";
|
||||
}
|
||||
|
||||
Set<String> deviationConditionModels = deviationConditionList.stream()
|
||||
.map(ExperimentDeviationCondition::getSampleModel)
|
||||
.filter(sampleModel -> sampleModel != null && !sampleModel.isEmpty())
|
||||
.flatMap(sampleModel -> Arrays.stream(sampleModel.split(",")))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (!sampleModelSet.equals(deviationConditionModels)) {
|
||||
return "偏置条件信息不匹配!";
|
||||
}
|
||||
|
||||
Set<String> deviationEquipmentModels = deviationEquipmentList.stream()
|
||||
.map(ExperimentDeviationEquipment::getSampleModel)
|
||||
.filter(sampleModel -> sampleModel != null && !sampleModel.isEmpty())
|
||||
.flatMap(sampleModel -> Arrays.stream(sampleModel.split(",")))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
if (!sampleModelSet.equals(deviationEquipmentModels)) {
|
||||
return "加偏设备信息不匹配!";
|
||||
}
|
||||
|
||||
return "";
|
||||
}
|
||||
|
||||
@AutoLog(value = "试验管理-暂存")
|
||||
@Operation(summary = "试验管理-暂存")
|
||||
@RequiresPermissions("database:experiment:add")
|
||||
@@ -235,23 +294,10 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
||||
experiment.setIndexNo(dbExp.getIndexNo());
|
||||
}
|
||||
|
||||
List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
||||
List<ExperimentIrradiationBoard> irradiationBoardList = experiment.getIrradiationBoardList();
|
||||
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
||||
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
||||
Set<String> sampleList = sampleInfoList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet());
|
||||
Set<String> boardList = irradiationBoardList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet());
|
||||
Set<String> conditionList = deviationConditionList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet());
|
||||
Set<String> equipmentList = deviationEquipmentList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet());
|
||||
if (!sampleList.equals(boardList)) {
|
||||
return Result.error("辐照板信息不匹配!");
|
||||
}
|
||||
if (!sampleList.equals(conditionList)) {
|
||||
return Result.error("偏置条件信息不匹配!");
|
||||
}
|
||||
|
||||
if (!sampleList.equals(equipmentList)) {
|
||||
return Result.error("加偏设备信息不匹配!");
|
||||
//校验试验的基本信息
|
||||
String result = validateSampleInfos(experiment);
|
||||
if (StringUtils.isNotBlank(result)) {
|
||||
return Result.error(result);
|
||||
}
|
||||
|
||||
experimentService.saveWithDetail(experiment);
|
||||
|
||||
Reference in New Issue
Block a user