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