diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java index 8c7c34b..823d5db 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/controller/ExperimentController.java @@ -150,7 +150,14 @@ public class ExperimentController extends JeecgController sampleInfoList = experiment.getSampleInfoList(); + //校验试验的基本信息 + String result = validateSampleInfos(experiment); + if (StringUtils.isNotBlank(result)) { + return Result.error(result); + } + + //TODO: 0518 暂时注释掉 + /* List sampleInfoList = experiment.getSampleInfoList(); List irradiationBoardList = experiment.getIrradiationBoardList(); List deviationConditionList = experiment.getDeviationConditionList(); List deviationEquipmentList = experiment.getDeviationEquipmentList(); @@ -166,7 +173,7 @@ public class ExperimentController extends JeecgController sampleInfoList = experiment.getSampleInfoList(); + List irradiationBoardList = experiment.getIrradiationBoardList(); + List deviationConditionList = experiment.getDeviationConditionList(); + List deviationEquipmentList = experiment.getDeviationEquipmentList(); + + Set sampleModelSet = sampleInfoList.stream() + .map(ExperimentSampleInfo::getSampleModel) + .collect(Collectors.toSet()); + + Set 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 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 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 sampleInfoList = experiment.getSampleInfoList(); - List irradiationBoardList = experiment.getIrradiationBoardList(); - List deviationConditionList = experiment.getDeviationConditionList(); - List deviationEquipmentList = experiment.getDeviationEquipmentList(); - Set sampleList = sampleInfoList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet()); - Set boardList = irradiationBoardList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet()); - Set conditionList = deviationConditionList.stream().map(v -> v.getSampleModel()).collect(Collectors.toUnmodifiableSet()); - Set 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);