修改试验新增和编辑的校验,加偏设备可以在一个里面选多个样品。
This commit is contained in:
@@ -150,7 +150,14 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
|||||||
if (!StringUtils.startsWith(experimentNo, "KC")) {
|
if (!StringUtils.startsWith(experimentNo, "KC")) {
|
||||||
return Result.error("实验编号格式不正确!");
|
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<ExperimentIrradiationBoard> irradiationBoardList = experiment.getIrradiationBoardList();
|
||||||
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
||||||
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
||||||
@@ -166,7 +173,7 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
|||||||
}
|
}
|
||||||
if (!sampleList.equals(equipmentList)) {
|
if (!sampleList.equals(equipmentList)) {
|
||||||
return Result.error("加偏设备信息不匹配!");
|
return Result.error("加偏设备信息不匹配!");
|
||||||
}
|
}*/
|
||||||
experiment.setStatus(ExperimentStatus.PRE_TEST);
|
experiment.setStatus(ExperimentStatus.PRE_TEST);
|
||||||
experimentService.saveWithDetail(experiment);
|
experimentService.saveWithDetail(experiment);
|
||||||
|
|
||||||
@@ -181,6 +188,58 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
|||||||
return Result.OK("添加成功!");
|
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 = "试验管理-暂存")
|
@AutoLog(value = "试验管理-暂存")
|
||||||
@Operation(summary = "试验管理-暂存")
|
@Operation(summary = "试验管理-暂存")
|
||||||
@RequiresPermissions("database:experiment:add")
|
@RequiresPermissions("database:experiment:add")
|
||||||
@@ -235,23 +294,10 @@ public class ExperimentController extends JeecgController<Experiment, IExperimen
|
|||||||
experiment.setIndexNo(dbExp.getIndexNo());
|
experiment.setIndexNo(dbExp.getIndexNo());
|
||||||
}
|
}
|
||||||
|
|
||||||
List<ExperimentSampleInfo> sampleInfoList = experiment.getSampleInfoList();
|
//校验试验的基本信息
|
||||||
List<ExperimentIrradiationBoard> irradiationBoardList = experiment.getIrradiationBoardList();
|
String result = validateSampleInfos(experiment);
|
||||||
List<ExperimentDeviationCondition> deviationConditionList = experiment.getDeviationConditionList();
|
if (StringUtils.isNotBlank(result)) {
|
||||||
List<ExperimentDeviationEquipment> deviationEquipmentList = experiment.getDeviationEquipmentList();
|
return Result.error(result);
|
||||||
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("加偏设备信息不匹配!");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
experimentService.saveWithDetail(experiment);
|
experimentService.saveWithDetail(experiment);
|
||||||
|
|||||||
Reference in New Issue
Block a user