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