From c8c4b0f7fcd9a65c714d2cd077a20c14e428d304 Mon Sep 17 00:00:00 2001 From: ls Date: Sun, 4 May 2025 23:26:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E9=AA=8C=E6=8A=A5=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ExperimentController.java | 124 +++++++++++++++++- .../database/dto/AnnealProcessExportDTO.java | 20 --- .../dto/TestAnnealingDurationDTO.java | 31 +++++ .../database/dto/TestEquipmentDTO.java | 28 ++++ .../database/dto/TestFluencePointDTO.java | 31 +++++ .../database/dto/TestMeteringPointDTO.java | 31 +++++ .../database/dto/TestProcessExportDTO.java | 61 ++++++++- .../entity/ExperimentTestProcess.java | 19 ++- .../service/ITestStandardsService.java | 2 +- .../ExperimentAnnealProcessServiceImpl.java | 20 ++- .../ExperimentTestProcessServiceImpl.java | 41 +++++- .../impl/TestStandardsServiceImpl.java | 8 ++ templates/fzsyzjd.docx | Bin 41146 -> 41106 bytes 13 files changed, 371 insertions(+), 45 deletions(-) create mode 100644 physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestAnnealingDurationDTO.java create mode 100644 physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestEquipmentDTO.java create mode 100644 physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestFluencePointDTO.java create mode 100644 physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestMeteringPointDTO.java 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 2de3569..bbde7e2 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 @@ -468,10 +468,14 @@ public class ExperimentController extends JeecgController j && ObjUtil.isNotNull( + deviationConditionList.get(j)) + ) { BeanUtil.copyProperties(deviationConditionList.get(j), annealProcessExportDTO); } - if (CollUtil.isNotEmpty(deviationEquipmentList) && ObjUtil.isNotNull(deviationEquipmentList.get(j))) { + if (CollUtil.isNotEmpty(deviationEquipmentList) && deviationEquipmentList.size() > j && ObjUtil.isNotNull( + deviationEquipmentList.get(j)) + ) { BeanUtil.copyProperties(deviationEquipmentList.get(j), annealProcessExportDTO); } @@ -493,12 +497,124 @@ public class ExperimentController extends JeecgController testProcessList = new ArrayList<>(); if (CollUtil.isNotEmpty(experimentTestProcessList)) { experimentTestProcessList.forEach(v -> { - List sampleInfoList = v.getSampleInfoList(); TestProcessExportDTO testProcessExportDTO = new TestProcessExportDTO(); testProcessExportDTO.setEnvironmentalTemperature(v.getEnvironmentalTemperature()); testProcessExportDTO.setEnvironmentalHumidity(v.getEnvironmentalHumidity()); - testProcessList.add(testProcessExportDTO); + testProcessExportDTO.setTestStandards(ObjUtil.isNotNull(v.getTestStandards()) ? v.getTestStandards().getName() : ""); + testProcessExportDTO.setTemperatureRequirements( + ObjUtil.isNotNull(v.getTestStandards()) ? v.getTestStandards().getTemperatureRequirements() : ""); + testProcessExportDTO.setHumidityRequirements( + ObjUtil.isNotNull(v.getTestStandards()) ? v.getTestStandards().getHumidityRequirements() : ""); + String testParameters = v.getTestParameters(); + if (StringUtils.isNotBlank(testParameters)) { + List jsonObject = JSON.parseArray(testParameters, Map.class); + String collect = jsonObject.stream().map(s -> s.getOrDefault("name", "").toString()).collect( + Collectors.joining(",")); + testProcessExportDTO.setTestParameters(collect); + } + List testEquipmentDTOList = v.getTestEquipmentList(); + if (CollUtil.isNotEmpty(testEquipmentDTOList)) { + testProcessExportDTO.setEquipmentModel(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getEquipmentModel())) + .map(t -> t.getEquipmentModel()) + .collect(Collectors.joining(","))); + testProcessExportDTO.setSampleModel(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getSampleModel())) + .map(t -> t.getSampleModel()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setManagementNo(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getManagementNo())) + .map(t -> t.getManagementNo()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setLifespan(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getLifespan())) + .map(t -> t.getLifespan()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setEquipmentName(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getEquipmentName())) + .map(t -> t.getEquipmentName()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setRoomNo(testEquipmentDTOList.stream().filter( + t -> StringUtils.isNotBlank(t.getRoomNo())) + .map(t -> t.getRoomNo()) + .collect(Collectors.joining(","))); + } + + List testMeteringPointList = v.getTestMeteringPointList(); + if (CollUtil.isNotEmpty(testMeteringPointList)) { + testProcessExportDTO.setMeteringPoint(testMeteringPointList.stream().filter( + t -> StringUtils.isNotBlank(t.getPoint())) + .map(t -> t.getPoint()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setMeteringStartTime(testMeteringPointList.stream().filter( + t -> StringUtils.isNotBlank(t.getStartTime())) + .map(t -> t.getStartTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setMeteringEndTime(testMeteringPointList.stream().filter( + t -> StringUtils.isNotBlank(t.getEndTime())) + .map(t -> t.getEndTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setMeteringResult(testMeteringPointList.stream().filter( + t -> StringUtils.isNotBlank(t.getResult())) + .map(t -> t.getResult()) + .collect(Collectors.joining(","))); + } + + List testFluencePointList = v.getTestFluencePointList(); + if (CollUtil.isNotEmpty(testFluencePointList)) { + testProcessExportDTO.setFluencePoint(testFluencePointList.stream().filter( + t -> StringUtils.isNotBlank(t.getPoint())) + .map(t -> t.getPoint()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setFluenceStartTime(testFluencePointList.stream().filter( + t -> StringUtils.isNotBlank(t.getStartTime())) + .map(t -> t.getStartTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setFluenceEndTime(testFluencePointList.stream().filter( + t -> StringUtils.isNotBlank(t.getEndTime())) + .map(t -> t.getEndTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setFluenceResult(testFluencePointList.stream().filter( + t -> StringUtils.isNotBlank(t.getResult())) + .map(t -> t.getResult()) + .collect(Collectors.joining(","))); + } + + List annealingDurationList = v.getAnnealingDurationList(); + if (CollUtil.isNotEmpty(annealingDurationList)) { + testProcessExportDTO.setAnnealingPoint(annealingDurationList.stream().filter( + t -> StringUtils.isNotBlank(t.getPoint())) + .map(t -> t.getPoint()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setAnnealingStartTime(annealingDurationList.stream().filter( + t -> StringUtils.isNotBlank(t.getStartTime())) + .map(t -> t.getStartTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setAnnealingEndTime(annealingDurationList.stream().filter( + t -> StringUtils.isNotBlank(t.getEndTime())) + .map(t -> t.getEndTime()) + .collect(Collectors.joining(","))); + + testProcessExportDTO.setAnnealingResult(annealingDurationList.stream().filter( + t -> StringUtils.isNotBlank(t.getResult())) + .map(t -> t.getResult()) + .collect(Collectors.joining(","))); + } + testProcessExportDTO.setTestResult(v.getTestResult()); + testProcessList.add(testProcessExportDTO); }); } dto.setTestProcessList(testProcessList); diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/AnnealProcessExportDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/AnnealProcessExportDTO.java index fe4edee..a6ba64b 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/AnnealProcessExportDTO.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/AnnealProcessExportDTO.java @@ -59,21 +59,11 @@ public class AnnealProcessExportDTO implements Serializable { */ @Excel(name = "其它条件", width = 15) private java.lang.String otherCondition; - /** - * 偏置电源显示界面照片 - */ - @Excel(name = "偏置电源显示界面照片", width = 15) - private java.lang.String offsetPowerPhoto; /** * 输入信号 */ @Excel(name = "输入信号", width = 15) private java.lang.String inputSignal; - /** - * 信号显示界面源照片 - */ - @Excel(name = "信号显示界面源照片", width = 15) - private java.lang.String signalPhoto; /** * 管脚接入方式 */ @@ -107,11 +97,6 @@ public class AnnealProcessExportDTO implements Serializable { */ @Excel(name = "设备类型", width = 15) private java.lang.String equipmentType; - /** - * 图片 - */ - @Excel(name = "图片", width = 15) - private java.lang.String sampleImage; /** * 计量有效期 */ @@ -122,10 +107,5 @@ public class AnnealProcessExportDTO implements Serializable { */ @Excel(name = "房间号", width = 15) private java.lang.String roomNo; - /** - * 设备编号 - */ - @Excel(name = "设备编号", width = 15) - private java.lang.String equipmentNo; } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestAnnealingDurationDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestAnnealingDurationDTO.java new file mode 100644 index 0000000..0a0ff05 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestAnnealingDurationDTO.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.database.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: 退火时长 + * @Author: jeecg-boot + * @Date: 2024-08-30 + * @Version: V1.0 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class TestAnnealingDurationDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @Excel(name = "退火时长", width = 15) + private String point; + @Excel(name = "开始时间", width = 15) + private String startTime; + @Excel(name = "结束时间", width = 15) + private String endTime; + @Excel(name = "测试结果", width = 15) + private String result; + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestEquipmentDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestEquipmentDTO.java new file mode 100644 index 0000000..126922c --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestEquipmentDTO.java @@ -0,0 +1,28 @@ +package org.jeecg.modules.database.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * @Description: 试验管理 + * @Author: jeecg-boot + * @Date: 2024-08-30 + * @Version: V1.0 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class TestEquipmentDTO implements Serializable { + private static final long serialVersionUID = 1L; + + private String sampleModel; + private String equipmentModel; + private String managementNo; + private String lifespan; + private String equipmentName; + private String roomNo; + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestFluencePointDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestFluencePointDTO.java new file mode 100644 index 0000000..0c039c7 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestFluencePointDTO.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.database.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: 测试注量点 + * @Author: jeecg-boot + * @Date: 2024-08-30 + * @Version: V1.0 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class TestFluencePointDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @Excel(name = "测试注量点", width = 15) + private String point; + @Excel(name = "开始时间", width = 15) + private String startTime; + @Excel(name = "结束时间", width = 15) + private String endTime; + @Excel(name = "测试结果", width = 15) + private String result; + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestMeteringPointDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestMeteringPointDTO.java new file mode 100644 index 0000000..b472432 --- /dev/null +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestMeteringPointDTO.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.database.dto; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.jeecgframework.poi.excel.annotation.Excel; + +import java.io.Serializable; + +/** + * @Description: 测试剂量点 + * @Author: jeecg-boot + * @Date: 2024-08-30 + * @Version: V1.0 + */ +@Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +public class TestMeteringPointDTO implements Serializable { + private static final long serialVersionUID = 1L; + + @Excel(name = "测试剂量点", width = 15) + private String point; + @Excel(name = "开始时间", width = 15) + private String startTime; + @Excel(name = "结束时间", width = 15) + private String endTime; + @Excel(name = "测试结果", width = 15) + private String result; + +} diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestProcessExportDTO.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestProcessExportDTO.java index aad2187..d07e719 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestProcessExportDTO.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/dto/TestProcessExportDTO.java @@ -20,11 +20,70 @@ import java.io.Serializable; public class TestProcessExportDTO implements Serializable { private static final long serialVersionUID = 1L; + @Excel(name = "测试标准", width = 15) + private String testStandards; + + @Excel(name = "温度要求", width = 15) + private String temperatureRequirements; + /** + * 湿度要求 + */ + @Excel(name = "湿度要求", width = 15) + private String humidityRequirements; + @Excel(name = "环境温度", width = 15) - @Schema(description = "环境温度") private String environmentalTemperature; @Excel(name = "环境湿度", width = 15) private String environmentalHumidity; + @Excel(name = "测试结果", width = 15) + private String testResult; + + @Excel(name = "测试参数", width = 15) + private String testParameters; + + @Excel(name = "样品型号", width = 15) + private String sampleModel; + @Excel(name = "设备型号", width = 15) + private String equipmentModel; + @Excel(name = "管理编号", width = 15) + private String managementNo; + @Excel(name = "计量有效期", width = 15) + private String lifespan; + @Excel(name = "设备名称", width = 15) + private String equipmentName; + @Excel(name = "房间号", width = 15) + private String roomNo; + + @Excel(name = "测试剂量点", width = 15) + private String meteringPoint; + @Excel(name = "开始时间", width = 15) + private String meteringStartTime; + @Excel(name = "结束时间", width = 15) + private String meteringEndTime; + @Excel(name = "测试结果", width = 15) + private String meteringResult; + + @Excel(name = "测试注量点", width = 15) + private String fluencePoint; + @Excel(name = "开始时间", width = 15) + private String fluenceStartTime; + @Excel(name = "结束时间", width = 15) + private String fluenceEndTime; + @Excel(name = "测试结果", width = 15) + private String fluenceResult; + + @Excel(name = "退火时长", width = 15) + private String annealingPoint; + @Excel(name = "开始时间", width = 15) + private String annealingStartTime; + @Excel(name = "结束时间", width = 15) + private String annealingEndTime; + @Excel(name = "测试结果", width = 15) + private String annealingResult; + + + + } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentTestProcess.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentTestProcess.java index a94b9b9..2377c57 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentTestProcess.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/entity/ExperimentTestProcess.java @@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.modules.database.dto.*; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; @@ -144,24 +145,38 @@ public class ExperimentTestProcess implements Serializable { @Excel(name = "测试设备", width = 15) @Schema(description = "测试设备(json 大字段)") private String testEquipment; + + @TableField(exist = false) + private List testEquipmentList; /** * 测试计量点 */ @Excel(name = "测试计量点", width = 15) @Schema(description = "测试计量点") - private String testMeteringPoint; + private String testMeteringPoint; + + @TableField(exist = false) + private List testMeteringPointList; + /** * 测试注量点 */ @Excel(name = "测试注量点", width = 15) @Schema(description = "测试注量点") private String testFluencePoint; + + @TableField(exist = false) + private List testFluencePointList; /** * 退火时长 */ @Excel(name = "退火时长", width = 15) @Schema(description = "退火时长") - private String annealingDuration; + private String annealingDuration; + + @TableField(exist = false) + private List annealingDurationList; + /** * 测试数据(json 大字段) */ diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/ITestStandardsService.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/ITestStandardsService.java index a6a0dc5..4ecf00e 100755 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/ITestStandardsService.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/ITestStandardsService.java @@ -10,5 +10,5 @@ import org.jeecg.modules.database.entity.TestStandards; * @Version: V1.0 */ public interface ITestStandardsService extends IService { - + TestStandards findByRequirements(String temperatureRequirements, String humidityRequirements); } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentAnnealProcessServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentAnnealProcessServiceImpl.java index 779f41e..0b7a607 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentAnnealProcessServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentAnnealProcessServiceImpl.java @@ -62,20 +62,18 @@ public class ExperimentAnnealProcessServiceImpl extends ServiceImpl deviationEquipmentList = Arrays.stream(deviationEquipmentIds.split(",")).map( - sampleInfoId -> experimentDeviationEquipmentService.getById(sampleInfoId)).filter(Objects::nonNull).collect( - Collectors.toList()); + String deviationEquipmentJson = experimentAnnealProcess.getDeviationEquipment(); + if (StringUtils.isNotBlank(deviationEquipmentJson)) { + List deviationEquipmentList = JSON.parseArray(deviationEquipmentJson, + ExperimentDeviationEquipment.class); experimentAnnealProcess.setDeviationEquipmentList(deviationEquipmentList); } //DeviationCondition - String deviationConditionIds = experimentAnnealProcess.getDeviationCondition(); - if (StringUtils.isNotBlank(deviationConditionIds)) { - List deviationEquipmentList = Arrays.stream(deviationConditionIds.split(",")).map( - sampleInfoId -> experimentDeviationConditionService.getById(sampleInfoId)).filter(Objects::nonNull).collect( - Collectors.toList()); - experimentAnnealProcess.setDeviationConditionList(deviationEquipmentList); + String deviationConditionJson = experimentAnnealProcess.getDeviationCondition(); + if (StringUtils.isNotBlank(deviationConditionJson)) { + List deviationConditionList = JSON.parseArray(deviationConditionJson, + ExperimentDeviationCondition.class); + experimentAnnealProcess.setDeviationConditionList(deviationConditionList); } } diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentTestProcessServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentTestProcessServiceImpl.java index d20e770..55926f1 100644 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentTestProcessServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentTestProcessServiceImpl.java @@ -2,13 +2,12 @@ package org.jeecg.modules.database.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.*; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.modules.database.constant.ComponentSearchType; +import org.jeecg.modules.database.dto.*; import org.jeecg.modules.database.entity.*; import org.jeecg.modules.database.mapper.ExperimentTestProcessMapper; import org.jeecg.modules.database.service.*; @@ -36,7 +35,6 @@ public class ExperimentTestProcessServiceImpl extends ServiceImpl getByExperimentId(String experimentId) { List list = list( @@ -57,8 +55,10 @@ public class ExperimentTestProcessServiceImpl extends ServiceImpl()); + if (StringUtils.isNotBlank(testEquipmentJson)) { + List testEquipmentDTOList = JSON.parseArray(testEquipmentJson, TestEquipmentDTO.class); + experimentTestProcess.setTestEquipmentList(testEquipmentDTOList); + } + + String testMeteringPointJson = experimentTestProcess.getTestMeteringPoint(); + experimentTestProcess.setTestMeteringPointList(new ArrayList<>()); + if (StringUtils.isNotBlank(testMeteringPointJson)) { + List testEquipmentDTOList = JSON.parseArray(testMeteringPointJson, TestMeteringPointDTO.class); + experimentTestProcess.setTestMeteringPointList(testEquipmentDTOList); + } + + String testFluencePointJson = experimentTestProcess.getTestFluencePoint(); + experimentTestProcess.setTestFluencePointList(new ArrayList<>()); + if (StringUtils.isNotBlank(testFluencePointJson)) { + List testEquipmentDTOList = JSON.parseArray(testFluencePointJson, TestFluencePointDTO.class); + experimentTestProcess.setTestFluencePointList(testEquipmentDTOList); + } + + String annealingDurationJson = experimentTestProcess.getAnnealingDuration(); + experimentTestProcess.setAnnealingDurationList(new ArrayList<>()); + if (StringUtils.isNotBlank(annealingDurationJson)) { + List testAnnealingDurationDTOList = JSON.parseArray(annealingDurationJson, + TestAnnealingDurationDTO.class); + experimentTestProcess.setAnnealingDurationList(testAnnealingDurationDTOList); + } + } @Override diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/TestStandardsServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/TestStandardsServiceImpl.java index 1707e9a..b96a4e3 100755 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/TestStandardsServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/TestStandardsServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.database.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.jeecg.modules.database.entity.TestStandards; import org.jeecg.modules.database.mapper.TestStandardsMapper; @@ -15,4 +16,11 @@ import org.springframework.stereotype.Service; @Service public class TestStandardsServiceImpl extends ServiceImpl implements ITestStandardsService { + @Override + public TestStandards findByRequirements(String temperatureRequirements, String humidityRequirements) { + TestStandards one = getOne( + new LambdaQueryWrapper().eq(TestStandards::getTemperatureRequirements, temperatureRequirements) + .eq(TestStandards::getHumidityRequirements, humidityRequirements), false); + return one; + } } diff --git a/templates/fzsyzjd.docx b/templates/fzsyzjd.docx index 48aae5e94724cb4b96330f69f8439bdf11062b22..c34775d5643fbcdcda822a1a5db0ac31b722a9e9 100644 GIT binary patch delta 5953 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