| src/main/java/com/ruoyi/quality/controller/QualityInspectController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/static/百事模版模板说明.md | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/ruoyi/quality/controller/QualityInspectController.java
@@ -140,7 +140,6 @@ /** * æäº¤ * * @param qualityInspect * @return */ @GetMapping("/export/baishi/{id}") src/main/java/com/ruoyi/quality/utils/QualityInspectTemplateExportHelper.java
@@ -1,7 +1,10 @@ package com.ruoyi.quality.utils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.HackLoopTableRenderPolicy; import com.ruoyi.quality.mapper.QualityInspectMapper; import com.ruoyi.quality.pojo.QualityInspect; import com.ruoyi.quality.pojo.QualityInspectParam; @@ -22,7 +25,7 @@ import java.io.OutputStream; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.LinkedHashSet; import java.util.List; @@ -47,7 +50,54 @@ } public void exportBaiShi(HttpServletResponse response, Long inspectId) { export(response, inspectId, BAISHI_TEMPLATE, "ç¾äºæ¨¡çæ£éªç»æ"); if (inspectId == null) { throw new ServiceException("æ£éªåIDä¸è½ä¸ºç©º"); } QualityInspect inspect = qualityInspectMapper.selectById(inspectId); if (inspect == null) { throw new ServiceException("æ£éªåä¸åå¨"); } List<QualityInspectParam> paramList = qualityInspectParamService.list( Wrappers.<QualityInspectParam>lambdaQuery() .eq(QualityInspectParam::getInspectId, inspectId) .orderByAsc(QualityInspectParam::getId)); int index = 1; for (QualityInspectParam detail : paramList) { detail.setIndex(index); index++; } try (InputStream inputStream = getClass().getResourceAsStream("/static/ç¾äºæ¨¡ç.docx")) { if (inputStream == null) { throw new ServiceException("æ¨¡æ¿æä»¶ä¸åå¨ï¼/static/ç¾äºæ¨¡ç.docx"); } Configure configure = Configure.builder() .bind("paramList", new HackLoopTableRenderPolicy()) .build(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("inspect", inspect); put("paramList", paramList); }}); response.reset(); response.setContentType("application/msword"); response.setCharacterEncoding("UTF-8"); String encodedName = URLEncoder.encode("ç¾äºæ¨¡çæ£éªç»æ", StandardCharsets.UTF_8).replace("+", "%20"); response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); response.setHeader("Content-Disposition", "attachment;filename=" + encodedName + ".docx"); try (OutputStream outputStream = response.getOutputStream()) { template.write(outputStream); outputStream.flush(); } } catch (IOException e) { throw new RuntimeException("导åºå¤±è´¥", e); } } public void exportDaLi(HttpServletResponse response, Long inspectId) { src/main/resources/static/°ÙÊÂÄ£°æÄ£°å˵Ã÷.md
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,100 @@ # ç¾äºæ¨¡ç.docx 模æ¿å建说æ ## æä»¶ä½ç½® `src/main/resources/static/ç¾äºæ¨¡ç.docx` --- ## Word ä¸å建æ¥éª¤ ### 1. æ°å»º Word ææ¡£ ### 2. åå»ºåºæ¬ä¿¡æ¯è¡¨ æå ¥ä¸ä¸ª 2åNè¡çè¡¨æ ¼ï¼ | é¡¹ç® | å 容 | |------|------| | 产ååç§° | {{inspect.productName}} | | è§æ ¼åå· | {{inspect.model}} | | ä¾åºå | {{inspect.supplier}} | | æ°é | {{inspect.quantity}} | | åä½ | {{inspect.unit}} | | æ£æµæ¥æ | {{inspect.checkTime}} | | æ£éªå | {{inspect.checkName}} | | æ£æµç»æ | {{inspect.checkResult}} | | åæ ¼æ°é | {{inspect.qualifiedQuantity}} | | ä¸åæ ¼æ°é | {{inspect.unqualifiedQuantity}} | ### 3. å建æ£éªåæ°å表表ï¼å ³é®ï¼ï¼ æå ¥ä¸ä¸ª 6å2è¡çè¡¨æ ¼ï¼ **表头è¡ï¼** | åºå· | æ£æµææ | åä½ | æ åå¼ | å æ§å¼ | æ£éªå¼ | **æ°æ®è¡ï¼å¾ªç¯æ¨¡æ¿ï¼**ï¼æ¯ä¸ªåå æ ¼è¾å ¥ï¼ | {{#paramList}}{{index}}{{/paramList}} | {{#paramList}}{{parameterItem}}{{/paramList}} | {{#paramList}}{{unit}}{{/paramList}} | {{#paramList}}{{standardValue}}{{/paramList}} | {{#paramList}}{{controlValue}}{{/paramList}} | {{#paramList}}{{testValue}}{{/paramList}} | ### 4. ä¿å ä¿å为 `ç¾äºæ¨¡ç.docx`ï¼æ¾å° `src/main/resources/static/` ç®å½ã --- ## ç¤ºä¾æ¨¡æ¿å 容 ``` ç¾äºæ£éªæ¥å ãåºæ¬ä¿¡æ¯ã 产ååç§°ï¼{{inspect.productName}} è§æ ¼åå·ï¼{{inspect.model}} ä¾åºåï¼{{inspect.supplier}} æ°éï¼{{inspect.quantity}} {{inspect.unit}} æ£æµæ¥æï¼{{inspect.checkTime}} æ£éªåï¼{{inspect.checkName}} æ£æµç»æï¼{{inspect.checkResult}} ãæ£éªåæ°ã | åºå· | æ£æµææ | åä½ | æ åå¼ | å æ§å¼ | æ£éªå¼ | | {{#paramList}}{{index}}{{/paramList}} | {{#paramList}}{{parameterItem}}{{/paramList}} | {{#paramList}}{{unit}}{{/paramList}} | {{#paramList}}{{standardValue}}{{/paramList}} | {{#paramList}}{{controlValue}}{{/paramList}} | {{#paramList}}{{testValue}}{{/paramList}} | åæ ¼æ°éï¼{{inspect.qualifiedQuantity}} ä¸åæ ¼æ°éï¼{{inspect.unqualifiedQuantity}} ``` --- ## 注æäºé¡¹ 1. **è¡¨æ ¼å¾ªç¯å¿ é¡»ä½¿ç¨ `{{#paramList}}...{{/paramList}}` å 裹æ¯ä¸ªå段** 2. 表头è¡åæ°æ®è¡é½è¦ä¿çï¼æ°æ®è¡ä¼èªå¨å¤å¶å¤è¡ 3. å ä½ç¬¦è¦å®å ¨å¹é ï¼å æ¬å¤§å°å 4. ä¿å为 `.docx` æ ¼å¼ï¼ä¸æ¯ `.doc` --- ## å¯ç¨å段å表 ### inspectï¼æ£éªåï¼åæ®µï¼ - `productName` - 产ååç§° - `model` - è§æ ¼åå· - `supplier` - ä¾åºå - `customer` - 客æ·åç§° - `quantity` - æ°é - `unit` - åä½ - `checkTime` - æ£æµæ¥æ - `checkName` - æ£éªå - `checkResult` - æ£æµç»æ - `checkCompany` - æ£æµåä½ - `qualifiedQuantity` - åæ ¼æ°é - `unqualifiedQuantity` - ä¸åæ ¼æ°é ### paramListï¼æ£éªåæ°å表ï¼åæ®µï¼ - `index` - åºå·ï¼èªå¨çæï¼ - `parameterItem` - æ£æµææ - `unit` - åä½ - `standardValue` - æ åå¼ - `controlValue` - å æ§å¼ - `testValue` - æ£éªå¼