From 930d29f39d115fe76c305af4320c2acbcb30c445 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期四, 12 六月 2025 10:37:37 +0800
Subject: [PATCH] 优化SQL
---
igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java | 240 ++++++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 177 insertions(+), 63 deletions(-)
diff --git a/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java b/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
index 7ba2429..95d231d 100644
--- a/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
+++ b/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
@@ -2,18 +2,26 @@
import com.ld.igds.basic.manager.FileManager;
import com.ld.igds.data.PageResponse;
+
import lombok.extern.slf4j.Slf4j;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+
import java.io.*;
import java.net.URLEncoder;
+import java.util.Date;
/**
* 鏂囦欢涓婁紶鎺ュ彛
@@ -25,81 +33,187 @@
@RequestMapping("basic/file")
public class FileController {
- @Autowired
- private FileManager fileManager;
+ @Autowired
+ private FileManager fileManager;
- /**
- * 闀夸紶 鍑哄叆搴撳浘鐗�
- *
- * @param file
- * @param request
- * @return
- * @throws IOException
- */
- @RequestMapping("/update-file")
- public PageResponse<String> updateAreationPos(
- @RequestParam(value = "file", required = true) MultipartFile file,
- HttpServletRequest request) throws IOException {
+ /**
+ * 闀夸紶 鍑哄叆搴撳浘鐗�
+ *
+ * @param file
+ * @param request
+ * @return
+ * @throws IOException
+ */
+ @RequestMapping("/update-file")
+ public PageResponse<String> updateAreationPos(
+ @RequestParam(value = "file", required = true) MultipartFile file,
+ HttpServletRequest request) throws IOException {
- String plateNum = request.getParameter("plateNum");
+ String plateNum = request.getParameter("plateNum");
- return fileManager.upLoadInoutImg(file, plateNum);
- }
+ return fileManager.upLoadInoutImg(file, plateNum);
+ }
+ /**
+ * 涓嬭浇浠庝复鏃剁洰褰曚笅杞斤紝闇�瑕侀」鐩悕绉板拰褰撳墠缁勭粐
+ *
+ * @param request
+ * @return
+ * @throws IOException
+ */
+ @RequestMapping("/download-temp")
+ public int downloadTemp(
+ @RequestParam(value = "fileName", required = false) String fileName,
+ @RequestParam(value = "companyId", required = false) String companyId,
+ HttpServletRequest request, HttpServletResponse response)
+ throws IOException {
- /**
- * 涓嬭浇浠庝复鏃剁洰褰曚笅杞斤紝闇�瑕侀」鐩悕绉板拰褰撳墠缁勭粐
- *
- * @param request
- * @return
- * @throws IOException
- */
- @RequestMapping("/download-temp")
- public int downloadTemp(
- @RequestParam(value = "fileName", required = false) String fileName,
- @RequestParam(value = "companyId", required = false) String companyId,
- HttpServletRequest request, HttpServletResponse response) throws IOException {
+ if (StringUtils.isEmpty(fileName) || StringUtils.isEmpty(companyId)) {
+ response.sendError(404, "缂哄皯涓嬭浇鍙傛暟鏉′欢锛屾棤娉曟墽琛屼笅杞姐��");
+ return 404;
+ }
+ File file = fileManager.getTempFilePath(fileName, companyId);
- if (StringUtils.isEmpty(fileName) || StringUtils.isEmpty(companyId)) {
- response.sendError(404, "缂哄皯涓嬭浇鍙傛暟鏉′欢锛屾棤娉曟墽琛屼笅杞姐��");
- return 404;
- }
- File file = fileManager.getTempFilePath(fileName, companyId);
+ if (!file.exists()) {
+ response.sendError(404, "娌℃湁鑾峰彇鍒伴渶瑕佷笅杞界殑鏂囦欢锛屽彲鑳藉凡琚垹闄�");
+ return 404;
+ }
- if (!file.exists()) {
- response.sendError(404, "娌℃湁鑾峰彇鍒伴渶瑕佷笅杞界殑鏂囦欢锛屽彲鑳藉凡琚垹闄�");
- return 404;
- }
+ response.setContentType("application/octet-stream");
+ response.setHeader("content-type", "application/octet-stream");
+ response.setHeader("Content-Length", String.valueOf(file.length()));
+ response.setHeader("Content-Disposition", "attachment;fileName="
+ + URLEncoder.encode(fileName, "utf8"));
+ byte[] buffer = new byte[1024];
+ OutputStream os;
+ try (FileInputStream fis = new FileInputStream(file);
+ BufferedInputStream bis = new BufferedInputStream(fis)) {
+ os = response.getOutputStream();
+ int i = bis.read(buffer);
+ while (i != -1) {
+ os.write(buffer);
+ i = bis.read(buffer);
+ }
- response.setContentType("application/octet-stream");
- response.setHeader("content-type", "application/octet-stream");
- response.setHeader("Content-Length", String.valueOf(file.length()));
- response.setHeader("Content-Disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "utf8"));
- byte[] buffer = new byte[1024];
+ fis.close();
+ bis.close();
+ os.close();
+ os.flush();
+ } catch (Exception e) {
+ response.sendError(500, "鏂囦欢涓嬭浇鍑洪敊锛�" + e.getMessage());
- OutputStream os;
- try (FileInputStream fis = new FileInputStream(file);
- BufferedInputStream bis = new BufferedInputStream(fis)) {
- os = response.getOutputStream();
- int i = bis.read(buffer);
- while (i != -1) {
- os.write(buffer);
- i = bis.read(buffer);
- }
+ log.error("------------鏂囦欢涓嬭浇澶辫触--{}", e);
+ return 500;
+ }
- fis.close();
- bis.close();
- os.close();
- os.flush();
- } catch (Exception e) {
- response.sendError(500, "鏂囦欢涓嬭浇鍑洪敊锛�" + e.getMessage());
+ return 200;
+ }
- log.error("------------鏂囦欢涓嬭浇澶辫触--{}", e);
- return 500;
- }
+ /**
+ * 鏂囦欢娴佽幏鍙栧浘鐗囨樉绀哄埌椤甸潰--閽堝浠撳唴鎶撴媿
+ *
+ * @param fileName
+ * @param timeStr
+ * 鎶撴媿鐨勫勾鏈堟棩鏃跺垎绉� yyyyMMdd
+ * @param response
+ * @return
+ * @throws IOException
+ */
+ @RequestMapping(value = "/get-snap-depot", method = RequestMethod.GET, produces = { "application/vnd.ms-excel;charset=UTF-8" })
+ public String getDepotSnap(String fileName, String timeStr,
+ HttpServletResponse response) throws IOException {
- return 200;
- }
+ // 璁剧疆杩斿洖鍐呭鏍煎紡
+ response.setContentType("image/jpeg/jpg/png/gif/bmp/tiff/svg");
+
+ String filePath;
+ // 鍒涘缓涓�涓緭鍏ユ祦
+ InputStream in = null;
+ // 鍒涘缓杈撳嚭娴�
+ OutputStream os = null;
+ try {
+ if (null == fileName || null == timeStr) {
+ filePath = fileManager.getFailImg();
+ }else{
+ filePath = fileManager.getSnapFilePath(fileName, timeStr);
+
+ File file = new File(filePath);
+
+ if(file.exists()){
+ log.debug("----鎶撴媿鍥剧墖鍦板潃-------{}", filePath);
+ }else{
+ filePath = fileManager.getFailImg();
+ log.debug("----鏈幏鍙栧埌鍥剧焊锛岄粯璁ゅ湴鍧�-------{}", filePath);
+ }
+ }
+
+ // 鐢ㄨ鏂囦欢鍒涘缓涓�涓緭鍏ユ祦
+ in = new FileInputStream(filePath);
+ // 鍒涘缓杈撳嚭娴�
+ os = response.getOutputStream();
+ byte[] b = new byte[1024];
+ while (in.read(b) != -1) {
+ os.write(b);
+ }
+ in.close();
+ os.close();
+
+ return null;
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ return null;
+ } finally {
+ if (null != in) {
+ in.close();
+ }
+ if (null != os) {
+ os.close();
+ }
+ }
+ }
+
+ /**
+ * PDF鏂囦欢棰勮
+ * @param response
+ */
+ @RequestMapping("/show-pdf")
+ public void showFile(String fileTime, String fileName, String filePathType, HttpServletResponse response) throws Exception {
+
+ if (!fileName.endsWith(".pdf")) {
+ return;
+ }
+ Date time = DateUtils.parseDate(fileTime, new String[]{"yy-MM-dd HH:mm:ss"});
+
+ String filePath = fileManager.getPathByType(filePathType, time);
+ if(StringUtils.isEmpty(filePath)){
+ return;
+ }
+
+ File file = new File(filePath, fileName);
+ try {
+ response.setHeader("Content-Disposition", "inline; filename*=UTF-8''" + URLEncoder.encode(file.getName(), "UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+
+ ServletOutputStream os = null;
+ try {
+ os = response.getOutputStream();
+ os.write(FileUtils.readFileToByteArray(file));
+ os.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ if (os != null) {
+ try {
+ os.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
}
--
Gitblit v1.9.3