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