From 51f67136d3f6ff27a9f879b8c13bd308a7a733e1 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期四, 17 四月 2025 09:14:02 +0800
Subject: [PATCH] 删除工单,物理删除图片调整
---
ycl-common/src/main/java/utils/file/FileUtils.java | 49 ++++++++++++++++++++----
ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml | 5 +-
ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java | 18 +++++----
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 27 ++++++++++---
4 files changed, 74 insertions(+), 25 deletions(-)
diff --git a/ycl-common/src/main/java/utils/file/FileUtils.java b/ycl-common/src/main/java/utils/file/FileUtils.java
index 9aa3e7b..6cb97d1 100644
--- a/ycl-common/src/main/java/utils/file/FileUtils.java
+++ b/ycl-common/src/main/java/utils/file/FileUtils.java
@@ -3,6 +3,7 @@
import config.PlatformConfig;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
+import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ArrayUtils;
@@ -16,16 +17,17 @@
/**
* 鏂囦欢澶勭悊宸ュ叿绫�
- *
+ *
* @author ruoyi
*/
+@Slf4j
public class FileUtils
{
public static String FILENAME_PATTERN = "[a-zA-Z0-9_\\-\\|\\.\\u4e00-\\u9fa5]+";
/**
* 杈撳嚭鎸囧畾鏂囦欢鐨刡yte鏁扮粍
- *
+ *
* @param filePath 鏂囦欢璺緞
* @param os 杈撳嚭娴�
* @return
@@ -72,6 +74,35 @@
}
/**
+ * 浠庡瓧绗︿覆涓彁鍙栨棩鏈熼儴鍒�
+ *
+ * @param inputString 杈撳叆瀛楃涓�
+ * @return 鎻愬彇鐨勬棩鏈熷瓧绗︿覆锛屽鏋滄湭鎵惧埌鍒欒繑鍥� ""
+ */
+ public static String extractDateFromString(String inputString) {
+ // 浣跨敤姝e垯琛ㄨ揪寮忔潵鍖归厤鏃ユ湡鏍煎紡 YYYY-MM-DD
+ String datePattern = "(\\d{4}-\\d{2}-\\d{2})";
+ java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(datePattern);
+ java.util.regex.Matcher matcher = pattern.matcher(inputString);
+ if (matcher.find()) {
+ return matcher.group(1);
+ }
+ return "";
+ }
+ public static String getImgName(String url) {
+
+ // 鎵惧埌鏈�鍚庝竴涓枩鏉犵殑浣嶇疆
+ int lastSlashIndex = url.lastIndexOf('/');
+ if(lastSlashIndex == -1){
+ return "";
+ }
+ // 鎻愬彇浠庢渶鍚庝竴涓枩鏉犱箣鍚庣殑閮ㄥ垎
+ return url.substring(lastSlashIndex + 1);
+ }
+
+
+
+ /**
* 鍐欐暟鎹埌鏂囦欢涓�
*
* @param data 鏁版嵁
@@ -100,7 +131,7 @@
/**
* 鍒犻櫎鏂囦欢
- *
+ *
* @param filePath 鏂囦欢
* @return
*/
@@ -118,7 +149,7 @@
/**
* 鏂囦欢鍚嶇О楠岃瘉
- *
+ *
* @param filename 鏂囦欢鍚嶇О
* @return true 姝e父 false 闈炴硶
*/
@@ -129,7 +160,7 @@
/**
* 妫�鏌ユ枃浠舵槸鍚﹀彲涓嬭浇
- *
+ *
* @param resource 闇�瑕佷笅杞界殑鏂囦欢
* @return true 姝e父 false 闈炴硶
*/
@@ -153,7 +184,7 @@
/**
* 涓嬭浇鏂囦欢鍚嶉噸鏂扮紪鐮�
- *
+ *
* @param request 璇锋眰瀵硅薄
* @param fileName 鏂囦欢鍚�
* @return 缂栫爜鍚庣殑鏂囦欢鍚�
@@ -223,7 +254,7 @@
/**
* 鑾峰彇鍥惧儚鍚庣紑
- *
+ *
* @param photoByte 鍥惧儚鏁版嵁
* @return 鍚庣紑鍚�
*/
@@ -252,7 +283,7 @@
/**
* 鑾峰彇鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi.png
- *
+ *
* @param fileName 璺緞鍚嶇О
* @return 娌℃湁鏂囦欢璺緞鐨勫悕绉�
*/
@@ -270,7 +301,7 @@
/**
* 鑾峰彇涓嶅甫鍚庣紑鏂囦欢鍚嶇О /profile/upload/2022/04/16/ruoyi.png -- ruoyi
- *
+ *
* @param fileName 璺緞鍚嶇О
* @return 娌℃湁鏂囦欢璺緞鍜屽悗缂�鐨勫悕绉�
*/
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 4a39cdf..80dd2b3 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -622,8 +622,10 @@
List<String> imgList = workOrderList.subList(4,workOrderList.size()).stream().map(WorkOrderCheckImg::getImgUrl).collect(Collectors.toList());
List<Integer> idList = workOrderList.subList(4, workOrderList.size()).stream().map(WorkOrderCheckImg::getId).collect(Collectors.toList());
//鍒犻櫎鐓х墖 锛屽苟涓旂墿鐞嗗垹闄ゆ湇鍔″櫒鍐呭搴旂収鐗囩殑鍚嶅瓧
+
+// /profile/2024-11-18_1d8e6d37-a4d0-4bba-8473-ff4e50eda83d.png
for (String filePath: imgList){
- FileUtils.deleteFile( PlatformConfig.getUploadPath()+ filePath);
+ delImgFormClient(filePath);
}
workOrderCheckImgMapper.deleteBatchIds(idList);
@@ -682,6 +684,23 @@
return Result.error("鍒犻櫎澶辫触");
}
+ /***
+ * 閫氳繃url鍒犻櫎鏈嶅姟鍣ㄥ唴鐨勫浘鐗�
+ * @param url
+ */
+ public void delImgFormClient(String url){
+ //鎻愬彇鏂囦欢鍚� /profile/2024-11-17_79c02666-da1e-45ba-9f29-7523c848fa4a.png
+ // 杩欓儴鍒�2024-11-17_79c02666-da1e-45ba-9f29-7523c848fa4a.png
+ String imgPath = FileUtils.getImgName(url);
+ if (imgPath.isEmpty()){
+ log.error("url閿欒锛歿}",imgPath);
+ }else{
+ //鎻愬彇鏃ユ湡閮ㄥ垎 缁勮鐩綍 : /opt/zgyw/uploadPath + / + yyyy-MM-dd +
+ String pathName = PlatformConfig.getUploadPath() + "/" + FileUtils.extractDateFromString(url);
+ FileUtils.deleteFile(pathName+"/" + imgPath);
+ }
+ }
+
/**
* id鍒犻櫎
*
@@ -703,9 +722,8 @@
log.error("鍒犻櫎璺緞:{}",PlatformConfig.getUploadPath());
for (String filePath: workOrderImg){
- FileUtils.deleteFile( PlatformConfig.getUploadPath()+ filePath);
+ delImgFormClient(filePath);
}
- // /home/zgyw/uploadPath
//鍒犻櫎宸ュ崟鍥剧墖璁板綍
workOrderCheckImgMapper.delete(new QueryWrapper<WorkOrderCheckImg>().eq("work_order_no", workOrderNo));
@@ -715,9 +733,6 @@
workOrderErrorTypeMapper.delete(new QueryWrapper<WorkOrderErrorType>().eq("work_order_no", workOrderNo));
//鍒犻櫎宸ュ崟鎯呭喌璁板綍
workOrderYwConditionRecordMapper.delete(new QueryWrapper<WorkOrderYwConditionRecord>().eq("work_order_no", workOrderNo));
-
-
-
if (baseMapper.deleteById(id) > 0) {
return Result.ok("鍒犻櫎鎴愬姛");
diff --git a/ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java b/ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java
index 0c6d853..4eceead 100644
--- a/ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/DeleteWorkOrderImgTask.java
@@ -19,25 +19,27 @@
private final ISysConfigService configService;
public void delWorkOrderImg() {
- String basePath = PlatformConfig.getUploadPath() + "/profile";
+ String basePath = PlatformConfig.getUploadPath();
log.info("寮�濮嬪垹闄ゅ伐鍗曠収鐗�");
- log.info("鍒犻櫎璺緞锛歿}",basePath);
+ log.info("鍒犻櫎涓昏矾寰勶細{}",basePath); // /opt/zgyw/uploadPath
//瀛楀吀鏌ヨ闇�瑕佸垹闄ゆ椂闂村湪鍑犱釜鏈堝墠鐨勭収鐗�
String dictLabel = configService.selectConfigByKey("del.workorder.time");
log.info("娓呯悊鏃堕棿:{}鏈�",dictLabel);
if (StringUtils.isEmpty(dictLabel)) {
- log.error("鏈缃垹闄ゆ椂闂磋寖鍥�");
- return;
+ log.info("鏈缃垹闄ゆ椂闂磋寖鍥�");;
+ dictLabel = "6";
}
+ log.info("榛樿6鏈堝墠鐨勫浘鐗�");
//鑾峰緱褰撳墠鏃堕棿
LocalDate nowDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
//璁$畻 锛� 鏈堝墠鐨勬棩鏈� 锛� 鐢ㄥ瓧鍏稿瓨鍏ョ郴缁熶腑
- LocalDate sixMonthAgo = nowDate.minusMonths(Long.parseLong("6"));
+ LocalDate sixMonthAgo = nowDate.minusMonths(Long.parseLong(dictLabel));
//璇诲彇鏈嶅姟鍣ㄤ腑鐨勬枃浠跺す鍚�
File directory = new File(basePath);
//妫�娴嬭矾寰勫瓨鍦� 骞朵笖鏄竴涓洰褰�
if (directory.exists() && directory.isDirectory()) {
+ //鑾峰緱 鐩綍闆嗗悎
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
@@ -64,12 +66,12 @@
File[] allContents = directoryToBeDeleted.listFiles();
if (allContents != null) {
for (File file : allContents) {
-// deleteDirectory(file);
+ deleteDirectory(file);
log.error("鎵撳嵃鏂囦欢鍚�:{}",file.getName());
}
}
-// directoryToBeDeleted.delete();
- log.error("鎵撳嵃鐩綍鍚�:{}", directoryToBeDeleted.getName());
+ directoryToBeDeleted.delete();
+ log.error("鎵撳嵃鏂囦欢鍚�:{}", directoryToBeDeleted.getName());
}
diff --git a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
index 980797d..6c43d09 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/WorkOrderMapper.xml
@@ -437,6 +437,7 @@
wo.id,
wo.work_order_no,
wo.serial_number,
+ dr.create_time as distributeTime,
m.name as source,
yw.unit_name,
yw.unit_contact,
@@ -446,9 +447,9 @@
wo.status
FROM
t_work_order wo
+ LEFT JOIN t_work_order_distribute_record dr ON wo.work_order_no = dr.work_order_no AND dr.deleted = 0
INNER JOIN t_monitor m ON m.serial_number = wo.serial_number
- LEFT JOIN t_yw_unit yw ON yw.id = wo.unit_id AND yw.deleted = 0
- where wo.work_order_no = #{workOrderNo}
+ LEFT JOIN t_yw_unit yw ON yw.id = wo.unit_id AND yw.deleted = 0 Where wo.work_order_no = #{workOrderNo}
</select>
<select id="getRecoveryInfo" resultType="com.ycl.platform.domain.vo.WorkOrderVO">
--
Gitblit v1.8.0