From 3341599719e0ae63889b6bfb4eea3cf4521b0ab8 Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期二, 01 七月 2025 10:00:49 +0800 Subject: [PATCH] 新功能模块 --- multi-admin/src/main/resources/application-prod.yml | 6 +- multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java | 23 ++++--- multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java | 6 +- multi-common/pom.xml | 24 ++++++++ pom.xml | 31 ++++++++++ multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/WordExportController.java | 62 ++++++++++++++++++++ 6 files changed, 137 insertions(+), 15 deletions(-) diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/WordExportController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/WordExportController.java new file mode 100644 index 0000000..1077d13 --- /dev/null +++ b/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(); + } + + + + +} diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java index dfbb01a..d457d0d 100644 --- a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/web/TemplateController.java +++ b/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)); } diff --git a/multi-admin/src/main/resources/application-prod.yml b/multi-admin/src/main/resources/application-prod.yml index 906b0f9..8c70ecf 100644 --- a/multi-admin/src/main/resources/application-prod.yml +++ b/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 #访问的秘钥 diff --git a/multi-common/pom.xml b/multi-common/pom.xml index e8e530d..0c5838b 100644 --- a/multi-common/pom.xml +++ b/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> \ No newline at end of file diff --git a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java b/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java index 24f47a1..0f653e5 100644 --- a/multi-system/src/main/java/com/gkhy/exam/system/service/impl/StandardizedTemplateServiceImpl.java +++ b/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()); diff --git a/pom.xml b/pom.xml index 46276a7..8f69dad 100644 --- a/pom.xml +++ b/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> -- Gitblit v1.9.2