wenhongquan 1 year ago
parent
commit
0dfc2adcef

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java

@@ -14,6 +14,7 @@ public class RuoYiApplication
 {
     public static void main(String[] args)
     {
+        System.setProperty("https.protocols", "TLSv1.2,TLSv1.1,SSLv3");
         // System.setProperty("spring.devtools.restart.enabled", "false");
         SpringApplication.run(RuoYiApplication.class, args);
         System.out.println("(♥◠‿◠)ノ゙  启动铁路沿线综合治理信息化管理平台启动成功   ლ(´ڡ`ლ)゙  \n");

+ 75 - 8
ruoyi-admin/src/main/java/com/ruoyi/web/controller/qdtl/TlIncidentController.java

@@ -4,13 +4,17 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.config.RuoYiConfig;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.file.ImageUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.qdtl.domain.TlIncident;
 import com.ruoyi.qdtl.service.ITlIncidentService;
+import com.ruoyi.system.service.ISysDictDataService;
 import com.ruoyi.system.service.ISysRoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
@@ -23,11 +27,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 巡检事件管理Controller
@@ -43,6 +44,9 @@ public class TlIncidentController extends BaseController {
     @Autowired
     private ISysRoleService sysRoleService;
 
+    @Autowired
+    private ISysDictDataService sysDictDataService;
+
     /**
      * 查询巡检事件管理列表
      */
@@ -104,14 +108,77 @@ public class TlIncidentController extends BaseController {
         if (StrUtil.isBlank(tlIncident.getEndTime())) {
             tlIncident.setEndTime(DateUtil.now());
         }
+
+        SysDictData sysDictData = new SysDictData();
+        sysDictData.setDictType("incident_level");
+        List<SysDictData>  list1 = sysDictDataService.selectDictDataList(sysDictData);
+        Map<String,String> levelmap = new HashMap<>();
+        for (SysDictData d:list1
+        ) {
+            levelmap.put(d.getDictValue(),d.getDictLabel());
+        }
+
+        sysDictData = new SysDictData();
+        sysDictData.setDictType("tl_xun_area");
+        list1 = sysDictDataService.selectDictDataList(sysDictData);
+        Map<String,String> areamap = new HashMap<>();
+        for (SysDictData d:list1
+        ) {
+            areamap.put(d.getDictValue(),d.getDictLabel());
+        }
+        sysDictData = new SysDictData();
+        sysDictData.setDictType("incident_status");
+        list1 = sysDictDataService.selectDictDataList(sysDictData);
+        Map<String,String> statusmap = new HashMap<>();
+        for (SysDictData d:list1
+        ) {
+            statusmap.put(d.getDictValue(),d.getDictLabel());
+        }
+
+
         List<TlIncident> list = tlIncidentService.selectTlIncidentList(tlIncident);
+        List<Map<String,Object>> datap = new ArrayList<>();
         for (TlIncident incident : list) {
+            Map<String,Object> p = new HashMap<>();
+            p.put("name",incident.getName());
+            p.put("detail",incident.getDetail());
+            p.put("incLevel",levelmap.get(incident.getIncLevel()));
+            p.put("happenTime",DateUtil.formatDate(incident.getHappenTime()) );
+            p.put("area",areamap.get(incident.getArea()));
+            p.put("address",incident.getAddress());
+            p.put("acceptUser",incident.getAcceptUserName());
+            p.put("createByName",incident.getCreateByName());
+            p.put("status",statusmap.get(incident.getStatus()));
+            p.put("dealUser",incident.getDealUserName());
+            p.put("dealTime",DateUtil.formatDate(incident.getDealTime()));
+
+
             if (StrUtil.isNotBlank(incident.getPics())) {
-                incident.setPics(StrUtil.subBefore(incident.getPics(), ",", false));
+//                incident.setPics(StrUtil.subBefore(incident.getPics(), ",", false));
+                List<String> pics = StrUtil.split(incident.getPics(), ",");
+                List<String> pics1 = StrUtil.split(incident.getDealPics(), ",");
+                pics.addAll(pics1);
+
+                List<byte[]> picbytes = pics.stream().map(s -> {
+                    byte[] a= {};
+                    try {
+                        a = ImageUtils.getImage(RuoYiConfig.getDownloadPath() + s);
+                    }catch (Exception e){
+
+                    }
+                    return a;
+                }).collect(Collectors.toList());
+                p.put("images",picbytes);
             }
+            datap.add(p);
         }
-        ExcelUtil<TlIncident> util = new ExcelUtil<TlIncident>(TlIncident.class);
-        util.exportExcel(response, list, "巡检事件管理数据");
+        Map<String,Object> data = new HashMap<>();
+        data.put("list",datap);
+
+        exportExcel("巡检事件_"+DateUtil.current(),"location",data,response);
+//        exportExcel()
+//        ExcelUtil<TlIncident> util = new ExcelUtil<TlIncident>(TlIncident.class);
+//        util.exportExcel(response, list, "巡检事件管理数据");
     }
 
     /**

+ 1 - 1
ruoyi-admin/src/main/resources/application-druid.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://${DATABASE_HOST:xt.wenhq.top}:${DATABASE_PORT:8583}/qdtl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://${DATABASE_HOST:localhost}:${DATABASE_PORT:3306}/qdtl?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: ${DATABASE_USER:root}
                 password: ${DATABASE_PWD:root}
             # 从库数据源

BIN
ruoyi-admin/src/main/resources/location.xlsx


+ 22 - 0
ruoyi-common/pom.xml

@@ -163,6 +163,28 @@
             <version>4.3.0</version>
         </dependency>
 
+        <!--excel-->
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls</artifactId>
+            <version>2.14.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls-poi</artifactId>
+            <version>2.14.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls-jexcel</artifactId>
+            <version>1.0.9</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jxls</groupId>
+            <artifactId>jxls-reader</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 61 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java

@@ -1,8 +1,13 @@
 package com.ruoyi.common.core.controller;
 
 import java.beans.PropertyEditorSupport;
+import java.io.*;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
+
+import org.jxls.common.Context;
+import org.jxls.util.JxlsHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.web.bind.WebDataBinder;
@@ -21,6 +26,8 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.sql.SqlUtil;
 
+import javax.servlet.http.HttpServletResponse;
+
 /**
  * web层通用数据处理
  * 
@@ -175,4 +182,58 @@ public class BaseController
     {
         return getLoginUser().getUsername();
     }
+
+
+    public void exportExcel(String fileName, String excelTemplateName, Map<String, Object> map,
+                            HttpServletResponse resp) {
+        String path = "./" + fileName + ".xlsx";
+//        String tpath = "/Users/wenhongquan/gitdata/nnbp/ruoyi-admin/src/main/resources/"+excelTemplateName+".xlsx";
+//        File filex = new File(tpath);
+
+//        InputStream is =  new FileInputStream(filex)
+//        InputStream is =  this.getClass().getResourceAsStream("/" + excelTemplateName + ".xlsx")
+        ;
+        try (InputStream is =  this.getClass().getResourceAsStream("/" + excelTemplateName + ".xlsx") ) {
+            try (OutputStream os = new FileOutputStream(path)) {
+                Context context = new Context();
+                // context.putVar("list", map.get("list"));
+                // context.putVar("totalMan", map.get("totalMan"));
+
+                for (String key : map.keySet()) {
+                    context.putVar(key, map.get(key));
+                }
+
+                JxlsHelper.getInstance().processTemplate(is, os, context);
+            }
+            Thread.sleep(1000);
+            // path是指欲下载的文件的路径。
+            File file = new File(path);
+            // 取得文件名。
+            String filename = file.getName();
+            // 以流的形式下载文件。
+            InputStream bis = new BufferedInputStream(new FileInputStream(file));
+            byte[] buffer = new byte[bis.available()];
+            bis.read(buffer);
+            bis.close();
+            // 清空response
+            resp.reset();
+            // 设置response的Header
+            resp.addHeader("Content-Disposition",
+                    "attachment;filename=" + new String(filename.getBytes("gb2312"), "ISO8859-1"));
+            resp.addHeader("Content-Length", "" + file.length());
+            OutputStream toClient = new BufferedOutputStream(resp.getOutputStream());
+            resp.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=gb2312");
+            toClient.write(buffer);
+            toClient.flush();
+            toClient.close();
+
+            // 删除生成的临时文件
+            if (file.exists()) {
+                file.delete();
+            }
+
+        } catch (Exception e) {
+            logger.error(e.toString());
+        }
+    }
 }

+ 5 - 0
ruoyi-system/src/main/java/com/ruoyi/qdtl/domain/TlIncident.java

@@ -3,10 +3,12 @@ package com.ruoyi.qdtl.domain;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.common.annotation.Excel;
 import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * 巡检事件管理对象 tl_incident
@@ -14,6 +16,7 @@ import java.util.Date;
  * @author ruoyi
  * @date 2022-08-09
  */
+@Data
 public class TlIncident extends BaseEntity {
     private static final long serialVersionUID = 1L;
 
@@ -109,6 +112,8 @@ public class TlIncident extends BaseEntity {
 
     private String endTime;
 
+    private List<byte[]> images;
+
     public String getBeginTime() {
         return beginTime;
     }