From dfd793f14e51c48c3322f1b36f543179043bd45d Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期日, 22 十月 2023 18:25:27 +0800 Subject: [PATCH] 更新仓内抓拍 --- igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java | 194 ++++++++++++++++++++++++++++++++--------------- 1 files changed, 131 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..4398625 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,16 +2,20 @@ import com.ld.igds.basic.manager.FileManager; import com.ld.igds.data.PageResponse; + import lombok.extern.slf4j.Slf4j; + 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.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + import java.io.*; import java.net.URLEncoder; @@ -25,81 +29,145 @@ @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 + * 鎶撴媿鐨勫勾鏈堟棩鏃跺垎绉� yyyyMMddHHmmss + * @param response + * @return + * @throws IOException + */ + @RequestMapping(value = "/view-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(); + } + } + } } -- Gitblit v1.9.3