吴羡
5 天以前 3056ee733c1c00cc75c4cadd4aa35987732f756d
修复检验委托单导出问题

1. 旧委托单无明细行时用表头信息兜底生成一行样品记录,样品数不再显示为0
2. 样品信息行占位符改为双中括号匹配,空值单元格不再显示[]
已修改1个文件
37 ■■■■■ 文件已修改
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/InspectionOrderServiceImpl.java
@@ -808,21 +808,30 @@
                .orderByAsc(InspectionOrderDetail::getInspectionOrderDetailId));
        List<String> detailEntrustCodes = buildDetailEntrustCodes(inspectionOrder.getEntrustCode(), list);
        List<InspectionOrderDetailExportDto> detailList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            InspectionOrderDetail inspectionOrderDetail = list.get(i);
        if (list.isEmpty()) {
            InspectionOrderDetailExportDto row = new InspectionOrderDetailExportDto();
            row.setSampleName(StrUtil.isNotBlank(inspectionOrderDetail.getSampleName())
                    ? inspectionOrderDetail.getSampleName() : inspectionOrder.getSampleName());
            row.setSampleNumber(inspectionOrderDetail.getSampleNumber());
            row.setTestItem(inspectionOrderDetail.getTestItem());
            row.setQuantity(StrUtil.isNotBlank(inspectionOrderDetail.getQuantity())
                    ? inspectionOrderDetail.getQuantity() : inspectionOrder.getQuantity());
            row.setSampleStatus(StrUtil.isNotBlank(inspectionOrderDetail.getSampleStatus())
                    ? inspectionOrderDetail.getSampleStatus() : inspectionOrder.getSampleStatus());
            row.setTestStandard(inspectionOrderDetail.getTestStandard());
            row.setRemark(inspectionOrderDetail.getRemark());
            row.setEntrustCode(detailEntrustCodes.get(i));
            row.setSampleName(inspectionOrder.getSampleName());
            row.setQuantity(inspectionOrder.getQuantity());
            row.setSampleStatus(inspectionOrder.getSampleStatus());
            row.setEntrustCode(inspectionOrder.getEntrustCode());
            detailList.add(row);
        } else {
            for (int i = 0; i < list.size(); i++) {
                InspectionOrderDetail inspectionOrderDetail = list.get(i);
                InspectionOrderDetailExportDto row = new InspectionOrderDetailExportDto();
                row.setSampleName(StrUtil.isNotBlank(inspectionOrderDetail.getSampleName())
                        ? inspectionOrderDetail.getSampleName() : inspectionOrder.getSampleName());
                row.setSampleNumber(inspectionOrderDetail.getSampleNumber());
                row.setTestItem(inspectionOrderDetail.getTestItem());
                row.setQuantity(StrUtil.isNotBlank(inspectionOrderDetail.getQuantity())
                        ? inspectionOrderDetail.getQuantity() : inspectionOrder.getQuantity());
                row.setSampleStatus(StrUtil.isNotBlank(inspectionOrderDetail.getSampleStatus())
                        ? inspectionOrderDetail.getSampleStatus() : inspectionOrder.getSampleStatus());
                row.setTestStandard(inspectionOrderDetail.getTestStandard());
                row.setRemark(inspectionOrderDetail.getRemark());
                row.setEntrustCode(detailEntrustCodes.get(i));
                detailList.add(row);
            }
        }
        inspectionOrderExportDto.setProjectName(detailList.size() + "个样品");
        writeInspectionOrderExport(inspectionOrderExportDto, detailList, response);
@@ -834,7 +843,7 @@
        // 获取路径
        InputStream inputStream = this.getClass().getResourceAsStream("/static/inspection-order.docx");
        Configure configure = Configure.builder()
                .bind("inspectionOrderDetailList", new HackLoopTableRenderPolicy())
                .bind("inspectionOrderDetailList", new HackLoopTableRenderPolicy("[[", "]]"))
                .build();
        XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
                new HashMap<String, Object>() {{