云
7 天以前 fd1efdba56dbf07943b82c971694579af034fc5a
yudao-module-crm/src/test/java/cn/iocoder/yudao/module/crm/service/contract/CrmContractDocumentRendererTest.java
@@ -36,7 +36,8 @@
        String xml = new String(parts.get("word/document.xml"), StandardCharsets.UTF_8);
        assertTrue(xml.contains("HT20261015001")); assertTrue(xml.contains("2026年10月15日"));
        assertTrue(xml.contains("10000.00")); assertTrue(xml.contains("壹万元整"));
        assertTrue(xml.contains("冻干冬虫夏草(2500级一等)")); assertTrue(xml.contains("诚信合规"));
        assertTrue(xml.contains("冻干冬虫夏草(2500级一等)")); assertTrue(xml.contains("交付与验收"));
        assertFalse(xml.contains("北京同仁堂")); assertFalse(xml.contains("28504001040001454"));
        assertFalse(xml.contains("${"));
        try(var template = new ClassPathResource("templates/contract/sale-contract.docx").getInputStream()) {
            var original = unzip(template.readAllBytes()); assertEquals(original.keySet(),parts.keySet());
@@ -50,11 +51,11 @@
        contract.setProducts(Collections.nCopies(25,contract.getProducts().getFirst()));
        contract.setTotalPrice(new BigDecimal("249000"));
        String xml = new String(unzip(CrmContractDocumentRenderer.render(contract)).get("word/document.xml"),StandardCharsets.UTF_8);
        assertTrue(xml.contains("客户<&>公司")); assertTrue(xml.contains("整单优惠 1000.00 元"));
        assertTrue(xml.contains("客户<&>公司")); assertTrue(xml.contains("与合同金额的差额 1000.00 元"));
        assertEquals(25,xml.split("冻干冬虫夏草(2500级一等)",-1).length-1);
        assertEquals(25,xml.split("<w:cantSplit",-1).length-1);
        assertTrue(xml.contains("249000.00")); assertFalse(xml.contains("${"));
        assertFalse(xml.contains("乙方(需方):中国科学院西北高原生物研究所"));
        assertTrue(xml.contains("乙方(需方):客户&lt;&amp;&gt;公司"));
        String output = System.getProperty("contract.document.sample");
        if (output != null) Files.write(Path.of(output).resolveSibling("generated-contract-many.docx"), CrmContractDocumentRenderer.render(contract));
    }