diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java index fdc611e..a591368 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentServiceImpl.java @@ -173,52 +173,70 @@ public class ExperimentServiceImpl extends ServiceImpl sampleInfoList = oldExperiment.getSampleInfoList(); + List irradiationBoardList = oldExperiment.getIrradiationBoardList(); + List deviationConditionList = oldExperiment.getDeviationConditionList(); + List deviationEquipmentList = oldExperiment.getDeviationEquipmentList(); + if (CollUtil.isNotEmpty(sampleInfoList)) { sampleInfoList.forEach(sampleInfo -> { - ExperimentSampleInfo target = new ExperimentSampleInfo(); - BeanUtil.copyProperties(sampleInfo, target); - target.setId(null); - target.setExperimentId(experiment.getId()); - target.setSampleImage(null); - experimentSampleInfoService.save(target); - }); - } + ExperimentSampleInfo newSampleInfo = new ExperimentSampleInfo(); + BeanUtil.copyProperties(sampleInfo, newSampleInfo); + newSampleInfo.setId(null); - List irradiationBoardList = oldExperiment.getIrradiationBoardList(); - if (CollUtil.isNotEmpty(irradiationBoardList)) { - irradiationBoardList.forEach(board -> { - ExperimentIrradiationBoard target = new ExperimentIrradiationBoard(); - BeanUtil.copyProperties(board, target); - target.setId(null); - target.setMeasurementValidity(null); - target.setSourceArea(null); - target.setSampleImage(null); - target.setExperimentId(experiment.getId()); - experimentIrradiationBoardService.save(target); - }); - } - List deviationEquipmentList = oldExperiment.getDeviationEquipmentList(); - if (CollUtil.isNotEmpty(deviationEquipmentList)) { - deviationEquipmentList.forEach(board -> { - ExperimentDeviationEquipment target = new ExperimentDeviationEquipment(); - BeanUtil.copyProperties(board, target); - - target.setId(null); - target.setMeasurementValidity(null); - target.setSampleImage(null); - target.setExperimentId(experiment.getId()); - experimentDeviationEquipmentService.save(target); - }); - } - - List deviationConditionList = oldExperiment.getDeviationConditionList(); - if (CollUtil.isNotEmpty(deviationConditionList)) { - deviationConditionList.forEach(board -> { - ExperimentDeviationCondition target = new ExperimentDeviationCondition(); - BeanUtil.copyProperties(board, target); - target.setId(null); - target.setExperimentId(experiment.getId()); - experimentDeviationConditionService.save(target); + newSampleInfo.setExperimentId(experiment.getId()); + newSampleInfo.setSampleImage(null); + newSampleInfo.setCreateTime(new Date()); + newSampleInfo.setUpdateTime(new Date()); + experimentSampleInfoService.save(newSampleInfo); + //irradiationBoard + irradiationBoardList.stream().filter( + experimentIrradiationBoard -> StringUtils.equals(experimentIrradiationBoard.getSampleId(), + sampleInfo.getId()) + && StringUtils.equals(experimentIrradiationBoard.getExperimentId(), sampleInfo.getExperimentId())) + .forEach( + experimentIrradiationBoard -> { + ExperimentIrradiationBoard newBoard = new ExperimentIrradiationBoard(); + BeanUtil.copyProperties(experimentIrradiationBoard, newBoard); + newBoard.setId(null); + newBoard.setMeasurementValidity(null); + newBoard.setSourceArea(null); + newBoard.setSampleImage(null); + newBoard.setExperimentId(experiment.getId()); + newBoard.setSampleId(newSampleInfo.getId()); + newBoard.setCreateTime(new Date()); + newBoard.setUpdateTime(new Date()); + experimentIrradiationBoardService.save(newBoard); + }); + //deviationEquipment + deviationEquipmentList.stream().filter( + experimentIrradiationBoard -> StringUtils.equals(experimentIrradiationBoard.getSampleId(), sampleInfo.getId()) + && StringUtils.equals(experimentIrradiationBoard.getExperimentId(), sampleInfo.getExperimentId())).forEach( + board -> { + ExperimentDeviationEquipment newExperiment = new ExperimentDeviationEquipment(); + BeanUtil.copyProperties(board, newExperiment); + newExperiment.setId(null); + newExperiment.setMeasurementValidity(null); + newExperiment.setSampleImage(null); + newExperiment.setExperimentId(experiment.getId()); + newExperiment.setSampleId(newSampleInfo.getId()); + newExperiment.setCreateTime(new Date()); + newExperiment.setUpdateTime(new Date()); + experimentDeviationEquipmentService.save(newExperiment); + }); + //deviationCondition + deviationConditionList.stream().filter( + experimentIrradiationBoard -> StringUtils.equals(experimentIrradiationBoard.getSampleId(), sampleInfo.getId()) + && StringUtils.equals(experimentIrradiationBoard.getExperimentId(), sampleInfo.getExperimentId())).forEach( + board -> { + ExperimentDeviationCondition newCondition = new ExperimentDeviationCondition(); + BeanUtil.copyProperties(board, newCondition); + newCondition.setId(null); + newCondition.setExperimentId(experiment.getId()); + newCondition.setSampleId(newSampleInfo.getId()); + newCondition.setCreateTime(new Date()); + newCondition.setUpdateTime(new Date()); + experimentDeviationConditionService.save(newCondition); + }); }); } return experiment;