diff --git a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java index ccbed47..103e2b8 100755 --- a/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java +++ b/physical-module-system/physical-system-biz/src/main/java/org/jeecg/modules/database/service/impl/ExperimentDocServiceImpl.java @@ -283,9 +283,6 @@ public class ExperimentDocServiceImpl extends ServiceImpl(); } ExperimentReport latestReport = experimentReportService.getLatestReport(experimentId); - if (Objects.isNull(latestReport)) { - return new HashMap<>(); - } Map params = new HashMap<>(); if (Objects.nonNull(latestReport)) { params.put("审核人员姓名", Optional.ofNullable(sysUserService.getById(latestReport.getAuditor())).map(SysUser::getRealname) @@ -295,12 +292,13 @@ public class ExperimentDocServiceImpl extends ServiceImpl().eq(Client::getName, experiment.getClientName()), false); params.put("委托方单位名称", Optional.ofNullable(client).map(Client::getName).orElse("")); params.put("委托方单位地址", Optional.ofNullable(client).map(Client::getAddress).orElse("")); @@ -323,15 +321,22 @@ public class ExperimentDocServiceImpl extends ServiceImpl sampleInfoList = experiment.getSampleInfoList(); - if (CollUtil.isNotEmpty(sampleInfoList)) { - for (int i = 0; i < sampleInfoList.size(); i++) { - ExperimentSampleInfo info = sampleInfoList.get(i); - params.put("table" + i, Tables.of( - new String[][] {new String[] {"试验样品名称", info.getSampleName(), "试验样品型号", info.getSampleModel()}, - new String[] {"批 次", info.getSampleBatch(), "试验样品编号", info.getSampleType()}, - new String[] {"生产厂家", info.getSampleManufacturer(), "试验样品数量", sampleInfoList.size() + ""}, - new String[] {"放置地点", "", "接收日期", ""},}).border(BorderStyle.DEFAULT).create()); + String sampleInfo = latestReport.getSampleInfo(); + if (StringUtils.isNotBlank(sampleInfo)) { + List sampleInfoList = JSON.parseArray(sampleInfo, JSONObject.class); + if (CollUtil.isNotEmpty(sampleInfoList)) { + for (int i = 0; i < sampleInfoList.size(); i++) { + JSONObject info = sampleInfoList.get(i); + params.put("table" + i, Tables.of( + new String[][] {new String[] {"试验样品名称", getStringOrDefault(info, "sampleName"), "试验样品型号", + getStringOrDefault(info, "sampleModel")}, + new String[] {"批 次", getStringOrDefault(info, "sampleBatch"), "试验样品编号", getStringOrDefault( + info, + "sampleType")}, + new String[] {"生产厂家", getStringOrDefault(info, "sampleManufacturer"), "试验样品数量", + sampleInfoList.size() + ""}, + new String[] {"放置地点", "", "接收日期", ""},}).border(BorderStyle.DEFAULT).create()); + } } } params.put("试验日期", formatDate(experiment.getStartDate()) + " ~ " + formatDate(experiment.getEndDate())); @@ -466,4 +471,13 @@ public class ExperimentDocServiceImpl extends ServiceImpl().eq(ExperimentDoc::getExperimentId, experimentId) .eq(ExperimentDoc::getDocType, type).orderByDesc(ExperimentDoc::getVersion), false); } + + private String getStringOrDefault(JSONObject jsonObject, String key) { + String string = jsonObject.getString(key); + if (StringUtils.isBlank(string)) { + return ""; + } + return string; + } } +