From c6ef8fb06f8f75ece7e4d6669af01bebb051d217 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期六, 03 六月 2023 17:20:56 +0800
Subject: [PATCH] 优化巡检

---
 ard-work/src/main/java/com/ruoyi/constant/Global.java                                     |   18 +++
 ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java     |   16 --
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java          |   18 +++
 ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml                  |    2 
 ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java                     |  158 ++++++++++++++-----------------
 ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java |   53 +++++++---
 ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml                |    1 
 7 files changed, 147 insertions(+), 119 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/constant/Global.java b/ard-work/src/main/java/com/ruoyi/constant/Global.java
new file mode 100644
index 0000000..dae57c1
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/constant/Global.java
@@ -0,0 +1,18 @@
+package com.ruoyi.constant;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Description: 鍏ㄥ眬绫�
+ * @ClassName: Global
+ * @Author: 鍒樿嫃涔�
+ * @Date: 2023骞�06鏈�03鏃�10:30
+ * @Version: 1.0
+ **/
+public class Global {
+
+    public static List<String> task_record=new ArrayList<>();
+}
diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
index aaf30b3..0d5e498 100644
--- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/service/impl/HikClientServiceImpl.java
@@ -5,6 +5,7 @@
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.constant.sdkPriority;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
@@ -1302,15 +1303,13 @@
                 return;
             }
             Integer userId = GlobalVariable.loginMap.get(cameraId);
-            String path = "";
             //寮哄埗I甯х粨鏋勪綋瀵硅薄
             HCNetSDK.NET_DVR_I_FRAME netDvrIFrame = new HCNetSDK.NET_DVR_I_FRAME();   //鏂板缓缁撴瀯浣撳璞�
             netDvrIFrame.read();
-            netDvrIFrame.dwChannel = channelNum;          //鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆
+            netDvrIFrame.dwChannel = channelNum;//鍥犱负涓婃枃浠g爜涓缃簡閫氶亾鍙凤紝鎸夌収涓婃枃涓殑璁剧疆
             netDvrIFrame.byStreamType = 0;
             netDvrIFrame.dwSize = netDvrIFrame.size();
             netDvrIFrame.write();
-
             if(!hCNetSDK.NET_DVR_RemoteControl(userId,3402,netDvrIFrame.getPointer(),netDvrIFrame.dwSize)){
                 log.error("寮哄埗I甯� 閿欒鐮佷负:  " + hCNetSDK.NET_DVR_GetLastError());
             }
@@ -1333,15 +1332,8 @@
                         return;
                     }
                     log.info("鍙栨祦鎴愬姛");
-                    File file = new File("D:/recordTemp/" + cameraId + ".mp4");
-                    if (!file.exists()) {
-                        File fileParent = file.getParentFile();
-                        if (!fileParent.exists()) {
-                            fileParent.mkdirs();
-                        }
-                        file.createNewFile();
-                    }
-                    path = file.getCanonicalPath();
+
+                    String path= FileUtils.createFile("D:/recordTemp/" + cameraId + ".mp4");
                     recordInfo info = new recordInfo();
                     info.setLRealHandle(lRealHandle);
                     info.setRecordPath(path);
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
index aecf1ad..4116465 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/ArdVideoInspectTaskServiceImpl.java
@@ -5,6 +5,7 @@
 import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.alarmpoints.well.mapper.ArdAlarmpointsWellMapper;
 import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.constant.Global;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
@@ -13,6 +14,7 @@
 import com.ruoyi.inspect.domain.ArdVideoInspectRecord;
 import com.ruoyi.inspect.mapper.ArdVideoInspectRecordMapper;
 import com.ruoyi.inspect.mapper.ArdVideoInspectTaskStepMapper;
+import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import com.ruoyi.common.utils.StringUtils;
@@ -51,12 +53,14 @@
     @PostConstruct
     public void initTask() {
         List<ArdVideoInspectTask> ardVideoInspectTasks = ardVideoInspectTaskMapper.selectArdVideoInspectTaskList(new ArdVideoInspectTask());
-        /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�*/
         for (ArdVideoInspectTask ardVideoInspectTask : ardVideoInspectTasks) {
+            /*鍚姩鍚庡皢鎵�鏈夋墜鍔ㄤ换鍔$疆涓哄叧闂�,鎵�鏈変换鍔″綋鍓嶆楠や俊鎭竻绌�*/
             if (ardVideoInspectTask.getInspectMode().equals("鎵嬪姩")) {
                 ardVideoInspectTask.setMenualSwitch("鍏�");
-                ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
             }
+            ardVideoInspectTask.setCurrentStepId("");
+            ardVideoInspectTask.setCurrentStepStartTime("");
+            ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
         }
     }
 
@@ -325,6 +329,22 @@
                         }
                     }
                 } else {
+                    if(Global.task_record.contains(videoInspectTask.getId()))
+                    {
+                        /*鍋滄褰曞儚*/
+                        CameraCmd cmd = new CameraCmd();
+                        cmd.setCameraId(videoInspectTask.getCameraId());
+                        cmd.setChannelNum(videoInspectTask.getChannel());
+                        cmd.setOperator("sys_patrol_inspect");
+                        cmd.setEnable(false);//鍋滄褰曞儚
+                        String uuid = UUID.randomUUID().toString().replace("-", "");
+                        String time = new SimpleDateFormat("yyyyMMdd").format(new Date());
+                        String recordName = videoInspectTask.getCameraId() + "/" + time + "/" + uuid + ".mp4";
+                        cmd.setRecordBucketName("record");
+                        cmd.setRecordObjectName(recordName);
+                        cmd.setUploadMinio(true);
+                        hikClientService.recordToMinio(cmd);
+                    }
                     if (StringUtils.isEmpty(videoInspectTask.getCurrentStepId()) || StringUtils.isEmpty(videoInspectTask.getCurrentStepStartTime())) {
                         continue;
                     }
@@ -429,25 +449,24 @@
                     cmd.setExpired(step.getRecordingTime());
                     boolean setTargetPosition = hikClientService.setTargetPosition(cmd);
                     if (setTargetPosition) {
-                        /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
-                        cmd.setEnable(true);//鍚姩褰曞儚
-                        hikClientService.recordToMinio(cmd);
+                        if(!Global.task_record.contains(ardVideoInspectTask.getId()))
+                        {
+                            /*鎺у埗鐩告満宸℃鎴愬姛锛屽紑濮嬪綍鍍�*/
+                            cmd.setEnable(true);//鍚姩褰曞儚
+                            hikClientService.recordToMinio(cmd);
+                            Global.task_record.add(ardVideoInspectTask.getId());
+                        }
                         /*鏇存柊浠诲姟褰撳墠姝ラid鍜屾楠ゅ惎鍔ㄦ椂闂�*/
-                        ArdVideoInspectTask avit = new ArdVideoInspectTask();
-                        avit.setId(ardVideoInspectTask.getId());
-                        avit.setCurrentStepId(step.getId());
-                        avit.setCurrentStepStartTime(DateUtils.getTime());
-                        ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+                        ardVideoInspectTask.setCurrentStepId(step.getId());
+                        ardVideoInspectTask.setCurrentStepStartTime(DateUtils.getTime());
+                        ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
                     } else {
                         cmd.setEnable(false);//鍋滄褰曞儚
                         cmd.setUploadMinio(true);
                         hikClientService.recordToMinio(cmd);
                         /*鎺у埗澶辫触,褰撳墠姝ラ鍚姩鏃堕棿缃畁ull*/
-                        ArdVideoInspectTask avit = new ArdVideoInspectTask();
-                        avit.setId(ardVideoInspectTask.getId());
-                        avit.setCurrentStepId(step.getId());
-                        avit.setCurrentStepStartTime("");
-                        ardVideoInspectTaskMapper.updateArdVideoInspectTask(avit);
+                        ardVideoInspectTask.setCurrentStepStartTime("");
+                        ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
                     }
                 }
             }
@@ -455,7 +474,6 @@
             log.error("宸℃寮�濮嬪紓甯革細" + ex.getMessage());
         }
     }
-
     //姝ラ鍋滄
     private void stopRunStep(ArdVideoInspectTask ardVideoInspectTask) {
         try {
@@ -486,6 +504,7 @@
                 cmd.setRecordObjectName(recordName);
                 cmd.setUploadMinio(true);
                 hikClientService.recordToMinio(cmd);
+                Global.task_record.remove(ardVideoInspectTask.getId());
                 /*鎻掑叆宸℃璁板綍*/
                 ArdVideoInspectRecord ardVideoInspectRecord = new ArdVideoInspectRecord();
                 ardVideoInspectRecord.setStepId(step.getId());
@@ -603,4 +622,4 @@
 
         return timeList;
     }
-}
+}
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
index 9ee0e03..61ef513 100644
--- a/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
+++ b/ard-work/src/main/java/com/ruoyi/inspect/service/impl/InspectionTaskManager.java
@@ -1,5 +1,6 @@
 package com.ruoyi.inspect.service.impl;
 
+import com.ruoyi.constant.Global;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.hiksdk.common.GlobalVariable;
 import com.ruoyi.device.hiksdk.service.IHikClientService;
@@ -53,7 +54,21 @@
         ardVideoInspectTask.setCurrentStepId("");
         ardVideoInspectTask.setCurrentStepStartTime("");
         ardVideoInspectTaskMapper.updateArdVideoInspectTask(ardVideoInspectTask);
-
+        /*灏嗗叧鑱旂殑鐩告満褰曞儚鍏抽棴*/
+        if( Global.task_record.contains(taskId))
+        {
+//            Integer userId = GlobalVariable.loginMap.get(ardVideoInspectTask.getCameraId());//鑾峰彇褰撳墠鐩告満鐨勭櫥褰旾D
+//            if( GlobalVariable.user_real_Map.containsKey(userId))
+//            {   //褰撳墠鐩告満姝e湪褰曞儚锛屽垯鍋滄褰曞儚
+//                CameraCmd cmd = new CameraCmd();
+//                cmd.setCameraId(ardVideoInspectTask.getCameraId());
+//                cmd.setChannelNum(ardVideoInspectTask.getChannel());
+//                cmd.setEnable(false);//鍋滄褰曞儚
+//                cmd.setUploadMinio(false);
+//                hikClientService.recordToMinio(cmd);
+//            }
+            Global.task_record.remove(taskId);
+        }
         InspectionTask task = new InspectionTask(taskId);
         task.start();
         taskMap.put(taskId, task);
@@ -76,6 +91,7 @@
             cmd.setEnable(false);//鍋滄褰曞儚
             cmd.setUploadMinio(false);
             hikClientService.recordToMinio(cmd);
+            GlobalVariable.user_real_Map.remove(userId);
         }
         InspectionTask task = taskMap.get(taskId);
         if (task != null) {
diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml
index fa00cca..33a95ee 100644
--- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml
+++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectRecordMapper.xml
@@ -33,6 +33,7 @@
     <select id="selectArdVideoInspectRecordListByStartTime" parameterType="ArdVideoInspectRecord" resultType="java.util.HashMap">
         select r.*,s.well_id,w.well_id as well_name from ard_video_inspect_record r ,ard_video_inspect_task_step
         s,ard_alarmpoints_well w where start_time like ('${startTime}%') and r.step_id = s.id and s.well_id = w.id
+        order by start_time desc
     </select>
     <!--鎸夋湀浠界粺璁℃枃浠舵暟閲�-->
     <select id="selectArdVideoInspectRecordCountByStartMonth" parameterType="String" resultType="java.util.HashMap">
diff --git a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
index 8b9dc65..8101ae7 100644
--- a/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
+++ b/ard-work/src/main/resources/mapper/inspect/ArdVideoInspectTaskMapper.xml
@@ -51,7 +51,7 @@
             <if test="cameraId != null  and cameraId != ''"> and camera_id = #{cameraId}</if>
             <if test="channel != null "> and channel = #{channel}</if>
         </where>
-        order by id
+        order by start_time
     </select>
     
     <select id="selectArdVideoInspectTaskById" parameterType="String" resultMap="ArdVideoInspectTaskArdVideoInspectTaskStepResult">
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
index b9bc834..d2dcff2 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
@@ -11,6 +11,7 @@
 import java.nio.charset.StandardCharsets;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.ArrayUtils;
 import com.ruoyi.common.config.ARDConfig;
@@ -21,44 +22,35 @@
 
 /**
  * 鏂囦欢澶勭悊宸ュ叿绫�
- * 
+ *
  * @author ruoyi
  */
-public class FileUtils
-{
+public class FileUtils {
     public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
 
     /**
      * 杈撳嚭鎸囧畾鏂囦欢鐨刡yte鏁扮粍
-     * 
+     *
      * @param filePath 鏂囦欢璺緞
-     * @param os 杈撳嚭娴�
+     * @param os       杈撳嚭娴�
      * @return
      */
-    public static void writeBytes(String filePath, OutputStream os) throws IOException
-    {
+    public static void writeBytes(String filePath, OutputStream os) throws IOException {
         FileInputStream fis = null;
-        try
-        {
+        try {
             File file = new File(filePath);
-            if (!file.exists())
-            {
+            if (!file.exists()) {
                 throw new FileNotFoundException(filePath);
             }
             fis = new FileInputStream(file);
             byte[] b = new byte[1024];
             int length;
-            while ((length = fis.read(b)) > 0)
-            {
+            while ((length = fis.read(b)) > 0) {
                 os.write(b, 0, length);
             }
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             throw e;
-        }
-        finally
-        {
+        } finally {
             IOUtils.close(os);
             IOUtils.close(fis);
         }
@@ -71,33 +63,28 @@
      * @return 鐩爣鏂囦欢
      * @throws IOException IO寮傚父
      */
-    public static String writeImportBytes(byte[] data) throws IOException
-    {
+    public static String writeImportBytes(byte[] data) throws IOException {
         return writeBytes(data, ARDConfig.getImportPath());
     }
 
     /**
      * 鍐欐暟鎹埌鏂囦欢涓�
      *
-     * @param data 鏁版嵁
+     * @param data      鏁版嵁
      * @param uploadDir 鐩爣鏂囦欢
      * @return 鐩爣鏂囦欢
      * @throws IOException IO寮傚父
      */
-    public static String writeBytes(byte[] data, String uploadDir) throws IOException
-    {
+    public static String writeBytes(byte[] data, String uploadDir) throws IOException {
         FileOutputStream fos = null;
         String pathName = "";
-        try
-        {
+        try {
             String extension = getFileExtendName(data);
             pathName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension;
             File file = FileUploadUtils.getAbsoluteFile(uploadDir, pathName);
             fos = new FileOutputStream(file);
             fos.write(data);
-        }
-        finally
-        {
+        } finally {
             IOUtils.close(fos);
         }
         return FileUploadUtils.getPathFileName(uploadDir, pathName);
@@ -105,17 +92,15 @@
 
     /**
      * 鍒犻櫎鏂囦欢
-     * 
+     *
      * @param filePath 鏂囦欢
      * @return
      */
-    public static boolean deleteFile(String filePath)
-    {
+    public static boolean deleteFile(String filePath) {
         boolean flag = false;
         File file = new File(filePath);
         // 璺緞涓烘枃浠朵笖涓嶄负绌哄垯杩涜鍒犻櫎
-        if (file.isFile() && file.exists())
-        {
+        if (file.isFile() && file.exists()) {
             flag = file.delete();
         }
         return flag;
@@ -123,32 +108,28 @@
 
     /**
      * 鏂囦欢鍚嶇О楠岃瘉
-     * 
+     *
      * @param filename 鏂囦欢鍚嶇О
      * @return true 姝e父 false 闈炴硶
      */
-    public static boolean isValidFilename(String filename)
-    {
+    public static boolean isValidFilename(String filename) {
         return filename.matches(FILENAME_PATTERN);
     }
 
     /**
      * 妫�鏌ユ枃浠舵槸鍚﹀彲涓嬭浇
-     * 
+     *
      * @param resource 闇�瑕佷笅杞界殑鏂囦欢
      * @return true 姝e父 false 闈炴硶
      */
-    public static boolean checkAllowDownload(String resource)
-    {
+    public static boolean checkAllowDownload(String resource) {
         // 绂佹鐩綍涓婅烦绾у埆
-        if (StringUtils.contains(resource, ".."))
-        {
+        if (StringUtils.contains(resource, "..")) {
             return false;
         }
 
         // 妫�鏌ュ厑璁镐笅杞界殑鏂囦欢瑙勫垯
-        if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource)))
-        {
+        if (ArrayUtils.contains(MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION, FileTypeUtils.getFileType(resource))) {
             return true;
         }
 
@@ -158,33 +139,25 @@
 
     /**
      * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮�
-     * 
-     * @param request 璇锋眰瀵硅薄
+     *
+     * @param request  璇锋眰瀵硅薄
      * @param fileName 鏂囦欢鍚�
      * @return 缂栫爜鍚庣殑鏂囦欢鍚�
      */
-    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException
-    {
+    public static String setFileDownloadHeader(HttpServletRequest request, String fileName) throws UnsupportedEncodingException {
         final String agent = request.getHeader("USER-AGENT");
         String filename = fileName;
-        if (agent.contains("MSIE"))
-        {
+        if (agent.contains("MSIE")) {
             // IE娴忚鍣�
             filename = URLEncoder.encode(filename, "utf-8");
             filename = filename.replace("+", " ");
-        }
-        else if (agent.contains("Firefox"))
-        {
+        } else if (agent.contains("Firefox")) {
             // 鐏嫄娴忚鍣�
             filename = new String(fileName.getBytes(), "ISO8859-1");
-        }
-        else if (agent.contains("Chrome"))
-        {
+        } else if (agent.contains("Chrome")) {
             // google娴忚鍣�
             filename = URLEncoder.encode(filename, "utf-8");
-        }
-        else
-        {
+        } else {
             // 鍏跺畠娴忚鍣�
             filename = URLEncoder.encode(filename, "utf-8");
         }
@@ -194,11 +167,10 @@
     /**
      * 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮�
      *
-     * @param response 鍝嶅簲瀵硅薄
+     * @param response     鍝嶅簲瀵硅薄
      * @param realFileName 鐪熷疄鏂囦欢鍚�
      */
-    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException
-    {
+    public static void setAttachmentResponseHeader(HttpServletResponse response, String realFileName) throws UnsupportedEncodingException {
         String percentEncodedFileName = percentEncode(realFileName);
 
         StringBuilder contentDispositionValue = new StringBuilder();
@@ -220,36 +192,27 @@
      * @param s 闇�瑕佺櫨鍒嗗彿缂栫爜鐨勫瓧绗︿覆
      * @return 鐧惧垎鍙风紪鐮佸悗鐨勫瓧绗︿覆
      */
-    public static String percentEncode(String s) throws UnsupportedEncodingException
-    {
+    public static String percentEncode(String s) throws UnsupportedEncodingException {
         String encode = URLEncoder.encode(s, StandardCharsets.UTF_8.toString());
         return encode.replaceAll("\\+", "%20");
     }
 
     /**
      * 鑾峰彇鍥惧儚鍚庣紑
-     * 
+     *
      * @param photoByte 鍥惧儚鏁版嵁
      * @return 鍚庣紑鍚�
      */
-    public static String getFileExtendName(byte[] photoByte)
-    {
+    public static String getFileExtendName(byte[] photoByte) {
         String strFileExtendName = "jpg";
         if ((photoByte[0] == 71) && (photoByte[1] == 73) && (photoByte[2] == 70) && (photoByte[3] == 56)
-                && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97))
-        {
+                && ((photoByte[4] == 55) || (photoByte[4] == 57)) && (photoByte[5] == 97)) {
             strFileExtendName = "gif";
-        }
-        else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70))
-        {
+        } else if ((photoByte[6] == 74) && (photoByte[7] == 70) && (photoByte[8] == 73) && (photoByte[9] == 70)) {
             strFileExtendName = "jpg";
-        }
-        else if ((photoByte[0] == 66) && (photoByte[1] == 77))
-        {
+        } else if ((photoByte[0] == 66) && (photoByte[1] == 77)) {
             strFileExtendName = "bmp";
-        }
-        else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71))
-        {
+        } else if ((photoByte[1] == 80) && (photoByte[2] == 78) && (photoByte[3] == 71)) {
             strFileExtendName = "png";
         }
         return strFileExtendName;
@@ -257,14 +220,12 @@
 
     /**
      * 鑾峰彇鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png
-     * 
+     *
      * @param fileName 璺緞鍚嶇О
      * @return 娌℃湁鏂囦欢璺緞鐨勫悕绉�
      */
-    public static String getName(String fileName)
-    {
-        if (fileName == null)
-        {
+    public static String getName(String fileName) {
+        if (fileName == null) {
             return null;
         }
         int lastUnixPos = fileName.lastIndexOf('/');
@@ -275,17 +236,38 @@
 
     /**
      * 鑾峰彇涓嶅甫鍚庣紑鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi
-     * 
+     *
      * @param fileName 璺緞鍚嶇О
      * @return 娌℃湁鏂囦欢璺緞鍜屽悗缂�鐨勫悕绉�
      */
-    public static String getNameNotSuffix(String fileName)
-    {
-        if (fileName == null)
-        {
+    public static String getNameNotSuffix(String fileName) {
+        if (fileName == null) {
             return null;
         }
         String baseName = FilenameUtils.getBaseName(fileName);
         return baseName;
     }
+
+    /**
+     * 鍒涘缓涓�涓枃浠惰幏鍙栨枃浠惰矾寰�
+     *
+     * @param fileName 璺緞鍚嶇О
+     * @return 鏂囦欢璺緞鍜屽悗缂�鐨勫悕绉�
+     */
+    public static String createFile(String fileName) {
+        try {
+            File file = new File(fileName);
+            if (!file.exists()) {
+                File fileParent = file.getParentFile();
+                if (!fileParent.exists()) {
+                    fileParent.mkdirs();
+                }
+                file.createNewFile();
+            }
+            return file.getCanonicalPath();
+
+        } catch (Exception ex) {
+            return "";
+        }
+    }
 }

--
Gitblit v1.9.3