multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/WordExportController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
multi-admin/src/main/resources/application-prod.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
multi-common/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/WordExportController.java
对比新文件 @@ -0,0 +1,62 @@ package com.gkhy.exam.admin.controller.system; import org.apache.poi.poifs.filesystem.DirectoryEntry; import org.apache.poi.poifs.filesystem.DocumentEntry; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import org.springframework.core.io.ClassPathResource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.Map; @RestController public class WordExportController { @ResponseBody @RequestMapping(value = "download") public int download(HttpServletResponse response, HttpServletRequest request)throws Exception { String content = "<h1>标题头</h1><h2>第二个标题</h2><a href=\"www.baidu.com\">百度搜索</a>"; StringBuffer sbf = new StringBuffer(); sbf.append("<html><body>"); sbf.append(content); sbf.append("</body></html"); exportWord(request,response,String.valueOf(sbf),"word1"); return 1; } /** * * @param request * @param response * @param content 富文本内容 * @param fileName 生成word名字 * @throws Exception */ public static void exportWord(HttpServletRequest request, HttpServletResponse response, String content, String fileName) throws Exception { byte b[] = content.getBytes("GBK"); //这里是必须要设置编码的,不然导出中文就会乱码。 ByteArrayInputStream bais = new ByteArrayInputStream(b);//将字节数组包装到流中 POIFSFileSystem poifs = new POIFSFileSystem(); DirectoryEntry directory = poifs.getRoot(); DocumentEntry documentEntry = directory.createDocument("WordDocument", bais); //该步骤不可省略,否则会出现乱码。 //输出文件 request.setCharacterEncoding("utf-8"); response.setContentType("application/msword");//导出word格式 response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("GB2312"),"iso8859-1") + ".doc"); ServletOutputStream ostream = response.getOutputStream(); poifs.writeFilesystem(ostream); bais.close(); ostream.close(); poifs.close(); } } multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java
@@ -29,13 +29,13 @@ */ @ApiOperation(value = "标准化模版(分页)") @ApiImplicitParams({ @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = true, value = "公司iD"), @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = false, value = "公司iD"), @ApiImplicitParam(paramType = "query", name = "templateType", dataType = "int", required = true, value = "类型1体系标准2技术标准3应用标准4程序文件5作业指导书6记录及表单7技术类8生产类9其他知识产权"), @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = true, value = "页码"), @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = true, value = "每页数量") }) @GetMapping("/standardizedTemplate/list") public CommonResult selectStandardizedTemplateList(@RequestParam("companyId") Integer companyId, @RequestParam("templateType") Integer templateType){ public CommonResult selectStandardizedTemplateList(Integer companyId, @RequestParam("templateType") Integer templateType){ return CommonResult.success(standardizedTemplateService.selectStandardizedTemplateList(companyId, templateType)); } @@ -82,7 +82,7 @@ @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "int", required = true, value = "公司iD"), }) @GetMapping("/standardizedQuality/info") public CommonResult selectStandardizedQuality(@RequestParam("companyId") Integer companyId){ public CommonResult selectStandardizedQuality(Integer companyId){ return CommonResult.success(standardizedTemplateService.selectStandardizedQuality(companyId)); } multi-admin/src/main/resources/application-prod.yml
@@ -5,7 +5,7 @@ druid: # 主库数据源 master: url: jdbc:mysql://127.0.0.1:23306/train_exam?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Beijing&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true url: jdbc:mysql://127.0.0.1:7006/multi_system?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Beijing&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true username: root password: 2farwL3yPXfbH2AP # 从库数据源 @@ -41,7 +41,7 @@ login-password: druid #redis 配置 redis: database: 0 database: 5 host: 127.0.0.1 port: 6379 password: @@ -81,6 +81,6 @@ minio: endpoint: http://127.0.0.1:9000/ #Minio服务所在地址 bucketName: trainexam #存储桶名称 bucketName: multiSystem #存储桶名称 accessKey: nblxqRZXDvQ59HBH49rF #访问的key secretKey: TR0IFphXPo0IObQCYgcJ0JOik21s40ey2MIMU8Rh #访问的秘钥 multi-common/pom.xml
@@ -152,6 +152,30 @@ <artifactId>easyexcel</artifactId> </dependency> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> </dependency> <!-- 如果需要解析HTML --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> </dependency> <!-- 支持中文 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> </dependency> </dependencies> </project> multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java
@@ -41,7 +41,7 @@ boolean admin = SecurityUtils.adminUser(); if (!admin){ if (companyId==null){ throw new ApiException("非管理员操作,查询条件不可为空"); companyId = SecurityUtils.getCompanyId().intValue(); } } PageUtils.startPage(); @@ -53,7 +53,7 @@ public CommonResult insertStandardizedTemplate(StandardizedTemplate standardizedTemplate) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); SysCompany sysCompany = sysCompanyService.selectCompanyById(SecurityUtils.getCompanyId()); SysCompany sysCompany = sysCompanyService.selectCompanyById(standardizedTemplate.getCompanyId().longValue()); standardizedTemplate.setCompanyName(sysCompany.getName()); standardizedTemplate.setCreateBy(loginUser.getUsername()); standardizedTemplate.setCreateTime(LocalDateTime.now()); @@ -67,7 +67,7 @@ @Override public CommonResult updateStandardizedTemplate(StandardizedTemplate standardizedTemplate) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); SysCompany sysCompany = sysCompanyService.selectCompanyById(SecurityUtils.getCompanyId()); SysCompany sysCompany = sysCompanyService.selectCompanyById(standardizedTemplate.getCompanyId().longValue()); standardizedTemplate.setCompanyName(sysCompany.getName()); standardizedTemplate.setUpdateBy(loginUser.getUsername()); standardizedTemplate.setUpdateTime(LocalDateTime.now()); @@ -95,10 +95,15 @@ @Override public CommonResult selectStandardizedQuality(Integer companyId) { LambdaQueryWrapper<StandardizedQuality> lambdaQueryWrapper = Wrappers.<StandardizedQuality>lambdaQuery() .eq(StandardizedQuality::getCompanyId, companyId) .eq(StandardizedQuality::getDelFlag, 0); return CommonResult.success(standardizedQualityMapper.selectOne(lambdaQueryWrapper)); boolean admin = SecurityUtils.adminUser(); LambdaQueryWrapper<StandardizedQuality> lambdaQueryWrapper = Wrappers.<StandardizedQuality>lambdaQuery(); if (!admin){ if (companyId==null){ lambdaQueryWrapper.eq(StandardizedQuality::getCompanyId, SecurityUtils.getCompanyId().intValue()); } } lambdaQueryWrapper.eq(StandardizedQuality::getDelFlag, 0); return CommonResult.success(standardizedQualityMapper.selectList(lambdaQueryWrapper)); } @Override @@ -107,7 +112,7 @@ standardizedQualityMapper.delete(eq); LoginUserDetails loginUser = SecurityUtils.getLoginUser(); SysCompany sysCompany = sysCompanyService.selectCompanyById(SecurityUtils.getCompanyId()); SysCompany sysCompany = sysCompanyService.selectCompanyById(standardizedQuality.getCompanyId().longValue()); standardizedQuality.setCompanyName(sysCompany.getName()); standardizedQuality.setCreateBy(loginUser.getUsername()); standardizedQuality.setCreateTime(LocalDateTime.now()); @@ -121,7 +126,7 @@ @Override public CommonResult updateStandardizedQuality(StandardizedQuality standardizedQuality) { LoginUserDetails loginUser = SecurityUtils.getLoginUser(); SysCompany sysCompany = sysCompanyService.selectCompanyById(SecurityUtils.getCompanyId()); SysCompany sysCompany = sysCompanyService.selectCompanyById(standardizedQuality.getCompanyId().longValue()); standardizedQuality.setCompanyName(sysCompany.getName()); standardizedQuality.setUpdateBy(loginUser.getUsername()); standardizedQuality.setUpdateTime(LocalDateTime.now()); pom.xml
@@ -204,6 +204,37 @@ <artifactId>easyexcel</artifactId> <version>${easyexcel.version}</version> </dependency> <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.10.0</version> </dependency> <!-- 如果需要解析HTML --> <dependency> <groupId>org.jsoup</groupId> <artifactId>jsoup</artifactId> <version>1.15.3</version> </dependency> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.13.3</version> </dependency> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.68</version> </dependency> <!-- 支持中文 --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> </dependencies> </dependencyManagement>