|  |  | 
 |  |  |     public void exportSuperviseDetailRecord(Integer superviseDetailsId, HttpServletResponse response) { | 
 |  |  |         QualitySuperviseDetailsRecord recordDto = qualitySuperviseDetailsRecordMapper.selectSuperviseDetailRecord(superviseDetailsId); | 
 |  |  |  | 
 |  |  |         //获取技术负责人的签名地址 | 
 |  |  |         String ratifyUrl = null; | 
 |  |  |         if (recordDto.getRatifyUserId() != null) { | 
 |  |  |             ratifyUrl = userMapper.selectById(recordDto.getRatifyUserId()).getSignatureUrl(); | 
 |  |  |             if (StringUtils.isBlank(ratifyUrl)) { | 
 |  |  |                 throw new ErrorException("找不到技术负责人的签名"); | 
 |  |  |             } | 
 |  |  |         // 查询检测人员 | 
 |  |  |         User tserUser = new User(); | 
 |  |  |         if (StringUtils.isNotBlank(recordDto.getTestMember())) { | 
 |  |  |             tserUser = userMapper.selectOne(Wrappers.<User>lambdaQuery() | 
 |  |  |                     .eq(User::getName, recordDto.getTestMember()) | 
 |  |  |                     .last("limit 1")); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 获取路径 | 
 |  |  |         InputStream inputStream = this.getClass().getResourceAsStream("/static/supervision-detail-record.docx"); | 
 |  |  |         ConfigureBuilder builder = Configure.builder(); | 
 |  |  |         builder.useSpringEL(true); | 
 |  |  |         String finalRatifyUrl = ratifyUrl; | 
 |  |  |         User finalTserUser = tserUser; | 
 |  |  |         XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render( | 
 |  |  |                 new HashMap<String, Object>() {{ | 
 |  |  |                     put("supervision", recordDto); | 
 |  |  |                     put("testMemberUrl", UserUtils.getFinalUserSignatureUrl(finalTserUser.getId())); | 
 |  |  |                     put("supervisoruUrl", UserUtils.getFinalUserSignatureUrl(recordDto.getSupervisor())); | 
 |  |  |                     put("technicalDirectorUrl", StringUtils.isNotBlank(finalRatifyUrl) ? Pictures.ofLocal(imgUrl + "/" + finalRatifyUrl).create() : null); | 
 |  |  |                     put("technicalDirectorUrl", UserUtils.getFinalUserSignatureUrl(recordDto.getRatifyUserId())); | 
 |  |  |                     put("technicalDirectorDateUrl", recordDto.getRatifyTime() != null ? | 
 |  |  |                             Pictures.ofStream(DateImageUtil.createDateImage(recordDto.getRatifyTime())).create() : null); | 
 |  |  |                 }}); |